@ama-pt/agora-design-system 0.18.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/artifacts/dist/agora-BmHZWHqH.mjs +9 -0
- package/artifacts/dist/agora-BmHZWHqH.mjs.map +1 -0
- package/artifacts/dist/arrow-curve-right-B8MoMdCY.mjs +17 -0
- package/artifacts/dist/arrow-curve-right-B8MoMdCY.mjs.map +1 -0
- package/artifacts/dist/arrow-down-left-lYAsLq7h.mjs +17 -0
- package/artifacts/dist/arrow-down-left-lYAsLq7h.mjs.map +1 -0
- package/artifacts/dist/arrow-down-right-DmjZ2JDe.mjs +17 -0
- package/artifacts/dist/arrow-down-right-DmjZ2JDe.mjs.map +1 -0
- package/artifacts/dist/arrow-loop-DRz27_eb.mjs +17 -0
- package/artifacts/dist/arrow-loop-DRz27_eb.mjs.map +1 -0
- package/artifacts/dist/arrow-right-n2f-Zi5H.mjs +17 -0
- package/artifacts/dist/arrow-right-n2f-Zi5H.mjs.map +1 -0
- package/artifacts/dist/arrow-up-right-DdRxifRs.mjs +17 -0
- package/artifacts/dist/arrow-up-right-DdRxifRs.mjs.map +1 -0
- package/artifacts/dist/bold-arrow-BA0qQakj.mjs +17 -0
- package/artifacts/dist/bold-arrow-BA0qQakj.mjs.map +1 -0
- package/artifacts/dist/bold-line-DbzDY-pC.mjs +18 -0
- package/artifacts/dist/bold-line-DbzDY-pC.mjs.map +1 -0
- package/artifacts/dist/circle-left-l-BhK2j4EB.mjs +18 -0
- package/artifacts/dist/circle-left-l-BhK2j4EB.mjs.map +1 -0
- package/artifacts/dist/circle-left-xxl-DuntH1wN.mjs +18 -0
- package/artifacts/dist/circle-left-xxl-DuntH1wN.mjs.map +1 -0
- package/artifacts/dist/circle-right-l-D6fz78vF.mjs +18 -0
- package/artifacts/dist/circle-right-l-D6fz78vF.mjs.map +1 -0
- package/artifacts/dist/circle-right-xxl-KaMkrBHr.mjs +18 -0
- package/artifacts/dist/circle-right-xxl-KaMkrBHr.mjs.map +1 -0
- package/artifacts/dist/detail-attention-BDB0Np5q.mjs +17 -0
- package/artifacts/dist/detail-attention-BDB0Np5q.mjs.map +1 -0
- package/artifacts/dist/detail-chat-J4Fnbkue.mjs +18 -0
- package/artifacts/dist/detail-chat-J4Fnbkue.mjs.map +1 -0
- package/artifacts/dist/detail-fluid-MKIfE5I2.mjs +18 -0
- package/artifacts/dist/detail-fluid-MKIfE5I2.mjs.map +1 -0
- package/artifacts/dist/detail-movement-syj--UAU.mjs +18 -0
- package/artifacts/dist/detail-movement-syj--UAU.mjs.map +1 -0
- package/artifacts/dist/detail-talk-DK69AJfb.mjs +17 -0
- package/artifacts/dist/detail-talk-DK69AJfb.mjs.map +1 -0
- package/artifacts/dist/drag-dots-CyRC22we.mjs +9 -0
- package/artifacts/dist/drag-dots-CyRC22we.mjs.map +1 -0
- package/artifacts/dist/index.css +1 -0
- package/artifacts/dist/index.mjs +9500 -0
- package/artifacts/dist/index.mjs.map +1 -0
- package/artifacts/dist/index.umd.js +6 -0
- package/artifacts/dist/index.umd.js.map +1 -0
- package/artifacts/dist/line-airplay-BWnaXraO.mjs +16 -0
- package/artifacts/dist/line-airplay-BWnaXraO.mjs.map +1 -0
- package/artifacts/dist/line-alert-circle-CyYzIaKL.mjs +30 -0
- package/artifacts/dist/line-alert-circle-CyYzIaKL.mjs.map +1 -0
- package/artifacts/dist/line-alert-triangle-B8MP3AKI.mjs +16 -0
- package/artifacts/dist/line-alert-triangle-B8MP3AKI.mjs.map +1 -0
- package/artifacts/dist/line-arrow-down-DnHl70Fu.mjs +16 -0
- package/artifacts/dist/line-arrow-down-DnHl70Fu.mjs.map +1 -0
- package/artifacts/dist/line-arrow-down-anchor-1Ik_PAda.mjs +16 -0
- package/artifacts/dist/line-arrow-down-anchor-1Ik_PAda.mjs.map +1 -0
- package/artifacts/dist/line-arrow-down-circle-c8Cfdkoo.mjs +16 -0
- package/artifacts/dist/line-arrow-down-circle-c8Cfdkoo.mjs.map +1 -0
- package/artifacts/dist/line-arrow-left-DIkoyYVj.mjs +16 -0
- package/artifacts/dist/line-arrow-left-DIkoyYVj.mjs.map +1 -0
- package/artifacts/dist/line-arrow-left-anchor-BLqBxK_6.mjs +16 -0
- package/artifacts/dist/line-arrow-left-anchor-BLqBxK_6.mjs.map +1 -0
- package/artifacts/dist/line-arrow-left-circle-DcoCo5gO.mjs +16 -0
- package/artifacts/dist/line-arrow-left-circle-DcoCo5gO.mjs.map +1 -0
- package/artifacts/dist/line-arrow-right-CE4B5Ims.mjs +16 -0
- package/artifacts/dist/line-arrow-right-CE4B5Ims.mjs.map +1 -0
- package/artifacts/dist/line-arrow-right-anchor-Cpape9ux.mjs +16 -0
- package/artifacts/dist/line-arrow-right-anchor-Cpape9ux.mjs.map +1 -0
- package/artifacts/dist/line-arrow-right-circle-Bt6V93yV.mjs +16 -0
- package/artifacts/dist/line-arrow-right-circle-Bt6V93yV.mjs.map +1 -0
- package/artifacts/dist/line-arrow-up-BWWF_Qvp.mjs +16 -0
- package/artifacts/dist/line-arrow-up-BWWF_Qvp.mjs.map +1 -0
- package/artifacts/dist/line-arrow-up-anchor-BGAtSCUC.mjs +16 -0
- package/artifacts/dist/line-arrow-up-anchor-BGAtSCUC.mjs.map +1 -0
- package/artifacts/dist/line-arrow-up-circle-Bee73qj3.mjs +16 -0
- package/artifacts/dist/line-arrow-up-circle-Bee73qj3.mjs.map +1 -0
- package/artifacts/dist/line-at-sign-B_WfKdyo.mjs +16 -0
- package/artifacts/dist/line-at-sign-B_WfKdyo.mjs.map +1 -0
- package/artifacts/dist/line-award-BodOdWCz.mjs +16 -0
- package/artifacts/dist/line-award-BodOdWCz.mjs.map +1 -0
- package/artifacts/dist/line-bell-BX4eSYbX.mjs +16 -0
- package/artifacts/dist/line-bell-BX4eSYbX.mjs.map +1 -0
- package/artifacts/dist/line-book-open-Gyde1vIg.mjs +16 -0
- package/artifacts/dist/line-book-open-Gyde1vIg.mjs.map +1 -0
- package/artifacts/dist/line-bookmark-BwJyAxPR.mjs +16 -0
- package/artifacts/dist/line-bookmark-BwJyAxPR.mjs.map +1 -0
- package/artifacts/dist/line-bookmark-card-5pT1fP8k.mjs +16 -0
- package/artifacts/dist/line-bookmark-card-5pT1fP8k.mjs.map +1 -0
- package/artifacts/dist/line-briefcase-BJIIJf3e.mjs +16 -0
- package/artifacts/dist/line-briefcase-BJIIJf3e.mjs.map +1 -0
- package/artifacts/dist/line-buildings-CJydHeDZ.mjs +16 -0
- package/artifacts/dist/line-buildings-CJydHeDZ.mjs.map +1 -0
- package/artifacts/dist/line-bullet-WK8KE3Nz.mjs +16 -0
- package/artifacts/dist/line-bullet-WK8KE3Nz.mjs.map +1 -0
- package/artifacts/dist/line-bus-LL3fl8O6.mjs +16 -0
- package/artifacts/dist/line-bus-LL3fl8O6.mjs.map +1 -0
- package/artifacts/dist/line-calculator-Cf5x884o.mjs +23 -0
- package/artifacts/dist/line-calculator-Cf5x884o.mjs.map +1 -0
- package/artifacts/dist/line-calendar-CAqjGIBb.mjs +16 -0
- package/artifacts/dist/line-calendar-CAqjGIBb.mjs.map +1 -0
- package/artifacts/dist/line-camera-BPZ2ZeL-.mjs +23 -0
- package/artifacts/dist/line-camera-BPZ2ZeL-.mjs.map +1 -0
- package/artifacts/dist/line-chat-IBADwXfi.mjs +9 -0
- package/artifacts/dist/line-chat-IBADwXfi.mjs.map +1 -0
- package/artifacts/dist/line-check-CbZk3c9L.mjs +16 -0
- package/artifacts/dist/line-check-CbZk3c9L.mjs.map +1 -0
- package/artifacts/dist/line-check-all-0HIc8qFI.mjs +16 -0
- package/artifacts/dist/line-check-all-0HIc8qFI.mjs.map +1 -0
- package/artifacts/dist/line-check-circle-cYKoWFAd.mjs +16 -0
- package/artifacts/dist/line-check-circle-cYKoWFAd.mjs.map +1 -0
- package/artifacts/dist/line-chevron-down-B3sQSuhs.mjs +16 -0
- package/artifacts/dist/line-chevron-down-B3sQSuhs.mjs.map +1 -0
- package/artifacts/dist/line-chevron-left-B1lIDR2x.mjs +16 -0
- package/artifacts/dist/line-chevron-left-B1lIDR2x.mjs.map +1 -0
- package/artifacts/dist/line-chevron-right-BsvTj2M9.mjs +16 -0
- package/artifacts/dist/line-chevron-right-BsvTj2M9.mjs.map +1 -0
- package/artifacts/dist/line-chevron-up-CV_qj_vu.mjs +16 -0
- package/artifacts/dist/line-chevron-up-CV_qj_vu.mjs.map +1 -0
- package/artifacts/dist/line-chevrons-down-g6XVun5j.mjs +23 -0
- package/artifacts/dist/line-chevrons-down-g6XVun5j.mjs.map +1 -0
- package/artifacts/dist/line-chevrons-left-D5cNOdri.mjs +23 -0
- package/artifacts/dist/line-chevrons-left-D5cNOdri.mjs.map +1 -0
- package/artifacts/dist/line-chevrons-right-BqJYSv9v.mjs +23 -0
- package/artifacts/dist/line-chevrons-right-BqJYSv9v.mjs.map +1 -0
- package/artifacts/dist/line-chevrons-up-6rkZvqA3.mjs +23 -0
- package/artifacts/dist/line-chevrons-up-6rkZvqA3.mjs.map +1 -0
- package/artifacts/dist/line-clock-BGfnIgE4.mjs +23 -0
- package/artifacts/dist/line-clock-BGfnIgE4.mjs.map +1 -0
- package/artifacts/dist/line-coffee-BDTbXYHT.mjs +16 -0
- package/artifacts/dist/line-coffee-BDTbXYHT.mjs.map +1 -0
- package/artifacts/dist/line-court-NcV985Ta.mjs +16 -0
- package/artifacts/dist/line-court-NcV985Ta.mjs.map +1 -0
- package/artifacts/dist/line-credit-card-dZddhcpw.mjs +16 -0
- package/artifacts/dist/line-credit-card-dZddhcpw.mjs.map +1 -0
- package/artifacts/dist/line-dashboard-DCRAsJzp.mjs +72 -0
- package/artifacts/dist/line-dashboard-DCRAsJzp.mjs.map +1 -0
- package/artifacts/dist/line-delete-D4IGiXnx.mjs +9 -0
- package/artifacts/dist/line-delete-D4IGiXnx.mjs.map +1 -0
- package/artifacts/dist/line-document-D5IX3wii.mjs +16 -0
- package/artifacts/dist/line-document-D5IX3wii.mjs.map +1 -0
- package/artifacts/dist/line-download-D3BjkK0M.mjs +30 -0
- package/artifacts/dist/line-download-D3BjkK0M.mjs.map +1 -0
- package/artifacts/dist/line-driving-_mFgAsxY.mjs +16 -0
- package/artifacts/dist/line-driving-_mFgAsxY.mjs.map +1 -0
- package/artifacts/dist/line-edit-9OSt9bj5.mjs +23 -0
- package/artifacts/dist/line-edit-9OSt9bj5.mjs.map +1 -0
- package/artifacts/dist/line-external-link-CzV1zt56.mjs +30 -0
- package/artifacts/dist/line-external-link-CzV1zt56.mjs.map +1 -0
- package/artifacts/dist/line-eye-BODs9cSf.mjs +9 -0
- package/artifacts/dist/line-eye-BODs9cSf.mjs.map +1 -0
- package/artifacts/dist/line-eye-off-BwWZVfYl.mjs +9 -0
- package/artifacts/dist/line-eye-off-BwWZVfYl.mjs.map +1 -0
- package/artifacts/dist/line-facebook-Dbs04NuV.mjs +16 -0
- package/artifacts/dist/line-facebook-Dbs04NuV.mjs.map +1 -0
- package/artifacts/dist/line-file-BzYfmsK-.mjs +9 -0
- package/artifacts/dist/line-file-BzYfmsK-.mjs.map +1 -0
- package/artifacts/dist/line-file-share-BDPMlp3T.mjs +16 -0
- package/artifacts/dist/line-file-share-BDPMlp3T.mjs.map +1 -0
- package/artifacts/dist/line-filter-BLbRgK5q.mjs +16 -0
- package/artifacts/dist/line-filter-BLbRgK5q.mjs.map +1 -0
- package/artifacts/dist/line-flag-C869WIjo.mjs +9 -0
- package/artifacts/dist/line-flag-C869WIjo.mjs.map +1 -0
- package/artifacts/dist/line-folder-BvahNZxP.mjs +16 -0
- package/artifacts/dist/line-folder-BvahNZxP.mjs.map +1 -0
- package/artifacts/dist/line-globe-BxGB7Rya.mjs +16 -0
- package/artifacts/dist/line-globe-BxGB7Rya.mjs.map +1 -0
- package/artifacts/dist/line-hardware-settings-CP-T5at-.mjs +23 -0
- package/artifacts/dist/line-hardware-settings-CP-T5at-.mjs.map +1 -0
- package/artifacts/dist/line-health-xpe_yAPF.mjs +16 -0
- package/artifacts/dist/line-health-xpe_yAPF.mjs.map +1 -0
- package/artifacts/dist/line-help-support-C1WckTeE.mjs +16 -0
- package/artifacts/dist/line-help-support-C1WckTeE.mjs.map +1 -0
- package/artifacts/dist/line-home-Bq8nP6W2.mjs +16 -0
- package/artifacts/dist/line-home-Bq8nP6W2.mjs.map +1 -0
- package/artifacts/dist/line-info-mark-BBmQDEPd.mjs +16 -0
- package/artifacts/dist/line-info-mark-BBmQDEPd.mjs.map +1 -0
- package/artifacts/dist/line-instagram-DIgb62RM.mjs +23 -0
- package/artifacts/dist/line-instagram-DIgb62RM.mjs.map +1 -0
- package/artifacts/dist/line-layers-menu-BCElaXvM.mjs +30 -0
- package/artifacts/dist/line-layers-menu-BCElaXvM.mjs.map +1 -0
- package/artifacts/dist/line-linkedin-BwvrJOaZ.mjs +30 -0
- package/artifacts/dist/line-linkedin-BwvrJOaZ.mjs.map +1 -0
- package/artifacts/dist/line-list-1BeIvOqf.mjs +51 -0
- package/artifacts/dist/line-list-1BeIvOqf.mjs.map +1 -0
- package/artifacts/dist/line-loader-B7kcvx6i.mjs +65 -0
- package/artifacts/dist/line-loader-B7kcvx6i.mjs.map +1 -0
- package/artifacts/dist/line-lock-Bz1c0Qg_.mjs +16 -0
- package/artifacts/dist/line-lock-Bz1c0Qg_.mjs.map +1 -0
- package/artifacts/dist/line-log-in-0XjnY3DS.mjs +30 -0
- package/artifacts/dist/line-log-in-0XjnY3DS.mjs.map +1 -0
- package/artifacts/dist/line-log-out-Be1vNUO8.mjs +30 -0
- package/artifacts/dist/line-log-out-Be1vNUO8.mjs.map +1 -0
- package/artifacts/dist/line-mail-BM4oU1Cb.mjs +16 -0
- package/artifacts/dist/line-mail-BM4oU1Cb.mjs.map +1 -0
- package/artifacts/dist/line-mail-open-Dd2IiCeK.mjs +9 -0
- package/artifacts/dist/line-mail-open-Dd2IiCeK.mjs.map +1 -0
- package/artifacts/dist/line-map-C21RAFdm.mjs +16 -0
- package/artifacts/dist/line-map-C21RAFdm.mjs.map +1 -0
- package/artifacts/dist/line-map-pin-kjbPUdcx.mjs +23 -0
- package/artifacts/dist/line-map-pin-kjbPUdcx.mjs.map +1 -0
- package/artifacts/dist/line-mega-phone-B7t0tfLS.mjs +16 -0
- package/artifacts/dist/line-mega-phone-B7t0tfLS.mjs.map +1 -0
- package/artifacts/dist/line-menu-CYuqUsM-.mjs +30 -0
- package/artifacts/dist/line-menu-CYuqUsM-.mjs.map +1 -0
- package/artifacts/dist/line-mic-off-8NlUihDj.mjs +16 -0
- package/artifacts/dist/line-mic-off-8NlUihDj.mjs.map +1 -0
- package/artifacts/dist/line-mic-on-spKBPsUu.mjs +16 -0
- package/artifacts/dist/line-mic-on-spKBPsUu.mjs.map +1 -0
- package/artifacts/dist/line-minus-CaVcWkS-.mjs +16 -0
- package/artifacts/dist/line-minus-CaVcWkS-.mjs.map +1 -0
- package/artifacts/dist/line-minus-circle-YZvJcxR2.mjs +23 -0
- package/artifacts/dist/line-minus-circle-YZvJcxR2.mjs.map +1 -0
- package/artifacts/dist/line-money-taxes-DH6QfKKL.mjs +16 -0
- package/artifacts/dist/line-money-taxes-DH6QfKKL.mjs.map +1 -0
- package/artifacts/dist/line-monitor-DUEdEGY1.mjs +16 -0
- package/artifacts/dist/line-monitor-DUEdEGY1.mjs.map +1 -0
- package/artifacts/dist/line-more-horizontal-CJ2M9CoR.mjs +30 -0
- package/artifacts/dist/line-more-horizontal-CJ2M9CoR.mjs.map +1 -0
- package/artifacts/dist/line-more-vertical-jUtqPfx7.mjs +9 -0
- package/artifacts/dist/line-more-vertical-jUtqPfx7.mjs.map +1 -0
- package/artifacts/dist/line-movie-BWJN9R2q.mjs +9 -0
- package/artifacts/dist/line-movie-BWJN9R2q.mjs.map +1 -0
- package/artifacts/dist/line-music-Bh0ivoUc.mjs +9 -0
- package/artifacts/dist/line-music-Bh0ivoUc.mjs.map +1 -0
- package/artifacts/dist/line-package-CE1hKWHW.mjs +16 -0
- package/artifacts/dist/line-package-CE1hKWHW.mjs.map +1 -0
- package/artifacts/dist/line-paperclip-BfpDKOjT.mjs +16 -0
- package/artifacts/dist/line-paperclip-BfpDKOjT.mjs.map +1 -0
- package/artifacts/dist/line-plane-BSbdY4B9.mjs +16 -0
- package/artifacts/dist/line-plane-BSbdY4B9.mjs.map +1 -0
- package/artifacts/dist/line-plus-Dcvte5l7.mjs +9 -0
- package/artifacts/dist/line-plus-Dcvte5l7.mjs.map +1 -0
- package/artifacts/dist/line-plus-circle-vNGIsEUG.mjs +16 -0
- package/artifacts/dist/line-plus-circle-vNGIsEUG.mjs.map +1 -0
- package/artifacts/dist/line-print-BmI9Ny86.mjs +16 -0
- package/artifacts/dist/line-print-BmI9Ny86.mjs.map +1 -0
- package/artifacts/dist/line-question-mark-uBwxCj4-.mjs +16 -0
- package/artifacts/dist/line-question-mark-uBwxCj4-.mjs.map +1 -0
- package/artifacts/dist/line-refresh-ccw-Ke5eAqw3.mjs +9 -0
- package/artifacts/dist/line-refresh-ccw-Ke5eAqw3.mjs.map +1 -0
- package/artifacts/dist/line-search-tLoB3guT.mjs +16 -0
- package/artifacts/dist/line-search-tLoB3guT.mjs.map +1 -0
- package/artifacts/dist/line-settings-DXg1k1qQ.mjs +23 -0
- package/artifacts/dist/line-settings-DXg1k1qQ.mjs.map +1 -0
- package/artifacts/dist/line-share-ycr5TxYz.mjs +16 -0
- package/artifacts/dist/line-share-ycr5TxYz.mjs.map +1 -0
- package/artifacts/dist/line-shield-CvPsZ8kb.mjs +16 -0
- package/artifacts/dist/line-shield-CvPsZ8kb.mjs.map +1 -0
- package/artifacts/dist/line-smartphone-pn15MVJ_.mjs +16 -0
- package/artifacts/dist/line-smartphone-pn15MVJ_.mjs.map +1 -0
- package/artifacts/dist/line-smile-sad-Bmp316wL.mjs +37 -0
- package/artifacts/dist/line-smile-sad-Bmp316wL.mjs.map +1 -0
- package/artifacts/dist/line-social-security-DONOVxvT.mjs +30 -0
- package/artifacts/dist/line-social-security-DONOVxvT.mjs.map +1 -0
- package/artifacts/dist/line-sort-alpha-down-CPkM5mtz.mjs +16 -0
- package/artifacts/dist/line-sort-alpha-down-CPkM5mtz.mjs.map +1 -0
- package/artifacts/dist/line-sort-alpha-up-Bc_ykmlT.mjs +23 -0
- package/artifacts/dist/line-sort-alpha-up-Bc_ykmlT.mjs.map +1 -0
- package/artifacts/dist/line-sort-generic-down-Cu8WyLMj.mjs +9 -0
- package/artifacts/dist/line-sort-generic-down-Cu8WyLMj.mjs.map +1 -0
- package/artifacts/dist/line-sort-generic-up-iCV8WAIp.mjs +9 -0
- package/artifacts/dist/line-sort-generic-up-iCV8WAIp.mjs.map +1 -0
- package/artifacts/dist/line-sort-vertical-BhJF09g5.mjs +9 -0
- package/artifacts/dist/line-sort-vertical-BhJF09g5.mjs.map +1 -0
- package/artifacts/dist/line-star-DRxlXXj7.mjs +16 -0
- package/artifacts/dist/line-star-DRxlXXj7.mjs.map +1 -0
- package/artifacts/dist/line-straight-CP8KZBNh.mjs +9 -0
- package/artifacts/dist/line-straight-CP8KZBNh.mjs.map +1 -0
- package/artifacts/dist/line-tag-CUvDdaiF.mjs +9 -0
- package/artifacts/dist/line-tag-CUvDdaiF.mjs.map +1 -0
- package/artifacts/dist/line-target-BYfRFPW4.mjs +23 -0
- package/artifacts/dist/line-target-BYfRFPW4.mjs.map +1 -0
- package/artifacts/dist/line-thumbs-down-DavNX6us.mjs +16 -0
- package/artifacts/dist/line-thumbs-down-DavNX6us.mjs.map +1 -0
- package/artifacts/dist/line-thumbs-up-hYodXLe9.mjs +16 -0
- package/artifacts/dist/line-thumbs-up-hYodXLe9.mjs.map +1 -0
- package/artifacts/dist/line-ticket-D-P-ZR_6.mjs +16 -0
- package/artifacts/dist/line-ticket-D-P-ZR_6.mjs.map +1 -0
- package/artifacts/dist/line-trash-Cv6jv93F.mjs +16 -0
- package/artifacts/dist/line-trash-Cv6jv93F.mjs.map +1 -0
- package/artifacts/dist/line-tree-Nw7AEEG-.mjs +16 -0
- package/artifacts/dist/line-tree-Nw7AEEG-.mjs.map +1 -0
- package/artifacts/dist/line-truck-BgiJghNK.mjs +9 -0
- package/artifacts/dist/line-truck-BgiJghNK.mjs.map +1 -0
- package/artifacts/dist/line-twitter-bFsVWqEt.mjs +16 -0
- package/artifacts/dist/line-twitter-bFsVWqEt.mjs.map +1 -0
- package/artifacts/dist/line-twitter-x-wWjr2MKY.mjs +15 -0
- package/artifacts/dist/line-twitter-x-wWjr2MKY.mjs.map +1 -0
- package/artifacts/dist/line-unlock-PXl0EQIa.mjs +9 -0
- package/artifacts/dist/line-unlock-PXl0EQIa.mjs.map +1 -0
- package/artifacts/dist/line-upload-DHphNhIL.mjs +30 -0
- package/artifacts/dist/line-upload-DHphNhIL.mjs.map +1 -0
- package/artifacts/dist/line-user-B8teZBi7.mjs +16 -0
- package/artifacts/dist/line-user-B8teZBi7.mjs.map +1 -0
- package/artifacts/dist/line-user-group-PKm2Bgmf.mjs +16 -0
- package/artifacts/dist/line-user-group-PKm2Bgmf.mjs.map +1 -0
- package/artifacts/dist/line-video-off-BeGslMfh.mjs +16 -0
- package/artifacts/dist/line-video-off-BeGslMfh.mjs.map +1 -0
- package/artifacts/dist/line-video-on-VrJ-pqls.mjs +16 -0
- package/artifacts/dist/line-video-on-VrJ-pqls.mjs.map +1 -0
- package/artifacts/dist/line-volume-max-D9LtibvN.mjs +9 -0
- package/artifacts/dist/line-volume-max-D9LtibvN.mjs.map +1 -0
- package/artifacts/dist/line-volume-min-BUphvaEP.mjs +9 -0
- package/artifacts/dist/line-volume-min-BUphvaEP.mjs.map +1 -0
- package/artifacts/dist/line-volume-mute-C3hXqN_l.mjs +9 -0
- package/artifacts/dist/line-volume-mute-C3hXqN_l.mjs.map +1 -0
- package/artifacts/dist/line-volume-off-Bl7r3daC.mjs +16 -0
- package/artifacts/dist/line-volume-off-Bl7r3daC.mjs.map +1 -0
- package/artifacts/dist/line-wallet-DGUeUvgi.mjs +9 -0
- package/artifacts/dist/line-wallet-DGUeUvgi.mjs.map +1 -0
- package/artifacts/dist/line-wifi-nE0W0Dqe.mjs +9 -0
- package/artifacts/dist/line-wifi-nE0W0Dqe.mjs.map +1 -0
- package/artifacts/dist/line-x-EYXDQAB1.mjs +9 -0
- package/artifacts/dist/line-x-EYXDQAB1.mjs.map +1 -0
- package/artifacts/dist/line-x-circle-BSVtpm5Q.mjs +30 -0
- package/artifacts/dist/line-x-circle-BSVtpm5Q.mjs.map +1 -0
- package/artifacts/dist/line-youtube-C_pFdE1_.mjs +23 -0
- package/artifacts/dist/line-youtube-C_pFdE1_.mjs.map +1 -0
- package/artifacts/dist/line-zig-CWSqc6Fw.mjs +18 -0
- package/artifacts/dist/line-zig-CWSqc6Fw.mjs.map +1 -0
- package/artifacts/dist/line-zig-zag-TxwOMIxf.mjs +18 -0
- package/artifacts/dist/line-zig-zag-TxwOMIxf.mjs.map +1 -0
- package/artifacts/dist/solid-airplay-CT7RRjBg.mjs +16 -0
- package/artifacts/dist/solid-airplay-CT7RRjBg.mjs.map +1 -0
- package/artifacts/dist/solid-alert-circle-iILtiNWn.mjs +16 -0
- package/artifacts/dist/solid-alert-circle-iILtiNWn.mjs.map +1 -0
- package/artifacts/dist/solid-alert-triangle-zSUf2OLz.mjs +16 -0
- package/artifacts/dist/solid-alert-triangle-zSUf2OLz.mjs.map +1 -0
- package/artifacts/dist/solid-arrow-down-CX5JrUuD.mjs +9 -0
- package/artifacts/dist/solid-arrow-down-CX5JrUuD.mjs.map +1 -0
- package/artifacts/dist/solid-arrow-down-anchor-CBEKEuwD.mjs +16 -0
- package/artifacts/dist/solid-arrow-down-anchor-CBEKEuwD.mjs.map +1 -0
- package/artifacts/dist/solid-arrow-down-circle-DzG3htuU.mjs +16 -0
- package/artifacts/dist/solid-arrow-down-circle-DzG3htuU.mjs.map +1 -0
- package/artifacts/dist/solid-arrow-left-CyI5Jp34.mjs +9 -0
- package/artifacts/dist/solid-arrow-left-CyI5Jp34.mjs.map +1 -0
- package/artifacts/dist/solid-arrow-left-anchor-KIYCVwa3.mjs +16 -0
- package/artifacts/dist/solid-arrow-left-anchor-KIYCVwa3.mjs.map +1 -0
- package/artifacts/dist/solid-arrow-left-circle-CMhznJGN.mjs +16 -0
- package/artifacts/dist/solid-arrow-left-circle-CMhznJGN.mjs.map +1 -0
- package/artifacts/dist/solid-arrow-right-anchor-klXwk51M.mjs +16 -0
- package/artifacts/dist/solid-arrow-right-anchor-klXwk51M.mjs.map +1 -0
- package/artifacts/dist/solid-arrow-right-circle-Dlt-duIk.mjs +16 -0
- package/artifacts/dist/solid-arrow-right-circle-Dlt-duIk.mjs.map +1 -0
- package/artifacts/dist/solid-arrow-right-qKB7Du8n.mjs +9 -0
- package/artifacts/dist/solid-arrow-right-qKB7Du8n.mjs.map +1 -0
- package/artifacts/dist/solid-arrow-up-BO_loNqc.mjs +9 -0
- package/artifacts/dist/solid-arrow-up-BO_loNqc.mjs.map +1 -0
- package/artifacts/dist/solid-arrow-up-anchor-BKZVSnhn.mjs +16 -0
- package/artifacts/dist/solid-arrow-up-anchor-BKZVSnhn.mjs.map +1 -0
- package/artifacts/dist/solid-arrow-up-circle-Is76Hjia.mjs +16 -0
- package/artifacts/dist/solid-arrow-up-circle-Is76Hjia.mjs.map +1 -0
- package/artifacts/dist/solid-at-sign-B_WfKdyo.mjs +16 -0
- package/artifacts/dist/solid-at-sign-B_WfKdyo.mjs.map +1 -0
- package/artifacts/dist/solid-award-Di_C_RO0.mjs +9 -0
- package/artifacts/dist/solid-award-Di_C_RO0.mjs.map +1 -0
- package/artifacts/dist/solid-bell-CJrlCAhM.mjs +9 -0
- package/artifacts/dist/solid-bell-CJrlCAhM.mjs.map +1 -0
- package/artifacts/dist/solid-book-open-BfLxRgyb.mjs +16 -0
- package/artifacts/dist/solid-book-open-BfLxRgyb.mjs.map +1 -0
- package/artifacts/dist/solid-bookmark-DhCU3Bpl.mjs +9 -0
- package/artifacts/dist/solid-bookmark-DhCU3Bpl.mjs.map +1 -0
- package/artifacts/dist/solid-bookmark-card-Cx3XFRpC.mjs +9 -0
- package/artifacts/dist/solid-bookmark-card-Cx3XFRpC.mjs.map +1 -0
- package/artifacts/dist/solid-briefcase-CW2CUBvW.mjs +16 -0
- package/artifacts/dist/solid-briefcase-CW2CUBvW.mjs.map +1 -0
- package/artifacts/dist/solid-buildings-CqKELo8z.mjs +16 -0
- package/artifacts/dist/solid-buildings-CqKELo8z.mjs.map +1 -0
- package/artifacts/dist/solid-bullet-D_W-NMzx.mjs +9 -0
- package/artifacts/dist/solid-bullet-D_W-NMzx.mjs.map +1 -0
- package/artifacts/dist/solid-bus-BjkjP6JF.mjs +16 -0
- package/artifacts/dist/solid-bus-BjkjP6JF.mjs.map +1 -0
- package/artifacts/dist/solid-calculator-B1z2MoxO.mjs +16 -0
- package/artifacts/dist/solid-calculator-B1z2MoxO.mjs.map +1 -0
- package/artifacts/dist/solid-calendar-B-lr4pRu.mjs +16 -0
- package/artifacts/dist/solid-calendar-B-lr4pRu.mjs.map +1 -0
- package/artifacts/dist/solid-camera-DyR-lfxz.mjs +16 -0
- package/artifacts/dist/solid-camera-DyR-lfxz.mjs.map +1 -0
- package/artifacts/dist/solid-chat-CMjPFcul.mjs +9 -0
- package/artifacts/dist/solid-chat-CMjPFcul.mjs.map +1 -0
- package/artifacts/dist/solid-check-CbZk3c9L.mjs +16 -0
- package/artifacts/dist/solid-check-CbZk3c9L.mjs.map +1 -0
- package/artifacts/dist/solid-check-all-0HIc8qFI.mjs +16 -0
- package/artifacts/dist/solid-check-all-0HIc8qFI.mjs.map +1 -0
- package/artifacts/dist/solid-check-circle--TrUqUcc.mjs +16 -0
- package/artifacts/dist/solid-check-circle--TrUqUcc.mjs.map +1 -0
- package/artifacts/dist/solid-chevron-down-B3sQSuhs.mjs +16 -0
- package/artifacts/dist/solid-chevron-down-B3sQSuhs.mjs.map +1 -0
- package/artifacts/dist/solid-chevron-left-Bq0z72NT.mjs +16 -0
- package/artifacts/dist/solid-chevron-left-Bq0z72NT.mjs.map +1 -0
- package/artifacts/dist/solid-chevron-right-BsvTj2M9.mjs +16 -0
- package/artifacts/dist/solid-chevron-right-BsvTj2M9.mjs.map +1 -0
- package/artifacts/dist/solid-chevron-up-Bz446Fjn.mjs +16 -0
- package/artifacts/dist/solid-chevron-up-Bz446Fjn.mjs.map +1 -0
- package/artifacts/dist/solid-chevrons-down-CZVmuzMN.mjs +9 -0
- package/artifacts/dist/solid-chevrons-down-CZVmuzMN.mjs.map +1 -0
- package/artifacts/dist/solid-chevrons-left-CPoYihuy.mjs +9 -0
- package/artifacts/dist/solid-chevrons-left-CPoYihuy.mjs.map +1 -0
- package/artifacts/dist/solid-chevrons-right-DVWJzOT1.mjs +9 -0
- package/artifacts/dist/solid-chevrons-right-DVWJzOT1.mjs.map +1 -0
- package/artifacts/dist/solid-chevrons-up-BMucqcuI.mjs +9 -0
- package/artifacts/dist/solid-chevrons-up-BMucqcuI.mjs.map +1 -0
- package/artifacts/dist/solid-clock-Blaco-4T.mjs +16 -0
- package/artifacts/dist/solid-clock-Blaco-4T.mjs.map +1 -0
- package/artifacts/dist/solid-coffee-Cuy78lZv.mjs +16 -0
- package/artifacts/dist/solid-coffee-Cuy78lZv.mjs.map +1 -0
- package/artifacts/dist/solid-court-C0gj8xN-.mjs +16 -0
- package/artifacts/dist/solid-court-C0gj8xN-.mjs.map +1 -0
- package/artifacts/dist/solid-credit-card-DVtYZKEg.mjs +16 -0
- package/artifacts/dist/solid-credit-card-DVtYZKEg.mjs.map +1 -0
- package/artifacts/dist/solid-dashboard-0VyWUmku.mjs +72 -0
- package/artifacts/dist/solid-dashboard-0VyWUmku.mjs.map +1 -0
- package/artifacts/dist/solid-delete-A2DvUg-1.mjs +9 -0
- package/artifacts/dist/solid-delete-A2DvUg-1.mjs.map +1 -0
- package/artifacts/dist/solid-document-DVWx0xF7.mjs +9 -0
- package/artifacts/dist/solid-document-DVWx0xF7.mjs.map +1 -0
- package/artifacts/dist/solid-download-CS0fEB85.mjs +30 -0
- package/artifacts/dist/solid-download-CS0fEB85.mjs.map +1 -0
- package/artifacts/dist/solid-driving-CDmZMkb-.mjs +16 -0
- package/artifacts/dist/solid-driving-CDmZMkb-.mjs.map +1 -0
- package/artifacts/dist/solid-edit-Cb8mTNDc.mjs +9 -0
- package/artifacts/dist/solid-edit-Cb8mTNDc.mjs.map +1 -0
- package/artifacts/dist/solid-external-link-ecodBt_c.mjs +30 -0
- package/artifacts/dist/solid-external-link-ecodBt_c.mjs.map +1 -0
- package/artifacts/dist/solid-eye-DEvHWA5Z.mjs +9 -0
- package/artifacts/dist/solid-eye-DEvHWA5Z.mjs.map +1 -0
- package/artifacts/dist/solid-eye-off-Y3H8Hpxt.mjs +9 -0
- package/artifacts/dist/solid-eye-off-Y3H8Hpxt.mjs.map +1 -0
- package/artifacts/dist/solid-facebook-Cs3SwdaS.mjs +9 -0
- package/artifacts/dist/solid-facebook-Cs3SwdaS.mjs.map +1 -0
- package/artifacts/dist/solid-file-ZTr4auT0.mjs +9 -0
- package/artifacts/dist/solid-file-ZTr4auT0.mjs.map +1 -0
- package/artifacts/dist/solid-file-share-mnXTWdo6.mjs +16 -0
- package/artifacts/dist/solid-file-share-mnXTWdo6.mjs.map +1 -0
- package/artifacts/dist/solid-filter-CZP5ysMS.mjs +9 -0
- package/artifacts/dist/solid-filter-CZP5ysMS.mjs.map +1 -0
- package/artifacts/dist/solid-flag-B_wRXQ2v.mjs +9 -0
- package/artifacts/dist/solid-flag-B_wRXQ2v.mjs.map +1 -0
- package/artifacts/dist/solid-folder-P6AYl1CG.mjs +9 -0
- package/artifacts/dist/solid-folder-P6AYl1CG.mjs.map +1 -0
- package/artifacts/dist/solid-globe-BxGB7Rya.mjs +16 -0
- package/artifacts/dist/solid-globe-BxGB7Rya.mjs.map +1 -0
- package/artifacts/dist/solid-hardware-settings-BsSxijop.mjs +16 -0
- package/artifacts/dist/solid-hardware-settings-BsSxijop.mjs.map +1 -0
- package/artifacts/dist/solid-health-xpe_yAPF.mjs +16 -0
- package/artifacts/dist/solid-health-xpe_yAPF.mjs.map +1 -0
- package/artifacts/dist/solid-help-support-DEfn1qOc.mjs +9 -0
- package/artifacts/dist/solid-help-support-DEfn1qOc.mjs.map +1 -0
- package/artifacts/dist/solid-home-DbOM72CM.mjs +16 -0
- package/artifacts/dist/solid-home-DbOM72CM.mjs.map +1 -0
- package/artifacts/dist/solid-info-mark-CkiMhR98.mjs +16 -0
- package/artifacts/dist/solid-info-mark-CkiMhR98.mjs.map +1 -0
- package/artifacts/dist/solid-instagram-dFoonqpB.mjs +16 -0
- package/artifacts/dist/solid-instagram-dFoonqpB.mjs.map +1 -0
- package/artifacts/dist/solid-layers-menu-K5z6Zm9a.mjs +16 -0
- package/artifacts/dist/solid-layers-menu-K5z6Zm9a.mjs.map +1 -0
- package/artifacts/dist/solid-linkedin-BON4bfmF.mjs +9 -0
- package/artifacts/dist/solid-linkedin-BON4bfmF.mjs.map +1 -0
- package/artifacts/dist/solid-list-1BeIvOqf.mjs +51 -0
- package/artifacts/dist/solid-list-1BeIvOqf.mjs.map +1 -0
- package/artifacts/dist/solid-loader-B7kcvx6i.mjs +65 -0
- package/artifacts/dist/solid-loader-B7kcvx6i.mjs.map +1 -0
- package/artifacts/dist/solid-lock-NkvOHDIt.mjs +16 -0
- package/artifacts/dist/solid-lock-NkvOHDIt.mjs.map +1 -0
- package/artifacts/dist/solid-log-in-0XjnY3DS.mjs +30 -0
- package/artifacts/dist/solid-log-in-0XjnY3DS.mjs.map +1 -0
- package/artifacts/dist/solid-log-out-Be1vNUO8.mjs +30 -0
- package/artifacts/dist/solid-log-out-Be1vNUO8.mjs.map +1 -0
- package/artifacts/dist/solid-mail-DeBwducj.mjs +16 -0
- package/artifacts/dist/solid-mail-DeBwducj.mjs.map +1 -0
- package/artifacts/dist/solid-mail-open-BH9yBQjU.mjs +9 -0
- package/artifacts/dist/solid-mail-open-BH9yBQjU.mjs.map +1 -0
- package/artifacts/dist/solid-map-LEhls5fx.mjs +16 -0
- package/artifacts/dist/solid-map-LEhls5fx.mjs.map +1 -0
- package/artifacts/dist/solid-map-pin-BVb-3Vzu.mjs +9 -0
- package/artifacts/dist/solid-map-pin-BVb-3Vzu.mjs.map +1 -0
- package/artifacts/dist/solid-mega-phone-CpvfoRJL.mjs +16 -0
- package/artifacts/dist/solid-mega-phone-CpvfoRJL.mjs.map +1 -0
- package/artifacts/dist/solid-menu-CYuqUsM-.mjs +30 -0
- package/artifacts/dist/solid-menu-CYuqUsM-.mjs.map +1 -0
- package/artifacts/dist/solid-mic-off-CEQHtc18.mjs +9 -0
- package/artifacts/dist/solid-mic-off-CEQHtc18.mjs.map +1 -0
- package/artifacts/dist/solid-mic-on-BmZBy1wd.mjs +16 -0
- package/artifacts/dist/solid-mic-on-BmZBy1wd.mjs.map +1 -0
- package/artifacts/dist/solid-minus-CaVcWkS-.mjs +16 -0
- package/artifacts/dist/solid-minus-CaVcWkS-.mjs.map +1 -0
- package/artifacts/dist/solid-minus-circle-BLZIX0en.mjs +16 -0
- package/artifacts/dist/solid-minus-circle-BLZIX0en.mjs.map +1 -0
- package/artifacts/dist/solid-money-taxes-DS98Crhf.mjs +16 -0
- package/artifacts/dist/solid-money-taxes-DS98Crhf.mjs.map +1 -0
- package/artifacts/dist/solid-monitor-D_OJfufu.mjs +9 -0
- package/artifacts/dist/solid-monitor-D_OJfufu.mjs.map +1 -0
- package/artifacts/dist/solid-more-horizontal-CJ2M9CoR.mjs +30 -0
- package/artifacts/dist/solid-more-horizontal-CJ2M9CoR.mjs.map +1 -0
- package/artifacts/dist/solid-more-vertical-jUtqPfx7.mjs +9 -0
- package/artifacts/dist/solid-more-vertical-jUtqPfx7.mjs.map +1 -0
- package/artifacts/dist/solid-movie-CISseVf5.mjs +9 -0
- package/artifacts/dist/solid-movie-CISseVf5.mjs.map +1 -0
- package/artifacts/dist/solid-music-DqGRxIgM.mjs +9 -0
- package/artifacts/dist/solid-music-DqGRxIgM.mjs.map +1 -0
- package/artifacts/dist/solid-package-Cml-SIak.mjs +16 -0
- package/artifacts/dist/solid-package-Cml-SIak.mjs.map +1 -0
- package/artifacts/dist/solid-paperclip-BfpDKOjT.mjs +16 -0
- package/artifacts/dist/solid-paperclip-BfpDKOjT.mjs.map +1 -0
- package/artifacts/dist/solid-plane-DBfQUeU0.mjs +16 -0
- package/artifacts/dist/solid-plane-DBfQUeU0.mjs.map +1 -0
- package/artifacts/dist/solid-plus-Dcvte5l7.mjs +9 -0
- package/artifacts/dist/solid-plus-Dcvte5l7.mjs.map +1 -0
- package/artifacts/dist/solid-plus-circle-Cf8cg-zW.mjs +16 -0
- package/artifacts/dist/solid-plus-circle-Cf8cg-zW.mjs.map +1 -0
- package/artifacts/dist/solid-print-DdU8uBcE.mjs +16 -0
- package/artifacts/dist/solid-print-DdU8uBcE.mjs.map +1 -0
- package/artifacts/dist/solid-question-mark-Chj3QN6q.mjs +9 -0
- package/artifacts/dist/solid-question-mark-Chj3QN6q.mjs.map +1 -0
- package/artifacts/dist/solid-refresh-ccw-CV7R6gep.mjs +9 -0
- package/artifacts/dist/solid-refresh-ccw-CV7R6gep.mjs.map +1 -0
- package/artifacts/dist/solid-search-CXc3lnhQ.mjs +9 -0
- package/artifacts/dist/solid-search-CXc3lnhQ.mjs.map +1 -0
- package/artifacts/dist/solid-settings-Dv1JiBGZ.mjs +9 -0
- package/artifacts/dist/solid-settings-Dv1JiBGZ.mjs.map +1 -0
- package/artifacts/dist/solid-share-BpTJjztR.mjs +9 -0
- package/artifacts/dist/solid-share-BpTJjztR.mjs.map +1 -0
- package/artifacts/dist/solid-shield-Buhk2x9X.mjs +16 -0
- package/artifacts/dist/solid-shield-Buhk2x9X.mjs.map +1 -0
- package/artifacts/dist/solid-smartphone-BYwhxf7g.mjs +16 -0
- package/artifacts/dist/solid-smartphone-BYwhxf7g.mjs.map +1 -0
- package/artifacts/dist/solid-smile-sad-DekTD0X2.mjs +16 -0
- package/artifacts/dist/solid-smile-sad-DekTD0X2.mjs.map +1 -0
- package/artifacts/dist/solid-social-security-3CFMj1A-.mjs +16 -0
- package/artifacts/dist/solid-social-security-3CFMj1A-.mjs.map +1 -0
- package/artifacts/dist/solid-sort-alpha-down-CPkM5mtz.mjs +16 -0
- package/artifacts/dist/solid-sort-alpha-down-CPkM5mtz.mjs.map +1 -0
- package/artifacts/dist/solid-sort-alpha-up-Bc_ykmlT.mjs +23 -0
- package/artifacts/dist/solid-sort-alpha-up-Bc_ykmlT.mjs.map +1 -0
- package/artifacts/dist/solid-sort-generic-down-Cu8WyLMj.mjs +9 -0
- package/artifacts/dist/solid-sort-generic-down-Cu8WyLMj.mjs.map +1 -0
- package/artifacts/dist/solid-sort-generic-up-iCV8WAIp.mjs +9 -0
- package/artifacts/dist/solid-sort-generic-up-iCV8WAIp.mjs.map +1 -0
- package/artifacts/dist/solid-sort-vertical-BhJF09g5.mjs +9 -0
- package/artifacts/dist/solid-sort-vertical-BhJF09g5.mjs.map +1 -0
- package/artifacts/dist/solid-star-B4M3yY34.mjs +9 -0
- package/artifacts/dist/solid-star-B4M3yY34.mjs.map +1 -0
- package/artifacts/dist/solid-tag-DrTNDYKR.mjs +9 -0
- package/artifacts/dist/solid-tag-DrTNDYKR.mjs.map +1 -0
- package/artifacts/dist/solid-target-wVW1wKsd.mjs +16 -0
- package/artifacts/dist/solid-target-wVW1wKsd.mjs.map +1 -0
- package/artifacts/dist/solid-thumbs-down-S82cmWj0.mjs +9 -0
- package/artifacts/dist/solid-thumbs-down-S82cmWj0.mjs.map +1 -0
- package/artifacts/dist/solid-thumbs-up-_ZG8Mp3d.mjs +9 -0
- package/artifacts/dist/solid-thumbs-up-_ZG8Mp3d.mjs.map +1 -0
- package/artifacts/dist/solid-ticket-Dnm3p6Wi.mjs +9 -0
- package/artifacts/dist/solid-ticket-Dnm3p6Wi.mjs.map +1 -0
- package/artifacts/dist/solid-trash-5lB6fyxC.mjs +16 -0
- package/artifacts/dist/solid-trash-5lB6fyxC.mjs.map +1 -0
- package/artifacts/dist/solid-tree-DjDhEbtZ.mjs +9 -0
- package/artifacts/dist/solid-tree-DjDhEbtZ.mjs.map +1 -0
- package/artifacts/dist/solid-truck-Chv6gpCm.mjs +9 -0
- package/artifacts/dist/solid-truck-Chv6gpCm.mjs.map +1 -0
- package/artifacts/dist/solid-twitter-55xSFanC.mjs +9 -0
- package/artifacts/dist/solid-twitter-55xSFanC.mjs.map +1 -0
- package/artifacts/dist/solid-twitter-x-CSJZH-6d.mjs +15 -0
- package/artifacts/dist/solid-twitter-x-CSJZH-6d.mjs.map +1 -0
- package/artifacts/dist/solid-unlock-0FTr274Z.mjs +9 -0
- package/artifacts/dist/solid-unlock-0FTr274Z.mjs.map +1 -0
- package/artifacts/dist/solid-upload-FT0yDefS.mjs +30 -0
- package/artifacts/dist/solid-upload-FT0yDefS.mjs.map +1 -0
- package/artifacts/dist/solid-user-BbVoFJ2R.mjs +9 -0
- package/artifacts/dist/solid-user-BbVoFJ2R.mjs.map +1 -0
- package/artifacts/dist/solid-user-group-f4Ena9xy.mjs +9 -0
- package/artifacts/dist/solid-user-group-f4Ena9xy.mjs.map +1 -0
- package/artifacts/dist/solid-video-off-DgldJgXo.mjs +16 -0
- package/artifacts/dist/solid-video-off-DgldJgXo.mjs.map +1 -0
- package/artifacts/dist/solid-video-on-C3ZXzD5Z.mjs +9 -0
- package/artifacts/dist/solid-video-on-C3ZXzD5Z.mjs.map +1 -0
- package/artifacts/dist/solid-volume-max-BOexNQ32.mjs +9 -0
- package/artifacts/dist/solid-volume-max-BOexNQ32.mjs.map +1 -0
- package/artifacts/dist/solid-volume-min-DvN4XS_N.mjs +9 -0
- package/artifacts/dist/solid-volume-min-DvN4XS_N.mjs.map +1 -0
- package/artifacts/dist/solid-volume-mute-DTtOIBZb.mjs +9 -0
- package/artifacts/dist/solid-volume-mute-DTtOIBZb.mjs.map +1 -0
- package/artifacts/dist/solid-volume-off-CB9nMabs.mjs +16 -0
- package/artifacts/dist/solid-volume-off-CB9nMabs.mjs.map +1 -0
- package/artifacts/dist/solid-wallet-B1Gs6W1s.mjs +9 -0
- package/artifacts/dist/solid-wallet-B1Gs6W1s.mjs.map +1 -0
- package/artifacts/dist/solid-wifi-nE0W0Dqe.mjs +9 -0
- package/artifacts/dist/solid-wifi-nE0W0Dqe.mjs.map +1 -0
- package/artifacts/dist/solid-x-EYXDQAB1.mjs +9 -0
- package/artifacts/dist/solid-x-EYXDQAB1.mjs.map +1 -0
- package/artifacts/dist/solid-x-circle-D-azXjMK.mjs +16 -0
- package/artifacts/dist/solid-x-circle-D-azXjMK.mjs.map +1 -0
- package/artifacts/dist/solid-youtube-bQdqgmwi.mjs +16 -0
- package/artifacts/dist/solid-youtube-bQdqgmwi.mjs.map +1 -0
- package/artifacts/dist/types/components/accordion/accordion.d.ts +60 -0
- package/artifacts/dist/types/components/accordion/index.d.ts +2 -0
- package/artifacts/dist/types/components/accordion-group/accordion-group.d.ts +15 -0
- package/artifacts/dist/types/components/anchor/anchor.d.ts +67 -0
- package/artifacts/dist/types/components/avatar/avatar.d.ts +73 -0
- package/artifacts/dist/types/components/avatar/interactive-avatar.d.ts +9 -0
- package/artifacts/dist/types/components/avatar/non-interactive-avatar.d.ts +8 -0
- package/artifacts/dist/types/components/avatar-group/avatar-group.d.ts +24 -0
- package/artifacts/dist/types/components/avatar-group/visible-count-avatar-group.d.ts +9 -0
- package/artifacts/dist/types/components/back-to-top/back-to-top.d.ts +31 -0
- package/artifacts/dist/types/components/breadcrumb/breadcrumb.d.ts +27 -0
- package/artifacts/dist/types/components/breadcrumb/desktop/breadcrumb-desktop.d.ts +4 -0
- package/artifacts/dist/types/components/breadcrumb/mobile/breadcrumb-mobile.d.ts +4 -0
- package/artifacts/dist/types/components/button/button.d.ts +68 -0
- package/artifacts/dist/types/components/button-group/button-group.d.ts +41 -0
- package/artifacts/dist/types/components/button-group/index.d.ts +2 -0
- package/artifacts/dist/types/components/cards/card-article/card-article.d.ts +49 -0
- package/artifacts/dist/types/components/cards/card-article/index.d.ts +2 -0
- package/artifacts/dist/types/components/cards/card-collection/card-collection.d.ts +27 -0
- package/artifacts/dist/types/components/cards/card-emphasize/card-emphasize.d.ts +31 -0
- package/artifacts/dist/types/components/cards/card-error/card-error.d.ts +34 -0
- package/artifacts/dist/types/components/cards/card-expandable/card-expandable.d.ts +23 -0
- package/artifacts/dist/types/components/cards/card-frame/card-frame.d.ts +27 -0
- package/artifacts/dist/types/components/cards/card-full-image/card-full-image.d.ts +16 -0
- package/artifacts/dist/types/components/cards/card-hero-helper/card-hero-helper.d.ts +27 -0
- package/artifacts/dist/types/components/cards/card-hero-index/card-hero-index.d.ts +19 -0
- package/artifacts/dist/types/components/cards/card-hero-sitemap/card-hero-sitemap.d.ts +27 -0
- package/artifacts/dist/types/components/cards/card-highlight/card-highlight.d.ts +46 -0
- package/artifacts/dist/types/components/cards/card-highlight/shared/inner-highlight-card.d.ts +27 -0
- package/artifacts/dist/types/components/cards/card-highlight-newsletter/card-highlight-newsletter.d.ts +22 -0
- package/artifacts/dist/types/components/cards/card-highlight-single/card-highlight-single.d.ts +23 -0
- package/artifacts/dist/types/components/cards/card-highlight-single/index.d.ts +2 -0
- package/artifacts/dist/types/components/cards/card-links/card-links.d.ts +39 -0
- package/artifacts/dist/types/components/cards/card-no-results/card-no-results.d.ts +26 -0
- package/artifacts/dist/types/components/cards/card-no-results/index.d.ts +2 -0
- package/artifacts/dist/types/components/cards/card-search-result/card-search-result.d.ts +39 -0
- package/artifacts/dist/types/components/cards/card-single/card-single.d.ts +40 -0
- package/artifacts/dist/types/components/cards/card-single/index.d.ts +2 -0
- package/artifacts/dist/types/components/cards/card-topic/card-topic.d.ts +51 -0
- package/artifacts/dist/types/components/checkbox/checkbox.d.ts +39 -0
- package/artifacts/dist/types/components/checkbox-group/checkbox-group.d.ts +35 -0
- package/artifacts/dist/types/components/dialog/dialog.d.ts +41 -0
- package/artifacts/dist/types/components/dialog/index.d.ts +2 -0
- package/artifacts/dist/types/components/drawer/drawer.d.ts +49 -0
- package/artifacts/dist/types/components/drawer/index.d.ts +2 -0
- package/artifacts/dist/types/components/dropdown/dropdown-option.d.ts +37 -0
- package/artifacts/dist/types/components/dropdown/dropdown-section.d.ts +21 -0
- package/artifacts/dist/types/components/dropdown/dropdown.d.ts +71 -0
- package/artifacts/dist/types/components/dropdown/index.d.ts +7 -0
- package/artifacts/dist/types/components/dropdown/internals/internal-dropdown-context.d.ts +28 -0
- package/artifacts/dist/types/components/dropdown/internals/internal-dropdown-option.d.ts +17 -0
- package/artifacts/dist/types/components/dropdown/internals/internal-dropdown-section.d.ts +12 -0
- package/artifacts/dist/types/components/dropdown/internals/internal-dropdown-select-all-section.d.ts +6 -0
- package/artifacts/dist/types/components/dropdown/internals/internal-dropdown.d.ts +17 -0
- package/artifacts/dist/types/components/dropdown/internals/use-dropdown-state.d.ts +7 -0
- package/artifacts/dist/types/components/feedback/feedback.d.ts +31 -0
- package/artifacts/dist/types/components/footer/federated-footer/federated-footer-card.d.ts +4 -0
- package/artifacts/dist/types/components/footer/federated-footer/federated-footer.d.ts +36 -0
- package/artifacts/dist/types/components/glossary-letters/glossary-letters.d.ts +25 -0
- package/artifacts/dist/types/components/header/header.d.ts +64 -0
- package/artifacts/dist/types/components/header/models/MenuProps.d.ts +10 -0
- package/artifacts/dist/types/components/header/models/SearchContentListLinkProps.d.ts +6 -0
- package/artifacts/dist/types/components/header/models/SubmenuItemProps.d.ts +24 -0
- package/artifacts/dist/types/components/header/models/SubmenuSearchContentProps.d.ts +12 -0
- package/artifacts/dist/types/components/header/shared-components/header-burger-navigation/header-burger-primary-navigation.d.ts +15 -0
- package/artifacts/dist/types/components/header/shared-components/header-burger-navigation/header-burger-secondary-navigation.d.ts +17 -0
- package/artifacts/dist/types/components/header/shared-components/header-general-options/header-general-options.d.ts +37 -0
- package/artifacts/dist/types/components/header/shared-components/header-navigation/header-navigation.d.ts +38 -0
- package/artifacts/dist/types/components/header/utils/handle-click-menu-item.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/empty-icon.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/index.d.ts +6 -0
- package/artifacts/dist/types/components/icon/assets/line/line-airplay.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-alert-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-alert-triangle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-arrow-down-anchor.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-arrow-down-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-arrow-down.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-arrow-left-anchor.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-arrow-left-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-arrow-left.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-arrow-right-anchor.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-arrow-right-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-arrow-right.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-arrow-up-anchor.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-arrow-up-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-arrow-up.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-at-sign.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-award.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-bell.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-book-open.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-bookmark-card.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-bookmark.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-briefcase.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-buildings.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-bullet.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-bus.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-calculator.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-calendar.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-camera.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-chat.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-check-all.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-check-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-check.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-chevron-down.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-chevron-left.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-chevron-right.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-chevron-up.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-chevrons-down.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-chevrons-left.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-chevrons-right.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-chevrons-up.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-clock.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-coffee.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-court.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-credit-card.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-dashboard.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-delete.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-document.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-download.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-driving.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-edit.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-external-link.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-eye-off.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-eye.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-facebook.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-file-share.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-file.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-filter.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-flag.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-folder.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-globe.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-hardware-settings.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-health.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-help-support.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-home.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-info-mark.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-instagram.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-layers-menu.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-linkedin.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-list.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-loader.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-lock.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-log-in.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-log-out.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-mail-open.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-mail.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-map-pin.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-map.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-mega-phone.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-menu.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-mic-off.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-mic-on.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-minus-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-minus.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-money-taxes.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-monitor.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-more-horizontal.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-more-vertical.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-movie.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-music.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-package.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-paperclip.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-plane.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-plus-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-plus.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-print.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-question-mark.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-refresh-ccw.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-search.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-settings.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-share.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-shield.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-smartphone.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-smile-sad.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-social-security.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-sort-alpha-down.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-sort-alpha-up.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-sort-generic-down.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-sort-generic-up.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-sort-vertical.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-star.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-tag.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-target.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-thumbs-down.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-thumbs-up.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-ticket.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-trash.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-tree.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-truck.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-twitter-x.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-twitter.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-unlock.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-upload.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-user-group.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-user.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-video-off.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-video-on.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-volume-max.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-volume-min.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-volume-mute.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-volume-off.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-wallet.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-wifi.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-x-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-x.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/line/line-youtube.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/other/agora.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/other/drag-dots.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-airplay.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-alert-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-alert-triangle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-down-anchor.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-down-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-down.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-left-anchor.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-left-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-left.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-right-anchor.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-right-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-right.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-up-anchor.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-up-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-up.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-at-sign.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-award.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-bell.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-book-open.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-bookmark-card.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-bookmark.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-briefcase.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-buildings.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-bullet.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-bus.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-calculator.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-calendar.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-camera.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-chat.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-check-all.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-check-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-check.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-chevron-down.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-chevron-left.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-chevron-right.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-chevron-up.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-chevrons-down.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-chevrons-left.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-chevrons-right.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-chevrons-up.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-clock.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-coffee.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-court.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-credit-card.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-dashboard.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-delete.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-document.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-download.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-driving.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-edit.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-external-link.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-eye-off.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-eye.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-facebook.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-file-share.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-file.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-filter.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-flag.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-folder.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-globe.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-hardware-settings.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-health.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-help-support.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-home.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-info-mark.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-instagram.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-layers-menu.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-linkedin.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-list.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-loader.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-lock.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-log-in.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-log-out.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-mail-open.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-mail.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-map-pin.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-map.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-mega-phone.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-menu.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-mic-off.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-mic-on.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-minus-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-minus.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-money-taxes.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-monitor.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-more-horizontal.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-more-vertical.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-movie.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-music.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-package.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-paperclip.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-plane.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-plus-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-plus.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-print.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-question-mark.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-refresh-ccw.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-search.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-settings.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-share.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-shield.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-smartphone.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-smile-sad.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-social-security.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-sort-alpha-down.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-sort-alpha-up.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-sort-generic-down.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-sort-generic-up.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-sort-vertical.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-star.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-tag.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-target.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-thumbs-down.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-thumbs-up.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-ticket.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-trash.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-tree.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-truck.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-twitter-x.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-twitter.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-unlock.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-upload.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-user-group.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-user.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-video-off.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-video-on.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-volume-max.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-volume-min.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-volume-mute.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-volume-off.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-wallet.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-wifi.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-x-circle.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-x.d.ts +4 -0
- package/artifacts/dist/types/components/icon/assets/solid/solid-youtube.d.ts +4 -0
- package/artifacts/dist/types/components/icon/icon.d.ts +28 -0
- package/artifacts/dist/types/components/index.d.ts +57 -0
- package/artifacts/dist/types/components/input-date/contexts/date-picker-state.context.d.ts +32 -0
- package/artifacts/dist/types/components/input-date/contexts/use-date-picker-state-context.d.ts +59 -0
- package/artifacts/dist/types/components/input-date/date-picker-dropdown.d.ts +26 -0
- package/artifacts/dist/types/components/input-date/date-text/date-text.d.ts +9 -0
- package/artifacts/dist/types/components/input-date/index.d.ts +2 -0
- package/artifacts/dist/types/components/input-date/input-date.d.ts +118 -0
- package/artifacts/dist/types/components/input-email-bar/input-email-bar.d.ts +39 -0
- package/artifacts/dist/types/components/input-number/input-number.d.ts +51 -0
- package/artifacts/dist/types/components/input-password/input-password.d.ts +46 -0
- package/artifacts/dist/types/components/input-phone/country-phone.model.d.ts +6 -0
- package/artifacts/dist/types/components/input-phone/index.d.ts +3 -0
- package/artifacts/dist/types/components/input-phone/input-phone.d.ts +83 -0
- package/artifacts/dist/types/components/input-phone/resources/config.d.ts +3 -0
- package/artifacts/dist/types/components/input-range/index.d.ts +2 -0
- package/artifacts/dist/types/components/input-range/input-range.d.ts +63 -0
- package/artifacts/dist/types/components/input-search/input-search.d.ts +42 -0
- package/artifacts/dist/types/components/input-search-bar/index.d.ts +2 -0
- package/artifacts/dist/types/components/input-search-bar/input-search-bar.d.ts +60 -0
- package/artifacts/dist/types/components/input-select/index.d.ts +2 -0
- package/artifacts/dist/types/components/input-select/input-select.d.ts +106 -0
- package/artifacts/dist/types/components/input-text/input-text.d.ts +42 -0
- package/artifacts/dist/types/components/input-textarea/input-textarea.d.ts +39 -0
- package/artifacts/dist/types/components/link-wrapper/link-wrapper.d.ts +37 -0
- package/artifacts/dist/types/components/list/list.d.ts +27 -0
- package/artifacts/dist/types/components/loader-dialog/loader-dialog-context.d.ts +12 -0
- package/artifacts/dist/types/components/loader-dialog/loader-dialog.d.ts +13 -0
- package/artifacts/dist/types/components/loader-dialog/loader-provider.d.ts +9 -0
- package/artifacts/dist/types/components/menu-item/menu-item.d.ts +43 -0
- package/artifacts/dist/types/components/modal-dialog/index.d.ts +5 -0
- package/artifacts/dist/types/components/modal-dialog/modal-config.model.d.ts +12 -0
- package/artifacts/dist/types/components/modal-dialog/modal-context.d.ts +24 -0
- package/artifacts/dist/types/components/modal-dialog/modal-dialog.d.ts +15 -0
- package/artifacts/dist/types/components/modal-dialog/modal-provider.d.ts +14 -0
- package/artifacts/dist/types/components/pill/pill.d.ts +38 -0
- package/artifacts/dist/types/components/popup-dialog/index.d.ts +6 -0
- package/artifacts/dist/types/components/popup-dialog/popup-config.model.d.ts +20 -0
- package/artifacts/dist/types/components/popup-dialog/popup-context.d.ts +24 -0
- package/artifacts/dist/types/components/popup-dialog/popup-dialog.d.ts +14 -0
- package/artifacts/dist/types/components/popup-dialog/popup-dimensions.type.d.ts +1 -0
- package/artifacts/dist/types/components/popup-dialog/popup-provider.d.ts +18 -0
- package/artifacts/dist/types/components/progress-bar/progress-bar.d.ts +34 -0
- package/artifacts/dist/types/components/progress-bar-group/progress-bar-group.d.ts +26 -0
- package/artifacts/dist/types/components/radio/radio.d.ts +39 -0
- package/artifacts/dist/types/components/radio-button-group/radio-button-group.d.ts +39 -0
- package/artifacts/dist/types/components/ratings/index.d.ts +2 -0
- package/artifacts/dist/types/components/ratings/rating-buttons/index.d.ts +2 -0
- package/artifacts/dist/types/components/ratings/rating-buttons/rating-buttons.d.ts +35 -0
- package/artifacts/dist/types/components/ratings/rating-stars/index.d.ts +2 -0
- package/artifacts/dist/types/components/ratings/rating-stars/rating-stars.d.ts +57 -0
- package/artifacts/dist/types/components/scribbles/assets/arrow/arrow-curve-right.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/arrow/arrow-down-left.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/arrow/arrow-down-right.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/arrow/arrow-loop.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/arrow/arrow-right.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/arrow/arrow-up-right.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/bold/bold-arrow.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/bold/bold-line.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/circle/circle-left-l.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/circle/circle-left-xxl.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/circle/circle-right-l.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/circle/circle-right-xxl.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/detail/detail-attention.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/detail/detail-chat.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/detail/detail-fluid.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/detail/detail-movement.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/detail/detail-talk.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/index.d.ts +6 -0
- package/artifacts/dist/types/components/scribbles/assets/line/line-straight.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/line/line-zig-zag.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/line/line-zig.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/wave/wave-left-l.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/wave/wave-right-l.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/assets/wave/wave-right-m.d.ts +4 -0
- package/artifacts/dist/types/components/scribbles/scribbles.d.ts +25 -0
- package/artifacts/dist/types/components/search-pagination/search-page.d.ts +14 -0
- package/artifacts/dist/types/components/search-pagination/search-pagination.d.ts +43 -0
- package/artifacts/dist/types/components/shared/bookmark-icon/bookmark-icon.d.ts +2 -0
- package/artifacts/dist/types/components/shared/feedback/feedback.d.ts +19 -0
- package/artifacts/dist/types/components/sidebar/index.d.ts +5 -0
- package/artifacts/dist/types/components/sidebar/models/button-item-props.interface.d.ts +11 -0
- package/artifacts/dist/types/components/sidebar/models/index.d.ts +3 -0
- package/artifacts/dist/types/components/sidebar/models/link-item-props.interface.d.ts +11 -0
- package/artifacts/dist/types/components/sidebar/models/sidebar-item-ref.interface.d.ts +4 -0
- package/artifacts/dist/types/components/sidebar/models/sidebar-variant.type.d.ts +1 -0
- package/artifacts/dist/types/components/sidebar/sidebar-filter/sidebar-item-filter.d.ts +5 -0
- package/artifacts/dist/types/components/sidebar/sidebar-item-navigation-mobile/sidebar-item-navigation-mobile.d.ts +6 -0
- package/artifacts/dist/types/components/sidebar/sidebar-item.d.ts +29 -0
- package/artifacts/dist/types/components/sidebar/sidebar-navigation/sidebar-item-navigation.d.ts +3 -0
- package/artifacts/dist/types/components/sidebar/sidebar.d.ts +32 -0
- package/artifacts/dist/types/components/sidebar/utils/getParentTreeItem.d.ts +2 -0
- package/artifacts/dist/types/components/sidebar/utils/keyboardSidebarItemHandlers.d.ts +14 -0
- package/artifacts/dist/types/components/sidebar/utils/navigationSidebarItemHandler.d.ts +3 -0
- package/artifacts/dist/types/components/sidebar/utils/openOnCurrentItem.d.ts +3 -0
- package/artifacts/dist/types/components/sidebar/utils/setIconsExpandCollapsed.d.ts +8 -0
- package/artifacts/dist/types/components/sidebar/utils/setInitialSidebarItem.d.ts +2 -0
- package/artifacts/dist/types/components/sidebar/utils/toggleExpandAllSiblingItems.d.ts +2 -0
- package/artifacts/dist/types/components/sidebar/utils/toggleSidebarItem.d.ts +1 -0
- package/artifacts/dist/types/components/sidebar/utils/toggleSidebarItemChildren.d.ts +3 -0
- package/artifacts/dist/types/components/sidebar/utils/treeItemsType.d.ts +2 -0
- package/artifacts/dist/types/components/skip-navigation/index.d.ts +2 -0
- package/artifacts/dist/types/components/skip-navigation/skip-navigation.d.ts +40 -0
- package/artifacts/dist/types/components/status-card/status-card.d.ts +25 -0
- package/artifacts/dist/types/components/step-list/step-list.d.ts +9 -0
- package/artifacts/dist/types/components/switch/switch.d.ts +44 -0
- package/artifacts/dist/types/components/table/table-header-cell.d.ts +20 -0
- package/artifacts/dist/types/components/table/table-pagination.d.ts +50 -0
- package/artifacts/dist/types/components/table/table.d.ts +40 -0
- package/artifacts/dist/types/components/tabs/index.d.ts +8 -0
- package/artifacts/dist/types/components/tabs/tab-body.d.ts +13 -0
- package/artifacts/dist/types/components/tabs/tab.d.ts +15 -0
- package/artifacts/dist/types/components/tabs/tabs.d.ts +32 -0
- package/artifacts/dist/types/components/tag/tag.d.ts +27 -0
- package/artifacts/dist/types/components/timelines/shared/timeline-event/timeline-event.d.ts +42 -0
- package/artifacts/dist/types/components/timelines/timeline-horizontal/timeline-horizontal.d.ts +23 -0
- package/artifacts/dist/types/components/timelines/timeline-vertical/timeline-vertical.d.ts +15 -0
- package/artifacts/dist/types/components/toasts/toast.d.ts +26 -0
- package/artifacts/dist/types/components/tooltip/tooltip.d.ts +46 -0
- package/artifacts/dist/types/components/uploader/button-uploader/button-uploader.d.ts +75 -0
- package/artifacts/dist/types/components/uploader/drag-and-drop-uploader/drag-and-drop-uploader.d.ts +83 -0
- package/artifacts/dist/types/components/uploader/shared/use-file-upload.d.ts +17 -0
- package/artifacts/dist/types/index.d.ts +5 -0
- package/artifacts/dist/types/models/index.d.ts +7 -0
- package/artifacts/dist/types/utils/async-trigger.d.ts +2 -0
- package/artifacts/dist/types/utils/create-synthetic-event.d.ts +2 -0
- package/artifacts/dist/types/utils/expand-ref.d.ts +2 -0
- package/artifacts/dist/types/utils/index.d.ts +7 -0
- package/artifacts/dist/wave-left-l-BZZlEa5G.mjs +18 -0
- package/artifacts/dist/wave-left-l-BZZlEa5G.mjs.map +1 -0
- package/artifacts/dist/wave-right-l-BqtSrnwR.mjs +18 -0
- package/artifacts/dist/wave-right-l-BqtSrnwR.mjs.map +1 -0
- package/artifacts/dist/wave-right-m-bnJX0eFU.mjs +18 -0
- package/artifacts/dist/wave-right-m-bnJX0eFU.mjs.map +1 -0
- package/package.json +37 -26
- package/dist/agora-M2IgdAVl.mjs +0 -9
- package/dist/agora-M2IgdAVl.mjs.map +0 -1
- package/dist/arrow-curve-right-Gk2w5R8M.mjs +0 -17
- package/dist/arrow-curve-right-Gk2w5R8M.mjs.map +0 -1
- package/dist/arrow-down-left-pwXzFS4O.mjs +0 -17
- package/dist/arrow-down-left-pwXzFS4O.mjs.map +0 -1
- package/dist/arrow-down-right-yR8BMoN2.mjs +0 -17
- package/dist/arrow-down-right-yR8BMoN2.mjs.map +0 -1
- package/dist/arrow-loop-FWDUvB9K.mjs +0 -17
- package/dist/arrow-loop-FWDUvB9K.mjs.map +0 -1
- package/dist/arrow-right-NihMndC3.mjs +0 -17
- package/dist/arrow-right-NihMndC3.mjs.map +0 -1
- package/dist/arrow-up-right-f9Gcvxpo.mjs +0 -17
- package/dist/arrow-up-right-f9Gcvxpo.mjs.map +0 -1
- package/dist/bold-arrow-eg0OWrEX.mjs +0 -17
- package/dist/bold-arrow-eg0OWrEX.mjs.map +0 -1
- package/dist/bold-line-lKV2Y9qS.mjs +0 -18
- package/dist/bold-line-lKV2Y9qS.mjs.map +0 -1
- package/dist/circle-left-l-E-qmOxyW.mjs +0 -18
- package/dist/circle-left-l-E-qmOxyW.mjs.map +0 -1
- package/dist/circle-left-xxl-KrdAgtcH.mjs +0 -18
- package/dist/circle-left-xxl-KrdAgtcH.mjs.map +0 -1
- package/dist/circle-right-l-WLMCZ0nR.mjs +0 -18
- package/dist/circle-right-l-WLMCZ0nR.mjs.map +0 -1
- package/dist/circle-right-xxl-OOqHh1_O.mjs +0 -18
- package/dist/circle-right-xxl-OOqHh1_O.mjs.map +0 -1
- package/dist/detail-attention-rh_V3pz4.mjs +0 -17
- package/dist/detail-attention-rh_V3pz4.mjs.map +0 -1
- package/dist/detail-chat-AoR_ehR8.mjs +0 -18
- package/dist/detail-chat-AoR_ehR8.mjs.map +0 -1
- package/dist/detail-fluid-SZOgIi8H.mjs +0 -18
- package/dist/detail-fluid-SZOgIi8H.mjs.map +0 -1
- package/dist/detail-movement-pH3TTsWq.mjs +0 -18
- package/dist/detail-movement-pH3TTsWq.mjs.map +0 -1
- package/dist/detail-talk-VolM0PSs.mjs +0 -17
- package/dist/detail-talk-VolM0PSs.mjs.map +0 -1
- package/dist/drag-dots-MOsc4vRW.mjs +0 -9
- package/dist/drag-dots-MOsc4vRW.mjs.map +0 -1
- package/dist/index.css +0 -1
- package/dist/index.mjs +0 -8953
- package/dist/index.mjs.map +0 -1
- package/dist/index.umd.js +0 -6
- package/dist/index.umd.js.map +0 -1
- package/dist/line-airplay-4Qp9cycj.mjs +0 -16
- package/dist/line-airplay-4Qp9cycj.mjs.map +0 -1
- package/dist/line-alert-circle-5de1BpjD.mjs +0 -30
- package/dist/line-alert-circle-5de1BpjD.mjs.map +0 -1
- package/dist/line-alert-triangle-1Yyw3D1x.mjs +0 -16
- package/dist/line-alert-triangle-1Yyw3D1x.mjs.map +0 -1
- package/dist/line-arrow-down-Vlen-rX6.mjs +0 -16
- package/dist/line-arrow-down-Vlen-rX6.mjs.map +0 -1
- package/dist/line-arrow-down-anchor-yNiq1ECk.mjs +0 -16
- package/dist/line-arrow-down-anchor-yNiq1ECk.mjs.map +0 -1
- package/dist/line-arrow-down-circle-MvVlpnL_.mjs +0 -16
- package/dist/line-arrow-down-circle-MvVlpnL_.mjs.map +0 -1
- package/dist/line-arrow-left-2PT4xo0Y.mjs +0 -16
- package/dist/line-arrow-left-2PT4xo0Y.mjs.map +0 -1
- package/dist/line-arrow-left-anchor-nyGESFyi.mjs +0 -16
- package/dist/line-arrow-left-anchor-nyGESFyi.mjs.map +0 -1
- package/dist/line-arrow-left-circle-h9_cwj5J.mjs +0 -16
- package/dist/line-arrow-left-circle-h9_cwj5J.mjs.map +0 -1
- package/dist/line-arrow-right-M3QG3aip.mjs +0 -16
- package/dist/line-arrow-right-M3QG3aip.mjs.map +0 -1
- package/dist/line-arrow-right-anchor-G_UqqVqn.mjs +0 -16
- package/dist/line-arrow-right-anchor-G_UqqVqn.mjs.map +0 -1
- package/dist/line-arrow-right-circle-DiWDeP7l.mjs +0 -16
- package/dist/line-arrow-right-circle-DiWDeP7l.mjs.map +0 -1
- package/dist/line-arrow-up-NALFPEvk.mjs +0 -16
- package/dist/line-arrow-up-NALFPEvk.mjs.map +0 -1
- package/dist/line-arrow-up-anchor-iddgTWyb.mjs +0 -16
- package/dist/line-arrow-up-anchor-iddgTWyb.mjs.map +0 -1
- package/dist/line-arrow-up-circle-07QP9RES.mjs +0 -16
- package/dist/line-arrow-up-circle-07QP9RES.mjs.map +0 -1
- package/dist/line-at-sign-5UZypAjL.mjs +0 -16
- package/dist/line-at-sign-5UZypAjL.mjs.map +0 -1
- package/dist/line-award-meYDbbKB.mjs +0 -16
- package/dist/line-award-meYDbbKB.mjs.map +0 -1
- package/dist/line-bell-kPP947Tl.mjs +0 -16
- package/dist/line-bell-kPP947Tl.mjs.map +0 -1
- package/dist/line-book-open-SApu2hnb.mjs +0 -16
- package/dist/line-book-open-SApu2hnb.mjs.map +0 -1
- package/dist/line-bookmark-card-lEvcMXFK.mjs +0 -16
- package/dist/line-bookmark-card-lEvcMXFK.mjs.map +0 -1
- package/dist/line-bookmark-oChwzsRD.mjs +0 -16
- package/dist/line-bookmark-oChwzsRD.mjs.map +0 -1
- package/dist/line-briefcase-gj7SsdPZ.mjs +0 -16
- package/dist/line-briefcase-gj7SsdPZ.mjs.map +0 -1
- package/dist/line-buildings-1mADE1Yv.mjs +0 -16
- package/dist/line-buildings-1mADE1Yv.mjs.map +0 -1
- package/dist/line-bullet-MJGYt6cH.mjs +0 -16
- package/dist/line-bullet-MJGYt6cH.mjs.map +0 -1
- package/dist/line-bus-fVT8a1N0.mjs +0 -16
- package/dist/line-bus-fVT8a1N0.mjs.map +0 -1
- package/dist/line-calculator-RRJYlgub.mjs +0 -23
- package/dist/line-calculator-RRJYlgub.mjs.map +0 -1
- package/dist/line-calendar-GiXPjuxL.mjs +0 -16
- package/dist/line-calendar-GiXPjuxL.mjs.map +0 -1
- package/dist/line-camera-uDIMVKRj.mjs +0 -23
- package/dist/line-camera-uDIMVKRj.mjs.map +0 -1
- package/dist/line-chat-_AOwVmxa.mjs +0 -9
- package/dist/line-chat-_AOwVmxa.mjs.map +0 -1
- package/dist/line-check-X_Fttxip.mjs +0 -16
- package/dist/line-check-X_Fttxip.mjs.map +0 -1
- package/dist/line-check-all-EhJ11NK0.mjs +0 -16
- package/dist/line-check-all-EhJ11NK0.mjs.map +0 -1
- package/dist/line-check-circle-HxTyC7d0.mjs +0 -16
- package/dist/line-check-circle-HxTyC7d0.mjs.map +0 -1
- package/dist/line-chevron-down-DDkDQZ7G.mjs +0 -16
- package/dist/line-chevron-down-DDkDQZ7G.mjs.map +0 -1
- package/dist/line-chevron-left-i6TrbWZF.mjs +0 -16
- package/dist/line-chevron-left-i6TrbWZF.mjs.map +0 -1
- package/dist/line-chevron-right-TOZTPbpt.mjs +0 -16
- package/dist/line-chevron-right-TOZTPbpt.mjs.map +0 -1
- package/dist/line-chevron-up-zDloj7zr.mjs +0 -16
- package/dist/line-chevron-up-zDloj7zr.mjs.map +0 -1
- package/dist/line-chevrons-down-HiU7Hiax.mjs +0 -23
- package/dist/line-chevrons-down-HiU7Hiax.mjs.map +0 -1
- package/dist/line-chevrons-left-zIu6iswL.mjs +0 -23
- package/dist/line-chevrons-left-zIu6iswL.mjs.map +0 -1
- package/dist/line-chevrons-right-LHfsqLdO.mjs +0 -23
- package/dist/line-chevrons-right-LHfsqLdO.mjs.map +0 -1
- package/dist/line-chevrons-up-p8xwP-rD.mjs +0 -23
- package/dist/line-chevrons-up-p8xwP-rD.mjs.map +0 -1
- package/dist/line-clock-xs_-TaHl.mjs +0 -23
- package/dist/line-clock-xs_-TaHl.mjs.map +0 -1
- package/dist/line-coffee-KFMxwVT8.mjs +0 -16
- package/dist/line-coffee-KFMxwVT8.mjs.map +0 -1
- package/dist/line-court-zIUtOUDO.mjs +0 -16
- package/dist/line-court-zIUtOUDO.mjs.map +0 -1
- package/dist/line-credit-card-G-vhWusd.mjs +0 -16
- package/dist/line-credit-card-G-vhWusd.mjs.map +0 -1
- package/dist/line-dashboard-1Is9lcAw.mjs +0 -72
- package/dist/line-dashboard-1Is9lcAw.mjs.map +0 -1
- package/dist/line-delete-4tEnJa97.mjs +0 -9
- package/dist/line-delete-4tEnJa97.mjs.map +0 -1
- package/dist/line-document-SD2sPDuz.mjs +0 -16
- package/dist/line-document-SD2sPDuz.mjs.map +0 -1
- package/dist/line-download-csgDqz_l.mjs +0 -30
- package/dist/line-download-csgDqz_l.mjs.map +0 -1
- package/dist/line-driving-8iV2WHj2.mjs +0 -16
- package/dist/line-driving-8iV2WHj2.mjs.map +0 -1
- package/dist/line-edit-tfyLRnkv.mjs +0 -23
- package/dist/line-edit-tfyLRnkv.mjs.map +0 -1
- package/dist/line-external-link-FFYflWcq.mjs +0 -30
- package/dist/line-external-link-FFYflWcq.mjs.map +0 -1
- package/dist/line-eye-bthFq2d9.mjs +0 -9
- package/dist/line-eye-bthFq2d9.mjs.map +0 -1
- package/dist/line-eye-off-GLHoxQfu.mjs +0 -9
- package/dist/line-eye-off-GLHoxQfu.mjs.map +0 -1
- package/dist/line-facebook-p9pZsbTP.mjs +0 -16
- package/dist/line-facebook-p9pZsbTP.mjs.map +0 -1
- package/dist/line-file-pDXWqh49.mjs +0 -9
- package/dist/line-file-pDXWqh49.mjs.map +0 -1
- package/dist/line-file-share-n9YjakVx.mjs +0 -16
- package/dist/line-file-share-n9YjakVx.mjs.map +0 -1
- package/dist/line-filter-xVW4DO-G.mjs +0 -16
- package/dist/line-filter-xVW4DO-G.mjs.map +0 -1
- package/dist/line-flag-L4zw3xDD.mjs +0 -9
- package/dist/line-flag-L4zw3xDD.mjs.map +0 -1
- package/dist/line-folder-NElV2al2.mjs +0 -16
- package/dist/line-folder-NElV2al2.mjs.map +0 -1
- package/dist/line-globe-gYKA_d24.mjs +0 -16
- package/dist/line-globe-gYKA_d24.mjs.map +0 -1
- package/dist/line-hardware-settings-M1_EPCeA.mjs +0 -23
- package/dist/line-hardware-settings-M1_EPCeA.mjs.map +0 -1
- package/dist/line-health-Y21ZKCfI.mjs +0 -16
- package/dist/line-health-Y21ZKCfI.mjs.map +0 -1
- package/dist/line-help-support-JDX7TDRZ.mjs +0 -16
- package/dist/line-help-support-JDX7TDRZ.mjs.map +0 -1
- package/dist/line-home-70muf8rV.mjs +0 -16
- package/dist/line-home-70muf8rV.mjs.map +0 -1
- package/dist/line-info-mark-1TI9ufbB.mjs +0 -16
- package/dist/line-info-mark-1TI9ufbB.mjs.map +0 -1
- package/dist/line-instagram-U2r6uTT_.mjs +0 -23
- package/dist/line-instagram-U2r6uTT_.mjs.map +0 -1
- package/dist/line-linkedin-jXTpNq8j.mjs +0 -30
- package/dist/line-linkedin-jXTpNq8j.mjs.map +0 -1
- package/dist/line-list-NAuuucfz.mjs +0 -51
- package/dist/line-list-NAuuucfz.mjs.map +0 -1
- package/dist/line-loader-2as9w-yL.mjs +0 -65
- package/dist/line-loader-2as9w-yL.mjs.map +0 -1
- package/dist/line-lock-fCZ8FAz8.mjs +0 -16
- package/dist/line-lock-fCZ8FAz8.mjs.map +0 -1
- package/dist/line-log-in-3WcaZp67.mjs +0 -30
- package/dist/line-log-in-3WcaZp67.mjs.map +0 -1
- package/dist/line-log-out-88i6c_1i.mjs +0 -30
- package/dist/line-log-out-88i6c_1i.mjs.map +0 -1
- package/dist/line-mail-gZ-howEw.mjs +0 -16
- package/dist/line-mail-gZ-howEw.mjs.map +0 -1
- package/dist/line-mail-open-ohmPkExZ.mjs +0 -9
- package/dist/line-mail-open-ohmPkExZ.mjs.map +0 -1
- package/dist/line-map-Bdf0lAPC.mjs +0 -16
- package/dist/line-map-Bdf0lAPC.mjs.map +0 -1
- package/dist/line-map-pin-odKo1Gp7.mjs +0 -23
- package/dist/line-map-pin-odKo1Gp7.mjs.map +0 -1
- package/dist/line-mega-phone-BofuazHT.mjs +0 -16
- package/dist/line-mega-phone-BofuazHT.mjs.map +0 -1
- package/dist/line-menu-GzBWD0RS.mjs +0 -30
- package/dist/line-menu-GzBWD0RS.mjs.map +0 -1
- package/dist/line-mic-off-dNLzo7tS.mjs +0 -16
- package/dist/line-mic-off-dNLzo7tS.mjs.map +0 -1
- package/dist/line-mic-on-3Y5Jtoun.mjs +0 -16
- package/dist/line-mic-on-3Y5Jtoun.mjs.map +0 -1
- package/dist/line-minus-XmIqkiCK.mjs +0 -16
- package/dist/line-minus-XmIqkiCK.mjs.map +0 -1
- package/dist/line-minus-circle-UnVkOBD8.mjs +0 -23
- package/dist/line-minus-circle-UnVkOBD8.mjs.map +0 -1
- package/dist/line-money-taxes-q4Yh3AiO.mjs +0 -16
- package/dist/line-money-taxes-q4Yh3AiO.mjs.map +0 -1
- package/dist/line-monitor-Z1bc_TNo.mjs +0 -16
- package/dist/line-monitor-Z1bc_TNo.mjs.map +0 -1
- package/dist/line-more-horizontal-wRipgsTv.mjs +0 -30
- package/dist/line-more-horizontal-wRipgsTv.mjs.map +0 -1
- package/dist/line-more-vertical-y_G_Xqyp.mjs +0 -9
- package/dist/line-more-vertical-y_G_Xqyp.mjs.map +0 -1
- package/dist/line-movie-JH7hylSk.mjs +0 -9
- package/dist/line-movie-JH7hylSk.mjs.map +0 -1
- package/dist/line-music-9gkYnvU4.mjs +0 -9
- package/dist/line-music-9gkYnvU4.mjs.map +0 -1
- package/dist/line-package-TwJbyaGt.mjs +0 -16
- package/dist/line-package-TwJbyaGt.mjs.map +0 -1
- package/dist/line-paperclip-V5CFdZLR.mjs +0 -16
- package/dist/line-paperclip-V5CFdZLR.mjs.map +0 -1
- package/dist/line-plane-lQCLW1qX.mjs +0 -16
- package/dist/line-plane-lQCLW1qX.mjs.map +0 -1
- package/dist/line-plus-Amv4a502.mjs +0 -9
- package/dist/line-plus-Amv4a502.mjs.map +0 -1
- package/dist/line-plus-circle-m--9MHCy.mjs +0 -16
- package/dist/line-plus-circle-m--9MHCy.mjs.map +0 -1
- package/dist/line-print-JhZ8S123.mjs +0 -16
- package/dist/line-print-JhZ8S123.mjs.map +0 -1
- package/dist/line-question-mark-c07JVh9G.mjs +0 -16
- package/dist/line-question-mark-c07JVh9G.mjs.map +0 -1
- package/dist/line-refresh-ccw-hdhbaGtz.mjs +0 -9
- package/dist/line-refresh-ccw-hdhbaGtz.mjs.map +0 -1
- package/dist/line-search-Jn0EN2LZ.mjs +0 -16
- package/dist/line-search-Jn0EN2LZ.mjs.map +0 -1
- package/dist/line-settings-upBLNbLJ.mjs +0 -23
- package/dist/line-settings-upBLNbLJ.mjs.map +0 -1
- package/dist/line-share-FiJOHT-C.mjs +0 -16
- package/dist/line-share-FiJOHT-C.mjs.map +0 -1
- package/dist/line-shield-QYxYm3xA.mjs +0 -16
- package/dist/line-shield-QYxYm3xA.mjs.map +0 -1
- package/dist/line-smartphone-sCh4P8F1.mjs +0 -16
- package/dist/line-smartphone-sCh4P8F1.mjs.map +0 -1
- package/dist/line-smile-sad-Gfqxw_W1.mjs +0 -37
- package/dist/line-smile-sad-Gfqxw_W1.mjs.map +0 -1
- package/dist/line-social-security-KSln41V0.mjs +0 -30
- package/dist/line-social-security-KSln41V0.mjs.map +0 -1
- package/dist/line-sort-alpha-down-956TW6DR.mjs +0 -16
- package/dist/line-sort-alpha-down-956TW6DR.mjs.map +0 -1
- package/dist/line-sort-alpha-up-prp0Qpkf.mjs +0 -23
- package/dist/line-sort-alpha-up-prp0Qpkf.mjs.map +0 -1
- package/dist/line-sort-generic-down-fr22CBJA.mjs +0 -9
- package/dist/line-sort-generic-down-fr22CBJA.mjs.map +0 -1
- package/dist/line-sort-generic-up-mQmOWWBZ.mjs +0 -9
- package/dist/line-sort-generic-up-mQmOWWBZ.mjs.map +0 -1
- package/dist/line-sort-vertical-w9sQhfPB.mjs +0 -9
- package/dist/line-sort-vertical-w9sQhfPB.mjs.map +0 -1
- package/dist/line-star-moQSdpBG.mjs +0 -16
- package/dist/line-star-moQSdpBG.mjs.map +0 -1
- package/dist/line-straight-5sNNXR6L.mjs +0 -9
- package/dist/line-straight-5sNNXR6L.mjs.map +0 -1
- package/dist/line-tag-HK9jGRyg.mjs +0 -9
- package/dist/line-tag-HK9jGRyg.mjs.map +0 -1
- package/dist/line-target-RwPWdAGA.mjs +0 -23
- package/dist/line-target-RwPWdAGA.mjs.map +0 -1
- package/dist/line-thumbs-down-lc1ee4ou.mjs +0 -16
- package/dist/line-thumbs-down-lc1ee4ou.mjs.map +0 -1
- package/dist/line-thumbs-up-tnda6iyW.mjs +0 -16
- package/dist/line-thumbs-up-tnda6iyW.mjs.map +0 -1
- package/dist/line-ticket-JCMDfoNj.mjs +0 -16
- package/dist/line-ticket-JCMDfoNj.mjs.map +0 -1
- package/dist/line-trash-_WKXzKNF.mjs +0 -16
- package/dist/line-trash-_WKXzKNF.mjs.map +0 -1
- package/dist/line-tree-kXkCueb0.mjs +0 -16
- package/dist/line-tree-kXkCueb0.mjs.map +0 -1
- package/dist/line-truck-aQGgC_DK.mjs +0 -9
- package/dist/line-truck-aQGgC_DK.mjs.map +0 -1
- package/dist/line-twitter-x-6NicFo_V.mjs +0 -15
- package/dist/line-twitter-x-6NicFo_V.mjs.map +0 -1
- package/dist/line-twitter-zACgT2cn.mjs +0 -16
- package/dist/line-twitter-zACgT2cn.mjs.map +0 -1
- package/dist/line-unlock--T2IPrIk.mjs +0 -9
- package/dist/line-unlock--T2IPrIk.mjs.map +0 -1
- package/dist/line-upload-_CY69q06.mjs +0 -30
- package/dist/line-upload-_CY69q06.mjs.map +0 -1
- package/dist/line-user-1F6DbT5U.mjs +0 -16
- package/dist/line-user-1F6DbT5U.mjs.map +0 -1
- package/dist/line-user-group--D5ye00n.mjs +0 -16
- package/dist/line-user-group--D5ye00n.mjs.map +0 -1
- package/dist/line-video-off-IBGar77s.mjs +0 -16
- package/dist/line-video-off-IBGar77s.mjs.map +0 -1
- package/dist/line-video-on--AxsOzV4.mjs +0 -16
- package/dist/line-video-on--AxsOzV4.mjs.map +0 -1
- package/dist/line-volume-max-kbEFLwz4.mjs +0 -9
- package/dist/line-volume-max-kbEFLwz4.mjs.map +0 -1
- package/dist/line-volume-min-90I5Pzen.mjs +0 -9
- package/dist/line-volume-min-90I5Pzen.mjs.map +0 -1
- package/dist/line-volume-mute-M56W2Xzz.mjs +0 -9
- package/dist/line-volume-mute-M56W2Xzz.mjs.map +0 -1
- package/dist/line-volume-off-Vaqfeczn.mjs +0 -16
- package/dist/line-volume-off-Vaqfeczn.mjs.map +0 -1
- package/dist/line-wallet-4Z9jUG2C.mjs +0 -9
- package/dist/line-wallet-4Z9jUG2C.mjs.map +0 -1
- package/dist/line-wifi-im3fV8RP.mjs +0 -9
- package/dist/line-wifi-im3fV8RP.mjs.map +0 -1
- package/dist/line-x-circle-P8AJUfdz.mjs +0 -30
- package/dist/line-x-circle-P8AJUfdz.mjs.map +0 -1
- package/dist/line-x-i3JggSik.mjs +0 -9
- package/dist/line-x-i3JggSik.mjs.map +0 -1
- package/dist/line-youtube-kZwTZ3Xs.mjs +0 -23
- package/dist/line-youtube-kZwTZ3Xs.mjs.map +0 -1
- package/dist/line-zig-eqYn3lgC.mjs +0 -18
- package/dist/line-zig-eqYn3lgC.mjs.map +0 -1
- package/dist/line-zig-zag-Ly_yRMo-.mjs +0 -18
- package/dist/line-zig-zag-Ly_yRMo-.mjs.map +0 -1
- package/dist/solid-airplay-nfR0zwRU.mjs +0 -16
- package/dist/solid-airplay-nfR0zwRU.mjs.map +0 -1
- package/dist/solid-alert-circle-Cnmnmsdd.mjs +0 -16
- package/dist/solid-alert-circle-Cnmnmsdd.mjs.map +0 -1
- package/dist/solid-alert-triangle-dasFvyJ5.mjs +0 -16
- package/dist/solid-alert-triangle-dasFvyJ5.mjs.map +0 -1
- package/dist/solid-arrow-down-alTYiiXU.mjs +0 -9
- package/dist/solid-arrow-down-alTYiiXU.mjs.map +0 -1
- package/dist/solid-arrow-down-anchor-K5PMv77l.mjs +0 -16
- package/dist/solid-arrow-down-anchor-K5PMv77l.mjs.map +0 -1
- package/dist/solid-arrow-down-circle-ivWfpfTj.mjs +0 -16
- package/dist/solid-arrow-down-circle-ivWfpfTj.mjs.map +0 -1
- package/dist/solid-arrow-left-Qtk6_pnD.mjs +0 -9
- package/dist/solid-arrow-left-Qtk6_pnD.mjs.map +0 -1
- package/dist/solid-arrow-left-anchor-wHH6d73o.mjs +0 -16
- package/dist/solid-arrow-left-anchor-wHH6d73o.mjs.map +0 -1
- package/dist/solid-arrow-left-circle-h1sDlfhq.mjs +0 -16
- package/dist/solid-arrow-left-circle-h1sDlfhq.mjs.map +0 -1
- package/dist/solid-arrow-right-MPX0Q5cB.mjs +0 -9
- package/dist/solid-arrow-right-MPX0Q5cB.mjs.map +0 -1
- package/dist/solid-arrow-right-anchor-EkSPaW6O.mjs +0 -16
- package/dist/solid-arrow-right-anchor-EkSPaW6O.mjs.map +0 -1
- package/dist/solid-arrow-right-circle-6KHLLts7.mjs +0 -16
- package/dist/solid-arrow-right-circle-6KHLLts7.mjs.map +0 -1
- package/dist/solid-arrow-up-anchor-vhmIsp7S.mjs +0 -16
- package/dist/solid-arrow-up-anchor-vhmIsp7S.mjs.map +0 -1
- package/dist/solid-arrow-up-circle-bn60aGeB.mjs +0 -16
- package/dist/solid-arrow-up-circle-bn60aGeB.mjs.map +0 -1
- package/dist/solid-arrow-up-yg2u_CsB.mjs +0 -9
- package/dist/solid-arrow-up-yg2u_CsB.mjs.map +0 -1
- package/dist/solid-at-sign-5UZypAjL.mjs +0 -16
- package/dist/solid-at-sign-5UZypAjL.mjs.map +0 -1
- package/dist/solid-award-6rvvtEPk.mjs +0 -9
- package/dist/solid-award-6rvvtEPk.mjs.map +0 -1
- package/dist/solid-bell-4QXMHrFP.mjs +0 -9
- package/dist/solid-bell-4QXMHrFP.mjs.map +0 -1
- package/dist/solid-book-open-qhhf_vx8.mjs +0 -16
- package/dist/solid-book-open-qhhf_vx8.mjs.map +0 -1
- package/dist/solid-bookmark-VFQn_y1L.mjs +0 -9
- package/dist/solid-bookmark-VFQn_y1L.mjs.map +0 -1
- package/dist/solid-bookmark-card-zr3zFxea.mjs +0 -9
- package/dist/solid-bookmark-card-zr3zFxea.mjs.map +0 -1
- package/dist/solid-briefcase-JOZmJxqQ.mjs +0 -16
- package/dist/solid-briefcase-JOZmJxqQ.mjs.map +0 -1
- package/dist/solid-buildings-rXcx-0JQ.mjs +0 -16
- package/dist/solid-buildings-rXcx-0JQ.mjs.map +0 -1
- package/dist/solid-bullet-1FObRZHh.mjs +0 -9
- package/dist/solid-bullet-1FObRZHh.mjs.map +0 -1
- package/dist/solid-bus-Oyd9t-t8.mjs +0 -16
- package/dist/solid-bus-Oyd9t-t8.mjs.map +0 -1
- package/dist/solid-calculator-rKnfCDIU.mjs +0 -16
- package/dist/solid-calculator-rKnfCDIU.mjs.map +0 -1
- package/dist/solid-calendar-uvTl1wpz.mjs +0 -16
- package/dist/solid-calendar-uvTl1wpz.mjs.map +0 -1
- package/dist/solid-camera-k7IhQyQL.mjs +0 -16
- package/dist/solid-camera-k7IhQyQL.mjs.map +0 -1
- package/dist/solid-chat-_tHnWiGc.mjs +0 -9
- package/dist/solid-chat-_tHnWiGc.mjs.map +0 -1
- package/dist/solid-check-X_Fttxip.mjs +0 -16
- package/dist/solid-check-X_Fttxip.mjs.map +0 -1
- package/dist/solid-check-all-EhJ11NK0.mjs +0 -16
- package/dist/solid-check-all-EhJ11NK0.mjs.map +0 -1
- package/dist/solid-check-circle-b__BkEYH.mjs +0 -16
- package/dist/solid-check-circle-b__BkEYH.mjs.map +0 -1
- package/dist/solid-chevron-down-DDkDQZ7G.mjs +0 -16
- package/dist/solid-chevron-down-DDkDQZ7G.mjs.map +0 -1
- package/dist/solid-chevron-left-KAgqSKSi.mjs +0 -16
- package/dist/solid-chevron-left-KAgqSKSi.mjs.map +0 -1
- package/dist/solid-chevron-right-TOZTPbpt.mjs +0 -16
- package/dist/solid-chevron-right-TOZTPbpt.mjs.map +0 -1
- package/dist/solid-chevron-up-yS3-ZAXt.mjs +0 -16
- package/dist/solid-chevron-up-yS3-ZAXt.mjs.map +0 -1
- package/dist/solid-chevrons-down-A6MQdpRn.mjs +0 -9
- package/dist/solid-chevrons-down-A6MQdpRn.mjs.map +0 -1
- package/dist/solid-chevrons-left-Z4xcjMIR.mjs +0 -9
- package/dist/solid-chevrons-left-Z4xcjMIR.mjs.map +0 -1
- package/dist/solid-chevrons-right-m061y7OS.mjs +0 -9
- package/dist/solid-chevrons-right-m061y7OS.mjs.map +0 -1
- package/dist/solid-chevrons-up-tgvyW-8O.mjs +0 -9
- package/dist/solid-chevrons-up-tgvyW-8O.mjs.map +0 -1
- package/dist/solid-clock-EApfuOZL.mjs +0 -16
- package/dist/solid-clock-EApfuOZL.mjs.map +0 -1
- package/dist/solid-coffee-OwChsZnM.mjs +0 -16
- package/dist/solid-coffee-OwChsZnM.mjs.map +0 -1
- package/dist/solid-court-Q4yo86sv.mjs +0 -16
- package/dist/solid-court-Q4yo86sv.mjs.map +0 -1
- package/dist/solid-credit-card-wtCbpAc_.mjs +0 -16
- package/dist/solid-credit-card-wtCbpAc_.mjs.map +0 -1
- package/dist/solid-dashboard-1zFygagO.mjs +0 -72
- package/dist/solid-dashboard-1zFygagO.mjs.map +0 -1
- package/dist/solid-delete-UaBTYqoS.mjs +0 -9
- package/dist/solid-delete-UaBTYqoS.mjs.map +0 -1
- package/dist/solid-document-PrrESGZG.mjs +0 -9
- package/dist/solid-document-PrrESGZG.mjs.map +0 -1
- package/dist/solid-download-b_5tZ39F.mjs +0 -30
- package/dist/solid-download-b_5tZ39F.mjs.map +0 -1
- package/dist/solid-driving-S-hHzU7g.mjs +0 -16
- package/dist/solid-driving-S-hHzU7g.mjs.map +0 -1
- package/dist/solid-edit-A0nutFqu.mjs +0 -9
- package/dist/solid-edit-A0nutFqu.mjs.map +0 -1
- package/dist/solid-external-link-FTOBAiwp.mjs +0 -30
- package/dist/solid-external-link-FTOBAiwp.mjs.map +0 -1
- package/dist/solid-eye-6O3w7Q_i.mjs +0 -9
- package/dist/solid-eye-6O3w7Q_i.mjs.map +0 -1
- package/dist/solid-eye-off-JnHo7kCn.mjs +0 -9
- package/dist/solid-eye-off-JnHo7kCn.mjs.map +0 -1
- package/dist/solid-facebook-DMI7v_na.mjs +0 -9
- package/dist/solid-facebook-DMI7v_na.mjs.map +0 -1
- package/dist/solid-file-BJ-gXxkX.mjs +0 -9
- package/dist/solid-file-BJ-gXxkX.mjs.map +0 -1
- package/dist/solid-file-share-tSI8let7.mjs +0 -16
- package/dist/solid-file-share-tSI8let7.mjs.map +0 -1
- package/dist/solid-filter-pOZwywKt.mjs +0 -9
- package/dist/solid-filter-pOZwywKt.mjs.map +0 -1
- package/dist/solid-flag-SXKg2L2L.mjs +0 -9
- package/dist/solid-flag-SXKg2L2L.mjs.map +0 -1
- package/dist/solid-folder-bR1GtKnp.mjs +0 -9
- package/dist/solid-folder-bR1GtKnp.mjs.map +0 -1
- package/dist/solid-globe-gYKA_d24.mjs +0 -16
- package/dist/solid-globe-gYKA_d24.mjs.map +0 -1
- package/dist/solid-hardware-settings-BlDimky7.mjs +0 -16
- package/dist/solid-hardware-settings-BlDimky7.mjs.map +0 -1
- package/dist/solid-health-Y21ZKCfI.mjs +0 -16
- package/dist/solid-health-Y21ZKCfI.mjs.map +0 -1
- package/dist/solid-help-support-Gxbj6QFP.mjs +0 -9
- package/dist/solid-help-support-Gxbj6QFP.mjs.map +0 -1
- package/dist/solid-home-T4k8n-6W.mjs +0 -16
- package/dist/solid-home-T4k8n-6W.mjs.map +0 -1
- package/dist/solid-info-mark-c4azUky9.mjs +0 -16
- package/dist/solid-info-mark-c4azUky9.mjs.map +0 -1
- package/dist/solid-instagram-TqFGD7sW.mjs +0 -16
- package/dist/solid-instagram-TqFGD7sW.mjs.map +0 -1
- package/dist/solid-linkedin-tbyWfEYe.mjs +0 -9
- package/dist/solid-linkedin-tbyWfEYe.mjs.map +0 -1
- package/dist/solid-list-NAuuucfz.mjs +0 -51
- package/dist/solid-list-NAuuucfz.mjs.map +0 -1
- package/dist/solid-loader-2as9w-yL.mjs +0 -65
- package/dist/solid-loader-2as9w-yL.mjs.map +0 -1
- package/dist/solid-lock-Vt0punbd.mjs +0 -16
- package/dist/solid-lock-Vt0punbd.mjs.map +0 -1
- package/dist/solid-log-in-3WcaZp67.mjs +0 -30
- package/dist/solid-log-in-3WcaZp67.mjs.map +0 -1
- package/dist/solid-log-out-88i6c_1i.mjs +0 -30
- package/dist/solid-log-out-88i6c_1i.mjs.map +0 -1
- package/dist/solid-mail-aDHfrNHU.mjs +0 -16
- package/dist/solid-mail-aDHfrNHU.mjs.map +0 -1
- package/dist/solid-mail-open-ypzURjfG.mjs +0 -9
- package/dist/solid-mail-open-ypzURjfG.mjs.map +0 -1
- package/dist/solid-map-pin-m_6s0b5R.mjs +0 -9
- package/dist/solid-map-pin-m_6s0b5R.mjs.map +0 -1
- package/dist/solid-map-tL_Xaban.mjs +0 -16
- package/dist/solid-map-tL_Xaban.mjs.map +0 -1
- package/dist/solid-mega-phone-TNWx1nyJ.mjs +0 -16
- package/dist/solid-mega-phone-TNWx1nyJ.mjs.map +0 -1
- package/dist/solid-menu-GzBWD0RS.mjs +0 -30
- package/dist/solid-menu-GzBWD0RS.mjs.map +0 -1
- package/dist/solid-mic-off-iQWfEjMK.mjs +0 -9
- package/dist/solid-mic-off-iQWfEjMK.mjs.map +0 -1
- package/dist/solid-mic-on-n0faTicX.mjs +0 -16
- package/dist/solid-mic-on-n0faTicX.mjs.map +0 -1
- package/dist/solid-minus-XmIqkiCK.mjs +0 -16
- package/dist/solid-minus-XmIqkiCK.mjs.map +0 -1
- package/dist/solid-minus-circle-d0LHcfu8.mjs +0 -16
- package/dist/solid-minus-circle-d0LHcfu8.mjs.map +0 -1
- package/dist/solid-money-taxes-B5MNWhaQ.mjs +0 -16
- package/dist/solid-money-taxes-B5MNWhaQ.mjs.map +0 -1
- package/dist/solid-monitor-RM_ysRwT.mjs +0 -9
- package/dist/solid-monitor-RM_ysRwT.mjs.map +0 -1
- package/dist/solid-more-horizontal-wRipgsTv.mjs +0 -30
- package/dist/solid-more-horizontal-wRipgsTv.mjs.map +0 -1
- package/dist/solid-more-vertical-y_G_Xqyp.mjs +0 -9
- package/dist/solid-more-vertical-y_G_Xqyp.mjs.map +0 -1
- package/dist/solid-movie-xPgg8C8V.mjs +0 -9
- package/dist/solid-movie-xPgg8C8V.mjs.map +0 -1
- package/dist/solid-music-odncqDnb.mjs +0 -9
- package/dist/solid-music-odncqDnb.mjs.map +0 -1
- package/dist/solid-package-ZIpibPYQ.mjs +0 -16
- package/dist/solid-package-ZIpibPYQ.mjs.map +0 -1
- package/dist/solid-paperclip-V5CFdZLR.mjs +0 -16
- package/dist/solid-paperclip-V5CFdZLR.mjs.map +0 -1
- package/dist/solid-plane-pVFEpCvd.mjs +0 -16
- package/dist/solid-plane-pVFEpCvd.mjs.map +0 -1
- package/dist/solid-plus-Amv4a502.mjs +0 -9
- package/dist/solid-plus-Amv4a502.mjs.map +0 -1
- package/dist/solid-plus-circle-q5ECGcdX.mjs +0 -16
- package/dist/solid-plus-circle-q5ECGcdX.mjs.map +0 -1
- package/dist/solid-print-uzdnofcw.mjs +0 -16
- package/dist/solid-print-uzdnofcw.mjs.map +0 -1
- package/dist/solid-question-mark-1OsHm9X2.mjs +0 -9
- package/dist/solid-question-mark-1OsHm9X2.mjs.map +0 -1
- package/dist/solid-refresh-ccw-5i53RjmU.mjs +0 -9
- package/dist/solid-refresh-ccw-5i53RjmU.mjs.map +0 -1
- package/dist/solid-search-NzemvYkK.mjs +0 -9
- package/dist/solid-search-NzemvYkK.mjs.map +0 -1
- package/dist/solid-settings-b_SLf2D1.mjs +0 -9
- package/dist/solid-settings-b_SLf2D1.mjs.map +0 -1
- package/dist/solid-share-VKZu2rBh.mjs +0 -9
- package/dist/solid-share-VKZu2rBh.mjs.map +0 -1
- package/dist/solid-shield-JcQjFrsr.mjs +0 -16
- package/dist/solid-shield-JcQjFrsr.mjs.map +0 -1
- package/dist/solid-smartphone-NlPsVoSR.mjs +0 -16
- package/dist/solid-smartphone-NlPsVoSR.mjs.map +0 -1
- package/dist/solid-smile-sad-_5Uy2-hf.mjs +0 -16
- package/dist/solid-smile-sad-_5Uy2-hf.mjs.map +0 -1
- package/dist/solid-social-security-milWwV0Y.mjs +0 -16
- package/dist/solid-social-security-milWwV0Y.mjs.map +0 -1
- package/dist/solid-sort-alpha-down-956TW6DR.mjs +0 -16
- package/dist/solid-sort-alpha-down-956TW6DR.mjs.map +0 -1
- package/dist/solid-sort-alpha-up-prp0Qpkf.mjs +0 -23
- package/dist/solid-sort-alpha-up-prp0Qpkf.mjs.map +0 -1
- package/dist/solid-sort-generic-down-fr22CBJA.mjs +0 -9
- package/dist/solid-sort-generic-down-fr22CBJA.mjs.map +0 -1
- package/dist/solid-sort-generic-up-mQmOWWBZ.mjs +0 -9
- package/dist/solid-sort-generic-up-mQmOWWBZ.mjs.map +0 -1
- package/dist/solid-sort-vertical-w9sQhfPB.mjs +0 -9
- package/dist/solid-sort-vertical-w9sQhfPB.mjs.map +0 -1
- package/dist/solid-star-sFfEo_0x.mjs +0 -9
- package/dist/solid-star-sFfEo_0x.mjs.map +0 -1
- package/dist/solid-tag-_MOsNHmz.mjs +0 -9
- package/dist/solid-tag-_MOsNHmz.mjs.map +0 -1
- package/dist/solid-target-4S3CMgSW.mjs +0 -16
- package/dist/solid-target-4S3CMgSW.mjs.map +0 -1
- package/dist/solid-thumbs-down-P5DGzcsm.mjs +0 -9
- package/dist/solid-thumbs-down-P5DGzcsm.mjs.map +0 -1
- package/dist/solid-thumbs-up-34meU4hH.mjs +0 -9
- package/dist/solid-thumbs-up-34meU4hH.mjs.map +0 -1
- package/dist/solid-ticket-ah4Jp1G6.mjs +0 -9
- package/dist/solid-ticket-ah4Jp1G6.mjs.map +0 -1
- package/dist/solid-trash-EUfxQsCg.mjs +0 -16
- package/dist/solid-trash-EUfxQsCg.mjs.map +0 -1
- package/dist/solid-tree-bXPmDTvi.mjs +0 -9
- package/dist/solid-tree-bXPmDTvi.mjs.map +0 -1
- package/dist/solid-truck-GvLJgJxW.mjs +0 -9
- package/dist/solid-truck-GvLJgJxW.mjs.map +0 -1
- package/dist/solid-twitter-ZS87SoI7.mjs +0 -9
- package/dist/solid-twitter-ZS87SoI7.mjs.map +0 -1
- package/dist/solid-twitter-x-z326SLll.mjs +0 -15
- package/dist/solid-twitter-x-z326SLll.mjs.map +0 -1
- package/dist/solid-unlock-dyllogZV.mjs +0 -9
- package/dist/solid-unlock-dyllogZV.mjs.map +0 -1
- package/dist/solid-upload-xH4Mf-D_.mjs +0 -30
- package/dist/solid-upload-xH4Mf-D_.mjs.map +0 -1
- package/dist/solid-user-group-oV_Bbpzw.mjs +0 -9
- package/dist/solid-user-group-oV_Bbpzw.mjs.map +0 -1
- package/dist/solid-user-r1VlbYNh.mjs +0 -9
- package/dist/solid-user-r1VlbYNh.mjs.map +0 -1
- package/dist/solid-video-off-mMyMU_P0.mjs +0 -16
- package/dist/solid-video-off-mMyMU_P0.mjs.map +0 -1
- package/dist/solid-video-on-DzE5tXM-.mjs +0 -9
- package/dist/solid-video-on-DzE5tXM-.mjs.map +0 -1
- package/dist/solid-volume-max-NHP3VQQI.mjs +0 -9
- package/dist/solid-volume-max-NHP3VQQI.mjs.map +0 -1
- package/dist/solid-volume-min-Mb9evf4B.mjs +0 -9
- package/dist/solid-volume-min-Mb9evf4B.mjs.map +0 -1
- package/dist/solid-volume-mute-v5bKeqIL.mjs +0 -9
- package/dist/solid-volume-mute-v5bKeqIL.mjs.map +0 -1
- package/dist/solid-volume-off-WWzF19r9.mjs +0 -16
- package/dist/solid-volume-off-WWzF19r9.mjs.map +0 -1
- package/dist/solid-wallet-wmBAJiUQ.mjs +0 -9
- package/dist/solid-wallet-wmBAJiUQ.mjs.map +0 -1
- package/dist/solid-wifi-im3fV8RP.mjs +0 -9
- package/dist/solid-wifi-im3fV8RP.mjs.map +0 -1
- package/dist/solid-x-circle-bXGs9iXD.mjs +0 -16
- package/dist/solid-x-circle-bXGs9iXD.mjs.map +0 -1
- package/dist/solid-x-i3JggSik.mjs +0 -9
- package/dist/solid-x-i3JggSik.mjs.map +0 -1
- package/dist/solid-youtube-aulZssjt.mjs +0 -16
- package/dist/solid-youtube-aulZssjt.mjs.map +0 -1
- package/dist/types/components/assets/agora-illustrate-bookmark.d.ts +0 -2
- package/dist/types/components/index.d.ts +0 -4
- package/dist/types/components/models/index.d.ts +0 -6
- package/dist/types/components/ui/atoms/accordion/accordion.d.ts +0 -49
- package/dist/types/components/ui/atoms/accordion/index.d.ts +0 -2
- package/dist/types/components/ui/atoms/anchor/anchor.d.ts +0 -67
- package/dist/types/components/ui/atoms/avatar/avatar.d.ts +0 -70
- package/dist/types/components/ui/atoms/avatar/interactive-avatar.d.ts +0 -9
- package/dist/types/components/ui/atoms/avatar/non-interactive-avatar.d.ts +0 -8
- package/dist/types/components/ui/atoms/breadcrumb/breadcrumb.d.ts +0 -26
- package/dist/types/components/ui/atoms/breadcrumb/desktop/breadcrumb-desktop.d.ts +0 -4
- package/dist/types/components/ui/atoms/breadcrumb/mobile/breadcrumb-mobile.d.ts +0 -4
- package/dist/types/components/ui/atoms/button/button.d.ts +0 -68
- package/dist/types/components/ui/atoms/checkbox/checkbox.d.ts +0 -23
- package/dist/types/components/ui/atoms/dialog/dialog.d.ts +0 -33
- package/dist/types/components/ui/atoms/dialog/index.d.ts +0 -2
- package/dist/types/components/ui/atoms/drawer/drawer.d.ts +0 -37
- package/dist/types/components/ui/atoms/drawer/index.d.ts +0 -2
- package/dist/types/components/ui/atoms/glossary-letters/glossary-letters.d.ts +0 -25
- package/dist/types/components/ui/atoms/icon/assets/empty-icon.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/index.d.ts +0 -6
- package/dist/types/components/ui/atoms/icon/assets/line/line-airplay.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-alert-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-alert-triangle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-down-anchor.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-down-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-down.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-left-anchor.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-left-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-left.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-right-anchor.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-right-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-right.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-up-anchor.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-up-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-up.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-at-sign.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-award.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-bell.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-book-open.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-bookmark-card.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-bookmark.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-briefcase.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-buildings.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-bullet.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-bus.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-calculator.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-calendar.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-camera.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-chat.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-check-all.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-check-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-check.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-chevron-down.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-chevron-left.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-chevron-right.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-chevron-up.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-chevrons-down.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-chevrons-left.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-chevrons-right.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-chevrons-up.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-clock.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-coffee.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-court.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-credit-card.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-dashboard.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-delete.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-document.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-download.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-driving.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-edit.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-external-link.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-eye-off.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-eye.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-facebook.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-file-share.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-file.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-filter.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-flag.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-folder.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-globe.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-hardware-settings.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-health.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-help-support.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-home.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-info-mark.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-instagram.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-linkedin.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-list.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-loader.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-lock.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-log-in.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-log-out.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-mail-open.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-mail.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-map-pin.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-map.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-mega-phone.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-menu.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-mic-off.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-mic-on.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-minus-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-minus.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-money-taxes.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-monitor.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-more-horizontal.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-more-vertical.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-movie.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-music.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-package.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-paperclip.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-plane.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-plus-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-plus.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-print.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-question-mark.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-refresh-ccw.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-search.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-settings.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-share.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-shield.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-smartphone.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-smile-sad.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-social-security.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-sort-alpha-down.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-sort-alpha-up.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-sort-generic-down.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-sort-generic-up.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-sort-vertical.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-star.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-tag.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-target.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-thumbs-down.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-thumbs-up.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-ticket.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-trash.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-tree.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-truck.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-twitter-x.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-twitter.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-unlock.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-upload.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-user-group.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-user.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-video-off.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-video-on.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-volume-max.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-volume-min.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-volume-mute.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-volume-off.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-wallet.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-wifi.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-x-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-x.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/line/line-youtube.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/other/agora.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/other/drag-dots.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-airplay.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-alert-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-alert-triangle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-down-anchor.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-down-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-down.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-left-anchor.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-left-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-left.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-right-anchor.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-right-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-right.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-up-anchor.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-up-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-up.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-at-sign.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-award.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-bell.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-book-open.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-bookmark-card.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-bookmark.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-briefcase.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-buildings.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-bullet.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-bus.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-calculator.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-calendar.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-camera.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-chat.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-check-all.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-check-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-check.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevron-down.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevron-left.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevron-right.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevron-up.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevrons-down.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevrons-left.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevrons-right.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevrons-up.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-clock.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-coffee.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-court.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-credit-card.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-dashboard.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-delete.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-document.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-download.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-driving.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-edit.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-external-link.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-eye-off.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-eye.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-facebook.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-file-share.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-file.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-filter.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-flag.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-folder.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-globe.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-hardware-settings.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-health.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-help-support.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-home.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-info-mark.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-instagram.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-linkedin.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-list.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-loader.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-lock.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-log-in.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-log-out.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-mail-open.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-mail.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-map-pin.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-map.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-mega-phone.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-menu.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-mic-off.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-mic-on.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-minus-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-minus.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-money-taxes.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-monitor.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-more-horizontal.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-more-vertical.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-movie.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-music.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-package.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-paperclip.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-plane.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-plus-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-plus.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-print.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-question-mark.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-refresh-ccw.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-search.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-settings.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-share.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-shield.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-smartphone.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-smile-sad.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-social-security.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-sort-alpha-down.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-sort-alpha-up.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-sort-generic-down.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-sort-generic-up.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-sort-vertical.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-star.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-tag.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-target.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-thumbs-down.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-thumbs-up.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-ticket.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-trash.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-tree.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-truck.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-twitter-x.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-twitter.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-unlock.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-upload.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-user-group.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-user.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-video-off.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-video-on.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-volume-max.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-volume-min.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-volume-mute.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-volume-off.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-wallet.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-wifi.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-x-circle.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-x.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/assets/solid/solid-youtube.d.ts +0 -4
- package/dist/types/components/ui/atoms/icon/icon.d.ts +0 -28
- package/dist/types/components/ui/atoms/input-email-bar/input-email-bar.d.ts +0 -39
- package/dist/types/components/ui/atoms/input-file/index.d.ts +0 -2
- package/dist/types/components/ui/atoms/input-file/input-file.d.ts +0 -64
- package/dist/types/components/ui/atoms/input-number/input-number.d.ts +0 -51
- package/dist/types/components/ui/atoms/input-password/input-password.d.ts +0 -46
- package/dist/types/components/ui/atoms/input-range/index.d.ts +0 -2
- package/dist/types/components/ui/atoms/input-range/input-range.d.ts +0 -48
- package/dist/types/components/ui/atoms/input-search/input-search.d.ts +0 -42
- package/dist/types/components/ui/atoms/input-search-bar/index.d.ts +0 -2
- package/dist/types/components/ui/atoms/input-search-bar/input-search-bar.d.ts +0 -46
- package/dist/types/components/ui/atoms/input-text/input-text.d.ts +0 -42
- package/dist/types/components/ui/atoms/input-textarea/input-textarea.d.ts +0 -39
- package/dist/types/components/ui/atoms/link-wrapper/link-wrapper.d.ts +0 -37
- package/dist/types/components/ui/atoms/list/list.d.ts +0 -31
- package/dist/types/components/ui/atoms/pill/pill.d.ts +0 -39
- package/dist/types/components/ui/atoms/progress-bar/progress-bar.d.ts +0 -34
- package/dist/types/components/ui/atoms/radio/radio.d.ts +0 -23
- package/dist/types/components/ui/atoms/scribbles/assets/arrow/arrow-curve-right.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/arrow/arrow-down-left.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/arrow/arrow-down-right.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/arrow/arrow-loop.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/arrow/arrow-right.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/arrow/arrow-up-right.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/bold/bold-arrow.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/bold/bold-line.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/circle/circle-left-l.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/circle/circle-left-xxl.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/circle/circle-right-l.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/circle/circle-right-xxl.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/detail/detail-attention.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/detail/detail-chat.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/detail/detail-fluid.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/detail/detail-movement.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/detail/detail-talk.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/index.d.ts +0 -6
- package/dist/types/components/ui/atoms/scribbles/assets/line/line-straight.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/line/line-zig-zag.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/line/line-zig.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/wave/wave-left-l.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/wave/wave-right-l.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/assets/wave/wave-right-m.d.ts +0 -4
- package/dist/types/components/ui/atoms/scribbles/scribbles.d.ts +0 -24
- package/dist/types/components/ui/atoms/skip-navigation/index.d.ts +0 -2
- package/dist/types/components/ui/atoms/skip-navigation/skip-navigation.d.ts +0 -40
- package/dist/types/components/ui/atoms/status-card/status-card.d.ts +0 -25
- package/dist/types/components/ui/atoms/step-list/step-list.d.ts +0 -13
- package/dist/types/components/ui/atoms/switch/switch.d.ts +0 -28
- package/dist/types/components/ui/atoms/tabs/index.d.ts +0 -8
- package/dist/types/components/ui/atoms/tabs/tab-body.d.ts +0 -13
- package/dist/types/components/ui/atoms/tabs/tab.d.ts +0 -15
- package/dist/types/components/ui/atoms/tabs/tabs.d.ts +0 -23
- package/dist/types/components/ui/atoms/tag/tag.d.ts +0 -31
- package/dist/types/components/ui/atoms/toasts/toast.d.ts +0 -26
- package/dist/types/components/ui/atoms/tooltip/tooltip.d.ts +0 -42
- package/dist/types/components/ui/index.d.ts +0 -57
- package/dist/types/components/ui/molecules/accordion-group/accordion-group.d.ts +0 -19
- package/dist/types/components/ui/molecules/avatar-group/avatar-group.d.ts +0 -24
- package/dist/types/components/ui/molecules/avatar-group/visible-count-avatar-group.d.ts +0 -9
- package/dist/types/components/ui/molecules/back-to-top/back-to-top.d.ts +0 -31
- package/dist/types/components/ui/molecules/button-group/button-group.d.ts +0 -36
- package/dist/types/components/ui/molecules/button-group/index.d.ts +0 -2
- package/dist/types/components/ui/molecules/checkbox-group/checkbox-group.d.ts +0 -49
- package/dist/types/components/ui/molecules/dropdown/dropdown-option.d.ts +0 -14
- package/dist/types/components/ui/molecules/dropdown/dropdown-section.d.ts +0 -12
- package/dist/types/components/ui/molecules/dropdown/dropdown.d.ts +0 -67
- package/dist/types/components/ui/molecules/dropdown/index.d.ts +0 -7
- package/dist/types/components/ui/molecules/dropdown/internals/internal-dropdown-context.d.ts +0 -28
- package/dist/types/components/ui/molecules/dropdown/internals/internal-dropdown-option.d.ts +0 -17
- package/dist/types/components/ui/molecules/dropdown/internals/internal-dropdown-section.d.ts +0 -13
- package/dist/types/components/ui/molecules/dropdown/internals/internal-dropdown-select-all-section.d.ts +0 -6
- package/dist/types/components/ui/molecules/dropdown/internals/internal-dropdown.d.ts +0 -20
- package/dist/types/components/ui/molecules/dropdown/internals/use-dropdown-state.d.ts +0 -7
- package/dist/types/components/ui/molecules/loader-dialog/loader-dialog-context.d.ts +0 -12
- package/dist/types/components/ui/molecules/loader-dialog/loader-dialog.d.ts +0 -13
- package/dist/types/components/ui/molecules/loader-dialog/loader-provider.d.ts +0 -9
- package/dist/types/components/ui/molecules/menu-item/menu-item.d.ts +0 -43
- package/dist/types/components/ui/molecules/modal-dialog/index.d.ts +0 -6
- package/dist/types/components/ui/molecules/modal-dialog/modal-context.d.ts +0 -12
- package/dist/types/components/ui/molecules/modal-dialog/modal-dialog.d.ts +0 -19
- package/dist/types/components/ui/molecules/modal-dialog/modal-provider.d.ts +0 -14
- package/dist/types/components/ui/molecules/popup-dialog/index.d.ts +0 -6
- package/dist/types/components/ui/molecules/popup-dialog/popup-context.d.ts +0 -12
- package/dist/types/components/ui/molecules/popup-dialog/popup-dialog.d.ts +0 -28
- package/dist/types/components/ui/molecules/popup-dialog/popup-provider.d.ts +0 -18
- package/dist/types/components/ui/molecules/progress-bar-group/progress-bar-group.d.ts +0 -30
- package/dist/types/components/ui/molecules/radio-button-group/radio-button-group.d.ts +0 -53
- package/dist/types/components/ui/molecules/search-pagination/search-page.d.ts +0 -14
- package/dist/types/components/ui/molecules/search-pagination/search-pagination.d.ts +0 -42
- package/dist/types/components/ui/molecules/uploader/button-uploader/button-uploader.d.ts +0 -59
- package/dist/types/components/ui/molecules/uploader/drag-and-drop-uploader/drag-and-drop-uploader.d.ts +0 -67
- package/dist/types/components/ui/molecules/uploader/shared/use-file-upload.d.ts +0 -17
- package/dist/types/components/ui/organisms/cards/card-article/card-article.d.ts +0 -48
- package/dist/types/components/ui/organisms/cards/card-article/index.d.ts +0 -2
- package/dist/types/components/ui/organisms/cards/card-collection/card-collection.d.ts +0 -27
- package/dist/types/components/ui/organisms/cards/card-emphasize/card-emphasize.d.ts +0 -31
- package/dist/types/components/ui/organisms/cards/card-error/card-error.d.ts +0 -34
- package/dist/types/components/ui/organisms/cards/card-expandable/card-expandable.d.ts +0 -27
- package/dist/types/components/ui/organisms/cards/card-frame/card-frame.d.ts +0 -27
- package/dist/types/components/ui/organisms/cards/card-full-image/card-full-image.d.ts +0 -16
- package/dist/types/components/ui/organisms/cards/card-hero-helper/card-hero-helper.d.ts +0 -27
- package/dist/types/components/ui/organisms/cards/card-hero-index/card-hero-index.d.ts +0 -19
- package/dist/types/components/ui/organisms/cards/card-hero-sitemap/card-hero-sitemap.d.ts +0 -27
- package/dist/types/components/ui/organisms/cards/card-highlight/card-highlight.d.ts +0 -46
- package/dist/types/components/ui/organisms/cards/card-highlight/shared/inner-highlight-card.d.ts +0 -27
- package/dist/types/components/ui/organisms/cards/card-highlight-newsletter/card-highlight-newsletter.d.ts +0 -22
- package/dist/types/components/ui/organisms/cards/card-highlight-single/card-highlight-single.d.ts +0 -22
- package/dist/types/components/ui/organisms/cards/card-highlight-single/index.d.ts +0 -2
- package/dist/types/components/ui/organisms/cards/card-links/card-links.d.ts +0 -39
- package/dist/types/components/ui/organisms/cards/card-no-results/card-no-results.d.ts +0 -30
- package/dist/types/components/ui/organisms/cards/card-no-results/index.d.ts +0 -2
- package/dist/types/components/ui/organisms/cards/card-search-result/card-search-result.d.ts +0 -39
- package/dist/types/components/ui/organisms/cards/card-single/card-single.d.ts +0 -40
- package/dist/types/components/ui/organisms/cards/card-single/index.d.ts +0 -2
- package/dist/types/components/ui/organisms/cards/card-topic/card-topic.d.ts +0 -51
- package/dist/types/components/ui/organisms/feedback/feedback.d.ts +0 -27
- package/dist/types/components/ui/organisms/input-date/contexts/date-picker-state.context.d.ts +0 -33
- package/dist/types/components/ui/organisms/input-date/contexts/use-date-picker-state-context.d.ts +0 -60
- package/dist/types/components/ui/organisms/input-date/date-picker-dropdown.d.ts +0 -26
- package/dist/types/components/ui/organisms/input-date/grouped-date/grouped-date.d.ts +0 -18
- package/dist/types/components/ui/organisms/input-date/index.d.ts +0 -2
- package/dist/types/components/ui/organisms/input-date/input-date.d.ts +0 -126
- package/dist/types/components/ui/organisms/input-phone/index.d.ts +0 -2
- package/dist/types/components/ui/organisms/input-phone/input-phone.d.ts +0 -79
- package/dist/types/components/ui/organisms/input-phone/resources/config.d.ts +0 -8
- package/dist/types/components/ui/organisms/input-select/index.d.ts +0 -2
- package/dist/types/components/ui/organisms/input-select/input-select.d.ts +0 -102
- package/dist/types/components/ui/organisms/ratings/index.d.ts +0 -2
- package/dist/types/components/ui/organisms/ratings/rating-button/index.d.ts +0 -2
- package/dist/types/components/ui/organisms/ratings/rating-button/rating-button.d.ts +0 -48
- package/dist/types/components/ui/organisms/ratings/rating-star/index.d.ts +0 -2
- package/dist/types/components/ui/organisms/ratings/rating-star/rating-star.d.ts +0 -35
- package/dist/types/components/ui/organisms/table/table-header-cell.d.ts +0 -32
- package/dist/types/components/ui/organisms/table/table-pagination.d.ts +0 -54
- package/dist/types/components/ui/organisms/table/table.d.ts +0 -36
- package/dist/types/components/ui/organisms/timelines/shared/timeline-event/timeline-event.d.ts +0 -42
- package/dist/types/components/ui/organisms/timelines/timeline-horizontal/timeline-horizontal.d.ts +0 -23
- package/dist/types/components/ui/organisms/timelines/timeline-vertical/timeline-vertical.d.ts +0 -15
- package/dist/types/components/ui/shared/feedback/feedback.d.ts +0 -20
- package/dist/types/components/ui/templates/footer/federated-footer/federated-footer-card.d.ts +0 -4
- package/dist/types/components/ui/templates/footer/federated-footer/federated-footer.d.ts +0 -38
- package/dist/types/components/ui/templates/header/header.d.ts +0 -63
- package/dist/types/components/ui/templates/header/models/MenuProps.d.ts +0 -10
- package/dist/types/components/ui/templates/header/models/SearchContentListLinkProps.d.ts +0 -6
- package/dist/types/components/ui/templates/header/models/SubmenuItemProps.d.ts +0 -24
- package/dist/types/components/ui/templates/header/models/SubmenuSearchContentProps.d.ts +0 -13
- package/dist/types/components/ui/templates/header/shared-components/header-burger-navigation/header-burger-primary-navigation.d.ts +0 -15
- package/dist/types/components/ui/templates/header/shared-components/header-burger-navigation/header-burger-secondary-navigation.d.ts +0 -17
- package/dist/types/components/ui/templates/header/shared-components/header-general-options/header-general-options.d.ts +0 -37
- package/dist/types/components/ui/templates/header/shared-components/header-navigation/header-navigation.d.ts +0 -38
- package/dist/types/components/ui/templates/header/utils/handle-click-menu-item.d.ts +0 -4
- package/dist/types/components/utils/create-synthetic-change-event.d.ts +0 -2
- package/dist/types/components/utils/index.d.ts +0 -5
- package/dist/types/index.d.ts +0 -2
- package/dist/wave-left-l-DdXkrLYU.mjs +0 -18
- package/dist/wave-left-l-DdXkrLYU.mjs.map +0 -1
- package/dist/wave-right-l-th6zHZb6.mjs +0 -18
- package/dist/wave-right-l-th6zHZb6.mjs.map +0 -1
- package/dist/wave-right-m-cXUiY52p.mjs +0 -18
- package/dist/wave-right-m-cXUiY52p.mjs.map +0 -1
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/accordion-group/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/anchor/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/avatar/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/avatar-group/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/back-to-top/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/breadcrumb/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/button/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-collection/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-emphasize/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-error/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-expandable/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-frame/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-full-image/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-hero-helper/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-hero-index/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-hero-sitemap/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-highlight/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-highlight-newsletter/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-links/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-search-result/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-topic/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/shared/use-blocked-link.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/checkbox/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/checkbox-group/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/dropdown/dropdown-type.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/dropdown/internals/internal-dropdown-filter-section.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/dropdown/internals/internal-dropdown-no-results.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/feedback/index.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/federated-footer/index.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/index.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/models/CardFooterProps.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/models/CardLinksFooterProps.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/models/ContactsFooterProps.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/models/LinkableIconsProps.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/models/LinkableImagesProps.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/models/index.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/index.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/public-footer-contacts.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/public-footer-highlight-card-links.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/public-footer-highlight-card.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/public-footer-highlight.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/public-footer-main-plus-card-links.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/public-footer.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/shared-components/footer-brand-badge.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/shared-components/footer-caption-partners.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/shared-components/footer-main.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/shared-components/footer-social-useful-copyright.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/glossary-letters/index.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/index.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/BackdropRef.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/DrawerContentProps.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/DrawerFooterProps.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/DrawerMenuItemsProps.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/DrawerMenuProps.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/HeaderNavigationType.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/MenuItemGeneralOptionsProps.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/SubmenuAlignmentType.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/SubmenuType.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/index.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/shared-components/header-burger-navigation/header-burger-navigation.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/shared-components/header-menu-item-options/header-menu-item-options-links.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/shared-components/header-menu-item-options/header-menu-item-options-search.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/shared-components/header-menu-item-options/header-menu-item-options.d.ts +0 -0
- /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/utils/close-other-menu.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/icon/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/input-date/date-picker-dropdown-body/date-picker-dropdown-body.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/input-date/date-picker-dropdown-footer/date-picker-dropdown-footer.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/input-date/date-picker-dropdown-header/date-picker-dropdown-header.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/input-date/utils/is-date-in-same-month.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/input-date/utils/is-same-day.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/input-date/utils/parse-input-date.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/input-email-bar/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/input-number/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/input-password/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/input-search/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/input-text/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/input-textarea/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/link-wrapper/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/list/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/loader-dialog/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/menu-item/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/pill/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/progress-bar/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/progress-bar-group/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/radio/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/radio-button-group/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/scribbles/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/search-pagination/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/search-pagination/search-pagination-number-overlay.d.ts +0 -0
- /package/{dist/types/components/ui → artifacts/dist/types/components}/shared/feedback/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/skip-navigation/skip-navigation-multiple.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/skip-navigation/skip-navigation-single.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/status-card/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/status-card/interactive-status-card.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/status-card/non-interactive-status-card.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/step-list/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/switch/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/models/sort-order.type.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/models/sort-type.type.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/models/table-layout.type.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/table-body.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/table-caption.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/table-cell.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/table-footer.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/table-header.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/table-row.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/tabs/tab-header.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/tag/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/timelines/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/timelines/shared/timeline-event/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/timelines/shared/timeline-event-vertical/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/timelines/shared/timeline-event-vertical/timeline-event-vertical.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/timelines/timeline-horizontal/index.d.ts +0 -0
- /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/timelines/timeline-vertical/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/toasts/index.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/toasts/toast-context.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/toasts/toast-provider.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/toasts/use-toast.d.ts +0 -0
- /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/tooltip/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/uploader/button-uploader/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/uploader/drag-and-drop-uploader/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/uploader/index.d.ts +0 -0
- /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/uploader/shared/file-list.d.ts +0 -0
- /package/{dist → artifacts/dist}/types/configs/tailwind-config.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/hooks/index.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/hooks/use-window-size.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/models/boolean-type.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/models/feedback-state-type.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/models/heading-level-type.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/models/icon-position.type.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/models/months.interface.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/models/svg-icon.interface.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/models/week-days.interface.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/utils/debounce.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/utils/get-date-string.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/utils/normalizeText.d.ts +0 -0
- /package/{dist/types/components → artifacts/dist/types}/utils/string-to-boolean.d.ts +0 -0
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../node_modules/classnames/index.js","../src/components/utils/string-to-boolean.ts","../src/components/ui/atoms/icon/assets/empty-icon.tsx","../src/components/ui/atoms/icon/assets/index.tsx","../src/components/ui/atoms/icon/icon.tsx","../src/components/ui/atoms/accordion/accordion.tsx","../src/components/utils/debounce.ts","../src/components/utils/normalizeText.ts","../src/components/utils/get-date-string.ts","../src/components/utils/create-synthetic-change-event.ts","../src/components/ui/atoms/anchor/anchor.tsx","../src/components/ui/atoms/button/button.tsx","../src/components/ui/atoms/avatar/interactive-avatar.tsx","../src/components/ui/atoms/avatar/non-interactive-avatar.tsx","../src/components/ui/atoms/tooltip/tooltip.tsx","../src/components/ui/atoms/avatar/avatar.tsx","../src/components/ui/atoms/breadcrumb/desktop/breadcrumb-desktop.tsx","../src/components/ui/atoms/breadcrumb/mobile/breadcrumb-mobile.tsx","../src/components/ui/atoms/breadcrumb/breadcrumb.tsx","../src/components/ui/atoms/checkbox/checkbox.tsx","../src/components/ui/atoms/dialog/dialog.tsx","../src/components/ui/atoms/drawer/drawer.tsx","../src/components/ui/atoms/glossary-letters/glossary-letters.tsx","../src/components/ui/shared/feedback/feedback.tsx","../src/components/ui/atoms/input-email-bar/input-email-bar.tsx","../src/components/ui/atoms/input-file/input-file.tsx","../src/components/ui/atoms/input-number/input-number.tsx","../src/components/ui/atoms/input-password/input-password.tsx","../src/components/ui/atoms/input-range/input-range.tsx","../src/components/ui/atoms/input-search/input-search.tsx","../src/components/ui/atoms/input-search-bar/input-search-bar.tsx","../src/components/ui/atoms/input-text/input-text.tsx","../src/components/ui/atoms/input-textarea/input-textarea.tsx","../src/components/ui/atoms/link-wrapper/link-wrapper.tsx","../src/components/ui/atoms/list/list.tsx","../src/components/ui/atoms/pill/pill.tsx","../src/components/ui/atoms/progress-bar/progress-bar.tsx","../src/components/ui/atoms/radio/radio.tsx","../src/components/ui/atoms/scribbles/assets/index.tsx","../src/components/ui/atoms/scribbles/scribbles.tsx","../src/components/ui/atoms/skip-navigation/skip-navigation-multiple.tsx","../src/components/ui/atoms/skip-navigation/skip-navigation-single.tsx","../src/components/ui/atoms/skip-navigation/skip-navigation.tsx","../src/components/ui/atoms/status-card/interactive-status-card.tsx","../src/components/ui/atoms/status-card/non-interactive-status-card.tsx","../src/components/ui/atoms/status-card/status-card.tsx","../src/components/ui/atoms/step-list/step-list.tsx","../src/components/ui/atoms/switch/switch.tsx","../src/components/ui/atoms/tabs/tab-body.tsx","../src/components/ui/atoms/tabs/tab-header.tsx","../src/components/ui/atoms/tabs/tab.tsx","../src/components/ui/atoms/tabs/tabs.tsx","../src/components/ui/atoms/tag/tag.tsx","../src/components/ui/atoms/toasts/toast-context.tsx","../src/components/ui/atoms/toasts/toast.tsx","../src/components/ui/atoms/toasts/use-toast.ts","../src/components/hooks/use-window-size.tsx","../src/components/ui/atoms/toasts/toast-provider.tsx","../src/components/ui/molecules/accordion-group/accordion-group.tsx","../src/components/ui/molecules/dropdown/internals/internal-dropdown-context.tsx","../src/components/ui/molecules/dropdown/internals/internal-dropdown-filter-section.tsx","../src/components/ui/molecules/dropdown/internals/internal-dropdown-no-results.tsx","../src/components/ui/molecules/dropdown/internals/internal-dropdown-option.tsx","../src/components/ui/molecules/dropdown/internals/internal-dropdown-section.tsx","../src/components/ui/molecules/dropdown/internals/internal-dropdown-select-all-section.tsx","../src/components/ui/molecules/dropdown/internals/internal-dropdown.tsx","../src/components/ui/molecules/dropdown/internals/use-dropdown-state.tsx","../src/components/ui/molecules/dropdown/dropdown.tsx","../src/components/ui/molecules/dropdown/dropdown-section.tsx","../src/components/ui/molecules/dropdown/dropdown-option.tsx","../src/components/ui/molecules/avatar-group/visible-count-avatar-group.tsx","../src/components/ui/molecules/avatar-group/avatar-group.tsx","../src/components/ui/molecules/back-to-top/back-to-top.tsx","../src/components/ui/molecules/button-group/button-group.tsx","../src/components/ui/molecules/checkbox-group/checkbox-group.tsx","../src/components/ui/molecules/loader-dialog/loader-dialog.tsx","../src/components/ui/molecules/loader-dialog/loader-dialog-context.tsx","../src/components/ui/molecules/loader-dialog/loader-provider.tsx","../src/components/ui/molecules/menu-item/menu-item.tsx","../src/components/ui/molecules/modal-dialog/modal-context.tsx","../src/components/ui/molecules/modal-dialog/modal-dialog.tsx","../src/components/ui/molecules/modal-dialog/modal-provider.tsx","../src/components/ui/molecules/popup-dialog/popup-context.tsx","../src/components/ui/molecules/popup-dialog/popup-dialog.tsx","../src/components/ui/molecules/popup-dialog/popup-provider.tsx","../src/components/ui/molecules/progress-bar-group/progress-bar-group.tsx","../src/components/ui/molecules/radio-button-group/radio-button-group.tsx","../src/components/ui/molecules/search-pagination/search-page.tsx","../src/components/ui/molecules/search-pagination/search-pagination-number-overlay.tsx","../src/components/ui/molecules/search-pagination/search-pagination.tsx","../src/components/ui/molecules/uploader/shared/file-list.tsx","../src/components/ui/molecules/uploader/shared/use-file-upload.tsx","../src/components/ui/molecules/uploader/button-uploader/button-uploader.tsx","../src/components/ui/molecules/uploader/drag-and-drop-uploader/drag-and-drop-uploader.tsx","../src/components/ui/organisms/cards/shared/use-blocked-link.tsx","../src/components/ui/organisms/cards/card-article/card-article.tsx","../src/components/ui/organisms/cards/card-collection/card-collection.tsx","../src/components/ui/organisms/cards/card-emphasize/card-emphasize.tsx","../src/components/ui/organisms/cards/card-error/card-error.tsx","../src/components/assets/agora-illustrate-bookmark.tsx","../src/components/ui/organisms/cards/card-expandable/card-expandable.tsx","../src/components/ui/organisms/cards/card-frame/card-frame.tsx","../src/components/ui/organisms/cards/card-full-image/card-full-image.tsx","../src/components/ui/organisms/cards/card-hero-helper/card-hero-helper.tsx","../src/components/ui/organisms/cards/card-hero-index/card-hero-index.tsx","../src/components/ui/organisms/cards/card-hero-sitemap/card-hero-sitemap.tsx","../src/components/ui/organisms/cards/card-highlight/shared/inner-highlight-card.tsx","../src/components/ui/organisms/cards/card-highlight/card-highlight.tsx","../src/components/ui/organisms/cards/card-highlight-newsletter/card-highlight-newsletter.tsx","../src/components/ui/organisms/cards/card-highlight-single/card-highlight-single.tsx","../src/components/ui/organisms/cards/card-links/card-links.tsx","../src/components/ui/organisms/cards/card-no-results/card-no-results.tsx","../src/components/ui/organisms/cards/card-search-result/card-search-result.tsx","../src/components/ui/organisms/cards/card-single/card-single.tsx","../src/components/ui/organisms/cards/card-topic/card-topic.tsx","../src/components/ui/organisms/ratings/rating-button/rating-button.tsx","../src/components/ui/organisms/ratings/rating-star/rating-star.tsx","../src/components/ui/organisms/feedback/feedback.tsx","../src/components/ui/organisms/input-date/contexts/date-picker-state.context.tsx","../src/components/ui/organisms/input-date/contexts/use-date-picker-state-context.tsx","../src/components/ui/organisms/input-date/utils/is-date-in-same-month.ts","../src/components/ui/organisms/input-date/utils/is-same-day.ts","../src/components/ui/organisms/input-date/utils/parse-input-date.ts","../src/components/ui/organisms/input-date/date-picker-dropdown-body/date-picker-dropdown-body.tsx","../src/components/ui/organisms/input-date/date-picker-dropdown-footer/date-picker-dropdown-footer.tsx","../src/components/ui/organisms/input-date/date-picker-dropdown-header/date-picker-dropdown-header.tsx","../src/components/ui/organisms/input-date/date-picker-dropdown.tsx","../src/components/ui/organisms/input-date/grouped-date/grouped-date.tsx","../src/components/ui/organisms/input-date/input-date.tsx","../src/components/ui/organisms/input-phone/resources/config.ts","../src/components/ui/organisms/input-phone/input-phone.tsx","../src/components/ui/organisms/input-select/input-select.tsx","../src/components/ui/organisms/table/table-body.tsx","../src/components/ui/organisms/table/table-caption.tsx","../src/components/ui/organisms/table/table-cell.tsx","../src/components/ui/organisms/table/table-footer.tsx","../src/components/ui/organisms/table/table-header.tsx","../src/components/ui/organisms/table/table-header-cell.tsx","../src/components/ui/organisms/table/table-row.tsx","../src/components/ui/organisms/table/table-pagination.tsx","../src/components/ui/organisms/table/table.tsx","../src/components/ui/organisms/timelines/shared/timeline-event/timeline-event.tsx","../src/components/ui/organisms/timelines/shared/timeline-event-vertical/timeline-event-vertical.tsx","../src/components/ui/organisms/timelines/timeline-vertical/timeline-vertical.tsx","../src/components/ui/organisms/timelines/timeline-horizontal/timeline-horizontal.tsx","../src/components/ui/templates/footer/shared-components/footer-brand-badge.tsx","../src/components/ui/templates/footer/shared-components/footer-caption-partners.tsx","../src/components/ui/templates/footer/shared-components/footer-social-useful-copyright.tsx","../src/components/ui/templates/footer/shared-components/footer-main.tsx","../src/components/ui/templates/footer/federated-footer/federated-footer-card.tsx","../src/components/ui/templates/footer/federated-footer/federated-footer.tsx","../src/components/ui/templates/footer/public-footer/public-footer-contacts.tsx","../src/components/ui/templates/footer/public-footer/public-footer-highlight-card.tsx","../src/components/ui/templates/footer/public-footer/public-footer-highlight-card-links.tsx","../src/components/ui/templates/footer/public-footer/public-footer-highlight.tsx","../src/components/ui/templates/footer/public-footer/public-footer-main-plus-card-links.tsx","../src/components/ui/templates/footer/public-footer/public-footer.tsx","../src/components/ui/templates/header/utils/close-other-menu.tsx","../src/components/ui/templates/header/utils/handle-click-menu-item.tsx","../src/components/ui/templates/header/shared-components/header-menu-item-options/header-menu-item-options-links.tsx","../src/components/ui/templates/header/shared-components/header-menu-item-options/header-menu-item-options-search.tsx","../src/components/ui/templates/header/shared-components/header-menu-item-options/header-menu-item-options.tsx","../src/components/ui/templates/header/shared-components/header-burger-navigation/header-burger-secondary-navigation.tsx","../src/components/ui/templates/header/shared-components/header-burger-navigation/header-burger-primary-navigation.tsx","../src/components/ui/templates/header/shared-components/header-burger-navigation/header-burger-navigation.tsx","../src/components/ui/templates/header/shared-components/header-general-options/header-general-options.tsx","../src/components/ui/templates/header/shared-components/header-navigation/header-navigation.tsx","../src/components/ui/templates/header/header.tsx","../src/configs/tailwind-config.ts"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * Convert string like value to Boolean\n */\nconst stringToBoolean = (value: boolean | string | undefined): boolean => {\n // some params could be undefined (not required)\n if (typeof value === 'undefined') {\n return false;\n }\n\n // if primitive boolean return self-value\n if (typeof value === 'boolean') {\n return value;\n }\n\n return value === 'true';\n};\n\nexport { stringToBoolean };\n","import React from 'react';\nimport { SVGIconProps } from '../../../../models/svg-icon.interface';\n\nexport default (props: SVGIconProps) => {\n const newProps = { ...props };\n delete newProps.alt;\n delete newProps.title;\n\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...newProps}>\n {props.title && <title>{props.title}</title>}\n <path d=\"M0 0h24v24H0z\" />\n </svg>\n );\n};\n","import { ComponentType, lazy, LazyExoticComponent } from 'react';\nimport { SVGIconProps } from '../../../../models/svg-icon.interface';\n\nexport const iconList: Record<string, LazyExoticComponent<ComponentType<SVGIconProps>>> = {\n // Business & Payment\n 'agora-line-buildings': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-buildings')),\n 'agora-solid-buildings': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-buildings')),\n 'agora-line-money-taxes': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-money-taxes')),\n 'agora-solid-money-taxes': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-money-taxes')),\n 'agora-line-award': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-award')),\n 'agora-solid-award': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-award')),\n 'agora-line-calculator': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-calculator')),\n 'agora-solid-calculator': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-calculator')),\n 'agora-line-credit-card': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-credit-card')),\n 'agora-solid-credit-card': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-credit-card')),\n 'agora-line-ticket': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-ticket')),\n 'agora-solid-ticket': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-ticket')),\n 'agora-line-wallet': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-wallet')),\n 'agora-solid-wallet': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-wallet')),\n 'agora-line-tag': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-tag')),\n 'agora-solid-tag': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-tag')),\n // Communication\n 'agora-line-thumbs-up': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-thumbs-up')),\n 'agora-line-thumbs-down': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-thumbs-down')),\n 'agora-solid-thumbs-up': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-thumbs-up')),\n 'agora-solid-thumbs-down': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-thumbs-down')),\n 'agora-line-bell': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-bell')),\n 'agora-solid-bell': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-bell')),\n 'agora-line-help-support': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-help-support')),\n 'agora-solid-help-support': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-help-support')),\n 'agora-line-chat': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chat')),\n 'agora-solid-chat': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chat')),\n 'agora-line-mail': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-mail')),\n 'agora-solid-mail': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-mail')),\n 'agora-line-mail-open': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-mail-open')),\n 'agora-solid-mail-open': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-mail-open')),\n 'agora-line-at-sign': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-at-sign')),\n 'agora-solid-at-sign': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-at-sign')),\n // Common Actions\n 'agora-line-home': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-home')),\n 'agora-solid-home': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-home')),\n 'agora-line-star': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-star')),\n 'agora-solid-star': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-star')),\n 'agora-line-log-in': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-log-in')),\n 'agora-solid-log-in': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-log-in')),\n 'agora-line-log-out': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-log-out')),\n 'agora-solid-log-out': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-log-out')),\n 'agora-line-search': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-search')),\n 'agora-solid-search': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-search')),\n 'agora-line-menu': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-menu')),\n 'agora-solid-menu': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-menu')),\n 'agora-line-health': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-health')),\n 'agora-solid-health': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-health')),\n 'agora-line-external-link': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-external-link')),\n 'agora-solid-external-link': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-external-link')),\n 'agora-line-check-all': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-check-all')),\n 'agora-solid-check-all': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-check-all')),\n 'agora-line-more-horizontal': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-more-horizontal')),\n 'agora-solid-more-horizontal': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-more-horizontal')),\n 'agora-line-more-vertical': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-more-vertical')),\n 'agora-solid-more-vertical': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-more-vertical')),\n 'agora-line-refresh-ccw': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-refresh-ccw')),\n 'agora-solid-refresh-ccw': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-refresh-ccw')),\n 'agora-line-dashboard': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-dashboard')),\n 'agora-solid-dashboard': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-dashboard')),\n // Environment\n 'agora-line-tree': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-tree')),\n 'agora-solid-tree': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-tree')),\n // File\n 'agora-line-folder': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-folder')),\n 'agora-solid-folder': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-folder')),\n 'agora-line-file': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-file')),\n 'agora-solid-file': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-file')),\n 'agora-line-document': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-document')),\n 'agora-solid-document': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-document')),\n 'agora-line-book-open': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-book-open')),\n 'agora-solid-book-open': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-book-open')),\n 'agora-line-package': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-package')),\n 'agora-solid-package': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-package')),\n 'agora-line-file-share': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-file-share')),\n 'agora-solid-file-share': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-file-share')),\n // Formatting\n 'agora-line-filter': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-filter')),\n 'agora-solid-filter': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-filter')),\n 'agora-line-edit': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-edit')),\n 'agora-solid-edit': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-edit')),\n 'agora-line-plus-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-plus-circle')),\n 'agora-solid-plus-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-plus-circle')),\n 'agora-line-plus': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-plus')),\n 'agora-solid-plus': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-plus')),\n 'agora-line-minus-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-minus-circle')),\n 'agora-solid-minus-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-minus-circle')),\n 'agora-line-minus': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-minus')),\n 'agora-solid-minus': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-minus')),\n 'agora-line-upload': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-upload')),\n 'agora-solid-upload': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-upload')),\n 'agora-line-download': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-download')),\n 'agora-solid-download': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-download')),\n 'agora-line-paperclip': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-paperclip')),\n 'agora-solid-paperclip': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-paperclip')),\n 'agora-line-list': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-list')),\n 'agora-solid-list': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-list')),\n 'agora-line-settings': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-settings')),\n 'agora-solid-settings': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-settings')),\n 'agora-line-bullet': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-bullet')),\n 'agora-solid-bullet': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-bullet')),\n 'agora-line-sort-vertical': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-sort-vertical')),\n 'agora-solid-sort-vertical': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-sort-vertical')),\n 'agora-line-sort-generic-down': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-sort-generic-down')),\n 'agora-solid-sort-generic-down': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-sort-generic-down')),\n 'agora-line-sort-generic-up': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-sort-generic-up')),\n 'agora-solid-sort-generic-up': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-sort-generic-up')),\n 'agora-line-sort-alpha-down': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-sort-alpha-down')),\n 'agora-solid-sort-alpha-down': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-sort-alpha-down')),\n 'agora-line-sort-alpha-up': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-sort-alpha-up')),\n 'agora-solid-sort-alpha-up': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-sort-alpha-up')),\n 'agora-line-trash': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-trash')),\n 'agora-solid-trash': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-trash')),\n 'agora-line-print': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-print')),\n 'agora-solid-print': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-print')),\n 'agora-line-delete': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-delete')),\n 'agora-solid-delete': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-delete')),\n // Food & Drinks\n 'agora-line-coffee': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-coffee')),\n 'agora-solid-coffee': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-coffee')),\n // Hardware\n 'agora-line-hardware-settings': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-hardware-settings')),\n 'agora-solid-hardware-settings': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-hardware-settings')),\n 'agora-line-wifi': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-wifi')),\n 'agora-solid-wifi': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-wifi')),\n // Maps & Travel\n 'agora-line-plane': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-plane')),\n 'agora-solid-plane': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-plane')),\n 'agora-line-driving': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-driving')),\n 'agora-solid-driving': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-driving')),\n 'agora-line-map': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-map')),\n 'agora-solid-map': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-map')),\n 'agora-line-map-pin': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-map-pin')),\n 'agora-solid-map-pin': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-map-pin')),\n 'agora-line-target': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-target')),\n 'agora-solid-target': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-target')),\n 'agora-line-briefcase': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-briefcase')),\n 'agora-solid-briefcase': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-briefcase')),\n 'agora-line-flag': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-flag')),\n 'agora-solid-flag': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-flag')),\n // Media\n 'agora-line-video-on': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-video-on')),\n 'agora-solid-video-on': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-video-on')),\n 'agora-line-video-off': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-video-off')),\n 'agora-solid-video-off': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-video-off')),\n 'agora-line-mic-on': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-mic-on')),\n 'agora-solid-mic-on': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-mic-on')),\n 'agora-line-mic-off': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-mic-off')),\n 'agora-solid-mic-off': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-mic-off')),\n 'agora-line-movie': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-movie')),\n 'agora-solid-movie': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-movie')),\n 'agora-line-camera': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-camera')),\n 'agora-solid-camera': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-camera')),\n 'agora-line-monitor': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-monitor')),\n 'agora-solid-monitor': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-monitor')),\n 'agora-line-airplay': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-airplay')),\n 'agora-solid-airplay': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-airplay')),\n 'agora-line-mega-phone': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-mega-phone')),\n 'agora-solid-mega-phone': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-mega-phone')),\n 'agora-line-volume-max': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-volume-max')),\n 'agora-solid-volume-max': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-volume-max')),\n 'agora-line-volume-min': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-volume-min')),\n 'agora-solid-volume-min': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-volume-min')),\n 'agora-line-volume-off': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-volume-off')),\n 'agora-solid-volume-off': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-volume-off')),\n 'agora-line-volume-mute': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-volume-mute')),\n 'agora-solid-volume-mute': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-volume-mute')),\n 'agora-line-music': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-music')),\n 'agora-solid-music': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-music')),\n 'agora-line-globe': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-globe')),\n 'agora-solid-globe': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-globe')),\n 'agora-line-smartphone': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-smartphone')),\n 'agora-solid-smartphone': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-smartphone')),\n // Navigation\n 'agora-line-arrow-down-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-down-anchor')),\n 'agora-solid-arrow-down-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-down-anchor')),\n 'agora-line-arrow-up-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-up-anchor')),\n 'agora-solid-arrow-up-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-up-anchor')),\n 'agora-line-arrow-right-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-right-anchor')),\n 'agora-solid-arrow-right-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-right-anchor')),\n 'agora-line-arrow-left-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-left-anchor')),\n 'agora-solid-arrow-left-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-left-anchor')),\n 'agora-line-arrow-down-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-down-circle')),\n 'agora-solid-arrow-down-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-down-circle')),\n 'agora-line-arrow-up-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-up-circle')),\n 'agora-solid-arrow-up-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-up-circle')),\n 'agora-line-arrow-right-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-right-circle')),\n 'agora-solid-arrow-right-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-right-circle')),\n 'agora-line-arrow-left-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-left-circle')),\n 'agora-solid-arrow-left-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-left-circle')),\n 'agora-line-arrow-up': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-up')),\n 'agora-solid-arrow-up': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-up')),\n 'agora-line-arrow-down': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-down')),\n 'agora-solid-arrow-down': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-down')),\n 'agora-line-arrow-right': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-right')),\n 'agora-solid-arrow-right': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-right')),\n 'agora-line-arrow-left': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-left')),\n 'agora-solid-arrow-left': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-left')),\n 'agora-line-chevron-down': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevron-down')),\n 'agora-solid-chevron-down': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevron-down')),\n 'agora-line-chevron-up': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevron-up')),\n 'agora-solid-chevron-up': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevron-up')),\n 'agora-line-chevron-right': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevron-right')),\n 'agora-solid-chevron-right': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevron-right')),\n 'agora-line-chevron-left': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevron-left')),\n 'agora-solid-chevron-left': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevron-left')),\n 'agora-line-chevrons-down': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevrons-down')),\n 'agora-solid-chevrons-down': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevrons-down')),\n 'agora-line-chevrons-up': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevrons-up')),\n 'agora-solid-chevrons-up': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevrons-up')),\n 'agora-line-chevrons-left': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevrons-left')),\n 'agora-solid-chevrons-left': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevrons-left')),\n 'agora-line-chevrons-right': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevrons-right')),\n 'agora-solid-chevrons-right': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevrons-right')),\n // Privacy & Security\n 'agora-line-shield': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-shield')),\n 'agora-solid-shield': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-shield')),\n 'agora-line-unlock': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-unlock')),\n 'agora-solid-unlock': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-unlock')),\n 'agora-line-lock': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-lock')),\n 'agora-solid-lock': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-lock')),\n 'agora-line-eye': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-eye')),\n 'agora-solid-eye': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-eye')),\n 'agora-line-eye-off': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-eye-off')),\n 'agora-solid-eye-off': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-eye-off')),\n // Public institutions\n 'agora-line-court': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-court')),\n 'agora-solid-court': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-court')),\n 'agora-line-social-security': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-social-security')),\n 'agora-solid-social-security': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-social-security')),\n // Social\n 'agora-line-twitter-x': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-twitter-x')),\n 'agora-solid-twitter-x': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-twitter-x')),\n 'agora-line-twitter': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-twitter')),\n 'agora-solid-twitter': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-twitter')),\n 'agora-line-instagram': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-instagram')),\n 'agora-solid-instagram': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-instagram')),\n 'agora-line-facebook': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-facebook')),\n 'agora-solid-facebook': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-facebook')),\n 'agora-line-youtube': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-youtube')),\n 'agora-solid-youtube': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-youtube')),\n 'agora-line-linkedin': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-linkedin')),\n 'agora-solid-linkedin': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-linkedin')),\n 'agora-line-share': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-share')),\n 'agora-solid-share': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-share')),\n 'agora-line-bookmark': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-bookmark')),\n 'agora-solid-bookmark': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-bookmark')),\n // Status\n 'agora-line-x-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-x-circle')),\n 'agora-solid-x-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-x-circle')),\n 'agora-line-x': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-x')),\n 'agora-solid-x': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-x')),\n 'agora-line-check-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-check-circle')),\n 'agora-solid-check-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-check-circle')),\n 'agora-line-check': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-check')),\n 'agora-solid-check': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-check')),\n 'agora-line-question-mark': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-question-mark')),\n 'agora-solid-question-mark': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-question-mark')),\n 'agora-line-alert-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-alert-circle')),\n 'agora-solid-alert-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-alert-circle')),\n 'agora-line-info-mark': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-info-mark')),\n 'agora-solid-info-mark': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-info-mark')),\n 'agora-line-alert-triangle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-alert-triangle')),\n 'agora-solid-alert-triangle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-alert-triangle')),\n 'agora-line-loader': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-loader')),\n 'agora-solid-loader': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-loader')),\n 'agora-line-smile-sad': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-smile-sad')),\n 'agora-solid-smile-sad': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-smile-sad')),\n // Transportation\n 'agora-line-bus': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-bus')),\n 'agora-solid-bus': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-bus')),\n 'agora-line-truck': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-truck')),\n 'agora-solid-truck': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-truck')),\n // Time\n 'agora-line-calendar': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-calendar')),\n 'agora-solid-calendar': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-calendar')),\n 'agora-line-clock': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-clock')),\n 'agora-solid-clock': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-clock')),\n // User\n 'agora-line-user-group': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-user-group')),\n 'agora-solid-user-group': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-user-group')),\n 'agora-line-user': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-user')),\n 'agora-solid-user': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-user')),\n // Others\n 'agora-line-bookmark-card': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-bookmark-card')),\n 'agora-solid-bookmark-card': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-bookmark-card')),\n 'agora-drag-dots': lazy<ComponentType<SVGIconProps>>(() => import('./other/drag-dots')),\n // Default icon - Should not be listable\n 'no-icon': lazy<ComponentType<SVGIconProps>>(() => import('./other/agora'))\n};\n\nexport const allIcons = Object.keys(iconList).filter((c) => c !== 'no-icon');\n\nexport type IconName = (typeof allIcons)[number];\n\nexport const isBundledIcon = (name: string) => {\n return !!allIcons.find((i) => i === name);\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, ComponentType, FC, HTMLProps, LazyExoticComponent, Suspense, SVGProps } from 'react';\nimport { SVGIconProps } from '../../../models/svg-icon.interface';\nimport EmptyIcon from './assets/empty-icon';\nimport { iconList, IconName, isBundledIcon } from './assets/index';\nimport './icon.scss';\n\nconst iconsCache: Record<IconName, LazyExoticComponent<ComponentType<SVGIconProps>>> = {};\n\nconst loadIcon = (name: IconName): LazyExoticComponent<ComponentType<SVGIconProps>> => {\n const cachedIcon = iconsCache[name];\n\n if (cachedIcon) {\n return cachedIcon;\n }\n\n const lazyComponent = iconList[name];\n\n iconsCache[name] = lazyComponent;\n\n return lazyComponent;\n};\n\n/**\n * Allowed icon dimensions.\n */\nexport type IconDimensions = 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl' | 'xxxl';\n\ntype SuperIconProps = SVGProps<SVGSVGElement> & HTMLProps<HTMLImageElement>;\n\nexport interface IconProps extends SuperIconProps {\n /**\n * Predefined icon dimensions.\n */\n dimensions?: IconDimensions;\n /**\n * Icon name to be used. Can be an external image url.\n */\n name?: IconName;\n /**\n * Callback to run when image is loaded.\n */\n onIconLoad?: () => void;\n /**\n * Callback to run when image fails to load.\n */\n onIconError?: () => void;\n}\n\nexport const Icon: FC<IconProps> = ({ dimensions = 'm', name = 'no-icon', onIconLoad, onIconError, ...props }) => {\n const classes = classNames(\n 'icon',\n {\n [`icon-${dimensions?.toLowerCase()}`]: dimensions,\n 'fill-[var(--color-primary-600)]': !props.className?.match('fill-')\n },\n props.className\n );\n\n const onLoad = () => {\n onIconLoad?.();\n };\n\n const onError = () => {\n onIconError?.();\n };\n\n const shouldRenderImage = name !== 'no-icon' && !isBundledIcon(name);\n\n // SRC OR BASE-64\n if (shouldRenderImage) {\n // Assume that it is a base64 image and let the browser do his work\n return <img {...props} src={name} alt={props.alt} className={classes} onLoad={onLoad} onError={onError} />;\n }\n\n const LazyComponent = loadIcon(name);\n\n const fullProps = {\n ...props,\n className: classes,\n title: props.title ?? props.alt\n } as ComponentPropsWithoutRef<'svg'>;\n\n return LazyComponent ? (\n <Suspense>\n <LazyComponent {...fullProps} />\n </Suspense>\n ) : (\n <EmptyIcon {...fullProps} />\n );\n};\n","import classNames from 'classnames';\r\nimport React, {\r\n ComponentPropsWithRef,\r\n forwardRef,\r\n ForwardRefRenderFunction,\r\n MouseEvent,\r\n ReactNode,\r\n useId,\r\n useImperativeHandle,\r\n useMemo,\r\n useRef,\r\n useState\r\n} from 'react';\r\nimport { BooleanProp, HeadingLevel } from '../../../models';\r\nimport { stringToBoolean } from '../../../utils/string-to-boolean';\r\nimport { Icon } from '../icon';\r\nimport './accordion.scss';\r\n\r\nexport interface AccordionRef {\r\n id: string;\r\n current: HTMLDivElement;\r\n expand: () => void;\r\n collapse: () => void;\r\n isExpanded: boolean;\r\n}\r\n\r\nexport interface AccordionProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\r\n /**\r\n * Accordion Header Title\r\n */\r\n title?: ReactNode;\r\n /**\r\n * header Accordion.\r\n */\r\n headingLevel?: HeadingLevel;\r\n /**\r\n * Children content.\r\n */\r\n children?: ReactNode;\r\n /**\r\n * Defines if the button uses an icon.\r\n */\r\n hasIcon?: BooleanProp;\r\n /**\r\n * Defines the name of the icon to use.\r\n */\r\n icon?: string;\r\n /**\r\n * Event function called whenever the accordion expands.\r\n */\r\n onExpanded?: (prop: AccordionProps) => void | undefined;\r\n /**\r\n * Event function called whenever the accordion collapses.\r\n */\r\n onCollapsed?: (prop: AccordionProps) => void | undefined;\r\n /**\r\n * Initial value for the expanded value.\r\n */\r\n expanded?: BooleanProp;\r\n}\r\n/**\r\n * Return icon default animation class according icon name and default position.\r\n */\r\n\r\nexport const InnerAccordion: ForwardRefRenderFunction<HTMLDivElement | AccordionRef, AccordionProps> = (\r\n { children, hasIcon, icon, title, headingLevel: Component = 'h3', className = '', expanded = false, onExpanded, onCollapsed, ...props },\r\n ref\r\n) => {\r\n const innerRef = useRef<HTMLDivElement>(null);\r\n\r\n const generatedId = useId();\r\n\r\n const propsClone = useMemo(\r\n () => ({\r\n ...props,\r\n id: props.id ?? generatedId\r\n }),\r\n [props, generatedId]\r\n );\r\n\r\n const [isExpanded, setIsExpanded] = useState(expanded);\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => {\r\n return {\r\n id: propsClone.id,\r\n current: innerRef.current,\r\n isExpanded,\r\n expand: () => {\r\n setIsExpanded(true);\r\n onExpanded?.(propsClone as AccordionProps);\r\n },\r\n collapse: () => {\r\n setIsExpanded(false);\r\n onCollapsed?.(propsClone as AccordionProps);\r\n }\r\n } as AccordionRef;\r\n },\r\n [propsClone, innerRef, isExpanded, onExpanded, onCollapsed]\r\n );\r\n\r\n /**\r\n * Building Accordion class name dynamically according parameters.\r\n */\r\n const AccordionClassName = classNames(`accordion`, className, { 'accordion-open': isExpanded });\r\n\r\n const AccordionBodyClassName = classNames('accordion-body', { 'accordion-body-block': isExpanded });\r\n const AccordionIconClassName = classNames('icon icon-chevron', { 'icon-chevron-flip': isExpanded });\r\n\r\n const toggleExpanded = () => {\r\n if (isExpanded) {\r\n onCollapsed?.(propsClone as AccordionProps);\r\n } else {\r\n onExpanded?.(propsClone as AccordionProps);\r\n }\r\n setIsExpanded((last) => !last);\r\n };\r\n\r\n const onMouseDownHandler = (evt: MouseEvent<HTMLButtonElement>) => {\r\n evt.preventDefault();\r\n };\r\n\r\n const onMouseUpHandler = (evt: MouseEvent<HTMLButtonElement>) => {\r\n evt.preventDefault();\r\n };\r\n\r\n const onMouseClickHandler = () => {\r\n toggleExpanded();\r\n };\r\n\r\n return (\r\n <div className={AccordionClassName} {...propsClone} ref={innerRef}>\r\n <Component className=\"flex justify-start items-center w-full\">\r\n <button\r\n type=\"button\"\r\n onMouseDown={onMouseDownHandler}\r\n onMouseUp={onMouseUpHandler}\r\n onClick={onMouseClickHandler}\r\n className=\"accordion-header\"\r\n aria-expanded={isExpanded}\r\n id={`agora-accordion-${propsClone.id}-control`}\r\n aria-controls={`agora-accordion-${propsClone.id}-region`}\r\n >\r\n {stringToBoolean(hasIcon) && <Icon name={icon} className=\"icon\" dimensions=\"m\" aria-hidden />}\r\n\r\n {title && <span className=\"title\">{title}</span>}\r\n\r\n <Icon name=\"agora-line-chevron-down\" aria-hidden className={AccordionIconClassName} />\r\n </button>\r\n </Component>\r\n\r\n <div\r\n className={AccordionBodyClassName}\r\n id={`agora-accordion-${propsClone.id}-region`}\r\n role=\"region\"\r\n aria-labelledby={`agora-accordion-${propsClone.id}-control`}\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport const Accordion = forwardRef<HTMLDivElement | AccordionRef, AccordionProps>(InnerAccordion);\r\n","import { useEffect, useRef, useState } from 'react';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst debounce = (func: Function, timeout = 300) => {\n let timer: any;\n\n return (...args: any) => {\n if (timer) {\n clearTimeout(timer);\n timer = undefined;\n }\n\n timer = setTimeout(() => {\n func(args);\n }, timeout);\n };\n};\n\nexport { debounce };\n\nexport const useDebounceHook = (func: any, timeout = 300) => {\n const timer = useRef<any>(null);\n const [args, setArgs] = useState<any>(null);\n\n useEffect(() => {\n if (timer.current) {\n clearTimeout(timer.current);\n }\n\n timer.current = setTimeout(() => {\n func(args);\n }, timeout);\n\n return () => {\n if (timer.current) {\n clearTimeout(timer.current);\n }\n };\n }, [func, timeout, args]);\n\n return {\n setArgs\n };\n};\n","const normalizeText = (text: string) => {\n return text\n .toLocaleLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n};\nexport { normalizeText };\n","export const getDateString = (d: Date) => {\n let dayString = d.getDate().toString();\n if (d.getDate() <= 9) {\n dayString = `0${dayString}`;\n }\n\n let monthString = (d.getMonth() + 1).toString();\n if (d.getMonth() <= 9) {\n monthString = `0${monthString}`;\n }\n\n const yearString = d.getFullYear();\n\n return `${dayString}-${monthString}-${yearString}`;\n};\n","import { SyntheticEvent } from 'react';\n\nexport const createSyntheticChangeEvent = (target: HTMLInputElement): SyntheticEvent<HTMLInputElement, Event> => {\n const event = new Event('change', { bubbles: true });\n Object.defineProperty(event, 'target', { writable: false, value: target });\n\n let isDefaultPrevented = false;\n let isPropagationStopped = false;\n\n const preventDefault = () => {\n isDefaultPrevented = true;\n event.preventDefault();\n };\n\n const stopPropagation = () => {\n isPropagationStopped = true;\n event.stopPropagation();\n };\n\n return {\n nativeEvent: event,\n currentTarget: event.currentTarget as EventTarget & HTMLInputElement,\n target: event.target as EventTarget & HTMLInputElement,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n defaultPrevented: event.defaultPrevented,\n eventPhase: event.eventPhase,\n isTrusted: event.isTrusted,\n preventDefault,\n isDefaultPrevented: () => isDefaultPrevented,\n stopPropagation,\n isPropagationStopped: () => isPropagationStopped,\n persist: () => {},\n timeStamp: event.timeStamp,\n type: event.type\n };\n};\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n FC,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n useImperativeHandle,\n useRef\n} from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Icon } from '../icon';\nimport './anchor.scss';\n\n/**\n * The available variants of the anchors. This variants will define the background and border color of the anchors.\n */\nexport type AnchorVariant = 'primary' | 'informative' | 'neutral' | 'success' | 'warning' | 'danger';\n\n/**\n * The available anchor appearances. Defines the anchor shape.\n */\nexport type AnchorAppearance = 'link' | 'text';\n\nconst IconWrapper: FC<{\n name: string;\n iconHover: string;\n className?: string;\n}> = ({ name = 'no-icon', iconHover = 'no-icon', className }) => {\n const wrapperClassName = classNames('icon-wrapper', className);\n\n return (\n <div className={wrapperClassName}>\n <Icon className=\"line\" name={name.replace('solid', 'line')} dimensions=\"m\" aria-hidden />\n <Icon className=\"solid\" name={(iconHover ?? name).replace('line', 'solid')} dimensions=\"m\" aria-hidden />\n </div>\n );\n};\n\nexport interface AnchorProps extends ComponentPropsWithRef<'a'> {\n /**\n * The flag to set Dark mode.\n */\n darkMode?: BooleanProp;\n /**\n * The anchor appearance. Define the anchor Shape.\n */\n appearance?: AnchorAppearance;\n /**\n * The variant of the anchor. This variants will define the background and border color of the given Anchor\n */\n variant?: AnchorVariant;\n /**\n * Defines if the anchor should be fluid\n */\n fullWidth?: BooleanProp;\n /**\n * Defines if the anchor uses an icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Defines if children content it is to be rendered.\n */\n iconOnly?: BooleanProp;\n /**\n * Defines the name of the leading icon to use.\n */\n leadingIcon?: string;\n /**\n * Defines the name of the leading icon to be displayed on mouse hover. If none specified, it will the appropriate variant of the icon.\n */\n leadingIconHover?: string;\n\n /**\n * Defines the name of the trailing icon to use.\n */\n trailingIcon?: string;\n /**\n * Defines the name of the trailing icon to be displayed on mouse hover. If none specified, it will the appropriate variant of the icon.\n */\n trailingIconHover?: string;\n\n /**\n * Children content.\n */\n children?: ReactNode;\n\n /**\n * Defines if anchor is inline text or not. An inline element does not start on a new line and takes up as much width as necessary. See https://www.w3schools.com/html/html_blocks.asp.\n */\n inline?: BooleanProp;\n\n /**\n * Data attributes\n */\n [dataAttribute: `data-${string}`]: string;\n}\n\nexport const InnerAnchor: ForwardRefRenderFunction<HTMLAnchorElement, AnchorProps> = (\n {\n darkMode = false,\n appearance = 'text',\n variant = 'primary',\n fullWidth = false,\n hasIcon = false,\n iconOnly = false,\n leadingIcon,\n leadingIconHover,\n trailingIcon,\n trailingIconHover,\n children,\n className = '',\n inline = false,\n role = 'link',\n ...props\n },\n ref: Ref<HTMLAnchorElement | null>\n) => {\n const innerRef = useRef<HTMLAnchorElement>(null);\n\n useImperativeHandle(ref, () => innerRef.current);\n /**\n * Building anchor class name dynamically according parameters.\n */\n const anchorClassName = classNames(\n `agora-anchor agora-anchor-${appearance}-${variant}`,\n { 'agora-anchor-full': fullWidth },\n\n { 'inline-flex items-center': !props.hidden },\n { 'justify-center min-h-[44px] min-w-[44px] py-8': !stringToBoolean(inline) },\n { 'justify-start': stringToBoolean(inline) },\n\n { 'agora-anchor-with-icon': stringToBoolean(hasIcon) || stringToBoolean(iconOnly) },\n { 'is-icon-only': stringToBoolean(iconOnly) },\n\n { 'dark-mode': stringToBoolean(darkMode) },\n\n className\n );\n\n const onKeyDownHandler = (evt: KeyboardEvent<HTMLAnchorElement>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n innerRef.current?.classList.add('active');\n }\n props.onKeyDown?.(evt);\n };\n\n const onKeyUpHandler = (evt: KeyboardEvent<HTMLAnchorElement>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n innerRef.current?.classList.remove('active');\n innerRef.current?.setAttribute('data-custom-triggered-click', 'true');\n innerRef.current?.click();\n }\n\n props.onKeyUp?.(evt);\n };\n\n // Need this to let focus goes on story where no action click defined\n const onMouseDownHandler = (evt: MouseEvent<HTMLAnchorElement>) => {\n evt.preventDefault();\n innerRef.current?.classList.add('active');\n props.onMouseDown?.(evt);\n };\n\n // Need this to let focus goes on story where no action click defined\n const onMouseUpHandler = (evt: MouseEvent<HTMLAnchorElement>) => {\n evt.preventDefault();\n innerRef.current?.classList.remove('active');\n props.onMouseUp?.(evt);\n };\n\n const onClickHandler = (evt: MouseEvent<HTMLAnchorElement>) => {\n // TRUE MOUSE CLICK\n if (evt.detail > 0) {\n props.onClick?.(evt);\n return;\n }\n\n // CLICK FROM KEYBOARD\n\n // NEED TO CHECK THIS ATTRIBUTE BECAUSE FIREFOX DOES NOT TRIGGER CLICK EVENTS WHENEVER THE ENTER/SPACE/NUMPADENTER KEY IS PRESSED.\n // TO FIX THAT INCONSISTENCY, WE ADD A CUSTOM ATTRIBUTE TO SIGNAL THE ARTIFICIAL CLICK TRIGGER AND PREVENT THE CHROMIUM BASED BROWSERS OF DUPLICATE CLICK EVENTS.\n // ON KEYUP THE CLICK EVENT IS TRIGGERED AND WILL BE ADDED THE CUSTOM ATTRIBUTE. THEN, IF THE BROWSER TRIGGERED ANOTHER CLICK, THE HANDLER WILL NOT FIND THE CUSTOM ATTRIBUTE AND WILL NOT TRIGGER A DUPLICATED EVENT.\n const shouldTriggerClick = innerRef.current?.getAttribute('data-custom-triggered-click') === 'true';\n innerRef.current?.removeAttribute('data-custom-triggered-click');\n\n if (!shouldTriggerClick) {\n evt.preventDefault();\n return;\n }\n\n props.onClick?.(evt);\n };\n\n return (\n <a\n className={anchorClassName}\n {...props}\n tabIndex={props.tabIndex ?? 0}\n role={role}\n ref={innerRef}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onKeyUp={onKeyUpHandler}\n onMouseDown={onMouseDownHandler}\n onMouseUp={onMouseUpHandler}\n >\n {((hasIcon && iconOnly && trailingIcon === 'no-trailing') ||\n (hasIcon && iconOnly && leadingIcon === undefined && trailingIcon === undefined) ||\n (hasIcon && iconOnly && leadingIcon && leadingIcon === 'no-leading' && trailingIcon === 'no-trailing') ||\n (hasIcon && leadingIcon && leadingIcon !== 'no-leading')) && (\n <IconWrapper\n className=\"leading\"\n name={leadingIcon && leadingIcon !== 'no-leading' ? leadingIcon : 'no-icon'}\n iconHover={leadingIconHover ?? 'no-icon'}\n />\n )}\n {!iconOnly && children && <span className=\"children-wrapper\">{children}</span>}\n {((hasIcon && iconOnly && leadingIcon === 'no-leading' && trailingIcon !== 'no-trailing') ||\n (hasIcon && trailingIcon && trailingIcon !== 'no-trailing')) && (\n <IconWrapper className=\"trailing\" name={trailingIcon ?? 'no-icon'} iconHover={trailingIconHover ?? 'no-icon'} />\n )}\n </a>\n );\n};\n\nexport const Anchor = forwardRef<HTMLAnchorElement, AnchorProps>(InnerAnchor);\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n FC,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n useImperativeHandle,\n useRef\n} from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Icon } from '../icon';\nimport './button.scss';\n\n/**\n * The available variants of the button. This variants will define the background and border color of the button.\n */\nexport type ButtonVariant = 'primary' | 'neutral' | 'success' | 'warning' | 'danger' | 'informative';\n\n/**\n * The available button appearances. Defines the button shape.\n */\nexport type ButtonAppearance = 'solid' | 'outline' | 'link';\n\nconst IconWrapper: FC<{\n name: string;\n iconHover: string;\n className?: string;\n}> = ({ name = 'no-icon', iconHover = 'no-icon', className }) => {\n const wrapperClassName = classNames('icon-wrapper', className);\n\n return (\n <div className={wrapperClassName}>\n <Icon className=\"line\" name={name.replace('solid', 'line')} dimensions=\"m\" aria-hidden />\n <Icon className=\"solid\" name={(iconHover ?? name).replace('line', 'solid')} dimensions=\"m\" aria-hidden />\n </div>\n );\n};\n\nexport interface ButtonProps extends ComponentPropsWithRef<'button'> {\n /**\n * The flag to set Dark mode.\n */\n darkMode?: BooleanProp;\n /**\n * The button appearance. Define the button Shape.\n */\n appearance?: ButtonAppearance;\n /**\n * The variant of the button. This variants will define the background and border color of the given Button\n */\n variant?: ButtonVariant;\n /**\n * Defines if the button should be fluid\n */\n fullWidth?: BooleanProp;\n /**\n * Defines if the button uses an icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Defines if children content it is to be rendered.\n */\n iconOnly?: BooleanProp;\n /**\n * Defines the name of the leading icon to use.\n */\n leadingIcon?: string;\n /**\n * Defines the name of the leading icon to be displayed on mouse hover. If none specified, it will the appropriate variant of the icon.\n */\n leadingIconHover?: string;\n /**\n * Defines the name of the trailing icon to use.\n */\n trailingIcon?: string;\n /**\n * Defines the name of the trailing icon to be displayed on mouse hover. If none specified, it will the appropriate variant of the icon.\n */\n trailingIconHover?: string;\n /**\n * Children content.\n */\n children?: ReactNode;\n /**\n * Defines if the button is selected.\n */\n selected?: BooleanProp;\n\n /**\n * Data attributes.\n * Allow when implemented interface add data-* attribute\n */\n [dataAttribute: `data-${string}`]: string;\n}\n\nexport const InnerButton: ForwardRefRenderFunction<HTMLButtonElement, ButtonProps> = (\n {\n darkMode = false,\n appearance = 'solid',\n variant = 'primary',\n fullWidth = false,\n hasIcon = false,\n iconOnly = false,\n leadingIcon,\n leadingIconHover,\n trailingIcon,\n trailingIconHover,\n children,\n className = '',\n ...props\n },\n ref: Ref<HTMLButtonElement | null>\n) => {\n const innerRef = useRef<HTMLButtonElement>(null);\n\n useImperativeHandle(ref, () => innerRef.current);\n\n /**\n * Building button class name dynamically according parameters.\n */\n const buttonClassName = classNames(\n { 'flex items-center justify-center': !props.hidden },\n\n `agora-btn ${fullWidth ? 'agora-btn-full' : ''} agora-btn-${appearance}-${variant}`,\n\n {\n [`agora-btn-with-icon`]: stringToBoolean(hasIcon) || stringToBoolean(iconOnly),\n 'is-icon-only': stringToBoolean(iconOnly)\n },\n\n { selected: stringToBoolean(props.selected) },\n\n { darkMode: stringToBoolean(darkMode) },\n className\n );\n\n const onKeyDownHandler = (evt: KeyboardEvent<HTMLButtonElement>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n innerRef.current?.classList.add('active');\n }\n props.onKeyDown?.(evt);\n };\n\n const onKeyUpHandler = (evt: KeyboardEvent<HTMLButtonElement>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n innerRef.current?.classList.remove('active');\n innerRef.current?.setAttribute('data-custom-triggered-click', 'true');\n innerRef.current?.click();\n }\n\n props.onKeyUp?.(evt);\n };\n\n const onMouseLeaveHandler = () => {\n innerRef.current?.classList.remove('active');\n };\n\n // Need this to let focus goes on story where no action click defined\n const onMouseDownHandler = (evt: MouseEvent<HTMLButtonElement>) => {\n evt.preventDefault();\n innerRef.current?.classList.add('active');\n props.onMouseDown?.(evt);\n };\n\n // Need this to let focus goes on story where no action click defined\n const onMouseUpHandler = (evt: MouseEvent<HTMLButtonElement>) => {\n evt.preventDefault();\n innerRef.current?.classList.remove('active');\n props.onMouseUp?.(evt);\n };\n\n const onClickHandler = (evt: MouseEvent<HTMLButtonElement>) => {\n // TRUE MOUSE CLICK\n if (evt.detail > 0) {\n props.onClick?.(evt);\n return;\n }\n\n // CLICK FROM KEYBOARD\n\n // NEED TO CHECK THIS ATTRIBUTE BECAUSE FIREFOX DOES NOT TRIGGER CLICK EVENTS WHENEVER THE ENTER/SPACE/NUMPADENTER KEY IS PRESSED.\n // TO FIX THAT INCONSISTENCY, WE ADD A CUSTOM ATTRIBUTE TO SIGNAL THE ARTIFICIAL CLICK TRIGGER AND PREVENT THE CHROMIUM BASED BROWSERS OF DUPLICATE CLICK EVENTS.\n // ON KEYUP THE CLICK EVENT IS TRIGGERED AND WILL BE ADDED THE CUSTOM ATTRIBUTE. THEN, IF THE BROWSER TRIGGERED ANOTHER CLICK, THE HANDLER WILL NOT FIND THE CUSTOM ATTRIBUTE AND WILL NOT TRIGGER A DUPLICATED EVENT.\n const shouldTriggerClick = innerRef.current?.getAttribute('data-custom-triggered-click') === 'true';\n innerRef.current?.removeAttribute('data-custom-triggered-click');\n\n if (!shouldTriggerClick) {\n evt.preventDefault();\n return;\n }\n\n props.onClick?.(evt);\n };\n\n return (\n <button\n type=\"button\"\n className={buttonClassName}\n {...props}\n ref={innerRef}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onKeyUp={onKeyUpHandler}\n onMouseDown={onMouseDownHandler}\n onMouseUp={onMouseUpHandler}\n onMouseLeave={onMouseLeaveHandler}\n >\n {((hasIcon && iconOnly && trailingIcon === 'no-trailing') ||\n (hasIcon && iconOnly && leadingIcon === undefined && trailingIcon === undefined) ||\n (hasIcon && iconOnly && leadingIcon && leadingIcon === 'no-leading' && trailingIcon === 'no-trailing') ||\n (hasIcon && leadingIcon && leadingIcon !== 'no-leading')) && (\n <IconWrapper\n className=\"leading\"\n name={leadingIcon && leadingIcon !== 'no-leading' ? leadingIcon : 'no-icon'}\n iconHover={leadingIconHover ?? 'no-icon'}\n />\n )}\n {!iconOnly && children && <span className=\"children-wrapper\">{children}</span>}\n {((hasIcon && iconOnly && leadingIcon === 'no-leading' && trailingIcon !== 'no-trailing') ||\n (hasIcon && trailingIcon && trailingIcon !== 'no-trailing')) && (\n <IconWrapper className=\"trailing\" name={trailingIcon ?? 'no-icon'} iconHover={trailingIconHover ?? 'no-icon'} />\n )}\n </button>\n );\n};\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(InnerButton);\n","import React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode } from 'react';\nimport { Button } from '../button';\n\nexport interface InteractiveAvatarProps extends ComponentPropsWithRef<'div'> {\n alt: string;\n className?: string;\n onActivate?: () => void;\n children?: ReactNode;\n}\n\nexport const InnerInteractiveAvatar: ForwardRefRenderFunction<HTMLDivElement, InteractiveAvatarProps> = (\n {\n className,\n onActivate,\n children,\n alt,\n 'aria-haspopup': ariaHasPopup,\n 'aria-expanded': ariaExpanded,\n 'aria-current': ariaCurrent,\n 'aria-label': ariaLabel,\n role,\n ...props\n },\n ref\n) => {\n const onClickHandler = () => {\n onActivate?.();\n };\n\n return (\n <div ref={ref} {...props} className={className}>\n <Button\n {...(ariaHasPopup !== undefined ? { 'aria-haspopup': ariaHasPopup } : {})}\n {...(ariaExpanded !== undefined ? { 'aria-expanded': ariaExpanded } : {})}\n {...(ariaCurrent !== undefined ? { 'aria-current': ariaCurrent } : {})}\n {...(role !== undefined ? { role: role.toString() } : {})}\n aria-label={alt ?? ariaLabel}\n type=\"button\"\n className={className}\n onClick={onClickHandler}\n >\n {children}\n </Button>\n </div>\n );\n};\n\nexport const InteractiveAvatar = forwardRef<HTMLDivElement, InteractiveAvatarProps>(InnerInteractiveAvatar);\n","import React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode } from 'react';\n\nexport interface NonInteractiveAvatarProps extends ComponentPropsWithRef<'div'> {\n alt: string;\n className?: string;\n children?: ReactNode;\n}\n\nexport const InnerNonInteractiveAvatar: ForwardRefRenderFunction<HTMLDivElement, NonInteractiveAvatarProps> = (\n { className, children, alt, ...props },\n ref\n) => {\n return (\n <div ref={ref} {...props} role=\"button\" aria-label={alt} className={className}>\n {children}\n </div>\n );\n};\n\nexport const NonInteractiveAvatar = forwardRef<HTMLDivElement, NonInteractiveAvatarProps>(InnerNonInteractiveAvatar);\n","import classNames from 'classnames';\nimport React, {\n Children,\n cloneElement,\n FC,\n FocusEvent,\n FocusEventHandler,\n HtmlHTMLAttributes,\n isValidElement,\n MouseEvent,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils/string-to-boolean';\nimport './tooltip.scss';\n\nconst TOOLTIP_CHANGE_EVENT_NAME = 'agora-ds-tooltip-change';\n\ninterface EnrichedChildren {\n ref: RefObject<any>;\n onMouseEnter: MouseEventHandler;\n onMouseLeave: MouseEventHandler;\n onFocus: FocusEventHandler;\n onBlur: FocusEventHandler;\n children?: ReactNode;\n}\n\n/**\n * The available variants of the Tooltip. This variants will define the background of the Tooltip.\n */\nexport type TooltipVariant = 'light' | 'dark' | 'info';\n/**\n * The available positions of the Tooltip. This positions will define the position of the Tooltip.\n */\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n/**\n * The available alignments of the Tooltip. This alignments will define the alignment of the Tooltip.\n */\nexport type TooltipAlignment = 'start' | 'center' | 'end';\n\nexport interface TooltipProps extends Omit<HtmlHTMLAttributes<HTMLDivElement>, 'title'> {\n /**\n * The variant of the Tooltip.\n */\n variant?: TooltipVariant;\n /**\n * The position of the Tooltip.\n */\n position?: TooltipPosition;\n /**\n * The alignment of the Tooltip.\n */\n alignment?: TooltipAlignment;\n /**\n * The title of the Tooltip.\n */\n title?: ReactNode;\n /**\n * If the Tooltip has a title.\n */\n hasTitle?: BooleanProp;\n /**\n * The description of the Tooltip.\n */\n description: ReactNode;\n}\n\nexport const Tooltip: FC<TooltipProps> = ({\n hasTitle,\n variant = 'dark',\n position = 'top',\n alignment = 'center',\n title,\n description,\n children,\n ...props\n}) => {\n const generatedId = useId();\n\n const ref = useRef(null);\n\n const [top, setTop] = useState(0);\n const [left, setLeft] = useState(0);\n const [width, setWidth] = useState(0);\n const [height, setHeight] = useState(0);\n\n const setDimensions = useCallback(() => {\n if (ref.current) {\n const rect = (ref.current as HTMLElement)?.getBoundingClientRect();\n\n if (rect) {\n setTop(rect.top + window.scrollY);\n setLeft(rect.left + window.scrollX);\n setWidth(rect.width);\n setHeight(rect.height);\n }\n }\n }, []);\n\n const propsClone = useMemo(() => ({ ...props }), [props]);\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const TooltipContainerClassName = classNames('tooltip-container absolute z-tooltip', props.className);\n\n const TooltipClassName = classNames('tooltip', {\n [`tooltip--${variant}`]: variant,\n [`tooltip--${position}--${alignment}`]: position && alignment\n });\n\n const [visibility, setVisibility] = useState(false);\n\n const showTooltip = () => {\n setVisibility(true);\n const event = new CustomEvent<string | undefined>(TOOLTIP_CHANGE_EVENT_NAME, { detail: propsClone.id });\n document.dispatchEvent(event);\n };\n\n const hideTooltip = () => {\n setVisibility(false);\n };\n\n const handleEscapeKey = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setVisibility(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('keydown', handleEscapeKey);\n\n const handleTooltipChange = (evt: any) => {\n const customEventArgs = evt as CustomEvent<string | undefined>;\n if (customEventArgs.detail !== propsClone.id) {\n setVisibility(false);\n }\n };\n\n document.addEventListener(TOOLTIP_CHANGE_EVENT_NAME, handleTooltipChange);\n\n return () => {\n document.removeEventListener('keydown', handleEscapeKey);\n document.removeEventListener(TOOLTIP_CHANGE_EVENT_NAME, handleTooltipChange);\n };\n }, [propsClone.id]);\n\n const parsedChildren = Children.map(children, (child) => {\n if (!isValidElement<EnrichedChildren>(child)) {\n return child;\n }\n\n const onMouseEnter = (evt: MouseEvent<any>) => {\n setDimensions();\n\n showTooltip();\n\n child.props.onMouseEnter?.(evt);\n };\n\n const onMouseLeave = (evt: MouseEvent<any>) => {\n hideTooltip();\n\n child.props.onMouseLeave?.(evt);\n };\n\n const onFocus = (evt: FocusEvent<any>) => {\n setDimensions();\n\n showTooltip();\n\n child.props.onFocus?.(evt);\n };\n\n const onBlur = (evt: FocusEvent<any>) => {\n hideTooltip();\n\n child.props.onBlur?.(evt);\n };\n\n return cloneElement<EnrichedChildren>(child, { ref, onMouseEnter, onMouseLeave, onFocus, onBlur });\n });\n\n useEffect(() => {\n const cb = () => {\n setDimensions();\n };\n\n document.addEventListener('scroll', cb);\n\n return () => {\n document.removeEventListener('scroll', cb);\n };\n }, [setDimensions]);\n\n const topPositioning = useMemo(() => {\n if (alignment === 'start') {\n return {\n top: '-10px',\n left: '0px',\n transform: 'translateY(-100%)'\n };\n }\n\n if (alignment === 'center') {\n return {\n top: '-10px',\n left: `${width / 2}px`,\n transform: 'translateY(-100%) translateX(-50%)'\n };\n }\n\n if (alignment === 'end') {\n return {\n top: '-10px',\n left: `${width}px`,\n transform: 'translateY(-100%) translateX(-100%)'\n };\n }\n }, [alignment, width]);\n\n const bottomPositioning = useMemo(() => {\n if (alignment === 'start') {\n return {\n top: `${height + 10}px`,\n left: '0px',\n transform: 'none'\n };\n }\n\n if (alignment === 'center') {\n return {\n top: `${height + 10}px`,\n left: `${width / 2}px`,\n transform: 'translateX(-50%)'\n };\n }\n\n if (alignment === 'end') {\n return {\n top: `${height + 10}px`,\n left: `${width}px`,\n transform: 'translateX(-100%)'\n };\n }\n }, [alignment, height, width]);\n\n const leftPositioning = useMemo(() => {\n if (alignment === 'start') {\n return {\n top: '0px',\n left: '-10px',\n transform: 'translateX(-100%)'\n };\n }\n\n if (alignment === 'center') {\n return {\n top: `${height / 2}px`,\n left: '-10px',\n transform: 'translateX(-100%) translateY(-50%)'\n };\n }\n\n if (alignment === 'end') {\n return {\n top: `${height}px`,\n left: '-10px',\n transform: 'translateX(-100%) translateY(-100%)'\n };\n }\n }, [alignment, height]);\n\n const rightPositioning = useMemo(() => {\n if (alignment === 'start') {\n return {\n top: '0px',\n left: `${width + 10}px`,\n transform: 'none'\n };\n }\n\n if (alignment === 'center') {\n return {\n top: `${height / 2}px`,\n left: `${width + 10}px`,\n transform: 'translateY(-50%)'\n };\n }\n\n if (alignment === 'end') {\n return {\n top: `${height}px`,\n left: `${width + 10}px`,\n transform: 'translateY(-100%)'\n };\n }\n }, [alignment, height, width]);\n\n const tooltipPosition = useMemo(() => {\n switch (position) {\n case 'top':\n return topPositioning;\n case 'bottom':\n return bottomPositioning;\n case 'left':\n return leftPositioning;\n case 'right':\n return rightPositioning;\n }\n }, [position, topPositioning, bottomPositioning, leftPositioning, rightPositioning]);\n\n const TooltipContent = useMemo(() => {\n return (\n <div\n className={TooltipContainerClassName}\n style={{\n top: `${top}px`,\n left: `${left}px`\n }}\n >\n <div className=\"relative w-full h-full\">\n <div\n {...propsClone}\n style={{ ...tooltipPosition }}\n id={propsClone.id}\n className={TooltipClassName}\n role=\"tooltip\"\n aria-describedby={propsClone.id}\n >\n {stringToBoolean(hasTitle) && <div className=\"title\">{title}</div>}\n <p className=\"description\">{description}</p>\n </div>\n </div>\n </div>\n );\n }, [TooltipClassName, description, hasTitle, title, propsClone, tooltipPosition, top, left]);\n\n const memoPortal = useMemo(() => {\n if (visibility) {\n return createPortal(TooltipContent, document.body);\n }\n return null;\n }, [visibility, TooltipContent]);\n\n return (\n <>\n {parsedChildren}\n {memoPortal}\n </>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, useMemo } from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Icon, IconName } from '../icon';\nimport './avatar.scss';\nimport { InteractiveAvatar } from './interactive-avatar';\nimport { NonInteractiveAvatar } from './non-interactive-avatar';\nimport { Tooltip, TooltipAlignment, TooltipPosition } from '../tooltip';\n\n/**\n * The available types of the avatar. This types will define the appearance of the avatar image.\n */\nexport type AvatarType = 'image' | 'icon' | 'initials';\n\n/**\n * The available badge positions. The badge position defines the location of the badge on the avatar.\n */\nexport type AvatarBadgePosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\n\n/**\n * The available variants of the badge. This variants will define the color of the avatar badge.\n */\nexport type AvatarBadgeVariant = 'primary' | 'secondary' | 'danger' | 'success' | 'warning' | 'neutral' | 'white';\n\nexport interface AvatarProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * The available avatar types. Defines the appearance of the avatar.\n */\n avatarType?: AvatarType;\n\n /**\n * Avatar source to be used. Depending on the selected avatar type it can be an external image url or an icon name that exists in AgoraDS\n * or first 2 letters of the given name.\n */\n srcPath?: IconName;\n\n /**\n * Avatar information. Information related to the avatar, such as user name or other.\n */\n information: string;\n\n /**\n * Avatar alt personalized description of the avatar. The text appears if the avatar fails to load on the page.\n */\n alt: string;\n\n /**\n * The flag to place a badge of different colors on the avatar.\n */\n hasBadge?: boolean;\n\n /**\n * The available badge positions. The badge position defines the location of the badge on the avatar.\n */\n badgePosition?: AvatarBadgePosition;\n\n /**\n * The variant of the badge. This variants will define the color of the avatar badge.\n */\n badgeVariant?: AvatarBadgeVariant;\n\n /**\n * The available tooltip positions. The tooltip position defines the location of the tooltip on the avatar.\n */\n tooltipPosition?: TooltipPosition;\n\n /**\n * The available tooltip alignment. The tooltip alignment defines the align of the tooltip on the avatar.\n */\n tooltipAlignment?: TooltipAlignment;\n\n /**\n * The flag to make the avatar interactive. When it is interactive,\n * avatar can be focused by clicking on it, or pressing SPACE or ENTER.\n */\n interactive?: BooleanProp;\n\n /**\n * Dark mode\n */\n darkMode?: boolean;\n\n /**\n * Callback to run whenever the avatar is activated.\n */\n onActivate?: () => void;\n}\n\nexport const Avatar: FC<AvatarProps> = ({\n className,\n avatarType = 'icon',\n srcPath,\n hasBadge,\n information = 'info',\n badgePosition = 'top-right',\n badgeVariant = 'primary',\n tooltipPosition = 'bottom',\n tooltipAlignment = 'center',\n interactive,\n darkMode,\n onActivate,\n ...props\n}) => {\n const containerClasses = classNames('agora-avatar', className, {\n interactive,\n 'dark-mode': darkMode\n });\n\n const memoContent = useMemo(() => {\n const parsedAvatarType = srcPath ? avatarType : 'icon';\n\n const avatarClasses = classNames(`avatar avatar-${parsedAvatarType}`);\n\n const badgeClasses = classNames(className, {\n [`badge badge-${badgeVariant} badge-${badgePosition}`]: hasBadge\n });\n\n if (avatarType === 'initials' && srcPath && srcPath.trim().length !== 0) {\n return (\n <>\n <div className={avatarClasses}>{srcPath.slice(0, 2)}</div>\n {hasBadge && <div className={badgeClasses} />}\n </>\n );\n }\n\n return (\n <>\n <Icon name={srcPath} className={avatarClasses} aria-hidden />\n {hasBadge && <div className={badgeClasses} />}\n </>\n );\n }, [className, avatarType, srcPath, hasBadge, badgeVariant, badgePosition, darkMode]);\n\n if (stringToBoolean(interactive)) {\n return (\n <Tooltip\n alignment={tooltipAlignment}\n className=\"avatar-tooltip\"\n description={information}\n position={tooltipPosition}\n variant={darkMode ? 'dark' : 'light'}\n >\n <InteractiveAvatar {...props} className={containerClasses} onActivate={onActivate}>\n {memoContent}\n </InteractiveAvatar>\n </Tooltip>\n );\n }\n\n return (\n <Tooltip\n alignment=\"center\"\n className=\"avatar-tooltip\"\n description={information}\n position=\"bottom\"\n variant={darkMode ? 'dark' : 'light'}\n >\n <NonInteractiveAvatar {...props} className={containerClasses}>\n {memoContent}\n </NonInteractiveAvatar>\n </Tooltip>\n );\n};\n","import classNames from 'classnames';\nimport React, { FC, useId } from 'react';\n\nimport { BreadcrumbProps } from '../breadcrumb';\nimport './breadcrumb-desktop.scss';\nimport { Anchor } from '../../anchor';\nimport { Icon } from '../../icon';\n\nexport const BreadcrumbDesktop: FC<BreadcrumbProps> = ({ items = [], darkMode, ...props }) => {\n const generatedId = useId();\n\n const ariaLabel = props['aria-label'] ?? 'Breadcrumb';\n\n const BreadcrumbClassName = classNames(props.className, 'agora-breadcrumb-desktop');\n const iconClassName = classNames('mx-[4px]', {\n 'fill-white': darkMode,\n 'fill-[var(--color-neutral-900)]': !darkMode\n });\n\n return (\n <nav className={BreadcrumbClassName} aria-label={ariaLabel}>\n <ol className=\"flex gap-y-8 flex-wrap items-center\">\n {items.map((link, index) => {\n const key = `${generatedId}-${index}`;\n\n return (\n <li key={key} className=\"flex flex-row items-center\">\n {index !== 0 && <Icon name=\"agora-line-chevron-right\" dimensions=\"m\" aria-hidden=\"true\" className={iconClassName} />}\n {index === items.length - 1 || !link.url ? (\n <span aria-current=\"page\">{link.label}</span>\n ) : (\n <Anchor darkMode={darkMode} variant=\"neutral\" appearance=\"text\" href={link.url} className=\"text-s-regular\">\n {link.label}\n </Anchor>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n};\n","import classNames from 'classnames';\nimport React, { FC, KeyboardEvent as ReactKeyboardEvent, useEffect, useId, useRef, useState } from 'react';\nimport { Anchor } from '../../anchor';\nimport { Button } from '../../button';\nimport { BreadcrumbProps } from '../breadcrumb';\nimport './breadcrumb-mobile.scss';\nimport { stringToBoolean } from '../../../../utils';\n\nexport const BreadcrumbMobile: FC<BreadcrumbProps> = ({ sectionTitle, items = [], darkMode, ...props }) => {\n const generatedId = useId();\n const [isExpanded, setIsExpanded] = useState(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const listRef = useRef<HTMLOListElement>(null);\n const BreadcrumbClassName = classNames(props.className, 'agora-breadcrumb-mobile');\n\n const ariaLabel = props['aria-label'] ?? 'Breadcrumb';\n\n /**\n * Function used to close the breadcrumb menu.\n */\n const closeMenuClickHandler = (evt: MouseEvent) => {\n if (listRef?.current && evt.target && !listRef.current.contains(evt.target as HTMLElement)) {\n setIsExpanded(false);\n }\n };\n\n const handleTabKey = (evt: ReactKeyboardEvent<HTMLAnchorElement>) => {\n const linkList = listRef.current?.querySelectorAll('a');\n const target = evt.target as HTMLAnchorElement;\n const liParentNode = target.parentNode as HTMLLIElement;\n\n if (evt.shiftKey) {\n const firstLiChild = linkList?.[0].parentNode as HTMLLIElement;\n if (firstLiChild === liParentNode) {\n evt.preventDefault();\n if (linkList) {\n linkList[linkList.length - 1]?.focus();\n }\n }\n } else {\n const lastLiWithChildAnchor = linkList?.[linkList.length - 1].parentNode as HTMLLIElement;\n if (lastLiWithChildAnchor === liParentNode) {\n evt.preventDefault();\n if (linkList) {\n linkList[0]?.focus();\n }\n }\n }\n };\n\n /**\n * Function used to set Keyboard Keydown Behavior.\n */\n const setKeyboardKeydownBehavior = (evt: ReactKeyboardEvent<HTMLAnchorElement>) => {\n if (evt.key === 'Escape' || evt.key === 'Esc') {\n setIsExpanded(false);\n buttonRef.current?.focus();\n }\n\n if (evt.key === 'Tab') {\n handleTabKey(evt);\n }\n\n if (evt.key === 'Enter') {\n setIsExpanded(false);\n }\n };\n\n /**\n * Used to setup the Event Listeners (mouse and keyboard).\n */\n useEffect(() => {\n if (isExpanded) {\n document.addEventListener('mousedown', closeMenuClickHandler);\n\n /**\n * Focus the first link when opening the menu.\n */\n const firstLink = listRef.current?.querySelectorAll('a');\n if (firstLink) {\n firstLink[0]?.focus();\n }\n }\n\n return () => {\n document.removeEventListener('mousedown', closeMenuClickHandler);\n };\n }, [isExpanded]);\n\n /**\n * Function used to Expand the breadcrumb Menu.\n */\n const expandMenu = () => {\n setIsExpanded((expanded) => {\n return !expanded;\n });\n };\n\n return (\n <nav aria-label={ariaLabel} className={BreadcrumbClassName}>\n <Button\n type=\"button\"\n ref={buttonRef}\n aria-expanded={isExpanded}\n aria-controls={`agora-mobile-breadcrumb-menu-${generatedId}`}\n onClick={expandMenu}\n hasIcon\n leadingIcon=\"agora-line-chevron-left\"\n leadingIconHover=\"agora-solid-chevron-left\"\n appearance=\"link\"\n variant=\"neutral\"\n darkMode={stringToBoolean(darkMode)}\n >\n {items.at(-1)?.label}\n </Button>\n\n <ol id={`agora-mobile-breadcrumb-menu-${generatedId}`} className={`${!isExpanded ? 'hidden' : 'flex'}`} ref={listRef}>\n {sectionTitle && (\n <li>\n <p className=\"[&>*]:text-s-semibold text-s-semibold [&>*]:text-[var(--color-neutral-500)] text-[var(--color-neutral-500)]\">\n {sectionTitle}\n </p>\n </li>\n )}\n {items.map((link, index) => {\n const id = `agora-mobile-breadcrumb-link-${generatedId}${index}`;\n\n if (index === items.length - 1 || !link.url) {\n return (\n <li id={id} key={id}>\n <span aria-current=\"page\" className=\"inline-flex items-center min-h-[44px]\">\n {link.label}\n </span>\n </li>\n );\n }\n\n return (\n <li id={id} key={id}>\n <Anchor variant=\"neutral\" appearance=\"link\" href={link.url} onKeyDown={setKeyboardKeydownBehavior}>\n {link.label}\n </Anchor>\n </li>\n );\n })}\n </ol>\n </nav>\n );\n};\n","import classNames from 'classnames';\nimport React, { FC, HTMLProps, ReactNode } from 'react';\nimport { BreadcrumbDesktop } from './desktop/breadcrumb-desktop';\nimport { BreadcrumbMobile } from './mobile/breadcrumb-mobile';\n\nexport interface BreadcrumbLink {\n /**\n * The Breadcrumb page link url.\n */\n url: string;\n /**\n * The Breadcrumb page link label.\n */\n label: string;\n}\n\nexport interface BreadcrumbProps extends HTMLProps<HTMLDivElement> {\n /**\n * The links that make up the breadcrumb in hierarchical order.\n */\n items?: BreadcrumbLink[];\n /**\n * The flag to set Dark mode.\n */\n darkMode?: boolean;\n /**\n * Section Title. Only visible on mobile resolutions.\n */\n sectionTitle?: ReactNode;\n}\n\nexport const Breadcrumb: FC<BreadcrumbProps> = ({ items = [], ...props }) => {\n const baseClasses = classNames('agora-breadcrumb', props.className, {\n 'bg-[var(--color-primary-900)] dark-mode': props.darkMode\n });\n\n const desktopBreadcrumbClassnames = classNames(baseClasses, 'xs:hidden xl:flex');\n const mobileBreadcrumbClassnames = classNames(baseClasses, 'xs:flex xl:hidden');\n\n return (\n <>\n <BreadcrumbDesktop {...props} items={items} className={desktopBreadcrumbClassnames} />\n <BreadcrumbMobile {...props} items={items} className={mobileBreadcrumbClassnames} />\n </>\n );\n};\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Icon } from '../icon';\nimport './checkbox.scss';\n\nexport interface CheckboxProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Sets the input in a error state.\n */\n hasError?: BooleanProp;\n /**\n * Child elements to render as custom label.\n */\n children?: ReactNode;\n}\n\nexport const InnerCheckbox: ForwardRefRenderFunction<HTMLInputElement, CheckboxProps> = (\n { label, hasError, hideLabel, required = true, children, ...props },\n ref: Ref<HTMLInputElement | null>\n) => {\n const inputRef = useRef<HTMLInputElement>(null);\n useImperativeHandle(ref, () => inputRef.current);\n\n const generatedId = useId();\n const propsClone = { ...props };\n propsClone.id = propsClone.id ?? generatedId;\n\n const [currentChecked, setCurrentChecked] = useState(stringToBoolean(propsClone.checked ?? propsClone.defaultChecked));\n\n const handleCustomCheckboxKeyUp = (evt: KeyboardEvent<HTMLDivElement>) => {\n if (propsClone.disabled || propsClone.readOnly) {\n return;\n }\n\n if (evt.code === 'Space' || evt.code === 'Enter' || evt.code === 'NumpadEnter') {\n evt.preventDefault();\n evt.stopPropagation();\n inputRef.current?.click();\n }\n };\n\n const handleCustomCheckboxClick = (evt: MouseEvent<HTMLInputElement>) => {\n if (propsClone.disabled || propsClone.readOnly) {\n return;\n }\n\n if (evt.detail > 0) {\n evt.preventDefault();\n evt.stopPropagation();\n inputRef.current?.click();\n }\n };\n\n const handleChange = () => {\n setCurrentChecked((last) => !last);\n };\n\n const inputWrapper = classNames('agora-checkbox', 'inline-flex items-start min-h-[44px]', {\n disabled: props.disabled,\n error: stringToBoolean(hasError),\n checked: currentChecked\n });\n\n useEffect(() => {\n const checked = propsClone.checked ?? propsClone.defaultChecked;\n if (checked !== undefined) {\n setCurrentChecked(checked);\n }\n }, [propsClone.checked, propsClone.defaultChecked]);\n\n return (\n <div\n {...propsClone}\n className={inputWrapper}\n id={`agora-checkbox-custom-${propsClone.id}`}\n role=\"checkbox\"\n tabIndex={props.disabled ? -1 : 0}\n aria-checked={currentChecked}\n aria-disabled={!!props.disabled}\n aria-label={hideLabel ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n aria-required={required}\n aria-invalid={stringToBoolean(hasError)}\n onKeyDownCapture={handleCustomCheckboxKeyUp}\n onClickCapture={handleCustomCheckboxClick}\n >\n <input className=\"hidden\" {...propsClone} type=\"checkbox\" ref={inputRef} onChange={handleChange} />\n\n <span className=\"mark\">{currentChecked && <Icon name=\"agora-line-check\" aria-hidden />}</span>\n\n {!hideLabel && (\n <label className=\"label\" htmlFor={propsClone.id}>\n <span>{children ?? label}</span>\n </label>\n )}\n </div>\n );\n};\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(InnerCheckbox);\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport './dialog.scss';\n\nexport interface DialogElementRef {\n /** Reference to the dialog container HTMLDivElement */\n current?: HTMLDivElement;\n /** Flag that tells if the dialog is visible or not */\n visible?: boolean;\n /** Show the dialog */\n show: () => void;\n /** Hide the dialog */\n hide: () => void;\n}\n\nexport interface DialogProps extends ComponentPropsWithRef<'div'> {\n /**\n * Initial visibility state of the dialog\n * */\n visible?: BooleanProp;\n /**\n * Renders the dialog content as full screen without a backdrop\n */\n fullScreen?: BooleanProp;\n /**\n * If not a fullscreen dialog, allows the user to dismiss the dialog by clicking in the backdrop\n */\n dismissOnBackdropClick?: BooleanProp;\n /**\n * Allows the dialog to be closed by pressing Escape key.\n */\n dismissOnEscape?: BooleanProp;\n}\n\nexport const InnerDialog: ForwardRefRenderFunction<DialogElementRef, DialogProps> = (\n {\n visible = false,\n fullScreen = false,\n dismissOnBackdropClick = true,\n dismissOnEscape = true,\n children,\n className,\n ...props\n }: DialogProps,\n ref: Ref<DialogElementRef>\n) => {\n const innerDialogRef = useRef<HTMLDivElement | null>(null);\n const [isVisible, setIsVisible] = useState(stringToBoolean(visible));\n\n const show = useCallback((): void => {\n setIsVisible(true);\n }, [setIsVisible]);\n\n const hide = useCallback((): void => {\n setIsVisible(false);\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n return {\n current: innerDialogRef.current,\n visible: isVisible,\n show,\n hide\n } as DialogElementRef;\n },\n [innerDialogRef, hide, show, isVisible]\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Escape' && stringToBoolean(dismissOnEscape)) {\n event.preventDefault();\n hide();\n\n return;\n }\n\n if (event.key === 'Tab' && innerDialogRef.current) {\n const focusableElements = innerDialogRef.current.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n } else if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n },\n [dismissOnEscape, hide]\n );\n\n const handleClickOutside = useCallback(\n (event: MouseEvent) => {\n if ((event.target as HTMLElement).classList.contains('agora-dialog-backdrop')) {\n hide();\n }\n },\n [hide]\n );\n\n useEffect(() => {\n document?.addEventListener('keydown', handleKeyDown);\n\n if (!stringToBoolean(fullScreen) && stringToBoolean(dismissOnBackdropClick)) {\n document?.addEventListener('click', handleClickOutside);\n }\n\n return () => {\n document?.removeEventListener('keydown', handleKeyDown);\n\n if (!stringToBoolean(fullScreen) && stringToBoolean(dismissOnBackdropClick)) {\n document?.removeEventListener('click', handleClickOutside);\n }\n };\n }, [dismissOnEscape, fullScreen, dismissOnBackdropClick, handleClickOutside, handleKeyDown]);\n\n useEffect(() => {\n if (isVisible) {\n document.body.classList.add('overflow-hidden');\n\n if (innerDialogRef.current) {\n const focusableElements = innerDialogRef.current.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n const firstElement = focusableElements[0] as HTMLElement;\n\n if (firstElement) {\n firstElement.focus();\n }\n }\n } else {\n document.body.classList.remove('overflow-hidden');\n }\n }, [isVisible]);\n\n const containerClassNames = classNames(\n 'agora-dialog',\n {\n closed: !isVisible\n },\n className\n );\n\n return (\n <div ref={innerDialogRef} className={containerClassNames} aria-modal=\"true\" role=\"dialog\" {...props}>\n {!fullScreen && <div className=\"agora-dialog-backdrop\" />}\n {children}\n </div>\n );\n};\n\nexport const Dialog = forwardRef<DialogElementRef, DialogProps>(InnerDialog);\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactNode,\n Ref,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport './drawer.scss';\nimport { BooleanProp } from '../../../models';\nimport { Dialog, DialogElementRef } from '../dialog';\n\nexport type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';\n\nexport interface DrawerRef {\n current: DialogElementRef | null;\n openDrawer: () => void;\n closeDrawer: () => void;\n}\n\nexport interface DrawerProps extends ComponentPropsWithRef<'dialog'> {\n /**\n * Children content.\n */\n children?: ReactNode;\n /**\n * Dismiss on escape.\n */\n dismissOnEscape?: BooleanProp;\n /**\n * Dismiss on back drop click.\n */\n dismissOnBackdropClick?: BooleanProp;\n /**\n * Position the drawer.\n */\n position?: DrawerPosition;\n\n /**\n * Callback to be called when click outside\n * */\n onClickedOutside?: () => void;\n}\n/**\n * Return icon default animation class drawer icon name and default position.\n */\nexport const InnerDrawer: ForwardRefRenderFunction<DialogElementRef | DrawerRef, DrawerProps> = (\n { children, dismissOnEscape = true, dismissOnBackdropClick = true, position = 'left', onClickedOutside, className, ...props },\n ref: Ref<DialogElementRef | DrawerRef>\n) => {\n const [open, setOpen] = useState(false);\n const generatedId = useId();\n const drawerRef = useRef<DialogElementRef | null>(null);\n const propsClone = { ...props };\n const DrawerClassName = classNames(\n `drawer`,\n { 'drawer-open-top': open && position === 'top' },\n { 'drawer-open-bottom': open && position === 'bottom' },\n { 'drawer-open-left': open && position === 'left' },\n { 'drawer-open-right': open && position === 'right' },\n { 'drawer-close-top': !open && position === 'top' },\n { 'drawer-close-bottom': !open && position === 'bottom' },\n { 'drawer-close-left': !open && position === 'left' },\n { 'drawer-close-right': !open && position === 'right' },\n { 'drawer-horizontal': position === 'left' || position === 'right' },\n { 'drawer-vertical': position === 'top' || position === 'bottom' }\n );\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const handleClose = () => {\n const fn = () => {\n setOpen(false);\n drawerRef.current?.hide();\n drawerRef.current?.current?.classList?.remove(`drawer-close-${position}`);\n drawerRef.current?.current?.removeEventListener('animationend', fn);\n };\n drawerRef.current?.current?.addEventListener('animationend', fn);\n drawerRef.current?.current?.classList.add(`drawer-close-${position}`);\n };\n\n const handleOpen = () => {\n setOpen(true);\n drawerRef.current?.show();\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && dismissOnEscape) {\n event.preventDefault();\n handleClose();\n }\n };\n\n const handleClickOutside = (event: MouseEvent) => {\n if (dismissOnBackdropClick && event.target === drawerRef?.current?.current) {\n const dialogElem = drawerRef.current.current;\n const rect = dialogElem?.getBoundingClientRect();\n if (rect) {\n const isInDialog =\n rect.top <= event.clientY &&\n event.clientY <= rect.top + rect.height &&\n rect.left <= event.clientX &&\n event.clientX <= rect.left + rect.width;\n if (!isInDialog) {\n handleClose();\n onClickedOutside?.();\n }\n }\n }\n };\n\n useEffect(() => {\n document?.addEventListener('keydown', handleKeyDown);\n document?.addEventListener('click', handleClickOutside);\n\n return () => {\n document?.removeEventListener('keydown', handleKeyDown);\n document?.removeEventListener('click', handleClickOutside);\n };\n }, [dismissOnEscape, dismissOnBackdropClick]);\n\n useImperativeHandle(\n ref,\n () => {\n return {\n current: drawerRef.current,\n openDrawer: () => handleOpen(),\n closeDrawer: () => handleClose()\n } as DrawerRef;\n },\n [drawerRef]\n );\n\n return (\n <Dialog ref={drawerRef} id={propsClone.id} className={className}>\n <div className={DrawerClassName}>{children}</div>\n </Dialog>\n );\n};\n\nexport const Drawer = forwardRef<DialogElementRef | DrawerRef, DrawerProps>(InnerDrawer);\n","import classNames from 'classnames';\r\nimport React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, HTMLProps } from 'react';\r\nimport './glossary-letters.scss';\r\n\r\nexport type LetterStatus = 'default' | 'disabled' | 'selected';\r\n\r\nexport interface GlossaryLetter extends HTMLProps<HTMLAnchorElement> {\r\n /**\r\n * Letter to be rendered\r\n */\r\n letter: string;\r\n /**\r\n * Glossary letter status\r\n */\r\n status: LetterStatus;\r\n /**\r\n * Data attributes\r\n */\r\n [dataAttribute: `data-${string}`]: string;\r\n}\r\n\r\nexport interface GlossaryLettersProps extends ComponentPropsWithRef<'nav'> {\r\n /**\r\n * Letters Array\r\n */\r\n letters?: GlossaryLetter[];\r\n}\r\n\r\nexport const InnerGlossaryLetters: ForwardRefRenderFunction<HTMLDivElement, GlossaryLettersProps> = ({ letters, ...props }, ref) => {\r\n const NavElementClass = classNames('navElement');\r\n const GlossaryContainerClass = classNames('glossary-container');\r\n\r\n return (\r\n <nav {...props} className={NavElementClass} ref={ref}>\r\n <div className={GlossaryContainerClass}>\r\n {letters?.map(({ letter, status, ...anchorProps }) => {\r\n const isDisabled = status === 'disabled';\r\n const isSelected = status === 'selected';\r\n const anchorClassName = classNames('anchor', { 'anchor-disabled': isDisabled }, { 'anchor-selected': isSelected });\r\n const tabIndex = isDisabled ? -1 : 0;\r\n const href = `#${letter}`;\r\n\r\n return (\r\n <a key={`${letter}-${href}`} {...anchorProps} className={anchorClassName} tabIndex={tabIndex} href={href}>\r\n {letter}\r\n </a>\r\n );\r\n })}\r\n </div>\r\n </nav>\r\n );\r\n};\r\n\r\nexport const GlossaryLetters = forwardRef<HTMLDivElement, GlossaryLettersProps>(InnerGlossaryLetters);\r\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction, ReactNode } from 'react';\nimport { FeedbackState } from '../../../models';\nimport { BooleanProp } from '../../../models/boolean-type';\nimport { stringToBoolean } from '../../../utils';\nimport { Icon } from '../../atoms/icon';\nimport './feedback.scss';\nexport interface FeedbackProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * The flag to set if the feebacktext is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n}\n\nexport const InnerFeedback: ForwardRefRenderFunction<HTMLDivElement, FeedbackProps> = (\n { className, feedbackState = 'info', feedbackText, darkMode, ...props },\n ref\n) => {\n const feedbackWrapperClasses = classNames('feedback', className);\n const feedbackIconWrapperClasses = classNames('feedback-icon-wrapper', `feedback-icon-wrapper-${feedbackState}`);\n const feedbackTextClasses = classNames('feedback-text', stringToBoolean(darkMode) ? 'feedback-text-dark' : 'feedback-text-light');\n /**\n * Dictionary of possible icons feedback.\n */\n const feedbackStateIconsMap = {\n info: 'agora-solid-info-mark',\n danger: 'agora-solid-alert-triangle',\n success: 'agora-solid-check-circle',\n warning: 'agora-solid-alert-circle'\n };\n\n return (\n <div {...props} className={feedbackWrapperClasses} ref={ref}>\n <span className={feedbackIconWrapperClasses}>\n <Icon name={feedbackStateIconsMap[feedbackState]} dimensions=\"s\" aria-hidden />\n </span>\n <p className={feedbackTextClasses}>{feedbackText}</p>\n </div>\n );\n};\n\nexport const Feedback = forwardRef<HTMLDivElement, FeedbackProps>(InnerFeedback);\n","import classNames from 'classnames';\nimport React, {\n ChangeEvent,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactNode,\n useCallback,\n useId,\n useState\n} from 'react';\nimport { BooleanProp } from '../../../models/boolean-type';\nimport { Button } from '../button/button';\nimport { FeedbackState } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Feedback } from '../../shared/feedback';\nimport './input-email-bar.scss';\n\nconst EMAIL_REGEXP = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nexport interface InputEmailBarProps extends ComponentPropsWithRef<'input'> {\n /**\n * If true, the label is displayed above the input.\n */\n hasLabel?: BooleanProp;\n /**\n * Label to display above the input.\n */\n label?: string;\n /**\n * Callback to execute when the user clicks on the send button.\n */\n onSendHandler?: (email: string) => void;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Text informative displayed below input text.\n */\n feedbackText?: ReactNode;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedbacktext is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Indicates the feedback state of feedback text. This param will change the left feedback icon and dye it.\n */\n hasError?: BooleanProp;\n}\n\nconst InnerInputEmailBar: ForwardRefRenderFunction<HTMLInputElement, InputEmailBarProps> = (\n {\n className,\n hasLabel,\n label,\n hasFeedback,\n feedbackState = 'info',\n darkMode,\n feedbackText,\n hasError,\n required = true,\n onSendHandler,\n pattern = EMAIL_REGEXP,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange } = propsClone;\n\n const [email, setEmail] = useState<string>('');\n const [isValidEmail, setIsValidEmail] = useState<boolean>(false);\n\n const handleChangeEvent = useCallback(\n (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n setEmail(value);\n setIsValidEmail(new RegExp(pattern).test(value));\n onChange?.(evt);\n },\n [onChange, pattern]\n );\n\n const onSendButtonClick = useCallback(() => {\n if (onSendHandler && new RegExp(pattern).test(email)) {\n onSendHandler(email);\n }\n }, [onSendHandler, pattern, email]);\n\n const inputWrapperClassNames = classNames('agora-input-email-bar', className);\n\n const labelClasses = classNames('input-email-bar-label', stringToBoolean(darkMode) ? 'dark-label' : 'light-label');\n\n return (\n <div hidden={!!propsClone.hidden} className={inputWrapperClassNames}>\n {hasLabel && (\n <label className={labelClasses} htmlFor={propsClone.id}>\n {label}\n </label>\n )}\n <div className={`agora-input-email-bar-container ${propsClone.disabled ? 'disabled' : ''}`}>\n <input\n {...propsClone}\n className=\"flex-grow-[1] outline-none\"\n ref={ref}\n type=\"email\"\n disabled={!!propsClone.disabled}\n onChange={handleChangeEvent}\n required={required}\n />\n\n <div className=\"actions-container\">\n <Button\n className=\"magnifier-icon\"\n appearance=\"solid\"\n iconOnly\n hasIcon\n leadingIcon=\"agora-line-plane\"\n leadingIconHover=\"agora-solid-plane\"\n aria-label={hasLabel ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n onClick={onSendButtonClick}\n disabled={!isValidEmail}\n />\n </div>\n </div>\n {/* Feedback */}\n {stringToBoolean(hasFeedback) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputEmailBar = forwardRef<HTMLInputElement, InputEmailBarProps>(InnerInputEmailBar);\n","import classNames from 'classnames';\n\nimport React, {\n ChangeEvent,\n ComponentPropsWithRef,\n DragEvent,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n ChangeEvent as ReactChangeEvent,\n Ref,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { createSyntheticChangeEvent } from '../../../utils/create-synthetic-change-event';\nimport { Button } from '../button';\nimport { Icon } from '../icon';\nimport './input-file.scss';\n\n/**\n * @deprecated Deprecated prior to 0.16.0 version. Will be removed.\n */\nexport interface InputFileProps extends ComponentPropsWithRef<'input'> {\n /**\n * The max count of uploaded files\n */\n maxCount?: number;\n /**\n * The maxSize of the file in bytes\n */\n maxSize?: number;\n /**\n * The extensionsBlackList of the uploader\n */\n extensionsBlackList: string[];\n /**\n * The addedLabel of the uploader\n */\n addedLabel: string;\n /**\n * The announceRemovedFileLabel of the uploader\n */\n announceRemovedFileLabel: string;\n /**\n * The removeFileLabel of the uploader\n */\n removeFileLabel: string;\n /**\n * The fileListLabel of the uploader\n */\n fileListLabel: string;\n /**\n * The fileDropZoneAriaLabel of the uploader\n */\n fileDropZoneAriaLabel: string;\n /**\n * The dropYourFilesHereLabel of the uploader\n */\n dropYourFilesHereLabel: string;\n /**\n * The allowedFilesAriaLabel of the uploader\n */\n allowedFilesAriaLabel: string;\n /**\n * The uploadFilesLabel of the uploader\n */\n uploadFilesLabel: string;\n /**\n * The id of the uploader\n */\n id?: string;\n /**\n * The fileLabel of the uploader\n */\n fileLabel: string;\n}\n\nconst InnerInputFile: ForwardRefRenderFunction<HTMLInputElement, InputFileProps> = (\n {\n maxSize = Number.MAX_SAFE_INTEGER,\n maxCount = 0,\n extensionsBlackList,\n addedLabel,\n fileListLabel,\n removeFileLabel,\n announceRemovedFileLabel,\n fileDropZoneAriaLabel,\n dropYourFilesHereLabel,\n allowedFilesAriaLabel,\n uploadFilesLabel,\n id: propId,\n fileLabel,\n onChange,\n ...rest\n },\n ref: Ref<HTMLInputElement | null>\n) => {\n const generatedId = useId();\n const id = propId ?? generatedId;\n const formattedExtensions = extensionsBlackList.map((extension) => ' .' + extension).join(' / ');\n const [isDraggingOver, setIsDraggingOver] = useState(false);\n const [files, setFiles] = useState<File[]>([]);\n const [lastRemoved, setLastRemoved] = useState<File | null>(null);\n const [announceMessage, setAnnounceMessage] = useState('');\n const dropRef = useRef<HTMLDivElement>(null);\n\n const fileInputRef = useRef<HTMLInputElement>(null);\n useImperativeHandle(ref, () => fileInputRef.current);\n\n const fileDropContentClassName = classNames('file-drop-content', {\n 'border-dashed': isDraggingOver\n });\n\n const handleButtonClick = () => {\n const fileInput = fileInputRef.current;\n if (fileInput) {\n fileInput.click();\n }\n };\n\n const isFileExtensionAllowed = (fileName: string): boolean => {\n const fileExtension = fileName.split('.').pop()?.toLowerCase() ?? '';\n const isAllowed = extensionsBlackList.includes(fileExtension);\n\n return isAllowed;\n };\n\n const generateFileListAnnouncement = useCallback(() => {\n const fileList = files.map((file) => file.name).join(', ');\n return `${fileListLabel}: ${fileList}`;\n }, [files, fileListLabel]);\n\n const addFiles = (filesToAdd: File[]) => {\n const validFiles = filesToAdd.filter((file) => file.size <= maxSize && isFileExtensionAllowed(file.name));\n\n if (validFiles.length > 0) {\n setFiles((prevFiles) => {\n if (!maxCount || maxCount == 0) {\n return [...prevFiles, ...validFiles];\n }\n\n if (maxCount >= prevFiles.length + validFiles.length) {\n return [...prevFiles, ...validFiles].slice(0, maxCount);\n }\n\n // MAX COUNT EXCEEDED. DO NOTHING\n return prevFiles;\n });\n }\n };\n\n const handleFileChange = (event: ReactChangeEvent<HTMLInputElement>) => {\n setLastRemoved(null);\n const selectedFiles = Array.from(event.target.files ?? []);\n addFiles(selectedFiles);\n };\n\n const handleDragOver = (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n setIsDraggingOver(true);\n const modifiedEvent = { ...event };\n modifiedEvent.dataTransfer.dropEffect = 'copy';\n if (!dropRef.current) {\n return;\n }\n\n dropRef.current.classList.add('dragging-over');\n };\n\n const handleDragLeave = () => {\n setIsDraggingOver(false);\n if (!dropRef.current) {\n return;\n }\n dropRef.current.classList.remove('dragging-over');\n };\n\n const handleDrop = (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (!dropRef.current) {\n return;\n }\n\n dropRef.current.classList.remove('dragging-over');\n\n const droppedFiles = Array.from(event.dataTransfer.files ?? []);\n\n addFiles(droppedFiles);\n };\n\n const handleRemoveFile = (fileToRemove: File) => {\n setLastRemoved(fileToRemove);\n setFiles((prevFiles) => prevFiles.filter((file) => file !== fileToRemove));\n };\n\n function handleKeyDown(e: KeyboardEvent) {\n if (e.key === 'Enter') {\n handleButtonClick();\n }\n }\n\n useEffect(() => {\n const isFileAdded = lastRemoved === null;\n const actionMessage = isFileAdded ? `${addedLabel}` : `${announceRemovedFileLabel}`;\n const actionFile = isFileAdded ? files[files.length - 1] : lastRemoved;\n const fileNamesMessage = `${fileLabel} ${actionMessage}: ${actionFile?.name}`;\n const updatedFileListAnnouncement = generateFileListAnnouncement();\n const fullMessage = `${fileNamesMessage}. ${updatedFileListAnnouncement}`;\n\n setAnnounceMessage(fullMessage);\n\n const handlePaste = (e: Event) => {\n const { clipboardData } = e as ClipboardEvent;\n if (clipboardData && clipboardData.files.length > 0) {\n const clipboardFiles = Array.from(clipboardData.files);\n addFiles(clipboardFiles);\n }\n };\n\n window.addEventListener('paste', handlePaste);\n\n return () => {\n window.removeEventListener('paste', handlePaste);\n };\n }, [files, lastRemoved, addedLabel, generateFileListAnnouncement, announceRemovedFileLabel, fileLabel]);\n\n useEffect(() => {\n if (fileInputRef.current) {\n const list = new DataTransfer();\n\n files.forEach((f) => {\n list.items.add(f);\n });\n\n fileInputRef.current.files = list.files;\n\n const syntheticEvent = createSyntheticChangeEvent(fileInputRef.current);\n onChange?.(syntheticEvent as ChangeEvent<HTMLInputElement>);\n }\n }, [files]);\n\n return (\n <div className=\"file-container\">\n <div ref={dropRef} className=\"file-drop-container\" onDragOver={handleDragOver} onDragLeave={handleDragLeave} onDrop={handleDrop}>\n <div\n className={fileDropContentClassName}\n aria-label={fileDropZoneAriaLabel}\n tabIndex={0}\n role=\"button\"\n onClick={handleButtonClick}\n onKeyDown={handleKeyDown}\n >\n <div className=\"file-drop-info-section\">\n <Icon className=\"icon-element\" name=\"agora-line-download\" dimensions=\"m\" aria-hidden />\n <p className=\"file-drop-info-title\">{dropYourFilesHereLabel}</p>\n <p className=\"file-drop-info-subtitle\">\n {allowedFilesAriaLabel} {formattedExtensions}\n </p>\n <input ref={fileInputRef} {...rest} id={id} type=\"file\" className=\"hidden\" multiple onChange={handleFileChange} />\n <div className=\"upload-btn flex gap-16 items-center justify-center min-h-[60px] min-w-[60px] bg-[var(--color-neutral-200)] p-16 rounded-4\">\n <span>{uploadFilesLabel}</span>\n <span>\n <Icon className=\"icon-element fill-[var(--color-neutral-900)]\" name=\"agora-solid-upload\" dimensions=\"m\" aria-hidden />\n </span>\n </div>\n <p className=\"file-drop-info-subtitle-mobile\">\n {allowedFilesAriaLabel} {formattedExtensions}\n </p>\n </div>\n </div>\n </div>\n <div id={`announce-region-${id}`} aria-live=\"assertive\" aria-atomic=\"true\" className=\"sr-only\">\n {announceMessage}\n </div>\n {files.length > 0 && (\n <div className=\"file-list\">\n <ul>\n {files.map((file, index) => {\n const fileIndex = `${id}-${file.name}-${index}`;\n return (\n <div key={fileIndex}>\n <div className=\"file-item\">\n <div className=\"flex w-full justify-between\">\n <p className=\"break-all mt-[16px] mb-[8px]\">{file.name}</p>\n <Button\n iconOnly\n leadingIcon=\"agora-line-x-circle\"\n leadingIconHover=\"agora-line-x-circle\"\n hasIcon\n appearance=\"link\"\n variant=\"neutral\"\n className=\"close-btn\"\n onClick={() => handleRemoveFile(file)}\n aria-label={`${removeFileLabel} ${file.name}`}\n />\n </div>\n </div>\n {index !== files.length - 1 && <div className=\"file-divider\" />}\n </div>\n );\n })}\n </ul>\n </div>\n )}\n </div>\n );\n};\n\n/**\n * @deprecated Deprecated prior to 0.16.0 version. Will be removed.\n */\nconst InputFile = forwardRef<HTMLInputElement, InputFileProps>(InnerInputFile);\n\nexport { InputFile };\n","import classNames from 'classnames';\nimport React, { ChangeEvent, ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId, useRef, useState } from 'react';\nimport { BooleanProp, FeedbackState } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Feedback } from '../../shared/feedback';\nimport { Icon } from '../icon';\nimport './input-number.scss';\n\nexport interface InputNumberProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Sets the input in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedbacktext is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * Show or hide the leading icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n /**\n * Label text for increase button. Recommended for accessibility.\n */\n increaseButtonAltText?: string;\n /**\n * Label text for decrease button. Recommended for accessibility.\n */\n decreaseButtonAltText?: string;\n}\n\nexport const InnerInputNumber: ForwardRefRenderFunction<HTMLInputElement, InputNumberProps> = (\n {\n label,\n hideLabel,\n hasError,\n increaseButtonAltText = 'increase',\n decreaseButtonAltText = 'decrease',\n hasFeedback,\n feedbackState = 'info',\n darkMode,\n feedbackText,\n hasIcon,\n icon,\n className,\n required = true,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange, min, max } = propsClone;\n\n const inputWrapperRef = useRef<HTMLInputElement>(null);\n\n const [currentValue, setCurrentValue] = useState(propsClone.value);\n\n /**\n * Local onChange event handler. This functions enforces the max char limit.\n */\n const handleChangeEvent = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n\n setCurrentValue(value);\n\n onChange?.(evt);\n\n if (max === parseFloat(value?.toString() ?? '0') || min === parseFloat(value?.toString() ?? '0')) {\n const inputElem = inputWrapperRef.current?.querySelector('input');\n if (inputElem) {\n inputElem.focus();\n }\n }\n };\n\n const [isHovered, setIsHovered] = useState(false);\n\n /**\n * Builds main Classes for whole component\n */\n const inputClassBuilder = () => {\n return {\n // main wrapper class\n inputWrapperClasses: classNames(\n 'agora-input-number-wrapper',\n\n {\n 'flex flex-col': !propsClone.hidden,\n 'input-disabled': !!propsClone.disabled,\n 'input-has-error': stringToBoolean(hasError),\n 'is-hovered': isHovered\n }\n ),\n // classes for above input sections [label]\n labelSectionClasses: classNames(\n 'input-label-wrapper flex items-end',\n\n {\n 'mb-8': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n }\n ),\n // text input component classes\n inputClasses: classNames(\n 'agora-input-number',\n {\n 'has-leading-icon': hasIcon && icon?.indexOf('agora-line') === 0, // allowing only line family icon\n 'has-value': currentValue && currentValue.toString().length > 0\n },\n className\n ),\n\n leadingIconWrapperClasses: classNames('input-leading-icon')\n };\n };\n\n const { inputWrapperClasses, labelSectionClasses, inputClasses, leadingIconWrapperClasses } = inputClassBuilder();\n\n /**\n * Execute stepUp locally and execute update value\n */\n const handleStepUp = () => {\n const inputElem = inputWrapperRef.current?.querySelector('input');\n\n if (inputElem) {\n inputElem.stepUp();\n inputElem.dispatchEvent(new Event('change', { bubbles: true }));\n }\n };\n\n /**\n * Execute stepDown locally and execute update value\n */\n const handleStepDown = () => {\n const inputElem = inputWrapperRef.current?.querySelector('input');\n\n if (inputElem) {\n inputElem.stepDown();\n inputElem.dispatchEvent(new Event('change', { bubbles: true }));\n }\n };\n\n /**\n * Sets the correct hoovering state of the component\n */\n const handleMouseHoovering = (isHover: boolean) => {\n setIsHovered(isHover);\n };\n\n const labelClasses = classNames('input-number-label', stringToBoolean(darkMode) ? 'dark-label' : 'light-label');\n\n return (\n <div hidden={!!propsClone.hidden} className={inputWrapperClasses}>\n {/* Label */}\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n </div>\n\n {/* Text input wrapper */}\n <div className=\"input-wrapper flex relative items-center\" ref={inputWrapperRef}>\n <input\n {...propsClone}\n type=\"number\"\n className={inputClasses}\n disabled={!!propsClone.disabled}\n aria-invalid={stringToBoolean(hasError)}\n aria-label={hideLabel ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n ref={ref}\n required={required}\n onChange={handleChangeEvent}\n />\n\n {/* Input Leading Icon [only line family icon] */}\n {hasIcon && icon && icon.startsWith('agora-line') && (\n <div className={leadingIconWrapperClasses}>\n <Icon name={icon} aria-hidden />\n </div>\n )}\n\n {/* Steps controls */}\n <div\n className=\"input-number-controls\"\n onFocus={() => null}\n onMouseOver={() => handleMouseHoovering(true)}\n onMouseLeave={() => handleMouseHoovering(false)}\n >\n <button\n disabled={min === parseFloat(currentValue?.toString() ?? '0') || !!propsClone.disabled || !!propsClone.readOnly}\n type=\"button\"\n onClick={handleStepDown}\n aria-label={decreaseButtonAltText}\n >\n <Icon name=\"agora-line-minus-circle\" aria-hidden className=\"icon-step icon-step-default\" />\n <Icon name=\"agora-solid-minus-circle\" aria-hidden className=\"icon-step icon-step-hover\" />\n </button>\n <button\n disabled={max === parseFloat(currentValue?.toString() ?? '0') || !!propsClone.disabled || !!propsClone.readOnly}\n type=\"button\"\n onClick={handleStepUp}\n aria-label={increaseButtonAltText}\n >\n <Icon name=\"agora-line-plus-circle\" aria-hidden className=\"icon-step icon-step-default\" />\n <Icon name=\"agora-solid-plus-circle\" aria-hidden className=\"icon-step icon-step-hover\" />\n </button>\n </div>\n </div>\n\n {/* Feedback */}\n {stringToBoolean(hasFeedback) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputNumber = forwardRef<HTMLInputElement, InputNumberProps>(InnerInputNumber);\n","import classNames from 'classnames';\nimport React, { ChangeEvent, ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId, useRef, useState } from 'react';\nimport { BooleanProp, FeedbackState } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Feedback } from '../../shared/feedback';\nimport { Icon } from '../icon';\nimport './input-password.scss';\n\nexport interface InputPasswordProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input descriptive label.\n */\n label?: string;\n /**\n * Decides if display/hide label.\n */\n hideLabel?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Text informative displayed below input text.\n */\n feedbackText?: ReactNode;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedbacktext is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Highlight the input indicating some error\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n /**\n * Indicates the feedback state of feedback text. This param will change the left feedback icon and dye it.\n */\n hasError?: BooleanProp;\n /**\n * Alternative text for toggle password/plain text icon button\n */\n togglePasswordAltIconText?: string;\n}\n\nconst InnerInputPassword: ForwardRefRenderFunction<HTMLInputElement, InputPasswordProps> = (\n {\n label,\n hideLabel,\n hasError,\n hasFeedback,\n feedbackState = 'info',\n darkMode,\n feedbackText,\n hasIcon,\n icon,\n className,\n required = true,\n togglePasswordAltIconText = 'show/hide',\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange } = propsClone;\n\n const inputWrapperRef = useRef<HTMLInputElement>(null);\n\n const [showPassword, setShowPassword] = useState(false);\n\n const [currentValue, setCurrentValue] = useState(propsClone.value);\n\n /**\n * Show/Hide password\n */\n const handleTogglePassword = () => {\n if (!propsClone.disabled && !propsClone.readOnly) {\n setShowPassword(!showPassword);\n\n if (inputWrapperRef?.current) {\n inputWrapperRef.current.querySelector('input')?.focus();\n }\n }\n };\n\n /**\n * Local onChange event handler.\n */\n const handleChangeEvent = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n setCurrentValue(value);\n onChange?.(evt);\n };\n\n /**\n * Builds main Classes for whole component\n */\n const inputClassBuilder = () => {\n return {\n // main wrapper class\n inputWrapperClasses: classNames(\n 'agora-input-password-wrapper',\n\n {\n 'flex flex-col': !propsClone.hidden,\n 'input-disabled': !!propsClone.disabled,\n 'input-has-error': stringToBoolean(hasError)\n }\n ),\n // classes for above input sections [label and hint icon]\n labelSectionClasses: classNames(\n 'input-label-wrapper flex items-end',\n\n {\n 'mb-8': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n }\n ),\n // text input component classes\n inputClasses: classNames(\n 'agora-input-password',\n {\n 'has-leading-icon': hasIcon && icon?.indexOf('agora-line') === 0, // allowing only line family icon\n 'has-value': currentValue && currentValue?.toString().length > 0\n },\n className\n ),\n leadingIconWrapperClasses: classNames('input-leading-icon')\n };\n };\n\n const { inputWrapperClasses, labelSectionClasses, inputClasses, leadingIconWrapperClasses } = inputClassBuilder();\n\n const labelClasses = classNames('input-password-label', stringToBoolean(darkMode) ? 'dark-label' : 'light-label');\n\n return (\n <div hidden={!!propsClone.hidden} className={inputWrapperClasses}>\n {/* Label */}\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n </div>\n\n {/* Text input wrapper */}\n <div className=\"input-wrapper flex relative items-center\" ref={inputWrapperRef}>\n <input\n {...propsClone}\n type={showPassword ? 'text' : 'password'}\n className={inputClasses}\n disabled={!!propsClone.disabled}\n readOnly={!!propsClone.readOnly}\n aria-invalid={stringToBoolean(hasError)}\n aria-label={hideLabel ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n ref={ref}\n required={required}\n onChange={handleChangeEvent}\n />\n\n {/* Input Leading Icon [only line family icon] */}\n {hasIcon && icon && icon.startsWith('agora-line') && (\n <div className={leadingIconWrapperClasses}>\n <Icon name={icon} aria-hidden />\n </div>\n )}\n\n {/* right trailing icon */}\n <button\n type=\"button\"\n className=\"input-btn-toggle bg-transparent\"\n onClick={handleTogglePassword}\n aria-label={togglePasswordAltIconText}\n disabled={propsClone.disabled ?? propsClone.readOnly}\n >\n <Icon name={`agora-line-${showPassword ? 'eye-off' : 'eye'}`} alt={togglePasswordAltIconText} />\n </button>\n </div>\n\n {/* Feedback */}\n {stringToBoolean(hasFeedback) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputPassword = forwardRef<HTMLInputElement, InputPasswordProps>(InnerInputPassword);\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n MouseEvent,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport './input-range.scss';\n\nexport type RangeOrientation = 'horizontal' | 'vertical';\n\nexport type RangeType = 'single' | 'double';\n\nexport interface RangeProps extends Omit<ComponentPropsWithRef<'input'>, 'value' | 'onChange'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Decides if display/hide label.\n */\n hideLabel?: BooleanProp;\n /**\n * The orientation of the range (horizontal or vertical).\n */\n orientation?: RangeOrientation;\n /**\n * The type of the range (single or double).\n */\n type?: RangeType;\n /**\n * If `true`, the range will be disabled.\n */\n disabled?: boolean;\n /**\n * The value(s) of the range.\n */\n value: number[];\n /**\n * The minimum value of the range.\n */\n min: number | string;\n /**\n * The maximum value of the range.\n */\n max: number | string;\n /**\n * Custom onChange event handler for double range type.\n * Will be called with an array of values.\n */\n onChange?: (values: number[]) => void;\n}\nexport interface InputRangeRef {\n current: (HTMLDivElement | HTMLInputElement)[];\n}\n\nconst InnerRange: ForwardRefRenderFunction<HTMLDivElement | HTMLInputElement | (HTMLInputElement | null)[], RangeProps> = (\n { label, hideLabel, type = 'single', disabled, orientation = 'horizontal', value: propValue = [0, 0], ...props },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange } = propsClone;\n\n const [currentVal, setCurrentVal] = useState<number[]>([propValue[0], propValue[1]]);\n\n const prevPropValue = useRef<number[]>(propValue);\n\n const innerRefs1 = useRef<HTMLInputElement>(null);\n const innerRefs2 = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(ref, () => {\n if (type === 'single') {\n return [innerRefs1.current as HTMLInputElement];\n }\n return [innerRefs1.current as HTMLInputElement, innerRefs2.current as HTMLInputElement];\n });\n\n useEffect(() => {\n if (prevPropValue.current[0] !== propValue[0] || prevPropValue.current[1] !== propValue[1]) {\n const values = [...propValue];\n\n if (type === 'single') {\n values[1] = Number(propsClone.max);\n }\n\n setCurrentVal(values);\n\n prevPropValue.current = values;\n }\n }, [propValue]);\n\n const handleRangeChange = (values: number[]): void => {\n const [firstValue, secondValue] = values;\n\n if (type === 'single') {\n setCurrentVal(values);\n onChange?.(values);\n } else if (type === 'double') {\n if (firstValue > secondValue || secondValue < firstValue || firstValue === secondValue) {\n return;\n }\n\n setCurrentVal(values);\n onChange?.(values);\n }\n };\n\n const getBackground = () => {\n if (!document) {\n return '#FFFFFF'; // HAMMER.... REVIEW THIS... NEXTJS WAS CRASHING DUE TO DOCUMENT SSR STUFF\n }\n\n const primaryColor = getComputedStyle(document.documentElement).getPropertyValue('--color-primary-600');\n const secondaryColor = getComputedStyle(document.documentElement).getPropertyValue('--color-neutral-200');\n const min = Number(propsClone.min);\n const max = Number(propsClone.max);\n\n if (type === 'single' && !disabled) {\n let percent = ((currentVal[0] - min) / (max - min)) * 100;\n percent = Math.min(percent, 100); // Round to 100% if the value is greater than the maximum\n return `linear-gradient(to right, ${primaryColor} ${percent}%, ${secondaryColor} ${percent}%, ${secondaryColor} 100%)`;\n }\n\n if (type === 'double' && !disabled) {\n let percent0 = ((currentVal[0] - min) / (max - min)) * 100;\n let percent1 = ((currentVal[1] - min) / (max - min)) * 100;\n percent0 = Math.min(percent0, 100); // Round to 100% if the value is greater than the maximum\n percent1 = Math.min(percent1, 100); // Round to 100% if the value is greater than the maximum\n return `linear-gradient(to right, ${secondaryColor} ${percent0}%, ${primaryColor} ${percent0}%, ${primaryColor} ${percent1}%, ${secondaryColor} ${percent1}%)`;\n }\n\n return secondaryColor;\n };\n\n const RangeClassName = classNames('input-range-wrapper min-h-[44px]', {\n 'input-range-wrapper-disabled': disabled\n });\n\n const hasLabel = !hideLabel && label && label.length > 0;\n const RailClassName = classNames(\n 'rail absolute w-full h-[4px] left-[0px] z-[0]',\n { 'top-[20px]': !hasLabel },\n { 'bottom-[22px]': hasLabel }\n );\n\n const InputClassName = classNames(\n 'w-full outline-none rounded-16 appearance-none h-[0] absolute',\n { 'top-[22px]': !hasLabel },\n { 'top-[52px]': hasLabel }\n );\n\n const RangeStyle = {\n background: getBackground()\n };\n\n const handleMouseUp = () => {\n innerRefs1.current?.classList.remove('z-[2]');\n innerRefs2.current?.classList.remove('z-[2]');\n };\n\n const handleMouseDown = (evt: MouseEvent<HTMLInputElement>) => {\n handleMouseUp();\n\n const target = evt.target as HTMLInputElement;\n target.classList.add('z-[2]');\n };\n\n return (\n <div className={RangeClassName}>\n <div className={`input-range-${orientation}`}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={`${propsClone.id}-0`} className=\"text-[var(--color-primary-900)] text-m-medium\">\n {label}\n </label>\n <div className={RailClassName} style={RangeStyle} />\n <input\n {...props}\n className={InputClassName}\n type=\"range\"\n id={`${propsClone.id}-0`}\n disabled={disabled}\n onChange={(event) => handleRangeChange([Number(event.target.value), currentVal[1]])}\n value={currentVal[0]}\n ref={innerRefs1}\n aria-label={propsClone['aria-label'] ?? label}\n onMouseDown={handleMouseDown}\n onMouseUp={handleMouseUp}\n />\n <input\n {...props}\n className={InputClassName}\n hidden={type === 'single'}\n type=\"range\"\n id={`${propsClone.id}-1`}\n disabled={disabled}\n onChange={(event) => handleRangeChange([currentVal[0], Number(event.target.value)])}\n value={currentVal[1]}\n ref={innerRefs2}\n aria-label={propsClone['aria-label'] ?? label}\n onMouseDown={handleMouseDown}\n onMouseUp={handleMouseUp}\n />\n </div>\n </div>\n );\n};\n\nexport const InputRange = forwardRef<HTMLDivElement | HTMLInputElement | (HTMLInputElement | null)[], RangeProps>(InnerRange);\n","import classNames from 'classnames';\nimport React, { ChangeEvent, ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId, useState } from 'react';\nimport { BooleanProp, FeedbackState } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Feedback } from '../../shared/feedback';\nimport { Icon } from '../icon';\nimport './input-search.scss';\n\nexport interface InputSearchProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Decides if display/hide label.\n */\n hideLabel?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Text informative displayed below input text.\n */\n feedbackText?: ReactNode;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedbacktext is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Highlight the input indicating some error\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n /**\n * Indicates the feedback state of feedback text. This param will change the left feedback icon and dye it.\n */\n hasError?: BooleanProp;\n}\n\nconst InnerInputSearch: ForwardRefRenderFunction<HTMLInputElement, InputSearchProps> = (\n {\n label,\n hideLabel,\n hasError,\n hasFeedback,\n feedbackState = 'info',\n darkMode,\n feedbackText,\n hasIcon,\n icon,\n className,\n required = true,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange } = propsClone;\n\n const [currentValue, setCurrentValue] = useState(propsClone.value);\n\n /**\n * Local onChange event handler.\n */\n const handleChangeEvent = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n setCurrentValue(value);\n onChange?.(evt);\n };\n\n /**\n * Builds main Classes for whole component\n */\n const inputClassBuilder = () => {\n return {\n // main wrapper class\n inputWrapperClasses: classNames(\n 'agora-input-search-wrapper',\n\n {\n 'flex flex-col': !propsClone.hidden,\n 'input-disabled': !!propsClone.disabled,\n 'input-has-error': stringToBoolean(hasError)\n }\n ),\n // classes for above input sections [label and hint icon]\n labelSectionClasses: classNames(\n 'input-label-wrapper flex items-end',\n\n {\n 'mb-8': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n }\n ),\n // search input component classes\n inputClasses: classNames(\n 'agora-input-search',\n 'bg-transparent',\n {\n 'has-leading-icon': hasIcon && icon?.indexOf('agora-line') === 0, // allowing only line family icon\n 'has-value': currentValue && currentValue?.toString().length > 0\n },\n className\n ),\n\n leadingIconWrapperClasses: classNames('input-leading-icon')\n };\n };\n\n const { inputWrapperClasses, labelSectionClasses, inputClasses, leadingIconWrapperClasses } = inputClassBuilder();\n\n const labelClasses = classNames('input-seach-label', stringToBoolean(darkMode) ? 'dark-label' : 'light-label');\n\n return (\n <div hidden={!!propsClone.hidden} className={inputWrapperClasses}>\n {/* Label */}\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n </div>\n\n {/* Search input wrapper */}\n <div className=\"input-wrapper flex relative items-center rounded-4 bg-white z-[1]\">\n <input\n {...propsClone}\n type=\"search\"\n className={inputClasses}\n disabled={!!propsClone.disabled}\n aria-invalid={stringToBoolean(hasError)}\n aria-label={hideLabel ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n ref={ref}\n required={required}\n onChange={handleChangeEvent}\n />\n\n {/* Input Leading Icon [only line family icon] */}\n {hasIcon && icon && icon.startsWith('agora-line') && (\n <div className={leadingIconWrapperClasses}>\n <Icon name={icon} aria-hidden />\n </div>\n )}\n\n <div className=\"search-icon bg-transparent -z-[1]\">\n <Icon name=\"agora-line-search\" aria-hidden />\n </div>\n </div>\n\n {/* Feedback */}\n {stringToBoolean(hasFeedback) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputSearch = forwardRef<HTMLInputElement, InputSearchProps>(InnerInputSearch);\n","import classNames from 'classnames';\nimport React, { ChangeEvent, ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, useId, useState } from 'react';\nimport { BooleanProp } from '../../../models/boolean-type';\nimport { stringToBoolean } from '../../../utils';\nimport { Button } from '../button/button';\nimport { Icon } from '../icon/icon';\nimport './input-search-bar.scss';\n\nexport interface InputSearchBarProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Decides if display/hide label.\n */\n hideLabel?: BooleanProp;\n /**\n * The flag to set if the label is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Defines if the user specifies a leading icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n /**\n * Defines if the voice action button is visible.\n */\n hasVoiceActionButton?: BooleanProp;\n /**\n * Alternative text for the voice action button\n */\n voiceActionAltText?: string;\n /**\n * Alternative text for the search action button\n */\n searchActionAltText?: string;\n /**\n * Callback to execute whenever the user activates the microphone button.\n */\n onVoiceActivate?: () => void;\n /**\n * Callback to execute whenever the user activates the search button.\n */\n onSearchActivate?: (term: string) => void;\n}\n\nconst InnerInputSearchBar: ForwardRefRenderFunction<HTMLInputElement, InputSearchBarProps> = (\n {\n className,\n label,\n hideLabel,\n darkMode,\n hasIcon,\n icon,\n hasVoiceActionButton = true,\n voiceActionAltText = '',\n searchActionAltText = '',\n onVoiceActivate,\n onSearchActivate,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange } = propsClone;\n\n const [currentTarget, setCurrentValue] = useState(propsClone.value);\n\n const handleChangeEvent = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n setCurrentValue(value);\n onChange?.(evt);\n };\n\n const onVoiceButtonClick = () => {\n onVoiceActivate?.();\n };\n\n const onSearchButtonClick = () => {\n onSearchActivate?.(currentTarget?.toString() ?? '');\n };\n\n const inputWrapperClassNames = classNames('agora-input-search-bar', className);\n\n const labelSectionClasses = classNames('input-label-wrapper flex items-end', {\n 'mb-8': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n });\n\n const labelClasses = classNames('input-search-bar-label', darkMode ? 'dark-label' : 'light-label');\n\n return (\n <div hidden={!!propsClone.hidden} className={inputWrapperClassNames}>\n {/* Label */}\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n </div>\n {/* Search input wrapper */}\n <div className=\"input-search-bar-container\">\n {hasIcon && icon && icon.startsWith('agora-line') && <Icon name={icon} aria-hidden />}\n <input\n {...propsClone}\n className=\"flex-grow-[1] outline-none\"\n ref={ref}\n type=\"text\"\n disabled={!!propsClone.disabled}\n onChange={handleChangeEvent}\n />\n\n <div className=\"actions-container flex flex-row gap-16\">\n {stringToBoolean(hasVoiceActionButton) && (\n <Button\n className=\"microphone-icon\"\n appearance=\"link\"\n iconOnly\n hasIcon\n leadingIcon=\"agora-line-mic-on\"\n leadingIconHover=\"agora-solid-mic-on\"\n aria-label={voiceActionAltText}\n onClick={onVoiceButtonClick}\n />\n )}\n <Button\n className=\"magnifier-icon\"\n appearance=\"solid\"\n iconOnly\n hasIcon\n leadingIcon=\"agora-line-search\"\n leadingIconHover=\"agora-solid-search\"\n aria-label={searchActionAltText}\n onClick={onSearchButtonClick}\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport const InputSearchBar = forwardRef<HTMLInputElement, InputSearchBarProps>(InnerInputSearchBar);\n","import classNames from 'classnames';\nimport React, { ChangeEvent, ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId, useState } from 'react';\nimport { BooleanProp, FeedbackState } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Feedback } from '../../shared/feedback';\nimport { Icon } from '../icon';\nimport './input-text.scss';\n\nexport interface InputTextProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Decides if display/hide label.\n */\n hideLabel?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Text informative displayed below input text.\n */\n feedbackText?: ReactNode;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedbacktext is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Highlight the input indicating some error\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n /**\n * Indicates the feedback state of feedback text. This param will change the left feedback icon and dye it.\n */\n hasError?: BooleanProp;\n}\n\nconst InnerInputText: ForwardRefRenderFunction<HTMLInputElement, InputTextProps> = (\n {\n label,\n hideLabel,\n hasError,\n hasFeedback,\n feedbackState = 'info',\n darkMode,\n feedbackText,\n hasIcon,\n icon,\n className,\n required = true,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange } = propsClone;\n\n const [currentValue, setCurrentValue] = useState(propsClone.value);\n\n /**\n * Local onChange event handler.\n */\n const handleChangeEvent = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n setCurrentValue(value);\n onChange?.(evt);\n };\n\n /**\n * Builds main Classes for whole component\n */\n const inputClassBuilder = () => {\n return {\n // main wrapper class\n inputWrapperClasses: classNames(\n 'agora-input-text-wrapper',\n\n {\n 'flex flex-col': !propsClone.hidden,\n 'input-disabled': !!propsClone.disabled,\n 'input-has-error': stringToBoolean(hasError)\n }\n ),\n // classes for above input sections [label and hint icon]\n labelSectionClasses: classNames(\n 'input-label-wrapper flex items-end',\n\n {\n 'mb-8': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n }\n ),\n // text input component classes\n inputClasses: classNames(\n 'agora-input-text',\n {\n 'has-leading-icon': icon?.startsWith('agora-line'), // allowing only line family icon\n 'has-value': currentValue && currentValue?.toString().length > 0\n },\n className\n ),\n leadingIconWrapperClasses: classNames('input-leading-icon')\n };\n };\n\n const { inputWrapperClasses, labelSectionClasses, inputClasses, leadingIconWrapperClasses } = inputClassBuilder();\n\n const labelClasses = classNames('input-text-label', stringToBoolean(darkMode) ? 'dark-label' : 'light-label');\n\n return (\n <div hidden={!!propsClone.hidden} className={inputWrapperClasses}>\n {/* Label */}\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n </div>\n\n {/* Text input wrapper */}\n <div className=\"input-wrapper flex relative items-center\">\n <input\n {...propsClone}\n type=\"text\"\n className={inputClasses}\n disabled={!!propsClone.disabled}\n aria-invalid={stringToBoolean(hasError)}\n aria-label={hideLabel ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n ref={ref}\n required={required}\n onChange={handleChangeEvent}\n />\n\n {/* Input Leading Icon [only line family icon] */}\n {hasIcon && icon && icon.startsWith('agora-line') && (\n <div className={leadingIconWrapperClasses}>\n <Icon name={icon} aria-hidden />\n </div>\n )}\n </div>\n\n {/* Feedback */}\n {stringToBoolean(hasFeedback) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputText = forwardRef<HTMLInputElement, InputTextProps>(InnerInputText);\n","import classNames from 'classnames';\nimport React, { ChangeEvent, ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId, useState } from 'react';\nimport { BooleanProp, FeedbackState } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Feedback } from '../../shared/feedback';\nimport './input-textarea.scss';\n\nexport interface InputTextAreaProps extends ComponentPropsWithRef<'textarea'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Sets the input in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedbacktext is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * Defines if the char counter on right corner should or should not be visible.\n */\n showCharCounter?: BooleanProp;\n}\n\nexport const InnerInputTextArea: ForwardRefRenderFunction<HTMLTextAreaElement, InputTextAreaProps> = (\n {\n label,\n hideLabel,\n hasError,\n hasFeedback,\n showCharCounter,\n feedbackText,\n feedbackState = 'info',\n darkMode,\n className,\n required = true,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n propsClone.rows = Math.max(propsClone.rows ?? 0, 3);\n\n const { onChange } = propsClone;\n\n const [currentValue, setCurrentValue] = useState(propsClone.value);\n\n /**\n * Local onChange event handler.\n */\n const handleChangeEvent = (evt: ChangeEvent<HTMLTextAreaElement>) => {\n const { value } = evt.currentTarget;\n setCurrentValue(value);\n onChange?.(evt);\n };\n\n /**\n * Builds main Classes for whole component\n */\n const inputClassBuilder = () => {\n return {\n // main wrapper class\n inputWrapperClasses: classNames('agora-input-textarea-wrapper', {\n 'flex flex-col': !propsClone.hidden,\n 'input-disabled': propsClone.disabled,\n 'input-has-error': stringToBoolean(hasError)\n }),\n // classes for above input sections [label and hint icon]\n labelSectionClasses: classNames('input-label-wrapper', 'flex', 'items-end', {\n 'mb-8': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n }),\n // text input component classes\n inputClasses: classNames(\n 'agora-input-textarea',\n {\n 'has-value': currentValue && currentValue?.toString().length > 0\n },\n className\n )\n };\n };\n\n const { inputWrapperClasses, labelSectionClasses, inputClasses } = inputClassBuilder();\n\n const labelClasses = classNames('input-textarea-label', stringToBoolean(darkMode) ? 'dark-label' : 'light-label');\n\n const charCounterClasses = classNames('char-counter', stringToBoolean(darkMode) ? 'dark-char-counter' : 'light-char-counter');\n\n return (\n <div hidden={propsClone.hidden} className={inputWrapperClasses}>\n {/* Label & Hint Text Wrapper */}\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n </div>\n\n {/* Text input wrapper */}\n <div className=\"input-wrapper flex relative items-center\">\n <textarea\n {...propsClone}\n className={inputClasses}\n aria-invalid={stringToBoolean(hasError)}\n aria-label={hideLabel ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n required={required}\n ref={ref}\n onChange={handleChangeEvent}\n />\n </div>\n\n {/* Feedback && CharCounter */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(showCharCounter)) && (\n <div className=\"flex justify-end\">\n {stringToBoolean(hasFeedback) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n {stringToBoolean(showCharCounter) && (\n <div className={charCounterClasses}>\n <span>{`${currentValue?.toString().length ?? 0}`}</span>\n {propsClone.maxLength && <span>{` / ${propsClone.maxLength}`}</span>}\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport const InputTextArea = forwardRef<HTMLTextAreaElement, InputTextAreaProps>(InnerInputTextArea);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode, useEffect, useRef } from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils/string-to-boolean';\nimport './link-wrapper.scss';\n\nexport type LinkWrapperAppearance = 'link' | 'text';\n\nexport type LinkWrapperVariant = 'primary' | 'informative' | 'neutral' | 'success' | 'warning' | 'danger';\n\nexport interface LinkWrapperProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {\n /**\n * The flag to set Dark mode.\n */\n darkMode?: BooleanProp;\n /**\n * The anchor appearance. Define the anchor Shape.\n */\n appearance?: LinkWrapperAppearance;\n /**\n * The variant of the anchor. This variants will define the background and border color of the given Anchor\n */\n variant?: LinkWrapperVariant;\n /**\n * Defines if the anchor should be fluid\n */\n fullWidth?: BooleanProp;\n /**\n * Defines if anchor is inline text or not. An inline element does not start on a new line and takes up as much width as necessary. See https://www.w3schools.com/html/html_blocks.asp.\n */\n inline?: BooleanProp;\n /**\n * Children anchor.\n */\n children: ReactNode;\n /**\n * Data attributes\n */\n [dataAttribute: `data-${string}`]: string;\n}\n\nconst LinkWrapper: FC<LinkWrapperProps> = ({\n darkMode = false,\n appearance = 'text',\n variant = 'primary',\n fullWidth = false,\n children,\n className = '',\n inline = false,\n ...props\n}) => {\n const containerRef = useRef<HTMLSpanElement | null>(null);\n\n const anchorContainerClassName = classNames(\n 'agora-link-wrapper',\n `agora-link-wrapper-${appearance}-${variant}`,\n { 'dark-mode': stringToBoolean(darkMode) },\n\n { 'full-width': fullWidth },\n\n { 'inline-flex items-center': !props.hidden },\n { 'justify-center min-h-[44px] min-w-[44px] py-8': !stringToBoolean(inline) },\n { 'justify-start': stringToBoolean(inline) },\n\n className\n );\n\n const onKeyDownHandler = (evt: KeyboardEvent) => {\n const target = evt.currentTarget as HTMLAnchorElement;\n\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n target.classList.add('active');\n }\n };\n\n const onKeyUpHandler = (evt: KeyboardEvent) => {\n const target = evt.currentTarget as HTMLAnchorElement;\n\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n target.classList.remove('active');\n }\n };\n\n const onMouseDownHandler = (evt: MouseEvent) => {\n const target = evt.currentTarget as HTMLAnchorElement;\n target.classList.add('active');\n };\n\n const onMouseUpHandler = (evt: MouseEvent) => {\n const target = evt.currentTarget as HTMLAnchorElement;\n target.classList.remove('active');\n };\n\n useEffect(() => {\n let innerAnchorElement: HTMLAnchorElement | null = null;\n\n if (containerRef.current) {\n innerAnchorElement = containerRef.current.querySelector('a');\n if (innerAnchorElement) {\n innerAnchorElement.addEventListener('keydown', onKeyDownHandler);\n innerAnchorElement.addEventListener('keyup', onKeyUpHandler);\n\n innerAnchorElement.addEventListener('mousedown', onMouseDownHandler);\n innerAnchorElement.addEventListener('mouseup', onMouseUpHandler);\n }\n }\n\n return () => {\n if (innerAnchorElement) {\n innerAnchorElement.removeEventListener('keydown', onKeyDownHandler);\n innerAnchorElement.removeEventListener('keyup', onKeyUpHandler);\n\n innerAnchorElement.removeEventListener('mousedown', onMouseDownHandler);\n innerAnchorElement.removeEventListener('mouseup', onMouseUpHandler);\n }\n };\n }, []);\n\n return (\n <span ref={containerRef} {...props} className={anchorContainerClassName}>\n {children}\n </span>\n );\n};\n\nexport { LinkWrapper };\n","import classNames from 'classnames';\nimport React, { cloneElement, ComponentPropsWithoutRef, CSSProperties, FC, ReactElement, useId } from 'react';\nimport './list.scss';\nimport { Icon } from '../icon';\n\nexport type ListType = 'unordered' | 'ordered';\n\nexport type ListStyle = 'none' | 'bullet' | 'number' | 'icon';\n\nexport interface ListProps extends ComponentPropsWithoutRef<'ul'> {\n /**\n * Type list.\n */\n type?: ListType;\n /**\n * Style of the list depending on the chosen type.\n */\n listStyle?: ListStyle;\n /**\n * Choose the starting number of an ordered number list.\n */\n startNumber?: number;\n /**\n * Choose the icon for an unordered list.\n */\n icon?: string;\n /**\n * Children content.\n */\n children?: ReactElement<HTMLLIElement> | Array<ReactElement<HTMLLIElement>>;\n /**\n * Array the item.\n */\n items?: Array<ReactElement<HTMLLIElement>>;\n}\n\nexport const List: FC<ListProps> = ({ type = 'unordered', listStyle = 'none', startNumber = 1, children, icon, items = [], ...props }) => {\n const ComponentType = type !== 'ordered' ? 'ul' : 'ol';\n const generatedId = useId();\n const propsClone = { ...props };\n propsClone.id = propsClone.id ?? generatedId;\n\n const classes = classNames(`list list-${type} list-${listStyle}`, propsClone.className);\n\n let listChildren: Array<ReactElement> = [];\n\n if (children) {\n if (!Array.isArray(children)) {\n [children].forEach((child) => listChildren.push(child as unknown as ReactElement));\n } else {\n listChildren = children;\n }\n }\n\n const listItems = items?.map((data, index) => {\n const idLi = `${generatedId}-${index}`;\n const key = `li-${index}`;\n return cloneElement(data, { id: idLi, key });\n });\n\n const allItems = [...listItems, ...listChildren];\n\n return (\n <ComponentType style={{ '--startNumber': startNumber } as CSSProperties} start={startNumber} className={classes} id={propsClone.id}>\n {allItems.map((item, index) => {\n const key = `li-${index}`;\n return (\n <li key={key}>\n {listStyle === 'icon' && type === 'unordered' && <Icon name={icon} aria-hidden />}\n <div className=\"list-items\">{item.props.children}</div>\n </li>\n );\n })}\n </ComponentType>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode } from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport './pill.scss';\n\n/**\n * The available variants of the pill. This variants will define the background and border color of the pill.\n */\nexport type PillVariant = 'primary' | 'secondary' | 'secondary-light' | 'neutral' | 'informative' | 'success' | 'warning' | 'danger';\n\n/**\n * The available pill appearances. Defines the pill shape.\n */\nexport type PillAppearance = 'solid' | 'outline';\n\n/**\n * The available pill size. Defines the pill size.\n */\nexport type PillSize = 'default' | 'large';\n\nexport interface PillProps extends ComponentPropsWithRef<'div'> {\n /**\n * The pill appearance. Define the pill Shape.\n */\n appearance?: PillAppearance;\n /**\n * The variant of the pill. This variants will define the background and border color of the given Pill\n */\n variant?: PillVariant;\n /**\n * Children content.\n */\n children?: ReactNode;\n /**\n * Pill or Circular pill style\n */\n circular?: BooleanProp;\n /**\n * Size of pill\n */\n size?: PillSize;\n}\n\nexport const InnerPill: ForwardRefRenderFunction<HTMLDivElement, PillProps> = (\n { appearance = 'solid', variant = 'primary', children, className = '', circular = false, size = 'default', ...props },\n ref\n) => {\n /**\n * Building pill class name dynamically according parameters.\n */\n const pillClassName = classNames(\n {\n 'inline-flex items-center justify-center': !props.hidden,\n 'pill-circular': stringToBoolean(circular),\n 'pill-large': size === 'large'\n },\n\n `pill pill-${appearance}-${variant}`,\n className\n );\n\n return (\n <div className={pillClassName} {...props} ref={ref}>\n <div className=\"children-wrapper\">{children}</div>\n </div>\n );\n};\n\nexport const Pill = forwardRef<HTMLDivElement, PillProps>(InnerPill);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, useId } from 'react';\nimport './progress-bar.scss';\n\nexport interface ProgressBarProps extends ComponentPropsWithRef<'div'> {\n /**\n * The current value of the progress.\n */\n value?: number;\n /**\n * The maximum value of the progress.\n */\n max?: number;\n /**\n * The label text to display.\n */\n label?: string;\n /**\n * Whether to hide the label or not.\n */\n hideLabel?: boolean;\n /**\n * Whether to hide the percentage value or not.\n */\n hidePercentageValue?: boolean;\n /**\n * Whether the progress is current/active or not.\n */\n current?: boolean;\n /**\n * Whether the progress has error or not.\n */\n hasError?: boolean;\n}\n\nexport const InnerProgressBar: ForwardRefRenderFunction<HTMLDivElement, ProgressBarProps> = (\n { value = 0, max = 0, className, label, hideLabel, hidePercentageValue, current, hasError, ...props },\n ref\n) => {\n const generatedId = useId();\n const propsClone = { ...props };\n propsClone.id = propsClone.id ?? generatedId;\n\n const validatedValue = Math.max(0, Math.min(value, max));\n const progressPercentage = max !== 0 ? ((validatedValue / max) * 100).toFixed(0) : 0;\n\n const classes = classNames('agora-progress-bar', className, {\n 'progress-error': hasError,\n 'progress-complete': validatedValue > 0 && validatedValue === max,\n 'progress-empty': validatedValue === 0,\n 'progress-progress': current && validatedValue < max,\n 'progress-hold': !current && validatedValue < max\n });\n\n const percentageClasses = classNames('progress-bar-percentage', {\n 'sr-only': hidePercentageValue,\n 'not-sr-only': !hidePercentageValue\n });\n\n return (\n <div className={classes} {...props} ref={ref}>\n {!hideLabel && <label htmlFor={propsClone.id}>{label}</label>}\n <progress\n id={propsClone.id}\n className=\"progress-bar\"\n value={validatedValue}\n max={max}\n aria-valuetext={`${validatedValue}/${max}`}\n aria-label={hideLabel ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n />\n <p className={percentageClasses} role=\"status\">\n {progressPercentage}%\n </p>\n </div>\n );\n};\n\nexport const ProgressBar = forwardRef<HTMLDivElement, ProgressBarProps>(InnerProgressBar);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId } from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport './radio.scss';\n\nexport interface RadioButtonProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Sets the input in a error state.\n */\n hasError?: BooleanProp;\n /**\n * Child elements to render as custom label.\n */\n children?: ReactNode;\n}\n\nexport const InnerRadio: ForwardRefRenderFunction<HTMLInputElement, RadioButtonProps> = (\n { label, hasError, hideLabel, required = true, children, ...props },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const inputWrapper = classNames('agora-radio-button', {\n disabled: props.disabled,\n error: stringToBoolean(hasError)\n });\n\n return (\n <div hidden={propsClone.hidden} className={inputWrapper}>\n <input\n {...propsClone}\n className=\"inner-input\"\n type=\"radio\"\n aria-label={hideLabel ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n ref={ref}\n required={required}\n tabIndex={propsClone.disabled ? -1 : 0}\n />\n\n <div className=\"radio-wrapper\">\n <span className=\"mark\" />\n\n <label htmlFor={propsClone.id} className=\"label\">\n {children ?? label}\n </label>\n </div>\n </div>\n );\n};\n\nexport const RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>(InnerRadio);\n","import { ComponentType, lazy, LazyExoticComponent } from 'react';\nimport { SVGIconProps } from '../../../../models/svg-icon.interface';\n\nexport const scribblesList: Record<string, LazyExoticComponent<ComponentType<SVGIconProps>>> = {\n // Wave\n 'agora-wave-left-l': lazy<ComponentType<SVGIconProps>>(() => import('./wave/wave-left-l')),\n 'agora-wave-right-l': lazy<ComponentType<SVGIconProps>>(() => import('./wave/wave-right-l')),\n 'agora-wave-right-m': lazy<ComponentType<SVGIconProps>>(() => import('./wave/wave-right-m')),\n\n // Detail\n 'agora-detail-fluid': lazy<ComponentType<SVGIconProps>>(() => import('./detail/detail-fluid')),\n 'agora-detail-talk': lazy<ComponentType<SVGIconProps>>(() => import('./detail/detail-talk')),\n 'agora-detail-chat': lazy<ComponentType<SVGIconProps>>(() => import('./detail/detail-chat')),\n 'agora-detail-movement': lazy<ComponentType<SVGIconProps>>(() => import('./detail/detail-movement')),\n 'agora-detail-attention': lazy<ComponentType<SVGIconProps>>(() => import('./detail/detail-attention')),\n\n // Arrow\n 'agora-arrow-right': lazy<ComponentType<SVGIconProps>>(() => import('./arrow/arrow-right')),\n 'agora-arrow-curve-right': lazy<ComponentType<SVGIconProps>>(() => import('./arrow/arrow-curve-right')),\n 'agora-arrow-down-left': lazy<ComponentType<SVGIconProps>>(() => import('./arrow/arrow-down-left')),\n 'agora-arrow-loop': lazy<ComponentType<SVGIconProps>>(() => import('./arrow/arrow-loop')),\n 'agora-arrow-down-right': lazy<ComponentType<SVGIconProps>>(() => import('./arrow/arrow-down-right')),\n 'agora-arrow-up-right': lazy<ComponentType<SVGIconProps>>(() => import('./arrow/arrow-up-right')),\n\n // Bold\n 'agora-bold-arrow': lazy<ComponentType<SVGIconProps>>(() => import('./bold/bold-arrow')),\n 'agora-bold-line': lazy<ComponentType<SVGIconProps>>(() => import('./bold/bold-line')),\n\n // Line\n 'agora-line-straight': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-straight')),\n 'agora-line-zig-zag': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-zig-zag')),\n 'agora-line-zig': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-zig')),\n\n // Circle\n 'agora-circle-right-l': lazy<ComponentType<SVGIconProps>>(() => import('./circle/circle-right-l')),\n 'agora-circle-left-l': lazy<ComponentType<SVGIconProps>>(() => import('./circle/circle-left-l')),\n 'agora-circle-right-xxl': lazy<ComponentType<SVGIconProps>>(() => import('./circle/circle-right-xxl')),\n 'agora-circle-left-xxl': lazy<ComponentType<SVGIconProps>>(() => import('./circle/circle-left-xxl'))\n};\n\nexport const allScribbles = Object.keys(scribblesList);\n\nexport type ScribblesName = (typeof allScribbles)[number];\n\nexport const isBundledScribbles = (name: string) => {\n return !!allScribbles.find((i) => i === name);\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, ComponentType, FC, HTMLProps, LazyExoticComponent, Suspense, SVGProps } from 'react';\nimport { SVGIconProps } from '../../../models/svg-icon.interface';\nimport { isBundledScribbles, scribblesList, ScribblesName } from './assets';\nimport './scribbles.scss';\n\nconst scribblesCache: Record<ScribblesName, LazyExoticComponent<ComponentType<SVGIconProps>>> = {};\n\nconst loadScribbles = (name: ScribblesName): LazyExoticComponent<ComponentType<SVGIconProps>> => {\n const cachedScribbles = scribblesCache[name];\n\n if (cachedScribbles) {\n return cachedScribbles;\n }\n\n const lazyScribble = scribblesList[name];\n\n scribblesCache[name] = lazyScribble;\n\n return lazyScribble;\n};\n\ntype SuperScribblesProps = SVGProps<SVGSVGElement> & HTMLProps<HTMLImageElement>;\n\nexport interface ScribblesProps extends SuperScribblesProps {\n /**\n * Scribbles name to be used.\n */\n name: ScribblesName;\n /**\n * Dark mode\n */\n darkMode?: boolean;\n /**\n * Callback to run when scribble is loaded.\n */\n onScribblesLoad?: () => void;\n\n /**\n * Callback to run when scribble fails to load.\n */\n onScribblesError?: () => void;\n}\n\nexport const Scribbles: FC<ScribblesProps> = ({ name, darkMode, onScribblesLoad, onScribblesError, ...props }) => {\n const classes = classNames('agora-scribbles', props.className, name, {\n 'dark-mode': darkMode\n });\n\n const onLoad = () => {\n onScribblesLoad?.();\n };\n\n const onError = () => {\n onScribblesError?.();\n };\n\n // CHECK IF HAS NAME AND IF EXISTS ON BUNDLE\n const isScribbles = name !== '' && isBundledScribbles(name);\n if (!isScribbles) {\n onError();\n return;\n }\n\n // LOAD IT\n const LazyScribble = loadScribbles(name);\n\n const fullProps = {\n ...props,\n className: classes,\n title: props.title ?? props.alt\n } as ComponentPropsWithoutRef<'svg'>;\n\n onLoad();\n\n return (\n LazyScribble && (\n <Suspense>\n <LazyScribble {...fullProps} />\n </Suspense>\n )\n );\n};\n","import React, {\n cloneElement,\n ComponentPropsWithRef,\n FC,\n FocusEvent,\n Fragment,\n HTMLProps,\n KeyboardEvent,\n ReactElement,\n MouseEvent as ReactMouseEvent,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n useState\n} from 'react';\nimport { Button } from '../button';\nimport { MultipleLinksProps } from './skip-navigation';\nimport { LinkWrapper } from '../link-wrapper';\nexport interface SkipNavigationMultipleProps extends ComponentPropsWithRef<'div'> {\n className: string | undefined;\n containerSkipNavRef: RefObject<HTMLDivElement>;\n multipleLinks: MultipleLinksProps;\n}\n\nexport const SkipNavigationMultiple: FC<SkipNavigationMultipleProps> = ({ className, containerSkipNavRef, multipleLinks, ...props }) => {\n const skipOptionsRef = useRef<HTMLDivElement>(null);\n\n const [ariaExpand, setAriaExpand] = useState(false);\n const handleClick = (evt: ReactMouseEvent<HTMLDivElement>) => {\n const content = document.getElementById(window.location.hash.slice(1));\n if (content) {\n content.focus();\n }\n skipOptionsRef.current?.classList.add('hidden');\n containerSkipNavRef.current?.classList.remove('show');\n setAriaExpand(false);\n\n props.onClick?.(evt);\n };\n\n const handleFocus = (evt: FocusEvent<HTMLDivElement>) => {\n containerSkipNavRef.current?.classList.add('show');\n props.onFocus?.(evt);\n };\n\n const handleBlur = (evt: FocusEvent<HTMLDivElement>) => {\n if (!ariaExpand) {\n evt.currentTarget.focus();\n containerSkipNavRef.current?.classList.remove('show');\n }\n props.onBlur?.(evt);\n };\n\n const handleKeyUp = (evt: KeyboardEvent<HTMLDivElement>) => {\n const code = evt.code;\n\n const allSkipMenuItems: HTMLElement[] = containerSkipNavRef.current?.querySelectorAll('[role=\"menuitem\"]') as unknown as HTMLElement[];\n const currentIndexFocus = [...allSkipMenuItems].findIndex((mi) => mi === evt.currentTarget);\n if (code === 'ArrowDown') {\n if (currentIndexFocus + 1 !== allSkipMenuItems.length) {\n allSkipMenuItems[currentIndexFocus + 1].focus();\n } else {\n allSkipMenuItems[0].focus();\n }\n }\n\n if (code === 'ArrowUp') {\n if (currentIndexFocus - 1 !== allSkipMenuItems.length && currentIndexFocus - 1 >= 0) {\n allSkipMenuItems[currentIndexFocus - 1].focus();\n } else {\n allSkipMenuItems[allSkipMenuItems.length - 1].focus();\n }\n }\n\n if (code === 'Tab' || code === 'Escape') {\n if (skipOptionsRef.current) {\n skipOptionsRef.current.classList.add('hidden');\n setAriaExpand(false);\n (skipOptionsRef.current.previousSibling as HTMLElement).focus();\n }\n }\n\n props.onKeyUp?.(evt);\n };\n const handleSkipOptionControlKeyDownCapture = (evt: KeyboardEvent<HTMLDivElement>) => {\n const code = evt.code;\n\n if (!skipOptionsRef.current) {\n return;\n }\n\n if (ariaExpand) {\n if (code === 'Tab' || code === 'ArrowDown' || code === 'ArrowUp') {\n // PREVENT SCROLL AND TAB INDEX CHANGE FOCUS\n evt.preventDefault();\n evt.stopPropagation();\n }\n }\n };\n\n const handleButtonSkipClick = () => {\n if (skipOptionsRef.current && !ariaExpand) {\n skipOptionsRef.current.classList.remove('hidden');\n setAriaExpand(true);\n } else if (skipOptionsRef.current && ariaExpand) {\n skipOptionsRef.current.classList.add('hidden');\n setAriaExpand(false);\n }\n };\n const handleButtonFocus = () => {\n containerSkipNavRef.current?.classList.add('show');\n };\n const handleButtonBlur = () => {\n containerSkipNavRef.current?.classList.remove('show');\n };\n\n const handleButtonKeyUp = (evt: KeyboardEvent<HTMLButtonElement>) => {\n if (skipOptionsRef.current) {\n switch (evt.code) {\n case 'Escape':\n case 'Tab':\n skipOptionsRef.current.classList.add('hidden');\n setAriaExpand(false);\n break;\n case 'ArrowDown':\n if (ariaExpand) {\n (document.activeElement?.nextElementSibling?.querySelectorAll('[role=\"menuitem\"]')[0] as HTMLElement).focus();\n }\n break;\n case 'ArrowUp':\n if (ariaExpand) {\n (\n document.activeElement?.nextElementSibling?.querySelectorAll('[role=\"menuitem\"]')[\n document.activeElement?.nextElementSibling?.querySelectorAll('[role=\"menuitem\"]').length - 1\n ] as HTMLElement\n ).focus();\n }\n break;\n }\n }\n };\n\n const handleButtonControlKeyDownCapture = (evt: KeyboardEvent<HTMLButtonElement>) => {\n const code = evt.code;\n\n if (!skipOptionsRef.current) {\n return;\n }\n\n if (ariaExpand) {\n if (code === 'Tab' || code === 'ArrowDown' || code === 'ArrowUp') {\n // PREVENT SCROLL AND TAB INDEX CHANGE FOCUS\n evt.preventDefault();\n evt.stopPropagation();\n }\n }\n\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n if (skipOptionsRef.current && !ariaExpand) {\n skipOptionsRef.current.classList.remove('hidden');\n } else if (skipOptionsRef.current && ariaExpand) {\n skipOptionsRef.current.classList.add('hidden');\n }\n }\n };\n\n const getFinal = (elements: ReactElement[], lvl: number) => {\n let final;\n for (let e = 0; e < elements.length; e++) {\n if (e === 0) {\n final = cloneElement(elements[0], {\n role: 'menuitem',\n className: `skip-level-${lvl}`,\n onClick: (evt: ReactMouseEvent<HTMLDivElement>) => handleClick(evt),\n onFocus: (evt: FocusEvent<HTMLDivElement>) => handleFocus(evt),\n onBlur: (evt: FocusEvent<HTMLDivElement>) => handleBlur(evt),\n onKeyUp: (evt: KeyboardEvent<HTMLDivElement>) => handleKeyUp(evt),\n onKeyDownCapture: (evt: KeyboardEvent<HTMLDivElement>) => handleSkipOptionControlKeyDownCapture(evt)\n });\n } else if (e > 0) {\n if (final) {\n final = cloneElement(elements[e], { children: final });\n }\n }\n }\n return final;\n };\n\n const getNotDirectAnchor = (initLink: ReactElement, lvl: number) => {\n let childData: ReactElement | null = initLink;\n let elements: ReactElement[] = [];\n let isLink: boolean = false;\n let final;\n while (childData !== null) {\n if ((childData.props as HTMLProps<ReactElement>)?.children) {\n if ((childData.props as HTMLProps<ReactElement>).href) {\n isLink = true;\n elements = [...elements, childData];\n elements = elements.reverse();\n final = getFinal(elements, lvl);\n childData = null;\n } else {\n elements = [...elements, childData];\n if (childData === (childData.props as HTMLProps<ReactElement>).children) {\n childData = null;\n } else {\n childData = (childData.props as HTMLProps<ReactElement>).children as ReactElement;\n }\n }\n } else {\n childData = null;\n }\n }\n if (isLink) {\n return final;\n } else {\n return initLink;\n }\n };\n\n let groupAnchors: ReactElement[] = [];\n const recursiveLinks = (links: any[], lvl: number = 0) => {\n links.forEach((level: any) => {\n const getKeys = Object.keys(level);\n const keyIndex = getKeys.findIndex((o) => o != 'link');\n const key = getKeys[keyIndex];\n\n let newLink;\n const init = level[key];\n const initLink: ReactElement = init.link as ReactElement;\n const initLength = Object.keys(init).length;\n\n if ((initLink?.props as HTMLProps<ReactElement>)?.href) {\n newLink = cloneElement(init.link, {\n role: 'menuitem',\n className: `skip-level-${lvl}`,\n onClick: (evt: ReactMouseEvent<HTMLDivElement>) => handleClick(evt),\n onFocus: (evt: FocusEvent<HTMLDivElement>) => handleFocus(evt),\n onBlur: (evt: FocusEvent<HTMLDivElement>) => handleBlur(evt),\n onKeyUp: (evt: KeyboardEvent<HTMLDivElement>) => handleKeyUp(evt),\n onKeyDownCapture: (evt: KeyboardEvent<HTMLDivElement>) => handleSkipOptionControlKeyDownCapture(evt)\n });\n } else {\n newLink = getNotDirectAnchor(initLink, lvl);\n }\n\n if (initLength > 1) {\n const idx = Math.random();\n groupAnchors = [\n ...groupAnchors,\n <LinkWrapper key={idx} appearance=\"link\" variant=\"neutral\" className=\"skip-option\">\n {newLink}\n </LinkWrapper>\n ];\n\n recursiveLinks([init], lvl + 1);\n } else {\n const idx = Math.random();\n groupAnchors = [\n ...groupAnchors,\n <LinkWrapper key={idx} appearance=\"link\" variant=\"neutral\" className=\"skip-option\">\n {newLink}\n </LinkWrapper>\n ];\n }\n });\n };\n\n const menuSkipNavigation = () => {\n const menu = multipleLinks?.skipList.map((element, index) => {\n groupAnchors = [];\n const idx = index;\n recursiveLinks(element.links, 0);\n return (\n <Fragment key={idx}>\n <div role=\"separator\" id={`skip-separator-${idx}`} className=\"skip-section-separator\">\n {element.sectionLabel}\n </div>\n <div role=\"group\" aria-labelledby={`skip-separator-${idx}`} className=\"flex flex-col\">\n {groupAnchors}\n </div>\n </Fragment>\n );\n });\n\n return menu;\n };\n const handleClickOutside = useCallback((event: MouseEvent) => {\n if (\n (event.target as HTMLElement).classList.contains('agora-skip-navigation') &&\n containerSkipNavRef.current &&\n skipOptionsRef.current\n ) {\n skipOptionsRef.current.classList.add('hidden');\n containerSkipNavRef.current.classList.remove('show');\n setAriaExpand(false);\n }\n }, []);\n\n useEffect(() => {\n document?.addEventListener('click', handleClickOutside);\n\n return () => {\n document?.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n return (\n <div className={className} ref={containerSkipNavRef} {...props}>\n <Button\n {...multipleLinks.skipButton}\n appearance=\"link\"\n className=\"skip-button\"\n aria-expanded={ariaExpand ? 'true' : 'false'}\n onClick={handleButtonSkipClick}\n onFocus={handleButtonFocus}\n onBlur={handleButtonBlur}\n onKeyUp={handleButtonKeyUp}\n onKeyDownCapture={handleButtonControlKeyDownCapture}\n />\n <div role=\"menu\" aria-label={multipleLinks.skipAriaLabel} className=\"skip-options hidden\" ref={skipOptionsRef}>\n {menuSkipNavigation()}\n </div>\n </div>\n );\n};\n","import React, {\n cloneElement,\n ComponentPropsWithRef,\n FC,\n FocusEvent,\n HTMLProps,\n ReactElement,\n MouseEvent as ReactMouseEvent,\n RefObject\n} from 'react';\nimport { LinkWrapper } from '../link-wrapper';\nexport interface SkipNavigationSingleProps extends ComponentPropsWithRef<'div'> {\n className: string | undefined;\n containerSkipNavRef: RefObject<HTMLDivElement>;\n singleLink: ReactElement;\n}\nconst handleClick = (evt: ReactMouseEvent<HTMLDivElement>, props: any) => {\n const content = document.getElementById(window.location.hash.slice(1));\n if (content) {\n content.focus();\n }\n props.onClick?.(evt);\n};\n\nconst handleFocus = (evt: FocusEvent<HTMLDivElement>, containerSkipNavRef: RefObject<HTMLDivElement>, props: any) => {\n containerSkipNavRef.current?.classList.add('show');\n props.onFocus?.(evt);\n};\n\nconst handleBlur = (evt: FocusEvent<HTMLDivElement>, containerSkipNavRef: RefObject<HTMLDivElement>, props: any) => {\n containerSkipNavRef.current?.classList.remove('show');\n props.onBlur?.(evt);\n};\n\nconst getFinal = (elements: ReactElement[], containerSkipNavRef: RefObject<HTMLDivElement>, props: any) => {\n let final;\n for (let e = 0; e < elements.length; e++) {\n if (e === 0) {\n final = cloneElement(elements[0], {\n className: 'skip-item',\n onClick: (evt: ReactMouseEvent<HTMLDivElement>) => handleClick(evt, props),\n onFocus: (evt: FocusEvent<HTMLDivElement>) => handleFocus(evt, containerSkipNavRef, props),\n onBlur: (evt: FocusEvent<HTMLDivElement>) => handleBlur(evt, containerSkipNavRef, props)\n });\n } else if (e > 0) {\n if (final) {\n final = cloneElement(elements[e], { children: final });\n }\n }\n }\n return final;\n};\n\nconst getNotDirectAnchor = (singleLink: ReactElement, containerSkipNavRef: RefObject<HTMLDivElement>, props: any) => {\n let childData: ReactElement | null = singleLink;\n let elements: ReactElement[] = [];\n let isLink: boolean = false;\n let final;\n\n while (childData !== null) {\n if ((childData.props as HTMLProps<ReactElement>)?.children) {\n if ((childData.props as HTMLProps<ReactElement>).href) {\n isLink = true;\n elements = [...elements, childData];\n elements = elements.reverse();\n final = getFinal(elements, containerSkipNavRef, props);\n childData = null;\n } else {\n elements = [...elements, childData];\n if (childData === (childData.props as HTMLProps<ReactElement>).children) {\n childData = null;\n } else {\n childData = (childData.props as HTMLProps<ReactElement>).children as ReactElement;\n }\n }\n } else {\n childData = null;\n }\n }\n if (isLink) {\n return final;\n } else {\n return singleLink;\n }\n};\n\nconst buildAnchor = (singleLink: ReactElement, containerSkipNavRef: RefObject<HTMLDivElement>, props: any) => {\n let newSingleLink;\n\n if (singleLink && (singleLink?.props as HTMLProps<ReactElement>).href) {\n newSingleLink = cloneElement(singleLink, {\n className: 'skip-item',\n onClick: (evt: ReactMouseEvent<HTMLDivElement>) => handleClick(evt, props),\n onFocus: (evt: FocusEvent<HTMLDivElement>) => handleFocus(evt, containerSkipNavRef, props),\n onBlur: (evt: FocusEvent<HTMLDivElement>) => handleBlur(evt, containerSkipNavRef, props)\n });\n } else {\n newSingleLink = getNotDirectAnchor(singleLink, containerSkipNavRef, props);\n }\n\n return newSingleLink;\n};\n\nexport const SkipNavigationSingle: FC<SkipNavigationSingleProps> = ({ className, containerSkipNavRef, singleLink, ...props }) => {\n const newSingleLink = buildAnchor(singleLink, containerSkipNavRef, { ...props });\n\n return (\n <>\n {newSingleLink && (\n <div className={className} ref={containerSkipNavRef} {...props}>\n <LinkWrapper inline={true}>{newSingleLink}</LinkWrapper>\n </div>\n )}\n </>\n );\n};\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactElement,\n ReactNode,\n Ref,\n useImperativeHandle,\n useRef\n} from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { ButtonProps } from '../button';\nimport { SkipNavigationMultiple } from './skip-navigation-multiple';\nimport { SkipNavigationSingle } from './skip-navigation-single';\nimport './skip-navigation.scss';\n\nexport interface LevelLinks {\n level1: {\n link: ReactNode;\n level2?: {\n link: ReactNode;\n level3?: {\n link: ReactNode;\n };\n };\n };\n}\n\nexport interface SkipListProps {\n sectionLabel: string;\n links: LevelLinks[];\n}\nexport interface MultipleLinksProps {\n skipButton: ButtonProps;\n skipAriaLabel: string;\n skipList: SkipListProps[];\n}\n\nexport interface SkipNavigationProps extends ComponentPropsWithRef<'div'> {\n /**\n * Skip navigation multiple links or single link\n */\n multiple?: BooleanProp;\n\n /**\n * Single Link\n */\n singleLink?: ReactElement;\n\n /**\n * Multiple Links\n */\n multipleLinks?: MultipleLinksProps;\n}\n\nexport const InnerSkipNavigation: ForwardRefRenderFunction<HTMLDivElement, SkipNavigationProps> = (\n { multiple = 'false', singleLink, multipleLinks, ...props },\n ref?: Ref<HTMLDivElement | null>\n) => {\n const containerSkipNavRef = useRef<HTMLDivElement>(null);\n\n useImperativeHandle(ref, () => containerSkipNavRef.current);\n\n const navigationClassName = classNames('agora-skip-navigation container mx-auto py-16', props.className);\n\n return (\n <>\n {stringToBoolean(multiple) && multipleLinks && (\n <SkipNavigationMultiple className={navigationClassName} containerSkipNavRef={containerSkipNavRef} multipleLinks={multipleLinks} />\n )}\n {!stringToBoolean(multiple) && singleLink && (\n <SkipNavigationSingle\n className={navigationClassName}\n containerSkipNavRef={containerSkipNavRef}\n singleLink={singleLink}\n {...props}\n />\n )}\n </>\n );\n};\n\nexport const SkipNavigation = forwardRef<HTMLDivElement, SkipNavigationProps>(InnerSkipNavigation);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction, ReactNode, useMemo } from 'react';\nimport { Button } from '../button';\nimport { Icon } from '../icon';\nimport { StatusCardType } from './status-card';\n\nexport interface InteractiveStatusCardProps extends ComponentPropsWithoutRef<'div'> {\n className?: string;\n interactive?: boolean;\n children?: ReactNode;\n type?: StatusCardType;\n onActivate?: () => void;\n}\n\nexport const InnerInteractiveStatusCard: ForwardRefRenderFunction<HTMLDivElement, InteractiveStatusCardProps> = (\n { className, onActivate, interactive, children, 'aria-label': ariaLabel, ...props },\n ref\n) => {\n const containerClasses = classNames(`status-card status-${props.type}`, className, {\n interactive\n });\n\n const onClickHandler = () => {\n onActivate?.();\n };\n\n const leadingIconName = useMemo(() => {\n switch (props.type) {\n case 'info':\n return 'agora-solid-info-mark';\n case 'success':\n return 'agora-solid-check-circle';\n case 'warning':\n return 'agora-solid-info-mark';\n case 'danger':\n return 'agora-solid-alert-triangle';\n\n default:\n return 'agora-solid-info-mark';\n }\n }, [props.type]);\n\n return (\n <div role=\"status\" {...props} ref={ref}>\n <Button\n className={containerClasses}\n type=\"button\"\n onClick={onClickHandler}\n fullWidth\n hasIcon\n aria-label={ariaLabel}\n trailingIcon=\"agora-line-arrow-right-circle\"\n trailingIconHover=\"agora-solid-arrow-right-circle\"\n >\n <Icon name={leadingIconName} aria-hidden />\n {children}\n </Button>\n </div>\n );\n};\n\nexport const InteractiveStatusCard = forwardRef<HTMLDivElement, InteractiveStatusCardProps>(InnerInteractiveStatusCard);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction, ReactNode } from 'react';\nimport { StatusCardType } from './status-card';\n\nexport interface NonInteractiveStatusCardProps extends ComponentPropsWithoutRef<'div'> {\n className?: string;\n children?: ReactNode;\n type?: StatusCardType;\n}\n\nexport const InnerNonInteractiveStatusCard: ForwardRefRenderFunction<HTMLDivElement, NonInteractiveStatusCardProps> = (\n { className, 'aria-label': ariaLabel, children, ...props },\n ref\n) => {\n const containerClasses = classNames(`status-card status-${props.type} non-interactive`, className);\n\n return (\n <div {...props} role=\"status\" className={containerClasses} ref={ref}>\n <span className=\"sr-only\">{ariaLabel}</span>\n <div aria-hidden={!!ariaLabel}>{children}</div>\n </div>\n );\n};\n\nexport const NonInteractiveStatusCard = forwardRef<HTMLDivElement, NonInteractiveStatusCardProps>(InnerNonInteractiveStatusCard);\n","import React, { ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction, ReactNode, useMemo } from 'react';\nimport { Icon } from '../icon';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { InteractiveStatusCard } from './interactive-status-card';\nimport { NonInteractiveStatusCard } from './non-interactive-status-card';\nimport './status-card.scss';\n\nexport type StatusCardType = 'info' | 'success' | 'warning' | 'danger';\n\nexport interface StatusCardProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Status card description content\n */\n description: ReactNode;\n\n /**\n * The available Status card types. Defines the appearance of the cards.\n */\n type: StatusCardType;\n\n /**\n * The flag to make the status card interactive. When it is interactive,\n * card can be focused by clicking on it.\n */\n interactive?: BooleanProp;\n\n /**\n * Callback to run whenever the status card is interactive.\n */\n onActivate?: () => void;\n}\n\nexport const InnerStatusCard: ForwardRefRenderFunction<HTMLDivElement, StatusCardProps> = (\n { className, description, type = 'info', interactive, onActivate, ...props },\n ref\n) => {\n const memoContent = useMemo(() => {\n const handleIcon = (iconType: StatusCardType) => {\n switch (iconType) {\n case 'info':\n return 'agora-solid-info-mark';\n case 'success':\n return 'agora-solid-check-circle';\n case 'warning':\n return 'agora-solid-info-mark';\n case 'danger':\n return 'agora-solid-alert-triangle';\n default:\n return undefined;\n }\n };\n\n return (\n <>\n {!stringToBoolean(interactive) && <Icon className=\"status-icon\" name={handleIcon(type)} aria-hidden />}\n <span className=\"status-description\">{description}</span>\n </>\n );\n }, [className, description, type, interactive]);\n\n if (stringToBoolean(interactive)) {\n return (\n <InteractiveStatusCard\n {...props}\n className={className}\n type={type}\n ref={ref}\n onActivate={onActivate}\n interactive={stringToBoolean(interactive)}\n >\n {memoContent}\n </InteractiveStatusCard>\n );\n }\n\n return (\n <NonInteractiveStatusCard {...props} className={className} type={type} ref={ref}>\n {memoContent}\n </NonInteractiveStatusCard>\n );\n};\n\nexport const StatusCard = forwardRef<HTMLDivElement, StatusCardProps>(InnerStatusCard);\n","import classNames from 'classnames';\nimport React, { cloneElement, ComponentPropsWithoutRef, FC, ReactElement, useId } from 'react';\nimport './step-list.scss';\n\nexport interface StepListProps extends ComponentPropsWithoutRef<'ol'> {\n /**\n * Children content.\n */\n children?: ReactElement<HTMLLIElement> | Array<ReactElement<HTMLLIElement>>;\n /**\n * Array the item.\n */\n items?: Array<ReactElement<HTMLLIElement>>;\n}\n\nexport const StepList: FC<StepListProps> = ({ children, items = [], ...props }) => {\n const generatedId = useId();\n const propsClone = { ...props };\n propsClone.id = propsClone.id ?? generatedId;\n const StepLisClass = classNames(`step-list`);\n\n let stepListChildren: Array<ReactElement> = [];\n if (children) {\n if (!Array.isArray(children)) {\n stepListChildren = [children];\n } else {\n stepListChildren = children;\n }\n }\n\n const StepListItems = items?.map((data, index) => {\n const idLi = `${generatedId}-${index}`;\n const key = `li-${index}`;\n return cloneElement(data, { id: idLi, key });\n });\n\n const allItems = [...StepListItems, ...stepListChildren];\n return (\n <ol className={StepLisClass} id={propsClone.id} {...propsClone}>\n {allItems}\n </ol>\n );\n};\n","import classNames from 'classnames';\nimport React, {\n ChangeEvent,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent,\n useId,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '../../../models';\nimport { Icon } from '../icon';\nimport './switch.scss';\n\nexport type SwitchPosition = 'start' | 'center' | 'space-between' | 'space-around' | 'space-evenly';\n\nexport interface SwitchProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Whether the switch is reversed.\n */\n reverse?: boolean;\n /**\n * The position of the switch.\n */\n position?: SwitchPosition;\n /**\n * Defines if the Switch should be fluid\n */\n fullWidth?: boolean;\n}\n\nexport const InnerSwitch: ForwardRefRenderFunction<HTMLInputElement, SwitchProps> = (\n { className, label, hideLabel, disabled, reverse, position, fullWidth, onChange, ...props },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const [isOn, setIsOn] = useState(propsClone.checked ?? propsClone.defaultChecked);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (disabled) {\n return;\n }\n setIsOn((last) => !last);\n onChange?.(event);\n };\n\n const handleCustomSwitchKeydown = (evt: KeyboardEvent<HTMLDivElement>) => {\n if (wrapperRef !== null && (evt.code === 'Space' || evt.code === 'Enter' || evt.code === 'NumpadEnter')) {\n evt.preventDefault();\n wrapperRef.current?.querySelector('input')?.click();\n }\n };\n\n const handleCustomSwitchClick = (evt: MouseEvent<HTMLDivElement>) => {\n if (wrapperRef !== null) {\n evt.preventDefault();\n wrapperRef.current?.querySelector('input')?.click();\n }\n };\n\n const switchWrapperClasses = classNames('switch-wrapper', className, {\n 'switch-side': reverse,\n [`switch-${position}`]: position,\n 'switch-full-width': fullWidth,\n 'switch-disabled': disabled,\n 'switch-focus': hideLabel,\n 'switch-label-focus': !hideLabel\n });\n\n const markerClasses = classNames('toggle-ball', {\n 'icon-disabled': disabled,\n 'icon-off': !isOn && !disabled\n });\n\n const switchLabelClasses = classNames('switch-label', {\n 'label-disabled': disabled\n });\n\n const ariaLabel = props['aria-label'] ?? label;\n\n return (\n <div ref={wrapperRef} className={switchWrapperClasses}>\n <input {...propsClone} type=\"checkbox\" tabIndex={-1} disabled={disabled} onChange={handleChange} ref={ref} id={propsClone.id} />\n <div\n className={`toggle-switch ${isOn ? 'on' : 'off'}`}\n role=\"switch\"\n aria-checked={isOn ? 'true' : 'false'}\n tabIndex={!disabled ? 0 : -1}\n aria-label={ariaLabel}\n onClick={handleCustomSwitchClick}\n onKeyDown={handleCustomSwitchKeydown}\n >\n <span className={markerClasses}>\n {isOn ? (\n <Icon name=\"agora-solid-check\" aria-hidden className=\"on\" dimensions=\"xs\" />\n ) : (\n <Icon name=\"agora-solid-x\" aria-hidden className=\"off\" dimensions=\"xs\" />\n )}\n </span>\n </div>\n {!hideLabel && label && (\n <label htmlFor={propsClone.id} className={switchLabelClasses}>\n {label}\n </label>\n )}\n </div>\n );\n};\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(InnerSwitch);\n","import React, { ComponentPropsWithoutRef, FC, ReactNode } from 'react';\nimport { BooleanProp } from '../../../models';\n\nexport interface TabBodyProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Tab body content.\n */\n children?: ReactNode;\n /**\n * Flag that sets the tab index of the tab body container accordingly to the following accessibility rule: When the tab panel does not contain any focusable elements or the first element with content is not focusable, the tabpanel should set tabindex=\"0\" to include it in the tab sequence of the page.\n */\n focusableContent?: BooleanProp;\n}\n\nexport const TabBody: FC<TabBodyProps> = (props: TabBodyProps) => <div {...props} />;\n","import React, { ComponentPropsWithoutRef, FC, ReactNode } from 'react';\n\nexport interface TabHeaderProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Tab header content.\n */\n children?: ReactNode;\n}\n\nexport const TabHeader: FC<TabHeaderProps> = (props: TabHeaderProps) => <div {...props} />;\n","import React, { ComponentPropsWithoutRef, FC, ReactElement } from 'react';\nimport { BooleanProp } from '../../../models';\nimport { TabBodyProps } from './tab-body';\nimport { TabHeaderProps } from './tab-header';\n\nexport interface TabProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Tab content structure that contains a header and a body.\n */\n children?: Array<ReactElement<TabHeaderProps> | ReactElement<TabBodyProps>>;\n /**\n * Set tab as the active tab.\n */\n active?: BooleanProp;\n}\n\nexport const Tab: FC<TabProps> = (props: TabProps) => <div {...props} />;\n","import classNames from 'classnames';\nimport React, {\n Children,\n ComponentPropsWithoutRef,\n FC,\n isValidElement,\n KeyboardEvent,\n ReactElement,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { TabProps } from './tab';\nimport { TabBodyProps } from './tab-body';\nimport { TabHeaderProps } from './tab-header';\nimport './tabs.scss';\n\nexport interface TabsProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Collection of tabs.\n */\n children: ReactElement<TabProps> | Array<ReactElement<TabProps>>;\n /**\n * Defines if tab headers should be rendered as full width buttons.\n */\n fullWidth?: BooleanProp;\n /**\n * Automatic activation.\n */\n automaticActivation?: BooleanProp;\n /**\n * Tab activation event.\n */\n onTabActivation?: (index: number) => void;\n}\n\nexport const Tabs: FC<TabsProps> = ({\n children,\n automaticActivation = true,\n fullWidth = false,\n className = '',\n onTabActivation,\n ...props\n}) => {\n const tabPanelRef = useRef<HTMLDivElement | null>(null);\n\n const tabListRef = useRef<HTMLDivElement | null>(null);\n\n const [activeTab, setActiveTab] = useState(0);\n\n const [tabsHeaderData, setTabsHeaderData] = useState<Array<ReactElement<TabHeaderProps>>>([]);\n\n const [tabsBodyData, setTabsBodyData] = useState<Array<ReactElement<TabBodyProps>>>([]);\n\n const generatedId = useId();\n\n const activateTab = (index: number) => {\n setActiveTab(index);\n onTabActivation?.(index);\n };\n\n useEffect(() => {\n const header: Array<ReactElement<TabHeaderProps>> = [];\n const body: Array<ReactElement<TabBodyProps>> = [];\n\n const parsedChildren = Children.toArray(children) as ReactElement<TabProps>[];\n\n Children.forEach(parsedChildren, (element: ReactElement<TabProps>, index) => {\n if (!isValidElement(element)) {\n return;\n }\n\n if (stringToBoolean(element.props.active)) {\n activateTab(index);\n }\n\n header.push(element.props?.children?.[0] as ReactElement<TabHeaderProps>);\n body.push(element.props?.children?.[1] as ReactElement<TabBodyProps>);\n });\n\n setTabsHeaderData(header);\n setTabsBodyData(body);\n }, [children]);\n\n const handleTabListItemKeyDown = (evt: KeyboardEvent<HTMLButtonElement>) => {\n if (evt.code === 'Tab') {\n const tabIndexValue = tabPanelRef.current?.tabIndex;\n if (tabIndexValue === 0) {\n evt.preventDefault();\n tabPanelRef.current?.focus();\n }\n return;\n }\n\n const tabListItems = tabListRef.current?.querySelectorAll('.tab-list-item') ?? [];\n if (tabListItems.length == 0) {\n return;\n }\n\n let newActiveTab = activeTab;\n const focusedIndex = Array.from(tabListItems).findIndex((o) => o === document.activeElement);\n\n switch (evt.code) {\n case 'Home':\n (tabListItems[0] as HTMLButtonElement).focus();\n newActiveTab = 0;\n break;\n\n case 'End':\n (tabListItems[tabListItems.length - 1] as HTMLButtonElement).focus();\n newActiveTab = tabListItems.length - 1;\n break;\n\n case 'ArrowRight':\n if (focusedIndex === tabListItems.length - 1) {\n (tabListItems[0] as HTMLButtonElement).focus();\n newActiveTab = 0;\n } else {\n newActiveTab = focusedIndex + 1;\n (tabListItems[newActiveTab] as HTMLButtonElement).focus();\n }\n break;\n\n case 'ArrowLeft':\n if (focusedIndex === 0) {\n (tabListItems[tabListItems.length - 1] as HTMLButtonElement).focus();\n newActiveTab = tabListItems.length - 1;\n } else {\n newActiveTab = focusedIndex - 1;\n (tabListItems[newActiveTab] as HTMLButtonElement).focus();\n }\n break;\n\n default:\n break;\n }\n\n if (automaticActivation) {\n activateTab(newActiveTab);\n }\n };\n\n const handleTabPanelKeydown = (evt: KeyboardEvent<HTMLDivElement>) => {\n if (evt.currentTarget === evt.target && evt.code === 'Tab' && evt.shiftKey) {\n evt.preventDefault();\n\n const activeTabButton = tabListRef.current?.querySelector('.tab-list-item.active') as HTMLButtonElement;\n activeTabButton?.focus();\n }\n };\n\n const tabPanelFocusProps = useMemo(() => {\n const activeTabData = tabsBodyData[activeTab];\n\n if (stringToBoolean(activeTabData?.props.focusableContent)) {\n return {};\n }\n\n return {\n tabIndex: 0,\n onKeyDown: handleTabPanelKeydown\n };\n }, [tabsBodyData, activeTab]);\n\n const tabsClassName = classNames('agora-tabs', { 'full-width': fullWidth }, className);\n\n return (\n <div className={tabsClassName} {...props}>\n <div ref={tabListRef} role=\"tablist\" className=\"tab-list\">\n {Children.map(tabsHeaderData, (child: ReactElement<TabHeaderProps>, index) => {\n const key = `agora-tab-${generatedId}-${index}`;\n const tabListItemClassNames = classNames('tab-list-item', { active: activeTab === index });\n return (\n <button\n id={key}\n key={key}\n role=\"tab\"\n tabIndex={activeTab === index ? 0 : -1}\n onClick={() => activateTab(index)}\n onKeyDown={handleTabListItemKeyDown}\n aria-selected={activeTab === index}\n className={tabListItemClassNames}\n >\n {child.props.children}\n </button>\n );\n })}\n </div>\n {tabsBodyData[activeTab] && (\n <div role=\"tabpanel\" className=\"tab-panel\" aria-labelledby={`agora-tab-${generatedId}-${activeTab}`}>\n <div role=\"presentation\" className=\"tab-panel-content\" ref={tabPanelRef} {...tabPanelFocusProps}>\n {tabsBodyData[activeTab].props.children}\n </div>\n </div>\n )}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useMemo } from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Button, ButtonAppearance, ButtonVariant } from '../button';\nimport './tag.scss';\n\nexport interface TagProps extends ComponentPropsWithRef<'button'> {\n /**\n * Defines if the button uses an icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Defines the name of the icon to use.\n */\n icon?: string;\n /**\n * Defines the name of the icon to be displayed on mouse hover. If none specified, it will the appropriate variant of the icon.\n */\n iconHover?: string;\n /**\n * Alternative text for the icon.\n */\n iconAltText?: string;\n /**\n * Children content.\n */\n children?: ReactNode;\n /**\n * Add a darkMode to the button tag.\n */\n darkMode?: BooleanProp;\n}\n\nexport const InnerTag: ForwardRefRenderFunction<HTMLButtonElement, TagProps> = (\n { darkMode = false, icon = '', iconHover = '', children, className = '', ...props },\n ref\n) => {\n const tagClassName = classNames('agora-btn-tag', className);\n\n const buttonStyleMemo = useMemo<{ appearance: ButtonAppearance; variant: ButtonVariant }>(() => {\n return {\n appearance: 'outline',\n variant: 'neutral',\n darkMode: stringToBoolean(darkMode)\n };\n }, [darkMode]);\n\n return (\n <Button\n {...props}\n fullWidth={false}\n hasIcon\n trailingIcon=\"agora-line-x\"\n trailingIconHover=\"agora-solid-x\"\n leadingIcon={stringToBoolean(props.hasIcon) ? icon : undefined}\n leadingIconHover={stringToBoolean(props.hasIcon) ? iconHover : undefined}\n className={tagClassName}\n ref={ref}\n {...buttonStyleMemo}\n >\n {children}\n </Button>\n );\n};\n\nexport const Tag = forwardRef<HTMLButtonElement, TagProps>(InnerTag);\n","import { createContext, useContext } from 'react';\nimport { ToastProps } from './toast';\nimport './toast.scss';\n\nexport interface ToastContextProps {\n showToast: (data: ToastProps, duration?: number) => void;\n removeToast: (data: ToastProps) => void;\n}\n\nconst ToastContext = createContext<ToastContextProps>({} as ToastContextProps);\n\nconst useToastContext = (): ToastContextProps => {\n const context = useContext(ToastContext);\n return context;\n};\n\nexport { ToastContext, useToastContext };\n","import classNames from 'classnames';\r\nimport React, { ComponentPropsWithoutRef, FC } from 'react';\r\nimport { Button } from '../button/button';\r\nimport { Icon } from '../icon';\r\nimport { useToastContext } from './toast-context';\r\nimport './toast.scss';\r\n\r\nexport type ToastType = 'success' | 'failure' | 'warning' | 'info';\r\n\r\nexport interface ToastProps extends Omit<ComponentPropsWithoutRef<'div'>, 'id'> {\r\n /**\r\n * The id of the toast\r\n */\r\n id: number;\r\n /**\r\n * Title of the toast\r\n */\r\n title: string;\r\n /**\r\n * Description of the toast\r\n */\r\n description: string;\r\n /**\r\n * Type variant of the toast\r\n */\r\n type: ToastType;\r\n /**\r\n * Alternative text to apply to the toast close button\r\n */\r\n closeLabel: string;\r\n}\r\n\r\nexport const Toast: FC<ToastProps> = ({ className, id, title, description, type, closeLabel }: ToastProps) => {\r\n const { removeToast } = useToastContext();\r\n\r\n const getIconNameForType = (selectedType: ToastType): string => {\r\n switch (selectedType) {\r\n case 'success':\r\n return 'agora-solid-check-circle';\r\n case 'failure':\r\n return 'agora-solid-alert-triangle';\r\n case 'warning':\r\n return 'agora-solid-info-mark';\r\n default:\r\n return 'agora-solid-info-mark';\r\n }\r\n };\r\n\r\n const handleCloseClick = () => {\r\n removeToast({\r\n id,\r\n type,\r\n title,\r\n description,\r\n closeLabel\r\n } as ToastProps);\r\n };\r\n\r\n const toastContainerClassnames = classNames('toast', `toast-${type}`, className);\r\n\r\n return (\r\n <div className={toastContainerClassnames} role=\"alert\" key={id}>\r\n <Icon className=\"toast-icon mt-[10px]\" name={getIconNameForType(type)} dimensions=\"m\" aria-hidden />\r\n\r\n <div className=\"toast-messages flex flex-col gap-8\">\r\n <p className=\"toast-title mt-8\">{title}</p>\r\n <p className=\"toast-description\">{description}</p>\r\n </div>\r\n\r\n <Button\r\n className=\"toast-close-button\"\r\n appearance=\"link\"\r\n variant=\"neutral\"\r\n onClick={handleCloseClick}\r\n aria-label={closeLabel}\r\n hasIcon\r\n iconOnly\r\n trailingIcon=\"agora-line-x\"\r\n trailingIconHover=\"agora-solid-x\"\r\n ></Button>\r\n </div>\r\n );\r\n};\r\n","import { useState } from 'react';\nimport { ToastProps } from './toast';\n\nconst useToast = () => {\n const [toasts, setToasts] = useState<ToastProps[]>([]);\n\n const removeToast = (toast: ToastProps) => {\n setToasts((prevToasts) => prevToasts.filter((t) => t.id !== toast.id));\n };\n\n const showToast = (toast: ToastProps, duration?: number) => {\n setToasts((prevToasts) => {\n return [...prevToasts, toast];\n });\n\n if (duration && duration > 0) {\n setTimeout(() => {\n removeToast(toast);\n }, duration);\n }\n };\n\n return { toasts, showToast, removeToast };\n};\n\nexport { useToast };\n","import { useEffect, useState } from 'react';\n\nconst useWindowSize = () => {\n const [width, setWidth] = useState(1920);\n const [height, setHeight] = useState(1080);\n\n useEffect(() => {\n let isMounted = true;\n\n const listener = () => {\n if (isMounted) {\n setWidth(window.innerWidth);\n setHeight(window.innerHeight);\n }\n };\n\n window.addEventListener('resize', listener);\n\n listener();\n\n return () => {\n isMounted = false;\n window.removeEventListener('resize', listener);\n };\n }, []);\n\n return {\n width,\n height\n };\n};\n\nexport { useWindowSize };\n","import React, { FC, ReactNode, useMemo } from 'react';\r\nimport { Toast } from './toast';\r\nimport { ToastContext } from './toast-context';\r\nimport './toast.scss';\r\nimport { useToast } from './use-toast';\r\nimport { useWindowSize } from '../../../hooks';\r\n\r\nexport type ToastPositions = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\r\n\r\nexport interface ToastProviderProps {\r\n children?: ReactNode;\r\n position?: ToastPositions;\r\n}\r\nconst ToastProvider: FC<ToastProviderProps> = ({ children, position = 'bottom-right' }: ToastProviderProps) => {\r\n const { toasts, showToast, removeToast } = useToast();\r\n const { width } = useWindowSize();\r\n\r\n const contextValue = useMemo(\r\n () => ({\r\n showToast,\r\n removeToast\r\n }),\r\n [showToast, removeToast]\r\n );\r\n\r\n const memoToast = useMemo(() => {\r\n const VISIBLE_TOAST_NUMBER_MOBILE = 3;\r\n const VISIBLE_TOAST_NUMBER_DESKTOP = 5;\r\n const isMobile = width <= 768;\r\n const visibleToastsCount = isMobile ? VISIBLE_TOAST_NUMBER_MOBILE : VISIBLE_TOAST_NUMBER_DESKTOP;\r\n\r\n if (position.includes('bottom')) {\r\n return [...toasts].slice(-1 * visibleToastsCount);\r\n }\r\n\r\n return [...toasts].reverse().slice(0, visibleToastsCount);\r\n }, [position, toasts, width]);\r\n\r\n return (\r\n <ToastContext.Provider value={contextValue}>\r\n {children}\r\n {memoToast.length > 0 && (\r\n <div className={`toast-list toast-list--${position}`} aria-live=\"assertive\">\r\n {memoToast.map((toast) => {\r\n return <Toast key={toast.id} {...toast} />;\r\n })}\r\n </div>\r\n )}\r\n </ToastContext.Provider>\r\n );\r\n};\r\n\r\nexport { ToastProvider };\r\n","/* eslint-disable no-shadow */\nimport classNames from 'classnames';\nimport React, {\n Children,\n cloneElement,\n ComponentPropsWithRef,\n createRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactElement,\n RefObject,\n useCallback,\n useEffect,\n useId\n} from 'react';\nimport { Accordion, AccordionProps } from '../../atoms/accordion';\nimport { AccordionRef } from '../../atoms/accordion/accordion';\n\nexport type AccordionGroupType = 'single' | 'multiple';\n\nexport interface AccordionGroupProps extends ComponentPropsWithRef<'div'> {\n /**\n * List of accordion props to generate as checkboxes.\n */\n items?: AccordionProps[];\n /**\n * List of accordion components to use as children of the group.\n */\n children?: ReactElement<AccordionProps> | Array<ReactElement<AccordionProps>>;\n /**\n * Option to open multiple accordions or just one at a time\n */\n type: AccordionGroupType;\n}\n\nexport const InnerAccordionGroup: ForwardRefRenderFunction<HTMLDivElement, AccordionGroupProps> = (\n { items = [], className = '', children, type = 'single', ...props },\n ref\n) => {\n /**\n * Building Accordion class name dynamically according parameters.\n */\n const AccordionGroupClassName = classNames('agora-accordion-group', 'mt-0 p-0 w-full', className);\n\n const generatedAccordionGroupId = useId();\n\n let childrenAccordions: Array<ReactElement<AccordionProps>>;\n if (children) {\n if (!Array.isArray(children)) {\n childrenAccordions = [children] as Array<ReactElement<AccordionProps>>;\n } else {\n childrenAccordions = children;\n }\n } else {\n childrenAccordions = [];\n }\n\n const itemsAccordions = items.map((item, index) => {\n const id = `accordion-group-${generatedAccordionGroupId}-accordion-${index}`;\n return (\n <Accordion {...item} key={id}>\n {item.children}\n </Accordion>\n );\n });\n\n const refsMap = new Map<string, RefObject<AccordionRef>>();\n\n const updateAllAccordions = useCallback(\n (prop: AccordionProps) => {\n if (type === 'multiple') {\n return;\n }\n\n refsMap.forEach((v, k) => {\n if (prop.id !== k) {\n v.current?.collapse();\n }\n });\n },\n [type]\n );\n\n const parsedAccordions = Children.map([...childrenAccordions, ...itemsAccordions], (child, index) => {\n const innerRef = createRef<AccordionRef>();\n const id = `accordion-group-${generatedAccordionGroupId}-accordion-${index}`;\n\n refsMap.set(id, innerRef);\n\n return cloneElement<AccordionProps>(child, {\n ...child.props,\n ref: innerRef,\n id,\n onExpanded: updateAllAccordions\n });\n });\n\n useEffect(() => {\n if (type !== 'multiple') {\n let firstExpandedKey = '';\n\n refsMap.forEach((r, k) => {\n if (r.current?.isExpanded && !firstExpandedKey) {\n firstExpandedKey = k;\n }\n });\n\n refsMap.forEach((r, k) => {\n if (k !== firstExpandedKey) {\n r.current?.collapse();\n }\n });\n }\n }, [type]);\n\n return (\n <div className={AccordionGroupClassName} {...props} ref={ref}>\n {parsedAccordions}\n </div>\n );\n};\n\nexport const AccordionGroup = forwardRef<HTMLDivElement, AccordionGroupProps>(InnerAccordionGroup);\n","import { createContext, useContext } from 'react';\nimport { DropdownType } from '../dropdown-type';\nimport { InternalDropdownOptionProp } from './internal-dropdown-option';\nimport { InternalDropdownSectionProps } from './internal-dropdown-section';\n\nexport interface InternalDropdownContextProps {\n type: DropdownType;\n sections: InternalDropdownSectionProps[];\n options: InternalDropdownOptionProp[];\n\n visibility?: boolean;\n show: () => void;\n hide: () => void;\n\n first: () => void;\n prev: () => void;\n next: () => void;\n last: () => void;\n\n selectOption: (props: InternalDropdownOptionProp) => void;\n selectSectionOptions: (name: string) => void;\n isAllSectionOptionsSelected: (name: string) => boolean;\n\n hasSectionOptionsToInteract: (name: string) => boolean;\n selectAll: () => void;\n isAllSelected: boolean;\n isAllDisabled: boolean;\n\n applyFilter: (filter: string) => void;\n activeFilter: string;\n resetFilter: () => void;\n}\n\nexport const InternalDropdownContext = createContext<InternalDropdownContextProps>({} as InternalDropdownContextProps);\n\nexport const useInternalDropdownContext = (): InternalDropdownContextProps => {\n return useContext(InternalDropdownContext);\n};\n","import React, {\n ChangeEvent,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent,\n RefObject,\n useEffect,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { useDebounceHook } from '../../../../utils';\nimport { Icon } from '../../../atoms/icon';\nimport { useInternalDropdownContext } from './internal-dropdown-context';\nimport './internal-dropdown-filter-section.scss';\n\nexport interface InternalDropdownFilterSectionRef extends RefObject<HTMLInputElement> {\n filterElem: HTMLLIElement | null;\n resetFilter: () => void;\n}\n\nexport interface InternalDropdownFilterSectionProps extends ComponentPropsWithRef<'input'> {\n debounceTimeout?: number;\n}\n\nconst InnerInternalDropdownFilterSection: ForwardRefRenderFunction<\n InternalDropdownFilterSectionRef | null,\n InternalDropdownFilterSectionProps\n> = ({ debounceTimeout = 300, ...props }, ref) => {\n const dropdownContext = useInternalDropdownContext();\n const visibility = dropdownContext.visibility;\n const applyFilter = dropdownContext.applyFilter;\n const hide = dropdownContext.hide;\n const next = dropdownContext.next;\n const prev = dropdownContext.prev;\n const last = dropdownContext.last;\n\n const [currentFilter, setCurrentFilter] = useState('');\n\n const debouncedApplyFilter = useDebounceHook(applyFilter, debounceTimeout);\n\n const onInputChange = (evt: ChangeEvent<HTMLInputElement>) => {\n setCurrentFilter(evt.target.value ?? '');\n };\n\n useEffect(() => {\n debouncedApplyFilter.setArgs(currentFilter);\n }, [currentFilter, debouncedApplyFilter]);\n\n const resetFilter = () => {\n setCurrentFilter('');\n };\n\n const inputRef = useRef<HTMLInputElement>(null);\n const innerRef = useRef<HTMLLIElement>(null);\n useImperativeHandle(\n ref,\n () => {\n return {\n current: innerRef.current,\n resetFilter\n } as InternalDropdownFilterSectionRef;\n },\n [innerRef]\n );\n\n const onKeyDownCaptureHandler = (evt: KeyboardEvent<HTMLInputElement>) => {\n const code = evt.code;\n\n if (code === 'Tab') {\n evt.preventDefault();\n evt.stopPropagation();\n }\n };\n\n const onKeyUpHandler = (evt: KeyboardEvent<HTMLInputElement>) => {\n const code = evt.code;\n const shiftKey = evt.shiftKey;\n\n switch (code) {\n case 'Tab':\n if (shiftKey) {\n prev();\n } else {\n next();\n }\n break;\n case 'Escape':\n hide();\n break;\n case 'ArrowUp':\n last();\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'ArrowDown':\n next();\n break;\n }\n };\n\n const onMouseDownCaptureHandler = (evt: MouseEvent<SVGElement | HTMLImageElement>) => {\n evt.preventDefault();\n inputRef.current?.focus();\n };\n\n useEffect(() => {\n if (innerRef.current && visibility) {\n const { height } = innerRef.current.getBoundingClientRect();\n innerRef.current.setAttribute('data-filter-section-height', `${height}`);\n }\n }, [visibility]);\n\n return (\n <ul className=\"agora-dropdown-filter-section\" role=\"none\">\n <li className=\"agora-dropdown-filter-section-item\" ref={innerRef} role=\"none\">\n <input\n ref={inputRef}\n {...props}\n className={'input-filter'}\n type=\"text\"\n value={currentFilter}\n onChange={onInputChange}\n onKeyDownCapture={onKeyDownCaptureHandler}\n onKeyUp={onKeyUpHandler}\n />\n <Icon className=\"input-icon\" name=\"agora-line-search\" aria-hidden onMouseDownCapture={onMouseDownCaptureHandler} />\n </li>\n </ul>\n );\n};\n\nexport const InternalDropdownFilterSection = forwardRef<InternalDropdownFilterSectionRef | null, InternalDropdownFilterSectionProps>(\n InnerInternalDropdownFilterSection\n);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, ReactNode } from 'react';\nimport './internal-dropdown-no-results.scss';\n\nexport interface InternalNoResultsProps extends ComponentPropsWithoutRef<'div'> {\n label: ReactNode;\n}\n\nexport const InternalNoResults: FC<InternalNoResultsProps> = ({ className, label, ...props }) => {\n const classes = classNames('agora-dropdown-no-results', className);\n\n return (\n <div {...props} className={classes}>\n <div className=\"label\">{label}</div>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { FC, KeyboardEvent, useRef, useState } from 'react';\nimport { IconPosition } from '../../../../models';\nimport { BooleanProp } from '../../../../models/boolean-type';\nimport { stringToBoolean } from '../../../../utils';\nimport { Icon } from '../../../atoms/icon';\nimport { DropdownType } from '../dropdown-type';\nimport { useInternalDropdownContext } from './internal-dropdown-context';\nimport './internal-dropdown-option.scss';\n\nconst OptionComponent: FC<{ type: DropdownType; hasIcon?: BooleanProp; icon?: string; children: string }> = ({\n type,\n icon,\n hasIcon,\n children\n}) => {\n if (type === 'checkbox') {\n return (\n <div className=\"flex gap-8 w-full\">\n <Icon className=\"checkbox-mark\" name=\"agora-line-check\" aria-hidden />\n <div className=\"option-content\">{children}</div>\n {hasIcon && <Icon className=\"option-icon\" name={icon} aria-hidden />}\n </div>\n );\n }\n\n if (!hasIcon) {\n return <div className=\"option-content\">{children}</div>;\n }\n\n return (\n <>\n <Icon className=\"option-icon\" name={icon} aria-hidden />\n <div className=\"option-content\">{children}</div>\n </>\n );\n};\n\nexport interface InternalDropdownOptionProp {\n className?: string;\n name?: string;\n value: string;\n children: string;\n hasIcon?: BooleanProp;\n icon?: string;\n iconPosition?: IconPosition;\n disabled?: BooleanProp;\n selected?: BooleanProp;\n filtered?: BooleanProp;\n}\n\nexport const InternalDropdownOption: FC<InternalDropdownOptionProp> = ({\n className,\n disabled,\n selected,\n filtered,\n hasIcon,\n icon,\n iconPosition = 'leading',\n children,\n name,\n value\n}) => {\n const parsedIconName = icon?.replace('solid', 'line');\n const [iconName, setIconName] = useState(parsedIconName ?? '');\n\n const dropdownContext = useInternalDropdownContext();\n const selectOption = dropdownContext.selectOption;\n const options = dropdownContext.options;\n const last = dropdownContext.last;\n const first = dropdownContext.first;\n const next = dropdownContext.next;\n const prev = dropdownContext.prev;\n const type = dropdownContext.type;\n const hide = dropdownContext.hide;\n\n const ref = useRef<HTMLDivElement>(null);\n\n const optionWrapperClasses = classNames(\n 'agora-dropdown-option',\n className,\n\n { [type]: type },\n { disabled: stringToBoolean(disabled) },\n { selected: stringToBoolean(selected) },\n { filtered: stringToBoolean(filtered) },\n {\n 'leading-icon': stringToBoolean(hasIcon) && iconPosition === 'leading',\n 'trailing-icon': stringToBoolean(hasIcon) && iconPosition === 'trailing'\n }\n );\n\n const select = () => {\n const option = options.find((opt) => {\n return opt.value === value && opt.name === name;\n });\n\n if (option) {\n selectOption(option);\n }\n };\n\n const onKeyDownCaptureHandler = (evt: KeyboardEvent<HTMLDivElement>) => {\n const { code } = evt;\n\n // SPACE, UP AND DOWN TRIGGERS SCROLLING BEHAVIOUR. ITS MUST BE HANDLED IN KEYDOWN CAPTURE TO PREVENT IT.\n if (code === 'Space' || code === 'Tab') {\n evt.stopPropagation();\n evt.preventDefault();\n }\n };\n\n const onKeyUpHandler = (evt: KeyboardEvent<HTMLDivElement>) => {\n const { code, shiftKey } = evt;\n\n switch (code) {\n case 'Escape':\n hide();\n break;\n case 'Tab':\n if (shiftKey) {\n prev();\n } else {\n next();\n }\n break;\n case 'ArrowUp':\n prev();\n break;\n case 'ArrowDown':\n next();\n break;\n case 'Home':\n first();\n break;\n case 'End':\n last();\n break;\n case 'Space':\n case 'Enter':\n case 'NumpadEnter':\n select();\n break;\n }\n };\n\n const clickHandler = () => {\n if (disabled) {\n return;\n }\n\n select();\n };\n\n const applySolidIcon = () => {\n if (!disabled) {\n setIconName((lastIconName) => lastIconName.replace('line', 'solid'));\n }\n };\n\n const applyLineIcon = () => {\n if (!disabled) {\n setIconName((lastIconName) => lastIconName.replace('solid', 'line'));\n }\n };\n\n return (\n <div\n ref={ref}\n className={optionWrapperClasses}\n role=\"option\"\n aria-selected={stringToBoolean(selected)}\n aria-label={children}\n onClick={clickHandler}\n onKeyUp={onKeyUpHandler}\n onKeyDownCapture={onKeyDownCaptureHandler}\n tabIndex={disabled ? -1 : 0}\n onMouseEnter={applySolidIcon}\n onMouseMove={applySolidIcon}\n onMouseLeave={applyLineIcon}\n >\n <OptionComponent type={type} hasIcon={stringToBoolean(hasIcon)} icon={iconName}>\n {children}\n </OptionComponent>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { createRef, FC, KeyboardEvent, ReactElement, RefObject, useEffect, useId, useMemo, useRef } from 'react';\nimport { BooleanProp } from '../../../../models';\nimport { stringToBoolean } from '../../../../utils';\nimport { Icon } from '../../../atoms/icon/icon';\nimport { useInternalDropdownContext } from './internal-dropdown-context';\nimport { InternalDropdownOption, InternalDropdownOptionProp } from './internal-dropdown-option';\nimport './internal-dropdown-section.scss';\n\nconst SectionNameComponent: FC<{ id: string; value: string; name: string; hideSectionName?: BooleanProp }> = ({\n id,\n value,\n name,\n hideSectionName = false\n}) => {\n const sectionNameRef = useRef<HTMLLIElement>(null);\n\n const dropdownContext = useInternalDropdownContext();\n const type = dropdownContext.type;\n const isAllSectionOptionsSelected = dropdownContext.isAllSectionOptionsSelected;\n const hasSectionOptionsToInteract = dropdownContext.hasSectionOptionsToInteract;\n const selectSectionOptions = dropdownContext.selectSectionOptions;\n const hide = dropdownContext.hide;\n const next = dropdownContext.next;\n const prev = dropdownContext.prev;\n const first = dropdownContext.first;\n const last = dropdownContext.last;\n const visibility = dropdownContext.visibility;\n const activeFilter = dropdownContext.activeFilter;\n\n useEffect(() => {\n if (sectionNameRef.current && visibility) {\n const sectionHeight = sectionNameRef.current.getBoundingClientRect().height;\n sectionNameRef.current.setAttribute('data-section-name-height', `${sectionHeight}`);\n }\n }, [visibility, activeFilter]);\n\n const allSelected = useMemo(() => {\n return isAllSectionOptionsSelected(value);\n }, [isAllSectionOptionsSelected, value]);\n\n const handleSectionClick = () => {\n if (type !== 'checkbox' || !hasSectionOptionsToInteract(value)) {\n return;\n }\n\n selectSectionOptions(value);\n };\n\n const onKeyDownHandler = (evt: KeyboardEvent<HTMLDivElement>) => {\n if (type !== 'checkbox') {\n return;\n }\n\n const code = evt.code;\n\n if (code === 'Space') {\n evt.preventDefault();\n evt.stopPropagation();\n }\n };\n\n const onKeyUpHandler = (evt: KeyboardEvent<HTMLDivElement>) => {\n if (type !== 'checkbox') {\n return;\n }\n\n evt.preventDefault();\n\n const code = evt.code;\n\n switch (code) {\n case 'Escape':\n hide();\n break;\n case 'Space':\n case 'Enter':\n case 'NumpadEnter':\n selectSectionOptions(value);\n break;\n case 'ArrowUp':\n prev();\n break;\n case 'ArrowDown':\n next();\n break;\n case 'Home':\n first();\n break;\n case 'End':\n last();\n break;\n }\n };\n\n const checkboxClassNames = classNames('checkbox-mark', { checked: allSelected });\n\n const sectionNameOptionClassNames = classNames(\n 'section-name-item',\n { [type]: type },\n { disabled: !hasSectionOptionsToInteract(value) },\n\n { hidden: type !== 'checkbox' && stringToBoolean(hideSectionName) } // NEED SECTION NAMES WHEN ITS CHECKBOX TYPE\n );\n\n const sectionNameClassNames = classNames(\n 'section-name',\n { hidden: type !== 'checkbox' && stringToBoolean(hideSectionName) } // NEED SECTION NAMES WHEN ITS CHECKBOX TYPE\n );\n\n return (\n <li className={sectionNameClassNames} ref={sectionNameRef} data-section-option-id={id}>\n <div\n className={sectionNameOptionClassNames}\n aria-label={name}\n role=\"option\"\n aria-selected={allSelected}\n aria-disabled={!hasSectionOptionsToInteract(value)}\n onClick={handleSectionClick}\n onKeyUp={onKeyUpHandler}\n onKeyDownCapture={onKeyDownHandler}\n tabIndex={type === 'checkbox' && hasSectionOptionsToInteract(value) ? 0 : -1}\n >\n <div className=\"label\">{name}</div>\n {type === 'checkbox' && hasSectionOptionsToInteract(value) && (\n <Icon className={checkboxClassNames} name=\"agora-line-check\" aria-hidden />\n )}\n </div>\n </li>\n );\n};\n\nexport interface InternalDropdownSectionProps {\n 'className'?: string;\n 'hideSectionName'?: BooleanProp;\n 'name': string;\n 'value': string;\n 'children': ReactElement<InternalDropdownOptionProp> | ReactElement<InternalDropdownOptionProp>[];\n 'aria-label'?: string;\n}\n\nexport const InternalDropdownSection: FC<InternalDropdownSectionProps> = ({\n hideSectionName = false,\n className,\n name,\n value,\n 'aria-label': ariaLabel\n}) => {\n const generatedId = useId();\n const sectionId = value ?? generatedId;\n\n const dropdownContext = useInternalDropdownContext();\n const options = dropdownContext.options;\n const type = dropdownContext.type;\n const visibility = dropdownContext.visibility;\n\n const optionsRefMap = useMemo(() => new Map<string, RefObject<HTMLLIElement>>(), []);\n\n const sectionClassNames = classNames('agora-dropdown-section', className);\n\n const sectionOptions = useMemo(() => {\n return options\n .filter((opt) => opt.name === value)\n .map((props: InternalDropdownOptionProp) => {\n const key = `${sectionId}-${type}-${props.value}`;\n\n const optionClassNames = classNames(props.className, {\n 'no-section-name': type !== 'checkbox' && stringToBoolean(hideSectionName)\n });\n\n const newRef = createRef<HTMLLIElement>();\n optionsRefMap.set(key, newRef);\n\n return (\n <li className=\"section-option\" key={key} ref={newRef} data-section-option-id={key}>\n <InternalDropdownOption {...props} className={optionClassNames} />\n </li>\n );\n });\n }, [options, hideSectionName, optionsRefMap, sectionId, type, value]);\n\n useEffect(() => {\n if (visibility) {\n optionsRefMap.forEach((ref) => {\n if (ref.current) {\n const optionHeight = ref.current.getBoundingClientRect().height;\n ref.current.setAttribute('data-section-option-height', `${optionHeight}`);\n }\n });\n }\n }, [visibility, type, optionsRefMap]);\n\n return (\n <ul className={sectionClassNames} aria-label={ariaLabel}>\n <SectionNameComponent id={sectionId} value={value} name={name} hideSectionName={hideSectionName} />\n {sectionOptions}\n </ul>\n );\n};\n","import classNames from 'classnames';\nimport React, { FC, KeyboardEvent, useEffect, useRef } from 'react';\nimport { Icon } from '../../../atoms/icon';\nimport { useInternalDropdownContext } from './internal-dropdown-context';\nimport './internal-dropdown-select-all-section.scss';\n\nexport interface InternalDropdownSelectAllSectionProps {\n label?: string;\n}\n\nexport const InternalDropdownSelectAllSection: FC<InternalDropdownSelectAllSectionProps> = ({ label }) => {\n const ref = useRef<HTMLLIElement>(null);\n\n const dropdownContext = useInternalDropdownContext();\n const visibility = dropdownContext.visibility;\n\n const isAllSelected = dropdownContext.isAllSelected;\n const isAllDisabled = dropdownContext.isAllDisabled;\n const selectAll = dropdownContext.selectAll;\n const hide = dropdownContext.hide;\n const prev = dropdownContext.prev;\n const next = dropdownContext.next;\n const first = dropdownContext.first;\n const last = dropdownContext.last;\n\n useEffect(() => {\n if (ref.current && visibility) {\n const { height } = ref.current.getBoundingClientRect();\n ref.current.setAttribute('data-select-all-section-height', `${height}`);\n }\n }, [visibility]);\n\n const handleClick = () => {\n selectAll();\n };\n\n const onKeyDownHandler = (evt: KeyboardEvent<HTMLDivElement>) => {\n const { code } = evt;\n\n // SPACE TRIGGERS SCROLLING BEHAVIOUR. ITS MUST BE HANDLED IN KEYDOWN CAPTURE TO PREVENT IT.\n if (code === 'Space') {\n evt.preventDefault();\n evt.stopPropagation();\n }\n };\n\n const onKeyUpHandler = (evt: KeyboardEvent<HTMLDivElement>) => {\n const code = evt.code;\n\n evt.preventDefault();\n\n switch (code) {\n case 'Escape':\n hide();\n break;\n case 'Space':\n case 'Enter':\n case 'NumpadEnter':\n selectAll();\n break;\n case 'ArrowUp':\n prev();\n break;\n case 'ArrowDown':\n next();\n break;\n case 'Home':\n first();\n break;\n case 'End':\n last();\n break;\n }\n };\n\n const selectAllItemClassNames = classNames('select-all', { disabled: isAllDisabled });\n\n const checkboxClassNames = classNames('checkbox-mark', { checked: isAllSelected });\n\n return (\n <ul className=\"agora-dropdown-select-all-section\" role=\"none\">\n <li className=\"agora-dropdown-select-all-section-item\" ref={ref} role=\"none\">\n <div\n className={selectAllItemClassNames}\n tabIndex={isAllDisabled ? -1 : 0}\n aria-disabled={isAllDisabled}\n onClick={handleClick}\n onKeyUp={onKeyUpHandler}\n onKeyDownCapture={onKeyDownHandler}\n role=\"option\"\n aria-selected={isAllSelected}\n aria-label={label}\n >\n <Icon className={checkboxClassNames} name=\"agora-line-check\" aria-hidden />\n {label && <div className=\"checkbox-label\">{label}</div>}\n {!label && <div className=\"checkbox-label\"> </div>}\n </div>\n </li>\n </ul>\n );\n};\n","import classNames from 'classnames';\nimport React, {\n forwardRef,\n ForwardRefRenderFunction,\n HTMLAttributes,\n ReactNode,\n Ref,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '../../../../models/boolean-type';\nimport { useInternalDropdownContext } from './internal-dropdown-context';\nimport { InternalDropdownFilterSection, InternalDropdownFilterSectionRef } from './internal-dropdown-filter-section';\nimport { InternalNoResults } from './internal-dropdown-no-results';\nimport { InternalDropdownOptionProp } from './internal-dropdown-option';\nimport { InternalDropdownSection } from './internal-dropdown-section';\nimport { InternalDropdownSelectAllSection } from './internal-dropdown-select-all-section';\nimport './internal-dropdown.scss';\n\nexport interface InternalDropdownRef {\n listboxElem: HTMLDivElement | null;\n resetFilter: () => void;\n}\n\nexport interface InternalDropdownProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n optionsVisible?: number;\n\n onChange?: (options: InternalDropdownOptionProp[]) => void;\n\n searchable?: BooleanProp;\n\n searchAriaLabel?: string;\n\n searchPlaceholder?: string;\n\n noSearchResults?: ReactNode;\n\n searchDebounceTimeout?: number;\n\n onInputSearchChange?: (value: string) => void;\n\n selectAllLabel?: string;\n}\n\nconst Component: ForwardRefRenderFunction<InternalDropdownRef | null, InternalDropdownProps> = (\n { selectAllLabel, searchable, optionsVisible = 6, noSearchResults = '', ...props }: InternalDropdownProps,\n ref: Ref<InternalDropdownRef | null>\n) => {\n const context = useInternalDropdownContext();\n const visibility = context.visibility;\n const activeFilter = context.activeFilter;\n const sections = context.sections;\n const options = context.options;\n const type = context.type;\n\n const filterRef = useRef<InternalDropdownFilterSectionRef>(null);\n const resetFilter = useCallback(() => {\n if (searchable && filterRef.current) {\n filterRef.current.resetFilter();\n }\n }, [searchable]);\n\n const innerRef = useRef<HTMLDivElement>(null);\n useImperativeHandle(\n ref,\n () => {\n return {\n listboxElem: innerRef.current,\n resetFilter\n } as InternalDropdownRef;\n },\n [resetFilter]\n );\n\n const [maxHeightStyleProp, setMaxHeightStyleProp] = useState('');\n\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const getFilterSectionHeight = useCallback(() => {\n if (innerRef.current && searchable) {\n const queryResults = innerRef.current.querySelectorAll('.agora-dropdown-filter-section-item');\n\n const elem = (queryResults[0] as HTMLDivElement) ?? null;\n\n if (elem) {\n const val = elem.getAttribute('data-filter-section-height');\n return val ? Number(val) : 0;\n }\n }\n\n return 0;\n }, [searchable]);\n\n const getSelectAllSectionHeight = useCallback(() => {\n if (innerRef.current && type === 'checkbox') {\n const queryResults = innerRef.current.querySelectorAll('.agora-dropdown-select-all-section-item');\n\n const elem = (queryResults[0] as HTMLDivElement) ?? null;\n\n if (elem) {\n const val = elem.getAttribute('data-select-all-section-height');\n return val ? Number(val) : 0;\n }\n }\n\n return 0;\n }, [type]);\n\n const getVisibleSectionNamesHeight = useCallback((visibleSections: string[]) => {\n let heightCount = 0;\n\n if (innerRef.current) {\n const queryResults = innerRef.current.querySelectorAll('.agora-dropdown-section .section-name');\n\n queryResults.forEach((elem) => {\n const sectionName = elem.getAttribute('data-section-option-id');\n\n if (sectionName && visibleSections.includes(sectionName)) {\n const val = elem.getAttribute('data-section-name-height');\n heightCount = heightCount + (val ? Number(val) : 0);\n }\n });\n }\n\n return heightCount;\n }, []);\n\n const getVisibleOptionsHeight = useCallback(\n (visibleOptions: InternalDropdownOptionProp[]) => {\n let heightCount = 0;\n\n if (innerRef.current) {\n const visibleOptionsKeys = visibleOptions.map((opt) => {\n return `${opt.name}-${type}-${opt.value}`;\n });\n\n const queryResults = innerRef.current.querySelectorAll('.agora-dropdown-section .section-option');\n\n queryResults.forEach((elem) => {\n const optionId = elem.getAttribute('data-section-option-id');\n\n if (optionId && visibleOptionsKeys.includes(optionId)) {\n const val = elem.getAttribute('data-section-option-height');\n heightCount = heightCount + (val ? Number(val) : 0);\n }\n });\n }\n\n return heightCount;\n },\n [type]\n );\n\n const getListboxBorderWidths = useCallback(() => {\n if (!innerRef.current) {\n return 0;\n }\n\n const computedStyle = getComputedStyle(innerRef.current);\n\n if (computedStyle) {\n const borderTopWidth = parseFloat(computedStyle.borderTopWidth);\n const borderBottomWidth = parseFloat(computedStyle.borderBottomWidth);\n return borderTopWidth + borderBottomWidth;\n }\n\n return 0;\n }, [innerRef]);\n\n useEffect(() => {\n if (visibility) {\n const visibleOptions = options.filter((opt) => !opt.filtered);\n\n if (visibleOptions.length > optionsVisible) {\n const containedOptions = visibleOptions.slice(0, optionsVisible);\n const visibleSections = [...new Set(containedOptions.map((opt) => opt.name ?? '').filter((opt) => !!opt))];\n\n let maxHeight = 0;\n // GET FILTER SECTION HEIGHT\n maxHeight = maxHeight + getFilterSectionHeight();\n // GET SELECT ALL SECTION HEIGHT\n maxHeight = maxHeight + getSelectAllSectionHeight();\n // GET VISIBLE SECTIONS NAMES HEIGHT\n maxHeight = maxHeight + getVisibleSectionNamesHeight(visibleSections);\n // GET NON FILTERED OPTIONS HEIGHT\n maxHeight = maxHeight + getVisibleOptionsHeight(containedOptions);\n\n if (maxHeight > 0) {\n // GET LISTBOX BORDERS ONLY IF THERE ARE SOME OPTIONS VISIBLE\n maxHeight = maxHeight + getListboxBorderWidths();\n setMaxHeightStyleProp(`${maxHeight}px`);\n } else {\n setMaxHeightStyleProp('none');\n }\n } else {\n setMaxHeightStyleProp('none');\n }\n }\n }, [\n visibility,\n type,\n activeFilter,\n options,\n optionsVisible,\n getFilterSectionHeight,\n getSelectAllSectionHeight,\n getVisibleSectionNamesHeight,\n getVisibleOptionsHeight,\n getListboxBorderWidths\n ]);\n\n const dropdownClasses = classNames('agora-dropdown', propsClone.className, { visible: visibility });\n\n const hasOptions = useMemo(() => {\n return options.length > 0;\n }, [options]);\n\n const hasSectionsWithResults = useMemo(() => {\n return options.some((opt) => !opt.filtered);\n }, [options]);\n\n const allSectionResultsDisabled = useMemo(() => {\n const visibleResults = options.filter((opt) => !opt.filtered);\n return hasSectionsWithResults && visibleResults.findIndex((opt) => !opt.disabled) === -1;\n }, [hasSectionsWithResults, options]);\n\n const sectionWithResults = useMemo(() => {\n return options.filter((opt) => !opt.filtered).map((opt) => opt.name);\n }, [options]);\n\n const hasMoreThanOneSection = sections.length > 1;\n\n return (\n <div\n className={dropdownClasses}\n ref={innerRef}\n aria-label={hasMoreThanOneSection ? props['aria-label'] : ''}\n role={hasMoreThanOneSection ? 'list' : 'none'}\n style={{\n maxHeight: maxHeightStyleProp === '' ? '0px' : maxHeightStyleProp,\n overflowY: maxHeightStyleProp === '' ? 'hidden' : 'auto'\n }}\n >\n {searchable && (\n <InternalDropdownFilterSection ref={filterRef} aria-label={propsClone.searchAriaLabel} placeholder={propsClone.searchPlaceholder} />\n )}\n\n {type === 'checkbox' && hasSectionsWithResults && !allSectionResultsDisabled && (\n <InternalDropdownSelectAllSection label={selectAllLabel} />\n )}\n\n {hasSectionsWithResults &&\n sections\n .filter((s) => sectionWithResults.indexOf(s.value) >= 0)\n .map((section, index) => {\n const key = `agora-dropdown-option-${propsClone.id}-${index}`;\n return <InternalDropdownSection key={key} {...section} />;\n })}\n\n {(!hasOptions || !hasSectionsWithResults) && <InternalNoResults label={noSearchResults} />}\n </div>\n );\n};\n\nexport const InternalDropdown = forwardRef<InternalDropdownRef | null, InternalDropdownProps>(Component);\n","import { Children, ReactElement, RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { DropdownOptionProp } from '../dropdown-option';\nimport { DropdownSectionProps } from '../dropdown-section';\nimport { DropdownType } from '../dropdown-type';\nimport { InternalDropdownRef } from './internal-dropdown';\nimport { InternalDropdownContextProps } from './internal-dropdown-context';\nimport { InternalDropdownOptionProp } from './internal-dropdown-option';\nimport { InternalDropdownSectionProps } from './internal-dropdown-section';\n\nexport const useDropdownState = (\n internalDropdownRef: RefObject<InternalDropdownRef>,\n type: DropdownType,\n onChange?: (options: DropdownOptionProp[]) => void,\n onSearchChange?: (term: string, options: DropdownOptionProp[]) => void,\n onShow?: () => void,\n onHide?: () => void,\n children?: ReactElement<DropdownSectionProps> | ReactElement<DropdownSectionProps>[]\n) => {\n // #region \"OPTIONS\"\n const [sections, setSections] = useState<Array<InternalDropdownSectionProps>>([]);\n const [options, setOptions] = useState<Array<InternalDropdownOptionProp>>([]);\n\n useEffect(() => {\n const parsedSectionProps: Array<InternalDropdownSectionProps> = [];\n const parsedOptionProps: Array<InternalDropdownOptionProp> = [];\n\n if (children) {\n if (!Array.isArray(children)) {\n parsedSectionProps.push({\n ...children.props,\n type\n } as InternalDropdownSectionProps);\n } else {\n Children.forEach(children, (c) => {\n parsedSectionProps.push({\n ...c.props,\n type\n } as InternalDropdownSectionProps);\n });\n }\n }\n\n parsedSectionProps.forEach((sec) => {\n Children.forEach(sec.children, (opt) => {\n parsedOptionProps.push({\n ...opt.props,\n name: sec.value\n });\n });\n });\n\n setSections(parsedSectionProps);\n setOptions(parsedOptionProps);\n }, [children, type, onChange]);\n\n // #endregion \"OPTIONS\"\n\n // #region \"FILTER\"\n const [activeFilter, setActiveFilter] = useState('');\n\n const applyFilter = (newFilter: string) => {\n setActiveFilter((lastFilter) => {\n if (lastFilter === newFilter) {\n return lastFilter;\n }\n\n setOptions((lastOptions) => {\n const newOptions = lastOptions.map((opt) => {\n if (newFilter === '') {\n // CLEAR FILTER\n return { ...opt, filtered: false };\n }\n\n const val = opt.value.toLowerCase();\n const childrenVal = opt.children.toLowerCase();\n\n const notFound = !val.includes(newFilter) && !childrenVal.includes(newFilter);\n\n return {\n ...opt,\n filtered: notFound\n };\n });\n\n onSearchChange?.(\n newFilter,\n newOptions.filter((opt) => !opt.filtered)\n );\n\n return newOptions;\n });\n\n return newFilter;\n });\n };\n\n const resetFilter = useCallback(() => {\n if (internalDropdownRef.current) {\n internalDropdownRef.current.resetFilter();\n }\n }, [internalDropdownRef]);\n\n useEffect(() => {\n resetFilter();\n }, [children, resetFilter]);\n\n // #endregion \"FILTER\"\n\n // #region \"NAVIGATION\"\n\n const focusElem = (elem?: HTMLElement, fromVisibilityHidden?: boolean) => {\n if (elem) {\n elem.focus();\n\n if (fromVisibilityHidden) {\n elem.scrollIntoView(true);\n } else {\n elem.scrollIntoView({ behavior: 'instant', block: 'nearest', inline: 'start' });\n }\n }\n };\n\n const first = useCallback(\n (fromVisibilityHidden?: boolean) => {\n if (internalDropdownRef.current) {\n const inputFilter = Array.from(internalDropdownRef.current.listboxElem?.querySelectorAll('.input-filter') ?? []);\n const opts = Array.from(internalDropdownRef.current.listboxElem?.querySelectorAll('[role=\"option\"]:not(.filtered)') ?? []);\n const domOptions = [...inputFilter, ...opts];\n\n const idx = Array.from(domOptions).findIndex((opt) => {\n return (opt as HTMLElement).tabIndex === 0;\n });\n\n if (idx >= 0) {\n focusElem(domOptions[idx] as HTMLElement, fromVisibilityHidden);\n }\n }\n },\n [internalDropdownRef]\n );\n\n const last = useCallback(() => {\n if (internalDropdownRef.current) {\n const inputFilter = Array.from(internalDropdownRef.current.listboxElem?.querySelectorAll('.input-filter') ?? []);\n const opts = Array.from(internalDropdownRef.current.listboxElem?.querySelectorAll('[role=\"option\"]:not(.filtered)') ?? []);\n const domOptions = [...inputFilter, ...opts];\n\n if (domOptions.length > 0) {\n const idx = Array.from(domOptions).findLastIndex((opt) => {\n return (opt as HTMLElement).tabIndex === 0;\n });\n\n focusElem(domOptions[idx] as HTMLElement);\n }\n }\n }, [internalDropdownRef]);\n\n const next = useCallback((): void => {\n if (internalDropdownRef.current) {\n const current = document.activeElement;\n const inputFilter = Array.from(internalDropdownRef.current.listboxElem?.querySelectorAll('.input-filter') ?? []);\n const opts = Array.from(internalDropdownRef.current.listboxElem?.querySelectorAll('[role=\"option\"]:not(.filtered)') ?? []);\n const domOptions = [...inputFilter, ...opts];\n\n if (domOptions.length > 0) {\n const currentIndex = Array.from(domOptions).findIndex((opt) => {\n return opt.isEqualNode(current);\n });\n\n const idx = Array.from(domOptions).findIndex((opt, i) => {\n return i > currentIndex && (opt as HTMLElement).tabIndex === 0;\n });\n\n if (idx >= 0) {\n focusElem(domOptions[idx] as HTMLElement);\n } else {\n first();\n }\n }\n }\n }, [internalDropdownRef, first]);\n\n const prev = useCallback((): void => {\n if (internalDropdownRef.current) {\n const current = document.activeElement;\n const inputFilter = Array.from(internalDropdownRef.current.listboxElem?.querySelectorAll('.input-filter') ?? []);\n const opts = Array.from(internalDropdownRef.current.listboxElem?.querySelectorAll('[role=\"option\"]:not(.filtered)') ?? []);\n const domOptions = [...inputFilter, ...opts];\n\n if (domOptions.length > 0) {\n const currentIndex = Array.from(domOptions).findIndex((opt) => {\n return opt.isEqualNode(current);\n });\n\n const idx = Array.from(domOptions).findLastIndex((opt, i) => {\n return i < currentIndex && (opt as HTMLElement).tabIndex === 0;\n });\n\n if (idx >= 0) {\n focusElem(domOptions[idx] as HTMLElement);\n } else {\n last();\n }\n }\n }\n }, [internalDropdownRef, last]);\n\n // #endregion \"NAVIGATION\"\n\n // #region \"VISIBILITY\"\n const [visibility, setVisibility] = useState(false);\n\n const show = useCallback(() => {\n setVisibility(true);\n }, []);\n\n const hide = useCallback(() => {\n setVisibility(false);\n }, []);\n\n // Need this ref because first render will trigger the effect... we only want this event whenever show or hide is called\n const firstEffect = useRef(true);\n useEffect(() => {\n if (firstEffect.current) {\n firstEffect.current = false;\n return;\n }\n\n if (visibility) {\n onShow?.();\n } else {\n onHide?.();\n }\n }, [visibility, onShow, onHide]);\n\n // #endregion \"VISIBILITY\"\n\n // #region \"SELECTION\"\n const triggerOnChange = useCallback(\n (newOptions: InternalDropdownOptionProp[]) => {\n const selectedOptions = newOptions\n .filter((o) => o.selected)\n .map((o) => {\n return {\n selected: o.selected,\n value: o.value,\n className: o.className,\n disabled: o.disabled,\n hasIcon: o.hasIcon,\n icon: o.icon,\n iconPosition: o.iconPosition,\n children: o.children\n } as DropdownOptionProp;\n });\n\n onChange?.(selectedOptions);\n\n if (type === 'text' && selectedOptions.length > 0) {\n hide();\n }\n },\n [onChange, hide, type]\n );\n\n const isMultiSelection = useMemo(() => {\n return type === 'checkbox';\n }, [type]);\n\n const selectOption = useCallback(\n (option: InternalDropdownOptionProp): void => {\n if (option.disabled || option.filtered) {\n return;\n }\n\n setOptions((lastOptions) => {\n const newOptions = lastOptions.map((opt) => {\n const isProvidedOption = option.name === opt.name && option.value === opt.value;\n\n if (isMultiSelection) {\n return {\n ...opt,\n selected: isProvidedOption ? !opt.selected : opt.selected\n };\n }\n\n return {\n ...opt,\n selected: isProvidedOption ? !opt.selected : false\n };\n });\n\n triggerOnChange(newOptions);\n\n return newOptions;\n });\n },\n [setOptions, isMultiSelection, triggerOnChange]\n );\n\n const isAllSectionOptionsSelected = useCallback(\n (sectionName: string): boolean => {\n const availableOptions = options.filter((opt) => opt.name === sectionName && !opt.filtered && !opt.disabled);\n const hasOptionsUnselected = availableOptions.some((opt) => !opt.selected);\n return availableOptions.length > 0 && !hasOptionsUnselected;\n },\n [options]\n );\n\n const selectSectionOptions = useCallback(\n (sectionName: string): void => {\n setOptions((lastOptions) => {\n const allOptionsSelected = isAllSectionOptionsSelected(sectionName);\n\n const newOptions = lastOptions.map((opt) => {\n const isInSectionProvided = sectionName === opt.name;\n return {\n ...opt,\n selected: !opt.filtered && !opt.disabled && isInSectionProvided ? !allOptionsSelected : opt.selected\n };\n });\n\n triggerOnChange(newOptions);\n\n return newOptions;\n });\n },\n [setOptions, isAllSectionOptionsSelected, triggerOnChange]\n );\n\n const hasSectionOptionsToInteract = useCallback(\n (sectionName: string): boolean => {\n const availableOptions = options.filter((opt) => opt.name === sectionName && !opt.filtered && !opt.disabled);\n return availableOptions.length > 0;\n },\n [options]\n );\n\n const isAllSelected = useMemo(() => {\n const availableOptions = options.filter((opt) => !opt.filtered && !opt.disabled);\n const hasOptionsUnselected = availableOptions.some((opt) => !opt.selected);\n return availableOptions.length > 0 && !hasOptionsUnselected;\n }, [options]);\n\n const isAllDisabled = useMemo(() => {\n const availableOptions = options.filter((opt) => !opt.filtered);\n const hasOptionsNotDisabled = availableOptions.some((opt) => !opt.disabled);\n return availableOptions.length > 0 && !hasOptionsNotDisabled;\n }, [options]);\n\n const selectAll = useCallback((): void => {\n setOptions((lastOptions) => {\n const newOptions = lastOptions.map((opt) => {\n return {\n ...opt,\n selected: !opt.filtered && !opt.disabled ? !isAllSelected : opt.selected\n };\n });\n\n triggerOnChange(newOptions);\n\n return newOptions;\n });\n }, [setOptions, isAllSelected, triggerOnChange]);\n\n // #endregion \"SELECTION\"\n\n return {\n type,\n sections,\n options,\n\n visibility,\n show,\n hide,\n\n first,\n prev,\n next,\n last,\n\n selectOption,\n hasSectionOptionsToInteract,\n selectSectionOptions,\n isAllSectionOptionsSelected,\n\n isAllDisabled,\n isAllSelected,\n selectAll,\n\n applyFilter,\n activeFilter,\n resetFilter\n } as InternalDropdownContextProps;\n};\n","import React, {\n Children,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n isValidElement,\n ReactElement,\n ReactNode,\n Ref,\n useEffect,\n useImperativeHandle,\n useRef\n} from 'react';\nimport { BooleanProp } from '../../../models';\n\nimport { DropdownOptionProp } from './dropdown-option';\nimport { DropdownSectionProps } from './dropdown-section';\nimport { DropdownType } from './dropdown-type';\nimport { InternalDropdown, InternalDropdownRef } from './internals/internal-dropdown';\nimport { InternalDropdownContext } from './internals/internal-dropdown-context';\nimport { useDropdownState } from './internals/use-dropdown-state';\n\nexport interface DropdownRef {\n visibility: boolean;\n show: () => void;\n hide: () => void;\n first: () => void;\n last: () => void;\n}\n\nexport interface DropdownProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange'> {\n /**\n * Number of visible options to display in the Dropdown. Remaining items will be accessible via scroll bar.\n */\n optionsVisible?: number;\n /**\n * Define the type of sections that will be used. They can be of type \"text\" or \"checkbox\".\n */\n type?: DropdownType;\n /**\n * Callback to run whenever the dropdown becomes visible.\n */\n onShow?: () => void;\n /**\n * Callback to run whenever the dropdown becomes hidden.\n */\n onHide?: () => void;\n /**\n * List of section to render.\n */\n children?: ReactElement<DropdownSectionProps> | ReactElement<DropdownSectionProps>[];\n /**\n * Callback to run whenever the select state of an option changes.\n */\n onChange?: (options: DropdownOptionProp[]) => void;\n /**\n * Enable the search bar to filter options.\n */\n searchable?: BooleanProp;\n /**\n * Accessible text for the input search bar.\n */\n searchAriaLabel?: string;\n /**\n * Placeholder text for input search bar.\n */\n searchPlaceholder?: string;\n /**\n * Text to show when filtering return no results.\n */\n noSearchResults?: ReactNode;\n /**\n * Delay to apply before starting filtering results.\n */\n searchDebounceTimeout?: number;\n /**\n * Callback to run whenever the filter runs. Called using the filter term and the filtered result options.\n */\n onSearchChange?: (value: string, options: DropdownOptionProp[]) => void;\n /**\n * Text to display in the \"select all options across all sections\" option.\n */\n selectAllLabel?: string;\n}\n\nconst Component: ForwardRefRenderFunction<DropdownRef | null, DropdownProps> = (\n { type = 'text', onChange, onSearchChange, onShow, onHide, children, ...props },\n ref: Ref<DropdownRef | null>\n) => {\n const innerRef = useRef<InternalDropdownRef>(null);\n\n const dropdownState = useDropdownState(innerRef, type, onChange, onSearchChange, onShow, onHide, children);\n\n // CALL ON CHANGE TO INITIALIZE COMPONENTS THAT USE DROPDOWN WITH INITIAL DATA\n const firstCall = useRef(false);\n useEffect(() => {\n if (!firstCall.current) {\n firstCall.current = true;\n\n const options: DropdownOptionProp[] = [];\n\n Children.forEach(children, (sectionChild) => {\n if (isValidElement<DropdownSectionProps>(sectionChild)) {\n Children.forEach(sectionChild.props.children, (optionChild) => {\n if (isValidElement<DropdownOptionProp>(optionChild) && optionChild.props.selected) {\n options.push(optionChild.props);\n }\n });\n }\n });\n\n onChange?.(options);\n }\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n return {\n visibility: dropdownState.visibility,\n show: dropdownState.show,\n hide: dropdownState.hide,\n first: dropdownState.first,\n last: dropdownState.last\n } as DropdownRef;\n },\n [dropdownState.hide, dropdownState.show, dropdownState.first, dropdownState.last, dropdownState.visibility]\n );\n\n return (\n <InternalDropdownContext.Provider value={dropdownState}>\n <InternalDropdown {...props} ref={innerRef}>\n {children}\n </InternalDropdown>\n </InternalDropdownContext.Provider>\n );\n};\n\nexport const Dropdown = forwardRef<DropdownRef | null, DropdownProps>(Component);\n","import React, { FC, ReactElement } from 'react';\nimport { BooleanProp } from '../../../models';\nimport { DropdownOptionProp } from './dropdown-option';\n\nexport interface DropdownSectionProps {\n 'className'?: string;\n 'name': string;\n 'hideSectionName'?: BooleanProp;\n 'value': string;\n 'children': ReactElement<DropdownOptionProp> | ReactElement<DropdownOptionProp>[];\n 'aria-label'?: string;\n}\n\nexport const DropdownSection: FC<DropdownSectionProps> = () => <></>;\n","import React, { FC } from 'react';\nimport { IconPosition } from '../../../models';\nimport { BooleanProp } from '../../../models/boolean-type';\n\nexport interface DropdownOptionProp {\n className?: string;\n value: string;\n children: string;\n hasIcon?: BooleanProp;\n icon?: string;\n iconPosition?: IconPosition;\n disabled?: BooleanProp;\n selected?: BooleanProp;\n}\n\nexport const DropdownOption: FC<DropdownOptionProp> = () => <></>;\n","import React, {\n Children,\n cloneElement,\n ComponentPropsWithoutRef,\n FC,\n isValidElement,\n KeyboardEvent,\n ReactElement,\n useId,\n useRef,\n useState\n} from 'react';\nimport { AvatarProps } from '../../atoms/avatar';\nimport { Button } from '../../atoms/button';\nimport { Dropdown, DropdownOption, DropdownRef, DropdownSection } from '../dropdown';\n\nexport interface VisibleCountAvatarGroupProps extends ComponentPropsWithoutRef<'div'> {\n children: ReactElement<AvatarProps> | Array<ReactElement<AvatarProps>>;\n visibleCount: number;\n avatarCount: number;\n visibleCountAriaLabel?: string;\n}\n\nexport const VisibleCountAvatarGroup: FC<VisibleCountAvatarGroupProps> = ({\n avatarCount,\n visibleCount,\n visibleCountAriaLabel,\n children\n}) => {\n const generatedId = useId();\n\n const countValue = visibleCount >= 0 ? `+${avatarCount - visibleCount}` : `+${avatarCount}`;\n\n const avatarCountList = Children.map(children, (avatar, index) => {\n if (index >= visibleCount && isValidElement(avatar)) {\n return cloneElement(avatar);\n }\n\n return null;\n });\n\n const dropdownRef = useRef<DropdownRef | null>(null);\n\n const [isDropdownVisible, setIsDropdownVisible] = useState(false);\n\n const onHide = () => {\n setIsDropdownVisible(false);\n };\n\n const onShow = () => {\n setIsDropdownVisible(true);\n };\n\n const handleKeyUp = (evt: KeyboardEvent<HTMLButtonElement>) => {\n const code = evt.code;\n\n if (dropdownRef.current) {\n if (code === 'Escape') {\n dropdownRef.current.hide();\n }\n\n if (code === 'Enter' || code === 'NumpadEnter' || code === 'Space') {\n if (dropdownRef.current.visibility) {\n dropdownRef.current.hide();\n } else {\n dropdownRef.current.show();\n }\n }\n\n if (code === 'Tab' && dropdownRef.current.visibility) {\n dropdownRef.current.first();\n }\n }\n };\n\n const handleKeyDownCapture = (evt: KeyboardEvent<HTMLButtonElement>) => {\n const code = evt.code;\n\n if (code === 'Tab') {\n // PREVENT TAB INDEX CHANGE FOCUS\n evt.preventDefault();\n evt.stopPropagation();\n }\n };\n\n const onMouseEnterHandler = () => {\n dropdownRef.current?.show();\n };\n\n const onMouseLeaveHandler = () => {\n dropdownRef.current?.hide();\n };\n\n return (\n <div className=\"avatar-visible-count-wrapper\" onMouseEnter={onMouseEnterHandler} onMouseLeave={onMouseLeaveHandler}>\n <Button\n onKeyDownCapture={handleKeyDownCapture}\n onKeyUp={handleKeyUp}\n role=\"combobox\"\n aria-expanded={isDropdownVisible}\n aria-labelledby={`avatar-group-${generatedId}-label`}\n aria-controls={`${generatedId}-dropdown-avatar-group-container`}\n className=\"avatar-visible-count\"\n >\n <div id={`avatar-group-${generatedId}-label`} aria-hidden>\n {countValue}\n </div>\n </Button>\n\n <div className=\"absolute -bottom-8 left-0 w-full min-h-[8px]\">\n <Dropdown className=\"min-w-[224px]\" ref={dropdownRef} onHide={onHide} onShow={onShow} type=\"text\">\n <DropdownSection\n name={`avatar-dropdown-${generatedId}`}\n value={`avatar-list-${generatedId}`}\n hideSectionName={true}\n aria-label={visibleCountAriaLabel}\n >\n {avatarCountList.map((avatar, index) => {\n const avatarKey = `avatar-group-${generatedId}-option-${index}`;\n\n return (\n <DropdownOption\n key={avatarKey}\n value={avatar.props.information}\n hasIcon={avatar.props.avatarType !== 'initials'}\n icon={avatar.props.srcPath}\n iconPosition=\"leading\"\n >\n {avatar.props.information}\n </DropdownOption>\n );\n })}\n </DropdownSection>\n </Dropdown>\n </div>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { Children, cloneElement, ComponentPropsWithoutRef, FC, isValidElement, ReactElement } from 'react';\nimport { AvatarProps } from '../../atoms/avatar';\nimport './avatar-group.scss';\nimport { VisibleCountAvatarGroup } from './visible-count-avatar-group';\n\nexport interface AvatarGroupProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * List of avatar components to use as children of the group.\n */\n children: ReactElement<AvatarProps> | Array<ReactElement<AvatarProps>>;\n /**\n * Number of avatars that will be visible in the group. Once it exceeds that number a separate icon will show how many more avatars there are left.\n * Clicking on the icon with the number will preview the other avatars as well.\n */\n visibleCount?: number;\n /**\n * Dark mode\n */\n darkMode?: boolean;\n /**\n * Accessible text for the dropdown containing the remaining avatars.\n */\n visibleCountAriaLabel?: string;\n}\n\nconst AvatarGroup: FC<AvatarGroupProps> = ({\n className,\n children,\n visibleCount,\n darkMode,\n visibleCountAriaLabel,\n ...props\n}): ReactElement => {\n const avatarGroupClasses = classNames('avatar-group', className, {\n 'dark-mode': darkMode\n });\n\n const avatarCount = Children.toArray(children).length;\n const totalVisibleAvatars = visibleCount ?? avatarCount;\n\n const renderAvatarListItem = (child: ReactElement<AvatarProps>) => {\n return (\n <div role=\"listitem\">\n {cloneElement<AvatarProps>(child, {\n darkMode\n } as AvatarProps)}\n </div>\n );\n };\n\n return (\n <div>\n <div {...props} className={avatarGroupClasses} role=\"list\">\n {Children.map(children, (child, index) => {\n if (index < totalVisibleAvatars) {\n return isValidElement(child) ? renderAvatarListItem(child) : null;\n }\n\n return null;\n })}\n {avatarCount > totalVisibleAvatars && (\n <div role=\"listitem\">\n <VisibleCountAvatarGroup\n visibleCount={totalVisibleAvatars}\n avatarCount={avatarCount}\n visibleCountAriaLabel={visibleCountAriaLabel}\n >\n {children}\n </VisibleCountAvatarGroup>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport { AvatarGroup };\n","import React, {\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactNode,\n Ref,\n useId,\n useImperativeHandle,\n useRef\n} from 'react';\n\nimport classNames from 'classnames';\nimport { BooleanProp } from '../../../models';\nimport { Button } from '../../atoms/button';\nimport { Tooltip, TooltipAlignment, TooltipPosition, TooltipVariant } from '../../atoms/tooltip';\n\nexport interface BackToTopProps extends ComponentPropsWithRef<'button'> {\n /**\n * The variant of the Tooltip.\n */\n tooltipVariant?: TooltipVariant;\n /**\n * Position of the tooltip to shows when the user focus or hovers the component.\n */\n tooltipPosition?: TooltipPosition;\n /**\n * Alignment of the tooltip shown whenever the user focus or hovers the component.\n */\n tooltipAlignment?: TooltipAlignment;\n /**\n * If the Tooltip has a title.\n */\n hasTooltipTitle?: BooleanProp;\n /**\n * The title of the Tooltip.\n */\n tooltipTitle?: ReactNode;\n\n /**\n * Tooltip description to show when user focus or hovers the component.\n */\n tooltipDescription: ReactNode;\n}\n\nexport const InnerBackToTop: ForwardRefRenderFunction<HTMLButtonElement, BackToTopProps> = (\n {\n tooltipVariant = 'light',\n tooltipAlignment = 'start',\n tooltipPosition = 'right',\n hasTooltipTitle,\n tooltipTitle,\n tooltipDescription,\n ...props\n },\n ref: Ref<HTMLButtonElement | null>\n) => {\n const backToTopRef = useRef<HTMLButtonElement>(null);\n const backToTopClassName = classNames('!rounded-full', props.className);\n const generatedId = useId();\n const propsClone = { ...props };\n propsClone.id = propsClone.id ?? generatedId;\n useImperativeHandle(ref, () => backToTopRef.current);\n\n const goToTop = () => {\n window.scrollTo({\n top: 0,\n behavior: 'smooth'\n });\n };\n\n return (\n <Tooltip\n id={`tooltip-${propsClone.id}`}\n variant={tooltipVariant}\n alignment={tooltipAlignment}\n position={tooltipPosition}\n hasTitle={hasTooltipTitle}\n title={tooltipTitle}\n description={tooltipDescription}\n >\n <Button\n hasIcon={true}\n {...propsClone}\n ref={backToTopRef}\n onClick={goToTop}\n leadingIcon=\"agora-line-chevron-up\"\n leadingIconHover=\"agora-line-chevron-up\"\n className={backToTopClassName}\n iconOnly\n />\n </Tooltip>\n );\n};\n\nexport const BackToTop = forwardRef<HTMLButtonElement, BackToTopProps>(InnerBackToTop);\n","import classNames from 'classnames';\nimport React, { Children, cloneElement, FC, HtmlHTMLAttributes, isValidElement, ReactElement, useId, useMemo, useState } from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { ButtonProps, ButtonVariant } from '../../atoms/button';\nimport './button-group.scss';\n\nexport interface ButtonGroupProps extends Omit<HtmlHTMLAttributes<HTMLDivElement>, 'onChange'> {\n /**\n * The flag to set Dark mode.\n */\n darkMode?: BooleanProp;\n /**\n * button variant.\n */\n variant?: ButtonVariant;\n /**\n * Defines if the anchor should be fluid\n */\n fullWidth?: BooleanProp;\n /**\n * Group name\n */\n name?: string;\n /**\n * List of button components to use as children of the group.\n */\n children?: ReactElement<ButtonProps> | Array<ReactElement<ButtonProps>>;\n /**\n * Event triggered whenever any of the buttons changes is own state.\n */\n onChange?: (selectedButtons: Array<ReactElement<ButtonProps>>) => void;\n /**\n * Defines if the group allows multiple selection.\n */\n multiple?: BooleanProp;\n}\nconst ButtonGroup: FC<ButtonGroupProps> = ({ variant = 'primary', multiple, fullWidth = false, onChange, children, ...props }) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const [selectedButtonIndexes, setSelectedButtonIndexes] = useState<number[]>([]);\n\n const childrenButtons: Array<ReactElement<ButtonProps>> = useMemo(() => {\n const ret: Array<ReactElement<ButtonProps>> = [];\n\n if (Array.isArray(children)) {\n children.forEach((child, index) => {\n if (isValidElement<ButtonProps>(child)) {\n if (child.props.selected) {\n setSelectedButtonIndexes((last) => {\n if (multiple) {\n const rawIndexes = [...last, index];\n return [...new Set(rawIndexes)];\n }\n\n return [index];\n });\n }\n\n ret.push(child);\n }\n });\n } else if (isValidElement<ButtonProps>(children)) {\n setSelectedButtonIndexes([0]);\n ret.push(children);\n }\n\n return ret;\n }, [children, setSelectedButtonIndexes, multiple]);\n\n const handleButtonClick = (index: number) => {\n const newSelectedButtonIndexes = [...selectedButtonIndexes];\n if (stringToBoolean(multiple)) {\n const isSelected = selectedButtonIndexes.includes(index);\n if (isSelected) {\n const buttonIndex = newSelectedButtonIndexes.indexOf(index);\n newSelectedButtonIndexes.splice(buttonIndex, 1);\n } else {\n newSelectedButtonIndexes.push(index);\n }\n } else {\n const isSelected = selectedButtonIndexes.length > 0 && selectedButtonIndexes[0] === index;\n if (isSelected) {\n newSelectedButtonIndexes.splice(0, 1);\n } else {\n newSelectedButtonIndexes.splice(0, newSelectedButtonIndexes.length, index);\n }\n }\n\n setSelectedButtonIndexes(newSelectedButtonIndexes);\n\n if (onChange) {\n const selectedButtons = childrenButtons.filter((_, indx) => newSelectedButtonIndexes.includes(indx));\n onChange(selectedButtons);\n }\n };\n\n const buttonGroupClasses = classNames(\n 'button-group',\n propsClone.className,\n { full: stringToBoolean(fullWidth) },\n { darkMode: stringToBoolean(propsClone.darkMode) }\n );\n\n return (\n <div className=\"agora-button-group\">\n {/* button group */}\n <div {...propsClone} className={buttonGroupClasses} role=\"group\" aria-label={propsClone.name} id={propsClone.id}>\n {Children.map(childrenButtons, (child, index) => {\n const isSelected = selectedButtonIndexes.includes(index);\n\n return cloneElement<ButtonProps>(child, {\n ...child.props,\n 'id': child.props.id ?? `${propsClone.id}-button-${index}`,\n 'variant': variant,\n 'appearance': 'outline',\n 'onClick': (evt) => {\n handleButtonClick(index);\n child.props.onClick?.(evt);\n },\n 'selected': isSelected,\n 'darkMode': propsClone.darkMode,\n 'aria-pressed': isSelected ? 'true' : 'false'\n } as ButtonProps);\n })}\n </div>\n </div>\n );\n};\n\nexport { ButtonGroup };\n","import classNames from 'classnames';\nimport React, { ChangeEvent, Children, cloneElement, FC, HtmlHTMLAttributes, ReactElement, ReactNode, useId } from 'react';\nimport { BooleanProp, FeedbackState } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Checkbox, CheckboxProps } from '../../atoms/checkbox/checkbox';\nimport { Feedback } from '../../shared/feedback';\n\nexport interface CheckboxGroupProps extends Omit<HtmlHTMLAttributes<HTMLFieldSetElement>, 'onChange'> {\n /**\n * Input label text.\n * @deprecated Deprecated prior to 0.14.0 version. Use legend property instead.\n */\n label?: string;\n /**\n * Decides if display/hide label.\n * @deprecated Deprecated prior to 0.14.0 version. Filling the property label should be enough.\n */\n hideLabel?: BooleanProp;\n /**\n * Group legend.\n */\n legend?: ReactNode;\n /**\n * List of checkboxes props to generate as checkboxes.\n */\n items?: CheckboxProps[];\n /**\n * Sets the checkbox in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below checkbox-group.\n */\n feedbackText?: ReactNode;\n /**\n * List of checkbox components to use as children of the group.\n */\n children?: ReactElement<CheckboxProps> | Array<ReactElement<ReactElement<CheckboxProps>>>;\n /**\n * Event triggered whenever any of the checkboxes changes is own state.\n */\n onChange?: (evt: ChangeEvent<HTMLInputElement>) => void;\n}\nconst CheckboxGroup: FC<CheckboxGroupProps> = ({\n className,\n label,\n hideLabel,\n legend,\n hasError,\n hasFeedback,\n feedbackText,\n feedbackState = 'info',\n onChange,\n items = [],\n children,\n ...props\n}) => {\n if (label) {\n console.warn('Using deprecated property label. Please update your CheckboxGroup component.');\n }\n\n if (hideLabel) {\n console.warn('Using deprecated property hideLabel. Please update your CheckboxGroup component.');\n }\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n let childrenCheckboxes: Array<ReactElement<ReactElement<CheckboxProps>>>;\n\n if (children) {\n if (!Array.isArray(children)) {\n childrenCheckboxes = [children] as Array<ReactElement<ReactElement<CheckboxProps>>>;\n } else {\n childrenCheckboxes = children;\n }\n } else {\n childrenCheckboxes = [];\n }\n\n const itemsCheckboxes = items.map((item, index) => {\n const key = `cb-group-${propsClone.id}-${index}`;\n return <Checkbox key={key} {...item} value={item.value ?? undefined} />;\n });\n\n const allCheckboxes = [...itemsCheckboxes, ...childrenCheckboxes];\n\n const innerOnChange = (nativeEvent: ChangeEvent<HTMLInputElement>) => {\n onChange?.(nativeEvent);\n };\n\n const containerClasses = classNames('agora-checkbox-group', className);\n\n const legendToUse = legend ?? label;\n\n return (\n <div className={containerClasses}>\n <fieldset {...propsClone}>\n {legendToUse && <legend className=\"text-[var(--color-primary-900)] text-m-medium mb-8\">{legendToUse}</legend>}\n {Children.map(allCheckboxes, (child) => {\n return cloneElement<CheckboxProps>(child, {\n ...child.props,\n onChange: innerOnChange\n } as CheckboxProps);\n })}\n </fieldset>\n\n {/* Feedback */}\n {stringToBoolean(hasFeedback) && feedbackText && (\n <Feedback feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'} feedbackText={feedbackText} />\n )}\n </div>\n );\n};\n\nexport { CheckboxGroup };\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, useId } from 'react';\nimport './loader-dialog.scss';\n\nexport interface LoaderDialogProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * The title of the loader.\n */\n title?: string;\n /**\n * The subtitle of the loader.\n */\n subtitle?: string;\n}\nexport const LoaderDialog: FC<LoaderDialogProps> = ({ title, subtitle, ...props }) => {\n const generatedId = useId();\n const propsClone = { ...props };\n propsClone.id = propsClone.id ?? generatedId;\n const loaderClass = classNames('loader-dialog');\n\n return (\n <div\n id={propsClone.id}\n {...propsClone}\n className=\"bg-[var(--color-backdrop)] absolute z-dialog w-full h-full flex flex-col justify-center items-center\"\n >\n <div className=\"flex flex-col gap-[64px] justify-center items-center w-full\">\n {(title || subtitle) && (\n <div className=\"flex w-full flex-col gap-8 justify-center items-center text-center\">\n {title && (\n <div className=\"xl:text-2xl-semibold md:text-2xl-semibold xs:text-l-semibold text-white xl:line-clamp-1 md:line-clamp-1 xs:line-clamp-2\">\n {title}\n </div>\n )}\n {subtitle && (\n <div className=\"xl:text-2xl-light md:text-2xl-light xs:text-m-light text-white xl:line-clamp-1 md:line-clamp-1 xs:line-clamp-2\">\n {subtitle}\n </div>\n )}\n </div>\n )}\n <div className={loaderClass} role=\"status\">\n <span className=\"!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]\"></span>\n </div>\n </div>\n </div>\n );\n};\n","import { createContext, useContext } from 'react';\nimport { DialogElementRef } from '../../atoms/dialog';\nimport { LoaderDialogProps } from './loader-dialog';\n\nexport interface LoaderDialogContextProps {\n current: DialogElementRef | null;\n visibility?: boolean;\n showLoader: (props: LoaderDialogProps) => void;\n hideLoader: () => void;\n}\n\nconst LoaderDialogContext = createContext<LoaderDialogContextProps>({} as LoaderDialogContextProps);\n\nconst useLoaderDialogContext = (): LoaderDialogContextProps => {\n const context = useContext(LoaderDialogContext);\n return context;\n};\n\nexport { LoaderDialogContext, useLoaderDialogContext };\n","import React, { FC, ReactNode, useCallback, useMemo, useRef, useState } from 'react';\nimport { Dialog, DialogElementRef } from '../../atoms/dialog';\nimport { LoaderDialogContext, LoaderDialogContextProps } from './loader-dialog-context';\nimport { LoaderDialog, LoaderDialogProps } from './loader-dialog';\n\nexport interface LoaderDialogProviderProps {\n /**\n * Children content.\n */\n children: ReactNode;\n}\n\nconst LoaderDialogProvider: FC<LoaderDialogProviderProps> = ({ children }) => {\n const dialogRef = useRef<DialogElementRef>(null);\n\n const [dialogProps, setDialogProps] = useState<LoaderDialogProps>();\n const [ariaLiveMessage, setAriaLiveMessage] = useState('');\n\n const showLoader = useCallback(\n (currentDialogProps: LoaderDialogProps) => {\n if (currentDialogProps['aria-label']) {\n setAriaLiveMessage(currentDialogProps['aria-label']);\n } else if (currentDialogProps['aria-labelledby']) {\n const ids = currentDialogProps['aria-labelledby'].split(' ');\n\n const val = ids\n .map((id) => {\n return document.getElementById(id)?.innerText ?? '';\n })\n .filter((str) => !!str)\n .join(' ');\n\n setAriaLiveMessage(val);\n } else {\n setAriaLiveMessage(`${currentDialogProps.title} ${currentDialogProps.subtitle}`);\n }\n\n setDialogProps(currentDialogProps);\n\n dialogRef.current?.show();\n },\n [setDialogProps]\n );\n\n const hideLoader = useCallback((): void => {\n setAriaLiveMessage('');\n dialogRef.current?.hide();\n }, []);\n\n const contextValue = useMemo(\n () =>\n ({\n showLoader,\n current: dialogRef.current,\n visibility: !!dialogRef.current?.visible,\n hideLoader\n }) as LoaderDialogContextProps,\n [showLoader, hideLoader]\n );\n\n return (\n <LoaderDialogContext.Provider value={contextValue}>\n <div aria-live=\"assertive\" className=\"sr-only\">\n {ariaLiveMessage}\n </div>\n <Dialog ref={dialogRef} fullScreen dismissOnBackdropClick={false} dismissOnEscape={false} aria-busy=\"true\">\n {!!dialogProps && <LoaderDialog {...dialogProps} />}\n </Dialog>\n {children}\n </LoaderDialogContext.Provider>\n );\n};\n\nexport { LoaderDialogProvider };\n","import classNames from 'classnames';\nimport React, {\n FC,\n forwardRef,\n ForwardRefRenderFunction,\n HTMLProps,\n MouseEvent,\n MutableRefObject,\n KeyboardEvent as ReactKeyboardEvent,\n ReactNode,\n Ref,\n useEffect,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Avatar, AvatarProps } from '../../atoms/avatar';\nimport { Icon } from '../../atoms/icon';\nimport './menu-item.scss';\nimport { ButtonProps } from '../../atoms/button';\nimport { AnchorProps } from '../../atoms/anchor';\n\n/**\n * Menu item type\n */\nexport type MenuItemType = 'primary' | 'search' | 'menu' | 'secondary' | 'user' | 'avatar' | 'close';\n\nconst IconWrapper: FC<{\n name: string;\n iconHover: string;\n iconAltText?: string;\n className?: string;\n hasChildren: boolean;\n darkMode: BooleanProp | undefined;\n}> = ({ name = 'no-icon', iconHover = 'no-icon', iconAltText, className, hasChildren, darkMode }) => {\n const wrapperClassName = classNames('icon-wrapper', className);\n const lineClassName = classNames('line', {\n 'fill-white': stringToBoolean(darkMode),\n 'fill-[var(--color-neutral-900)]': !stringToBoolean(darkMode)\n });\n const solidClassName = classNames('solid', {\n 'fill-white': stringToBoolean(darkMode),\n 'fill-[var(--color-neutral-900)]': !stringToBoolean(darkMode)\n });\n\n return (\n <div className={wrapperClassName}>\n <Icon\n name={name.replace('solid', 'line')}\n className={lineClassName}\n dimensions=\"m\"\n aria-hidden={!iconAltText}\n {...(!hasChildren ? { alt: iconAltText } : {})}\n />\n <Icon\n name={(iconHover ?? name).replace('line', 'solid')}\n className={solidClassName}\n dimensions=\"m\"\n aria-hidden={!iconAltText}\n {...(!hasChildren ? { alt: iconAltText } : {})}\n />\n </div>\n );\n};\n\ntype BaseProps = {\n /**\n * Remove default icons.\n */\n noIcons?: BooleanProp;\n\n /**\n * Type of menu item\n */\n itemType: MenuItemType;\n\n /**\n * Menu on dark background\n */\n darkMode?: BooleanProp;\n\n /**\n * Menu item is a action button\n */\n actionItem?: BooleanProp;\n\n /**\n * Children content.\n */\n children?: ReactNode;\n\n /**\n * Vertically , used with primary or secondary menu type, allow to change style of current option\n */\n vertically?: BooleanProp;\n};\n\nexport type MenuItemProps = (BaseProps & HTMLProps<HTMLButtonElement | HTMLAnchorElement | HTMLDivElement>) | (BaseProps & AvatarProps);\n\nconst ContentMenuItem: FC<MenuItemProps> = ({ itemType, children, darkMode, noIcons = false, ...props }) => {\n const leadingClassName = classNames(`${children ? 'mr-8' : ''} ${itemType}`);\n const trailingClassName = classNames(`${children ? 'ml-8' : ''} ${itemType}`);\n const childrenClassName = classNames({\n 'text-m-regular': itemType !== 'secondary' && itemType !== 'menu',\n 'text-m-semibold': itemType === 'secondary' || itemType === 'menu',\n 'text-white': stringToBoolean(darkMode),\n 'text-[var(--color-neutral-900)]': !stringToBoolean(darkMode)\n });\n\n const changeIconOpen = () => {\n if (itemType === 'search' && !stringToBoolean(props['aria-expanded'])) {\n return 'agora-line-search';\n }\n if (itemType === 'menu' && !stringToBoolean(props['aria-expanded'])) {\n return 'agora-line-menu';\n }\n if (itemType === 'user' && !stringToBoolean(props['aria-expanded'])) {\n return 'agora-line-user';\n }\n if (itemType === 'user' && stringToBoolean(props['aria-expanded'])) {\n return 'agora-line-x';\n }\n return 'agora-line-x';\n };\n const changeIconOpenHover = () => {\n if (itemType === 'search' && !stringToBoolean(props['aria-expanded'])) {\n return 'agora-solid-search';\n }\n if (itemType === 'menu' && !stringToBoolean(props['aria-expanded'])) {\n return 'agora-solid-menu';\n }\n if (itemType === 'user' && !stringToBoolean(props['aria-expanded'])) {\n return 'agora-solid-user';\n }\n if (itemType === 'user' && stringToBoolean(props['aria-expanded'])) {\n return 'agora-solid-x';\n }\n return 'agora-solid-x';\n };\n\n return (\n <>\n {!stringToBoolean(noIcons) && (itemType === 'search' || itemType === 'menu' || itemType === 'user' || itemType === 'close') && (\n <IconWrapper\n className={leadingClassName}\n name={changeIconOpen()}\n iconHover={changeIconOpenHover()}\n hasChildren={!!children}\n darkMode={darkMode}\n />\n )}\n {children && itemType !== 'close' && <span className={childrenClassName}>{children}</span>}\n {!stringToBoolean(noIcons) && (itemType === 'primary' || itemType === 'secondary') && (\n <IconWrapper\n className={trailingClassName}\n name=\"agora-line-chevron-down\"\n iconHover=\"agora-solid-chevron-down\"\n hasChildren={!!children}\n darkMode={darkMode}\n />\n )}\n </>\n );\n};\n\nexport interface MenuItemRef {\n current: HTMLButtonElement | HTMLAnchorElement | null;\n toggleMenuItem: () => void;\n}\n\nexport type ExtendedInterfaceMenu = HTMLButtonElement | HTMLAnchorElement | AvatarProps | MenuItemRef | null;\n\nexport const InnerMenuItem: ForwardRefRenderFunction<ExtendedInterfaceMenu, MenuItemProps> = (\n { itemType = 'primary', darkMode = false, actionItem = false, children, className, noIcons = false, vertically = false, ...props },\n ref: Ref<ExtendedInterfaceMenu>\n) => {\n const menuItemClassName = classNames(\n {\n 'agora-menu-item text-m-regular text-white darkMode default': stringToBoolean(darkMode) && itemType === 'primary',\n 'agora-menu-item text-m-regular text-white darkMode secondary ': stringToBoolean(darkMode) && itemType !== 'primary',\n 'agora-menu-item text-m-regular text-neutral-900 secondary ': !stringToBoolean(darkMode) && itemType !== 'primary',\n 'agora-menu-item text-m-regular text-neutral-900 default': !stringToBoolean(darkMode) && itemType === 'primary',\n 'agora-menu-item text-m-regular justify-center': !children && itemType !== 'avatar',\n 'agora-menu-item avatar': itemType === 'avatar',\n 'vertically': stringToBoolean(vertically) && (itemType === 'primary' || itemType === 'secondary')\n },\n className\n );\n\n const [ariaExpanded, setAriaExpanded] = useState(stringToBoolean(props['aria-expanded']));\n\n const menuItemRef = useRef<HTMLButtonElement | HTMLAnchorElement | null>(null);\n\n const toggleExpanded = () => {\n const { current } = menuItemRef as MenuItemRef;\n if (current?.hasAttribute('aria-expanded')) {\n const previousAriaExpanded = !stringToBoolean(current?.getAttribute('aria-expanded') ?? false);\n current?.setAttribute('aria-expanded', previousAriaExpanded.toString());\n setAriaExpanded(previousAriaExpanded);\n }\n };\n\n const onMouseDownHandler = (evt: MouseEvent<any>) => {\n evt.preventDefault();\n evt.currentTarget?.classList.add('active');\n props.onMouseDown?.(evt);\n };\n\n const onMouseUpHandler = (evt: MouseEvent<any>) => {\n evt.preventDefault();\n evt.currentTarget?.classList.remove('active');\n props.onMouseUp?.(evt);\n };\n\n const onKeyDownHandler = (evt: ReactKeyboardEvent<any>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n evt.currentTarget?.classList.add('active');\n }\n\n props.onKeyDown?.(evt);\n };\n\n const onKeyUpHandler = (evt: ReactKeyboardEvent<any>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n evt.currentTarget?.classList.remove('active');\n evt.currentTarget?.setAttribute('data-custom-triggered-click', 'true');\n evt.currentTarget?.click();\n }\n props.onKeyUp?.(evt);\n };\n\n const onClickHandler = (evt: MouseEvent<any>) => {\n // TRUE MOUSE CLICK\n if (evt.detail > 0) {\n props.onClick?.(evt);\n if (!stringToBoolean(noIcons)) {\n evt.preventDefault();\n }\n toggleExpanded();\n return;\n }\n\n toggleExpanded();\n\n // CLICK FROM KEYBOARD\n\n // NEED TO CHECK THIS ATTRIBUTE BECAUSE FIREFOX DOES NOT TRIGGER CLICK EVENTS WHENEVER THE ENTER/SPACE/NUMPADENTER KEY IS PRESSED.\n // TO FIX THAT INCONSISTENCY, WE ADD A CUSTOM ATTRIBUTE TO SIGNAL THE ARTIFICIAL CLICK TRIGGER AND PREVENT THE CHROMIUM BASED BROWSERS OF DUPLICATE CLICK EVENTS.\n // ON KEYUP THE CLICK EVENT IS TRIGGERED AND WILL BE ADDED THE CUSTOM ATTRIBUTE. THEN, IF THE BROWSER TRIGGERED ANOTHER CLICK, THE HANDLER WILL NOT FIND THE CUSTOM ATTRIBUTE AND WILL NOT TRIGGER A DUPLICATED EVENT.\n const shouldTriggerClick = menuItemRef.current?.getAttribute('data-custom-triggered-click') === 'true';\n if (shouldTriggerClick) {\n menuItemRef.current?.removeAttribute('data-custom-triggered-click');\n }\n\n if (!shouldTriggerClick) {\n evt.preventDefault();\n return;\n }\n\n props.onClick?.(evt);\n };\n useImperativeHandle(\n ref,\n () => {\n return {\n current: menuItemRef.current,\n toggleMenuItem: () => toggleExpanded()\n } as MenuItemRef;\n },\n [menuItemRef]\n );\n useEffect(() => {\n const keydownHandler = (evt: KeyboardEvent) => {\n if (evt.code === 'Escape') {\n setAriaExpanded(false);\n }\n };\n\n document.addEventListener('keydown', keydownHandler);\n return () => {\n document.removeEventListener('keydown', keydownHandler);\n };\n }, []);\n\n return (\n <>\n {actionItem && itemType !== 'avatar' && (\n <button\n {...(props as ButtonProps)}\n role={itemType === 'menu' ? 'button' : 'menuitem'}\n className={menuItemClassName}\n type=\"button\"\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onKeyUp={onKeyUpHandler}\n onMouseDown={onMouseDownHandler}\n onMouseUp={onMouseUpHandler}\n ref={menuItemRef as MutableRefObject<HTMLButtonElement>}\n >\n <ContentMenuItem {...props} noIcons={noIcons} itemType={itemType} darkMode={darkMode} aria-expanded={ariaExpanded}>\n {children}\n </ContentMenuItem>\n </button>\n )}\n {!actionItem && itemType !== 'avatar' && (\n <a\n {...(props as AnchorProps)}\n role={itemType === 'menu' ? 'link' : 'menuitem'}\n tabIndex={0}\n className={menuItemClassName}\n ref={menuItemRef as MutableRefObject<HTMLAnchorElement>}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onKeyUp={onKeyUpHandler}\n onMouseDown={onMouseDownHandler}\n onMouseUp={onMouseUpHandler}\n >\n <ContentMenuItem {...props} noIcons={noIcons} itemType={itemType} darkMode={darkMode} aria-expanded={ariaExpanded}>\n {children}\n </ContentMenuItem>\n </a>\n )}\n {itemType === 'avatar' && (\n <Avatar\n {...(props as AvatarProps)}\n darkMode={stringToBoolean(darkMode)}\n aria-expanded={ariaExpanded}\n aria-haspopup={props['aria-haspopup']}\n aria-current={props['aria-current']}\n aria-label={props['aria-label']}\n role=\"menuitem\"\n className={menuItemClassName}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onKeyUp={onKeyUpHandler}\n onMouseDown={onMouseDownHandler}\n onMouseUp={onMouseUpHandler}\n />\n )}\n </>\n );\n};\n\nexport const MenuItem = forwardRef<ExtendedInterfaceMenu, MenuItemProps>(InnerMenuItem);\n","import { createContext, ReactNode, useContext } from 'react';\nimport { DialogElementRef } from '../../atoms/dialog';\nimport { ModalDialogProps } from './modal-dialog';\n\nexport interface ModalContextProps {\n current: DialogElementRef | null;\n visibility?: boolean;\n show: (children: ReactNode, popupProps: ModalDialogProps) => void;\n hide: () => void;\n}\n\nconst ModalContext = createContext<ModalContextProps>({} as ModalContextProps);\n\nconst useModalContext = (): ModalContextProps => {\n return useContext(ModalContext);\n};\n\nexport { ModalContext, useModalContext };\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode } from 'react';\nimport { BooleanProp } from '../../../models/boolean-type';\nimport { stringToBoolean } from '../../../utils';\nimport { Button } from '../../atoms/button';\nimport { useModalContext } from './modal-context';\nimport './modal-dialog.scss';\n\nexport interface ModalDialogProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * Close button text.\n */\n closeButtonLabel: string;\n /**\n * Children content.\n */\n children: ReactNode;\n /**\n * Render dialog with dark mode styles.\n */\n darkMode?: BooleanProp;\n}\n\nconst ModalDialog: FC<ModalDialogProps> = ({ closeButtonLabel, children, darkMode = true }) => {\n const { hide } = useModalContext();\n\n const containerClassNames = classNames('agora-modal-dialog-container', { 'dark-mode': stringToBoolean(darkMode) });\n\n return (\n <div className={containerClassNames}>\n <div className=\"agora-modal-dialog w-full h-full flex flex-col\">\n <div className=\"agora-popup-dialog-header h-128 flex flex-row items-start justify-end\">\n <Button\n className=\"mt-16 mr-24\"\n onClick={hide}\n appearance=\"link\"\n variant=\"neutral\"\n darkMode={darkMode}\n hasIcon\n trailingIcon=\"agora-line-x\"\n trailingIconHover=\"agora-solid-x\"\n >\n {closeButtonLabel}\n </Button>\n </div>\n <div className=\"agora-popup-dialog-body mb-32 max-h-[calc(100%-160px)] overflow-hidden\">\n <div tabIndex={-1} className=\"max-h-full overflow-auto container mx-auto\">\n {children}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport { ModalDialog };\n","import React, { FC, ReactNode, useCallback, useMemo, useRef, useState } from 'react';\nimport { BooleanProp } from '../../../models/boolean-type';\nimport { stringToBoolean } from '../../../utils';\nimport { Dialog, DialogElementRef } from '../../atoms/dialog/dialog';\nimport { ModalContext, ModalContextProps } from './modal-context';\nimport { ModalDialog, ModalDialogProps } from './modal-dialog';\n\nexport interface ModalProviderProps {\n /**\n * Allows the dialog to be closed by pressing Escape key.\n */\n dismissOnEscape?: BooleanProp;\n /**\n * Children content.\n */\n children: ReactNode;\n}\n\nconst ModalProvider: FC<ModalProviderProps> = ({ dismissOnEscape = true, children }) => {\n const dialogRef = useRef<DialogElementRef>(null);\n\n const [dialogChildren, setDialogChildren] = useState<ReactNode>();\n const [dialogProps, setDialogProps] = useState<ModalDialogProps>();\n\n const show = useCallback(\n (currentDialogChildren: ReactNode, currentDialogProps: ModalDialogProps) => {\n setDialogChildren(currentDialogChildren);\n setDialogProps(currentDialogProps);\n dialogRef.current?.show();\n },\n [setDialogChildren, setDialogProps]\n );\n\n const hide = useCallback((): void => {\n dialogRef.current?.hide();\n }, []);\n\n const contextValue = useMemo(\n () =>\n ({\n current: dialogRef.current,\n visibility: !!dialogRef.current?.visible,\n show,\n hide\n }) as ModalContextProps,\n [show, hide]\n );\n\n return (\n <ModalContext.Provider value={contextValue}>\n <Dialog\n ref={dialogRef}\n fullScreen\n dismissOnBackdropClick={false}\n dismissOnEscape={stringToBoolean(dismissOnEscape)}\n aria-label={dialogProps?.['aria-label']}\n >\n {!!dialogProps && <ModalDialog {...dialogProps}>{dialogChildren}</ModalDialog>}\n </Dialog>\n {children}\n </ModalContext.Provider>\n );\n};\n\nexport { ModalProvider };\n","import { createContext, ReactNode, useContext } from 'react';\nimport { DialogElementRef } from '../../atoms/dialog';\nimport { PopupDialogProps } from './popup-dialog';\n\nexport interface PopupContextProps {\n current: DialogElementRef | null;\n visibility?: boolean;\n show: (children: ReactNode, popupProps: PopupDialogProps) => void;\n hide: () => void;\n}\n\nconst PopupContext = createContext<PopupContextProps>({} as PopupContextProps);\n\nconst usePopupContext = (): PopupContextProps => {\n return useContext(PopupContext);\n};\n\nexport { PopupContext, usePopupContext };\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode, useEffect, useRef, useState } from 'react';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Button } from '../../atoms/button';\nimport { usePopupContext } from './popup-context';\nimport './popup-dialog.scss';\n\nexport type PopupDimensions = 's' | 'm' | 'l';\n\nexport interface PopupDialogProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * Available popup sizes. Can be small (S), medium (M), and large (L) dimensions.\n */\n dimensions?: PopupDimensions;\n /**\n * Title of the popup dialog.\n */\n title: ReactNode;\n /**\n * Close button alternative text.\n */\n closeAriaLabel: string;\n /**\n * Children content.\n */\n children: ReactNode;\n /**\n * Render dialog with dark mode styles.\n */\n darkMode?: BooleanProp;\n}\n\nconst PopupDialog: FC<PopupDialogProps> = ({ darkMode = false, dimensions = 'm', closeAriaLabel, title, children }) => {\n const popupHeaderRef = useRef<HTMLDivElement>(null);\n\n const [maxHeight, setMaxHeight] = useState('');\n\n const { hide } = usePopupContext();\n\n const dialogClassNames = classNames('agora-popup-dialog max-h-full rounded-16 p-32', `agora-popup-dialog-${dimensions}`, {\n 'dark-mode': stringToBoolean(darkMode)\n });\n\n const titleClassNames = classNames('title mt-8 w-full line-clamp-6 text-xl-bold');\n\n useEffect(() => {\n const elem = popupHeaderRef.current;\n\n if (elem) {\n const { height } = (elem as HTMLElement).getBoundingClientRect();\n setMaxHeight(`calc(100% - ${height + 16}px)`); // height + margin-bottom\n }\n }, [title]);\n\n return (\n <div className=\"absolute z-dialog max-h-full flex justify-center my-64 md:my-128 mx-32 md:mx-auto\">\n <div className={dialogClassNames}>\n <div ref={popupHeaderRef} className=\"agora-popup-dialog-header flex flex-row items-start gap-24 mb-16\">\n <div className={titleClassNames}>{title}</div>\n <Button\n onClick={hide}\n appearance=\"link\"\n variant=\"neutral\"\n iconOnly\n hasIcon\n trailingIcon=\"agora-line-x\"\n trailingIconHover=\"agora-solid-x\"\n aria-label={closeAriaLabel}\n ></Button>\n </div>\n <div style={{ maxHeight: maxHeight ?? 'none' }} className={`agora-popup-dialog-body overflow-y-auto`}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nexport { PopupDialog };\n","import React, { FC, ReactNode, useCallback, useMemo, useRef, useState } from 'react';\nimport { BooleanProp } from '../../../models/boolean-type';\nimport { stringToBoolean } from '../../../utils';\nimport { Dialog, DialogElementRef } from '../../atoms/dialog/dialog';\nimport { PopupContext, PopupContextProps } from './popup-context';\nimport { PopupDialog, PopupDialogProps } from './popup-dialog';\n\nexport interface PopupProviderProps {\n /**\n * If not a fullscreen dialog, allows the user to dismiss the dialog by clicking in the backdrop\n */\n dismissOnBackdropClick?: BooleanProp;\n /**\n * Allows the dialog to be closed by pressing Escape key.\n */\n dismissOnEscape?: BooleanProp;\n /**\n * Children content.\n */\n children: ReactNode;\n}\n\nconst PopupProvider: FC<PopupProviderProps> = ({ dismissOnBackdropClick = true, dismissOnEscape = true, children }) => {\n const dialogRef = useRef<DialogElementRef>(null);\n\n const [dialogChildren, setDialogChildren] = useState<ReactNode>();\n const [dialogProps, setDialogProps] = useState<PopupDialogProps>();\n\n const show = useCallback(\n (currentDialogChildren: ReactNode, currentDialogProps: PopupDialogProps) => {\n setDialogChildren(currentDialogChildren);\n setDialogProps(currentDialogProps);\n dialogRef.current?.show();\n },\n [setDialogChildren, setDialogProps]\n );\n\n const hide = useCallback((): void => {\n dialogRef.current?.hide();\n }, []);\n\n const contextValue = useMemo(\n () =>\n ({\n current: dialogRef.current,\n visibility: !!dialogRef.current?.visible,\n show,\n hide\n }) as PopupContextProps,\n [show, hide]\n );\n\n return (\n <PopupContext.Provider value={contextValue}>\n <Dialog\n ref={dialogRef}\n fullScreen={false}\n dismissOnBackdropClick={stringToBoolean(dismissOnBackdropClick)}\n dismissOnEscape={stringToBoolean(dismissOnEscape)}\n aria-label={dialogProps?.['aria-label']}\n >\n {!!dialogProps && <PopupDialog {...dialogProps}>{dialogChildren}</PopupDialog>}\n </Dialog>\n {children}\n </PopupContext.Provider>\n );\n};\n\nexport { PopupProvider };\n","import classNames from 'classnames';\nimport React, { Children, cloneElement, FC, HtmlHTMLAttributes, isValidElement, ReactElement, useId, useMemo } from 'react';\nimport { ProgressBarProps } from '../../atoms/progress-bar/progress-bar';\nimport './progress-bar-group.scss';\n\n/**\n * ProgressBarGroup component.\n */\nexport interface ProgressBarGroupProps extends HtmlHTMLAttributes<HTMLDivElement> {\n /**\n * The label text to display.\n */\n label?: string;\n /**\n * Whether to hide the label or not.\n */\n hideLabel?: boolean;\n /**\n * List of progress components to use as children of the group.\n */\n children?: ReactElement<ProgressBarProps> | Array<ReactElement<ProgressBarProps>>;\n /**\n * Whether to hide the percentage value or not.\n */\n hidePercentageValues?: boolean;\n /**\n * Whether to display the progress bars in a sequential order or not.\n */\n sequential?: boolean;\n}\n\nconst ProgressBarGroup: FC<ProgressBarGroupProps> = ({\n label,\n hideLabel,\n hidePercentageValues,\n children,\n sequential,\n ...props\n}): ReactElement => {\n const generatedId = useId();\n\n const propsClone = { ...props, id: props.id ?? generatedId };\n\n const progressBars = Children.toArray(children);\n\n const activeCurrent = useMemo(() => {\n let foundCurrent = false;\n let currentCount = 0;\n\n progressBars.forEach((p) => {\n if (isValidElement(p)) {\n if (p.props.current) {\n currentCount += 1;\n foundCurrent = true;\n }\n }\n });\n\n if (!foundCurrent) {\n return 0;\n }\n\n if (foundCurrent && currentCount === 1) {\n return progressBars.findIndex((p) => isValidElement(p) && p.props.current);\n }\n\n const firstNotCompletedIndex = progressBars.findIndex((p) => {\n if (isValidElement(p)) {\n const validatedValue = Math.max(0, Math.min(p.props.value, p.props.max));\n\n return validatedValue < p.props.max;\n }\n\n return false;\n });\n\n return firstNotCompletedIndex < 0 ? progressBars.length - 1 : firstNotCompletedIndex;\n }, [progressBars]);\n\n const sumMaxValues = useMemo(() => {\n let currentCount = 0;\n\n progressBars.forEach((p) => {\n if (isValidElement(p)) {\n currentCount += p.props.max;\n }\n });\n\n return currentCount;\n }, [progressBars]);\n\n const sumValues = useMemo(() => {\n let currentCount = 0;\n\n progressBars.forEach((p) => {\n if (isValidElement(p)) {\n currentCount += p.props.value;\n }\n });\n\n return currentCount;\n }, [progressBars]);\n\n // function to render progress bars\n const renderProgressBars = (child: ReactElement<ProgressBarProps>, index: number) => {\n const isCurrent = index === activeCurrent;\n let currentVal = child.props.value ?? 0;\n\n if (sequential) {\n currentVal = activeCurrent < index ? 0 : currentVal;\n }\n\n return cloneElement(child, {\n 'key': child.props.id ?? index,\n 'current': isCurrent,\n 'value': currentVal,\n 'aria-hidden': true\n });\n };\n\n // function to be used to calculate the progress value\n const progressValue = () => {\n let value = 0;\n Children.forEach(children, (child, index) => {\n if (isValidElement(child)) {\n if (child.props.value !== undefined && child.props.max !== undefined) {\n if (!sequential || index <= activeCurrent) {\n value += Math.min(child.props.value, child.props.max);\n }\n }\n }\n });\n return Math.round((value / sumMaxValues) * 100);\n };\n\n const percentageClasses = classNames('progress-bar-percentage', {\n 'sr-only': hidePercentageValues,\n 'not-sr-only': !hidePercentageValues\n });\n\n return (\n <div {...propsClone}>\n {!hideLabel && <label htmlFor={propsClone.id}>{label}</label>}\n <div\n className=\"progress-bar-group\"\n role=\"progressbar\"\n aria-valuenow={sumValues}\n aria-valuetext={`${sumValues}/${sumMaxValues}`}\n aria-valuemax={100}\n >\n {Children.map(children, (child, index) => (isValidElement(child) ? renderProgressBars(child, index) : null))}\n </div>\n {!hidePercentageValues && (\n <div className={percentageClasses} role=\"status\">\n {progressValue()}%\n </div>\n )}\n </div>\n );\n};\n\nexport { ProgressBarGroup };\n","import classNames from 'classnames';\nimport React, { ChangeEvent, Children, cloneElement, FC, HtmlHTMLAttributes, ReactElement, ReactNode, useId } from 'react';\nimport { BooleanProp, FeedbackState } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { RadioButton } from '../../atoms/radio';\nimport { RadioButtonProps } from '../../atoms/radio/radio';\nimport { Feedback } from '../../shared/feedback';\n\nexport interface RadioButtonGroupProps extends Omit<HtmlHTMLAttributes<HTMLFieldSetElement>, 'onChange'> {\n /**\n * Input label text.\n * @deprecated Deprecated prior to 0.14.0 version. Use legend property instead.\n */\n label?: ReactNode;\n /**\n * Decides if display/hide label.\n * @deprecated Deprecated prior to 0.14.0 version. Filling the property label should be enough.\n */\n hideLabel?: BooleanProp;\n /**\n * Group legend.\n */\n legend?: ReactNode;\n /**\n * Group name\n */\n name: string;\n /**\n * Sets the radio button in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below radio-button.\n */\n feedbackText?: ReactNode;\n /**\n * List of radiobutton props to generate as radio buttons.\n */\n items?: RadioButtonProps[];\n /**\n * List of radio button components to use as children of the group.\n */\n children?: ReactElement<RadioButtonProps> | Array<ReactElement<ReactElement<RadioButtonProps>>>;\n /**\n * Event triggered whenever any of the radio buttons changes is own state.\n */\n onChange?: (evt: ChangeEvent<HTMLInputElement>) => void;\n}\nconst RadioButtonGroup: FC<RadioButtonGroupProps> = ({\n className,\n label,\n hideLabel,\n legend,\n hasError,\n hasFeedback,\n feedbackState = 'info',\n feedbackText,\n onChange,\n items = [],\n children,\n ...props\n}) => {\n if (label) {\n console.warn('Using deprecated property label. Please update your RadioButtonGroup component.');\n }\n\n if (hideLabel) {\n console.warn('Using deprecated property hideLabel. Please update your RadioButtonGroup component.');\n }\n\n const generatedId = useId();\n const generatedName = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n propsClone.name = propsClone.name ?? generatedName;\n\n let childrenRadioButtons: Array<ReactElement<ReactElement<RadioButtonProps>>>;\n\n if (children) {\n if (!Array.isArray(children)) {\n childrenRadioButtons = [children] as ReactElement<ReactElement<RadioButtonProps>>[];\n } else {\n childrenRadioButtons = children;\n }\n } else {\n childrenRadioButtons = [];\n }\n\n const itemsRadioButtons = items.map((item, index) => {\n const key = `rb-group-${propsClone.id}-${index}`;\n return <RadioButton key={key} {...item} />;\n });\n\n const allRadioButtons = [...itemsRadioButtons, ...childrenRadioButtons];\n\n const innerOnChange = (nativeEvent: ChangeEvent<HTMLInputElement>) => {\n onChange?.(nativeEvent);\n };\n\n const containerClasses = classNames('agora-radio-button-group', className);\n\n const legendToUse = legend ?? label;\n\n return (\n <div className={containerClasses}>\n <fieldset {...propsClone}>\n {legendToUse && <legend className=\"text-[var(--color-primary-900)] text-m-medium mb-8\">{legendToUse}</legend>}\n\n {Children.map(allRadioButtons, (child) => {\n return cloneElement<RadioButtonProps>(child, {\n ...child.props,\n name: propsClone.name,\n onChange: innerOnChange\n } as RadioButtonProps);\n })}\n </fieldset>\n\n {/* Feedback */}\n {stringToBoolean(hasFeedback) && feedbackText && (\n <Feedback feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'} feedbackText={feedbackText} />\n )}\n </div>\n );\n};\n\nexport { RadioButtonGroup };\n","import React, { ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction } from 'react';\nimport { BooleanProp } from '../../../models';\nimport classNames from 'classnames';\nimport { Button } from '../../atoms/button';\n\nexport interface SearchPageProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Current page.\n */\n current?: BooleanProp;\n\n /**\n * Page number.\n */\n pageNumber?: number;\n}\n\nexport const InnerSearchPage: ForwardRefRenderFunction<HTMLDivElement, SearchPageProps> = (\n { className, current, pageNumber, ...props },\n ref\n) => {\n const containerClasses = classNames('search-page', className, {\n current\n });\n\n return (\n <div {...props} ref={ref}>\n <Button\n className={containerClasses}\n appearance=\"link\"\n aria-label={pageNumber?.toString()}\n {...(current ? { 'aria-current': 'page' } : {})}\n >\n {pageNumber}\n </Button>\n </div>\n );\n};\n\nexport const SearchPage = forwardRef<HTMLDivElement, SearchPageProps>(InnerSearchPage);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction } from 'react';\n\nexport interface SearchPaginationNumberOverlayProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Dots value.\n */\n value?: string;\n}\n\nexport const InnerSearchPaginationNumberOverlayProps: ForwardRefRenderFunction<HTMLDivElement, SearchPaginationNumberOverlayProps> = (\n { className, value, ...props },\n ref\n) => {\n const classes = classNames('nav-number-overlay', className);\n\n return (\n <div {...props} ref={ref} className={classes}>\n {value}\n </div>\n );\n};\n\nexport const SearchPaginationNumberOverlay = forwardRef<HTMLDivElement, SearchPaginationNumberOverlayProps>(\n InnerSearchPaginationNumberOverlayProps\n);\n","import classNames from 'classnames';\nimport React, { cloneElement, ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction, useEffect, useMemo, useState } from 'react';\nimport { useWindowSize } from '../../../hooks';\nimport { stringToBoolean } from '../../../utils';\nimport { Button } from '../../atoms/button';\nimport { SearchPage, SearchPageProps } from './search-page';\nimport { SearchPaginationNumberOverlay } from './search-pagination-number-overlay';\nimport './search-pagination.scss';\n\nexport interface SearchPaginationProps extends Omit<ComponentPropsWithoutRef<'nav'>, 'onChange'> {\n /**\n * Define the total number of pages.\n */\n totalPages?: number;\n\n /**\n * The flag to hide previous page button.\n */\n hidePreviousPageButton?: boolean;\n\n /**\n * The flag to hide next page button.\n */\n hideNextPageButton?: boolean;\n\n /**\n * Define the number of visible page buttons at the beginning and end.\n */\n boundaryCount?: number;\n\n /**\n * Define the number of visible page buttons before and after the current page.\n */\n siblingCount?: number;\n\n /**\n * Search Pagination navigation alternative text.\n */\n label: string;\n\n /**\n * Next page button alternative text.\n */\n nextPageAriaLabel: string;\n\n /**\n * Previous page button alternative text.\n */\n previousPageAriaLabel: string;\n\n /**\n * Event triggered whenever any of the search pages changes is current state.\n */\n onChange?: (page: number) => void;\n}\n\nexport const InnerSearchPagination: ForwardRefRenderFunction<HTMLDivElement, SearchPaginationProps> = (\n {\n totalPages = 0,\n className,\n hidePreviousPageButton,\n hideNextPageButton,\n boundaryCount = 0,\n siblingCount = 0,\n label,\n nextPageAriaLabel,\n previousPageAriaLabel,\n onChange,\n ...props\n },\n ref\n) => {\n const { width } = useWindowSize();\n const [activePage, setActivePage] = useState(0);\n const navArrowsClasses = classNames('nav-arrows');\n\n // Mobile screen limitations\n if (width <= 360) {\n boundaryCount = 1;\n siblingCount = 0;\n }\n\n useEffect(() => {\n onChange?.(activePage);\n }, [activePage]);\n\n const prev = () => {\n if (activePage > 0) {\n setActivePage((prevPage) => prevPage - 1);\n }\n };\n\n const next = () => {\n if (activePage < totalPages - 1) {\n setActivePage((prevPage) => prevPage + 1);\n }\n };\n\n const pages = Array.from({ length: totalPages }, (_, index) => {\n return <SearchPage key={index} pageNumber={index + 1} />;\n });\n\n const showAllPagesContent = useMemo(() => {\n return pages?.map((page, page_index) => {\n return cloneElement<SearchPageProps>(page, {\n ...page.props,\n onClick: () => setActivePage(page_index),\n current: stringToBoolean(activePage === page_index)\n });\n });\n }, [className, totalPages, boundaryCount, siblingCount, activePage]);\n\n const paginationContent = useMemo(() => {\n // Calculate left and right sibling index and make sure they are within range index 0 and totalPages\n const leftSiblingIndex = Math.max(activePage - siblingCount, 0);\n const rightSiblingIndex = Math.min(activePage + siblingCount, totalPages);\n\n // Get visible pagination numbers\n const leftRange = pages.slice(0, boundaryCount);\n const middleRange = pages.slice(leftSiblingIndex, rightSiblingIndex + 1);\n const rightRange = pages.slice(totalPages - boundaryCount, totalPages);\n const visiblePages = [...new Set([...leftRange, ...middleRange, ...rightRange])];\n\n // Preview pagination dots if necessary\n const shouldShowLeftDots = leftSiblingIndex > boundaryCount;\n const shouldShowRightDots = rightSiblingIndex < totalPages - (boundaryCount + 1);\n\n return pages?.map((page, page_index) => {\n if (visiblePages.some((item) => page == item)) {\n return cloneElement<SearchPageProps>(page, {\n ...page.props,\n onClick: () => setActivePage(page_index),\n current: stringToBoolean(activePage === page_index)\n });\n }\n\n if (shouldShowLeftDots && page_index == boundaryCount) {\n return <SearchPaginationNumberOverlay key=\"left-dots\" value=\"...\" />;\n }\n\n if (shouldShowRightDots && page_index == totalPages - boundaryCount - 1) {\n return <SearchPaginationNumberOverlay key=\"right-dots\" value=\"...\" />;\n }\n });\n }, [className, totalPages, boundaryCount, siblingCount, activePage]);\n\n return (\n <nav {...props} aria-label={label} className=\"search-pagination\" ref={ref}>\n <Button\n onClick={prev}\n appearance=\"link\"\n hasIcon=\"true\"\n iconOnly=\"true\"\n leadingIcon=\"agora-solid-chevron-left\"\n leadingIconHover=\"agora-solid-chevron-left\"\n disabled={activePage === 0}\n className={`${navArrowsClasses} ${hidePreviousPageButton ? 'hide-arrow' : 'show-arrow'}`}\n aria-label={previousPageAriaLabel}\n ></Button>\n <div className=\"nav-pages\">{boundaryCount === 0 && siblingCount === 0 ? showAllPagesContent : paginationContent}</div>\n <Button\n onClick={next}\n appearance=\"link\"\n hasIcon=\"true\"\n iconOnly=\"true\"\n trailingIcon=\"agora-solid-chevron-right\"\n trailingIconHover=\"agora-solid-chevron-right\"\n disabled={activePage === totalPages - 1}\n className={`${navArrowsClasses} ${hideNextPageButton ? 'hide-arrow' : 'show-arrow'}`}\n aria-label={nextPageAriaLabel}\n ></Button>\n </nav>\n );\n};\n\nexport const SearchPagination = forwardRef<HTMLDivElement, SearchPaginationProps>(InnerSearchPagination);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, useId } from 'react';\nimport { Button, ButtonProps } from '../../../atoms/button/button';\nimport './file-list.scss';\n\nexport interface FileListProps extends ComponentPropsWithoutRef<'div'> {\n files: File[];\n\n removeFileButtonLabel: string;\n onFileRemove?: (fileRemoved: File) => void;\n\n replaceFileButtonLabel: string;\n onFileReplace?: (fileReplaced: File) => void;\n}\n\nconst FileList: FC<FileListProps> = ({\n files = [],\n\n removeFileButtonLabel,\n onFileRemove,\n\n replaceFileButtonLabel,\n onFileReplace,\n\n ...props\n}) => {\n const generatedId = useId();\n\n const handleReplaceFile = (fileToReplace: File) => {\n onFileReplace?.(fileToReplace);\n };\n\n const handleRemoveFile = (fileToRemoved: File) => {\n onFileRemove?.(fileToRemoved);\n };\n\n const getParsedSizeString = (bytes: number, decimals = 0) => {\n const k = 1024;\n const decimalCases = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(decimalCases))} ${sizes[i]}`;\n };\n\n const getAvailableFileActions = (file: File): ButtonProps[] => {\n return [\n {\n 'className': 'replace-action',\n 'hasIcon': true,\n 'iconOnly': true,\n 'appearance': 'link',\n 'variant': 'neutral',\n 'leadingIcon': 'agora-line-refresh-ccw',\n 'leadingIconHover': 'agora-solid-refresh-ccw',\n 'onClick': () => handleReplaceFile(file),\n 'aria-label': `${replaceFileButtonLabel} ${file.name}`\n },\n {\n 'className': 'delete-action',\n 'hasIcon': true,\n 'iconOnly': true,\n 'appearance': 'link',\n 'variant': 'neutral',\n 'leadingIcon': 'agora-line-trash',\n 'leadingIconHover': 'agora-solid-trash',\n 'onClick': () => handleRemoveFile(file),\n 'aria-label': `${removeFileButtonLabel} ${file.name}`\n }\n ] as ButtonProps[];\n };\n\n const fileListClassNames = classNames('agora-file-list', props.className);\n\n return (\n <>\n {files.length > 0 && (\n <ul className={fileListClassNames}>\n {files.map((file, index) => {\n const fileIndex = `${generatedId}-${file.name}-${index}`;\n const actions = getAvailableFileActions(file);\n\n return (\n <li className=\"file\" key={fileIndex}>\n <div className=\"file-item\">\n <div className=\"file-info\">\n <div className=\"name\">{file.name}</div>\n <div className=\"size\">{getParsedSizeString(file.size)}</div>\n </div>\n\n {actions.length > 0 && (\n <div className=\"actions\">\n {actions.map((actionBtnProps, actionIndex) => {\n const actionKey = `${fileIndex}-action-${actionIndex}`;\n return <Button key={actionKey} {...actionBtnProps} />;\n })}\n </div>\n )}\n </div>\n\n <div className=\"file-divider\" />\n </li>\n );\n })}\n </ul>\n )}\n </>\n );\n};\n\nexport { FileList };\n","import { useEffect, useState } from 'react';\n\nconst isFileExtensionAllowed = (fileName: string, extensionWhitelist: string[]): boolean => {\n if (extensionWhitelist.length == 0) {\n return true;\n }\n\n const lastPoint = fileName.lastIndexOf('.');\n const fileExtension = fileName.substring(lastPoint);\n const isAllowed = extensionWhitelist.includes(fileExtension);\n\n return isAllowed;\n};\n\nconst isNotDuplicated = (filename: string, files: File[]): boolean => {\n return files.findIndex((f) => f.name === filename) < 0;\n};\n\nconst getFileInput = (\n multiple: boolean,\n extensionWhiteList: string[],\n onChangeHandler: (event: Event) => void,\n fileToReplace?: string\n): HTMLInputElement => {\n const input = document.createElement('input');\n input.type = 'file';\n input.onchange = onChangeHandler;\n input.multiple = multiple;\n input.accept = extensionWhiteList.join(',');\n\n if (fileToReplace) {\n input.dataset.replaceFile = fileToReplace;\n }\n\n return input;\n};\n\nconst validateFiles = (\n lastFiles: File[],\n newFiles: File[],\n maxCount: number,\n maxSize: number,\n extensionWhitelist: string[],\n replaceValidation = false\n): FileUploadError => {\n let hasErrors = false;\n const duplicatedFiles: string[] = [];\n const sizeExceededFiles: string[] = [];\n const extensionForbiddenFiles: string[] = [];\n\n const maxCountExceeded = !replaceValidation && maxCount < lastFiles.length + newFiles.length;\n if (maxCountExceeded) {\n hasErrors = true;\n }\n\n newFiles.forEach((file) => {\n if (!isNotDuplicated(file.name, lastFiles)) {\n hasErrors = true;\n duplicatedFiles.push(file.name);\n }\n\n if (file.size > maxSize) {\n hasErrors = true;\n sizeExceededFiles.push(file.name);\n }\n\n if (!isFileExtensionAllowed(file.name, extensionWhitelist)) {\n hasErrors = true;\n extensionForbiddenFiles.push(file.name);\n }\n });\n\n return {\n hasErrors,\n maxCountExceeded,\n duplicatedFiles,\n sizeExceededFiles,\n extensionForbiddenFiles\n } as FileUploadError;\n};\n\nexport interface FileUploadError {\n hasErrors: boolean;\n maxCountExceeded: boolean;\n duplicatedFiles: string[];\n sizeExceededFiles: string[];\n extensionForbiddenFiles: string[];\n}\n\nexport interface IUseFileUpload {\n files: File[];\n errors: FileUploadError | null;\n onAddFiles: () => void;\n onRemoveFile: (file: File) => void;\n onReplaceFile: (file: File) => void;\n onPasteFiles: (files: File[]) => void;\n onReset: (files: File[]) => void;\n}\n\nexport const useFileUpload = (\n maxFileCount: number,\n maxFileSize: number,\n extensionWhitelist: string[],\n multiple: boolean,\n onChange: (files: File[]) => void,\n defaultFiles?: File[]\n): IUseFileUpload => {\n const [trigger, setTrigger] = useState(0);\n\n const [files, setFiles] = useState<File[]>([]);\n\n const [errors, setErrors] = useState<FileUploadError | null>(null);\n\n const getParsedMaxCount = () => {\n return multiple ? maxFileCount : 1;\n };\n\n const resetFiles = (initialFiles: File[]) => {\n const validationErrors = validateFiles([], initialFiles, getParsedMaxCount(), maxFileSize, extensionWhitelist);\n\n const newFiles = [];\n\n if (!validationErrors.hasErrors) {\n setErrors(null);\n newFiles.push(...initialFiles);\n } else {\n setErrors(validationErrors);\n }\n\n setTrigger(+new Date());\n\n setFiles(newFiles);\n };\n\n const addFiles = (filesToAdd: File[]) => {\n if (filesToAdd.length == 0) {\n setTrigger(+new Date());\n return;\n }\n\n setFiles((prevFiles) => {\n const validationErrors = validateFiles(prevFiles, filesToAdd, getParsedMaxCount(), maxFileSize, extensionWhitelist);\n\n const newFiles = [...prevFiles];\n\n if (!validationErrors.hasErrors) {\n setErrors(null);\n newFiles.push(...filesToAdd);\n } else {\n setErrors(validationErrors);\n }\n\n setTrigger(+new Date());\n\n return newFiles;\n });\n };\n\n const removeFile = (file: File) => {\n setFiles((lastFiles) => {\n setErrors(null);\n setTrigger(+new Date());\n return lastFiles.filter((f) => f.name !== file.name);\n });\n };\n\n const replaceFile = (replaceFileName: string, filesToAdd: File[]) => {\n if (!replaceFileName || filesToAdd.length == 0) {\n return;\n }\n\n setFiles((prevFiles) => {\n const validationErrors = validateFiles(prevFiles, [filesToAdd[0]], getParsedMaxCount(), maxFileSize, extensionWhitelist, true);\n\n const newFiles = [...prevFiles];\n\n if (!validationErrors.hasErrors) {\n setErrors(null);\n\n const targetIndex = newFiles.findIndex((f) => f.name === replaceFileName);\n\n if (targetIndex >= 0) {\n newFiles.splice(targetIndex, 1, filesToAdd[0]);\n }\n } else {\n setErrors(validationErrors);\n }\n\n setTrigger(+new Date());\n\n return newFiles;\n });\n };\n\n const handleInputFileChangeOnAdd = (event: Event) => {\n const target = event.currentTarget as HTMLInputElement;\n\n const selectedFiles = Array.from(target.files ?? []);\n addFiles(selectedFiles);\n };\n\n const handleInputFileChangeOnReplace = (event: Event) => {\n const target = event.currentTarget as HTMLInputElement;\n const selectedFiles = Array.from(target.files ?? []);\n replaceFile(target.dataset.replaceFile ?? '', selectedFiles);\n };\n\n useEffect(() => {\n if (defaultFiles) {\n resetFiles(defaultFiles);\n }\n }, [defaultFiles]);\n\n useEffect(() => {\n onChange(files);\n }, [trigger]);\n\n const onAddFiles = () => {\n const input = getFileInput(multiple, extensionWhitelist, handleInputFileChangeOnAdd);\n input.click();\n };\n\n const onRemoveFile = (file: File) => {\n removeFile(file);\n };\n\n const onReplaceFile = (file: File) => {\n const input = getFileInput(multiple, extensionWhitelist, handleInputFileChangeOnReplace, file.name);\n input.click();\n };\n\n const onPasteFiles = (newFiles: File[]) => {\n addFiles(newFiles);\n };\n\n return { files, errors, onAddFiles, onRemoveFile, onReplaceFile, onPasteFiles } as IUseFileUpload;\n};\n","import classNames from 'classnames';\nimport React, {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactNode,\n Ref,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '../../../../models';\nimport { createSyntheticChangeEvent, stringToBoolean } from '../../../../utils';\nimport { Button } from '../../../atoms/button/button';\nimport { Feedback } from '../../../shared/feedback/feedback';\nimport { FileList } from '../shared/file-list';\nimport { useFileUpload } from '../shared/use-file-upload';\nimport './button-uploader.scss';\n\nexport interface ButtonUploaderProps extends ComponentPropsWithoutRef<'input'> {\n /**\n * Label for the button file uploader.\n */\n label?: string;\n /**\n * Label for the button file uploader after files selected.\n */\n selectedFilesLabel?: string;\n /**\n * Hides the button labels.\n */\n hideLabel?: BooleanProp;\n /**\n * Alternative text for the delete file button of the file list.\n */\n removeFileButtonLabel: string;\n /**\n * Alternative text for the replace file button of the file list.\n */\n replaceFileButtonLabel: string;\n /**\n * Instruction text for the button uploader.\n */\n extensionsInstructions?: ReactNode;\n /**\n * Max number of files to upload.\n */\n maxCount?: number;\n /**\n * Max size in bytes of each file.\n */\n maxSize?: number;\n /**\n * Max count exceeded error message.\n */\n maxCountExceededErrorLabel?: string;\n /**\n * Max size exceeded error message.\n */\n maxSizeExceededErrorLabel?: string;\n /**\n * Forbidden error message.\n */\n forbiddenExtensionErrorLabel?: string;\n /**\n * Duplicated error message.\n */\n duplicatedFileErrorLabel?: string;\n /**\n * Initial default files.\n */\n files?: File[];\n}\n\nconst InnerButtonUploader: ForwardRefRenderFunction<HTMLInputElement, ButtonUploaderProps> = (\n {\n label,\n selectedFilesLabel,\n hideLabel,\n\n removeFileButtonLabel,\n replaceFileButtonLabel,\n\n extensionsInstructions,\n accept = '',\n maxSize = Number.MAX_SAFE_INTEGER,\n maxCount = Number.MAX_SAFE_INTEGER,\n\n maxCountExceededErrorLabel = '',\n maxSizeExceededErrorLabel = '',\n forbiddenExtensionErrorLabel = '',\n duplicatedFileErrorLabel = '',\n\n multiple,\n disabled,\n onChange,\n\n files: defaultFiles,\n ...props\n },\n ref: Ref<HTMLInputElement | null>\n) => {\n const generatedId = useId();\n\n const innerButtonRef = useRef<HTMLButtonElement | null>(null);\n const innerInputRef = useRef<HTMLInputElement | null>(null);\n useImperativeHandle(ref, () => innerInputRef.current);\n\n const [labelText, setLabelText] = useState(label);\n\n const handleOnChangeFiles = (files: File[]) => {\n if (files.length > 0) {\n setLabelText(`${files.length} ${selectedFilesLabel}`);\n } else {\n setLabelText(label);\n }\n\n if (innerInputRef.current) {\n const list = new DataTransfer();\n\n files.forEach((f) => {\n list.items.add(f);\n });\n\n innerInputRef.current.files = list.files;\n\n const syntheticEvent = createSyntheticChangeEvent(innerInputRef.current);\n onChange?.(syntheticEvent as ChangeEvent<HTMLInputElement>);\n }\n };\n\n const { files, onAddFiles, onRemoveFile, onReplaceFile, onPasteFiles, errors } = useFileUpload(\n maxCount,\n maxSize,\n accept ? accept.split(',') : [],\n !!multiple,\n handleOnChangeFiles,\n defaultFiles\n );\n\n const canUpload = useMemo(() => {\n if (multiple) {\n return !disabled && files.length < maxCount;\n }\n\n return !disabled && files.length === 0;\n }, [disabled, multiple, files]);\n\n const handleFileReplace = (newFileToReplace: File) => {\n onReplaceFile(newFileToReplace);\n };\n\n const handleFileRemove = (fileToRemove: File) => {\n onRemoveFile(fileToRemove);\n };\n\n useEffect(() => {\n const handlePaste = (e: Event) => {\n if (!canUpload) {\n return;\n }\n\n if (innerButtonRef.current && innerButtonRef.current === document.activeElement) {\n const { clipboardData } = e as ClipboardEvent;\n if (clipboardData && clipboardData.files.length > 0) {\n const clipboardFiles = Array.from(clipboardData.files) ?? [];\n onPasteFiles(clipboardFiles);\n }\n }\n };\n\n window.addEventListener('paste', handlePaste);\n\n return () => {\n window.removeEventListener('paste', handlePaste);\n };\n }, []);\n\n const parsedErrorsMemo = useMemo(() => {\n if (!errors || !errors.hasErrors) {\n return [];\n }\n\n const parsedErrors: string[] = [];\n if (errors.maxCountExceeded) {\n parsedErrors.push(maxCountExceededErrorLabel);\n }\n\n errors.duplicatedFiles.forEach((f) => {\n parsedErrors.push(`${f} - ${duplicatedFileErrorLabel}`);\n });\n\n errors.sizeExceededFiles.forEach((f) => {\n parsedErrors.push(`${f} - ${maxSizeExceededErrorLabel}`);\n });\n\n errors.extensionForbiddenFiles.forEach((f) => {\n parsedErrors.push(`${f} - ${forbiddenExtensionErrorLabel}`);\n });\n\n return parsedErrors;\n }, [errors]);\n\n const containerClassNames = classNames('agora-button-file-uploader', { 'cannot-upload': !canUpload }, props.className);\n\n const buttonContainerClassNames = classNames('button-file-uploader-container');\n\n return (\n <div className={containerClassNames}>\n <div className={buttonContainerClassNames}>\n <Button\n ref={innerButtonRef}\n fullWidth\n iconOnly={stringToBoolean(hideLabel)}\n hasIcon\n trailingIcon=\"agora-line-upload\"\n trailingIconHover=\"agora-solid-upload\"\n variant={parsedErrorsMemo.length == 0 ? 'neutral' : 'danger'}\n disabled={!canUpload}\n onClick={() => onAddFiles()}\n >\n {labelText}\n </Button>\n\n <div className=\"extension-instructions\">{extensionsInstructions}</div>\n\n {parsedErrorsMemo.length > 0 && (\n <div className=\"errors-container\">\n {parsedErrorsMemo.map((errorMessage, index) => {\n const errorKey = `error-message-${generatedId}-${index}`;\n return <Feedback key={errorKey} feedbackState={'danger'} feedbackText={errorMessage} />;\n })}\n </div>\n )}\n </div>\n {files.length > 0 && (\n <div className=\"p-16\">\n <FileList\n files={files}\n onFileReplace={handleFileReplace}\n onFileRemove={handleFileRemove}\n removeFileButtonLabel={removeFileButtonLabel}\n replaceFileButtonLabel={replaceFileButtonLabel}\n />\n </div>\n )}\n </div>\n );\n};\n\nconst ButtonUploader = forwardRef<HTMLInputElement, ButtonUploaderProps>(InnerButtonUploader);\n\nexport { ButtonUploader };\n","import classNames from 'classnames';\nimport React, {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactNode,\n Ref,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { Button } from '../../../atoms/button/button';\nimport { Icon } from '../../../atoms/icon';\nimport { Feedback } from '../../../shared/feedback/feedback';\n\nimport { BooleanProp } from '../../../../models/boolean-type';\nimport { createSyntheticChangeEvent, stringToBoolean } from '../../../../utils';\nimport { FileList } from '../shared/file-list';\nimport { useFileUpload } from '../shared/use-file-upload';\nimport './drag-and-drop-uploader.scss';\n\nexport interface DragAndDropUploaderProps extends ComponentPropsWithoutRef<'input'> {\n /**\n * Label for the drag and drop file uploader.\n */\n dragAndDropLabel?: string;\n /**\n * Label for the drag and drop file uploader.\n */\n label?: string;\n /**\n * Label for the drag and drop file uploader after files selected.\n */\n selectedFilesLabel?: string;\n /**\n * Hides the drag and drop button labels.\n */\n hideLabel?: BooleanProp;\n /**\n * Instruction text for the button uploader.\n */\n extensionsInstructions?: ReactNode;\n /**\n * Text that separates instructions label from the button.\n */\n separatorLabel?: ReactNode;\n /**\n * Alternative text for the delete file button of the file list.\n */\n removeFileButtonLabel: string;\n /**\n * Alternative text for the replace file button of the file list.\n */\n replaceFileButtonLabel: string;\n /**\n * Max number of files to upload.\n */\n maxCount?: number;\n /**\n * Max size in bytes of each file.\n */\n maxSize?: number;\n /**\n * Max count exceeded error message.\n */\n maxCountExceededErrorLabel?: string;\n /**\n * Max size exceeded error message.\n */\n maxSizeExceededErrorLabel?: string;\n /**\n * Forbidden error message.\n */\n forbiddenExtensionErrorLabel?: string;\n /**\n * Duplicated error message.\n */\n duplicatedFileErrorLabel?: string;\n /**\n * Initial default files.\n */\n files: File[];\n}\n\nconst InnerDragAndDropUploader: ForwardRefRenderFunction<HTMLInputElement, DragAndDropUploaderProps> = (\n {\n dragAndDropLabel,\n\n label,\n selectedFilesLabel,\n hideLabel,\n\n extensionsInstructions,\n separatorLabel,\n\n removeFileButtonLabel,\n replaceFileButtonLabel,\n\n accept,\n maxSize = Number.MAX_SAFE_INTEGER,\n maxCount = Number.MAX_SAFE_INTEGER,\n\n maxCountExceededErrorLabel = '',\n maxSizeExceededErrorLabel = '',\n forbiddenExtensionErrorLabel = '',\n duplicatedFileErrorLabel = '',\n\n multiple,\n disabled,\n onChange,\n\n files: defaultFiles,\n ...props\n },\n ref: Ref<HTMLInputElement | null>\n) => {\n const generatedId = useId();\n\n const innerButtonRef = useRef<HTMLButtonElement | null>(null);\n const innerInputRef = useRef<HTMLInputElement | null>(null);\n useImperativeHandle(ref, () => innerInputRef.current);\n\n const dragAreaRef = useRef<HTMLDivElement | null>(null);\n\n const [labelText, setLabelText] = useState(label);\n const [isDraggingOver, setIsDraggingOver] = useState(false);\n\n const handleOnChangeFiles = (files: File[]) => {\n if (files.length > 0) {\n setLabelText(`${files.length} ${selectedFilesLabel}`);\n } else {\n setLabelText(label);\n }\n\n if (innerInputRef.current) {\n const list = new DataTransfer();\n\n files.forEach((f) => {\n list.items.add(f);\n });\n\n innerInputRef.current.files = list.files;\n\n const syntheticEvent = createSyntheticChangeEvent(innerInputRef.current);\n onChange?.(syntheticEvent as ChangeEvent<HTMLInputElement>);\n }\n };\n\n const { files, onAddFiles, onRemoveFile, onReplaceFile, onPasteFiles, errors } = useFileUpload(\n maxCount,\n maxSize,\n accept ? accept.split(',') : [],\n !!multiple,\n handleOnChangeFiles,\n defaultFiles\n );\n\n const canUpload = useMemo(() => {\n if (multiple) {\n return !disabled && files.length < maxCount;\n }\n\n return !disabled && files.length === 0;\n }, [disabled, multiple, files]);\n\n const handleFileReplace = (newFileToReplace: File) => {\n onReplaceFile(newFileToReplace);\n };\n\n const handleFileRemove = (fileToRemove: File) => {\n onRemoveFile(fileToRemove);\n };\n\n useEffect(() => {\n const handlePaste = (e: Event) => {\n if (!canUpload) {\n return;\n }\n\n if (innerButtonRef.current && innerButtonRef.current === document.activeElement) {\n const { clipboardData } = e as ClipboardEvent;\n if (clipboardData && clipboardData.files.length > 0) {\n const clipboardFiles = Array.from(clipboardData.files) ?? [];\n onPasteFiles(clipboardFiles);\n }\n }\n };\n\n window.addEventListener('paste', handlePaste);\n\n return () => {\n window.removeEventListener('paste', handlePaste);\n };\n }, []);\n\n const parsedErrorsMemo = useMemo(() => {\n if (!errors) {\n return [];\n }\n\n const parsedErrors: string[] = [];\n if (errors.maxCountExceeded) {\n parsedErrors.push(maxCountExceededErrorLabel);\n }\n\n errors.duplicatedFiles.forEach((f) => {\n parsedErrors.push(`${f} - ${duplicatedFileErrorLabel}`);\n });\n\n errors.sizeExceededFiles.forEach((f) => {\n parsedErrors.push(`${f} - ${maxSizeExceededErrorLabel}`);\n });\n\n errors.extensionForbiddenFiles.forEach((f) => {\n parsedErrors.push(`${f} - ${forbiddenExtensionErrorLabel}`);\n });\n\n return parsedErrors;\n }, [errors]);\n\n const handleDragOver = (evt: DragEvent) => {\n if (!canUpload) {\n return;\n }\n\n evt.preventDefault();\n evt.stopPropagation();\n\n setIsDraggingOver(true);\n\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'copy';\n }\n };\n\n const handleDragLeave = () => {\n setIsDraggingOver(false);\n };\n\n const handleDrop = (evt: DragEvent) => {\n if (!canUpload) {\n return;\n }\n\n evt.preventDefault();\n evt.stopPropagation();\n\n setIsDraggingOver(false);\n\n if (evt.dataTransfer) {\n const droppedFiles = Array.from(evt.dataTransfer.files ?? []);\n onPasteFiles(droppedFiles);\n }\n };\n\n useEffect(() => {\n const handleClick = (evt: MouseEvent) => {\n if (innerButtonRef.current && innerButtonRef.current !== evt.target && !innerButtonRef.current.contains(evt.target as HTMLElement)) {\n onAddFiles();\n }\n };\n\n if (dragAreaRef.current) {\n dragAreaRef.current.addEventListener('click', handleClick);\n dragAreaRef.current.addEventListener('dragover', handleDragOver);\n dragAreaRef.current.addEventListener('dragleave', handleDragLeave);\n dragAreaRef.current.addEventListener('drop', handleDrop);\n }\n\n return () => {\n if (dragAreaRef.current) {\n dragAreaRef.current.removeEventListener('click', handleClick);\n dragAreaRef.current.removeEventListener('dragover', handleDragOver);\n dragAreaRef.current.removeEventListener('dragleave', handleDragLeave);\n dragAreaRef.current.removeEventListener('drop', handleDrop);\n }\n };\n }, []);\n\n const containerClassNames = classNames(\n 'agora-drag-and-drop-file-uploader',\n { 'cannot-upload': !canUpload },\n { hasError: parsedErrorsMemo.length > 0 },\n props.className\n );\n\n const dragAndDropClassNames = classNames('drag-and-drop-area', { 'drag-over': isDraggingOver });\n\n return (\n <div className={containerClassNames}>\n <div ref={dragAreaRef} className={dragAndDropClassNames}>\n <Icon className=\"upload-icon\" name=\"agora-line-upload\" aria-hidden />\n\n {(dragAndDropLabel || extensionsInstructions) && (\n <div className=\"instructions\">\n {dragAndDropLabel && <div className=\"drag-and-drop-label\">{dragAndDropLabel}</div>}\n {extensionsInstructions && <div className=\"extension-instructions\">{extensionsInstructions}</div>}\n </div>\n )}\n\n {separatorLabel && <div className=\"separator-label\">{separatorLabel}</div>}\n\n <Button\n ref={innerButtonRef}\n fullWidth\n iconOnly={stringToBoolean(hideLabel)}\n hasIcon\n trailingIcon=\"agora-line-upload\"\n trailingIconHover=\"agora-solid-upload\"\n variant={'neutral'}\n disabled={!canUpload}\n onClick={onAddFiles}\n >\n {labelText}\n </Button>\n\n {parsedErrorsMemo.length > 0 && (\n <div className=\"errors-container\">\n {parsedErrorsMemo.map((errorMessage, index) => {\n const errorKey = `error-message-${generatedId}-${index}`;\n return <Feedback key={errorKey} feedbackState={'danger'} feedbackText={errorMessage} />;\n })}\n </div>\n )}\n </div>\n {files.length > 0 && (\n <FileList\n files={files}\n onFileReplace={handleFileReplace}\n onFileRemove={handleFileRemove}\n removeFileButtonLabel={removeFileButtonLabel}\n replaceFileButtonLabel={replaceFileButtonLabel}\n />\n )}\n </div>\n );\n};\n\nconst DragAndDropUploader = forwardRef<HTMLInputElement, DragAndDropUploaderProps>(InnerDragAndDropUploader);\n\nexport { DragAndDropUploader };\n","import { RefObject, useEffect } from 'react';\n\nexport interface IUseBlockedLink {\n parentCardRef: RefObject<HTMLDivElement | null>;\n anchorRef: RefObject<HTMLAnchorElement | null>;\n blockedLink?: boolean;\n}\n\nconst useBlockedLink = ({ parentCardRef, anchorRef, blockedLink = false }: IUseBlockedLink) => {\n const activateLink = () => {\n if (anchorRef.current) {\n const event = new MouseEvent('click', {\n detail: 1\n });\n\n anchorRef.current?.dispatchEvent(event);\n }\n };\n\n const onClickCaptureHandler = (evt: MouseEvent) => {\n if (!blockedLink) {\n return;\n }\n\n const target = evt.target as HTMLElement;\n if (target.tagName !== 'A' && !target.matches('a *')) {\n // Is blocked link\n // Is not an anchor nor a child of an anchor\n // Trigger main link\n\n evt.stopPropagation();\n evt.preventDefault();\n activateLink();\n }\n };\n\n const onMouseEnterHandler = () => {\n if (blockedLink) {\n const anchorElement = anchorRef?.current as HTMLAnchorElement;\n if (anchorElement) {\n anchorElement.classList.add('hover');\n }\n }\n };\n\n const onMouseLeaveHandler = () => {\n if (blockedLink) {\n const anchorElement = anchorRef?.current as HTMLAnchorElement;\n if (anchorElement) {\n anchorElement.classList.remove('hover');\n }\n }\n };\n\n useEffect(() => {\n const anchorElement = anchorRef?.current as HTMLAnchorElement;\n const parentCardElem = parentCardRef?.current as HTMLDivElement;\n\n if (parentCardElem && anchorElement) {\n if (blockedLink) {\n parentCardElem.classList.add('blocked-link');\n parentCardElem.addEventListener('click', onClickCaptureHandler, true);\n parentCardElem.addEventListener('mouseenter', onMouseEnterHandler);\n parentCardElem.addEventListener('mouseover', onMouseEnterHandler);\n parentCardElem.addEventListener('mouseleave', onMouseLeaveHandler);\n } else {\n parentCardElem.classList.remove('blocked-link');\n parentCardElem.removeEventListener('click', onClickCaptureHandler, true);\n parentCardElem.removeEventListener('mouseenter', onMouseEnterHandler);\n parentCardElem.removeEventListener('mouseleave', onMouseLeaveHandler);\n }\n }\n\n return () => {\n if (parentCardElem) {\n parentCardElem.classList.remove('blocked-link');\n parentCardElem.removeEventListener('click', onClickCaptureHandler, true);\n parentCardElem.removeEventListener('mouseenter', onMouseEnterHandler);\n parentCardElem.addEventListener('mouseover', onMouseEnterHandler);\n parentCardElem.removeEventListener('mouseleave', onMouseLeaveHandler);\n }\n };\n }, [parentCardRef, anchorRef, blockedLink]);\n};\n\nexport { useBlockedLink };\n","import React, { ComponentPropsWithoutRef, FC, ImgHTMLAttributes, ReactNode, useRef } from 'react';\nimport classNames from 'classnames';\nimport { BooleanProp, HeadingLevel } from '../../../../models';\nimport { stringToBoolean } from '../../../../utils';\nimport { Anchor, AnchorProps } from '../../../atoms/anchor';\nimport { Pill, PillVariant } from '../../../atoms/pill';\nimport { useBlockedLink } from '../shared/use-blocked-link';\nimport './card-article.scss';\n\nexport interface CardArticleProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * Children content.\n */\n children?: ReactNode;\n /**\n * variant.\n */\n variant?: 'default' | 'indented';\n /**\n * Image Card.\n */\n image?: ImgHTMLAttributes<HTMLImageElement>;\n /**\n * label Pill.\n */\n pillLabel?: ReactNode;\n /**\n * variant Pill.\n */\n pillVariant?: PillVariant;\n /**\n * Heading level to apply in the card.\n */\n headingLevel?: HeadingLevel;\n /**\n * Title card.\n */\n title?: ReactNode;\n /**\n * Subtitle card.\n */\n subtitle?: ReactNode;\n /**\n * Anchor props.\n */\n mainAnchor?: AnchorProps;\n /**\n * Makes the whole card clickable.\n */\n blockedLink?: BooleanProp;\n}\n\nexport const CardArticle: FC<CardArticleProps> = ({\n pillLabel,\n pillVariant = 'primary',\n mainAnchor,\n blockedLink = false,\n children,\n image,\n headingLevel: Heading = 'h3',\n title,\n subtitle,\n variant = 'default',\n className,\n ...props\n}) => {\n const cardArticleRef = useRef<HTMLDivElement | null>(null);\n const cardArticleAnchorRef = useRef<HTMLAnchorElement | null>(null);\n\n const headingPlacement = {\n title: !!title,\n subtitle: !title && !!subtitle,\n children: !title && !subtitle && !!children,\n pill: !title && !subtitle && !children && !!pillLabel,\n anchor: !title && !subtitle && !children && !pillLabel && !!mainAnchor && !mainAnchor.hidden\n };\n\n const anchorPlacement = {\n anchor: false,\n title: false,\n subtitle: false,\n children: false,\n pill: false\n };\n\n let mainAnchorClone: AnchorProps = { ...mainAnchor };\n\n if (mainAnchor) {\n mainAnchorClone = {\n ...mainAnchor\n } as AnchorProps;\n\n if (mainAnchorClone.hasIcon && !mainAnchorClone.trailingIcon && !mainAnchorClone.leadingIcon) {\n mainAnchorClone.trailingIcon = 'agora-line-arrow-right-circle';\n mainAnchorClone.trailingIconHover = 'agora-solid-arrow-right-circle';\n }\n\n if (mainAnchor.hidden) {\n // MUST DELETE IN ORDER TO SPREAD IT LATER\n delete mainAnchorClone.hidden;\n\n // ONE OF THE TEXTS MUST BE FILLED\n anchorPlacement.title = !!title;\n anchorPlacement.subtitle = !title && !!subtitle;\n anchorPlacement.children = !title && !subtitle && !!children;\n anchorPlacement.pill = !title && !subtitle && !children && !!pillLabel;\n } else {\n anchorPlacement.anchor = true;\n }\n }\n\n const buildText = (text: ReactNode, anchorProps: AnchorProps, isAnchor: boolean, isHeading: boolean): ReactNode => {\n if (!isAnchor) {\n return isHeading ? <Heading>{text}</Heading> : text;\n }\n\n return (\n <>\n {isHeading && (\n <Heading>\n <Anchor {...anchorProps} appearance=\"link\" ref={cardArticleAnchorRef}>\n {text}\n </Anchor>\n </Heading>\n )}\n {!isHeading && (\n <Anchor {...anchorProps} appearance=\"link\" ref={cardArticleAnchorRef}>\n {text}\n </Anchor>\n )}\n </>\n );\n };\n\n useBlockedLink({\n parentCardRef: cardArticleRef,\n anchorRef: cardArticleAnchorRef,\n blockedLink: stringToBoolean(blockedLink)\n });\n\n const cardClassNames = classNames(\n 'agora-card-article',\n { indented: variant === 'indented' },\n { default: variant === 'default' },\n className,\n { 'has-image': !!image }\n );\n\n const anchorContainerClassNames = classNames('anchor-container', { 'icon-only': mainAnchorClone?.iconOnly });\n\n return (\n <div {...props} role=\"presentation\" ref={cardArticleRef} className={cardClassNames}>\n {image && (\n <div className=\"container-image\">\n <img src={image.src} className=\"card-image w-full\" alt={image.alt} />\n </div>\n )}\n\n <div className=\"container-body\">\n {pillLabel && (\n <div className=\"pill-container\">\n <Pill size=\"default\" appearance=\"solid\" variant={pillVariant}>\n {buildText(pillLabel, mainAnchorClone, anchorPlacement.pill, headingPlacement.pill)}\n </Pill>\n </div>\n )}\n\n {subtitle && (\n <div className=\"subtitle-container\">\n {buildText(subtitle, mainAnchorClone, anchorPlacement.subtitle, headingPlacement.subtitle)}\n </div>\n )}\n\n {title && <div className=\"title-container\">{buildText(title, mainAnchorClone, anchorPlacement.title, headingPlacement.title)}</div>}\n\n {children && (\n <div className=\"children-container\">\n {buildText(children, mainAnchorClone, anchorPlacement.children, headingPlacement.children)}\n </div>\n )}\n\n {anchorPlacement.anchor && (\n <div className={anchorContainerClassNames}>\n {buildText(mainAnchorClone.children, mainAnchorClone, anchorPlacement.anchor, headingPlacement.anchor)}\n </div>\n )}\n </div>\n </div>\n );\n};\n","import classNames from 'classnames';\r\nimport React, { ComponentPropsWithoutRef, FC, ReactNode, useRef } from 'react';\r\nimport { BooleanProp, HeadingLevel } from '../../../../models';\r\nimport { stringToBoolean } from '../../../../utils/string-to-boolean';\r\nimport { Anchor, AnchorProps } from '../../../atoms/anchor';\r\nimport { useBlockedLink } from '../shared/use-blocked-link';\r\nimport './card-collection.scss';\r\n\r\nexport interface CardCollectionProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\r\n /**\r\n * header Text.\r\n */\r\n headingLevel: HeadingLevel;\r\n /**\r\n * Defines the subtitle\r\n */\r\n subtitle?: ReactNode;\r\n /**\r\n * Defines the title\r\n */\r\n title?: ReactNode;\r\n /**\r\n * Anchor props.\r\n */\r\n mainAnchor?: AnchorProps;\r\n /**\r\n * Defines blockedLink prop.\r\n */\r\n blockedLink?: BooleanProp;\r\n}\r\n\r\nexport const CardCollection: FC<CardCollectionProps> = ({\r\n headingLevel: Heading = 'h3',\r\n subtitle,\r\n title,\r\n mainAnchor,\r\n blockedLink = false,\r\n className,\r\n ...props\r\n}) => {\r\n const cardCollectionRef = useRef<HTMLDivElement | null>(null);\r\n\r\n const cardCollectionAnchorRef = useRef<HTMLAnchorElement | null>(null);\r\n\r\n const CardCollectionClass = classNames('card-collection', className);\r\n\r\n const headingPlacement = {\r\n title: !!title,\r\n subtitle: !title && !!subtitle,\r\n anchor: !title && !subtitle && !!mainAnchor && !mainAnchor.hidden\r\n };\r\n\r\n const anchorPlacement = {\r\n anchor: false,\r\n title: false,\r\n subtitle: false\r\n };\r\n\r\n let mainAnchorClone: AnchorProps = { ...mainAnchor };\r\n\r\n if (mainAnchor) {\r\n mainAnchorClone = {\r\n ...mainAnchor\r\n } as AnchorProps;\r\n\r\n if (mainAnchorClone.hasIcon && !mainAnchorClone.trailingIcon && !mainAnchorClone.leadingIcon) {\r\n mainAnchorClone.trailingIcon = 'agora-line-arrow-right-circle';\r\n mainAnchorClone.trailingIconHover = 'agora-solid-arrow-right-circle';\r\n }\r\n\r\n if (mainAnchor.hidden) {\r\n // MUST DELETE IN ORDER TO SPREAD IT LATER\r\n delete mainAnchorClone.hidden;\r\n\r\n // ONE OF THE TEXTS MUST BE FILLED\r\n anchorPlacement.title = !!title;\r\n anchorPlacement.subtitle = !title && !!subtitle;\r\n } else {\r\n anchorPlacement.anchor = true;\r\n }\r\n }\r\n\r\n const buildText = (text: ReactNode, anchorProps: AnchorProps, isAnchor: boolean, isHeading: boolean): ReactNode => {\r\n if (!isAnchor) {\r\n return isHeading ? <Heading>{text}</Heading> : text;\r\n }\r\n\r\n return (\r\n <>\r\n {isHeading && (\r\n <Heading>\r\n <Anchor {...anchorProps} variant=\"neutral\" darkMode appearance=\"link\" ref={cardCollectionAnchorRef}>\r\n {text}\r\n </Anchor>\r\n </Heading>\r\n )}\r\n {!isHeading && (\r\n <Anchor {...anchorProps} variant=\"neutral\" darkMode appearance=\"link\" ref={cardCollectionAnchorRef}>\r\n {text}\r\n </Anchor>\r\n )}\r\n </>\r\n );\r\n };\r\n\r\n useBlockedLink({\r\n parentCardRef: cardCollectionRef,\r\n anchorRef: cardCollectionAnchorRef,\r\n blockedLink: stringToBoolean(blockedLink)\r\n });\r\n\r\n const anchorContainerClassNames = classNames('anchor-container', { 'icon-only': mainAnchorClone?.iconOnly });\r\n\r\n return (\r\n <div {...props} role=\"presentation\" ref={cardCollectionRef} className={CardCollectionClass}>\r\n <div className=\"card-info\">\r\n {subtitle && (\r\n <div className=\"subtitle-container\">\r\n {buildText(subtitle, mainAnchorClone, anchorPlacement.subtitle, headingPlacement.subtitle)}\r\n </div>\r\n )}\r\n\r\n {title && <div className=\"title-container\">{buildText(title, mainAnchorClone, anchorPlacement.title, headingPlacement.title)}</div>}\r\n\r\n {anchorPlacement.anchor && (\r\n <div className={anchorContainerClassNames}>\r\n {buildText(mainAnchorClone.children, mainAnchorClone, anchorPlacement.anchor, headingPlacement.anchor)}\r\n </div>\r\n )}\r\n </div>\r\n <div className=\"custom-svg-container -z-10 absolute top-0 left-0 min-w-full min-h-full w-full h-full flex justify-center items-center bg-[var(--color-primary-900)] xs:py-0 md:py-64 xl:py-128\">\r\n <svg\r\n className=\"custom-svg\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n viewBox=\"0 0 384 378\"\r\n aria-hidden\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n >\r\n <g opacity=\"0.04\" stroke=\"white\" strokeWidth=\"24\" strokeMiterlimit=\"9.56677\" strokeLinecap=\"round\">\r\n <path d=\"M-436 189.113C-237.528 189.113 -202.994 271.214 -118.581 252.744C-42.7446 236.151 30.3181 89.0689 81.1009 93.8569C133.588 98.8049 4.82279 267.863 60.1717 290.185C105.121 308.314 250.971 -0.840043 299.676 13.483C357.976 30.624 189.186 355.513 249.579 364.748C308.959 373.827 348.241 135.047 419.085 122.245C483.27 110.647 497 189.113 742 189.113\" />\r\n </g>\r\n </svg>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode } from 'react';\nimport { Button, ButtonProps } from '../../../atoms/button';\nimport { Icon, IconProps } from '../../../atoms/icon';\nimport './card-emphasize.scss';\n\n/**\n * The available variants of the card emphasize\n */\nexport type CardEmphasizeAlignment = 'left' | 'center' | 'right';\n\nexport interface CardEmphasizeProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * The icon props\n */\n icon?: IconProps;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * The description of the card\n */\n description?: ReactNode;\n /**\n * The button props\n */\n mainButton?: ButtonProps;\n /**\n * The variant of the card\n */\n alignment: CardEmphasizeAlignment;\n}\n\nexport const CardEmphasize: FC<CardEmphasizeProps> = ({\n icon,\n title,\n description,\n mainButton,\n alignment = 'left',\n className,\n ...props\n}) => {\n const cardEmphasizeClasseNames = classNames('card-emphasize', `card-${alignment}`, className);\n\n const iconProps = {\n ...icon,\n className: classNames('card-emphasize-icon', icon?.className)\n };\n\n const buttonProps = {\n ...mainButton,\n className: classNames('card-emphasize-button', mainButton?.className)\n } as ButtonProps;\n\n return (\n <div {...props} role=\"presentation\" className={cardEmphasizeClasseNames}>\n {icon && <Icon {...iconProps} />}\n {title && <div className=\"card-emphasize-title\">{title}</div>}\n {description && <div className=\"card-emphasize-description\">{description}</div>}\n {mainButton && <Button {...buttonProps} />}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode } from 'react';\nimport { BooleanProp } from '../../../../models';\nimport { stringToBoolean } from '../../../../utils';\nimport { LinkWrapper } from '../../../atoms/link-wrapper';\nimport './card-error.scss';\n\nexport interface CardErrorProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * The icon of the card\n */\n icon?: ReactNode;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * The subtitle of the card\n */\n subtitle?: ReactNode;\n /**\n * The description of the card\n */\n description?: ReactNode;\n /**\n * Navigation link used to go back from the error page. It can be a native anchor or any other type of link (example: NextJS link, ReactRouter Link, etc...)\n */\n backLink?: ReactNode;\n /**\n * The status message of the card\n */\n statusCodeMessage?: ReactNode;\n /**\n * The dark mode of the card\n */\n darkMode?: BooleanProp;\n}\n\nexport const CardError: FC<CardErrorProps> = ({\n icon,\n title,\n subtitle,\n description,\n backLink,\n statusCodeMessage,\n darkMode = false,\n className = '',\n ...props\n}) => {\n const CardLinksClasses = classNames('card-error', stringToBoolean(darkMode) ? 'dark' : 'default', className);\n\n return (\n <div className={CardLinksClasses} {...props}>\n {icon && <div className=\"icon-container\">{icon}</div>}\n {title && <div className=\"title\">{title}</div>}\n {subtitle && <div className=\"subtitle\">{subtitle}</div>}\n {description && <div className=\"description\">{description}</div>}\n {backLink && (\n <div className=\"go-back\">\n <LinkWrapper darkMode={stringToBoolean(darkMode)} variant={stringToBoolean(darkMode) ? 'neutral' : 'primary'}>\n {backLink}\n </LinkWrapper>\n </div>\n )}\n {statusCodeMessage && <div className=\"status-code-message\">{statusCodeMessage}</div>}\n </div>\n );\n};\n","import React, { HTMLProps } from 'react';\n\nexport const AgoraIllustrateBookmark = (props: HTMLProps<SVGSVGElement>) => {\n const newProps = { ...props };\n delete newProps.alt;\n delete newProps.title;\n\n return (\n <svg width=\"24\" height=\"32\" viewBox=\"0 0 24 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...newProps} role=\"img\">\n {props.title && <title>{props.title}</title>}\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.923077 0C0.413276 0 0 0.421379 0 0.941176V31.0588C0 31.4134 0.195426 31.7379 0.505561 31.8982C0.815697 32.0586 1.18791 32.0276 1.46846 31.8182L12 23.9544L22.5315 31.8182C22.8121 32.0276 23.1843 32.0586 23.4944 31.8982C23.8046 31.7379 24 31.4134 24 31.0588V0.941176C24 0.421379 23.5867 0 23.0769 0H0.923077Z\"\n fill=\"#BBD1FD\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.923077 0C0.413276 0 0 0.421379 0 0.941176V5.64706H24V0.941176C24 0.421379 23.5867 0 23.0769 0H0.923077Z\"\n fill=\"#034AD8\"\n />\n </svg>\n );\n};\n","import classNames from 'classnames';\r\nimport React, { Children, cloneElement, ComponentPropsWithoutRef, FC, isValidElement, ReactElement, useId, useState } from 'react';\r\nimport { AgoraIllustrateBookmark } from '../../../../assets/agora-illustrate-bookmark';\r\nimport { HeadingLevel } from '../../../../models';\r\nimport { AccordionProps } from '../../../atoms/accordion';\r\nimport './card-expandable.scss';\r\n\r\nexport interface CardExpandableProps extends ComponentPropsWithoutRef<'div'> {\r\n /**\r\n * header Text.\r\n */\r\n headingLevel: HeadingLevel;\r\n /**\r\n * Card title.\r\n */\r\n title?: string;\r\n /**\r\n * Card icon.\r\n */\r\n showBookmarkIcon?: boolean;\r\n /**\r\n * Card icon aria-label.\r\n */\r\n bookmarkIconAlt: string;\r\n /**\r\n * Children content.\r\n */\r\n children: ReactElement<AccordionProps>;\r\n}\r\n\r\nexport const CardExpandable: FC<CardExpandableProps> = ({\r\n headingLevel: Component = 'h3',\r\n title,\r\n showBookmarkIcon,\r\n bookmarkIconAlt = '',\r\n children,\r\n className = '',\r\n ...props\r\n}) => {\r\n const generatedAccordionId = useId();\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n\r\n const CardExpandableClasses = classNames('card-expandable', className, { 'is-opened': isExpanded });\r\n\r\n const onExpandedHandler = () => {\r\n setIsExpanded(true);\r\n };\r\n\r\n const onCollapsedHandler = () => {\r\n setIsExpanded(false);\r\n };\r\n\r\n const mappedChildren: ReactElement<AccordionProps>[] = [];\r\n\r\n Children.forEach(children, (child, index) => {\r\n const id = `accordion-group-${generatedAccordionId}-accordion-${index}`;\r\n\r\n if (!isValidElement(child)) {\r\n return;\r\n }\r\n const clonedElement = cloneElement<AccordionProps>(child, {\r\n ...child.props,\r\n key: id,\r\n onExpanded: () => {\r\n child.props.onExpanded?.(child.props);\r\n onExpandedHandler();\r\n },\r\n onCollapsed: () => {\r\n child.props.onCollapsed?.(child.props);\r\n onCollapsedHandler();\r\n }\r\n });\r\n\r\n mappedChildren.push(clonedElement);\r\n });\r\n\r\n return (\r\n <div className={CardExpandableClasses} {...props}>\r\n {showBookmarkIcon && <AgoraIllustrateBookmark className=\"card-expandable-icon\" title={bookmarkIconAlt} />}\r\n\r\n {title && (\r\n <div className=\"card-expandable-header\">\r\n <Component className=\"header-title\" aria-label={title}>\r\n {title}\r\n </Component>\r\n </div>\r\n )}\r\n {mappedChildren}\r\n </div>\r\n );\r\n};\r\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, ReactNode, useRef } from 'react';\nimport { BooleanProp, HeadingLevel } from '../../../../models';\nimport { stringToBoolean } from '../../../../utils';\nimport { Anchor, AnchorProps } from '../../../atoms/anchor';\nimport { useBlockedLink } from '../shared/use-blocked-link';\nimport './card-frame.scss';\n\nexport interface CardFrameProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Children content.\n */\n children: ReactNode;\n /**\n * header Accordion.\n */\n headingLevel: HeadingLevel;\n /**\n * label header.\n */\n label: ReactNode;\n /**\n * Anchor props.\n */\n mainAnchor?: AnchorProps;\n /**\n * Makes the whole card clickable.\n */\n blockedLink?: BooleanProp;\n}\n\nexport const CardFrame: FC<CardFrameProps> = ({\n className,\n label,\n headingLevel: Heading = 'h3',\n mainAnchor,\n blockedLink = false,\n children,\n ...props\n}) => {\n const cardFrameRef = useRef<HTMLDivElement | null>(null);\n const cardFrameAnchorRef = useRef<HTMLAnchorElement | null>(null);\n\n const cardFrameClassNames = classNames('card-frame', className);\n\n const headingPlacement = {\n label: !!label,\n children: !label && !!children,\n anchor: !label && !children && !!mainAnchor && !mainAnchor.hidden\n };\n\n const anchorPlacement = {\n anchor: false,\n label: false,\n children: false\n };\n\n let mainAnchorClone: AnchorProps = { ...mainAnchor };\n\n if (mainAnchor) {\n mainAnchorClone = {\n ...mainAnchor\n } as AnchorProps;\n\n if (mainAnchorClone.hasIcon && !mainAnchorClone.trailingIcon && !mainAnchorClone.leadingIcon) {\n mainAnchorClone.leadingIcon = 'agora-line-arrow-right-circle';\n mainAnchorClone.leadingIconHover = 'agora-solid-arrow-right-circle';\n }\n\n if (mainAnchor.hidden) {\n // MUST DELETE IN ORDER TO SPREAD IT LATER\n delete mainAnchorClone.hidden;\n\n // ONE OF THE TEXTS MUST BE FILLED\n anchorPlacement.label = !!label;\n anchorPlacement.children = !label && !!children;\n } else {\n anchorPlacement.anchor = true;\n }\n }\n\n const buildText = (text: ReactNode, anchorProps: AnchorProps, isAnchor: boolean, isHeading: boolean): ReactNode => {\n if (!isAnchor) {\n return isHeading ? <Heading>{text}</Heading> : text;\n }\n\n return (\n <>\n {isHeading && (\n <Heading>\n <Anchor {...anchorProps} appearance=\"link\" ref={cardFrameAnchorRef}>\n {text}\n </Anchor>\n </Heading>\n )}\n {!isHeading && (\n <Anchor {...anchorProps} appearance=\"link\" ref={cardFrameAnchorRef}>\n {text}\n </Anchor>\n )}\n </>\n );\n };\n\n useBlockedLink({\n parentCardRef: cardFrameRef,\n anchorRef: cardFrameAnchorRef,\n blockedLink: stringToBoolean(blockedLink)\n });\n\n const cardFrameContainerClass = classNames('container-body', { 'anchor-icon-only': mainAnchor?.iconOnly }, className);\n\n return (\n <div {...props} ref={cardFrameRef} role=\"presentation\" className={cardFrameClassNames}>\n <div className={cardFrameContainerClass}>\n {label && <div className=\"label-container\">{buildText(label, mainAnchorClone, anchorPlacement.label, headingPlacement.label)}</div>}\n\n {children && (\n <div className=\"children-container\">\n {buildText(children, mainAnchorClone, anchorPlacement.children, headingPlacement.children)}\n </div>\n )}\n\n {anchorPlacement.anchor && (\n <div className=\"anchor-container\">\n {buildText(mainAnchorClone.children, mainAnchorClone, anchorPlacement.anchor, headingPlacement.anchor)}\n </div>\n )}\n </div>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, ImgHTMLAttributes, ReactElement } from 'react';\nimport { CardHeroHelperProps } from '../card-hero-helper';\nimport { CardHeroIndexProps } from '../card-hero-index';\nimport { CardHeroSitemapProps } from '../card-hero-sitemap';\nimport './card-full-image.scss';\nexport interface CardFullImageProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Children content.\n */\n children: ReactElement<CardHeroSitemapProps | CardHeroIndexProps | CardHeroHelperProps>;\n /**\n * The image to be displayed.\n */\n image: ImgHTMLAttributes<HTMLImageElement>;\n}\n\nexport const CardFullImage: FC<CardFullImageProps> = ({ image, ...props }) => {\n const cardFullImageClassName = classNames('card-full-image', props.className);\n\n return (\n <div className={cardFullImageClassName} {...props}>\n <div className=\"card-background\">\n <div className=\"card-image-container\">\n <img className=\"card-image\" src={image.src} alt={image.alt} aria-hidden={image['aria-hidden'] ?? true} />\n </div>\n </div>\n <div className=\"card-content\">\n <div className=\"grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-x-32\">\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-5 xl:col-start-7\">{props.children}</div>\n </div>\n </div>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, ReactNode, useId } from 'react';\nimport { HeadingLevel } from '../../../../models';\nimport { Anchor, AnchorProps } from '../../../atoms/anchor';\nimport './card-hero-helper.scss';\n\nexport interface HelpTopic {\n description: ReactNode;\n anchor: AnchorProps;\n}\n\nexport interface CardHeroHelperProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * header title.\n */\n headingLevel?: HeadingLevel;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * The subtitle of the card\n */\n subtitle?: ReactNode;\n /**\n * The list of help topics of the card\n */\n helpTopics: HelpTopic[];\n}\n\nexport const CardHeroHelper: FC<CardHeroHelperProps> = ({\n subtitle,\n headingLevel: Heading = 'h2',\n title,\n helpTopics = [],\n className,\n ...props\n}) => {\n const generatedId = useId();\n\n const CardHeroHelperClasses = classNames('card-hero-helper', className);\n\n const headingPlacement = {\n title: !!title,\n subtitle: !title && !!subtitle\n };\n\n const buildText = (text: ReactNode, isHeading: boolean): ReactNode => {\n return isHeading ? <Heading>{text}</Heading> : text;\n };\n\n return (\n <div className={CardHeroHelperClasses} {...props}>\n {(subtitle || title) && (\n <div className=\"flex gap-8 flex-col\">\n {subtitle && <div className=\"subtitle-container\">{buildText(subtitle, headingPlacement.subtitle)}</div>}\n {title && <div className=\"title-container\">{buildText(title, headingPlacement.title)}</div>}\n </div>\n )}\n\n {helpTopics.length > 0 && (\n <ul className=\"flex flex-col justify-start items-start gap-32\">\n {helpTopics?.map((block, index) => {\n const key = `card-hero-helper-${generatedId}-description-block-${index}`;\n return (\n <li key={key} className=\"flex flex-col gap-16 justify-start items-start\">\n <div>{block?.description}</div>\n <Anchor {...block?.anchor} />\n </li>\n );\n })}\n </ul>\n )}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode, useId } from 'react';\nimport { HeadingLevel } from '../../../../models';\nimport { Anchor, AnchorProps } from '../../../atoms/anchor';\nimport './card-hero-index.scss';\n\nexport interface CardHeroIndexProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * Title header.\n */\n headingLevel?: HeadingLevel;\n /**\n * The list of indexes\n */\n index: AnchorProps[];\n}\n\nexport const CardHeroIndex: FC<CardHeroIndexProps> = ({ title, headingLevel: Heading = 'h3', index = [], className, ...props }) => {\n const generatedId = useId();\n\n const CardExpandableClasses = classNames('card-hero-index', className);\n\n return (\n <div className={CardExpandableClasses} {...props}>\n {title && <Heading className=\"card-hero-index-title\">{title}</Heading>}\n\n {index.length > 0 && (\n <ul className=\"index-list\">\n {index.map((cardIndex, idx) => {\n const key = `card-index-${generatedId}-index-item-${idx}`;\n return (\n <li key={key}>\n <Anchor {...cardIndex} appearance=\"link\" variant=\"neutral\">\n {cardIndex.children}\n </Anchor>\n </li>\n );\n })}\n </ul>\n )}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, ReactNode, useId } from 'react';\nimport { HeadingLevel } from '../../../../models';\nimport { Anchor, AnchorProps } from '../../../atoms/anchor';\nimport './card-hero-sitemap.scss';\n\nexport interface CardHeroSitemapProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * header title.\n */\n headingLevel?: HeadingLevel;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * The description of the card\n */\n description?: ReactNode;\n /**\n * The list of links of the card\n */\n anchors: AnchorProps[];\n /**\n * Object anchor default\n */\n highlightedLink?: AnchorProps;\n}\n\nexport const CardHeroSitemap: FC<CardHeroSitemapProps> = ({\n description,\n headingLevel: Heading = 'h2',\n title,\n anchors = [],\n highlightedLink,\n className,\n ...props\n}) => {\n const generatedId = useId();\n const arrayLink = anchors.slice(0, 5);\n\n const CardHeroSitemapClasses = classNames('card-hero-sitemap', className);\n\n const headingPlacement = {\n title: !!title,\n description: !title && !!description\n };\n\n const buildText = (text: ReactNode, isHeading: boolean): ReactNode => {\n return isHeading ? <Heading>{text}</Heading> : text;\n };\n\n return (\n <div className={CardHeroSitemapClasses} {...props}>\n {(title || description) && (\n <div className=\"flex gap-8 flex-col text-l-semibold\">\n {title && <div className=\"title-container\">{buildText(title, headingPlacement.title)}</div>}\n {description && <div className=\"description-container\">{buildText(description, headingPlacement.description)}</div>}\n </div>\n )}\n\n {arrayLink.length > 0 && (\n <ul className=\"flex flex-col justify-start items-start gap-8\">\n {arrayLink?.map((link, index) => {\n const key = `card-hero-sitemap-${generatedId}-description-block-${index}`;\n return (\n <li key={key}>\n <Anchor {...link} />\n </li>\n );\n })}\n </ul>\n )}\n\n {highlightedLink && (\n <Anchor\n appearance=\"link\"\n {...highlightedLink}\n hasIcon={highlightedLink.hasIcon ?? true}\n trailingIcon={highlightedLink.trailingIcon ?? 'agora-line-arrow-right-circle'}\n trailingIconHover={highlightedLink.trailingIcon ?? 'agora-line-arrow-right-circle'}\n {...(!highlightedLink?.children && { className: '!block' })}\n />\n )}\n </div>\n );\n};\n","import React, { ComponentPropsWithRef, FC, ReactNode, useId } from 'react';\nimport { Anchor, AnchorProps } from '../../../../atoms/anchor';\nimport './inner-highlight-card.scss';\nimport { HeadingLevel } from '../../../../../models';\n\nexport interface InnerHighlightCardProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * header title.\n */\n headingLevel?: HeadingLevel;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * The subtitle of the card\n */\n subtitle?: ReactNode;\n /**\n * The description of the card\n */\n description?: ReactNode;\n /**\n * The list of links of the card\n */\n links: AnchorProps[];\n}\n\nexport const InnerHighlightCard: FC<InnerHighlightCardProps> = ({\n title,\n subtitle,\n description,\n links,\n headingLevel: Heading = 'h3',\n ...props\n}) => {\n const generatedId = useId();\n\n const headingPlacement = {\n title: !!title,\n subtitle: !title && !!subtitle,\n description: !title && !subtitle && !!description\n };\n\n const buildText = (text: ReactNode, isHeading: boolean): ReactNode => {\n return isHeading ? <Heading>{text}</Heading> : text;\n };\n\n return (\n <div className=\"inner-highlight-card\" {...props}>\n {(subtitle || title || description) && (\n <div className=\"flex flex-col gap-8\">\n {subtitle && <div className=\"subtitle-container\">{buildText(subtitle, headingPlacement.subtitle)}</div>}\n {title && <div className=\"title-container\">{buildText(title, headingPlacement.title)}</div>}\n {description && <div className=\"description-container\">{buildText(description, headingPlacement.description)}</div>}\n </div>\n )}\n\n {links?.length > 0 && (\n <ul className=\"links-container\">\n {links?.map((link, index) => {\n const key = `card-highlight-links-list-${generatedId}-${index}`;\n return (\n <li key={key}>\n <Anchor\n appearance=\"link\"\n hasIcon\n trailingIcon=\"agora-line-arrow-right-circle\"\n trailingIconHover=\"agora-line-arrow-right-circle\"\n {...link}\n />\n </li>\n );\n })}\n </ul>\n )}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ImgHTMLAttributes, ReactNode } from 'react';\nimport { HeadingLevel } from '../../../../models';\nimport { AnchorProps } from '../../../atoms/anchor';\nimport './card-highlight.scss';\nimport { InnerHighlightCard } from './shared/inner-highlight-card';\nimport { useWindowSize } from '../../../../hooks';\n\nexport type HighlightAreaPositionType = 'interior' | 'exterior';\nexport type HighlightCardPositionType = 'bottom' | 'middle';\nexport type HighlightCardSizeType = 's' | 'default';\n\nexport interface CardHighlightProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * The image to be displayed.\n */\n image: ImgHTMLAttributes<HTMLImageElement>;\n /**\n * The subtitle to be displayed.\n */\n subtitle?: ReactNode;\n /**\n * header title.\n */\n headingLevel?: HeadingLevel;\n /**\n * The title to be displayed.\n */\n title?: ReactNode;\n /**\n * The description of the card\n */\n description?: ReactNode;\n /**\n * The list of links of the card.\n */\n links: AnchorProps[];\n /**\n * Positioning title and subtitle internally/externally of the card.\n */\n highlightAreaPosition?: HighlightAreaPositionType;\n /**\n * Positioning card.\n */\n cardPosition?: HighlightCardPositionType;\n /**\n * Card size\n */\n cardSize?: HighlightCardSizeType;\n}\n\nexport const CardHighlight: FC<CardHighlightProps> = ({\n image,\n title,\n subtitle,\n description,\n highlightAreaPosition = 'exterior',\n headingLevel: Heading = 'h3',\n links,\n cardPosition = 'bottom',\n cardSize = 'default',\n className,\n ...props\n}) => {\n const cardHighlightClassName = classNames('card-highlight', cardPosition, `card-${cardSize}`, className);\n const { width } = useWindowSize();\n const isTablet = width >= 768 && width < 1200;\n const isMobile = width < 768;\n\n const headingPlacement = {\n title: !!title,\n subtitle: !title && !!subtitle,\n description: !title && !subtitle && !!description\n };\n\n const buildText = (text: ReactNode, isHeading: boolean): ReactNode => {\n return isHeading ? <Heading>{text}</Heading> : text;\n };\n\n return (\n <div className={cardHighlightClassName} {...props}>\n <div className=\"card-image-container\">\n <img className=\"card-image\" {...image} src={image.src} alt={image.alt} aria-hidden={image['aria-hidden'] ?? true} />\n </div>\n {(title || subtitle) && highlightAreaPosition === 'exterior' && !isMobile && !isTablet && (\n <div className=\"card-box-exterior\">\n <div className=\"card-info\">\n {subtitle && <div className=\"subtitle-container\">{buildText(subtitle, headingPlacement.subtitle)}</div>}\n {title && <div className=\"title-container\">{buildText(title, headingPlacement.title)}</div>}\n </div>\n </div>\n )}\n <div className=\"card-content\">\n <div className=\"shared-card-content\">\n <InnerHighlightCard\n headingLevel={Heading}\n {...(highlightAreaPosition === 'interior' || isTablet || isMobile ? { title, subtitle } : undefined)}\n description={description}\n links={links}\n />\n </div>\n </div>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ImgHTMLAttributes, ReactElement, ReactNode } from 'react';\nimport { InputEmailBarProps } from '../../../atoms/input-email-bar/input-email-bar';\nimport './card-highlight-newsletter.scss';\nexport interface CardHighlightNewsletterProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * The title to be displayed.\n */\n title?: ReactNode;\n /**\n * The subtitle to be displayed.\n */\n subtitle?: ReactNode;\n /**\n * Children content.\n */\n children: ReactElement<InputEmailBarProps>;\n /**\n * The image to be displayed.\n */\n image: ImgHTMLAttributes<HTMLImageElement>;\n}\n\nexport const CardHighlightNewsletter: FC<CardHighlightNewsletterProps> = ({ title, subtitle, image, ...props }) => {\n const cardHighlightNewsletterClassName = classNames('agora-card-highlight-newsletter', props.className);\n\n return (\n <div className={cardHighlightNewsletterClassName} style={{ backgroundImage: `url(${image.src})` }} {...props}>\n <div className=\"card-container\">\n <div className=\"card-content\">\n {title && <div className=\"title\">{title}</div>}\n {subtitle && <div className=\"subtitle\">{subtitle}</div>}\n </div>\n <div className=\"input-container\">\n <div className=\"email-bar\">{props.children}</div>\n </div>\n </div>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode } from 'react';\nimport { AgoraIllustrateBookmark } from '../../../../assets/agora-illustrate-bookmark';\nimport './card-highlight-single.scss';\nimport { Button, ButtonProps } from '../../../atoms/button';\nexport interface CardHightLightSingleProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * Card title.\n */\n title?: ReactNode;\n /**\n * Card subtitle.\n */\n subtitle?: ReactNode;\n /**\n * Card icon.\n */\n showBookmarkIcon?: boolean;\n /**\n * Button anchor props.\n */\n buttonAnchor?: ButtonProps;\n}\n\nexport const CardHightLightSingle: FC<CardHightLightSingleProps> = ({\n title,\n subtitle,\n buttonAnchor,\n showBookmarkIcon,\n className = '',\n ...props\n}) => {\n const CardHighLightClasses = classNames('agora-card-highlight-single', className);\n\n return (\n <div className={CardHighLightClasses} {...props}>\n <div className=\"custom-svg-container\">\n <svg\n className=\"custom-svg\"\n width=\"100%\"\n height=\"100%\"\n viewBox=\"0 0 384 378\"\n aria-hidden\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n >\n <g opacity=\"0.04\" stroke=\"white\" strokeWidth=\"24\" strokeMiterlimit=\"9.56677\" strokeLinecap=\"round\">\n <path d=\"M-436 189.113C-237.528 189.113 -202.994 271.214 -118.581 252.744C-42.7446 236.151 30.3181 89.0689 81.1009 93.8569C133.588 98.8049 4.82279 267.863 60.1717 290.185C105.121 308.314 250.971 -0.840043 299.676 13.483C357.976 30.624 189.186 355.513 249.579 364.748C308.959 373.827 348.241 135.047 419.085 122.245C483.27 110.647 497 189.113 742 189.113\" />\n </g>\n </svg>\n </div>\n <div className=\"card-content\">\n <div className=\"content\">\n {showBookmarkIcon && <AgoraIllustrateBookmark className=\"card-highlight-single-icon\" aria-hidden />}\n <div className=\"card-title\">{title && <div className=\"title\">{title}</div>}</div>\n <div className=\"card-action\">\n {subtitle && <div className=\"subtitle\">{subtitle}</div>}\n <div className=\"action-button\">\n <Button {...buttonAnchor} />\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode, useId } from 'react';\nimport { Anchor, AnchorProps } from '../../../atoms/anchor';\nimport { Icon } from '../../../atoms/icon';\nimport { List } from '../../../atoms/list';\nimport './card-links.scss';\nimport { HeadingLevel } from '../../../../models/heading-level-type';\n\n/**\n * The available variants of the card links\n */\nexport type CardLinkVariant = 'default' | 'dark';\n\nexport interface CardLinksProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * Heading level to apply in the card.\n */\n headingLevel?: HeadingLevel;\n /**\n * The category of the card\n */\n category?: ReactNode;\n /**\n * The title of the card\n */\n title: ReactNode;\n /**\n * The description of the card\n */\n description?: ReactNode;\n /**\n * The list of links of the card\n */\n links: AnchorProps[];\n /**\n * The list of topics of the card\n */\n topics?: string[];\n /**\n * The variant of the card\n */\n variant?: CardLinkVariant;\n}\n\nexport const CardLinks: FC<CardLinksProps> = ({\n headingLevel: Heading = 'h2',\n title,\n category,\n description,\n links = [],\n topics,\n variant = 'default',\n className = '',\n ...props\n}) => {\n const generatedId = useId();\n\n const CardLinksClasses = classNames('card-links', `card-${variant}`, className);\n\n const headingPlacement = {\n title: !!title,\n description: !title && !!description,\n category: !title && !description && !!category\n };\n\n const buildText = (text: ReactNode, isHeading: boolean): ReactNode => {\n return isHeading ? <Heading>{text}</Heading> : text;\n };\n\n return (\n <div className={CardLinksClasses} {...props}>\n <div className=\"body-container\">\n {category && <div className=\"category\">{buildText(category, headingPlacement.category)}</div>}\n\n {title && <div className=\"title\">{buildText(title, headingPlacement.title)}</div>}\n\n {description && <div className=\"description\">{buildText(description, headingPlacement.description)}</div>}\n </div>\n\n {links.length > 0 && (\n <ul className=\"links\">\n {links.map((link, index) => {\n const anchorKey = `card-link-${generatedId}-link-${index}`;\n return (\n <li key={anchorKey} className=\"link-container\">\n <Anchor\n appearance=\"link\"\n href={link.href}\n darkMode={variant === 'dark'}\n variant={variant === 'default' ? 'primary' : 'neutral'}\n hasIcon={link.hasIcon ?? true}\n trailingIcon={link.trailingIcon ?? 'agora-line-arrow-right-circle'}\n trailingIconHover={link.trailingIcon ?? 'agora-line-arrow-right-circle'}\n >\n {link.children}\n </Anchor>\n </li>\n );\n })}\n </ul>\n )}\n\n {topics && topics.length > 0 && (\n <List className=\"topics\">\n {topics.map((topic, index) => {\n const listItem = `card-link-${generatedId}-topic-${index}`;\n\n return (\n <li key={listItem} className=\"topic\">\n {topic}\n {index !== topics.length - 1 && <Icon name=\"agora-solid-bullet\" alt=\"bullet\" />}\n </li>\n );\n })}\n </List>\n )}\n\n <hr />\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode } from 'react';\nimport './card-no-results.scss';\nimport { BooleanProp } from '../../../../models';\nimport { stringToBoolean } from '../../../../utils';\n\n/**\n * The available variants of the card no results\n */\nexport type CardNoResultsVariant = 'default' | 'dark';\n\nexport interface CardNoResultsProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * Icon to display in the card\n */\n icon?: ReactNode;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * The subtitle of the card\n */\n subtitle?: ReactNode;\n /**\n * The description of the card\n */\n description?: ReactNode;\n /**\n * If the card should be displayed in a dark mode\n */\n darkMode?: BooleanProp;\n}\n\nexport const CardNoResults: FC<CardNoResultsProps> = ({\n icon,\n title,\n subtitle,\n description,\n darkMode = false,\n className = '',\n ...props\n}) => {\n const CardNoResultsClasses = classNames('card-no-results', stringToBoolean(darkMode) ? 'dark' : 'default', className);\n\n return (\n <div className={CardNoResultsClasses} {...props}>\n <div className=\"main-content\">\n {icon && <div className=\"icon-container\">{icon}</div>}\n {title && <div className=\"title\">{title}</div>}\n {subtitle && <div className=\"subtitle\">{subtitle}</div>}\n {description && <div className=\"description\">{description}</div>}\n </div>\n </div>\n );\n};\n","import classNames from 'classnames';\r\nimport React, { ComponentPropsWithoutRef, FC, ImgHTMLAttributes, ReactNode, useRef } from 'react';\r\nimport { BooleanProp, HeadingLevel } from '../../../../models';\r\nimport { stringToBoolean } from '../../../../utils';\r\nimport { Anchor, AnchorProps } from '../../../atoms/anchor';\r\nimport { Icon } from '../../../atoms/icon';\r\nimport { useBlockedLink } from '../shared/use-blocked-link';\r\nimport './card-search-result.scss';\r\n\r\nexport interface CardSearchResultProps extends ComponentPropsWithoutRef<'div'> {\r\n /**\r\n * Card category label.\r\n */\r\n category?: ReactNode;\r\n /**\r\n * Card date label.\r\n */\r\n date?: string;\r\n /**\r\n * Card heading level.\r\n */\r\n headingLevel?: HeadingLevel;\r\n /**\r\n * Anchor props to render in heading.\r\n */\r\n mainAnchor: AnchorProps;\r\n /**\r\n * Card description label.\r\n */\r\n description?: ReactNode;\r\n /**\r\n * card topics.\r\n */\r\n topics?: Array<ReactNode>;\r\n /**\r\n * card image.\r\n */\r\n image?: ImgHTMLAttributes<HTMLImageElement>;\r\n /**\r\n * Makes the whole card clickable.\r\n */\r\n blockedLink?: BooleanProp;\r\n}\r\n\r\nexport const CardSearchResult: FC<CardSearchResultProps> = ({\r\n category,\r\n date,\r\n headingLevel: Heading = 'h3',\r\n description,\r\n topics,\r\n image,\r\n mainAnchor,\r\n blockedLink = false,\r\n className,\r\n ...props\r\n}) => {\r\n const cardSearchResultRef = useRef<HTMLDivElement | null>(null);\r\n\r\n const anchorRef = useRef<HTMLAnchorElement | null>(null);\r\n\r\n const CardSearchResultClass = classNames('card-search-result', className);\r\n\r\n const containerClass = classNames(\r\n 'flex flex-col gap-8',\r\n { 'xl:col-span-3 md:col-span-2': image },\r\n { 'xl:col-span-full md:col-span-full': !image }\r\n );\r\n\r\n useBlockedLink({\r\n anchorRef,\r\n parentCardRef: cardSearchResultRef,\r\n blockedLink: stringToBoolean(blockedLink)\r\n });\r\n\r\n return (\r\n <div ref={cardSearchResultRef} role=\"presentation\" className={CardSearchResultClass} {...props}>\r\n {category && <div className=\"category\">{category}</div>}\r\n\r\n <div className=\"content-body\">\r\n <div className={containerClass}>\r\n {date && <div className=\"date-container\">{date}</div>}\r\n\r\n <Heading className=\"title\">\r\n <Anchor {...mainAnchor} ref={anchorRef} />\r\n </Heading>\r\n\r\n {description && <div className=\"description-container\">{description}</div>}\r\n </div>\r\n\r\n {image && (\r\n <div className=\"container-image xl:col-span-1 md:col-span-2 w-full\">\r\n <img src={image.src} className=\"card-image w-full\" alt={image.alt} />\r\n </div>\r\n )}\r\n </div>\r\n\r\n {topics && topics.length > 0 && (\r\n <div className=\"topic-list\">\r\n {topics.map((topic, index) => (\r\n <div key={`key-${Number(index)}`} className=\"topic-item\">\r\n {index > 0 && <Icon aria-hidden className=\"fill-neutral-500\" name=\"agora-solid-bullet\" />}\r\n {topic}\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode, useRef } from 'react';\nimport { BooleanProp, HeadingLevel } from '../../../../models';\nimport { stringToBoolean } from '../../../../utils';\nimport { Anchor, AnchorProps } from '../../../atoms/anchor';\nimport { Icon, IconProps } from '../../../atoms/icon';\nimport { useBlockedLink } from '../shared/use-blocked-link';\nimport './card-single.scss';\n\n/**\n * Card Single Variants\n */\nexport type CardSingleVariants = 'default' | 'neutral' | 'white';\n\nexport interface CardSingleProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * The variant of the card\n */\n variant: CardSingleVariants;\n /**\n * The icon props\n */\n icon?: IconProps;\n /**\n * Title Tag Card.\n */\n headingLevel?: HeadingLevel;\n /**\n * The title of the card\n */\n title: string;\n /**\n * The description of the card\n */\n description?: ReactNode;\n /**\n * Anchor props.\n */\n mainAnchor?: AnchorProps;\n /**\n * Defines blockedLink prop.\n */\n blockedLink?: BooleanProp;\n}\n\nexport const CardSingle: FC<CardSingleProps> = ({\n variant = 'default',\n icon,\n headingLevel: Heading = 'h3',\n title,\n description,\n mainAnchor,\n blockedLink,\n className,\n ...props\n}) => {\n const cardSingleRef = useRef<HTMLDivElement | null>(null);\n const cardSingleAnchorRef = useRef<HTMLAnchorElement | null>(null);\n\n const headingPlacement = {\n title: !!title,\n description: !title && !!description,\n anchor: !title && !description && !!mainAnchor && !mainAnchor.hidden\n };\n\n const anchorPlacement = {\n anchor: false,\n title: false,\n description: false\n };\n\n let mainAnchorClone: AnchorProps = { ...mainAnchor };\n\n if (mainAnchor) {\n mainAnchorClone = {\n ...mainAnchor\n } as AnchorProps;\n\n if (mainAnchorClone.hasIcon && !mainAnchorClone.trailingIcon && !mainAnchorClone.leadingIcon) {\n mainAnchorClone.trailingIcon = 'agora-line-arrow-right-circle';\n mainAnchorClone.trailingIconHover = 'agora-solid-arrow-right-circle';\n }\n\n if (mainAnchor.hidden) {\n // MUST DELETE IN ORDER TO SPREAD IT LATER\n delete mainAnchorClone.hidden;\n\n // ONE OF THE TEXTS MUST BE FILLED\n anchorPlacement.title = !!title;\n anchorPlacement.description = !title && !!description;\n } else {\n anchorPlacement.anchor = true;\n }\n }\n\n useBlockedLink({\n parentCardRef: cardSingleRef,\n anchorRef: cardSingleAnchorRef,\n blockedLink: stringToBoolean(blockedLink)\n });\n\n const CardSingleClasses = classNames('card-single', `card-${variant}`, className);\n\n const buildText = (text: ReactNode, anchorProps: AnchorProps, isAnchor: boolean, isHeading: boolean): ReactNode => {\n if (!isAnchor) {\n return isHeading ? <Heading>{text}</Heading> : text;\n }\n\n return (\n <>\n {isHeading && (\n <Heading>\n <Anchor {...anchorProps} appearance=\"link\" ref={cardSingleAnchorRef}>\n {text}\n </Anchor>\n </Heading>\n )}\n {!isHeading && (\n <Anchor {...anchorProps} appearance=\"link\" ref={cardSingleAnchorRef}>\n {text}\n </Anchor>\n )}\n </>\n );\n };\n const anchorContainerClassNames = classNames('anchor-container', { 'icon-only': mainAnchorClone?.iconOnly });\n\n return (\n <div {...props} ref={cardSingleRef} role=\"presentation\" className={CardSingleClasses}>\n {icon && (\n <div className=\"icon-container\">\n <Icon {...icon} className=\"card-single-icon\" dimensions=\"m\" />\n </div>\n )}\n\n <div className=\"info-container\">\n {title && <div className=\"title-container\">{buildText(title, mainAnchorClone, anchorPlacement.title, headingPlacement.title)}</div>}\n\n {description && (\n <div className=\"description-container\">\n {buildText(description, mainAnchorClone, anchorPlacement.description, headingPlacement.description)}\n </div>\n )}\n </div>\n\n {anchorPlacement.anchor && (\n <div className={anchorContainerClassNames}>\n {buildText(mainAnchorClone.children, mainAnchorClone, anchorPlacement.anchor, headingPlacement.anchor)}\n </div>\n )}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode, useMemo, useRef } from 'react';\nimport { BooleanProp, HeadingLevel } from '../../../../models';\nimport { stringToBoolean } from '../../../../utils';\nimport { Anchor, AnchorProps } from '../../../atoms/anchor';\nimport { Pill, PillVariant } from '../../../atoms/pill';\nimport { useBlockedLink } from '../shared/use-blocked-link';\nimport './card-topic.scss';\n\n/**\n * Card Topic style\n */\nexport type CardTopicVariant = 'default' | 'white' | 'informative' | 'success' | 'warning' | 'danger';\n/**\n * Card Topic Statuses\n */\nexport type CardTopicStatus = 'success' | 'warning' | 'danger';\n\nexport interface CardTopicProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * Heading level to apply in the card.\n */\n headingLevel?: HeadingLevel;\n /**\n * Defines variant prop.\n */\n variant: CardTopicVariant;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * Defines the status description.\n */\n description?: ReactNode;\n /**\n * Defines the pill text.\n */\n pillLabel?: ReactNode;\n /**\n * Defines the status text.\n */\n statusLabel?: ReactNode;\n /**\n * Defines the status of the card topic.\n */\n status?: CardTopicStatus;\n /**\n * Anchor props.\n */\n mainAnchor?: AnchorProps;\n /**\n * Defines blockedLink prop.\n */\n blockedLink?: BooleanProp;\n}\n\nexport const CardTopic: FC<CardTopicProps> = ({\n headingLevel: Heading = 'h3',\n variant = 'default',\n title,\n description,\n pillLabel,\n statusLabel,\n status = 'success',\n mainAnchor,\n blockedLink = false,\n className,\n ...props\n}) => {\n const variantMemo = useMemo(() => {\n if (variant === 'default' || variant === 'white') {\n return 'primary';\n }\n\n return variant;\n }, [variant]);\n\n const cardTopicRef = useRef<HTMLDivElement | null>(null);\n const cardTopicAnchorRef = useRef<HTMLAnchorElement | null>(null);\n\n const headingPlacement = {\n title: !!title,\n description: !title && !!description,\n pill: !title && !description && !!pillLabel,\n anchor: !title && !description && !pillLabel && !!mainAnchor && !mainAnchor.hidden\n };\n\n const anchorPlacement = {\n anchor: false,\n title: false,\n description: false,\n pill: false\n };\n\n let mainAnchorClone: AnchorProps = { ...mainAnchor };\n\n if (mainAnchor) {\n mainAnchorClone = {\n ...mainAnchor\n } as AnchorProps;\n\n if (mainAnchorClone.hasIcon && !mainAnchorClone.trailingIcon && !mainAnchorClone.leadingIcon) {\n mainAnchorClone.trailingIcon = 'agora-line-arrow-right-circle';\n mainAnchorClone.trailingIconHover = 'agora-solid-arrow-right-circle';\n }\n\n if (mainAnchor.hidden) {\n // MUST DELETE IN ORDER TO SPREAD IT LATER\n delete mainAnchorClone.hidden;\n\n // ONE OF THE TEXTS MUST BE FILLED\n anchorPlacement.title = !!title;\n anchorPlacement.description = !title && !!description;\n anchorPlacement.pill = !title && !description && !!pillLabel;\n } else {\n anchorPlacement.anchor = true;\n }\n }\n\n const buildText = (text: ReactNode, anchorProps: AnchorProps, isAnchor: boolean, isHeading: boolean): ReactNode => {\n if (!isAnchor) {\n return isHeading ? <Heading>{text}</Heading> : text;\n }\n\n return (\n <>\n {isHeading && (\n <Heading>\n <Anchor {...anchorProps} appearance=\"link\" variant={variantMemo} ref={cardTopicAnchorRef}>\n {text}\n </Anchor>\n </Heading>\n )}\n {!isHeading && (\n <Anchor {...anchorProps} appearance=\"link\" variant={variantMemo} ref={cardTopicAnchorRef}>\n {text}\n </Anchor>\n )}\n </>\n );\n };\n\n useBlockedLink({\n parentCardRef: cardTopicRef,\n anchorRef: cardTopicAnchorRef,\n blockedLink: stringToBoolean(blockedLink)\n });\n\n const cardTopicClasseNames = classNames('card-topic', `card-${variant}`, { 'has-anchor-label': !mainAnchor?.iconOnly }, className);\n const cardStatusClasseNames = classNames('card-topic-status', `card-topic-status-${status}`);\n const anchorContainerClassNames = classNames('card-topic-anchor', { 'icon-only': mainAnchorClone?.iconOnly });\n\n return (\n <div {...props} role=\"presentation\" className={cardTopicClasseNames} ref={cardTopicRef}>\n <div className=\"content-info\">\n {pillLabel && (\n <div className=\"card-topic-pill\">\n <Pill appearance=\"solid\" size=\"default\" variant={variantMemo as PillVariant}>\n {buildText(pillLabel, mainAnchorClone, anchorPlacement.pill, headingPlacement.pill)}{' '}\n </Pill>\n </div>\n )}\n\n {title && (\n <div className=\"card-topic-title\">{buildText(title, mainAnchorClone, anchorPlacement.title, headingPlacement.title)}</div>\n )}\n\n {statusLabel && (\n <div className=\"flex items-center gap-8\">\n <div className={cardStatusClasseNames} />\n <div>{statusLabel}</div>\n </div>\n )}\n\n {description && (\n <div className=\"card-topic-description\">\n {buildText(description, mainAnchorClone, anchorPlacement.description, headingPlacement.description)}\n </div>\n )}\n </div>\n\n {anchorPlacement.anchor && (\n <div className={anchorContainerClassNames}>\n {buildText(mainAnchorClone.children, mainAnchorClone, anchorPlacement.anchor, headingPlacement.anchor)}\n </div>\n )}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, useId, useState } from 'react';\nimport { Button, ButtonProps } from '../../../atoms/button';\nimport { BooleanProp } from '../../../../models';\nimport { stringToBoolean } from '../../../../utils';\nimport './rating-button.scss';\n\nexport type RatingVariant = 'primary' | 'neutral' | 'success' | 'danger';\n\nexport interface RatingButtonProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange'> {\n /**\n * If the rating button has a like button\n */\n hasLikeButton?: BooleanProp;\n /**\n * The title of the like button\n */\n likeButtonTitle: string;\n /**\n * The button appearance for the like button. Define the button Shape.\n */\n likeButtonVariant?: RatingVariant;\n /**\n * If the rating button has a dislike button\n */\n hasDislikeButton?: BooleanProp;\n /**\n * The title of the dislike button\n */\n dislikeButtonTitle: string;\n /**\n * The button appearance for the dislike button. Define the button Shape.\n */\n dislikeButtonVariant?: RatingVariant;\n /**\n * If the rating button is in dark mode\n */\n darkMode?: BooleanProp;\n /**\n * The button appearance. Define the button Shape.\n */\n variant?: RatingVariant;\n /**\n * The button props\n */\n mainButton?: ButtonProps;\n /**\n * Event triggered whenever any of the button changes is own state.\n */\n onChange?: (selectedButton: 'like' | 'dislike') => void;\n}\n\nexport const RatingButton: FC<RatingButtonProps> = ({\n darkMode = false,\n hasLikeButton = true,\n likeButtonVariant,\n likeButtonTitle,\n hasDislikeButton = true,\n dislikeButtonTitle,\n dislikeButtonVariant,\n variant,\n className = '',\n mainButton,\n onChange,\n ...props\n}) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const buttonProps = {\n ...mainButton\n } as ButtonProps;\n\n const [pressedButton, setPressedButton] = useState<'like' | 'dislike' | null>(null);\n\n const handleToogleButton = (buttonType: 'like' | 'dislike') => {\n setPressedButton((last) => (last === buttonType ? null : buttonType));\n if (onChange) {\n onChange(buttonType);\n }\n };\n\n const createButton = (\n buttonTitle: string,\n iconName: string,\n buttonClass: string,\n buttonType: 'like' | 'dislike',\n buttonVariant?: RatingVariant\n ) => {\n const selected = pressedButton === buttonType;\n return (\n <Button\n {...buttonProps}\n id={`${propsClone.id}-${buttonType}`}\n className={buttonClass}\n leadingIcon={iconName}\n leadingIconHover={iconName}\n onClick={() => handleToogleButton(buttonType)}\n variant={buttonVariant ?? variant}\n appearance={selected ? 'solid' : 'outline'}\n aria-pressed={pressedButton === buttonType ? 'true' : 'false'}\n >\n {buttonTitle}\n </Button>\n );\n };\n\n const ratingButtonClasses = classNames('rating-button', stringToBoolean(darkMode) ? 'dark' : '', className);\n const ratingButtonWrapperClasses = classNames('rating-button-wrapper', buttonProps.iconOnly ? 'icon-only' : '', className);\n\n return (\n <div className={ratingButtonClasses} {...props}>\n <div className={ratingButtonWrapperClasses}>\n {hasLikeButton && createButton(likeButtonTitle, 'agora-line-thumbs-up', 'agora-btn-like', 'like', likeButtonVariant)}\n {hasDislikeButton &&\n createButton(dislikeButtonTitle, 'agora-line-thumbs-down', 'agora-btn-dislike', 'dislike', dislikeButtonVariant)}\n </div>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, {\n ChangeEvent,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactNode,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '../../../../models';\nimport { stringToBoolean } from '../../../../utils';\nimport { Icon } from '../../../atoms/icon';\nimport './rating-star.scss';\n/**\n * The available variants of the rating star\n */\nexport type RatingStarVariant = 'default' | 'compact';\n\nexport interface RatingStarProps extends Omit<ComponentPropsWithRef<'input'>, 'onChange'> {\n /**\n * The current value of the rating star\n */\n value?: number;\n /**\n * The label of the rating star\n */\n label?: ReactNode;\n /**\n * The aria-label of the rating star\n */\n starAriaLabel?: string;\n /**\n * The variant of the rating star. For default is a 5 stars rating, but if compact turns on a 3 stars rating.\n */\n variant?: RatingStarVariant;\n /**\n * If the rating star is in dark mode\n */\n darkMode?: BooleanProp;\n /**\n * Event triggered whenever any of the radio buttons changes is own state.\n */\n onChange?: (value: number) => void;\n}\n\nexport const InnerRating: ForwardRefRenderFunction<HTMLInputElement, RatingStarProps> = (\n { value, label, starAriaLabel = '', variant = 'default', darkMode = false, className = '', onChange, ...props },\n ref\n) => {\n const generatedId = useId();\n const propsClone = { ...props };\n propsClone.id = propsClone.id ?? generatedId;\n const [totalStars, setTotalStars] = useState<number>(variant === 'default' ? 5 : 3);\n const [selected, setSelected] = useState<number | null>(value ?? null);\n const [hoverIndex, setHoverIndex] = useState<number>(-1);\n const stars = useMemo(() => Array.from({ length: totalStars }), [totalStars]);\n const isDisabled = propsClone.disabled;\n const readOnly = propsClone.readOnly;\n const inputRatingRefs = useRef<(HTMLInputElement | null)[]>([]);\n\n useEffect(() => {\n setTotalStars(variant === 'default' ? 5 : 3);\n }, [variant]);\n\n const handleMouseEnter = useCallback(\n (index: number) => {\n if (!isDisabled && !readOnly) {\n setHoverIndex(index);\n }\n },\n [isDisabled]\n );\n\n const handleMouseLeave = useCallback(() => {\n if (!isDisabled && !readOnly) {\n setHoverIndex(-1);\n }\n }, [isDisabled]);\n\n const handleSelect = (index: number) => (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n if (readOnly) {\n return;\n }\n\n if (!isDisabled) {\n setSelected(index);\n if (onChange) {\n onChange(index);\n }\n }\n };\n\n const hadleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (readOnly) {\n return;\n }\n if (onChange) {\n const newValue = parseInt(event.target.value) - 1;\n onChange(newValue);\n }\n };\n\n const onkeyDownHandler = (event: React.KeyboardEvent<HTMLButtonElement>, index: number) => {\n if (readOnly) {\n return;\n }\n if (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') {\n event.preventDefault();\n setSelected(index);\n }\n };\n\n const onMouseDownHandler = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (isDisabled) {\n event.preventDefault();\n }\n };\n\n const ratingStarClasses = classNames('rating-star', stringToBoolean(darkMode) ? 'dark' : '', className);\n\n return (\n <div className={ratingStarClasses} {...props}>\n {label && (\n <label htmlFor={propsClone.id} className=\"rating-label\">\n {label}\n </label>\n )}\n <div className=\"rating-wrapper\" role=\"radiogroup\">\n {stars.map((_, index) => {\n const isHovered = index <= hoverIndex;\n const isSelected = selected !== null && index <= selected;\n const starClasses = classNames(\n 'star-icon',\n isHovered && 'hovered',\n isSelected && 'selected',\n isDisabled && 'disabled',\n readOnly && 'readonly'\n );\n const iconName = isHovered || isSelected ? 'agora-solid-star' : 'agora-line-star';\n const starKey = `${propsClone.id}-star-${index}`;\n return (\n <div key={starKey} className=\"star-container\">\n <input\n ref={(input) => {\n inputRatingRefs.current[index] = input;\n if (ref && index === selected && typeof ref !== 'function') {\n ref.current = input;\n }\n }}\n type=\"radio\"\n name={propsClone.name}\n id={`${propsClone.id}-${index}`}\n disabled={isDisabled}\n readOnly={!!readOnly}\n value={index}\n checked={selected === index}\n onChange={hadleChange}\n />\n <button\n aria-label={`${starAriaLabel} ${index + 1}`}\n className={starClasses}\n onClick={handleSelect(index)}\n onMouseDown={onMouseDownHandler}\n onMouseEnter={() => handleMouseEnter(index)}\n onMouseLeave={() => handleMouseLeave()}\n onKeyDown={(event) => onkeyDownHandler(event, index)}\n tabIndex={isDisabled ? -1 : 0}\n >\n <Icon name={iconName} aria-hidden />\n </button>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport const RatingStar = forwardRef<HTMLInputElement, RatingStarProps>(InnerRating);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode, useState } from 'react';\nimport { RatingButton, RatingButtonProps } from '../ratings';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport './feedback.scss';\nexport interface FeedbackProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * The title of the feedback.\n */\n title?: ReactNode;\n /**\n * The subtitle of the feedback.\n */\n subtitle?: ReactNode;\n /**\n * The rating button props\n */\n evaluate: RatingButtonProps;\n /**\n * The message of the feedback.\n */\n message?: ReactNode;\n /**\n * The dark mode of the feedback.\n */\n darkMode?: BooleanProp;\n}\n\nexport const Feedback: FC<FeedbackProps> = ({ title, subtitle, evaluate, message, darkMode = false, className, ...props }) => {\n const [showMessage, setShowMessage] = useState(false);\n\n const handleClick = () => {\n setShowMessage(true);\n };\n\n const feedbackClasses = classNames('agora-feedback', stringToBoolean(darkMode) ? 'dark' : '', className);\n\n return (\n <div className={feedbackClasses} {...props}>\n <div className=\"content\">\n <div className=\"content-info\">\n <div className=\"info\">\n {title && <span className=\"title\">{title}</span>}\n {subtitle && <span className=\"subtitle\">{subtitle}</span>}\n </div>\n {evaluate && <RatingButton {...evaluate} onChange={evaluate.onChange} onClick={handleClick} />}\n </div>\n {showMessage && message && <div className=\"content-message\">{message}</div>}\n </div>\n </div>\n );\n};\n","import React, { createContext, Dispatch, FC, ReactNode, SetStateAction } from 'react';\nimport { Months } from '../../../../models';\nimport { WeekDays } from '../../../../models/week-days.interface';\n\nexport type DatePickerStateContextType = {\n focusedDate: Date;\n setFocusedDate: Dispatch<SetStateAction<Date>>;\n\n selectedDate: Date;\n setSelectedDate: Dispatch<SetStateAction<Date>>;\n\n cancel: () => void;\n\n labels: {\n previousYearAriaLabel: string;\n previousMonthAriaLabel: string;\n nextMonthAriaLabel: string;\n nextYearAriaLabel: string;\n monthsLabels?: Months;\n weekdaysLabels?: WeekDays;\n focusedDayAriaLabel?: string;\n selectedDayAriaLabel: string;\n todayDayAriaLabel: string;\n todayLabel: string;\n todayAriaLabel?: string;\n cancelLabel: string;\n cancelAriaLabel?: string;\n okLabel: string;\n okAriaLabel?: string;\n };\n};\n\nexport const DatePickerStateContext = createContext<DatePickerStateContextType | undefined>(undefined);\n\nexport interface DatePickerStateProviderProps {\n children: ReactNode;\n value: DatePickerStateContextType;\n}\n\nexport const DatePickerStateProvider: FC<DatePickerStateProviderProps> = ({ value, children }) => {\n return <DatePickerStateContext.Provider value={value}>{children}</DatePickerStateContext.Provider>;\n};\n","import { useContext, useMemo } from 'react';\nimport { Months } from '../../../../models';\nimport { WeekDays } from '../../../../models/week-days.interface';\nimport { DatePickerStateContext } from './date-picker-state.context';\n\nconst DEFAULT_MONTHS = {\n jan: 'Janeiro',\n feb: 'Fevereiro',\n mar: 'Março',\n apr: 'Abril',\n may: 'Maio',\n jun: 'Junho',\n jul: 'Julho',\n aug: 'Agosto',\n set: 'Setembro',\n oct: 'Outubro',\n nov: 'Novembro',\n dec: 'Dezembro'\n} as Months;\n\nconst DEFAULT_WEEK_DAYS = {\n sun: 'Domingo',\n mon: 'Segunda',\n tue: 'Terça',\n wed: 'Quarta',\n thu: 'Quinta',\n fri: 'Sexta',\n sat: 'Sábado'\n} as WeekDays;\n\nconst useDatePickerStateContext = () => {\n const ctx = useContext(DatePickerStateContext);\n\n if (!ctx) {\n throw new Error('Context must be used within a provider.');\n }\n\n const months = ctx.labels.monthsLabels ?? DEFAULT_MONTHS;\n\n const weekDays = ctx.labels.weekdaysLabels ?? DEFAULT_WEEK_DAYS;\n\n const mapMonths = new Map<number, string>();\n Object.values(months).forEach((value, index) => {\n mapMonths.set(index, value);\n });\n\n const getAbbrWeekDays = () => {\n return Object.values(weekDays).map((wd: string) => wd.substring(0, 3));\n };\n\n const focusedMonth = useMemo(() => {\n return mapMonths.get(ctx.focusedDate.getMonth());\n }, [ctx.focusedDate]);\n\n const focusedYear = useMemo(() => {\n return ctx.focusedDate.getFullYear();\n }, [ctx.focusedDate]);\n\n const focusToday = (): void => {\n ctx.setFocusedDate(new Date());\n };\n\n const moveToPreviousYear = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setFullYear(newDate.getFullYear() - 1);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToPreviousMonth = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setMonth(newDate.getMonth() - 1);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToNextMonth = () => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setMonth(newDate.getMonth() + 1);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToNextYear = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setFullYear(newDate.getFullYear() + 1);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToNextDay = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setDate(newDate.getDate() + 1);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToNextWeek = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setDate(newDate.getDate() + 7);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToPreviousDay = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setDate(newDate.getDate() - 1);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToPreviousWeek = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setDate(newDate.getDate() - 7);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToFirstDayOfWeek = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setDate(newDate.getDate() - newDate.getDay());\n ctx.setFocusedDate(newDate);\n };\n\n const moveToLastDayOfWeek = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setDate(newDate.getDate() + (6 - newDate.getDay()));\n ctx.setFocusedDate(newDate);\n };\n\n const selectFocusedDate = (): void => {\n ctx.setSelectedDate(ctx.focusedDate);\n };\n\n const getLabels = () => {\n return ctx.labels;\n };\n\n return {\n ...ctx,\n getLabels,\n\n getAbbrWeekDays,\n\n focusedMonth,\n focusedYear,\n\n moveToPreviousYear,\n moveToPreviousMonth,\n moveToNextMonth,\n moveToNextYear,\n\n moveToNextDay,\n moveToNextWeek,\n moveToPreviousDay,\n moveToPreviousWeek,\n moveToFirstDayOfWeek,\n moveToLastDayOfWeek,\n selectFocusedDate,\n\n focusToday\n };\n};\n\nexport { useDatePickerStateContext };\n","export const isDateInSameMonthOfYear = (date1: Date, date2: Date): boolean => {\n return date1.getMonth() === date2.getMonth() && date1.getFullYear() === date2.getFullYear();\n};\n","export const isSameDay = (date1: Date, date2: Date): boolean => {\n return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate();\n};\n","import { getDateString } from '../../../../utils/get-date-string';\n\nexport const parseInputDate = (val?: string | null): Date | undefined => {\n if (!val) {\n return undefined;\n }\n\n if (/^(\\d+-)(\\d+-)(\\*|\\d+)$/.test(val)) {\n const parts = val.split('-');\n if (parts) {\n const day = +parts[0];\n const month = +parts[1];\n const year = +parts[2];\n const parsedDate = new Date(year, month - 1, day);\n\n return getDateString(parsedDate) === val ? parsedDate : undefined;\n }\n }\n\n return undefined;\n};\n","import classNames from 'classnames';\nimport React, { FC, KeyboardEvent, MouseEvent, useEffect, useMemo, useRef, useState } from 'react';\nimport { useDatePickerStateContext } from '../contexts/use-date-picker-state-context';\nimport { getDateString } from '../../../../utils/get-date-string';\nimport { isDateInSameMonthOfYear } from '../utils/is-date-in-same-month';\nimport { isSameDay } from '../utils/is-same-day';\nimport { parseInputDate } from '../utils/parse-input-date';\n\nexport const DialogBody: FC = () => {\n const ctx = useDatePickerStateContext();\n\n const ref = useRef(null);\n\n const [isCalendarActive, setIsCalendarActive] = useState(false);\n\n const parseDateFromTarget = (target: HTMLElement): Date | undefined => {\n const dateString = target.getAttribute('data-date');\n return parseInputDate(dateString);\n };\n\n const focusAndSelectTargetDate = (targetDate: Date | undefined) => {\n if (targetDate && isDateInSameMonthOfYear(ctx.focusedDate, targetDate)) {\n ctx.setFocusedDate(targetDate);\n ctx.setSelectedDate(targetDate);\n }\n };\n\n const onClickHandler = (evt: MouseEvent<HTMLTableCellElement>) => {\n focusAndSelectTargetDate(parseDateFromTarget(evt.target as HTMLElement));\n };\n\n const onKeydownHandler = (evt: KeyboardEvent<HTMLTableCellElement>) => {\n const { shiftKey } = evt;\n const { target } = evt;\n\n switch (evt.code) {\n case 'ArrowUp':\n ctx.moveToPreviousWeek();\n break;\n case 'ArrowDown':\n ctx.moveToNextWeek();\n break;\n case 'ArrowLeft':\n ctx.moveToPreviousDay();\n break;\n case 'ArrowRight':\n ctx.moveToNextDay();\n break;\n case 'PageUp':\n if (shiftKey) {\n ctx.moveToPreviousYear();\n } else {\n ctx.moveToPreviousMonth();\n }\n break;\n case 'PageDown':\n if (shiftKey) {\n ctx.moveToNextYear();\n } else {\n ctx.moveToNextMonth();\n }\n break;\n case 'Home':\n ctx.moveToFirstDayOfWeek();\n break;\n case 'End':\n ctx.moveToLastDayOfWeek();\n break;\n case 'Enter':\n case 'Space':\n focusAndSelectTargetDate(parseDateFromTarget(target as HTMLElement));\n break;\n default:\n break;\n }\n };\n\n const onFocusHandler = () => {\n setIsCalendarActive(true);\n };\n\n const onBlurHandler = () => {\n setIsCalendarActive(false);\n };\n\n const buildDay = (currentDay: Date, weekNumber: number, dayNumber: number) => {\n currentDay.setDate(currentDay.getDate() + 1);\n\n const isInCurrentMonth = currentDay.getMonth() === ctx.focusedDate.getMonth();\n const isFocusedDate = isSameDay(currentDay, ctx.focusedDate);\n const isSelectedDate = isSameDay(currentDay, ctx.selectedDate);\n const isToday = isSameDay(currentDay, new Date());\n\n const stringDate = getDateString(currentDay);\n\n const tdDayClasses = classNames(\n 'day w-[44px] h-[44px] border-2 rounded-4 outline-0 flex items-center justify-center text-s-regular text-[var(--color-neutral-900)] cursor-default',\n // DEFAULT\n {\n 'border-transparent': !isSelectedDate && !isFocusedDate\n },\n // DAY IN CURRENT MONTH\n {\n 'hover:bg-[var(--color-primary-100)] hover:text-[var(--color-primary-600)]': isInCurrentMonth\n },\n // TODAY DEFAULT\n {\n 'text-s-bold text-[var(--color-primary-600)]': isToday && !isSelectedDate\n },\n // SELECTED\n {\n 'bg-[var(--color-primary-600)] text-white': isSelectedDate\n },\n // FOCUS WITH CALENDAR GRID NOT FOCUSED\n {\n 'border-[var(--color-primary-400)]': !isSelectedDate && isFocusedDate && !isCalendarActive && isInCurrentMonth\n },\n // FOCUS\n {\n 'outline outline-2 -outline-offset-2 outline-[var(--color-focus)]': isCalendarActive && isFocusedDate && isInCurrentMonth\n }\n );\n\n const dayClasses = classNames('pointer-events-none select-none', { 'opacity-20': !isInCurrentMonth });\n\n const trTdKey = `tr-td-key-${weekNumber}-${dayNumber}`;\n\n const ariaLabelForDay = (() => {\n const labels = ctx.getLabels();\n\n let dayLabel = currentDay.toLocaleDateString(undefined, { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' });\n\n if (isToday && labels.todayDayAriaLabel) {\n dayLabel = `${labels.todayDayAriaLabel}, ${dayLabel}`;\n }\n\n if (isFocusedDate && labels.focusedDayAriaLabel) {\n dayLabel = `${dayLabel}, ${labels.focusedDayAriaLabel}`;\n }\n\n if (isSelectedDate && labels.selectedDayAriaLabel) {\n dayLabel = `${dayLabel}, ${labels.selectedDayAriaLabel}`;\n }\n\n return dayLabel;\n })();\n\n return (\n <div\n key={trTdKey}\n className={tdDayClasses}\n role=\"gridcell\"\n data-date={stringDate}\n aria-label={ariaLabelForDay}\n aria-selected={isFocusedDate}\n tabIndex={isInCurrentMonth && isFocusedDate ? 0 : -1}\n onKeyDown={onKeydownHandler}\n onClick={onClickHandler}\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n >\n <div aria-hidden className={dayClasses}>\n {currentDay.getDate()}\n </div>\n </div>\n );\n };\n\n const buildWeek = (weekNumber: number) => {\n const firstDayOfMonth = new Date(ctx.focusedDate.getFullYear(), ctx.focusedDate.getMonth(), 1);\n\n const dayOfWeek = firstDayOfMonth.getDay() + 1;\n\n firstDayOfMonth.setDate(firstDayOfMonth.getDate() - dayOfWeek);\n firstDayOfMonth.setDate(firstDayOfMonth.getDate() + weekNumber * 7);\n\n return Array.from(Array(7).keys()).map((dayNumber) => {\n return buildDay(firstDayOfMonth, weekNumber, dayNumber);\n });\n };\n\n const memoGrid = useMemo(() => {\n return Array.from(Array(6).keys()).map((trCount) => {\n const trKey = `tr-key-${trCount}`;\n return (\n <div role=\"row\" className=\"grid grid-flow-col gap-[2px]\" key={trKey}>\n {buildWeek(trCount)}\n </div>\n );\n });\n }, [ctx.focusedDate, ctx.selectedDate, isCalendarActive]);\n\n const focusDay = () => {\n if (ref.current) {\n const elem = Array.from((ref.current as HTMLElement).querySelectorAll('.day[tabIndex=\"0\"]')).shift();\n\n if (elem) {\n (elem as HTMLElement).focus();\n }\n }\n };\n\n // INITIAL FOCUS ON SELECTED/FOCUSED DAY\n useEffect(() => focusDay(), []);\n\n // WHENEVER CALENDAR GRID IS ACTIVE, FOCUS THE DAY AGAIN\n useEffect(() => {\n if (isCalendarActive) {\n focusDay();\n }\n }, [isCalendarActive]);\n\n // WHENEVER FOCUSED DATE CHANGES, FOCUS IT\n useEffect(() => focusDay(), [ctx.focusedDate]);\n\n return (\n <div className=\"my-16\">\n <div role=\"grid\" className=\"w-full\">\n <div role=\"rowheader\" className=\"grid grid-flow-col gap-[2px]\">\n {ctx.getAbbrWeekDays().map((d) => {\n return (\n <div\n role=\"gridcell\"\n key={d}\n className=\"w-[44px] h-32 flex items-center justify-center bg-[var(--color-neutral-100)] text-s-regular\"\n aria-hidden\n >\n {d}\n </div>\n );\n })}\n </div>\n <div ref={ref} role=\"rowgroup\">\n {memoGrid}\n </div>\n </div>\n </div>\n );\n};\n","import React, { FC } from 'react';\nimport { Button } from '../../../atoms/button';\nimport { useDatePickerStateContext } from '../contexts/use-date-picker-state-context';\n\nexport const DialogFooter: FC = () => {\n const ctx = useDatePickerStateContext();\n\n const onOkPressed = () => {\n ctx.setSelectedDate(ctx.focusedDate);\n };\n\n const labels = ctx.getLabels();\n\n const additionalTodayProps: { 'aria-label'?: string } = {\n 'aria-label': `${labels.todayLabel}, ${labels.todayAriaLabel}`\n };\n if (!labels.todayAriaLabel) {\n delete additionalTodayProps['aria-label'];\n }\n\n const additionalCancelProps: { 'aria-label'?: string } = {\n 'aria-label': `${labels.cancelLabel}, ${labels.cancelAriaLabel}`\n };\n if (!labels.cancelAriaLabel) {\n delete additionalCancelProps['aria-label'];\n }\n\n const additionalOkProps: { 'aria-label'?: string } = {\n 'aria-label': `${labels.okLabel}, ${labels.okAriaLabel}`\n };\n if (!labels.okAriaLabel) {\n delete additionalOkProps['aria-label'];\n }\n\n return (\n <div className=\"flex justify-between items-center\">\n <div className=\"my-16\">\n <Button appearance=\"link\" onClick={ctx.focusToday} {...additionalTodayProps}>\n {labels.todayLabel}\n </Button>\n </div>\n <div className=\"my-16 flex items-end gap-8\">\n <Button appearance=\"outline\" onClick={ctx.cancel} {...additionalCancelProps}>\n {labels.cancelLabel}\n </Button>\n <Button appearance=\"solid\" onClick={onOkPressed} {...additionalOkProps}>\n {labels.okLabel}\n </Button>\n </div>\n </div>\n );\n};\n","import React, { FC } from 'react';\nimport { Button } from '../../../atoms/button';\nimport { Icon } from '../../../atoms/icon';\nimport { useDatePickerStateContext } from '../contexts/use-date-picker-state-context';\n\nexport const DialogHeader: FC = () => {\n const ctx = useDatePickerStateContext();\n\n return (\n <div className=\"header w-full\">\n <h2 className=\"flex justify-center py-8 w-full text-black font-bold text-m-light normal-case\" aria-live=\"polite\">\n {`${ctx.focusedMonth} ${ctx.focusedYear}`}\n </h2>\n\n <div className=\"flex flex-row justify-between\">\n <div className=\"flex gap-8 justify-center\">\n <Button appearance=\"outline\" onClick={ctx.moveToPreviousYear} aria-label={ctx.getLabels().previousYearAriaLabel}>\n <Icon name=\"agora-line-chevrons-left\" dimensions=\"s\" aria-hidden />\n </Button>\n\n <Button appearance=\"outline\" onClick={ctx.moveToPreviousMonth} aria-label={ctx.getLabels().previousMonthAriaLabel}>\n <Icon name=\"agora-line-chevron-left\" dimensions=\"s\" aria-hidden />\n </Button>\n </div>\n\n <div className=\"flex gap-8 justify-center\">\n <Button appearance=\"outline\" onClick={ctx.moveToNextMonth} aria-label={ctx.getLabels().nextMonthAriaLabel}>\n <Icon name=\"agora-line-chevron-right\" dimensions=\"s\" aria-hidden />\n </Button>\n\n <Button appearance=\"outline\" onClick={ctx.moveToNextYear} aria-label={ctx.getLabels().nextYearAriaLabel}>\n <Icon name=\"agora-line-chevrons-right\" dimensions=\"s\" aria-hidden />\n </Button>\n </div>\n </div>\n </div>\n );\n};\n","import React, { FC, useEffect, useMemo, useState } from 'react';\nimport { Months } from '../../../models';\nimport { WeekDays } from '../../../models/week-days.interface';\nimport { DatePickerStateContextType, DatePickerStateProvider } from './contexts/date-picker-state.context';\nimport { DialogBody } from './date-picker-dropdown-body/date-picker-dropdown-body';\nimport { DialogFooter } from './date-picker-dropdown-footer/date-picker-dropdown-footer';\nimport { DialogHeader } from './date-picker-dropdown-header/date-picker-dropdown-header';\n\nexport interface DatePickerDropdownProps {\n date: Date;\n onChange: (date: Date) => void;\n onCancel: () => void;\n labels: {\n previousYearAriaLabel: string;\n previousMonthAriaLabel: string;\n nextMonthAriaLabel: string;\n nextYearAriaLabel: string;\n monthsLabels?: Months;\n weekdaysLabels?: WeekDays;\n focusedDayAriaLabel?: string;\n selectedDayAriaLabel: string;\n todayDayAriaLabel: string;\n todayLabel: string;\n todayAriaLabel?: string;\n cancelLabel: string;\n cancelAriaLabel?: string;\n okLabel: string;\n okAriaLabel?: string;\n };\n}\n\nexport const DatePickerDropdown: FC<DatePickerDropdownProps> = ({ date, onChange, onCancel, labels }) => {\n const [initialized, setInitialized] = useState(false);\n\n const [selectedDate, setSelectedDate] = useState(date);\n\n const [focusedDate, setFocusedDate] = useState(date);\n\n const cancel = () => {\n onCancel();\n };\n\n useEffect(() => {\n if (initialized) {\n onChange(selectedDate);\n } else {\n setInitialized(true);\n }\n }, [selectedDate]);\n\n const managerMemo = useMemo(() => {\n return {\n focusedDate,\n selectedDate,\n setFocusedDate,\n setSelectedDate,\n cancel,\n\n labels\n } as DatePickerStateContextType;\n }, [selectedDate, focusedDate]);\n\n return (\n <DatePickerStateProvider value={managerMemo}>\n <div className=\"absolute left-0 top-[68px] shadow-bottom-high bg-white p-16 border-2 border-[var(--color-neutral-200)] rounded-4 z-dropdown\">\n <DialogHeader />\n <DialogBody />\n <div className=\"border-1 border-[var(--color-neutral-300)]\" />\n <DialogFooter />\n </div>\n </DatePickerStateProvider>\n );\n};\n","import classNames from 'classnames';\nimport React, {\n ChangeEvent,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'react';\n\nconst MIN_YEAR = 1000;\n\nexport interface GroupedDateRef {\n value?: Date;\n focus: () => void;\n}\n\nexport interface GroupedDateProps {\n value?: Date;\n onChange?: (date: Date) => void;\n handleInputDateKeydown: (event: KeyboardEvent<HTMLInputElement>) => void;\n dayInputPlaceholder?: string;\n monthInputPlaceholder?: string;\n yearInputPlaceholder?: string;\n className?: string;\n readOnly?: boolean;\n disabled?: boolean;\n}\n\nconst isValidDate = (year: number, month: number, day: number): boolean => {\n if (year < MIN_YEAR) {\n return false;\n }\n\n const date = new Date(year, month - 1, day);\n return date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day;\n};\n\nconst isLeapYear = (year: number): boolean => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\n\nexport const InnerGroupedDate: ForwardRefRenderFunction<GroupedDateRef, GroupedDateProps> = (\n {\n value,\n onChange,\n handleInputDateKeydown,\n dayInputPlaceholder = '',\n monthInputPlaceholder = '',\n yearInputPlaceholder = '',\n className = '',\n readOnly = false,\n disabled = false\n },\n ref\n) => {\n const [day, setDay] = useState('');\n const [month, setMonth] = useState('');\n const [year, setYear] = useState('');\n\n const dayRef = useRef<HTMLInputElement>(null);\n const monthRef = useRef<HTMLInputElement>(null);\n const yearRef = useRef<HTMLInputElement>(null);\n\n const validateDate = useCallback(() => {\n if (day && month && year) {\n const isValid = isValidDate(Number(year), Number(month), Number(day));\n if (isValid && onChange) {\n onChange(new Date(Number(year), Number(month) - 1, Number(day)));\n }\n }\n }, [day, month, year]);\n\n // Function to validate and adjust the day value for February based on the year and month\n const validateFebruaryDay = (newDay: string, newMonth: string, newYear: string) => {\n const newDayNumber = Number(newDay);\n const newMonthNumber = Number(newMonth);\n const newYearNumber = Number(newYear);\n\n if (newMonthNumber === 2) {\n if (isLeapYear(newYearNumber)) {\n if (newDayNumber > 29) {\n return '29';\n }\n } else if (newDayNumber > 28) {\n return '28';\n }\n }\n\n return newDay;\n };\n\n useEffect(() => {\n if (value) {\n setDay(value.getDate().toString());\n setMonth((value.getMonth() + 1).toString());\n setYear(value.getFullYear().toString());\n }\n }, [value]);\n\n useEffect(() => {\n validateDate();\n }, [validateDate]);\n\n // day input\n const handleDayChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newDay = parseInt(event.target.value, 10).toString();\n\n if (newDay === '' || (parseInt(newDay, 10) >= 1 && parseInt(newDay, 10) <= 31)) {\n setDay(newDay);\n }\n };\n\n // month input\n const handleMonthChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newMonth = parseInt(event.target.value, 10).toString();\n\n if (newMonth === '' || (parseInt(newMonth, 10) >= 1 && parseInt(newMonth, 10) <= 12)) {\n setMonth(newMonth);\n }\n };\n\n // year input\n const handleYearChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newYear = parseInt(event.target.value, 10).toString();\n\n if (newYear === '' || (parseInt(newYear, 10) >= 0 && parseInt(newYear, 10) <= 9999)) {\n setYear(newYear);\n setDay(validateFebruaryDay(day, month, newYear));\n }\n };\n\n // clear inputs on backspace\n const handleInputsClear = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Backspace') {\n const target = event.target as HTMLInputElement;\n\n if (target === dayRef.current) {\n setDay('');\n } else if (target === monthRef.current) {\n setMonth('');\n } else if (target === yearRef.current) {\n setYear('');\n }\n }\n };\n\n const handleTargetIsDay = (target: HTMLInputElement, key: string, dayValue: number) => {\n if (target === dayRef.current) {\n if (key === 'ArrowUp') {\n dayValue = dayValue >= 31 ? 1 : dayValue + 1;\n } else if (key === 'ArrowDown') {\n dayValue = dayValue <= 1 ? 31 : dayValue - 1;\n }\n setDay(dayValue.toString().padStart(2, '0'));\n }\n };\n\n const handleTargetIsMonth = (target: HTMLInputElement, key: string, monthValue: number) => {\n if (target === monthRef.current) {\n if (key === 'ArrowUp') {\n monthValue = monthValue >= 12 ? 1 : monthValue + 1;\n } else if (key === 'ArrowDown') {\n monthValue = monthValue <= 1 ? 12 : monthValue - 1;\n }\n\n if (monthValue >= 1 && monthValue <= 12) {\n setMonth(monthValue.toString().padStart(2, '0'));\n }\n }\n };\n\n const handleTargetIsYear = (target: HTMLInputElement, key: string, yearValue: number) => {\n if (target === yearRef.current) {\n if (yearValue === 0) {\n // Set the initial value to the current year\n yearValue = new Date().getFullYear();\n } else {\n yearValue = key === 'ArrowUp' ? yearValue + 1 : yearValue - 1;\n }\n\n if (yearValue >= MIN_YEAR && yearValue <= 9999) {\n setYear(yearValue.toString());\n }\n }\n };\n\n // Function to increment or decrement date value using arrow keys\n const handleInputKeyUp = (event: KeyboardEvent<HTMLInputElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n if (readOnly && event.key !== 'Tab') {\n event.preventDefault();\n return;\n }\n\n const target = event.target as HTMLInputElement;\n\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n const v = target.value ? parseInt(target.value, 10) : 0;\n handleTargetIsDay(target, event.key, v);\n handleTargetIsMonth(target, event.key, v);\n handleTargetIsYear(target, event.key, v);\n }\n };\n\n // combine handleInputDateKeydown and handleInputKeyDown to one function\n const handleCombinedInputKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n if (readOnly && event.key !== 'Tab') {\n event.preventDefault();\n return;\n }\n\n handleInputsClear(event);\n handleInputDateKeydown?.(event);\n };\n\n // format day, month and year\n\n const formattedDay = useMemo(() => {\n let newDay = '';\n if (day !== '') {\n if (parseInt(day, 10) < 10 && day.length === 1) {\n newDay = `0${day}`;\n } else {\n newDay = day;\n }\n }\n\n return newDay;\n }, [day]);\n\n const formattedMonth = useMemo(() => {\n let newMonth = '';\n if (month !== '') {\n if (parseInt(month, 10) < 10 && month.length === 1) {\n newMonth = `0${month}`;\n } else {\n newMonth = month;\n }\n }\n\n return newMonth;\n }, [month]);\n\n const formattedYear = useMemo(() => {\n return year !== '' ? year : '';\n }, [year]);\n\n const focus = useCallback(() => {\n dayRef.current?.focus();\n }, []);\n\n useImperativeHandle(\n ref,\n () => {\n return {\n value: new Date(Number(year), Number(month) - 1, Number(day)),\n focus\n };\n },\n [day, month, year, focus]\n );\n\n const groupedDateWrapperClasses = classNames('agora-input-date', className);\n\n return (\n <div className={groupedDateWrapperClasses}>\n <div className=\"grouped-date\">\n <input\n ref={dayRef}\n type=\"text\"\n placeholder={dayInputPlaceholder}\n onKeyDown={handleCombinedInputKeyDown}\n onKeyUp={handleInputKeyUp}\n value={formattedDay}\n onChange={handleDayChange}\n className=\"grouped-date__day\"\n min={1}\n max={31}\n disabled={disabled}\n />\n <span className=\"grouped-date__separator\">/</span>\n <input\n ref={monthRef}\n type=\"text\"\n placeholder={monthInputPlaceholder}\n onKeyDown={handleCombinedInputKeyDown}\n onKeyUp={handleInputKeyUp}\n value={formattedMonth}\n onChange={handleMonthChange}\n className=\"grouped-date__month\"\n min={1}\n max={12}\n disabled={disabled}\n />\n <span className=\"grouped-date__separator\">/</span>\n <input\n ref={yearRef}\n type=\"text\"\n placeholder={yearInputPlaceholder}\n onKeyDown={handleCombinedInputKeyDown}\n onKeyUp={handleInputKeyUp}\n value={formattedYear}\n onChange={handleYearChange}\n className=\"grouped-date__year\"\n disabled={disabled}\n />\n </div>\n </div>\n );\n};\n\nexport const GroupedDate = forwardRef<GroupedDateRef, GroupedDateProps>(InnerGroupedDate);\n","import classNames from 'classnames';\r\nimport React, {\r\n ComponentPropsWithRef,\r\n forwardRef,\r\n ForwardRefRenderFunction,\r\n KeyboardEvent as ReactKeyboardEvent,\r\n ReactNode,\r\n Ref,\r\n useEffect,\r\n useId,\r\n useImperativeHandle,\r\n useRef,\r\n useState\r\n} from 'react';\r\nimport { BooleanProp, FeedbackState, Months } from '../../../models';\r\nimport { WeekDays } from '../../../models/week-days.interface';\r\nimport { stringToBoolean } from '../../../utils';\r\nimport { Icon } from '../../atoms/icon';\r\nimport { DatePickerDropdown } from './date-picker-dropdown';\r\nimport { GroupedDate, GroupedDateRef } from './grouped-date/grouped-date';\r\nimport './input-date.scss';\r\nimport { parseInputDate } from './utils/parse-input-date';\r\nimport { Feedback } from '../../shared/feedback';\r\n\r\nexport interface InputDateRef {\r\n value?: Date;\r\n}\r\n\r\nexport interface InputDateProps extends Omit<ComponentPropsWithRef<'input'>, 'ref' | 'onChange'> {\r\n /**\r\n * Input label text.\r\n */\r\n label?: string;\r\n /**\r\n * Show or hide input label.\r\n */\r\n hideLabel?: BooleanProp;\r\n /**\r\n * Sets the input in a error state. This also affects the feedback state.\r\n */\r\n hasError?: BooleanProp;\r\n /**\r\n * Show or hide the feedback status text.\r\n */\r\n hasFeedback?: BooleanProp;\r\n /**\r\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\r\n */\r\n feedbackState?: FeedbackState;\r\n /**\r\n * The flag to set if the label and feedbacktext is in dark mode or light mode.\r\n */\r\n darkMode?: BooleanProp;\r\n /**\r\n * Feedback text displayed below input.\r\n */\r\n feedbackText?: ReactNode;\r\n /**\r\n * Show or hide the leading icon.\r\n */\r\n hasIcon?: BooleanProp;\r\n /**\r\n * Name of the icon leading icon to be displayed.\r\n */\r\n icon?: string;\r\n /**\r\n * The placeholder to apply in the input day part\r\n */\r\n dayInputPlaceholder?: string;\r\n /**\r\n * The placeholder to apply in the input month part\r\n */\r\n monthInputPlaceholder?: string;\r\n /**\r\n * The placeholder to apply in the input year part\r\n */\r\n yearInputPlaceholder?: string;\r\n /**\r\n * Accessible text to apply to the trailing calendar icon.\r\n */\r\n calendarIconAriaLabel: string;\r\n /**\r\n * Accessible text to apply to the date picker previous year button.\r\n */\r\n previousYearAriaLabel: string;\r\n /**\r\n * Accessible text to apply to the date picker previous month button.\r\n */\r\n previousMonthAriaLabel: string;\r\n /**\r\n * Accessible text to apply to the date picker next month button.\r\n */\r\n nextMonthAriaLabel: string;\r\n /**\r\n * Accessible text to apply to the date picker next year button.\r\n */\r\n nextYearAriaLabel: string;\r\n /**\r\n * Labels for each month.\r\n */\r\n monthsLabels?: Months;\r\n /**\r\n * Labels for each weekday.\r\n */\r\n weekdaysLabels?: WeekDays;\r\n /**\r\n * Accessible text to identify the current focused day.\r\n */\r\n focusedDayAriaLabel?: string;\r\n /**\r\n * Accessible text to identify the current selected day.\r\n */\r\n selectedDayAriaLabel: string;\r\n /**\r\n * Accessible text to identify the highlighted today day.\r\n */\r\n todayDayAriaLabel: string;\r\n /**\r\n * Label for the date picker today button.\r\n */\r\n todayLabel: string;\r\n /**\r\n * Accessible text for the date picker today button.\r\n */\r\n todayAriaLabel?: string;\r\n /**\r\n * Label for the date picker cancel button.\r\n */\r\n cancelLabel: string;\r\n /**\r\n * Accessible text for the date picker cancel button.\r\n */\r\n cancelAriaLabel?: string;\r\n /**\r\n * Label for the date picker ok button.\r\n */\r\n okLabel: string;\r\n /**\r\n * Accessible text for the date picker ok button.\r\n */\r\n okAriaLabel?: string;\r\n /**\r\n * Event triggered whenever the selected value changes\r\n */\r\n onChange?: (date: Date) => void;\r\n}\r\n\r\nconst InnerInputDate: ForwardRefRenderFunction<InputDateRef, InputDateProps> = (\r\n {\r\n className,\r\n label,\r\n hideLabel,\r\n hasError,\r\n hasFeedback,\r\n feedbackText,\r\n feedbackState = 'info',\r\n darkMode,\r\n hasIcon,\r\n icon,\r\n calendarIconAriaLabel,\r\n previousYearAriaLabel,\r\n previousMonthAriaLabel,\r\n nextMonthAriaLabel,\r\n nextYearAriaLabel,\r\n monthsLabels,\r\n weekdaysLabels,\r\n focusedDayAriaLabel,\r\n selectedDayAriaLabel,\r\n todayDayAriaLabel,\r\n todayLabel,\r\n todayAriaLabel,\r\n cancelLabel,\r\n cancelAriaLabel,\r\n okLabel,\r\n okAriaLabel,\r\n value,\r\n defaultValue,\r\n onChange,\r\n ...props\r\n },\r\n ref: Ref<InputDateRef | null>\r\n) => {\r\n const generatedId = useId();\r\n\r\n const propsClone = { ...props };\r\n\r\n propsClone.id = propsClone.id ?? generatedId;\r\n\r\n const innerInputRef = useRef<GroupedDateRef>(null);\r\n\r\n const dropdownRef = useRef<HTMLDivElement>(null);\r\n\r\n const wrapperRef = useRef<HTMLDivElement>(null);\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => {\r\n return {\r\n value: innerInputRef.current?.value\r\n };\r\n },\r\n [innerInputRef.current]\r\n );\r\n\r\n const parsedValue = value?.toString() ?? defaultValue?.toString();\r\n\r\n const [groupedDateCurrentValue, setGroupedDateCurrentValue] = useState<Date | undefined>(parseInputDate(parsedValue));\r\n const [overlayCurrentValue, setOverlayCurrentValue] = useState<Date | undefined>(parseInputDate(parsedValue));\r\n\r\n const [overlayVisible, setOverlayVisible] = useState(false);\r\n\r\n const inputClassBuilder = () => {\r\n return {\r\n wrapperClasses: classNames('agora-date-picker', className, {\r\n 'input-disabled': propsClone.disabled,\r\n 'input-read-only': propsClone.readOnly,\r\n 'input-has-error': stringToBoolean(hasError)\r\n }),\r\n\r\n labelSectionClasses: classNames('input-label-wrapper', {\r\n 'hidden': stringToBoolean(hideLabel),\r\n 'flex items-end mb-8': !stringToBoolean(hideLabel) && label\r\n }),\r\n\r\n inputWrapperClasses: classNames('input-wrapper relative flex items-center'),\r\n\r\n inputClasses: classNames('agora-input-date', {\r\n 'has-leading-icon': hasIcon && icon?.startsWith('agora-line'),\r\n 'has-value': groupedDateCurrentValue && groupedDateCurrentValue?.toString().length > 0\r\n })\r\n };\r\n };\r\n\r\n const { wrapperClasses, labelSectionClasses, inputWrapperClasses, inputClasses } = inputClassBuilder();\r\n\r\n const showOverlay = () => {\r\n setOverlayVisible(true);\r\n dropdownRef.current?.focus();\r\n };\r\n\r\n const hideOverlay = () => {\r\n setOverlayVisible(false);\r\n innerInputRef.current?.focus();\r\n };\r\n\r\n const toggleOverlay = () => {\r\n if (overlayVisible) {\r\n hideOverlay();\r\n } else {\r\n showOverlay();\r\n }\r\n };\r\n\r\n const handleOnDismiss = () => {\r\n hideOverlay();\r\n };\r\n\r\n // HANDLE INPUT DATE KEYDOWN FOR ESCAPE AND TO DISABLE DEFAULT OVERLAY\r\n const handleInputDateKeydown = (evt: ReactKeyboardEvent<HTMLInputElement>) => {\r\n if (evt.code === 'Escape') {\r\n handleOnDismiss();\r\n }\r\n\r\n if (evt.code === 'Space') {\r\n evt.preventDefault();\r\n\r\n showOverlay();\r\n }\r\n\r\n propsClone.onKeyDown?.(evt);\r\n };\r\n\r\n const handleDatePickerCancel = () => {\r\n handleOnDismiss();\r\n };\r\n\r\n // HANDLE CLICK OUTSIDE DIALOG\r\n useEffect(() => {\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (!overlayVisible) {\r\n return;\r\n }\r\n\r\n if (!wrapperRef.current?.contains(event.target as HTMLDivElement)) {\r\n handleOnDismiss();\r\n }\r\n };\r\n\r\n document.addEventListener('click', handleClickOutside);\r\n\r\n return () => {\r\n document.removeEventListener('click', handleClickOutside);\r\n };\r\n }, [overlayVisible]);\r\n\r\n // HANDLE ESCAPE\r\n useEffect(() => {\r\n const keydownHandler = (evt: KeyboardEvent) => {\r\n if (evt.key === 'Escape') {\r\n evt.preventDefault();\r\n handleOnDismiss();\r\n }\r\n };\r\n\r\n wrapperRef.current?.addEventListener('keydown', keydownHandler);\r\n\r\n return () => {\r\n wrapperRef.current?.removeEventListener('keydown', keydownHandler);\r\n };\r\n }, []);\r\n\r\n // ONCHANGE STUFF\r\n // IN ORDER TO TAME THE NUMBER OF ONCHANGE CALLS, WE PASS THE RESPONSIBILITY OF \"CHANGING\" TO THE GROUPED DATE.\r\n // ALL CHANGES OCCURRED IN DATEPICKER OVERLAY WILL BE PASSED DOWN TO GROUPED INPUT DATE STATE, THEN A GROUPED DATE ONCHANGE OCCURS AND IT WILL TRIGGER A EXTERNAL ONCHANGE\r\n const onGroupedDateChangeHandler = (date: Date) => {\r\n setOverlayCurrentValue(date);\r\n handleOnDismiss();\r\n onChange?.(date);\r\n };\r\n\r\n const onOverlayChangeHandler = (date: Date) => {\r\n setGroupedDateCurrentValue(date);\r\n handleOnDismiss();\r\n };\r\n\r\n const dropdownDatePickerLabels = {\r\n previousYearAriaLabel,\r\n previousMonthAriaLabel,\r\n nextMonthAriaLabel,\r\n nextYearAriaLabel,\r\n monthsLabels,\r\n weekdaysLabels,\r\n focusedDayAriaLabel,\r\n selectedDayAriaLabel,\r\n todayDayAriaLabel,\r\n todayLabel,\r\n todayAriaLabel,\r\n cancelLabel,\r\n cancelAriaLabel,\r\n okLabel,\r\n okAriaLabel\r\n };\r\n\r\n const labelClasses = classNames('input-date-label', stringToBoolean(darkMode) ? 'dark-label' : 'light-label');\r\n\r\n return (\r\n <div hidden={!!propsClone.hidden} className={wrapperClasses} ref={wrapperRef}>\r\n {/* Label */}\r\n <div className={labelSectionClasses}>\r\n <label htmlFor={propsClone.id} className={labelClasses}>\r\n {label}\r\n </label>\r\n </div>\r\n\r\n {/* Input wrapper */}\r\n <div className={inputWrapperClasses}>\r\n <GroupedDate\r\n {...propsClone}\r\n ref={innerInputRef}\r\n readOnly={propsClone.readOnly}\r\n disabled={propsClone.disabled}\r\n className={inputClasses}\r\n value={groupedDateCurrentValue}\r\n aria-invalid={stringToBoolean(hasError)}\r\n aria-label={hideLabel ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\r\n handleInputDateKeydown={handleInputDateKeydown}\r\n onChange={onGroupedDateChangeHandler}\r\n />\r\n\r\n {/* Input Leading Icon */}\r\n {hasIcon && icon && icon.startsWith('agora-line') && (\r\n <div className=\"input-leading-icon\">\r\n <Icon name={icon} aria-hidden />\r\n </div>\r\n )}\r\n\r\n {/* Input Trailing Icon */}\r\n <button\r\n type=\"button\"\r\n disabled={!!propsClone.disabled || !!propsClone.readOnly}\r\n onClick={toggleOverlay}\r\n className=\"input-trailing-icon\"\r\n aria-label={calendarIconAriaLabel}\r\n >\r\n <Icon name=\"agora-line-calendar\" aria-hidden className=\"icon-calendar-default\" />\r\n <Icon name=\"agora-solid-calendar\" aria-hidden className=\"icon-calendar-hover\" />\r\n </button>\r\n\r\n {overlayVisible && (\r\n <DatePickerDropdown\r\n labels={dropdownDatePickerLabels}\r\n date={overlayCurrentValue ?? new Date()}\r\n onChange={onOverlayChangeHandler}\r\n onCancel={handleDatePickerCancel}\r\n />\r\n )}\r\n </div>\r\n\r\n {/* Feedback */}\r\n {stringToBoolean(hasFeedback) && feedbackText && (\r\n <Feedback\r\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\r\n feedbackText={feedbackText}\r\n darkMode={stringToBoolean(darkMode)}\r\n />\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport const InputDate = forwardRef<InputDateRef, InputDateProps>(InnerInputDate);\r\n","export interface IFlagProps {\n code: string;\n iso: string;\n country: string;\n flag?: string;\n}\n\nconst FlagsList: IFlagProps[] = [\n {\n country: 'Afghanistan',\n code: '93',\n iso: 'AF',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3REQwQzQwNjE3NTMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3REQwQzQwNzE3NTMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdERDBDNDA0MTc1MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdERDBDNDA1MTc1MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+duaIkQAAAalJREFUeNpiZMAN2BkYVjMwyDIwfMCQ4mNgeM3K4DEFj24GJgaagaFpNAuR6v4yMPwDO4SRaOcQZfQfBgZOCQkOSclfb978/fbt59u3/6li9G+guTIy/EZGTOycbDJyrIIC3+7e/XX0CMgXZIc1I9hcPnstsbzA94ePfH/x+N//n683b+ILNBGw0v3zlwKjIYErGub94dhpJi5u3Q1rtFcuZeYTerNtj3CwJxMjBQECdBaXoRybhCzLFy6eQJuHPW1/P30W9Db9fuMlh6QSt706A8NNMl0NNJpNVIrHyIyDR/DV4UOMivxf3tx/vnM7p4gor5kFh7gs+QEC9NG38ze+3jz7m+Mrv6i2oKGtTGo6v7jOr3/vP1878fXcNfIDBCj39fWHdyt2K/Q3vpy05FFWCwMTE6+NrnhR3PvyCZ9vP6Mo8bEyMLxZsOkTD4tkaga/vvXvt285rdSeT5n1dckaFkrS9X+w9F+Gf8+nrPl9+Q2LkMD/f//+rd/4es8ePoZ/LKyUZZn/YIczMzC8PHgALsgGFvxPeW78D8477BiCw7RQpaHRAAEGAEWfj+c8VB1nAAAAAElFTkSuQmCC'\n },\n {\n country: 'Albania',\n code: '355',\n iso: 'AL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyRDFBRDI0NTE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyRDFBRDI0NjE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdERDBDNDA4MTc1MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJEMUFEMjQ0MTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+GPq/agAAAiRJREFUeNrEVb9rFEEUfm9m9nb3bhNz50UMClopRAsFrUURW1tBrSzsLPwfbPwDbGz8F8QiIkLAKiCkUIKiGBEFwXAhd7fZH7Mz83zZtbC4TdyF4LDF8N7ON9/73jczuN4/A4czBBzaqIUmAA+Q0wjQRzkUCsv4USEHKKs4/0DtWOdAgxLxrUk+mqyHIkLx2eg1k1gA3kwDtYFeFOqVnj5NRwXQip7eGG9+svlPV1wff3mejwuiZ9n2i3zCRWANAta1kaFX9OS1jkdkHdGyCt6blMmel8E3p1OgY6iueL2b/pEtZ5qx5kRCLIhMyK4WMQFt2HzdpEzypZ5OnOVUSoT1gqi6BOvA7ZoDUan5JB3BXxPeOALBahigxloLQO4SFy5hBjMOpuA0zc4ebL4OYExuZl0dxNiRh63MZ4jYXjzJiG77/cuqW8UvqvBO0Ge+jjsplKHmgrCIIeICyke9pXPKZ+kvqPCS1+X6T4vO42iJN/YB22jNIo6cYWN9dfqdya560TxKruKaF32w2abVW2VWtNCa6fRQnpTeD1vcD4anZOdNEa8VCZN9EA6/2+KE9Ob3dUit+XbJHRfqXjBgTZjYhk3nUDAQN/CsDJbDYIfcbvlhU+hqQUpuSo6tcstfYMp8q9z1+7+cyfZMuUe4zZGp/GfLxRm4bbIPu4scYbIJOO6EO+hSVf9y8zLQmGxUKrNDRu7HtSH0n+NHrpr8/1fmtwADAEjB+xzEjgF0AAAAAElFTkSuQmCC'\n },\n {\n country: 'Algeria',\n code: '213',\n iso: 'DZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNDgwMTE3NDA3MjA2ODExODIyQUY5NTY0OTkxRjRDNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyRDFBRDI0QTE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyRDFBRDI0OTE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDQ4MDExNzQwNzIwNjgxMTgyMkFGOTU2NDk5MUY0QzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDQ4MDExNzQwNzIwNjgxMTgyMkFGOTU2NDk5MUY0QzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5FFcD/AAACLUlEQVR42sSWQWsTURDHf283dTdZQ9qCVWhQD2JrRCmEaqUoarEQi3c/QEDx2ByqtwgSUTx5EvINPHlQRLRYsViqHgQRVGopRpo2kKbppk26SbO+3UDBk5uY2mEXdh7s++1/5s3MClJDNi1a/daMLaDU5GtBeS/6+AcT7uVu1KwFFXbJmldstwfsXXFdEoWM7P4AGJt0qTqlpcUdBjtQTYUeP6c+LjOd+srKzSnq/RHMWIzNdBpqtR0Aq1Jpt07i8Ryzj74wmCtz72yY4qunBO/edyNRnZxsc46dnEqlo++yPHjx0106Ej9E5kqUGwNRuYMfbeAE9VwO2zQRwWCbFDtqq3Wuzyy77p0LvWTO9WLMm9ReT8Hnb2wkkwi/3zPUm2KZWy1fIbqw5rpv+jply7DoCPdRz+exRy+z4SgwDPREQj4o7cuxsBudYruabGdBQfh829Vll8uN9bYdLmuLSrfGp4ONMA7/kMqDGrVfGQgYKNPvCUxMoI+Py7SobQTXpApdJX26x3Vvv8ywbzZL6bBBx6UR+SWDBFIpqFSw19c9g1VGwsm/NWTKW3w/1gVmlfMLJtc+rGKvWpwcjhFas7CeP8MuFFAjEa9cS3iaTk4D8ctzGNrDxbdZHj6Z53jRohjqRJwZQhsbQ4vHZWR0r2BTeB6LDtynuDVNYYUDpb3MXU1jHO1vpWOa3oeEIhrwrFM8Oku+WqvQFqeT+N/Tadfn8Z9tvNVfH/O3AAMACcCyb9iaq58AAAAASUVORK5CYII='\n },\n {\n country: 'American Samoa',\n code: '1-684',\n iso: 'AS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyRDFBRDI0RDE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyRDFBRDI0RTE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJEMUFEMjRCMTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJEMUFEMjRDMTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+O7eQxAAAAhJJREFUeNrslD9oE1Ecx7/v7l2TXpLGWNrGioJDO4ogLkJBhA6iFDpUOhc6ODiKBUWcBJ1bKLaCIIJOjl0ypDh1rFDQyUH6R1HitaRpcvfu+X0XHWp6TWkCGdof3D3evR/3+f35vp/AtafrADI4yLQGlEZ+oAdCCGxtedC2ADeNvnYXUv4uCl8LOM/1N/eHmeQz2PDV/FcZaAjx3cP7V1PIppO4OvoCyk0AFh3SXEON45oB7+zL+F82P7frSfem8eRlEUnHRki4m3MhCN4t16CNrzg+eL8FCsKr4NHMbfhBiOezBSwvfWIEiCrw+MEtjFy5iJsTc/BTLKcj2wSmWQRcHsqjsudDVJhZf0/9YL2Etwzi4+o3BC6h0m6p1P+JxILKZ3H3/puo2WIwBxAuux3cm7mD+XcrWCt+Bi71RRVoHxj1kiLhRCLSvgJKZQRlibUvm3CZqXcu2xI0HmyMYgKh3Wzu5PQNmFu0uLBMNSdbVnQdbDvxpzWNih/i2cMxnKXb6w+rCKoBO8B47cZ7XFZ+pMGjCF06QTX+lPqxQoXxqXkkuiSkqkEkLSq/euCwSalqBD1KE0Sx9/p27OTiPdXs88YPD4q5XOg7A2GmmW4sszZC5DvH4Cyuuknecqi20zS64czfcbbnxTuZeOhSshPM2IqCOBT8i47ttmbQaFagQ3YKPhngTCfAZlZvdAL+R4ABAI7lqpHANxKvAAAAAElFTkSuQmCC'\n },\n {\n country: 'Andorra',\n code: '376',\n iso: 'AD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEQUI4NkFBODE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEQUI4NkFBOTE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkRBQjg2QUE2MTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRBQjg2QUE3MTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+lPUISQAAAfFJREFUeNrUlFtrE0EUx8/ZS7KXpJLNxiQ0biSt1hTFO4qCvgl+AF98EV/9Nr4UP4ePUuijFLzUait5iDZVm2a3NE22JNntzhx3i0WkWmWCoH+YeZlzfjNz/mcGr8McHBIDyYOJj/wRYI+1CocDZCeM5xX9spxjqBD8TBL8Nf0DaMTv8x9K+S1TTo+IVKBAUndpL4OYwtgLwPHRfLCTlTN9d+vCdrueKzaK9hIfGnp5F0gRRB+4Li0uPaRek5ixrdy2e2ZztYo4eWvqiSTHQSiCxm9X1qPGRu51JX+zf7z9WPmiD9VS/64/DLOm7h9dlV/aKEPSuZute4FvTd8AZ/Zces22vKbdXQ0j/V3jQXIuJRArSLIrDlysnfQ6nzpPYXRFxY4FWS2KdF1eS3zgMgqg+f5SsfwK9qZT7gK2AvVOhswoU+lq2C3lXyQxTJEhEuhrHg9/p45mBUxL0izkplEixgqcKpvupSRZ4mM0X0SD0Fmu3T92tmtonBmSu573PXvy9GJSNAIUQidZ2ann52dSAamfvWtbG/U0X6memNero9rM8oEfXPTUGJy6+CxOn3i/3m5fLVdeOrNvgCOkNKD0uA+d+QVEyTnzwam/JW7wXomAy7nwh4clhN4HEGcDE9EkgiMqIP6pEv13/7WAvgowAA7uuJg3MwVHAAAAAElFTkSuQmCC'\n },\n {\n country: 'Angola',\n code: '244',\n iso: 'AO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEQUI4NkFBQzE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEQUI4NkFBRDE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkRBQjg2QUFBMTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRBQjg2QUFCMTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+HdsdLgAAAZ1JREFUeNpiPCeoxkAbwMRAMzCYjP7/i+H/XwYGRqoazcjM8Pcb45+vTP++Mf7/Tdh0Yo1mZGL4/oZZ0O+X2dfXonE/vn9mIeh2JiLd+/sdEzPb/x+3mF/0csn3fVWf+fHHR5b/PxnxmM5CjNF/PjKyS/2V7f365w3jrRz+d5vYNHZ+lDrx9c1CDiZmkMU4jebHJQnxFyPD99+Mf34wCNr+Y+D9/3Pa3zdneL7M/CNe8v3rfG4uYMQy/sfU9fH/X5DRr/79wWP0v98MfAoMXwX+bjRjV5Jl/v7230+GH9fXMpl5MrMY/H54gZFDAIvR7IzgkAK6Gg8CultFmuXjFXEfA6ATGXhBIoxOeuxPzgurKwNdxoRDF9Fg6Ry+//8lzMyhehrruB9cFaVa7koK4Xh1UjQ2gFOIj/HJRbHidG4qGLptjsCqSfxARrAH+6tTok+PiGydLUA4yRJjdFESV1Mhz49/DH9+/582/9upy79drNjuPPw7Y/l36gSIoRaLkTY0H3CwM66dyt+Yx02Tgk1chCnAlZ1hFBANAAIMABE9jLBld63JAAAAAElFTkSuQmCC'\n },\n {\n country: 'Anguilla',\n code: '1-264',\n iso: 'AI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzYwMTE0QkMxNzcwMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REFCODZBQjAxNzZGMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iOEI3QjgwQ0VBMDNEMDkyMkUxQTdFMDM0NUEwRTZDQzEiIHN0UmVmOmRvY3VtZW50SUQ9IjhCN0I4MENFQTAzRDA5MjJFMUE3RTAzNDVBMEU2Q0MxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/LHIVAAAA2lJREFUeNrsVGtoU2cYfr4kzdWk6QWSpqm1c6K0NnVOizhveNkPnXW0tUzdiMIo24QxW+oNJoj+qbIh+kNRweCFgsNg7RgFNwvtVi0FkzXepjPudK1r056Yk6RpknNOzr5zmq0w9kMq7tcezo/z3Z73ed/n/T4yuG9PyZa1Fx6aD3vuMj23AEfbgUUfXPrsh22t609w4KO55nTTgsShXW9yjvLS3Xe4YZZAh5eAanbrYOOWU++x3b6mkuOtbsfSivCEBBGspM9zmj9fyPqbbS1frDjKVTqPj3HDIYIcvBzIhx97BIt1dUHCbWYM9ZtjRRXMZa/orlOduWgsmzM39hibar3+5Ddnv02FIt91PkvzKUBDD8rxIdAfIAFoqUr6KQllstRSlR2CyEYzTDQjcC9sVn0ynhwXYAUMZk280Mk/H7VrksVv2NIqfdG9VWExl4CyS85SXqsWUiioXjPf/xMjJEasedpAgK6QKWqNr3jZeCgSFlJVtcvzJ0Imdigs6jI3OnM3rHEudzFdfRFHSX/uHCb6R8agE1Q5EKlSSGDdH1UfOeJODPUZTc8nSYPWUuL1ft+w9QpQPMWtWXy3wlX3zt6dSxZUTKY7bp4M5rvmFbpudT6paexZt7VuD1fq73rQHvz0fvVAzAS+T5FMCyLwKRNgN/7enh58YFhRCOviKN0grxI5NK3OmeYlvk3xHQOes+82VX3S3XLAn/QH7DboRga3l+9ftPG057Fh21rHz5ujx3Q/ag1JKWtjTlyg57uTBaszDT2pgBejh8ITdN70t40aa2j0q3PX2yLFPnY2xAjAXu0lv45X/XKbg1H9sLd/V6/v65qa3SsXmnW/qcVJaoEiioxx1Dq9/tF58BzsldBPDA/FaUiiSIYi/n3ay0oidCBnKiENFAGjRDZdJ8mOhxU6OikSpSskpErLdMHgl6qBNhhssFXC8pbL1RwIjBDMyqoGbJSOQK0M6Xm1ootD9l5kFE/yFSVpklVDYWCeBeuPdYztbXnxBBYLHJ72QOA+UDbdfASNmBEkWf6I+dr+WO1Kdf9T9YZ9ac5IYMRfBVETvD0zaqV6mryO/nKeSR3siIV4gLZ8ZnrDjFVPKZOQVJywALOIfD+nocErgbqaI8lu4R+8r049beu/vHx4bfif+r+j/lOAAQAGyVcqpoR/+gAAAABJRU5ErkJggg=='\n },\n {\n country: 'Antarctica',\n code: '672',\n iso: 'AQ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNjAxMTRCRjE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNjAxMTRDMDE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2MDExNEJEMTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM2MDExNEJFMTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SFAcWAAAAxRJREFUeNqkVutLU2EY/52zc7a5i1te5r2lUFpiYl+CMsjoQ/QPRGYFUZAQ4WfBT0VEn6JPBSFGQZcPCQVS9EGswBAy7GagYuqWTp24zTnnzqXnfb3g1M3D/I2Xc3nfZ7/n/hzhWFu/H0AxrQgMQKCl6iv3ooBM4KT1T1q9wYZrSpglAdPhBOYWEpBNIhaWVDisJpTkWECP0HXj5JLRk4x0aCrGSW6fK4fNbEKQFOgfjeDZpwA/k59tJkVEUkLYUYktxEyAyZiElesaZiMJePOsaL9ehcrirPX3jcc9uFBfgC9DYXT0BDAxuwSJhMtyrSSvp1QgiZjFLKHp5EoFbrsEC1mprQpOhxK4eqooiXQNdfscqPXa0XSiAAN/F/DgnZ97J0sWIaTIA3HjQ5AIj5Q70XK2FCOBGCaCcVJGgErsCmVUdak9pevYOSfFu77KhbvnK7ilcUVLfX7jg0wu+u2PorHeg+62WrLOhl++KL6PR3F0fzb/UyPw5ltQnm9FlJLPUIxdNoksXULz4yE8v3kQ71sPo717ir8/XeOGVRYNEbPkysuWER5R+XW7OCcRM5d66CCz8ill6kWK2ZWGwoyKleVLLK6thGob5i0mOCwmrkDLk2H8mIgiUzy6dgA3zpTAPxeHvlOMGRQiTSg6Th5yo6bMjt2AxTkcUyAaIWZYXFbTZrBRlOSYqSxlJFTdGHGh24y3X4N42TuzK2IrdTdxUyNKS2wngRC56E7nGOajSsbE97t8vP5ZuzVEzOJc4JIRW9bQ8TGQEennPyEM+haR45B2LqekDfJRrlPGvTfj6OybwSUqLYlGEBsKFR4r6qjDsf3qUtu28rdej2FZ1aj2pfW2a4iYHWajjpGwAdH6YpT3XUau0eYklcnlhiJ0NFdukX34YRI/qRT30lDRdIPTafOkYnBT52JrDSxLbRYRTdRaN6Pr2xwNCR/2UDZLIjIjTteVPC4zXlHW99I4ZF4ZGIvyidQ3HOFxZUtR9bS9OrL69RExSszmLfv1DM4jtKjwDyI2YLLMIrnXwi1NQ8q5/gswAJWJHoEWuWKnAAAAAElFTkSuQmCC'\n },\n {\n country: 'Antigua and Barbuda',\n code: '1-268',\n iso: 'AG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNjAxMTRDMzE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNjAxMTRDNDE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2MDExNEMxMTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM2MDExNEMyMTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VJu1tQAAA/pJREFUeNq8ll1oW2UYx3/nnJyk+W7SjqZZ25VORjvQSSdKLV5UL0ScugsvRKs4FCui6C7aiyHaqw0KMnFgy/BKvRG7KQgiDmGC1SGb7cZWW+0Xa5uadWnXNEvzcT58T9qUpk26gOADL+fwfP3f5/k/73uOdNThn/82vRIGVvl/xPuk3Rthpqol3qQ4TKEoazkdUu4Z8Mlm0C8X6MpZtbJqjgWb43KVZGPAU3fPbUrS+vOxwyqhKpnWB2w80qpS5ZPoeFgt8NlN+r11NMgqtjE9xRN2D33uWnruLpQMOHxQJbZsoCnQ1elCy5pIMrS22Lg2oRGulmkIK1y6li2Zo9cd4hm7j2FtDZuMxJ9airede7ikJTmfXtlRqSmadPlGloEPvERjBm1tdh49aMPQYGRGo0Js5mi7g9c+jBfEbJWn7F66Bca4KNRqjPRH4EBcx/SGRPmWb8edCSb1TEFQ2yGV/XUKlQGJMyf96CkTxW4xJqGLyhWXxPH340SjBpFFg58vF8aHRe6LlfvxiBbNG1kUpFXZMogXIkIRkBT6i/D929UsITXFma41sdUoinsRtFugb7ybUU6/keSAP7UD1JJPRc46AT67DprT2fJGVShyfCsV9Pkb6fH5IJXGoWjsrZH4aVHim2kPbX4b/9w2NgfJammNGLbhWY3vFxI0HTKJ3DJJZUX/nQ5643GOKE5G9HQOIy+2rTvL8/1OZo3f208w+NCL6LFxsmJwkm6ZznGd5K+62OW28RXtrggoNLygoK0Z6IvCp6qZp6+ep3uwh79UkVlRC2fH4tg61HmFLkoJJVcwZIWO179kKnw/RKZzhJQnAjTUQO3tKS5+9hKedIKIO4BSOG3rHG8Vy8FyDCaXGPi6G+4KDt0uMBLCmtx9WT7OCsgk6B/spj4+z5ynejvoRneLiGrojAX38fjCFfp+OAWBPaIQwcqaOD8pvfiybFmRLlhD74U+jtwcYjTYKHJpxS+k7a3Oi7geULUMjtVpZk9/jue9l8lOruYujWJi6ibqfT4SZ8/R0PU8Gc8+0vYKpCLVWq0uCbzOt4yyFKWpyoV/+Beob9yd3liU+IPtTM4togfDosVGKc9Vebc8VqBUHeZGbJ7rz3bec6xGn3uF63OTIqZ+N9DSHBe2MIsr2MKdkSGmu94t6Xfz+AmWhn7EGWjOxdxL5HIOiImBy9XIwtlPiH3x1Q778rnvmPv4FE5ng5gas6xDVxawdT3JTqe4bSqZOvYWqdG/N02ZmXkmX31T2Hziznbv/Dr8J2ALWxwxe/VesvoSE53HNvXWeyYREbb6nE+5Ytv45fGW8+uT53tleIjIyY+QXS6Why7gLpPX/K+PhfWvAAMAKo+tOTpRNSkAAAAASUVORK5CYII='\n },\n {\n country: 'Argentina',\n code: '54',\n iso: 'AR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMzA3QTc5QTE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMzA3QTc5QjE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2MDExNEM1MTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM2MDExNEM2MTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VveEGAAAASFJREFUeNrklE1OAkEQhV/3DD8ODEQgxBBXwIa4YMUNPIJX4VK4NN6BxM0k7tQYI5FkMgzE4U8ZpttihAN0J9ALqlO9q3zdr+oV6w9evwC4OHHYlA0YCE45NwXGWYFtP9poFbL0oltKSB3wbaeioROHlXEIyOhIiHgFKYTaw6WUkZadxDfwswAuqJSV1BXTAW9mIwTePeLgGZlqB7XuHXK1prKPlSL5XSJ8GyL+fITLX7AYvSMsXKNerMPOF4841ek87borYKXVyb6/4rg/trIOqq0egugDoe8h17hBpd2j37qnGq4psKJSp0y6XaoLN3jy1cGMg5Od/t1MPt6uSe5ETeoHbwLdDcIOYI0NYl+Vs+e1q42CXRPgnY/HJuB/AgwAxP5dJ04ev60AAAAASUVORK5CYII='\n },\n {\n country: 'Armenia',\n code: '374',\n iso: 'AM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMzA3QTc5RTE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMzA3QTc5RjE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMzMDdBNzlDMTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkMzMDdBNzlEMTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WDHK5QAAAF9JREFUeNpi/M/A8IlhAAALEPMOhMVMDAMERi2mX+LawmD8ZyAsZmRg2P9vgLLTO8YBsvjvCEtcA2U30GKx/wOSqpcm2/weEIv/b2b4PzBB/Wy0rB7++Zjh80BYDBBgAAfmD594ReJrAAAAAElFTkSuQmCC'\n },\n {\n country: 'Aruba',\n code: '297',\n iso: 'AW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzMwN0E3QTMxNzcwMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzMwN0E3QTIxNzcwMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQkNEODUwOUZCREQ1NjMyQTZERjhERDI5ODI4NUUwNUQiIHN0UmVmOmRvY3VtZW50SUQ9IkJDRDg1MDlGQkRENTYzMkE2REY4REQyOTgyODVFMDVEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5hWk3QAAAbxJREFUeNqslM9LVFEUx88597wZZ6wZmRITxBJCUhBahjBtWkgbd23aBEG4EdrpX9D/4M6tuGhhK0FwE+hG3UkUZASRYDTVzJt33497jvclUuuZe7jc5YdzP99zDy6v76lpoIiixAXXjDOICgpDlCIbl7CaptANRHEq92YaFz8SZ3NAHAYtaBCIQAuP/W1dWq28sO+qEl+kvu0MIB/4oL/VEZRs5UZ9iT8tbr9p945Hb9/M0cDQZaYerdydbq1Ge8+31/4cfWvbo/mF8bOJue8/oYICg4lBIi3M/OOXSc7Hyfj51Fw7Odx4+HprdKnXzUCcFz6g8r9o8sKdLb7GIzutJyfP1t5PP/3YrdhUeGDudVE5ZYQTlZS7vzZby7niZBQjoQ7tmq8nESLQ089pjdSE4P6HLl8vdcoAw3D/oa/kI0LAYlUSLbMMCFUfoRKfx3dyvVX+n5BoZu3hwe5is9F3eUgXZLSfRPylc7+WFU4kWHw+NINpinzWeRBZFicA4Rr345sW+GF/dqzZL7KQs2EM9Czzq523Ak1AG7BrH6PRmOsjhZBfq960BEMjsAOuakfKjS0aUklE0L0UYAA5i9TZQeWJxAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Australia',\n code: '61',\n iso: 'AU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNTgwMTE3NDA3MjA2ODExODIyQUY5NTY0OTkxRjRDNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozRUY3Nzg2NDE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozRUY3Nzg2MzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDU4MDExNzQwNzIwNjgxMTgyMkFGOTU2NDk5MUY0QzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDU4MDExNzQwNzIwNjgxMTgyMkFGOTU2NDk5MUY0QzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4Y+peLAAAD2UlEQVR42uyVW0wcVRjHfzu7s7uwOwgIFLA2VqjKLXKL1fjQ2DaBah9slbSp8qD2ZiSaStTG2AdTTBOrwagvJoZISWp8aDWUCjQ2bYgUGlCC0ECNAi1QspTLwnaX5TI7npkdKJZNQxMTE+OX7J5zvpn9/uf//y5r094tH6Y4V6kZyuZItYex1l4FYafKYnxF377Kzy9+QfFXquHTrTKr17dvfxxaYiHKnkHF758VXol7NcnycVzqm7vOKbtu/qj8/oZXOXq0AGd+HiNBWSGE4rHep9hT0vggs5/RIz72HipQyj3PK9LxBAE6FSFkCIfDSl5eEi6XbJwjArtcboZKyqgez8He08mh5+b4o+EJtmQ7YASeSpf5s0Ll8HvriD74CtWxO7nWNsALzj5kmy6EdkfIABkZ8bS2vkRh4RpxvhUR2KI9yDTzKOJb/MYSIZBp7hgRYzq8T9GvbCXuxod4tXhx8C97URVMneTmJtHdPcbU1IzwLaYjakkB28ym1/CMePHNyzy29XHk8T5xAUHVLxifPAU7tsOmTGjqZCFopzcxh2jvMG67hPqDkHJ+dompCGcE1/Pe3Nwr9tEG4Pr1yQQC83g8PnG2hoETv89RHjlcyvu748lJugIN7VQOZJK7wcEzdadoKS7j0pNFvLX/Fraen+g/PclHvi1cnkgWoA0moExaWiqTk0EmJvxmcD0NC9hsAS5ePEBT0xClpTXCF28AW6s/faf8y+xfHZnt3/HN243srpY4WRfFvoevsm6wjqnkAna8fIWac31EJ6SwJ2OUvbEdPNp9iTPjCuqc4CWI9fe/LiS209j4yxJTCBIKaXR2+jh/fkAwnjVVsWBTrvXx+Sf1fO0vpMu7WaTohngwTFWLhebRzfS1iAAOjYG2bg60XaVy+1YOPr2BVHst0rzO1s3cXIiSkjMMDuo1EGNKP0N+/kNYrVYuXGgXZ5f5CefY4nJ9pvn9etKnjcLQZdNvGt4/gFHahi0WxrTJJtkIHn5PL0q9texmcNUouG3bspFlidra30z/bbOFF7Najdws4BYVHAqppKdbuX49BlXE8flmTMBFRsvbRFvmV801hvr6HnOvrOjnCCNHxWIJUFVVxNmzOzlx4tllCqzGLCbIlKleVMQhIkWaPLGxkhgC97N2rWKsiYm2ewBWcTplCgrSjH7WFYw4uVa6ZLzeIMeOXTZaoKKihbGxgJm/1ZifrKwE2ttL2bgx5Y7h8jddjmsrpVoQ1SiL3AaRJIeR73D+tVUxdrudYlavoavrpiDhv11Kd2f8z1hHh+fu/078S/Y/8H8f+C8BBgBE6FYFFd8qlwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Austria',\n code: '43',\n iso: 'AT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozRUY3Nzg2NzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozRUY3Nzg2ODE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNFRjc3ODY1MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNFRjc3ODY2MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WaOFnwAAAGpJREFUeNpivCHH+pSBgUEKiD8z0AfwAvEzFiiDAYmmi+VMDAMERp7FLL8e/R4Yi4WSAgfEYsb///9/onOKBoHPo6l61GLaZafnBYkDk50uMjAMSHZiYZdjHU1cwzxVQ5s8vHRu+nwGCDAAxfQUXKOTRMkAAAAASUVORK5CYII='\n },\n {\n country: 'Azerbaijan',\n code: '994',\n iso: 'AZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozRUY3Nzg2QjE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozRUY3Nzg2QzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNFRjc3ODY5MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNFRjc3ODZBMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+D6YUmwAAAZJJREFUeNrsVb9Lw0AYfXe52qotVYp0clI6SEFUdNBJERRHXdydBAfxLxCdu/iXCCK6lKLFOjj7B0ixSrGJTa32R3rnF+KeS5YgeuQl4fju3vvefXfHcHZvI4ImCKkoiDkian+PWCCbDTZCKcAZkGTSbITXLdZLJf8o5j4C8sOGrNZhTE+CJRJQnU+aYchVE5iYKeSU3oo0CX3g5BRIJIHyHXBxS301wjghmABh8bR/lBzAgYnM1Tn46iKaC1uUeYv0JMFSecimTY4QMWf6xeXQWvmhh3cYM2vgmyuwlvfQfqyga9cQ29/B2NsN4scH6KIOh3h15nOhWR0KTAjv76tDb8PrHo6TZxxsJO7aEshq1uBLvtGKrJZ4RaZ8CZ6fgjm/AVVtg/FRsIk01HOdZnIr0NAmp+Ka0ywu0/sWCpQcEVwXgWKF+p4IGTf9n6w1M94+2tWSyBCDtC3IlwbEbI6sH4K0TG87sRDbCQ+HKkg4JGXV63uHRywWag97J1e1E/LscW11/i+J33A7Aa0oiL8FGAD8Y4eRaTQ3EAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Bahamas',\n code: '1-242',\n iso: 'BS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2Rjk1NzM4NjE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2Rjk1NzM4NzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZGOTU3Mzg0MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGOTU3Mzg1MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++Dx9hgAAAetJREFUeNq0lv1LU1EYxz9nG0xplxppL5PobZawXsBlIAmOhAgJk0qSJc5NakH5Qj9EFIFY9Jv/hn+I/4S/bJSjaTktF9tiL/fOZ94GCiFTd77wwD2Xe+73nO9znud7FD39aeLvDIJ9sPETNiWcLnRDSVR3np5MwtgruHgVVpJQyMkCnFqJ/0gYOyNvG8TewINn4JFXKVlApQIOh2biOrpuQmQWBh5C8S+spuRLZYdW4jpqxJEZuN4D62vwO9O0/O9PXMfYaxiNg+8SJDYk/6bI/2+2VuIaTvnwxKcZDgc43loilchTrlRRDqWZWNAiMXLXyaePlzkfOiujMnyXM1AjVxqJd+PlhI/5D37a/Sck/zmsnIlyKf3EdUTCHSx8voLXcGHmzYbnHblAt7JlrOrBS+3QtTH6+DTz7/10dp+ETAEzW5RKc+iR2i0xJCX9Ze4C/sEOGYm0a4VDadf4jo8ZuF9M4Y0FWGyzWFnKUypb9onWVk7D4xAWA+m8AV9/QbYkHUxp7Fy9AzA+DbdDQiaE66uyQ2dTevb/pT4nrTEqLjX4FCyRM7lsu2cTfXrvn9wttis9ikL7GfHlhDSnor1LmudMey8C90dsWQNBSH+TBGxpvghcu5Xm+VuDO/cgl4Ufadv4lUIntgUYAIDGhVXvTDlFAAAAAElFTkSuQmCC'\n },\n {\n country: 'Bahrain',\n code: '973',\n iso: 'BH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2Rjk1NzM4QTE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2Rjk1NzM4QjE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZGOTU3Mzg4MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGOTU3Mzg5MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+B1d5vgAAAOJJREFUeNrslbsKwkAQRe/GPCyTTxC/1spaBIuIqKCVlR9gJWovKAhCwCT4SAI+4q6j1tGQRNNk2pmduzOHyzAhxAkRcd1asFsm3M4Q/nIKCSo0owIwBgiONMFIWMQpDGYL2M023O6AHslgspJKWIpbKBs6JJXE4v3ze79Pyct6A6tWx2E0xtlaPRcETadVl2jVnP9wYmp+9wOE+yM4bu9y0kQGQxeMC8YF4zwZsxwYN+hg9IgxlP8yZpqKrCIZYyn9WUzmYxQ+TsbYi0qGO+c1oWP24c0n5CKBsl7NxMcPAQYAXoK9LDclUq4AAAAASUVORK5CYII='\n },\n {\n country: 'Bangladesh',\n code: '880',\n iso: 'BD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2Rjk1NzM4RTE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RkMxQjIzMDE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZGOTU3MzhDMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGOTU3MzhEMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oE4gsAAAAkNJREFUeNrEVk1r1FAUPS8vmY9M2tJSpG4q6kIYu7LUTXWjG1EQCuJOf4Abf4BuXIi49Q/4A3TRXRfdCK6KCC5Uit1UFxXGQqXTZDL5ep6XpOCAM8lMBnzwXiaZd++59+S+cyPw6O4x/sMwOWfGthKcqjpw8dAgBmeDi+Q1ycEFl5A3fZXtEdME1iBNepQCq50QNw5jnO8liPjoiyOxdcbEjwVG4xM5VKXBzUJQx4BDp68/uLh3EOTOc+9KIWoaeHmhjqeXmxkr/XLg5kh6mWmTjnbed9HuRFBzEl5jcFuLgTz55GG5p/BwzQZiGsbFwMbIf0jvm48u2r8iuKTT+8fuE0sgmDfx4JuPx7s+YMtShTccmBRe+RnizkGIeFZqVocWeGBk7DzbD1A7YbqWqJbx/cMopa0nR782waCCuoE5N8ZNsoP6pMDajvaX3CQ9PqIEdaG2YZAr2kZUoXq8Y1nOYeE+ldX7nm2kWagSEVh6ITtftU2l4iJjbxfN1FkjKRa2Wj+By4re1jaBqgDsJ9g5a+HdkgXzOB7Ke0qOXjyF58s1+LNGJjITA8eZ141VG9/nJVpHcZr5AO387UQKjaMImxfreNGmuvRUxVrQANTk33xnV6/PYOtcDZJ0Osy+xcpNp2aCwbxasbGx1sokNlRT0GoN3k3QsQVurzu4RkG5xXN62iQ+s0lsLpnYW2Rp9fMuVbKsBT8EikM8bYtUs/Qa5UFRUkGqdT1Mvy3+3fi9ZPCAq8kPvQbujq0SFb8+9PgjwAAqQMkwoAhtcwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Barbados',\n code: '1-246',\n iso: 'BB',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4RkMxQjIzMzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RkMxQjIzNDE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjhGQzFCMjMxMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjhGQzFCMjMyMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+gU/BiQAAAf5JREFUeNq8lj1o1GAcxn/5bLy0l+v1esJpUcshBVcRREEo1MVBBUFcHJS6KAhS6yDYdqkIuhVcHQQXF3Fx8wsEB6WTWpGiRfzolaPtfeSaXhP/uSo4SE1qzj+E/PPy5Hny5H3eN1HYPRYQoRZv3190tlZ1Kh1/xtue4i1Zax1nTzpR+HSiV1oO9S+YICqZGkM4SAgTWzjR2pzwqhhLa+Bo631bhU0FthtgyLlHZ/pdg1dvGtArMdFkrM8EKzpd5HB9mPWoTpc5NJiHLpWR69+p1H1ePuwX9yqP75bodtLJO97TbzI8WebCxDfYovJ+zmPmk9dyee3mPKeuLjCw00xe2NphcmM0y4Mn1db8Dh2wOXywEwoG9x4tMznSjTVgJS+8Ku6OH3XIyZyWnlXJ2hqOpdB4UcPJ6pw5kYHwDSQt7K5IercZFMXh89kV0vIAmbzOU+kLWUl3n0HT9ZMPVyDBRXgH96U4ffEzmS4NX66n7pSZOJ8TJgW/beu41GRob4qx4RyZTo20rTJ+rocj+22Yb4JC8o5btdCkWLS5fKyX13Mz1Go+V6Z2wVsJXKkuAKNNwuEmUlmDr3UKKRU33Di+uLAkY7b0brsc/6qPHrcu5df7MMlKfIrNCQe/pSPs/5twKOoF//R9i3ObkhAmtuPln/hgA1FJGZF+fX4IMABjOotaoebfVQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Belarus',\n code: '375',\n iso: 'BY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4RkMxQjIzNzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RkMxQjIzODE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjhGQzFCMjM1MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjhGQzFCMjM2MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bnsnjAAAAapJREFUeNq8lc9KQkEUxr9773i7ev1LKCiVEJggGAW+QLto52P4Ar5K65YteoGibRC0aOGuhPAvpphpps7915mhV5gZOHdzF2e+7/zON8bu42O4fnlJRb4Pp1rF8uEB7+024lB7GB8MSl+3tzAcB2x/H/50CgPqjwnDWJnU1EomwbJZhL+/0HGY6bpg+TyE1d5kAvvgAJEOxZHnIfj5AaJIzpj3enqsFjYLi8lybN/eYJfLWhSzTaeDz+trOeNwvUa8XteimMkPzXjv+BiJRgP+bKYFLtOpVJC+uIBdLCJeqyFYLPRQHZC9/nwOw7bBx2MIyrUoFjSDVglBIMuwLD2NZXhQYpmJBFghj/B7CUveSG0x3u9j/fws12g7GiBnpSNOW52AWrhZxDl23a6kuegUcdc+C2/6CGOu4sZibwutFsLNFsnaJZ5OutbjFbmdU0y1UBxSiRnj/BTu6z0wpT8bxXAZsRisTIZoppG/U2QeHhHdGqgOVit4tL/CatAF+HD4n2fqIzMlX6cgJHu3FCQx6HglmF0qjXLNZiriHil2KTpLFCjqG/8JMADgr5w+bkv5NwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Belgium',\n code: '32',\n iso: 'BE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEN0ZGMzM3RTE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEN0ZGMzM3RjE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjhGQzFCMjM5MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjhGQzFCMjNBMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+dCOj3gAAADpJREFUeNrszTERACAMwMBQS/i3ggVQUJBAJ1iSOXffgE2hPSi1OpmTaJcv+JSwsLCwsLCw8PuOAAMAnCIHFZwXd4kAAAAASUVORK5CYII='\n },\n {\n country: 'Belize',\n code: '501',\n iso: 'BZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEN0ZGMzM4MjE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEN0ZGMzM4MzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ3RkYzMzgwMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ3RkYzMzgxMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0XP2EgAABMBJREFUeNqclmlsVFUYhp9ZO2uX6XSmLXSvlUUKlEiAxMIPSNEYFpuAEUohBjEklVg0BkyI8YeKKIkhyhIkoig1RqIQtBgggIoIItSUsg0dpttA29nuTNvprJ62/PDHzNB6ki+599xzz3vOe77vfY9M0uZ0A/ki/IyjyUREYnFC4ejou1olR6mQE48z3mYU0aNsKFli/E9HYjCBppDLcfb7cbqG0GuVlBRZiMWjdPS58A+Eyc3WkW82ir7YeBZhlFGzX0oFigBkOAT3+9HOncO8pcWsnFOESukToSYSyeDEtQ5+/rGF2JU2KDKBNg2isVTAfhkL308OLCjENwC9wzS+tZotdWYU4bv4w2l4BwbRaNJJV8UYRGKqpYatey/yyc4TkK2CTEMqcL+C4sXbxENawsMcGgY3fLa7ntfWhjhx+SgOXwQpEOCGdJ3Wvht4g0oysfBL29dsq11CbmkJJ4+1gEYsWqVMBhySp6S4a4D1G6rYuDLG3uOHmV1YL/6Qs/tWIx3dNnr+ukTTT69wwXeJ+eVr+fiHj9iwLIsdb66ADs/Y4pNNn/SLO0DejGJ2vVrNodNHWLNiJwU2O9Lh71ho2oC5R4dVZUajkHGqYTuhP+xsEmMONh9g3Qs5TFlQCf3+/wMcpG7ZTJzh38jSVuLe/yWdzctofLmEGRVV2Nqvc+r23xQs38pzUhnHNz7LreNfoddZ8UZaWF5TKvIjPEFgUafodEwrN9Dp6yLDVIhVF0aXbeRq81Hyez1srv2UHYuqWe3T45QkrroHCTp8zCqfg8PdyfzpQhqM2qQJlvj0I2KwUcMkk0YkUpSpBelY6jYTtC1huO8B2jY7GUVtzKoqxNHWTe23e8gvnE/B5Dz6B/p42HsDmSaAwpxFNCiNVce4gBE7HhECkRxGlRaVTDHaay0uwzC5jEBcgV3kZSzagyl+EkPxG2Tn542OkUJCZAL9lKSnjYrJxKhWCqBAkF53GK1axX2XfaysxTxKUUqKaTMZMsymzbmGSOU7IgfUyKKPyBocYrq1hF5/nLhbJJdKMQGq5WKrAwPcc4SZ/aSZm10ebN47nLv2BWqjk32/SmQ+zEOWWcGHbR7qp27BJFvAqoVbuGK7KEqrhDMOoXY+nxCTnMTalFxAZNzudrH9pVpuOc7T4bOTqddgu+cnquhCX3EBq/UmaQGJVls7ZqMJ31BYsOJlSlk1De+dx+UXqqdTJxSQpNKCyYDzmp23D55jT+Mqmk5/T07ZM6x9+nW8D11kZLrRG/R48tSEdQbUFg9/tnzDorlVNB0LcPv3VpiSN1YhCV0umVaPWNKQoKt3kKYDDSxf7KL54ln6I8OUpi1GKc5eJo/Q2n2HwtxhXB4HK6qf5+ylSaxctwssYkqdIDKxVY3DJLyD4PTywa4GNr2oJx5yc6//LvY+G1qlgSdyShmOD1GZv5Sthy6z+11hElkawZg+pUkIW9yX2hZHwEd23v4A3bxK6tbXUJzvo8KcLopOTjiq5/Q/fXx+5AxcbofJGWDQPN4WVz1Vnxp4lHXZaKJ39vlFeCm35grjNwjguHj30OOSyM3SU2BJfyR8j70J+GUenWXCV5+QULZgaKxwNWqFcD85E2ijV59/BRgAi/3kZlc/4VIAAAAASUVORK5CYII='\n },\n {\n country: 'Benin',\n code: '229',\n iso: 'BJ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEN0ZGMzM4NjE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEN0ZGMzM4NzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ3RkYzMzg0MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ3RkYzMzg1MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+PY+RygAAALJJREFUeNrslkEKwjAQRf90IqgYFNx5nN7AA/Q8Hs5bCHUluoiLasmkU+hCEKQ1GDf55DMJBF5mQsIQDvsawE7t8EnPGeyywak8YqPR6/pLWfXZDBO8xBSyBf6kDM7gn8mM3hnUpMMKsBLQQxKB+9ooSy4suDOk5Zgqy3iwZhoc4VZtg3UtrnOOSThMztjXhn0T4CkKzJPvuFiLnkG9oPycMjiD334uN3QfLlX30bM6AQYA2ssuTyUvY0AAAAAASUVORK5CYII='\n },\n {\n country: 'Bermuda',\n code: '1-441',\n iso: 'BM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDJFQzM0OUExNzcyMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDJFQzM0OTkxNzcyMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNEI3RTM0NTcwNkE3OUY4MDY0M0U1Rjc0NzJDRTNGRkEiIHN0UmVmOmRvY3VtZW50SUQ9IjRCN0UzNDU3MDZBNzlGODA2NDNFNUY3NDcyQ0UzRkZBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+iROkEwAAAwZJREFUeNpifJaZJBnovvS5ZOPyS7d37GJgEF9RoRM+L393bIfbpK8M/z6JCf7OkXpZGyj3T1nzZEUD67NnjAyMDEQAJtnpXwrCJnnfXH82jre/L17exuD9D0aGvwwfmDnFlHmLVR+djmKszLZq4XHUXfv32/MXfAzEApaQZK83kiJb+D75375QEB2YVhj0YMnaCxMZtJX5j02WU773hyEkbtdb3quTtur+fCnIwvbr9w8ijWb8ryvK8Ov/88//n3z/x/D+vSgP249vv17/YxRg+M/FwfRdWunns+fCv74qqIoyMDOdu/7697//LDDN/xn+/2cAhQ6ERAsolvMSpi+ev/4pwGQQ5cDx7B7328cfmbhfbN8n5OIgbaZ5d8cRRlGdaxLqd54/FWb/x8B0hOXfH6ijgCYyMf3nF2SVEP795uP/9++Z/vz+jxzWRteMm/y7WVZvUciP5LcwnulQdDWxSp3j/4PA1NVJ0yS27dQujv8po1goFubEEPz97z9eBqj2Hwz/hTPSzN69EZEVNX14Xaqr7ytICmE4S121S5LkF/atcyqWn5/6TPrLR97e4p/uIgx7H7+PVWnjcRErC9NPs3mySPb55q1XfnFx/Pr6FRoYDAwcsgoXX93bc/uL4VsGNX42RqhnoID5gOz3L51NO0+/PvWcUfb9Zds/111YH3LcvcX4/z/L25siN9Y82byFlZXXWoLR8urOr09e/fr3DxKm/xgYxGRVbn260PqbSZ5ZyPL0/tdnzjEjmc54HExxMzBIMDCwgdmPGBg+MjDyMPxXAKv6zcDwjIHhMwMDOzD4QK6F6PzPxcBw28zgWoArDzfXizdPtLefMjpz+QuSq1lYwZxfYBPhPuVkAKZshrtITuAAi/9H0gm0huf6lSvSzx/Li4vdemp54y08qUCNxkyOGAzs3I8MDNLf/1fc+3Xlx1P1l//5GdjeMPxmRlZxhrhcixUA0zUwDLmYmL/9+/sT5A/UdM1AAQDGJzAmPv4DxigjE2YZwkAzMGr0qNH4AUCAAQBpbzCLqENWxgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Bhutan',\n code: '975',\n iso: 'BT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MkVDMzQ5RDE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MkVDMzQ5RTE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyRUMzNDlCMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyRUMzNDlDMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+QtQgBwAABGxJREFUeNq0lm2IlFUUx3/3eZnZmZ2ZnXV3dZ1cV1NTNGWTfEkj+lD5QoJZRBlI0PahD9kHicwPBX7ID0EEkQgZC4UaimVipSAqkpZFZUQIEpqaq+bLuPPyzDPPPM+9nRmF3HxJN7ozl3nmzpzzv+d//ufcq/Lbp54GcjKL/F/DyLTlPUKhL5q0tyXqd2QpffXn9NC8KnmFKBOiVfyadUvWqsgitMawmg3Btxpva0j0h0k7Qw9DNUKxjUcUBQKdxI3OYixx6bQ0gENtY3UmsAc8ypugujcC2Zt9l+I/AEfCXg1ftXE5ORNaekhXD9Ps/wiVU4TFk5h7nqH6y0XCD88Qnk9jD5fNxsRUM1Rgg9JV/NT9BJm5JEfMI5bOEYs/j+cV8YqHaQ8PCMULKH61E109Q3x4GePEG6BXEjEUkiWfEU0EugmVe5xE6zhc28VNSl7joqT+FNbdqyit24a9ZxOxYQqjBsc4pIjrTiy/H6dV8tc+hlqpjHduP8l8QaIei9V/hONr95E4cwwnnYRL57EctyHuv6V3J+pVElHwJ5Z3TD4vCW2iZL+Am27Gbe2m8PlWLi+YRXjiFJlpPWSXr8KkpFjCUEDNECJWok5dQZeOEYx4FpUcjamcwD7+AeFADR7toyU7EffNDQQLe4m8Ctn7ZhDLZKiMn4T+Zh+MnSBUmTsDVgIaRprauDWYCS+jpC6V+IiOLCb4+Sjqwlmc0Z3oHduwusfD7wcprHwJd/RY+O5r1MiuQaC3Dyy0mpZZmCkrMK4Ph3diZafhTF6CO1l8FopIq6C6YzNm1xdSZpJBVcMLApyuMdDc3KD7joClyYlNFd25GF23//gN9Jq3Jb3tNM1fiJ46HefFV6jt3IFavxklDcOM60b5Hk5CDHR0HegtgEVIutTQnhXmG7KoZqdiylL/TQK0dj/eutXU3vsI/cBBatPnYIZ3Yr22nPSDD+NLvVZf7SUmYjSx2A0RnBt3dMlfbBSWKLimE5TufQuGzUQf/xV39lzaurqkPF5n4KfvccIaZtl89IyHME8tI7PgCTJif27Jc0Tr38UaM/52gBWWqMaUT+Bncqg5feiO2Wg5t6xVvQRPLsXb0ie5/AR7Sg92W4d4kJq2Jau7t6MP7CbvbiQzbxGOL4J0YzdN4WBgyYexC4Q9T5PsWsHlQx6qKo1h+zr8jZuwOzpILu3FLuQJ9nyJlUpd4agOMGEyqlSgvOIFKqtbsWpV7LqwtL4F8NXz0mkPKA/kiH57BHfDp6gt7xD5Jfx4gihlk8mNomPiJE4/tojo4F7soIpJXN17JAJKpoQA6VCVUuP5nyU0GFhEp7JCZVrhH3Dxd8n/j64kCKU2R+awrTY56qQ8qj5GWl9FjMK+97HPyxFYr9NrIzLy7LoomVe+3xxYFQ5NK+i8SVc+i/D3aWy7hqo3dcu9ztDUW18sjlUReSeSN6XxNkbRCX7QRW9zmI5OmmL9akLMbWz8ut1a9RuFrOUvQCZ7y2j+ZdRvOsW/BBgAmn3MQYJZCMcAAAAASUVORK5CYII='\n },\n {\n country: 'Bolivia',\n code: '591',\n iso: 'BO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MkVDMzRBMTE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MkVDMzRBMjE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyRUMzNDlGMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyRUMzNEEwMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+QnwfiwAAADFJREFUeNpiPCeoxkAbwMRAMzBq9LAwmvHnNbHRABk1GjdgYV+iPhogo0YPiNEAAQYAm/kD5VlL/agAAAAASUVORK5CYII='\n },\n {\n country: 'Bosnia and Herzegovina',\n code: '387',\n iso: 'BA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MDZBM0U3RTE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5MDZBM0U3RjE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjkwNkEzRTdDMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkwNkEzRTdEMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+PElEFQAAA31JREFUeNqsll1MW2UYx3+cnpZ2fMjYhyJj42PlS4tRRyLbpIVSyaJXM9NsQ72AJe4GF+PXmqi78MpEE73AmEwCiXFT44XxwmWBjYgj2WBRKKWTfTAwhE562roxOGy0x/ccLcY5J7R9knPy5rxv+/T/PL//cyoXFHRc7+7exZo1Flyu40jSfdy6peA/8SnV7iuovgIwxUk2rFtmOdbpZt+rrWzYEBHfrxnP5bVrbTl79nyH2WziyJHt7NhxP591zdPQspHvu9/hsaZfUf2pJb9bSMHgTVR1iVBIobAwW6gu4aUWK7+FVB5/+i38/VuwPjwDMQktjYlls1kiP99GOByno+Nn/H6FvtOTNDXlcEPdSuNzXnq+fB/HzsuogfQpl/VbPK6xfn0OgUCYwcFx7PYiBocOGAe2Vl6nxtPOL30fUl43mbayS4nF0lJMAGYW1zoWFzXOnQsa6kMzfrG7kQrXG4z2Fy+XPS2KE5GRISi0ymRlWUSpv0KWJdoOPEpz8yY+/kTF+ayNvq/fxuGaRh0tQBPKM1JVnIjMTBPB4By3b8eJRMJUV+fj8ZTR9qJE+PcFap7y8lNvKdbqGTJSUC7f+UDvt8ViEj9AFoljdHaOcvFihN7eSZzOXAGcneb9Xvq/eY+KuquoY8n1XP6vDU37E7jh4VnOnAlQUbFZ9L3N2CuvilLZ8AqB0x9RmWTye9YqAZzNto75+TgjI7MGcNNTOnAPUNXwGoGBzVgdq/e5/H8HdOBsNpnsbAv19ccN4A4dqsXtLhTALfDk7ixOfP4u2zxTq7LaiuhIAKeqMRRFoagol8bGUg62WlCiC9Q+c5gx3WoPrdxq8koOJYDTrRYOx+jq8jMxEaWn56qwXS5zi3ah/HV+/PYDqp64sqIJJ68GiL8nnMLZsxcoLn6Q8+dfNvZK7MJ6DX9NuO1Tyz5PqdR3Aqcr1yecppkYGrqGzxdCuXZhecINnyoxJty9fC4nY/4EcHrv6+uPGZ5vb99Gk2eTAZx7by6nvjhMTeM0zEvpUZwIveeh0IKxjkYjlJXl4XIW09oioUTmeGSXF98PJZAXZ+kuyuVkE+v91l+pFotVrGMcPepjfDzCyZMT4s9ElgCuHOfuN5ka8VJTLpRj+lfiG6m8ZRITzuebZWBgDIejVIzXfWRa4tTW3aR250FeeP4SeXnRf3zuDwEGABm+YrFv6121AAAAAElFTkSuQmCC'\n },\n {\n country: 'Botswana',\n code: '267',\n iso: 'BW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MDZBM0U4MjE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5MDZBM0U4MzE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjkwNkEzRTgwMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkwNkEzRTgxMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+HqOdhgAAAHJJREFUeNpiKV11+ykDA4MUEH9moA/gBeJnLFAGAxJNF8uZGAYIjFpMN8Dy8vOfAbGY8fb3/5/onKJB4DPLvMqMgfExEA+IjwfMYpbsxIiBCeq7A5W4mpffHJh8LMrDPFpkjlpMm8QFbfLw0rnp8xkgwACv5h08wmledAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Brazil',\n code: '55',\n iso: 'BR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRDhGOEMxMTE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRDhGOEMxMjE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJEOEY4QzBGMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJEOEY4QzEwMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+TFbakQAABKdJREFUeNq8ll1sU2UYx3+n7en6uZVa1oGDwtYxnCw0EhiCxjgjH14oiV6Ampj4GRONRpQ4ZZEYvTAhwSxGjRFilO2GDy8gZuEGTAS2xUHmBvuAuVG70U0o++ranq6tz2mHc8YB48KTnL7pec/7/p////k/z3kV6h4ZAJz8v9e4SX4Wz3uZkoGEFWQgL343wE6Djj4vwJTEOpHPA64/qXIPw6Qj90yfmwdjw529N72pDjJlYufybloD52gKnOfDkk55ZpQ55+x3b8dBcjx2yxzrTJJmiFtYt2CIH9adY0VJCq5PY3ggeEXhueY1/HK9SKRPgFnujHJLxnMD64D6YmFpMCX4pOQSNRuvQKeRfYeqaOv2kpa4K/3DvPd0CwQ09p1ZQs3lMhJJG1gnwJCeK4A5gLPmsWSZbiocoK60i/LKGCe/9/HMru1Eki5MJNG3TGLGbR6j/tMjbHmpm76OPN7qXcmxcDGoU6JA7L/Ax41sXVaje3OGpeQr6qTAEqOu7AKf+3vw+KY4edBF9c7XUdIKRWoILX0VG2N4raPEkk72n6ii2tdD4OEIO8xDlNjHOT1ewGS0AEzJHHv+DkCbYayDxkWitIEdi4LsW96F1y4Ri2K4TRxsq+NseDXL3EFsihOTptLRc4X2kyEutPZzjWKqK4Y40XAAY1L2kvgjk0Z29pfz3eDSHKg1epP9DGNFSmKVbYKvy9rZXdKPQ0mTEJWMLujtdPPlkScYutjDxeYQkXCUPNWE11/A5h2VrKpeQrhjkKZujSfX9LO4YpK4mM9pzrCtSMrOHuGikBrWLGRydaSZssOUSrGq0bT6LPYFZB0bE2UMEpySD6FwHocOt4mBY7icZnpbhvkx+SsWye8Kv5fHX72f3Q1bqf8mTGjwOGt0frI2Jua2agi3CJtdzfhbH6JPwHXpc8DGKa6mjGzqWEvtkl62FEawSlrisghpTIWuKL4FThxWG+lUFNVqodCejyqsB4IR9u5qJFDp5/nabWzwecgMhciI2lapQomNU0EXe4KlhISgjqVfhpummjKmODPiYetvVbzSeR/jkmuL9AvxD+WrR6RsBgjd8OB2W9CSKWFkkFvBas9j+T0uLrRbOFa7n4X2ThTJr742LuBvdpXzaNt6fr5RSFI32HSHm+lcmenkSwP49o9Syls30jDozXrCKMO7LzQyGosRDOfjcJjErfHsnZ9vImNeKkG4eefln6BA9BUdj4YXslL2+KJ/hbDWcnv/45pdTjqKHpGAT4gZjg4V0x6zUpUeIfDYCGvdA9QfLyU46mE8qnJtTCUkKtnUNF99cICnXuxhsE/lte4Kai9XMJoSne0T0yxn1bJ2684lchNziIMn2VvWwxsPSu7OW/i4YT0dl4qkYyqU+8LUbG/CsSHG/pZFvN21komEHWzC0JCaZ+f6dwCaCJLIo9ozSP36cxRJUyI83asXwY2r8OzZAI3D94qsydyn8q579Rx9WzoHe3yX+cjfl5367Hcf7/eXSe+UMrHpsqZvBzoP4FlfKjV7CNjoDaHK/1Pig+zXSPrAHQDOOoHc+bFH39gkdaiOcfq6N2cYneXNuXmcQP4SYAD5sNLFPECeSAAAAABJRU5ErkJggg=='\n },\n {\n country: 'British Indian Ocean Territory',\n code: '246',\n iso: 'IO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkQ4RjhDMTYxNzcyMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkQ4RjhDMTUxNzcyMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMUM0QkU0QUREQkJFMEY0QTBFMUM2MUYzOUU3M0FDOTgiIHN0UmVmOmRvY3VtZW50SUQ9IjFDNEJFNEFEREJCRTBGNEEwRTFDNjFGMzlFNzNBQzk4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+507x4gAABXBJREFUeNrs1OlPk3cAB/Dfw9MLWqAUeggF2nKWq1yFCIgDryGiQ5miTpxTkTDZpmObO5JplmyRxMjUOXRbxBmHyhweGxKCnAWs3AUKT6GU0pY+pS32Pmhpx9+x7M331ff75vPiC6kbfmFsSR4C9Mqn8+PNQoD1bazkHm+7MfBWeW4fDHQmdjjuxzBjCT9I7Rve5x+ZzqF0DS/WPRyWopay7JT33g7jRdG6RIprbQKx2CcnKehUURIrNGRQJINA7uU9RMMfFan+CZG3UGxVO3qd7T77T1377soiCflLIP0un+YJpFQtEH+dtoLRUeDjBj74U/v5adygL64+s2L1ZBYE2winS+P8nfFtwpVeAQIMFgo7GHOiKF6FITXorR8Kp85sST50dbexvcd+zcilktDcSOqyHfA331nwILP9JwLB1faPMXgsDoYUGqvD5XlwjzUpI4mWFbGRmCCPm+yAOr4vxWJcWpPd4/FA3rJi4HQAOzCZ1h1OVxDscbnXrL5kX7sRD7zmkFAfg5EMO0CYn3WdUBF9BBcbM/pKLBlBQYSVlwnTInUB0XMTY9D803zgCgbu1eRUJpdNG5lUQTOXr8llWiuBsCWfR52bAUF4m81j/umu3/5i/3cLQXu/VmcbonMgjZ7LIN4hc59M6SryOGf38fA43M2uthb9nWAfEE9JzWVs3RGfozOYbzyfah2WHSuIw3BHqcxtO65k+VEZNpcv5oKJvjl8vYzUKOAktjIKas/nUtEZXBtyTEJAHdTu6rhLpwsHZ1UFtY9HpGhmpvfwtiqiCtErIo42ClZRwbGdvM/K0mv2Jgtn1VBjU89xph0sKc89Ruq1VIDCTdUR5cL64bQKfoMWMPwqT/JvpUDAZviteerU2NoGHQjAVR/i82Oo99tUHa9XUkkjbgqnZOdODt3TMoC0ds4AjTUkjgpJu/r6H/VainYYqWGxkE1tsmnnVSzRCHvvdieH5dSbBhDUEULeSvcrdqOepASNF7uJiFVqbQqNOTGGLrI47JJ7MbyiQN9oiVieHkfDwD5KvRUPeyB86U0nngTUK/kZoclRlA6hHNHaAJsFpIrtXAqPS++bXJ5bNlndnjU3NjGclBFD6RhcWlYbANk/l6L/BDbw83ye/K0ZAL6dgTzdrJkVTY1gBksX1BCqM9CDAydl6N2O2WFEW5YfVVWcgIEJUrXudqtoUKwtyWHXHsiEgI9MvdrwYmoI0ezJiqzZl4bFYHWil2Nl21e5ZIbUwD3/Oe2DyytG2+3WcaEY3ZPNgQprm/rFmoNbY786nBEfHvKoF/n0Vu+K0Xlgc9TF49mxzBDBtOJcQ69EadybE3WhPDUxPKRjbKnm595ZuftgFnxpl4BCT7Eoxs+1BD+bTSrJDfimPJvLDn7xagE6U9+aEEFt6pt/NSYDZheRQfmoNC2GGfD7S6R7ZBE4XBh/fPU7vCQW9X4n0jO8CKxOmEyqOZDCDQt4/lrtxZP5sJwWF4MPoNjN5g6R8km3BKwYGdE0MDav/EuAaFbfeL3rK0aL02XvnpC1CBCdweT1enRGw0bKVPq214jRavV6vasmy0ZzfE71sGtarjMtmrwt31bPjQsH5fbmrmnNm42VV2s0Gs1mCFdYt2awAAiKT+ckRdE6+5FVpQEQfYHLyU1lprEZ/VMqucoA1l3A443lhiZHBveLllCFGcAwWLOzkjl5tp5eA31pjQGcNgC5IlibmDT/RaUOEsvQOBbl5ejS9ZaR4TndkYL4r49mB5EIfdPL9X8ODc3qdmUxfziZFxLg37Nxby1Do5KVoiz2xffzaIHEzgl53QOhUu8o3xpTW5ZBwOMnZOiV5qE+0fL+vKj/Qf4TIP8KMABGR9CQ7zSDAQAAAABJRU5ErkJggg=='\n },\n {\n country: 'British Virgin Islands',\n code: '1-284',\n iso: 'VG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REM0MjcxOTMxNzhCMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REM0MjcxOTIxNzhCMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNDJDQ0E1MjFCMkQxQkRBQkYxM0U2NTQ3REJCRjE4NjkiIHN0UmVmOmRvY3VtZW50SUQ9IjQyQ0NBNTIxQjJEMUJEQUJGMTNFNjU0N0RCQkYxODY5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SkUFawAAA8xJREFUeNq8k21sU1UYx59z7kvftnZtx7rSgbME5qgbhA1JlBEcUaOxiGxTDMOJCSaKgZjMEPniJ/lishjjDGriy8QPkCFbFGM2FhMgy2S4bN0kMma2du267qXre2/vPecebxkTv4jEOP+5H07uOc/v/J9z/gfNtLU5d9f0JO2tbf2j3VdBZ+t4Z9uhy5/21e5rvEhi4bjDht5ySyeaN6Y3PFS85zzct7gLI+uHT/cedsNLu9ZnytzXx6KPldFHBy/6ijd+5aM704HPvEUNXk9HtLSh7WZ0aoIQlRBK7ilKGCUUtRw7OxHHjeX0qDMmND0RtLkjnT0lTc/On/qIr6utjt6Cvc/1TOba3/s+9vvMyNB0MqWIIocQyDKjlMOgqoA1iwCU44goIsZQTlI01yi1v8F0YzwJ5lCKyDPhcrcjm8xMR+IOs7HQyC3ZndJCwpZNODz2FBLdI575nKjjCZXUdR5RWCsoOYDcIhb0yGBWwiT8q4REkHOyhuaD1nUJSE+nieeZR8qBmOMRIgHr7sZba4r21yvn+6TCgmFLrTMTZ3oeNLeMsrxPk7leqj44cCW8pj5ayPG3oh747VwVN2aiLLN81rjuWtHj7pZE95mKT06Yn9/Vvr3hauMhD8jj23d/8fKxNZc7Kz8+vrS5olHYuTVeF5NBj0m+WeDjSYnM+g1ziaNPf7jD+WRiajSbUvIz+e82+t0jO0LHS14JXjr31Nuepgtvtv40NzRqrCzmY5FXXW84t3zwzS/ogHfT+EF2SvApsiIBr5UxUDnAkso/bKioNtv1SExQkTKMtZkV8Q+qqTOtXR1zpmsLBUBTgJRLw2k1WjF0E8BgmfUNNh+5/v6+vSe9lS6r34KzccY0WwKwOBPGlJLD5qWQLA0sTFp4IfIXbh79eltvICBo9jleEg06YGrnlamz3DY0sKTXgmB0EoWNdP3wYpeKkEMnmgxYVVWmADbJOSsJBHn3A1Z9tcs95F/MyFpaAKM7G/DTAc2ECFqGiMp4LUZI4LX7ygAv5BtXVY4DjrOx/HqqLdUGGloFssXowNj+c0arhTKbRfKbN+idw5CllN55Mghq7rbAc8uDu3exIi0aaOWXLBuaX4h++3VvdrzqO7+rfaK3xxdr0ds+P9k3P1vcP2hHIP0t+t4iBDDWpWZze1zBA5XZItuN1k0zVXTx9Jeuvv61oRBFoCy7ee3PGp1evB80QiwnI5VaS0uTzd4Jd0EmLAkdP272TxZiHNXpVSlD/iX6H5WTbr9GWAUtW8SwalpFNP9fne//6noV0X8IMAASR8khb/BRHwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Brunei',\n code: '673',\n iso: 'BN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MzhCMzg3NDE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MzhCMzg3NTE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJEOEY4QzE3MTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJEOEY4QzE4MTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oskd/wAABCtJREFUeNrEVVtoHFUY/mZ2Zncnm002Sc1mczExdFPNbpMm3Sy2+FC89EVKSkEEFUEUH/RF1CpesIIpYvVJHwQfVAQvoGApxUihKRpQm6ZJtrm1m839YpPdNMns2r3M5fjP7BqamLVGLf7wz5xz5sz5vvP/3/kPl5xyy/gfTGCZRSd4anECOL6Q3lajc+uBhbJXwNID0NUImDIB6BrA6ItBhhfBcU7iIW74iamArTjLL71qct62cYzMXEz/jYBHwDLD0E0foP44gUyCabkYEBmOLwBvlyDPCpA8DFIRh/QyjVv+IfBWxvQ1IjIIPd1L7xHoBjHlCuzVMYydKsH0SRH7O5YobA4iWpAL038AvCUZdZZCO46el19E/4nLONK3F7ftHERycSWbIiM0PEeRMVJkz6uXbWeHE2qgogYjZ++C82A1SltOmuOS80eoKz9kU5QJk2bGAVW+gYwlR8aWXefQoQeZ3+9HMBiE3+fHTm9DXtCJnl4sd34Hy5lfcH16ChZRhFTlReb+gyhvfwR1LYXrc/XMEBEYymkmRGkaM8XLtIzJw/ANoa6vr0NbW4A8iObWVrgTKexo9sNzey0WOs+i9/mjqLG7EC+QkEomoceimE7EsPfddxB48nGsRmXMdJ1H08MPbMpRigiM5vQymB36Kz9M/oWngT309BPss/ZHWdcnn7OrpIvuYx3swuvHmWlzMTby2gmz+WGtl33qbWU3sz/teLOVUVC+QgmO4hqC1D9DvlxVgbfXgIbKaswffwEVchr+vhCYfzfCL72K++Rfb6oVy3tvOd/cUWaBQWFVZtC0jROS5I2SC3fwDrTsc6IRVpyei2K/JmI2toTnvv4Szu9Po9y5ho8/+hZ3NrXip+pi8Kk0SlwuWCxCvuNUld3xioaZGQ0XQwp6QyqGLqsIDSuYntbwBirRjRQiiGOm3YvHzi3AJzvMI3FekvHNPg/uGQyjJCrgMF+Ep/Rr5pKeinIEAgFTuLubmrBnTzNqa+uzwMlJN+Pp3FtttOVCcscfRYAhs6BhdFHBQocdw2IKnYk4nu2rwpH6AoTnVaqoDPWlAroX0jgwO4E2qmp32xz4IBnNG+Jdu7zw+XwEPOXeMscC4QsFRKTUqJMqEuMcLj1jx3wPQ10zBxsRNdIz2q9BWhHQpSTxPq7+/Usi3wdVJ08Qp7gGaxnlOkY1oFGDW+PpAmOIzlKNjnKorOEhNGs4dq8dB4pLcernJIaGVVyJqIjL+XWbd8ebbyOJwOFiMAR7fY7aEYGqEwfRr8BWyVDkNmaK2dKQ0LE0p2GACFzoV0gvCkJDKkbHaCF9G8Drp53WFKn8WiRqO5khTUDmoZH0lVR2jqkX0dAKedENNSqmIzKpYSSs4uIlZRvA/8LozoDVTg8nucSv5zh+q4F12loqSQ/Dc7H+XYABAOng97l61jkHAAAAAElFTkSuQmCC'\n },\n {\n country: 'Bulgaria',\n code: '359',\n iso: 'BG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MzhCMzg3ODE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MzhCMzg3OTE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYzOEIzODc2MTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjYzOEIzODc3MTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+McDtIQAAAD1JREFUeNpi/P///yeGAQCMQIv/D4TFTAwDBEYtpl/iYpiWN5q4Ri0etZg62emamtBodhq1eNRiqgCAAAMAqc4MILa4lBgAAAAASUVORK5CYII='\n },\n {\n country: 'Burkina Faso',\n code: '226',\n iso: 'BF',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MzhCMzg3QzE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MzhCMzg3RDE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYzOEIzODdBMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjYzOEIzODdCMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uO74RgAAAV5JREFUeNrslr9Lw0AUx793SY6m2h/iVEUQRJfo4KqCc/GfcHJ08B9x6ayTq5uT+lc4qEtBRFsKkmBKY5Im50tSJG6XgnHJg+Nekrv73PflveOYbe28AVih5qIca1B712cOcn0pcI5/sgqsPmvKgJDNvfX5psWznuX8PwOzrJNjjuhJQN/3YBx6iB5F+i4/RsX09lesrjIpvi0fHhdgXQ8wJep3NZgbPvBiAAF91xTBg0XFkRGp9TjEboDm+Qiilm04vBni46oFv2+ALUhaUaqBrZOOeqgpmWzHxPHgFZfWQxqGs+dt9MQ6lk4pAgZBpaJie1lHof/c1HCgTXDfX0UQc+wxD701DruuKUNTMCYF0lIymJqLa6eF29EmQgIfdYZocxfOmAQwWUDDRfezyDnNksUDymQtSkFsSkAjLCI2MVcvWn+SVCegn+ecX53VFfh3OWVXnkbJVx/3W4ABAMUjZvAvTtkOAAAAAElFTkSuQmCC'\n },\n {\n country: 'Burundi',\n code: '257',\n iso: 'BI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNkJDNTBFRDE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNkJDNTBFRTE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYzOEIzODdFMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE2QkM1MEVDMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+f3jizgAABTpJREFUeNqsVmlsVFUU/t7SmTcztNPOlFraTltIIZqWkoGACHUpFQiQGsQUECWYaGI0hAQRarVCadnREtTE5QcaI5KIQEGWFBAsGLQFbKEsFpRANwp02uns25vreY8wTKdFI3onNy9z77nnO+fc851zOcaYQ3Y4cXPNFnRs3gQZbugSRoKLE8DCYfzXwXE8mByGt+8KeEhIW7IU6RUrwBEwuyfkbvgNraXvo/engxAQD63ZAsZk4L7IvwPlRQRsHQiiD0mTpsKysRLxBRPVPYGVJFQUpjyh/tGkD8PQV16ClDUS7vqzcN9pgSjrwEs6Ao/xnoxhYUYeqW7FAAoIe7zwOP8g49MwvPpDZH9aDW1mRkRGqJtcX7G3qw4Z+mEYFT9CXTRY85Hy6iIwuwfOhlMIem9ClJLBCSKY34+AoxUhnw1hv4u+3TTtEHgDeI2WDAJ8PVcQDvmQuug1jKrZgfinJ0cAj9w6iQX1S8BlHyxg191tgOxDSdYcbBhdhhEGS0TQ9esZtC0vR8/PteDoJ0APU/FsJE4vgiEtHZ6um7AfPQ7b7t2UH04FF4kTCpG5qaofYIe3C6XN67H9+k4KiQhkHpjEFPC0/Y8zfGtmSTWj2eaWz1ns6Ny4hTWOmcB6avZH1sJR+/baH1mTdSJrX7VuwNmPrn7Jhu6zkn4TS/1hPBt+8EnGKcD3rBLJkjv+bjg9nbDSva/NW4EZqc8Mmjgtp4+jYfGbGLthE3ILiweVOXb7FMqaN6Lh9gkYpFQ8IqUgxELqHh8tqCyaNEnITspDY28zZp5YgNfPvoNWMiR2eO09cJ37HV7bnQF7SliXNK1CUd1cNNjOIsuYi2TJHAFVEzDa4+ghcAK8dO9d9kvINltRP6UGKVpzZJ9IBht8SCJuxkWdc8luTDw2BxdvnUAKARpEPWSFkjFDfBAHFWENHwcdJZokaJEYF9/fMJopBBo79IIeOkGCqE9Xv4OB/i1whK70E8l7Da+BwuTztd8BVNEem1ECLcH7abXlyB6EAn7kz3qRFHKqvFJzGB5ceB4ILFCpC4SD8Hk60Kc1wS67yHMdmkoWgnMFkCE/Dy0BEJPRWPIygn0+jAy/AA0ZYw84IHs7EaR7lchgmYX/GVjhKk+gCrdZyI35OYtQmbsMCcIQ1eNxB3aptdfI3b3ZBFIxbv8uyMEAJE6rKjxQsA1Vl7biq2vfkAc6ZBuU0sv6RWAAnXoDdvS6b2CUyUqAb2GepfihG0RN52GUX9iMi91nYDRkwKwx9aeT4qESjmt9lymTvVg5ZiWapx3uB3r7s21oLiiE89jJQUHcv5zGhaeeRVf1J5G12WnTcH5qLdZaq0h/iPRfImBZvUZOqSKtdI9y0IVZlplYl1eKfOOjkcOecxfQVrYa3Ye+VwOlQSKSF8yDcfoUiEOJm7ZeOI7WofvrHQgwm3rGXPQcLOtXwTB+7P2C47yGd6mY7G7bRzVfogvdbmQ5SWOoSr2NuVEeMn8QbeWr0fXBx5Q+DurROdSjKVHcbgR87Uom0NSQMUGaIWi06RCGJFBeBNXeK8CA1MVvwLKhErxBF9G7l8KvVDNuaVMlW5O3nPh3n5M9O/eQl1Vw/tkISUyDaDRSC4zhI1FKbYs8tUSeH9AWZacT3kA7hmTmIWPNe0heOD+qQsr9HwLey1fRuqwMtkO71C6kNWWRN+GHewhQj+aIbn7bDfVVYyoqRmb1eujzc+9uK0+fsMuNW1u/QHvFWgRDNkjxOdRbxf/n6UPRYEEZXsdVopoR6eWlSF2+GH8JMABj3HBuy+V6lgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Cambodia',\n code: '855',\n iso: 'KH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNkJDNTBGMTE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNkJDNTBGMjE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE2QkM1MEVGMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE2QkM1MEYwMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+4kgdbAAAAkRJREFUeNrslUtPE2EUhp+5tbTl0gsyA2podCPRjSuNMV42mBAIJSxYse2OFWEhv4S1MTGGJcGNP0D37pDGGu6lNE0HsC3TGc8MNSwobYwRNj2Tk2/mzJnznvf9zpdR4L3HDZjKDVkX+NpM+UxfRda+KxPkcjnDn0ANQ1ZPnk8J3R6Vlwr17R/SfaxlXhuz9fvYnbuL9QQg7nFFykNd/NabJxAyOFzJEWrWUKLhIM87qXSsqZfaAYrXxJPPX6KEQhTX1pDSVAPgDFosRmnlnfBDuELqxWsUTaO4vi7N/MMee02PT00xODtLQ+7L4tb8PEmJDYyPM5zNUmmqkJBYfHpaJO9sWhbeyhpu9dIvNjQxwcjyMsboKLHhYaLRKObCAmoigVutEk6nMcplrLk54jMzRMbGcDY2sMW1q3Hreruu/M5100QfHKS2uYm5uIi5tER9awunUJAEF8OyuLe6GuTXcjm0VCpophNrvd3++tKe7u9ztruL5zhUhYUPqPb2ng9RrYYjbOvb22jJpHzQwJHc450dnGYN72/2+M9Q9YTDDGUyQXHn6IiGbQegrgD6bBVd+vY81EhEJvmERqlEo1LBnJwkKrFqs1ZLjO9w6Rz73casAe5++QrpB3jFg4CNYo5cDN6JfR7rj1/ECnt4bgPVugN7eXaePcXOH7SS1dYPWgz+mYxV6vErjG8/+fXhE66wCeSR4+Mz9GVGpPd81obR1E6Vc24HSqi9/UQePaQsNQ7zH+W4GZe4K93fYhf4f9lvAQYAwe7UEk4oy7oAAAAASUVORK5CYII='\n },\n {\n country: 'Cameroon',\n code: '237',\n iso: 'CM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNkJDNTBGNTE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNkJDNTBGNjE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE2QkM1MEYzMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE2QkM1MEY0MTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KAzx3QAAAHJJREFUeNpiZKiKY8ANTneexCNreO49HlkmBpqBUaNHjaaO0X/+Mkpmf5cq/vbnL7FaWIhUp9T4VTT2BwMzA6sQw8NqLmq6+sMxFkb5v4xyfz6dZqayq5nZGJ5k8zL8IyFyiDX6/Ta20cQ3avSQMRogwADcmBpIZYNhTQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Canada',\n code: '1',\n iso: 'CA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFREI0MDA4MjE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFREI0MDA4MzE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVEQjQwMDgwMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVEQjQwMDgxMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+IgrEzAAAAaZJREFUeNrEVktqwlAUPVr/TRXqB0QMHXbSqXsQdCRuQbsBR3bmJBtw7A4cuwyLBQNCKdgOVBCpIv7aUx8PiVZtNCo9cHm5yb3v3E/eTWwEPrEOlwtot4FIBGfBbAbE40C3u3HbsZQb/APslj3LZUDTrDMvS80NcbnIToc7MZkY18JO2K8wHu/2mU7JSIS/eRxHRTmfA6USMBjI3gnkckAoBBQKgNd7oYwFEomt6Hl3t99+T8Z20zdyhWZTrvn8tt3jo1wbjd2+R2fc65HpNFksksEgqWlkv0/a7Zs+7TZZqZCKQj49kckk+fr6Z8bmpY5GN5+nUqTTaeg2mwxuPRi327TUfxMLp3x+u6dmks1KX8vErRbp8x1PLKReP4H4+5us1cjb28MJPR6yWiW/vk7sscD7O3l/b06qqqSuH3ScDj/Hi4XceB+pqMpodIHJdXUFPDwAfj+gqsYWTifw9gaEw8D19QUm12xGDgaG/vJCPj8b+nAobc4yudYhMgsEDF3XpaygKNLmQDgsf9Y+PszH4kWIYzFgsTiJeGjJM5M56Q/kR4ABAHxxYPgLzAdZAAAAAElFTkSuQmCC'\n },\n {\n country: 'Cape Verde',\n code: '238',\n iso: 'CV',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFREI0MDA4NjE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFREI0MDA4NzE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVEQjQwMDg0MTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVEQjQwMDg1MTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+zvajFAAAAj5JREFUeNrsVU1rE1EUPfPmO9OYNEPSplAqmlaoFDcuBBdC9yqCGzddVRA3/gL/g6IbJXahiAtBxY0gLiIIUkEQDNlIija0JUnzMZlMJ3nzZsZpJG1SUhOF4sbHWb1759zDuffd4XDuHo7mEBzZ+U/9b6mJjx0VLRkcjscMXbPhEVgqqLgb+ntqn4MjpGY2db2Opvrk+ourZ3OoRE+d2IjHjCA0OjWP8CLarAsHO0BVvrP8OK7WVzPz7wrHPmanmOWnb66YDZL7NAdi9uT/Dlx48UGPZAYpyVx+Lpa1qLJejTBbFiQmK+3ZeLls6SX7pIQtuBa44fI56vfZ57vPic8qwjURGAdYkNG5LwMhNDT2yBeWAH0UQwQxk9krAzGBrZcAnUiegROw+WI3liRh0DyKz5BIQJmHawxXnTnY1png0sP3QckiQcpH3gcdRTXnv3q9r5qPoXZ/14boLXh1wOupGQItwEgjsgRpFl5zuCHO5Yv9XucJWIM/H7RpDHC7ExrUkVBT3ALIFXDxkVQfmBBfnPQ8kgx9czy5bKmOLfOCK0nOZNi0mGY408QtwWuDG/6MeapcoM12Fw6tNZ1Nend5Jcpvf3hzejy+1jKpXeTSNx4aNfbl/QR1q7RJez45FDxSl6AI+1AJNPyoJVfXU6Y39vb2U14VPucW1mw9W5xuChI0ri//cHAD/jLEgxEG70KzF6a2S2aoWInAViBThFpwR91ogx5VsIzC1q998nWj0zGRQeyMhPsHm/KnAAMAsIUm2hIeMowAAAAASUVORK5CYII='\n },\n {\n country: 'Cayman Islands',\n code: '1-345',\n iso: 'KY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjE0RDFFRjQxNzc0MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RURCNDAwOEExNzczMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNjIxRThDMEVFRkYzODE3N0JCQzk4OEY3MEExNjA3MkQiIHN0UmVmOmRvY3VtZW50SUQ9IjYyMUU4QzBFRUZGMzgxNzdCQkM5ODhGNzBBMTYwNzJEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+wV3Y3AAAAoRJREFUeNpiZGCYyUAbwMRAM8BCnLL/DAysYARk/GFg+AdGlBoNNIKLgUGAiem1nPQjVmbGh8/5/vzh//cX6N3P+D2Nz2hGhn//GQSYWX6XZy0QEn539oLUh/c8dtbffvxk2XPQ5OVrKQaGV3hMZ2Zg8MXtXkEuzs9r5/Z/+vytfZL5k5ca774J7z8kxsfzaUrPivOXZV+9lmdg+AJyA4lGA0OWbcXMyWfPi9Z1RyWlifX3K0WGCenoMi1cynvlKmd1ye6tOzV//+YGhz4JKQQYXfzB3od/ff/TPDHoxGmNqRMDWb6+un7xVXKSz5evzrcfuR0+IFycs42BgRuXq5lwhjPDt79/fta2mYWGS5mbOPz8xnVkw+q/f7+zcogwM+jW14tNmmd8/gowQD6SajQwNP4oyN1VUD6hrMkG5P/69fPvv3///v77/RskLSMnoqV1Q1b8DAPDT7Bi0rIMC9DZHg6Xfny8CLKKi0tUReXf3z9/wGafPfdFW/2ige4TcNL8T5LRQP3sx88Yy8iyPbm3fvu28xxsfy0cvDQ0NXi4WF48e3Lp+GIx0dcHTumBjf5Nagph+vqFj4fv1fPPDzom3n7z4o24hBIvD/+Gdcc9oyd+/7/D1JB388awT595wWGCPbpm4k4kAooyz7/zbnnx8hbDDwEOIRWm/+zfXp1nEH7OzmEl+NnvxVsBBoZPuKKREW/JBzKdgekXq/DJf4KH/r6RYPjLyCR7kemV49/Xbv//A819DVZDptFABZyMDIyMrO8YGDj+/2NhYP78/5cEOHy/kF+GwJzz7T8D8//fQmDj/jH8FQEXTH8JFsjEFKqM4PLkG4z7FcnWAaoKaGg0QIABAIW9+Bm2LAQNAAAAAElFTkSuQmCC'\n },\n {\n country: 'Central African Republic',\n code: '236',\n iso: 'CF',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMTREMUVGNzE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyMTREMUVGODE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIxNEQxRUY1MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIxNEQxRUY2MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bmc50gAAAqRJREFUeNrEVktrE1EU/u4jM5OMedJYadBNi2t1Jeqif0FX/QdCURAFQRHE7lz52LiRbtzowr0gqFhXFbQbF4KFQGjEaNsxaZtk5s69nk7SpCjaW1BzhmHOPffx3XPOd07CcGxuBcxMwLAWWj6KfhuMGaxt+EB2AzQHmkMiTh7nG29xv7GIj04uMR0Nm7hWPoE74ycB0i0kS29dJkrMwYXO8lwLF8++huQac0+nAQ6oiJbQ+C9LViYf8khvZDBzZhG3Zl8AKaBay2P+5WnAjfAvRKLZ7oVzjePNUgXvFnw4UmHh/RHgC3k61hqGWtA9u3QRwYYnbOtdBaxvAnHbHtgbyyZx7PiOzh3mOHf3CrTmKE0EZEzB83KDxR03D1l3mQ40g+jZjNKQGcfgUN64XQa2NyYlEJo11jYJAXkpjA62JEIlk81SxCj5EaJ4eJQsZhDMPWDBzetMFqYSmwqWkb96wxRvXzYqII+NsQH+LsvFDN8xFHO757ddcn7ZFaVT+AYD2R8raGQ8yYqUMBTStpHmHCOSkQHLtmrvFOmexerKNCKtGFFokHhGd1damZiyG8Yd2xxrOf1oemflnjtq1N9ml4y4gCnU+rZJeh5+eIx7z56Yymdrh42sBlWxi01/lIYbYr1TJsqVaRT2uih1m2Z3la2sfhVhkLIpp15HKKVL1tds+sTglEdMVgNbTI8nPWT8MkppbgsMGShhDdyJGNrUXMRPRdch21YkEKh9AFfcyJpccTpGTkgW7SIX6dTxYzPuRabicuvOJV8d/2RNLmdSm8bzilhGgXLb68vLpM0crOPSqZoJq9zilD65DrjamlzwCFwaCs3Qr+0wOcIwx4NwXG0LTD83ah9VH/0mIbo/p2ALPMLORW+r/3ek9Z8wE6wfAgwA1dTxt+cD8jYAAAAASUVORK5CYII='\n },\n {\n country: 'Chad',\n code: '235',\n iso: 'TD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMTREMUVGQjE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyMTREMUVGQzE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIxNEQxRUY5MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIxNEQxRUZBMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+OGKo1gAAADBJREFUeNpiZJAoZMAN/m/rxyN72ckEjywTA83AqNGjRo8aPWr0qNGjRtPOaIAAAwAKxQQ+Km3kBAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Chile',\n code: '56',\n iso: 'CL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NDUwRENDODE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NDUwRENDOTE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIxNEQxRUZEMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIxNEQxRUZFMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KpHXrgAAAXlJREFUeNrsVrtKA0EUPbOv7CZZNSIqQkCxsrHLR9hY2QuC+A12Pr7DT7ATrAQLbUJKC1tZI2rQVZNsspvMjHd3QxLwgcUONjkwu3fuFGfOfQyXoXJaB7BEq4nv8B4hv+DAO9vA7JSFDODSejAGRurQGdDup7sCHXEJRXCNoRlzdDimHR1Ej7eAA5aGZKMAWvIVEhYR4r6Fnc1l7G2tAvVW6hNqVKeKI4GIcewfVXCwuwbT0OCULByf3AJdrlCxTcqeAlxUn2GZGhiF97LWAPfagGMoVByDCPOU0+3DGoSg9MaFpjDHI+I5G9UbH1fnHhFL5MpFYN4B/FARMSukFikLQpK6aCOOdadHRWWSk5m07GFWMiO2pT9qJ33sJLbpHl1EyAkHMgzIUYQIs4kAu14vf4w9Il8g6UIaiZ1xreQvs+muprEiH38ve4o2p456ueuhL9J9JqF+Ze6fmk4rUZFn3sf/gAnxhFgZjMHI4/44+iiYPmKuTwEGAHthZNcUQvnKAAAAAElFTkSuQmCC'\n },\n {\n country: 'China',\n code: '86',\n iso: 'CN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NDUwRENDQzE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NDUwRENDRDE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU0NTBEQ0NBMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU0NTBEQ0NCMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+63sBgQAAAXhJREFUeNrslL1OwzAQx322k+ZDpaFSVSQqOsCChGBl5wkY4AGYeQF2NkYQAxI7ElM3nqE7TAgJtkKaUtQPkto+zgUxwZCgMvUmW5Z+/t0/OcPDesRmU/x7BZKZIZgB0IIh0wmv7KbR3rtOgJnCaGCYQfYkvA3lbarsUdCW6OAhhKhioRIODuZFkyFDxZxlbfqwsJ9yn43b0mlo1eXxWWB6UD8aIsfkIhCRIYl8aApBRLhy1Xe3NLXRvNbxqZ/eC8siqkAQrEAmFi0qOLhxxZKp7wxp+9oqvbVK7pq9xqmb55OQZL1VhcqmlA9ty0OiDC5c1ExWDQRoezdsEvPa4Qgcllz6RQIhF6dhRm3ZPfdxAsF25jZt/5MO1zHnAfWFDAsF8umS3kpBvsDSO8nLqHu8ejAWIXaOQ16xPdHXzo+eihPu638sW0dKhpfsOXFllJtrhX+bRhoc9QJoQNaMTaNgID8VaYrFKdL8edBn+IbM0XP0P6M/BBgAWIia6c9dDfMAAAAASUVORK5CYII='\n },\n {\n country: 'Christmas Island',\n code: '61',\n iso: 'CX',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTQ1MERDRDExNzc0MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTQ1MERDRDAxNzc0MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iRjgxOUM0M0NBNkU4M0Q2MkFEMjJGRURBREU5RUVFRTgiIHN0UmVmOmRvY3VtZW50SUQ9IkY4MTlDNDNDQTZFODNENjJBRDIyRkVEQURFOUVFRUU4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+BJjG7QAABAlJREFUeNq0VV1oW2UY/n5PTk7+mzRp2tmkpm61c1bxp4K0tZWxDRV/cCIqijdejF3JQEEvhzoRRBBBb9YLYV7ILhRxiEJvxqy1VYarFNqxxiZp0qRNcpKcnHO+H7+sk+DdCt3LufjOOe/3PO/3nOd9D3zosxnAMYAS7HcgcMcC2T+P82pQBi0YagAkgIT7BY0jxstsJS3LYUQ4jm8Db1u6GhQI7IWi3EKTg87rY62LK7q61QlQ+uLEwSmEuSxE+fWUlQ82WcM4UMeGLR0N3AYBgh2UnInnC+TLE9YTKfurP/WQBiEEuHfwKEASeh0OuK/R39c4Yq57OWYkUUHqBA4FEmMEHA7zJtqxoEZuFbUbbQY9VL4/0Qx5wceXtbMTjaVt/e8K9lNJbqVIWKzU3nwl88bzD558teEsH/CPFOjhNTqUI4QXCwGXwWdG3KABFrJwvUr6A4CJDr5irbZwri6/eLq+lMdlQaKE5bboQEpVnTp6swSpe2h1pz3/R7bqmEQT2SWK1jNaK1YVthZqff1s/dSUdexQ+74wuJyn6gQBTWFDBe0h8odVOrukjfejR4btR/tsQuHVMkGU4OJWvVQ2g35PsdJcuFp0XaHr8OwH46NjvuJv8ezsU6dj0ccONlwLn5/zfrpgfDTd9FLedBBXhpLAYiDoRTmT/FVEZgVd2dQ1jBgDZLNkvnNqqm3zz8//2hs1dB2XKpZPp2MjfVcW1x3dTOp0NG6d/sn/7e+hYo18OGlNjZp3z2v5bT3oBQ4TMT9I+Hivl1PCjl0ILxY8ES9LBwRxheiJGrbjMsaEkNzlxyeHrmdrL7x1IRYx+mK+jRxeKXvee6k0EfScmQufma6Alra8g9LJ7QHhh1z4fQAIsLQJr5V8Pg09EHeVUkxCeGT6k81SVZmlrzfEGOdcpAdClbpVqdo6xQiBQlk/NGjOzX6nJXIrDSNm+99+9/jFa0bqyUUtvYEhalQCbRcGdODB6pN1zQMPT5xTkin7KhT1VHE0LVejSCNYyE4aJeLGhn+ov3HyueW7ws43l+75ZX4gExRCtdjwP/TeVZoqKIMJ07jZB91ZBEcnzu2uCEZm09mptpKJgHKyEN0kiuVWzVMq+hREOGIl4y31UrpE1A2oOTizgUfXaCoPOwR+IOAuQcd8u/sbLWc4HTkxk7mxUW+3WadP/gshoa7xaE872mP5DCbVnFGXajTDhgjwfJyvpkQ5AnUXJSrQ4wBHNRXq7q+b7aHByGsvPqw0cV1+W7NDEWCOInWs22wl0/p+xvrxcTebRAELBppdQZTcXEilL4IIYyD3OsChlJzImgEow8Pr5P418r9Zo1B3B5IEYq80ym2Iw4jZWRZ7nUvJO/kr6LLuN/S/AgwAs/Hl9f4h+7IAAAAASUVORK5CYII='\n },\n {\n country: 'Cocos Islands',\n code: '61',\n iso: 'CC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzRDMzYwQ0MxNzc0MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzRDMzYwQ0IxNzc0MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMERGMEFEOEU0MzBGNTQzMTkxQTc2NEY1NDFDOTdFQjkiIHN0UmVmOmRvY3VtZW50SUQ9IjBERjBBRDhFNDMwRjU0MzE5MUE3NjRGNTQxQzk3RUI5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YY6ZXwAAAxVJREFUeNq0VU1IFVEUPuf+zLz3fE+T/jCy7AczrIgIqQgxEHKVSItwkdQqatEqWrttE1FQ0SbaRLQqMgr6g36wIrAoyFe+Sg01+ns+3xvnzcy9pzvzNFIji/Auhpm593zzne985wxCJ8LcLAZztiJow5sIvjMosPAhy8E1OzR7tAnUBA6BIsDfQpuNHO/YZA0ewoEOfrJFJgSDPMKsUimypdiwJJayBaiZ0CY+y440WBfaQaF98ZXdWiPf7bcRJHjmwB+5u1CXki/2JLcvtsCZvslhK1TO43faWFev3HGJ3XitLnygo5upoOlJn4J4xB0J8gzGGOgoT6MVYil6PMD7Q/Tsi++gCqmYAwInobfA6ip+qI5/U2p1JY1kWRXylrU4WtDX0wSJCCXLGpaLUy1W/SJ72GHZca3dKNrCotJ9w55DGjhflrJsmxc8XVKSgQ3pYfzswJZ17oGNxRMLsLvFW7nCvTKAICDChV1r7CcHhbTw9rsg5xMhq55nL0wICKJKJsOrHOePW8vObEuEyRFFrJtB56g3L9rr0VKs6q0Qzf7lbnnsUQBJBQGLW9arffRygBpP6/6iO+YHDHm6vSwp4VbaM8yAoZFCk84U8e6gP1AMQtEQhakTVsC1Xn/7ebF3Fdo11N3Fzz31wVLAERy9qprBfHX8ph8GlDNQJl994OF4JhdAfKKY6xdbnOOVHhfiGhIIGiNndpZMRibx8DFu3K0hRUbH0LMeS0mZO4wP3lPjWQ2VPsQgFGoMjIPCIpszLu6sKYsJutrnQIwAfpaxCSfcH8MwO04hF5MjRS8FelnVPyoO75TVlexTjgspCh5pi0InlJxpQeZrkP7mY8IwxF/M14RTumtmm9j0/AM9+qjbatnSctn7FUbyAbHJw+bOdKMVZUnTWnXW8VQaA6ORnYyU4ccmUTTEpVVbwTJjKh9Wj/5xPJWUqUAoJ5A4hZ0LtSnRszvZuNCOupGmdmPTXw/VmXJxKgT63pDu+eIVDO5UnuK/5ibHfKBvv3HCyovpWv8fdMlpSYTfzbG5/hXMzfohwAC83jil0Oj5WQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Colombia',\n code: '57',\n iso: 'CO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDNEMzNjBDRjE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDNEMzNjBEMDE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM0QzM2MENEMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM0QzM2MENFMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jvkEygAAAC9JREFUeNpi/HNRjIE2gImBZmDU6FGjh6PRjAzac0cDZOhH4zlBtdEAGfJGAwQYAIs9A9bKIFNYAAAAAElFTkSuQmCC'\n },\n {\n country: 'Comoros',\n code: '269',\n iso: 'KM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDNEMzNjBEMzE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDNEMzNjBENDE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM0QzM2MEQxMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM0QzM2MEQyMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8TQxCAAAA4RJREFUeNq0lV9sFFUYxX8zs9PdbnfaZbstpVIsLkotFBGqxCiaDSSmEm3kpREQsCGYSJRGI7E+akx4UKImvmn6oImJJlBoomIwRMU2NaCgtWpjpEjb3aXun85udzu7szPeneqbL+1u7507M/dOJuee853vu9Lz72+Z7t+oa2v8BuRcUJBAXCvdXJ9GqpuHE26OhdI8c3sGfEXIig1YrOgG5Lt9hbRhw4kxP90jDXwXqYYaEzxiA/YKMjZtiYBqOeOqrrL/cpADLfP0CQWCdQI8k4f8QsXZu0q3EjFFVmhUUkzpcd4Y0/g8Ws8LoSSH2pqgqhZSESG/WTlgSVCRZZnJ+J/c5m/hld1H8Kgqb34zwLPfG1yYC9AXfpHt9z26+IeZpBIxUO7oaun/Y3bCvXNDmI97z7C5eSsfjg7Qe/9+PHKBc78PM/Trt8zm0nS2PoTHJTwglz8U74NK//r6kHvw6HncLje73n2AkeuXqPXUEdGn0VQX1YrNhfEznP/lNJpbY9OajvJdncwmOR5+2Zm89dVJrk5dE6y3CNnX4q3yki8aDsuO5nuIz//NsU+OsG/gSa5N/VBejAM19Q5QqV35a5RGLUjRKpLNZykUC04y26KbwlirtSYafI1cmrjIyMwoe7v7eGn9QZoLPoouaRnmkmRnYgkAWRJAtu0Al57/fXPcb1lOVtV0tKMbOpOvvs6NKwOkrWoMdYmM4/NxxiNjrFvVyr1rtzH001lEzFkXaGUqddNh6hZdEZUspUnEV8lsHTc4eBbCPzYxS0r0OPISpZbaXmvRBZD22XMXnYVtJzcKU0Xoat9DLB1lLpPEdruYXq0QTFrsG1pg75cGPtNmuk7GVIRRlpFdUvjtHfrErd+0PZu7ea/nAxJCgRODx3ls0xN88fMgX+vDeH217B42OXw6R3vCJCryPuMVIbKWby7p4VOduiRJ2nVRQDY03MlTnYdEbOGjy+8QUyKE9LvoOWeya3SBgtAzGpQXGZZZQ6Sdp7brwmBaqXol5pMkczFqanQC7hDmwtM03nhESJwnFrQoqOWx/N9aXRSOrdMM/LUerMzjWLHDqLk2on7h3iYTyZYqfUiU3JEWb7fAaKOYOoCd7hJa5IWpJqkSDKuylT+YXZJ6U7NFHtqJo1hzPYJ6QKzOOMAsOUmWAGxld8zYqV7NznYuslYn/wVcOdBS+0eAAQAC6FhYtEMFCwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Cook Islands',\n code: '682',\n iso: 'CK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkI3NjBDQzgxNzc1MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjkyRURDQUUxNzc0MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQUQyMUNBQzdCMUE3RTk1MkU2N0IwNzVGOTlCQTRCQjIiIHN0UmVmOmRvY3VtZW50SUQ9IkFEMjFDQUM3QjFBN0U5NTJFNjdCMDc1Rjk5QkE0QkIyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+isNl2wAABElJREFUeNq0lWtMHFUUx8+dGZZ5sN1dVpYFpNSwWBQFLJuWEpNaH0hoNDZIVoq08YGmMaaNHzRKiakRtcYq1Ni0poFa8VGigkmh0tY2tdSqRLq0lVJoKY/lsbuzL1h2dnd25nrXB2LiB9uEm8xk7p2c3znnnv89F6G8nbA0g4IlG9T0RqTuLfmo7qG0lZl40In91OEaiyq1fG9Lw5wOz9M8Ba+YRHULE3z9Dp2ex0E5bocQVgErGEMMz4awDPGpisn6P2jzvpntWw9VT/5yoSq54b1HU1ZliRIGhfIgjdbIbzW77Bvohs3WJs5629FEv8OPeJqYYVBBiYFrDmKKJdco6ChwB0CSMfkDf9HpTS/Vz69eK/Os1Td23xNrnq1dr3NOeg81p9RUPVeesyWXSX6qqtucd+zk8C0h16hfUqIYaAp+G7UUZTQ3Vgxcde7dUTrlmn3x+Xt5QXP5iB30AtIwgDHCq0uIfzGEJ0KgeP1pelaal5wqNiqKILABc4bs9KbIs7eu0Cp0kmlunTfGISS98UyxKKvZqcLuz/sETiO6gttqrA5vKDYb+bpn2OsOIZ5j+i157qmgn1UKK1YZfG5enBIRi7/pEspLM4ty0Fm7P8VgT10x7naCoImNMDAbweG5wjVZzR0Xmuq+hex0kKLAaeq2dWSX3d6+5/EvTl+FQBS0AoKSDwvLrK9V5VYa56Lf9TR5kvMthntspUONn409UF5p8Gl6fzh82vH2dX2/qoWf+3jAH7xZ1tJ+/qfOYVhuJOVcqCqEpBSztrai4MvjwyNDInWg5q7zVl/lidaPbW/lN/S/vH9UuThkMjHstOPJB3cVVLd9Mp5sK0qzF3vfD/7IRGJhhvIGJJ7jgaPRgnTJzpJvGSsU3Gkx0JRKhENXr72/a1/nC3b6gMfs8ceAVRgajzrCxxMzf5WQeG64o2uoXW9BmcsTJ0ePXptflmXSJyWcPHs9ihCi6UU6RqChwvOSLxiRItjtDiLQbofUVJAjwGGUwIAiY+Ig2QR+EQkUJCZgVYWpABBhZKSC5Ft5t3l//cM1r3ZOXBGRgV+MxqoCztnOr2rPXBp7Z8cRGnLKgVGQBiEKkbyAJMYxAFFgKURR8UyJkZYFPQtIIeXyXPNM+IO52cZLA05IYOJWC1H7IwXFmZMuX2tbv8xzcR769wGNs/5zkTwxDEHZ9kjBY+ss4PBCKIojMRIPVlRMdDIlbt6Y/7TNOu8IAM3QyLT+/7eFuAMDd6z7cve58daDm2bmgmODbsRS4A0xPPXpQVtPr2PXu6ckHU/iuDE0YRMbci4ULiEvPYnl2cb60oErM3t2btAIFNn4E73jI/ZpMAo3jv6TL2gUOXaqrX8srGKK6rs4mbSM6xsUW3afmQkpKF2HFPyH1m+2X2NSpnAMxADoEiEQBp0WtCwicvp7MDfdjhFpoRoa0pPjE0GIvxdxl/gqWDr07wIMALtx7x8ZU/QIAAAAAElFTkSuQmCC'\n },\n {\n country: 'Costa Rica',\n code: '506',\n iso: 'CR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQjc2MENDQjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQjc2MENDQzE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJCNzYwQ0M5MTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJCNzYwQ0NBMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Gc94EgAAADRJREFUeNpiZJAuZaANYGKgGRiaRjP++fxlNECQAMslOaPRABk1ejTLEB8go+U13YwGCDAAKSoIL49OOfsAAAAASUVORK5CYII='\n },\n {\n country: 'Croatia',\n code: '385',\n iso: 'HR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQkE2MUNDNjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQkE2MUNDNzE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJCNzYwQ0QxMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJCNzYwQ0QyMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+JdsChwAAAshJREFUeNrEVc1rE0EU/83sbr5smtgmbalpTQ+2IehFrSCipE1BRD0qtAUVBG+tIK0H/wK9iQieBPEmiqkIiieLbRWjtaVSP2mRSDCxdTdpmmSz2Q93Nz14ywQPfTDL23lv3szvN2/eI5+C7RvYBuHN4WV1NggBryrQKQe+UrHnVKcTVNeg8g4Qw2DemLI4KTyPFklEz+8MFE8TiCCAd7fCKfjRRVW0NjvQbdp86znzAJQZcV0J5EXMHRkC5/eivLgGyRCwfDUG2UUgTywjJ1FcOC/Cly2gb3oBRa/7/xETVYW3xGHq0gmMP5zEIh9CIS1iPpjCVFRBauwHSodFXJ+YxIPJcyBVB7iqUh+xspat6ySb48DdBF6NjOH1yRj6b71Fz7cOeLKtiHwV0XmqD3ShgsjNeyho61BzZj7UA5QaHqnjQ+Asb6Lsa8NTeNAmZhEOtiMwMwNPtYiN3jiWzXvlQiqOShLKWhWqy10/0YwGRDLdC5E9tr4aDhtftpYXjw8ZK42FMoj1YXpKmoaNxwlUf2WwuTAP/2AcxOGA9PwZmvbug9DVBd/ZMyZBhPFtMopWKNTQJd8Zs+YyNZe3/+dMPZ9I2LpeLjMjboifj5Q3Vgfjtv79YL/xuaPT1lPDo8aShUHXmWPx7EVOh3cgBq57N4rJJFzRKLRQyNa5QADNx2Ko5TI71TLjsHhUjMWk8fKfG5q2aH/yyLBtNR+meGT44v0sG15e85TT7hv7qT94qBelF7PQZBne00OoLK/g8lwpn3P1lCipcizxTF5GGSu7RaGEyK4w7ry/je54FEinIa7mMT5wDW+WPpj2IOqXjq1otOUKe0vhBOh/SiZ8GR1tTgiU4GfG6lICaNBsclqF+Y75hpqoWZXoTgf0CkFGdtfe7A4C6hJMm8KeWA1vXMtGUIe1rLrFAm/PNSoU2yTW0QvbsfFfAQYAfYmMzgM7drcAAAAASUVORK5CYII='\n },\n {\n country: 'Cuba',\n code: '53',\n iso: 'CU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQkE2MUNDQTE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQkE2MUNDQjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFCQTYxQ0M4MTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFCQTYxQ0M5MTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9/ZNdQAAAztJREFUeNq8ll9oHFUUxn+zM7OT3c3spMlus8kS3RL/RU1JokglJrRaFH3pg2+C+CAICq0PRqigVYrStFhEfBEVXwQRn0RQEESsT2KqjUhrpaR/NFmbpNlsdjO7m/l3PZsWRXxK2PXCMHDnzj33nO/7zne19/v3LxxL77MvWrsgrEK0DsRo99Dcrj61FOvgw877OG4/gGf0QLACymvrAbSZzHClO6rbhXCVH8w8b6cn+CQ1JjHjsPon+EF7Ap/J3FVRYEeS3UBYwYlqfGHdxpv2OBdGHyTyqgSLy6hItTSwsRldHp2Ied2mqHfyUGOOkbVzVO+tkp9+EWdoF76sCV2vtRnL2/5nRiOS7DpUgFG6gjVQIDf1HNahgy3N+D/s0bQYqlymUfdp9N3J8kKF088f4peh+yl9+lmLM9Y0G6WI6g18d5HuRw/gC67rP/2I6WSIWQkaSxdR1Ol55AD51w5zaeQeUrJBd7ghUGnbDBxFNrqOmeuldu5ndp+fYfXzr/jj6Ksk+4fwrhaJmZYQLSAoz+HoXXw9OMEJZx9XzF46RH6m8rckv+usDiM7qJXJPvkEuReepeOOQZGxx9o3p5h/6Q0av81hpJwb4Ogo1yXrXmNZS/BRapS3RIIQv6H9LWCsGTpGMk3xg5O4M2eunygeZ/HYu6zPzkjQrn/9pGLCAymvoxqkow2Z2KacmvhqcgYzuRMVBBSPniQ5Oow1eBPad80lsrOQTiDBX7qAQ5Jvb53geHovZ60BKfWqlLqZbWLrclK+j5HZiZF1KH//JVaiQHJsmNrZ8+jxBN7SvGi5xI49+7n59Zf5fXxy89RZIVds2+Rq6jimoaQ9hmtVjJ4dRG5NMmyCoVGvzZHK303+yBTZZ55qUwOREUlZLRViXruMmcnSe/BpkkcOyxeztS3zb9JIyZo8KXgl1hsuK489Tv8rUxh7douCxbRq/iYfWmoSoSCVEy/uFU8+FS8w3TnO7MjDssLDL15FJNdadzotttipNuxbghK/GhneEVd6T7wZXfpSWWzR89tji2td/aqu6dIIxpi2J1mJ90lNy1LSensvAh/nJhdOpPfas4nbhVXC5LDyv1x9/hJgAIwQQwS2sEaJAAAAAElFTkSuQmCC'\n },\n {\n country: 'Cyprus',\n code: '357',\n iso: 'CY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQkE2MUNDRTE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQkE2MUNDRjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFCQTYxQ0NDMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFCQTYxQ0NEMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+efiilAAAAf5JREFUeNrslU1rE1EUhp+ZZNJJMGm0Wj9IpVWsSsGvpQa6qRR/gBsRN+IPcONG0JXgtgsFFQS17lwU/AALoqApQQwUxVJbBTW2jK10Mp0kk5kkc71pcCFS00JiNp7N5R7uPe9733PuOYoQYpk2mCKBRTuAVdpkLQP27XmEa/87YOEsUXx6nvLsI7nxmwi8WjBRwUldxx49gRII0XHoLIreuWqY4PrLUaX08grVnEMw0Sepa1TnMpQyD1AjcTacvEFwZ7K5VV3JvkHdmMAa6cN7V0LtrkWQj83LRYct1zzp0Jr0naoe1cX3uJk7FJ6MENgekgy8epL8erJEQboMiAwNET31GKTUjayx1GoQ5/ll8mMP0fprIB5Kx6+8QnlGAg5LwNPn8IvGXwtq3VJXshOYV48hypJHpK6mKMrLkra2Z5DomXuosZ7WdC7xZRxl4jZFO4uX/0Y4eQl18160XcnWtkz5WGpNvWtFgpxMUvyPMwu2RUyPoGta8zqXYf7gwuhNbqVTzPu/gxqWyd30Cy6O3cdYNtcUb83/eFsszpFED+mZSUxrgQOJXoYHDjM+Ncnrz7N8t3Irvh2dm5o/nWpHn02/JfVpmt6urQz2D/Dq4xQfjDmO7t7H8f0HCQYCrRuLX5cWCWshonqYgutiu44k0v1/HjcsLrsdwD8FGACqhNA6kzA7CgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Czech Republic',\n code: '420',\n iso: 'CZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFNzhFNzJCMTE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFNzhFNzJCMjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFCQTYxQ0QwMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU3OEU3MkIwMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jrdRWwAAAjdJREFUeNq8lk1o02AYx/95k2aStKDr1s1VaPUgKKs7iuBFbSfDqzsJwtSriFdBp3VszsNwoHgR3MmL280Vdd51qOjBdrCt9aCttVK3Np1NszbxSVhxDFf2kfQJCSFf//f3/p4Xwl0YfJZ+cqO/a48oKGhOeWjPAIErRV/4pvH6/YLRxCqy1qMHkPu5jN7zoxgYmURFqzYFmxlVHV6/F/LBDkw8isHfdwczHxadDzYPek1Hi8ij9VgQ+V8F9Pbfx6WRKagO0rP6iWHQXq2hzaQP+vD04QsEzkXxxiF6tvFCrU7fE7TcR0z3w5PQVmvOBv+jX3N/iNw/jqGr7zao850Nrpfl3kX03QHkcwWcJfeX702hsrp799y+yK3i2qJuPEKeQVU1rMynwfUcwcToAC6GfEBFtWZom6UIW36UGo+JInDiOIxUEomTp1Ho0JDnRNS2Hwxha4tdx5LogS7KiKQ/Yjwzg8Plb5hbMF/naLM5mNEcaoyHIrVDqhRwN/Ec17+/xQovYm6vHzwNiNuhY6EhZQtRumScyX7Gg+RLdJey+Cp58YcJEOj+bkr4PyWDInfCoy4hOj+Nq5lZlJkLcXenNSB+B93UMNj86G9yaYgSwtlPGEu+Qqj0gyjbiNJlTa1dJWyklNRlDMXJZfodSuTyi3u/FWhnqBW8vmPD5HKMXIbIZYpclm1wuWlwXm6Hu1JENDGNa+lZa0rtdLlp8KlcXBlfjHnIpZIilyYl7xDlul8f5a8AAwAi6Fw0Cqzr+gAAAABJRU5ErkJggg=='\n },\n {\n country: 'Democratic Republic of the Congo',\n code: '243',\n iso: 'CD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGOTJFRENBQTE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGOTJFRENBQjE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY5MkVEQ0E4MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY5MkVEQ0E5MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ljpEIwAABUxJREFUeNqslWtsk2UYhq/va7v19K3dBmOUwYBxxoBDFw4CQZQs/NCFhBAMKIQgYNgYEASNogElQnQ4YEDEAyD8UCQahYgZBgVEnMiQgbDJOIxtDBiuo13Xc+vTdiZDxRDwTd6kP94+93O4r+fTs+tiI+CQ60aJQDAVVD/oPBDVcf8nCopcXyYErHR/qJItw9dScKJcu/yW9ZpeXmgdDzWCaUy2H6Y20I0Lvt6SgO8+BaWAQFfw2rENOM8buVsoqt0Oiz1U7uiNN2rQVJQghK3QliMP01jVZzUTrFXQIk3wOxKBiNybphKGkNTR2p+krm5en/oKN7qNp2hNGZceN3Fk+wCiRhVzSgg9wXTGpR5hSu/vuR6yk2c9w62uX2E1tGBSvay9PotI2JRo/38Jhi2SvCSa4aQwfx1vejdj21xPw0Y7l1oHYEoOkWIL4r2twxgIoLDjpis9uUHbm7OCCRkHCftS0Rmc8UCza9ex8+Y0EfVK8NBdBCUpTxbY25k+5mPWUkb257/RvMFCdZ0DoyGCwRyJCyrSuWGPXsW8BLfC7hoXgW4aXhtHR41nbNZRmQ/kV5RT3jRJAtbGFDruX4LS+ohBBLPBHCJ/1B5KrBsZeqAC93oDZ85lo6pRjFoEv1slHFEYOrAeW7Gf6oI8lrctduuJir/k5mZ+zSPmahacKmF+xh5mOT6k3DlRVHQdc6Zj1qq0tC/oVfIe28+mzHcZ+d0hfG+rVPzSV17IDO1hgh6Vttt6BjiayChuo2n6QIooZNeR2eC0Shm7LroIpWpPpB9AlQQO1k8jRWvi6YxP+aJlEp5wilQYSOh6paWRZAaOOMymnBImHd9HdD1UHsrGTxJmW4iQT6Hdr6ePvZmei5y4ZvZgpbmQjRVz4XoXsDRJ0m3uhLAS0tRQCtGwRjS5QZyZKuMzQ3Kj1KpLsBi04hh6knVDyph5djeUhajam4ULExYtJAYUwXY9DpOTnDnNBOamU9JjDqt+Xoi/LjaSWxDzTmI3dAjHWVY6tbQD/kCXOIvW/jWsyd3MossfwVYP1TszaY6kYLEE43/ztBlIl/0zZKZUU2hmW/9nWXGqmNaawWBslQKaJaTa2SedhTs5NWiXaF3RZzeycmQZL938gKT3b3FpWxcahHWLKYSqj+IRi2j4GF5QD8Uqe4Y9w9LqYhqr8iBJNp9REon+zZj/EI6jEVsk3aHbHxSP2cZrnvdI21lH4xZhsSUjzqLOGBU09CQTZMTEKyiL4ZvRBSytW8T5ypgZxQ+m+o7uqXcjX1KOCUaM8lOcavMybfI2SvSlZO05z60SCz/UyxbSR9DsQXytOkL+CLkPX8S0LEJl/jgW3VjCsS+niC9EyHI50bE72/rvO4etUfFHWMsf/Qmltg0M2ncCV0kSZ6t7oRMWk1OERZdKKMZi/3rsy/xceCqX4ralHDg+HcRQWOqkuGCH4D0dtzK6ar/rncxSbczBbwmUKvx6ojdhcbLJFibQruAP6hjY4xoZsuAbpg7iZbWQ3T8+J7tcbGEVAnTe+/mKuZXIPpMrstGrnT6YjTfGoizwcEDQ8AmLacLiQifOGb1YnTKf0p+ehyb56liuC4vuB/lsupUqY5bL7TNppjiLYuZ2A44kJ/3mNROen8razHmsqlhI8EpPEbyDxQc5buWktU/c1TEWuwiLg2cJAgtMbO03m1dPL6SlZqi4VFhMar4n09yrsN7fphPTRxlb8DtKkbCYO4MXq4u4+tlIqa5dnF6bYPHBq7zT1TV5PRtzlt92HHtytPuFi8s5d3JiYjfHWeT/qrDziS2ra38KMABPHyYU69kw6AAAAABJRU5ErkJggg=='\n },\n {\n country: 'Denmark',\n code: '45',\n iso: 'DK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFNzhFNzJCNTE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFNzhFNzJCNjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU3OEU3MkIzMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU3OEU3MkI0MTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YilnMAAAAFRJREFUeNpivMBj/J+BSKD/+cxnEH2R14SXgULAQqJ6ii2EASaGAQKjFo9aPPwsZvwPBCPKxyzA4o9oxcAikwFaZI4mrlGLRy0euhZ/hmKKAUCAAQC4DxA6JMoNqgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Djibouti',\n code: '253',\n iso: 'DJ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFNzhFNzJCOTE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFNzhFNzJCQTE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU3OEU3MkI3MTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU3OEU3MkI4MTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+LIWFKAAAAkdJREFUeNq0ls9PE0EYhp/dbtllbUtLREmtCSYmvfAncdeoJy8aDImejB6MHDxhTJADGBIDJCaSeICEeBAL2ipGEBCbVqgabBf6g3Z3mMXUgyi04L7JHibZmed7v3lnMsrSj0rmUSIfncuWrA5TI9KqYgu8VFB+WUUIUXAHU6tFhpN50vka0aCG6Ve8LMD6DXZHlZrg6YLF2AeLUtUhFvLjU8ERHoPrym3VGHyTZ1p2wfSrnA74EBIuvAbXlVyvMCQLSG2UORXQCBs+7P9j/2BwXZNL2zxJFdiQnTgT0tA15bjtbwzsqlgVjCQLPFu09qBuABWFvS3wFFxXplBlcD7PzFqJNkPlpHmk/f8D7K7g2piehs5OiMf/OXM2U+KxLGB1s0ZXKIzh0+Txc47heHwcenqguxtGRyEWO3CFhTT0z2VF2SkKQ9MagcoDSn7/n7oOW1uws3Mo1FVCGWC0+kDYjiJMoTfqWOx3vLIik1SElpZfYNP868znX6e48voGy7mX6KEOWjRDhs7xLlyft9NclMDJT0PgDxAJnkOV2RDNxatxcNmucD11h/7UPahaBNvi6KrWjMvmwQPLI1ybv8nmz48YoS4C/pAE2t5dIDPfZrmU6CWVfoFqdhAxozIWdrNtbRycLeW4PNfH2OJDGX6dcPA88pY8alsPB9ekm1vv73P77V3sco5AOE6rBNvHa+vB4OEvE1xN9LH+PSmPx1mCejuOU/PuITC/+S5zYbY3+mptwlKMdiInYiiypQLPnh97T59dAQYAfWNBGb6d818AAAAASUVORK5CYII='\n },\n {\n country: 'Dominica',\n code: '1-767',\n iso: 'DM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQUE5QkY3MDE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQUE5QkY3MTE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBQTlCRjZFMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBQTlCRjZGMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yQnKJAAAAtZJREFUeNrElUtIVGEUx3/3znXGmbIZUxAdH4mJaWkUYdCDoCijFj2IgjYt2gQVREURWVCWPSAoqE27iIqKatE7aBEmUYFEadlz0pSkdLRGZ5xx5n6daVp774DkgbO49xzO//v/v/Odo3FuyW/sWngiB6vaODTnEwUV0GdWEf3Vxtn3t9l+bQfklNouZYhnMQ6mM06WPrASz4CQBjEt9UtT6QMbtjPNJKhOqHgEsqEwmrzjFGKoPE/iI6kcfSyBkwVd4vkxqi9LSzwrpXGCVxhLYHk9lQscUJEPQ5ITsQeucXK1siXvlBH2XQtS+0hREvIw6B/CzBrE1d5Lt5HJ57pS9m7yQIczlW/F+GjNa2vQEvBe9bD1RhaXppj05/WQHS3H1+4lkP+KaKaTPXdjTKzqY2Cz0A78pTQ6Y/Xd4nzJy8gVX1nE8dYy9nRG0B1h1q+voK9rOo+bmiQYpKHEywF/JzwOpOSOWjBODoJRCcv1uaXIxXg2NX5F0IgxKZ7L1DfVXF/TzOvWCNMGDOrCCd4/m8za7ABBUVyLWwD3mdNGz0iAU9fxxHTyeoeJa7qoOMDSd5kcW5XHhdpvnHqYhanHGZHkfn0GwWjcUmqUXdtwWNX7fWqYeUpRpe7MnK24OF/tXDxLvueqI8U5Kla3y3Y54/znB9Yt6NZx1Zo0XPVyT+Tuz3CyzB3gVrODl/3F3CvS2d85gSubDH73PEIbMm08p4Yy6+Z3im6FOZy+4KboaYTcsIdEgcmwyOvv+sJHRwY9iyrZtln2TfdPaSxlA/jcYmVrgLgF3Ovi0pMuNjaFufnTJ08iwZrChdxf5GTFrGYBlK4alHIOW7Naw9J1LfVEOlw83/ILXn6iMdjC7l75+eIMLSfWwZfu1ORy2KgnbqS1TpSJ76tsiCJ46zaJmKnZ6PvwQ2JGWivHSHutJA88LGCiaOLfJSntf6zFMbIk49B4AP8RYABEcEyuCxX37QAAAABJRU5ErkJggg=='\n },\n {\n country: 'Dominican Republic',\n code: '1-809, 1-829, 1-849',\n iso: 'DO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQUE5QkY3NDE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQUE5QkY3NTE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBQTlCRjcyMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBQTlCRjczMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bJEP0QAAAXtJREFUeNrslM8rw2Ecx1/f72ZjG7MNw3yxidlhuRE5qFH8D1yknJUiBwc5OTiSUi6O7i4yNxxGEYWy/GhfTZvJj8nM15oc5PJMmcve9dSnp3fP63me9/N5JPzDGvCAiMIq/YN9rC+OfZu+HJ4iurKEsdyDoEr1XwV5lsw/qQDOm/TcxMXdj7e83302QPIlSfJdw24ykX6655U4csIsDm7p8AmbL2+cNPqa2NkOcXB1jYU0VR43fo8Xu7MTWakRXkvSMsrlimKJOIGxGVprXUw83zF3dMjI8jyB+ua/zfj0LUa1IjEQTxKVKth1QSiy/4uMc9SbycqFekzViZk1o5WwdojX2fD34LZUCaNKO6pRxa+TGaeX7uLGnMHSWc+QcMapSBRLoAtlYZonLQ2ZYZYNTM6usry5h9tpEz/x/daGsPkFFb3bka3Nki6zbV22Pg9HiAWDxGyKONhQ7hI2a4kURRbHzxdqLwNTNdRVFr7MAvhHHz/kmVv6IcAA7rhthUQGtAoAAAAASUVORK5CYII='\n },\n {\n country: 'East Timor',\n code: '670',\n iso: 'TL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQkUyNkYxQzE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQkUyNkYxRDE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVBQjJDNzU3MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVBQjJDNzU4MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yD9vMAAAA2FJREFUeNq0ll9oHFUUxn/zdxN3N4mUdZNsInWNoVJwK0WFUhCLICKoNaQvkupTqXlJyUNqwbeANKBUQa2CGkNhV1daQnxIkYpYiQ/ii4hRUomVdmPTYNoku5n9N3M9k81Gq9Gk+XPhMpdz7/Cd73zfPTPa87vCmQ/2RMOBHzV+Gs9j3a2jWYDHtg5NptqzL0DyYBP3z9Ty6zuLOHkPu3V7E/CB52WGjZhG6tVmOu9tIHu6wNV0AaVpWBLfjgR0Tass3Izi0AsZXjo7Rehtm11f1FH3mE75d0XxskK5/uktZCzA80oR/nsw0R7g03Ot3Lc7SPGMw/RQkdw3HkpY21IBzM1XYFXgqgYfnmzixeN3wUKZ3Md5bpxzWfiygmg1b06CFWB/oWTxz3H0uQZOv9YM9wjNyTzZC54kUCZ7URCl/Bv1gCF4J+QZ0HWdnp4eHEdKOz1NIpFgR6SR0a9+Y/izOfbtrCH6YBC7TVH/uM4du3U8B/I/eLg3RP6QJOBLoNZprurC8zxM02RsbIyBgQFGRkYkWFra+36ySOLZSc68MSNv2FA2CAp4y7s2rW/ZhB41KE8pSmJQzVjWab3A8Xic9vZ2gsEgfX19jI6OMj4+fsvhwyemOPDEL1KRMtwUhOuK4JMGre/bxIcDNDwjCcwt34C1gH1ZI5EIvb29dHR0rGx0dXXR3d2NYRi3vPDHrIurllP2dZUcqBHN7tTQA+vX2r/G86ZlLbm6VCrhui7pdJrBwUFisRjJZIpCIb90+NTLUY4di8Cc7yqZtobztZjtbJmFz108ScJu0So6r6G1WQWsjv7+fgFLMjExsRLbGTFF3xb2H6yHXFEYeuS/Vcx+UmL+vItyKu42a26TsSQX/q8DnQfCDJ2KUfuAmCpTwLm4zPCClDxXaSha4Pavk/l/FXn9eJTek1G5r8IwtcjssDSQ8z6gEkAdS7b8braRJmKuFmxrskimW3hofz3e8CLXhkrSsQQwW9HQatSWANUm2ua/gA911ZF6M4aeMbjWMcdNX8NipUVWGaot+FL9BSy+eW+gkSN7d1B4pcjlj3K4hQrDqoZqCz+NPnA4vtci1dnEwzMhrjyVZeG6/AjIn4hVs3EN13T1022hzNAj0XDDJYOfv3MwxDRG7dayW238KcAADyNSlrek0dQAAAAASUVORK5CYII='\n },\n {\n country: 'Ecuador',\n code: '593',\n iso: 'EC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQUE5QkY3ODE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QkM4MTQwQzE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBQTlCRjc2MTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBQTlCRjc3MTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oj8tnwAAAr1JREFUeNrUlU9IFGEYxn/fzOy66667urrrCusfyOgSWoc0KihLOllEXQsiiIgOdTG6dK1OdalTBxEpI+pi9IfoYBjZIaICpTAzJF1bXbdVd51d50+fa+dmRWHpY2aYj2+G533e93neVxifIguUYGnyrigFsEKJlraur21Q3fLhMkFX5VYgPPLdUDBzArndZMb2X9CIBR6JsxwAv4WotLB0nzyQV9Rew7U3EViReVEDWZ49Ndh/KkbkYB1PXtbS06ehtijsOB6iv99AqciiuFaRnakLqep/xiiEXSChqyEGXsUQ+TGGRxKk9ZPUhBYQ+kN2NjeQczVy4nASnzqLsOQ/trJRxjK9wmQq2UFTSKN5e5zWPStYK3GOtOe5cdWLHpqkOawxs9iJbSmSr+XM2B4LOFfFb6D/CPFx3OLaA6+MpYuGA9W4ZHF/vR/n7WQvPecjdLTKFNekYVl1VvXygs+5xrrANH4TqA3hmt5G+74Y0WPnuPl8Hl/mBZ3lcaL1X9GzM4hUECtfhJ2arlwsQtVu1KUMvZcesaXKJpEYwj8ZJpZapFx8ptHv5fucn0O3L2O6gjLSnDNwYipShK7dMG3ijSdpbGtl4p6XvsoBaqvc1A8ZZI66iWTSxEfrISz9JooAJpApAliHXBXj71a40D3M45k25r99IRCupHrrCme6Jhh5Iz1XUQbB1dZvOIuLvXedxSWbU1m1j2B6lLP+16R2ecgOZqVtBN4uP3UfdO783M1idQuZZGbNxg5WFp62W47AwrSkZ20WTB/p8Uqo0+mevo9mG1yPnZZl8OJrmiNaniE+q2Apzi4VgzUtdlEdUzYFS9pH1WyMvErQWCqcpTU/mtvANiWYbcqGIwpNx4my1phPrW+sGGuhLLs8hYDCZkJKQBSiK8AVOSi0lOrd0HjLqeX/3zxeLAXwHwEGAOXk99HjIQVFAAAAAElFTkSuQmCC'\n },\n {\n country: 'Egypt',\n code: '20',\n iso: 'EG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QkM4MTQwRjE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QkM4MTQxMDE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRCQzgxNDBEMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRCQzgxNDBFMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+4WJtkQAAAL5JREFUeNpiPCeo9p9hAAATwwCBUYtHLaYZYPz///9HIM0HxCRmqw9AzALEPCTbCcSfWKAMBiQaP/j1iIHhxwkGBg5NiFt/3GRgYDcEYhWSLGchOYz+/WD4eyucgVEsg4GBmZvh//NeBiati0S6GgFItvj/v+9AXXwMjBwaQHczMfxn5gUK/iTZ/SRbzPjvEwOzZBGQ8Qsc1MzSpcBQ+EivxPUDiK9BtegAMTvJiYuR9NQ8WoCMWjxqMXYAEGAAUBIvbfhWcKoAAAAASUVORK5CYII='\n },\n {\n country: 'El Salvador',\n code: '503',\n iso: 'SV',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QkM4MTQxMzE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QkM4MTQxNDE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRCQzgxNDExMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRCQzgxNDEyMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/anEfAAAALNJREFUeNpiZFCYz0AbwMRAMzBqNP2MZvz//z+NjGYhWuU3Bob3YPV8DAycVHT1j2ePTlx/LG8ox3Tt6TdFydfS8voMDPxUCOt/f59VzLxy+ehCIbbpR46eqph2+O+fO9QJkP8MrB+/Xnom8H7FZd4bP39/+gkMHGHqpBBmZvHsENlzL0RW7bJ5/uZVdog8M4sMFVPInwfPNp299N1Ij1dRypOBgXUgEx/jaMk3ajReABBgAAmeREpJl5cdAAAAAElFTkSuQmCC'\n },\n {\n country: 'Equatorial Guinea',\n code: '240',\n iso: 'GQ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFRkMzOEFFNDE3NzgxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFRkMzOEFFNTE3NzgxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRCQzgxNDE1MTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRCQzgxNDE2MTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Tw5JAwAAAphJREFUeNq8lktPE1EUx/935jKlb0BCCYagEGJCdKE7ExMXfgE/gHFlaFwoK9mwUcQmbFyYmlA3xrgw0W9AQkI0xhijRNGqUay1D7AIQkceHTpzPXdaISMPKdje5Exm7pw7v/M/95yZYR2RcOZoe6xtuQC9aAKModrDT5blycwteYJj7TH/UgGoFVyB9hXJdBSTqTC8LoCrgBBVB0OBmgdcXwh+G5Pp2sEVCKLY8CkkU1J5b03g3D6uw0vKFQXoOXgHn2eBJYOclL9WUQ0oZDIuOzixV7ADnkAicZNgbtF3+onI6QewsGxCtUkW+bjBeT2stax9zbQ2WMUihPmLAlJ3l2XA4o4pG75I8BV8+jDAxMlGXDvjdIEoQCy+BuPNFLYPMCgAbzet81YimCmbpiTcRT3lSeNSdIJFxuZYKbllYy42/0NjV0cfsLMP+9irqRQjqNNnZ9sGLAdlFG7yaVEwEI2j99E3x+281oRnb8fx9N0o5uo8+yiubXeD4KbASsFyTHsCAVxuPQ9f8QKOd5yCYRrQVK3CdtpyB8gMgs0YuHLxCO6fO7R+KzOdRTz+EaveNWS1WUzE32BmOvcfFMvKNWmfeSv6+1vE8AlnpTaFWhGq96Cxuwsq56ij3mv2VVZYksI3QTntWX0bwu+jYvjuS8u414iFpaLdTpZlQXNp6AkE8T2Xox4WCIVC0PN5zBYK1P/KbsCqs50kVBZKsBPhFxGMjA2y+TzUuS3SIue0MiNhbZRqBUPlG0rdBO1C7/MhjIxfR97vh94cgFuYOz5B2/Mr8096GzoJegMxCfX58dMVgPoP6P4+ElJpg1QaIeggKfVVHVoCBw+XlRLUR1AtWHWonWpSqsceD/kpvXotlJZ/ffTfAgwAojL4tK6cs5UAAAAASUVORK5CYII='\n },\n {\n country: 'Eritrea',\n code: '291',\n iso: 'ER',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFRkMzOEFFODE3NzgxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFRkMzOEFFOTE3NzgxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVGQzM4QUU2MTc3ODExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVGQzM4QUU3MTc3ODExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Jln83QAABGBJREFUeNqcVstvG0Uc/mb26XWcOHHjhDSv5l2prcojFKkHkHpCnLhwiTgjxAWJG/wBiBtcKnFBHAD1wAFRKAcEQhyQEDRNLYU0TkAN0KaJm4cdr73enZ3lN7tpsfOGlVZ+jX/fN99jbDZ3evre99NhZm4ixK3xEIuDEn5nBHAAOwxtFQYrwJEXa34R4dhLrWcCz0VajBJhS5e4Myxxc5JITIWYJTKFUQmZjZKBVYYU3TYRYeothv91qVFsXb9UoccMk4AjGZwm/hV689akxG0i8CsRmVOKDJAiuSihvUsk1UheRv8B/DHwvg9oih1ytMVqJDw36V7oF7h9kYgoa4jUnYEQXj56xBRONbGGRXs9OA6YFkcBQ0iARlbAfCaALHPIFY72oRD6LxaSAEjscImFIYmfLhCJieRuyQiRSB+SkVZgApUEyo0IxrMC2fcrCIo6vM9t6JMC9owH/1sT229noHlAir6SborXo4zMUkZmVUbImsJYa0ZiRfy9wORzKGlnr7uwX2rAvW7D/8qE86qH2ic2WFeEttdcMM7gfpiCN2dC02SMe1xGbk7ttmY3Iy3AoeCwzvvovFFG7V0Hm1fb4Qw3CLgO8/kAGy9mY0V6ChsQSxq2ZjogPVJI3x8r5XEqJKmbiGwTyfkRCVVdvrdh5nkBSUMrV9MweYCua2XotFABaX30CB31j1LQL5Fx0eE5VlWrEaESyb9O9wblwSQil5d0vPG11QQsk+QaTxFwUaNnDBHJvvMeidcWwf/RQLhF4BQ7/2cduKfBeFLE605yYNAouE1EeHOrGUs2oU0H0BjJ4UgEBR3hXxp0IqT0U0CsgxY5EbReeXRnjiDCW046HkE+4GCUQuURp+FdyyWEqxyNGxaMESW1BkvJPErPF7WTHxu0zBRkndhCt1j5F5ipGeRB/RvqKQUmS96KhxSgl3Mwzgp0fFyOq9V2sQ7rzRoaHzgIlg1wLg/FMoRATmwS0F10h3/ChIel7hF8+fQre+pErEI6rVIv+Oj4bhPBNQtrM93IXHbBqQaRy9D+xTbCH0yUrnQlkhky2bTaURjQSbdDmlTj0FA/sNwzisWhCarRBBaGp7DSO4zV3BMHnFw0R0iSc8KH81YdvEzDzwmE8zoiEkPMa6h/moKscti0gwwB8RiIUowcVvKDWO4fw29nzmJpYJxOskmsdfYg0HSkvRoytR3Yvnf4Wa06LYl76lwdzjs1+J9ZaFw3YyAL2zFDF3nc7R3EUv84Fs5MoUi7+v30CNazeXimDcerI1vdjoFO/COReKSkq1Jz3VhLGoOV7kEUSboi7aYwegF/9I2glD0F37CQrruPd8QjeWTV9JbUHeDRYn48BlocbPXI102SzkW7W0Hfw1VwSUCMNY07uma6I2qZNErx0hpOoZgf2+fRA/JIaAZJpzxSQPepbq01kjEoO+bvSRPwWmf+fmH0SqbZo5LyyLDpB75GHpUxsP73PqCD50cH/904YN0/AgwA07gejJviOMwAAAAASUVORK5CYII='\n },\n {\n country: 'Estonia',\n code: '372',\n iso: 'EE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFRkMzOEFFQzE3NzgxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFRkMzOEFFRDE3NzgxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVGQzM4QUVBMTc3ODExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVGQzM4QUVCMTc3ODExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+r3fpugAAACxJREFUeNpitCo9wkAbwMRAMzBqNP2MHgWjYMAA4////0dz46jRA2I0QIABABDSBIkzwazwAAAAAElFTkSuQmCC'\n },\n {\n country: 'Ethiopia',\n code: '251',\n iso: 'ET',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozRjMwQjczRDE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozRjMwQjczRTE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVGQzM4QUVFMTc3ODExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNGMzBCNzNDMTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yFhTVwAAAsBJREFUeNrUlU1oE0EYhp/t7rbJJv1JMaVJbUuLP4XowVapIGIv/hzUIh4VqScRUQ+CevDkwYMHL4qg0oJXUSiK4E3QQ0V78eK/TdVG20hjbX43ye74xYDgpRsRKQ4MzM7Mzvu97/fONxrHti2yDM2Q3rgcwHUsUzP+/BcNVBkcW8YKdJ9MGdXxPwHWRBzlQi4hOpngj1aDKHyuBuGPyLxR3VMTcKrBe5eqgBbA9wmiO6Frr4x7ZEEHewpmHki/C/kOicWS7g1u7BqY9zaC5tDizjCujqPWnCTvNLOuYQKrzuZpdoeQ34IKRdjvXuRb3UpcpXsLqJIh5ZlTf4p3ySFWTzyU73mR6SsH2x4Q1HPcmN2HTYvIHWFy824GovclHa2eOdeceFh5saU+xeDkPRLpGH1Nk4TMFBsCbyQkxYt8D3OFCG8z6/H5Znk5uB1KAWFtLi112dWW3FBv5MhmozxL99Em3LY0PyNipLie3EfZNTnSfodF/zTvJIBXmbXMpntpt95TLrX+/T1WYqKAyLpQCnNzdj9p16okgIKwyrv1jM4N86XQJV7L4lSMWMPVMrygXWURDCSIBeK8tcPkZe51vpuj7bdlTeNpJoYtZmrSCnRZH4gE4ygn6EnJ0MOOB1s5wXI51z/KnsfDdBpxOsw5LsyMUBbGI+FxLMNmRu/k0sYz1HUUcHKNotHS52rJsz2erta1Eq12ghP+81weOgVFqVbFuKzJ4cYqCBQ5/OgqY4unpCx0iNymt6unemOeCVEiZdDJ0BZMcGXTYcb6D/BxRYhKmYim0hx6fovTT64x/z3Md6MZTXO87/HHrX01FVlH02lwikQWPpHzNRIP9Qonje6FaRpz35hrWUne9KG7Tm0VuFbgX+w1DV+5iFXM/XR2zvQLYINUIvVvX6cKgK2b2P7m3+b+q/c4vRzAPwQYAEGjBC1vMOsHAAAAAElFTkSuQmCC'\n },\n {\n country: 'Falkland Islands',\n code: '500',\n iso: 'FK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0YzMEI3NDIxNzc5MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0YzMEI3NDExNzc5MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQ0YxMEIyNURBNzM0NDZBNUFDQ0ZCMDM0M0E2RUFGQjkiIHN0UmVmOmRvY3VtZW50SUQ9IkNGMTBCMjVEQTczNDQ2QTVBQ0NGQjAzNDNBNkVBRkI5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oe8x+wAAA+dJREFUeNq0VV1MHFUYvffOnZnd2Z2dnYVdWaBAC8rWsqBESa0KbdKSRh+agqYJ6YNGjWmsTeShryb6ZOKzaW2JiSTGB6Ox2iaIP6VQK9BCKa2lrMDS/SngQrvL7s7uzNx7vVvbmvhiQuQ+zCSTfOc793znfANf6OkHm3MQ2LSD3vfMDh+Q+955OtTRFL1Hx+8K74alM1/0frjdWi6rjmJdF+FxT3y4KXriJS/S1FzB/k9QyBlTgI+sPb6zL9L7zO0Tu0I/HQufjOJiYaEILEvXnnSpe6+P9jSr6+66D1xN30TyMH5NVWXKiyEgNrNsBh/CMcawiDCGjD34go/tDqY9rTNyTpsc63xO7nyrfearxDTIbpHo6TDRJS/oPjC+Klhnr74qk599SiZvy2KpXhAAhZQwgBGklGKuAOIN+PsBNpzV64MFkizSGBVtwJwgzwAxUQDTFQEgpteYd5crQK7BJSTlwNudvSnZo1qFtdX883vKu3dXZrIkRaCEBV9AHRmK/vBdzOtzQQgZb5Y41BNZzueQ2NyxA49PaBLJCK7pU6fqD3aFXmyeuzCZtmG8sSX55x0sYlAUBdPkWpqmrXqdtdsCtVhxerxAkFfIvZHfFm2LPlIcH3XuCh9pP7zVajRurevSl9XPNgr5+k8/znYfPPfK/r2vrTZOjJ2ZWu8vfyrqrsCXxlykyEUVuLOoEMmSRCzS8ERdYjG6Rk1ZVBGC/0AfDzu6lr6VJ2OfTRe/15vODi3018bbgX05uvjm0YFmD3l9T9Whmvl9yanPR4f67BqKJQkwi1JdEht09+nBQfyH4lXdlUFNhEEkSAzy2ZYaYBiLf/LLld/DbcNqGY3Ew35zOCUvtr6RWpZDYnH+avK9K7cHuto6/DUW+tFJCgZ280HZFHLiTgZfbtmHjby2NaRWakuzFw3L1ID4N2thytE5WtW6tJINmBldlSTbml6jI6GdkTuGy8jqulLukWevLQ5cTk64ql0Skhi57wDBZMQfyOKc5dT8C3PzkuYZvJBKxtcVRSyx5l6p9kq2vY4ULh6ilHEHlTlBWXoJOHi9SGgJx+9T/CXrGoDwKHBPA0VzzNzMJi6mHwumzg9EK30gY9DJacOjKxDQjQedo2cLsGtLdHvs11tzat22HbnyNufJj1punjNVD4Fo49AMQAcrpCzfiLuFIKWmeT/K0CkQJMEgNgz4KI0bWmnUpeDz6YriitVUxRa+vpTLgBuVhwXEfGb6fvaFDUKXNKGsXC4CGSZTbC5BJdlRJmcgYbQ0CAA3zPrhPio9HBJwSKX8cJnYvy5HkYSY9f9uasY7oU39FWwe9F8CDAAMDrLSTxhgUgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Faroe Islands',\n code: '298',\n iso: 'FO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0YzMEI3NDYxNzc5MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0YzMEI3NDUxNzc5MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQTQwRERENTE2RDdEODBFM0EwRTg2QkI4NUIwMjMxMTQiIHN0UmVmOmRvY3VtZW50SUQ9IkE0MERERDUxNkQ3RDgwRTNBMEU4NkJCODVCMDIzMTE0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+qirpigAAAaZJREFUeNrsVM8rRFEUPufcNzOM8bMhiiEL/gAxUmxkQzayUChFSvkr/AMWUrKwkJI9O5ONhRT5uWChNKWxGIOeR71373EfjSbewlU2cu7m3Hfu+d65537ng1wux0E2tnQ82DR9AvEzqBpunBqaP2RDI/g1+4f+DC1EMDoict5nBtTLFLq0NBwYiAhSkvPQygoZV22NLx4RFTOqgqqQUKZy0c5EnZXWHOKS+prtx8jE8gGz8K/wTWh3YfXZdgWJwq8KVVd9befdlYNFui8d2Wtva+M+fUMmZMVTTCi+JwgXFqM7S+A5EHugqAKoUE4MbAkWAxv0OuQflp9y8lv59h9WvoNGuH5D5lr6bcezyILCTIZIQ3Uye5m83CWF+y3de/FWJ32LJjSxvNnREooyqA9onS8Qdh7L5OZ638U2gdyPN6cGRnorbcXff0WwNmbbAIu/BiZXzjPXNxJIc/opnekpf1mbaTfjtW27gQHXU0Tv92dEIV3zkfGkCgxoVfzorHZM3/DvKZ+eGvYFCt+o+CN5CoeD5YlFCJRWRY/02GueCGEK/SrAAFuW4Upd7P7AAAAAAElFTkSuQmCC'\n },\n {\n country: 'Fiji',\n code: '679',\n iso: 'FJ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjUyMkUxMDE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMjUyMkUxMTE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyNTIyRTBFMTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyNTIyRTBGMTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+scF2nwAAA6lJREFUeNrslH9oG2UYx9/3fiW55C7X/Lok7dKuxNqljii6abVzdXNQhqNanUzrwGq7yVxRJwMdgyEqYzgGKipDNgs6qdCOFf/QualU0ZVBdO2SJgWrTVuXn5fkkkvuktzlvLLgxL/GxvzLh+ePLy/v++HL8zzvA/s/mgC3JhBwywJ7I7XU2LXmi4z57bG5hTNTwGL9dLi997P3vt6++8mxNCiWHYyy31PZ3dMst3pfiFVKBYHE0Oty7X1/8ZXh8Sfiwcs7nUeP9TkeWJMpA70oFXA97WIOekuhZ5v29q87VGxlTyQT0aSVIq7TNXzqpVHJ1PAwU9kFlrHersKqtuWx7+DzA+DjE0bKsApkwUPdI8HSxAdnER2gOh1VBEBFRRVFNJJ5ikEkFUAtgYKitJgjhaIm6mhx7UbNY7YgRyWo8gWbHqkqtYzBxAh5PY5wNlZNcI1o1e4wAIYZGtybpBlKKsmkgV6I2hfiFRON6AGEKiZWUqw712jBpWq91vPdW7JRTgCIb0OHJZ0wFXlOBKmRUfrpPkdnu/lCKFWBl1gPcyVGspSKY2i1oj1LQcP6jLTvz7dkfzkV1VtliZgGH/r3jPmG3NJiHX1XiL1327YDj9/uoTh1cvpYjPa30neOfz7T88jE+q6hQYUKXgqfjw7zTRer9KMV0ULIkgKwfBH6nDNre2uZpDvI/eghSls43msjufK1CTm62bXHHsVGfjgyHn5nUc/JtlNDrBVDhYuRXc9885rf9vqOO15lsU2Ni+/+nPipbZ2I6CCoGgtFfoPr1H07LReUF49/O39466RfuT/kQ05PAbvxKho9vP+5X85PHSwyJ+kWxEq03GNpbmN4koy0ty21WAQ+fS4Sn7nb7+ju8BpLEYiVUAxT1YyV8k///vKhUfu5QCH1hy8obD8dn8vxgWYnVZXrrveFs7XOjYws9ZMQw91Akady8tnHdlDZ9OZNFOhxK7Va7Mrym5Oqjl3tEEukrNQgxBGcy8eiOrUBejgxXasmjeJshR+AqB4AqY52GwhQLGhKWKnSSotoLVMJTeSyCgAr7TbhhAnXbgia1rgrJ/F0oP22niMHOgAorh5s+cQhNdkuT/SScwFA6+roG/vEhAmVsvDLr0Jmq+yCSzPf+46bH/xtftZl1ikquCk0UGGDCQ+EZ8OK0jHQF0k3F7Koyyhqn+nahNzw9tF64DQQEoS/NjmNecFZK/+Te1Poq3XXFoqFz//dg/9oqf6P/lf8JcAAQ7yON3YEhEoAAAAASUVORK5CYII='\n },\n {\n country: 'Finland',\n code: '358',\n iso: 'FI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjUyMkUxNDE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMjUyMkUxNTE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyNTIyRTEyMTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyNTIyRTEzMTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FFmzagAAAQ5JREFUeNpi/A8EDAwMnxlwAJO4WQxn915jYJAWhAg8eMPgE2PFsLkvkoESwAKleRnoDJgYBgiMWjx4LGZkZMQiRrnFjIFlK/9jk2BmYmRgYmJi2HXiDsOHV8DcxskKkfj2k0FCVpjB2UyJ4fvPPwyQ3EiGxQwi2dh1ggwEycgIMTBwszMw/PkLEWdlZmD4+J2B4ek7oOuYQSaQabFpw/8RlbhYQEUg/qAGFpVcaEH9CRTUH0AJgeygZnELN2fAlbhAKfrIxUcMn959YWBghyYuoKWikgIMlu66DD9//SU/cf0noNM0fjbDmT1XUSoJ31grhk29kbSNY2zu+v9/OJdcoxZTLx9DwGd6WwwQYAA8jFV5xASNJwAAAABJRU5ErkJggg=='\n },\n {\n country: 'France',\n code: '33',\n iso: 'FR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjUyMkUxODE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDQjc4RjdFMDE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyNTIyRTE2MTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyNTIyRTE3MTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NYcTvAAAADBJREFUeNpiZFCYz4Ab/L+fgEf2q7YTHlkmBpqBUaNHjR41etToUaNHjaad0QABBgAMOgSHJZqdhAAAAABJRU5ErkJggg=='\n },\n {\n country: 'French Polynesia',\n code: '689',\n iso: 'PF',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0I3OEY3RTgxNzc5MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0I3OEY3RTcxNzc5MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNjlGNzM1RDc4ODNGRUI1QUNGNDFCRDA4MDk5RUM0M0EiIHN0UmVmOmRvY3VtZW50SUQ9IjY5RjczNUQ3ODgzRkVCNUFDRjQxQkQwODA5OUVDNDNBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++fOASwAAAW5JREFUeNpi3MugzEAbwMRAMzBqNBpg/P//PxHKbjMwrDyd8VIyVkDGWpiBwYOBQYOwpp+/fv3HC37/Wv3jn+S3vxK7mCXPx6r/+S/17af4r98LCej6/YeJAa+r//y5/fNHPzOjKAeTyf+/Ak8Xv2dgUOZgk/j1vfff3ztgJbi0/8cX1kBLWVjWcfOe+nmX59lZCY1+SZlkvWeXFV+fEefmvczEvIoBb1iy4I0IhgtXJFgFi9gPfn/z3IC/Opmb4e/DpZ8E7+7+p2b587O8vPR/kCIyjAZq2nHE6twT5xDRhzK7Jq75o/BbTclv9aIr3Cp7F2faSX8i32ggCPfl5zt0//5Pdg5LO3aGtx/ec/ww0n/HLy/Dcd3GRAWPuSCX/fr5k5WNDY+K42dvH7v08reIOP/fz5oinBvvfhNk/G0ozuHrboBH198/f4hK108ZGBZsf7j/1D1+Hk4uLs6SBH19TiKyzGjJN2o0XgAQYACA4seGjOuQWAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Gabon',\n code: '241',\n iso: 'GA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozOUMzNjM2MDE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozOUMzNjM2MTE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM5QzM2MzVFMTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM5QzM2MzVGMTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+XUVjwgAAADFJREFUeNpiZJiXwEAbwMRAMzBq9LAwmvHPRbHRABk1ekCMZrFbsm40QEaNxg0AAgwAqCcEmp2Ti78AAAAASUVORK5CYII='\n },\n {\n country: 'Gambia',\n code: '220',\n iso: 'GM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozOUMzNjM2NDE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozOUMzNjM2NTE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM5QzM2MzYyMTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM5QzM2MzYzMTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+I9VNdgAAAKpJREFUeNpiPCeo9pSBgUEKiD8z0AfwAvEzFiiDAYmmi+VMDAMERp7FLD/e3x0Qixn/11R/ANL8QPyPjqH8kfHsy//vgAxBIP5Dr1AG4veMDLxtA+JjFlZOZqYBSGhMLExMjAOTqn+++fEfyv5PrwQNsovx5tV/74EMASD+SyeLmYH4A8vZb50Dk48lE1g+0bmCAIHPLIriKqOVxDCvnaBNHl46N30+AwQYACKRKLCtBsdeAAAAAElFTkSuQmCC'\n },\n {\n country: 'Georgia',\n code: '995',\n iso: 'GE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2RjU5RkIzNTE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2RjU5RkIzNjE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM5QzM2MzY2MTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGNTlGQjM0MTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+6i4DLgAAAqBJREFUeNqkVllPE1EYPXfu1ASwIqEErCBRQ2Ki8UXjg5IQE/UJWfQXuP0+EzHGWPRF9MEHDRXColIBbbSWFlptO53l85uFhulMZVpPMpm7nu/ebzm5goi+A0jyV0YEULWG/IWbMDYy3JOQQwNILKWg9PchIuL8ZVWvgQN/wLIA0wQUhbklOoJpgZhD2PulEjCuhO75uo38lSkYq1/QKcxvWeyM34WxvhE6HzCspRZQuH0P+soSijMPoT1JtW1Ue/EahUnmWE6jOP0A2tz84Yah66BKDUJIJ56k6e1flzlQqULA46iHcHBylagJxqcM5c5dJ/3javMUWZUq5c6MUxYn+TtFP4cukZkvBNYZmS36dfEW6cvrFIKSGnZgeXYUA5ypEMrhtxMidFiODiPx/lnLeTXgBiInm0VMBRmc2brZ2CyOxFy32WvYkc44t6luuFv3uXwcPKcbgQOI3NhEyVdKh92OS80q7LrlZvfZgNJ3nK8g3TKMhrLIIhndMMhxv9LLYqFIt28fZI8PQkZorrYyrNrqEx10gJyaikN13R8Rqhw+Ed3ufky53Bpu5TGZHHRVjig6lbVb8rva4s0xCdHTDfpTdRND8ZKrNw7rRx47V2dgZDZ5gLV6MIH+t48hT4+A9sp+jm7mqPg5Gq62yUKK2zXU0xXMxt6j3hi567gtjsUbB/OFxQrnQKtsMDPb2Lk8CWPlc4SwU1O8PY5N1uprszDWomr1/BsUpu+jvryI4p1HrLMv21bM+vwCilPMkf6A4izr/dNXEW5cY23d+83eiTl/W2vbBdU0J97/5Gip1WMTpKdXOtfqjS3Knb9B+tJaG1rNGZpYfO5IXqeQI0kk3s05Mhtax96TJ+57+vCrQXRJ/BdYQoUqWz19yn8FGABqxdXVw6EGDQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Germany',\n code: '49',\n iso: 'DE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2RjU5RkIzOTE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2RjU5RkIzQTE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZGNTlGQjM3MTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGNTlGQjM4MTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+aBEH3AAAAChJREFUeNpiYBgFo2CAAOMNmhnNxDBq9KjReBPf/3OjATJqNB4AEGAA+2UCvgLMJf0AAAAASUVORK5CYII='\n },\n {\n country: 'Ghana',\n code: '233',\n iso: 'GH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2RjU5RkIzRDE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2RjU5RkIzRTE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZGNTlGQjNCMTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGNTlGQjNDMTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+nJIV5AAAAbxJREFUeNrsVstOwkAUPdMOCEJ5BEwMiS4wwbhRP8GNxGj8AF240K07FyZ+gq78A42J8RP8CMJKdia68MECQcqzls542xBkowzEoIk2venttDPn3Dl37gzLxzOPAFJkNYznMsieeNdB33Ms4Bp+6Pp7wNyq6EN3EmQBjXl+W8iR2POp9bbT9Z1hOvp8BEy3/SaHxXQjdZgsJqvkRMi+HkF2hdEJLaHj4qwBm6ju7oWAF3Ioco86Gwjs/mFyUdJYX8PnyUCgrYaEbjD4ExyX5xZMUxJwFHZZwCb6kyEGIZSiZlyqTnCQeDWBrf0qcoUOylUBh0BmU89YzOi4Oo6S8AyyJr83qwVFG0wynByEEY8w1JsSrbZEKABqMxCe1iHq6nprrmQq5jEsS6TXgshuBHoDrKwGsLAZpG8CmlQbyzWOSC8tB9MlDZsFC9V8A/fXYRj0fnhURymnI5mmZFWbZjeXJNs5Xa6QE1NZThN+hrsHB4kYw9I899pubjsolgTmZjgstaXlLqdXhu2sqbxBeJWDCBMBmOKj3NsESHoPUUlqHHFrtJqX6PP9rgz/m8Rv3Z26Rx5jzEef2rsAAwA2l4mM8iP6VQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Gibraltar',\n code: '350',\n iso: 'GI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDdFMDYwMzMxNzdBMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDdFMDYwMzIxNzdBMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iREFEM0ZBNDBFM0ZFNjU4NDVGNUVEQUQwMDAxODNFNEIiIHN0UmVmOmRvY3VtZW50SUQ9IkRBRDNGQTQwRTNGRTY1ODQ1RjVFREFEMDAwMTgzRTRCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+XVIZMQAAAslJREFUeNq0VGtLFGEUPu9lZnfVHXddXV1NvKQZmeEG2QWMoiyIoCT/gFkGUZ/7Af4CwQ8JRRH2pT5I9SFSAqFPSTco8pK7Re6uu7q6V2dvM+/bpG142VnF7OEwDMOZ55z3Oed9kMfjEUWRMQa7B40wFApRs9ksSRLsNhKJBEYIwX8AIQRvJ4/viJ1uJyng/v5yoJ9Yik3U2Hn7libiv1IvuN3vHj2ke6pJkfT8ydP3Xt/Rg831h5rl+YBvYvr89V7LvsZ83NFolOsg4PO1mwxlAMNDj59dvnQH4MXV7qHBuw6AY5IUm1/g+vD7/fm0NtlLL9oqbmpax8Ihl3s/gPzTUyIIPQCdVVVKWenKGHQHgbSuzbm0UwEGz52tHn1dSIxjdmvNsnw4nnhbbPaKuH0hQlh6/IizZ+yNvaAw93gCAV2tCcA3Ig4D1FDsWgx+QuwjEWbkeCSu+ESDL5m2M9DjXUU+QTpOntKeCldqAUsMLYNq49AEFHElA9DVeWXnG+L5MH4BIAJ0XMAtCmpUYNJAFc4aM6xG031qMj81RpD7NgZmpmZHXu0FaEonS5fj9Uq6vpCZ5ThLyAeUVC2Aa3Qk6pnVJUaIKouLEAwqjK+phnBlhXfwfofZWtB2nKqqk6ElY8LbEO/6XJIhVHMyK0F1Xyfm+gekvj51bo6vdzdqEJRYFLmudZN7DzZskHYQYrGgcoeqKhxYUZK5HeJEHXa6UZU/GTdirSmEMfMHIBLe/K+mcrD3BgXGtGVQNpkGC4eRFtnsghBFYFCnZTXK0RoWPS/mXMEEGdFKEl4fqwX4yrsMwkKlYGmgjihKZL/z7IZtiD9sRMAcbeFrJu10BvzljERsmAHb0oL/JlCiZmi2VE5o19KWSp0YCsgVv1NEfRHWbjTKpGjM2Qo/ToO9XM+WtT4FBtYlZhCFUBtHKtvSvkk4lGpp/SXAACbxTzWqruOZAAAAAElFTkSuQmCC'\n },\n {\n country: 'Greece',\n code: '30',\n iso: 'GR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEN0UwNjAzNjE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEN0UwNjAzNzE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ3RTA2MDM0MTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ3RTA2MDM1MTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KGW0OAAAAblJREFUeNrEVL9LAmEYfj79UgqtiCQoHIUobHAwiBrdG8JBqKUpAgkaoq1F/4aG9E8wxLHJVqmla8ghaDB/QA13lVh6X+99d6lIRHRH98DDvd9x3PM+74+PASc1APNEDWgim03h+HgdxeIdNjdP6fUk0QMTOlHAJoLER24FGHp+A2YJtondoUT+Ls5/992HFM/nU1hdXUCz+WpXGNwo7wA1CGH+VNc7RkUslx/SZTw+h6WlkKRdsEzmUv0qc6v1imRyGWtrYVSrT8jlrhEM+uH1MkqIUmh30evpYIzZ1dWYEEL9ub8DRKOHUJQrimw71nipVO2fVLVD5VxAJDKDRuMF5fIDxsc5fD6vdByLbSAUWkEg4IMDOCDHB8JkUmQyF8JAoXBD5x1imrhH3BeKUhcOQeXmnn6hTf3zy8jjMQZ+2trjnpzqev0Ni4sCtZrqxFR3R9ZGl5EwaivPg71NJM7gFLh5OQxfFMPwWO/YSGLM/jrd3rb6U93pdBEOT2F2dgKa9o77+2dw7oX97bG5Tk4K8+3tc7gBKuKWO47T6V13HLvW40rl0a0eH7njGBjTLGHtn0Sl1qcAAwDRS+VdNgkmcAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Greenland',\n code: '299',\n iso: 'GL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDcxODhGMUMxNzdCMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDdFMDYwM0ExNzdBMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNTkxNDkxNjg0Qzg2MzI5QzUyMjkyQjk5NEQ3QkI1QkQiIHN0UmVmOmRvY3VtZW50SUQ9IjU5MTQ5MTY4NEM4NjMyOUM1MjI5MkI5OTREN0JCNUJEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jNGGgQAAAtNJREFUeNq0VU1rE1EUve9jkkltmqS2IU2tQhXB0FoVArYLQbDFgi1uFP0B4lYEl+KfEBHc66IFhRYbUYTqQkEpLdovTDc6adO0NWY6MZP5eM83KU1tkknjwsswi3fnnXfuufe8QZxz+D+B3RK89FQEq7XoFtQtIVCMrYw2+Vyfm8VaDlqaaW/cP3y1Kdy+ezQ6AJvXCsOylAf3lo/65hEsEfjmhUUMCwDJrubU/btmURff2IzXD1SttWUUlSsX9dcfpKhMggEhmvMNEgE8m9VXde+lgY7JNz6vrz73SmgbQBkd1icS3p4OZCPmCPNXiQgwRsbXNenyhWNT0/if2ph99LAwkfCcCnMHlVURAbEuxcJG4t3Wk8e7ojcGrU2OU1lgUHAbSkccQn3we+yZWTrOVRDRjHKysJJU4ieJ2NwkH9B7vQgFiHz+cijW4zp8hmFIQnDMEZHzqylb9uDWECdS/blCzDIz6WJ6VY71ILtYXSFjiK4NxR0NkW0rGc/gSLeyzVUNbPMAaEIh2Jq5cyt7+ybu7KyQxZGMc2osLhBHE8Y2uBX5RLGEg6EG/cZmZ1nyJ+SyFdAOUwSUtLUR7nTe49fNlWVtbqal71wjuNr8nJlcJN0B8PoqWomckzjeGx/ZZ6eLhZcvGqS8PfaUpfJY9ruNCErGIjusS0w00+Ltifeh02fdfCY8RQDUpYX1wX4CJvIHa42249z9cx0KIDW/eWM0n0m5cRG4+bSyfm2Y/1Jx6HBNy/CyZfaSpi2dOCKtKD/6z2y+nareZAHkpl+tD8Rh+bt0vJNbVm0pyoJgxzS8XIloLVM2zJxBh877R657e/u4P0BVtTA/o02Mm4mPJCiRrjAYtvvd7QiyX+tyOZhgy7DSm5bKIYC4j+CCDTlO/YCibUC9yLbq3tcONC1z3VcOY4ApjUZoVKhgIsZ4M4YOygGLPWCzOr+nHcuI1x8BBgBBy38D0GVnSQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Grenada',\n code: '1-473',\n iso: 'GD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNzE4OEYxRjE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowNzE4OEYyMDE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA3MTg4RjFEMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA3MTg4RjFFMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+RYghnAAAA/BJREFUeNrUVVtsFGUU/v6ZnZ2ZvU13S+n26gJ7aQPYEhKJtOqDIU0IJPhEY0I0RhMNRkHwmhh5UNPYENQ+qvHBRHwzPlCiiWhskAQJbi2l28u2DWxLd7tAd7ezO7M7M7//LKWm3PSFB0+yD3N2/u985zvff4Zc9EfxcILDQwsH+1V4ElTLZoksQAIoZRlw0bfynAvjx3wOWPgPGWKjkXpogkSveZyCSQkTRNKseIsn1KM+7svk8+4l3ckKsH4IB2pWCbBzFh6UoURxVhTf8vli3dSP3m2zBU3ibNahUunD1o2ndrV+1PjnwS1TPjEN3YOlagEX/afDEmGJOzOMbk0F0jLK8pej4bcXtndPzD0zlklIbhvaAmk2tdyw+9XBrhONkaOPTrzcPg1PDjmPmRZA6L21tAjvNODLIyV9dXlL/0h0PFWPJkeroVG7qarW7ChTBi4NtcVkVnnldPdnI+F3Osafa5vhvSpyXrPMw0H5AOMA8waHCuEFE7UFaM6T8VjfcOyvKw0QKwjk4JYZFF0dIwuRs6ALyHvAsLzFxGLg+cEnT1yKvNuZ2B+b4f0mJE9hSKAG8T1VRlmFRr4fDX8cj12YbYJgoDZnN8f4UbLGISzSmtiy/npEKZyZbIZUsgtQMjxf13s1OHB505u7E12fqJnvJOae+n3c+cOB/tNtv061gKM207tA10BPFlzdLelvHzvz+c87Xh/qgKzbx5RlWNzZTOjssXXxX37b+vVNyJh6VtmT3Ukjfig3wHq9F+iaKyPyVsYjYhAdo0toKjPElf8ZI55C5wydcH6Lq7NMA1Tl4LDuO947WLf51IF4eN/i7p/m/WikECx7uAU3ykJHaP7Ie2MbupYv7a1lgrQcVU8+fe74UPuFZFVlJt0tQe4H7XaYyAk/qI+gQYNuoOhi029rzhzZOvFiexI1Opq9pJ7AQM2uSq883RtIfTO+sX84OpIKwlmxC6Dq+ruhK8z5oglnETkZRW9zQ5aZ7+DmJNxF291zMjOfv0e3zZfhkK3hReNAZ+JAbOaLsU198dj03Hq4dPtlshaaPfKsqaKIRSlYn31jZ/y1zUlRKTAvmln/itwUZvr2AHhqGjyu1/DOykvbR1+Izg6Mho+PRFIL6yBzDIqsQrM1cNUhuTu193uGmQIOKQfLjZsKZMq7jOouqs579aKvZorsqMIH9UNtFw/tnfx0JPzB4rYr5ySuKo29nmTN+iPkC+1Rn1CuacuubEmCxZhWr6llc7SBTPKgDEcCku7yqr8XgpOnPDuS+ZLE2dC3lqpVwgLkqjPshRk5XOBEOt7nE26v0H/NEJAGaA7JmveIK0v1//eV+VuAAQAuXtAy981G1AAAAABJRU5ErkJggg=='\n },\n {\n country: 'Guam',\n code: '1-671',\n iso: 'GU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjBFNzZFM0QxNzdCMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjBFNzZFM0MxNzdCMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iODAwMDg1MDRFMkQxOTdFNEIwOTkxMTdCQ0ZCNzg0NTYiIHN0UmVmOmRvY3VtZW50SUQ9IjgwMDA4NTA0RTJEMTk3RTRCMDk5MTE3QkNGQjc4NDU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+wSFE3QAAAhxJREFUeNq0lU1rE1EUhs+9dyaZTjqZVFPTRChElEJUqAGhHyAuqrSgLsSFiCsXXblwqSJuXApu3PgTRKU7Feqi+NVNQaulC0tqbUhqOyGTmSRNM8nce5z4AzKBSc/6npfnvLznXLI6eTUprGHXBiJDP4oI15SG8rIuJUX1fXh8RT9FxX5fpAVTM87W9cZP6Zgw3w2MvTo6D+2CTxMSIOivLSen7Nfz+58pHFpJAqS4Z0W7SNp7Xd4xABcUIEChiV3RETHBay0i9USNFFyMnK5tTlrrgqvIeqP2EQUPE9GNpO3c3dmBmBp1F9ZWtDMgH4Cf7bQHZEWvGLezjZfn+KOTpVsTzXStgHTQt9FHmnjITbiQsNjl878No174m5+bmRltQbWJQQ0hFOzy2LgepfEbViYWj0RF1BwN0dyuGEwA8gCGIBA1vJUvHthGJtYq/dgofMszuyQpUmekINSdKA2NbPz6nvn0cDGcWvxSuTmxWS7OutpFgnvBvPbIWvWdI5fSiuHw5WdPPr6YW1uqXRHoIIigCSHQKEfYvaXnD064d2K700/fbNMklY3AhvzfRCJK1ePJx1/vi7e4zM4S7Q9yifSckK7b6+2fvPOhkQVZZqFtzqkvckeaomt6+Q+lwHe9FE/Oi9uIN0bXy5cymMYIP8zLV2HRaSfnmAuU2336CrRsc90iKlmdujbMq7pbBSL1CZfXacRg+j8BBgALAtvzf7DSbgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Guatemala',\n code: '502',\n iso: 'GT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjBFNzZFNDExNzdCMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjBFNzZFNDAxNzdCMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iODBCNDU1NDY3QzIxOTc2OTNGMUNENjM0NTMwOTgyQkUiIHN0UmVmOmRvY3VtZW50SUQ9IjgwQjQ1NTQ2N0MyMTk3NjkzRjFDRDYzNDUzMDk4MkJFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+T8VYKgAAAklJREFUeNpidF77kOn/v3+MjAxIgJHh/4Mv/0NV2NuspBhwgwNPPubsfyPKxcKMohuk/T8jAxMDw/9/jOh6/jMwMjH8Y/zPQAgwMv7/hykK1sfI8p/xL+N/JigXSRYizUAYMGLoBbv6P9Bx/4nRTxqAWMVEnNPQtREDiDL6719QgG44dfjAtQuMIO7ff//+EWE0I06zmZiAFjPMWbdg5rqFQMbreydyasN+/GO4cuNK7ZQ2oAg7GxvuGPjPhMeD3JxcDAx/lu5YziMg//nutFSbXU1RgqktZb+ZWLcf33rn8hFhQQ5cMQsMORY8PhLg4T1yYjMjK3OcqxMDg+L7PTeC+NRYnKR+Mf8y1TPbcmZXqK4NIyMuPzMy4UlTrMwMT9+95OBgBXLffeR49/URw+vp3N9WfvnBqqes++Hjhx+/GMgxGhhQ337+NVE1ev/u06tPv15dufiem+uvX8H5Z5yvXt05deWMopj0f0IpBCf4+OWTsqqRpqqGk7vKdyY+E5dlX9lSv/7VntVb8+rZs/io/C/fGPAkFXzR+P3nDyDZGFpw7+7j6CqPR88eHjq3a9LksitnrqT7xjEwcHz4+gmPy1gIpmpZVfWTp64s37r0zbt37H8ZC7IbjLVMvay9COYfFqb/wFKIQBbTVdDWzW6DsF2tXYnN6P9JyLqkAWA0/qOd0bQCLH8YmZmwlat/gaUQIYv/MTL9YWD5x8CMWYAApVg4GX4zMvz7j27Kf47//9gYWAi4699vTsZvrIwcLKgRBjQaCAECDAAobt+WaLkKAQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Guinea',\n code: '224',\n iso: 'GN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MEU3NkU0NDE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MEU3NkU0NTE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYwRTc2RTQyMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjYwRTc2RTQzMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+S1dzKQAAAJpJREFUeNpiPCeo9pSBgUEKiD8zYAF/PzIyskr8+6u55tN/Nql/LED+f2zqmFl+M375xfFX4ZQjw9tvPMwMrL+wqgMCXiB+xgJlMCDR2MA/KM3EgB/8h2JC6ngJKUA3lBpqiPIBzcCoxaMWj1o8avGoxaMWD22LGamkBgxYoE0eXlxNH6hhf6GVPAueyh6mDtwSwqMObBdAgAEADjElH4U24o0AAAAASUVORK5CYII='\n },\n {\n country: 'Guinea-Bissau',\n code: '245',\n iso: 'GW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQTVBODZCRDE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQTVBODZCRTE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYwRTc2RTQ2MTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFBNUE4NkJDMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NfA1TgAAAaZJREFUeNrslbtKA0EUhv+5uLlq1ChewBvElD6AhfgOvoKFjZVvYClYpLDVh7AQC59ASGOh4CUiGIKGBI2S7GVmPLMSBCvjbtTCA2f3LMPwzX8us6w8UrwHMIgvmNGA/8RNYfdF5dfbUt0KfNck+TR+wTh5q8c9hjyIA4zfUvx3wDaXCcYgwML4x8C8S6dH38E6bHGGHBOY5w72Ow3cKA8LwkGK8XA9TpPdIEmpfdQBKkpjgkuU2nV4pLcoE7hULgo8AZe+NR0uyzWDDCCkiQ62aodJbanziCOvRfNisEfwY4q3M5ME4/C0orobNJRQOc8x2hMsMrhlFEaZxMHQLJabVzhXnTC9O5kprDpZXFPabV3mSPfm3Yw5OR02rOZHV2w72Cc1FQLY90Yqj0P3GWd0gBVkYaVZd2it6juy0U4LdNzo4Hc4cEH13EqPE3gMa84zykEbdf1xUSnCDwllMEBqZRAP+In+AksyGdb61H9FQSSwSM1VI7AD1p+u7s6WZwweTBA2W5Pqbgc5buj/Xf3j4MEe97DPvfHd5qr2CDfhVEWEvwkwALDLl6s6AZ8RAAAAAElFTkSuQmCC'\n },\n {\n country: 'Guyana',\n code: '592',\n iso: 'GY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQTVBODZDMTE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQTVBODZDMjE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFBNUE4NkJGMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFBNUE4NkMwMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jfKcDAAABN5JREFUeNq0ln1o1HUcx1+/e9jtbnO33eaUXDl1DqVRmYqohSZWKqhFBCb9WZhgiQhJkA+RFEmBf1RahBFSQU8gtc25ypGz6XyYJGqKc5t7OG+7290ebw939+v9u5umsZalfeEHP+73+X4/78/78/68v2e8XLW321nkYd+xQ0SazgLD4M4G1ziw2cE0+T+WMTuv2Hxqx2bWrp1Ng2eYvbX1VLXUEgydhIEQpGelgNiddxWE8R055hbCMCOP/btWM2/lE/p5GuVX0ygLtFLeWkO9vwb6m8GZLiAC4XRbW/X8dyBGMK/EdMQTvB1u5F36mb8cvt3pI//hlfq8BLqmUt2bxsFgN4faznEiIBDh8/oWFxO5akmmTjH+NRvGiZzppgsbxXYXl6PDbO4LUGF0sn4TfLhRERN1cMdcyFiqSmfRMHgPlZ0xfmi9wM8tR+gL1kGsR0x4U225zZYYp3OKk1Ex0Tbe5qDAcPK1qtvENcyZA7y/w82zKyS4SAz8CvQ9CLkrlGQBweh4fgwnKA34OdJ2kqaOWuhtgTQPeHwC4frbdtxIzEiI9Uy1p2GKyXfCIXYRYP7TsH+rj2mz0uBikFhoCIdeySwQkMfExiLMxAx+7fNS1h6ivLmWOv9RtemykttS4kzLUDbbDTZuSXx9xZXeraDpQnyub5AN/dc4nt7Fq1vdvPWCKM3SmF0aIhaLYiR6sSe0yZ2RApG9TKeWcLbHTXlogAr/RY5dO05/8Ixo7VNcTrIloya+viz6J9qcTDAcI/T7MUsG+eyNbFasVqKWOLFgAsNpiWtQGyIYYspmseGdAzmPSxdz6RiezE8RO6X+K1RerSQggY6Z2FqJkcEpFP02HbonHGG7ACxabOfjnV4KC+wkuhI3d08gpIdEt7xoGLvIIWNiCohbInUu4eJQgeT8T+ob6btVvUf0e7Fb3kZXl0nC+jDaCdZ4WTuNEeRxqX44qJeoeu3GJ1d0jJXUSpYnmieJ7tLOXjYl/HQVRfny9SzWPCdLDcSJt+vkJNWCE5cRxUzs1qneB0T1Ys35PDqHJlPTO47yej8VjV9w2V89emILpFNwZzhcNA/EWNXTTIXc7aXXXOzZMAHytO3SMLGhAUV1YwyocJdKz31EAtOoOebQGM2jIhilzF/P4dbP6QlJXEPh1B0gld+S2EwmNZksdbjF4e6OcLKfxUsTnN6Ry6yFssz6CLFTfTjUO0eGFOpbDePkcEjJ0XzKW3r1nKGq9RM53IURh1NchswlM+fGXN9iID7RWijnKQv1sVG0Bu/r573tbl58RmIZEJVNCswuUmXy84zFRCWSqoiNUs3u4bY6zgeOQ7c1u6rHkzumpzssWq2ySxzptIjWtZ1tfEWQNevgU9lm+hQh7pinl0fh/jmifhJHe1yUXmqgsvkbAu1yq8FgyrMt2/RN+Uui0YfGca+EkylUuzua2KZ+zVwIDbvSKVyg2wL5c08Jvzm9VAS6KG37neq2A9LQuT/NwGNRmHWTP9/eZWEctOWbWxLthAuz+OjN5Sx7/kn9XER1a5ZupAhlupvr2n4RhVdIDqXlwUkKbXd2LZZ4CsxV2zazft0SAt4Ye0828n19DYHOUxo7fyqJlUwKv6t/BF45+EF3zkP57Ks9RPMV64rrTVGY/OvjuKOqxlp/CDAALJ7xfKNmRxYAAAAASUVORK5CYII='\n },\n {\n country: 'Haiti',\n code: '509',\n iso: 'HT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQTVBODZDNTE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQTVBODZDNjE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFBNUE4NkMzMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFBNUE4NkM0MTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vIrdngAAAb5JREFUeNrslT1IHFEQx39vbzeunkYvIRH8QgJBBAXNR5EQkIASREhlomArVulSWVjY2CmiWKuVBLGwEYuASIrAhigkhSFgkDsQDWjirbruebfrrFZW9wTJEXDgLcwyzO/NvP+8p6ifTlMAM2WVFQJsUCC7Af9TcenbrRikXPD8yBFZ3oUj8YNDsMWvE51mgmsGh7L2PF501dP4MMGRf8LaxjrVVbU8uN/Ez19/Wf2YglLZgNIBK1sTLOS9E971t9DzqgqP7/SOOiy875QkjSyu7LL6ISngIgHnJ5vxQPP+CKKSXexYluTWDjPz20wMDDI55fL29Q6WkSNO1PYoOD9YfU48D/XAAd5BkpfOMrPZewy39fOlO82juVJGnGn6rD+stHZQXF4jks2vWbNas2IlYJMMm1vbpN/8oH3MYWg9Tue4y+FTh9RSggZ8crkDiY7lz/et4olWxUqibnsBy88q+NpsURnG8Q0TK8yyrzweb4S0f/qNaytCjTPWBkeWMxQl+8fY5xK3pAMGWTnUUDrhyde/U4YRhNc/xzFJmikv5vTy3/NNRDhd6NUvkGiq1MVI39zV/9Uj4RYCfCbAAH4eks60LgqAAAAAAElFTkSuQmCC'\n },\n {\n country: 'Honduras',\n code: '504',\n iso: 'HN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxRkM3N0M3QTE3N0MxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5NEM5MDFFMjE3N0MxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFGQzc3Qzc4MTc3QzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFGQzc3Qzc5MTc3QzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++ppqvgAAALNJREFUeNpiZHDfxUAbwMRAMzBqNP2MZvz///8AuPrS1Q/4NV+98RGf9H8c4Pj1D3J+e68++IxLwdM3P+T9924+8QqXAnwB8vXvf25mRji3ZuGd7z/+9qSpM8LEvvz5z83CyIhDOwseDyGbC3TA1x9/P3/7C3QIXJSHhZGcADlz66NmxMEbj7/iUvDi3U/tqIM7z77BpQCn0UCw4/Tr/3jB9lP4FNAw8TGOlnyjRuMFAAEGAEq7Jwn/ToVjAAAAAElFTkSuQmCC'\n },\n {\n country: 'Hong Kong',\n code: '852',\n iso: 'HK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTRDOTAxRTYxNzdDMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTRDOTAxRTUxNzdDMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iOEM1NEUwNEVGRUE1NkNERDAwQzk2MEExNjM3RDQ2OTEiIHN0UmVmOmRvY3VtZW50SUQ9IjhDNTRFMDRFRkVBNTZDREQwMEM5NjBBMTYzN0Q0NjkxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+OzkpswAAAc9JREFUeNrEVUlLw0AUnknatGqhShGKIErVizfBsygVL+JFRFC8uJw9KOJycbnpz3ABF9qKeKwe3ZeT2NbisQoqNmm2mkyeY7RQEJO6FIePxzCZfPPlzfdesIGKNZiiMSNH4VtxbgJ/q5ry0tTpNJaUIoz/klpDSO3rVUOhjMdD8r7AahhfA3KgYuWuTgkgQ1FTTcxFww5Wz3QTYErOJm6Ex0cRQGtroSskd7bF64zFjand3dmJcb2jQ+c4cp9ifT60vS073crWpnZyLA6NaNaZsThWGRyWAUReyKys8fML4u5OOtgmAPA0Lbyo0ri6rDMM/EA1ioQILxDOhQf6iaJoo6Pg4F4mp1yRCJZlfWODRKPgdH7P1+/OdabTEGzFm1vg9RqNjcZ9qozBantQiSVKpmfYeMxtSoMfmI9FyH1+ydTVG3OzXp53rK3rTc0efxU3PQkNAWxu+JX5VH+llExKD09v5ltaVI4OhNSdfHur2znEhlqpKBfOz+hlPgNIh4fZQEDa36MWVOJxW2q7HsKy6PTCkRGMqysYH2NUjfT0osQ1Gw7/qhrzC4d8zBnqZamu9sXlsi1IbBTQmCAvFt787JsqfIr//ysoIvWrAAMA7mZQmc9OmukAAAAASUVORK5CYII='\n },\n {\n country: 'Hungary',\n code: '36',\n iso: 'HU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5NEM5MDFFOTE3N0MxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5NEM5MDFFQTE3N0MxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk0QzkwMUU3MTc3QzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk0QzkwMUU4MTc3QzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+JU411wAAAFRJREFUeNpivKSs84lhAAALEPMOhMVMDAMERp7FjKcZuP4PiMX3kzMHxuL/QDBq8ajFw8pilvgd3QNTgDBUqQ+MjxmE5UcrieFtMagF8nkgLAYIMACetyMUbe9cBgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Iceland',\n code: '354',\n iso: 'IS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEUwNDkwODE3N0QxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEUwNDkwOTE3N0QxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk0QzkwMUVCMTc3QzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk0QzkwMUVDMTc3QzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EtSEQQAAAU1JREFUeNpiZLCYzoAG/jMwPHg/dWtBFuup8/oOAqbGiqfOuNcd2TXnCIO8AAPRgImBZmDUaPoZzcJw5y2WFPL2zdvv/xi4mYE8RkaQ2P2XXxmev2L4/ZcEo8tmxWMx+t03dxvuv1fZgcy//0BiFXkuN82VGAQ5iTea8f/Hh1iEWZkZHr19uXH3i4ZaDlU1menTuBVEGAS5SXI14xURERxS/xnZOZgFBf///v3n7VtGMsL63/dvOEwGhjITMxMonv9///7/P5BPmtGM/1/cwBADB8jDty+27n/Z3sKhrCzd18ejKMogyMXwi5RorD7Nj0X43ffAOHNDNpZnNZUs7Kw8zs4LbzHc2vqAQYCHBKPbEudiTXwcSi0mot+BHmAGh0NLz847s3cyiAiTkq5VhLEYzcIkzMnE8BPkfWAgA4GSBPcdSbHRkm/kGQ0QYAC5z2/IQnQq8QAAAABJRU5ErkJggg=='\n },\n {\n country: 'India',\n code: '91',\n iso: 'IN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEUwNDkwQzE3N0QxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEUwNDkwRDE3N0QxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwRTA0OTBBMTc3RDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwRTA0OTBCMTc3RDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+OIHw6AAAAPlJREFUeNpi/D/T+D/DAAAmhgECoxYPf4sZ/wPBQFn8CUjzEqvh7cffDAtX32Xg4WZhYGJkZHj/8SdDTLAKg6QIGyn2fiY5qGdN38/A8OU5g5k2F4OxBicD59+3DHNm7CXZxyykKL548TGDmCgHg6mpMoObWz/Dr19/GHbvLmS4desZWE5fX5Y2Fv/794+BhYWR4e/ff0BLfwPxX4Y/f0BiTAz///+jbRy3te5gEBTgYrCyVgY65D/DuXOPGJ49/cBQW+9FUhyTbPGnt78Z9qx7wiAozMnAyMTI8OblVwYnfxkGIQk2ki0emOwk3MExWjuNWjy8LAYIMADBumJ9k9IhVwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Indonesia',\n code: '62',\n iso: 'ID',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEUwNDkxMDE3N0QxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEUwNDkxMTE3N0QxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwRTA0OTBFMTc3RDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwRTA0OTBGMTc3RDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+D76wCAAAAG9JREFUeNpiPCeo9pSBgUEKiD8z0AfwAvEzFiiDAYmmi+VMDAMERi0etZhmgOXP+w8DYzGbtOQ/KPsfHUP5H+Of9x/fAxkCQPyXThYzA/EHFmYBPmYkAXoB5tHsNGrxqMXUK7mgTR5eOjd9PgMEGACLNBM7Kx9mIgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Iran',\n code: '98',\n iso: 'IR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0Mzc5RDMzQjE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0Mzc5RDMzQzE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwRTA0OTEyMTc3RDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQzNzlEMzNBMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bVy5sQAAAL5JREFUeNrslDEOgkAQRf+QLUSUwsZ7eAoaOo7Aoew5AyWcwwNAsa0IWZRdnC3sXaPZxOxPJltN3uyfn6HD+bTCgyJ4UgD/P5hWlg+w4Bq49m93zA9AE5a65neByHP2zQDxxoU72B9fXcATA3XfQ1ujjIGIt6BdgqQonMDOO1YMVeMI0hpkDbjPUF33+3ClWQbB4LFtcWsaRFIitXZ/EC4nq1+SZYmVBzhWFUgI1/bBX6ovROFyBXAAf0VPAQYAymNH2XVfIfsAAAAASUVORK5CYII='\n },\n {\n country: 'Iraq',\n code: '964',\n iso: 'IQ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0Mzc5RDMzRjE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0Mzc5RDM0MDE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQzNzlEMzNEMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQzNzlEMzNFMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+A6ksKQAAANtJREFUeNpiPCeo9p9hAAATwwCBUYuHv8WM/4FgxAX1Z1I0LLizh+HJ1zdgNnJQPf76mmHDo+MMb39+IsaYzyT5+Oirawxy3KIMMtwiDOsfHmO4++k5XG7vs4sMxYf7GNbfP0yUWSzEWrrp0QmGzsurGTxkzRj6rqxjEPz7i8HOthgs13tpFcOWWzsZxJhZGR69vUu9OE4/0s9QdXYhAxcLB8OWhycYWJiYGTh4JRgufnoKlj/97h7DJzZuBlMFW4aPLOwM1z88Hk3VmD5GS5yjReaoxUPfYoAAAwDKmktuMenkLgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Ireland',\n code: '353',\n iso: 'IE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0Mzc5RDM0MzE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0Mzc5RDM0NDE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQzNzlEMzQxMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQzNzlEMzQyMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+fGQZ6wAAADBJREFUeNpiZJiVzIAb/E+dg0eWodkOjyQTA83AqNGjRo8aPWr0qNGjRtPOaIAAAwDApAPmE9cHWgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Israel',\n code: '972',\n iso: 'IL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMzVCNDMxQzE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMzVCNDMxRDE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEzNUI0MzFBMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEzNUI0MzFCMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5PxNOAAAAaFJREFUeNrEVjtIA0EUnD3vEj9IiIlooSJYCmK0UAloIdhouhSinZBKIZ2dqIi1hZWFQRFBsJWUghaCkPhBBBsl0SIBTUhyBM391r0oClaXTcwNLHss3A0z8/a9I5QBNkDsm7uU2d5aZ15ZfLrLwxbFyKl8b5LvnTMosraXKPBY3eGWQAhBOqtwWU1YbXERKxqFrlM0OQUuYoE3I//SNQYWYlVkbBG6QRGJpiGpBk4fZMTYAlMcXL1HYMiNIss6NNMJSbSmxbLV5m0fXbxC7CIDV08zlme70egQsHHwjGyyiH6fG7e7w2gQiCWrYRJTi1BUg3qnzunW8cvPWSSaom2TZ/RD0WkFKFSUsSQSaKyoBPKrSmBf0JjlTkn4n4xNq8fDN8i9lrB5mCwTmlavRBIovJXgC8UR3xli56S2xAZjDk60Y97vKRdXePsRBiu46TEPAixvmT3rxpcDNS2uvxhkCnOyhsTRSH0bSL6oQWV5e10S35BY309yNQCzZZp5pjIKX69G1wmX4iqHhCzC47BnLHp7W2whJu8l3ZZfn08BBgBy6AUOH3COZgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Italy',\n code: '39',\n iso: 'IT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMzVCNDMyMDE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMzVCNDMyMTE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEzNUI0MzFFMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEzNUI0MzFGMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oQE2+QAAAJNJREFUeNpiZJjk9pSBgUEKiD8zYAM/PjHy8Ir9fZK47D8/OzcLUOQ/A3bA+O/nz79Xnf0Yftx7wMwiJIhLHS8QP2OBMhiQaGzgH5RmYsAP/kMxIXW8hBSgG0oNNUT5gGZg1OJRi0ctHrV41OJRi4e2xYxUUgMGLNAmDy/Opg/EsL/QSh5v0weqDgSY8agD2wUQYAAUKyFbP8LJRAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Ivory Coast',\n code: '225',\n iso: 'CI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQjc2MENDRjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQjc2MENEMDE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJCNzYwQ0NEMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJCNzYwQ0NFMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+qvgkAAAAAGxJREFUeNpi/F7P8JSBgUEKiD8zYAH/vzMwMPJxMbAXPWZg5BRiwAd+/P3NILuqmOHNe6CRnHy4lPEC8TMWKIMBiaYH4GViGCAwavGoxaMWj1o8avGoxaMWD7zFLNAmDy+upg8tWh8guwACDACJtBIpqc7c2AAAAABJRU5ErkJggg=='\n },\n {\n country: 'Jamaica',\n code: '1-876',\n iso: 'JM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMzVCNDMyNDE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCREQ2NTU2ODE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEzNUI0MzIyMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEzNUI0MzIzMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KsC74wAAA+VJREFUeNqsVttPk2cY/30tVAVKC1SRo3jAAjswnXFL3NwfsFvNlgXn1OjFoomJxgsvjInxZtNh1HnIZHPOw1iyLWEXS1y2zIsly2KiMcZjQRGwA1pBaEsp7ffs9/b9KhQ/AhPf5Pf1OzzP+zzP7zm8NdYe8Q/905sPt8tEVUECAkDU5SUuQ4GXx9FcDIw6sWJ+DIb5EHLhfglabpXgr2ABiuakUJE/lpaerQMZg8FYLkIjOVhdGsGm+jA2LA/DkACD9ALmMPDtvRKcu+PD3/9qBirzE2lF8386oHTUUhEOMsKVjHBjXRib/CG4PNzsKWUYlaCHUnHCQyMR4GKgGGdv+9IMFLo0AzNxQMkYGKd0dWk0bbCpNow5hVQe4sdcogpwLl6A/W808qGSGKAiWX69ZgQfLwmjujCB7qgL10N5iKcc8DINMOwpdShKafBRxIWG4jj2rgriyJourFocQ84oBUyiRsu3XtQ6Uu8Hdn0KbGniUzHxHAP2NaAq0S6HdhEqes9fAr44CVy78Uxdr9fq6cAOYON6PvgUZ8QIMbkG2AUqeochCNOgXQ7hsljkfeuPwKFjwNXr2UzJZDT4IWeOsqj7CNaAdBMsQumHpB5AvrtcLG8frpM3P2+Qr371SbzdSH+TduKRpfOEcqcgKxqf3z8T7FQfpK4WcvZLbVBtlgpYDtCh6B1Dnt52aOc6IMn7lsFByPctkMZXp953WsMZFBVB9uyADCkDjGj0Lg081FD3Y52QCO/37YaULph+P4WcmfTlAKt9mEUmhi7hZ+5OaCP1GIkCofDM+31KrxZVQpoPktZOi2pGLPc01Qn+xu5adUCakwEtk3wMOXUYUrvkBaiuKIMcOsDNe6y89Y4blC5I2xWPrG32y1sssB9+LxLptOpA5TmodUzqHP8MsrTG3nBWO1WV63ba+hGQV80XvdC9yHYCh8DPAS++5kT7s8eNeTlmemgMJ5x4p3wYm+tC+GA5czKPsoNEPlEGJINASyvb6SgQeJA9dKRiIbCTA2T7J8Bc1ex9lkGPNtjW4eUA8eG3rkLMdZqo5inmdOgN1Bjt4rSKjTnwXgUdaAhh/VI6kJftQIoOnDwHNHOAdHTSsMrhtiYrwn5L2Ksn10/tXnyjIux2I9cJLHKPpqOcPLMz79S4jCcdWFMWweb6ED6sfTLuQAGxUDtw5lLmkOjTEyZD6S8dHpy+OR9/dDNCUlrtZoQzOCQyDigGomTg3fIItr3Sj3UTGbAcMFTR2OXQ5ZQ0pY4XOBYzOuqAUSmwqwFDjcO2dvscmrP8IzCRgawaWDYA4/0Ty4auTJPD2S67GvhPgAEAIEVx8Ck6yuQAAAAASUVORK5CYII='\n },\n {\n country: 'Japan',\n code: '81',\n iso: 'JP',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCREQ2NTU2QjE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCREQ2NTU2QzE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJERDY1NTY5MTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJERDY1NTZBMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+sXSjEQAAAbhJREFUeNrklt8rg1EYx79n3k2WrWGY363EkgtJSVntgguJi5UbbuTSrf/CHTeukDulUVJKCRciGVIYiYvNhqZmm9H2eo/nfWlcbW9sk5zT89TpfTqf59c552Wc8xsAlSQR5GYYSPyMwOGPRS5H5O+BeUKUNZhWmxtwYHqBxIWn00vicugbrbAMO1E1OpgdsBR9wYFjCF73IuQYtSghzZDAAwlHVVMPWrfmIZiNmQXvdfbBt72CIjTQSiO78vGFKTqEc1haHOg43FAF1qix8k7Nwp+E4gtUqbYiJjTi9mgT1+OTqnKtCny3sAyBImNpzHVkdb+0mhnw6/MTYsfXtKmZ4pJS9TnVvRgvF36IsejPwVyenCdrmf6cJdXPwEJBIfTNdYgjmMZc7vAQ8ustEPSGzNS4zNkLUUkzT4Fl5Fwcpf3dqhKj+jjttHXh1r1OnW1T0v/pBFNmCB6Ybe3oPNlVE476cywGw9i3D8DvWUM+de97s0G5QOKky2vtaNt2QVddmvkrk0sSfBNzCMy4EDu7oqaToG+wooKuzJqxETAhL/uPhPgYlT2BYDLiGyPyP9/jX/n1eRNgAFs4yk+Ai07FAAAAAElFTkSuQmCC'\n },\n {\n country: 'Jordan',\n code: '962',\n iso: 'JO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCREQ2NTU2RjE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCREQ2NTU3MDE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJERDY1NTZEMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJERDY1NTZFMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+QGsVzQAAApVJREFUeNq8lM1rE1EUxc97M5mZhExNG6F2oTRtzKapdVWJICIuVCguigtB/AMKUlz0X9FaqQtB6S6IYkMKIoJIRRDUhSt14UcVTWLSNsl8ZJ53Mk7aGLtoMu2FSZj3ePzOOfe+YXf1w1/nawV91a5iP4uVDqaFJQRyZgUL9SJeWJv7A37Vn6pojOkJrqAqHDwkAYv1AlatvU2AvSYw/esN+tHAkJA8AcvmelPA8z1KoAX2F3wBwyTAoBY8MstYqFECAc9AB/h/AmqUQNAzsCO4TQCjFvydgaWNNeRiGpSp85AjGswva3AMY9dguVMKg1OtQdg2JD0Kid7dqX/fMJoJXNHiuEwidDWO8OwMkEwE5NgBBDljnEGYFpim0YKzdYJzcNOGsf4JHCoGpqcxNHcN4cyJXYH59hdhWbCqvzBy7wbGP7yEejQB6/f39hOOA0fmUOIp8MggfmTv483J03g7NonCUrY7MCUJAXKpKpAH+sEkyVvcqSROuzKFZMAuFCHqhhtXF1FTP4VlkhwJ8oE+2MUSWEj18m+doKhtQlU+NnXHzl7Aoesz6Js618NwkVquaGhsbMAof4YcixFIuDHAIeMy8YdKm2SUI3rxKtS5WeDU8a6Gq2OqhdOg3oWbjzdrAjKBEyW72ZdsMoTlM0egXJqAEn4H60EeTr0ewHXy7y85VMjhCAHdepLUsDgZRW6CuiLT7X58E6Br1211gP1IXaA7JvmUhjsEXBmL0JeEPBctwKad6CA96B28HejW01ENtzJR5McJqNBmiVxWGt6Qs94/mbIP9HuYT4WbDvNp6rFKm8WG5zAgYOty/OSjIuSIrR4ei3hA16ElAoW1OX42rH67nYnqK2m/hxR1OXiH/9YfAQYA1jgMxWJoPhoAAAAASUVORK5CYII='\n },\n {\n country: 'Kazakhstan',\n code: '7',\n iso: 'KZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGMzkyMjdBRTE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGMzkyMjdBRjE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJERDY1NTcxMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJERDY1NTcyMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+44EnowAAAkpJREFUeNq0lc9rE1EQx2fee7ub3cSyjbXWIgFFS7A9FC+iVEWk9KQI9qIYPHjyJBQE/wSxh4J48qpQwSL2UFA8tPESUC/tRVotKCX+SO2WpMlu9ufzvRybZCOYDLuw7M77MPOdH4vwugC9MQI9M4lWIKAQAWCX0SaxF9OPcsZ7CNPdRTMKYZYVB7ACnLV348A14AmZGdbl9Q8psjpX37rjG8GRxoGWFgE3EOvDrKRAWAxNn6cA7Y50ZqB3mFiDtALIG968KWLDJJWriUJOX2Hov3AuvnQuWJEJ6HRAB0Bdrnqt1RDx6hDpp7TV+8nFMUO26VFS3giGlp3zQKIGvW2PEZdLdFXoyGlTyFQTiRNH4EeVLeAIkXpC+d5HPPFSlVwa1yEGumfV9WO0JJtwn4XpW0b+wYH5Vf/4G3dcKCNYy+7pT97ITGrhhp6HsD++jNpH/+S38BBA0PSVOpxeS3x4WJ2+V75T8LIKBvPOxK8oedtYeVybAq7GoRmKYeE6eoDB/jKSnQV7aoT+vptcemZfmq1eN9G2eCKn59+5Y6/sSaBWHFoBPynUFOhmQ9+LUk9qV86omxPqepZtbQaZc+qazbW5vZu74UGg2zFyM+FXCs3tqK9V5xEg1p9wYMkZ7ic7GfpzVP3sAz63LxeDDLAfjcq3j1pDf1Jb+yJGJtKBlJvlBlID2NvlxtPqNJAqhINyXjpxJZoDfg2GLDlgftwWk/PtygfZS7wjV8op9nUS6wEwlystRvF/1pO4a3LvQHe5vf8V9Mj+CjAATRXoTFoxM8YAAAAASUVORK5CYII='\n },\n {\n country: 'Kenya',\n code: '254',\n iso: 'KE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGMzkyMjdCMjE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGMzkyMjdCMzE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkYzOTIyN0IwMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkYzOTIyN0IxMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+4JAoOgAAAoJJREFUeNq8Vs9LG1EQ/jb74o8kdWOktWuKSamUtoqnekmRQA71UKjkIJSeEqgtmEIv/hXBgz2mpRcRkh6D1IMVSi7iIVBBPFRarIamIsWsRpq4yeY5m24llZa89JCFb9/MvmG+nXkzOysB+EYYIBTRnusSIS/R7dhS2nkVhYllWYYkSahWq3/dZ4zV13/tXySGRcybQVVVHolEznXJwm89Go1yv9/PRXxZnGLEJlKpFH8+O1uXX4+N8cVA4BdpLMbT6bQoaZ2Y9fp8TfNipvgwl8PbpSU8mJnB1NwcnoyPA4qCd2truBsOI5VM1m09fj845019si/r60LVYLfbodE5VohohPRdtxvM48ELki8XCng4P49X8Tgqui7kj+WDQeFSdBD56v4+nCSrNhsljWOP5I/T0wh5vTimwhKJtk68u70tFrG1viQ8JgQyGVTpRfIkv9E0eAkOkk8Fg2AdLXT9AWGL8J3QPzwM3tmJ/PIyNkk3CC6rcoSIW+l63rDaKFpOZ95IJLXgi1UEDU8I3YRb5vmaUWezqBG5+a29Y0Vg2oj6Y1f7BoTf0ikzxH4eQTk5ghwKwd7TA3VlBc8cLlx3eaAbVfGIb25lhQxtkozqlV5Mvf+AnfsTdKYcEqV6kPaCiwtwhSchH/xAjRtixLcXJoQMy0YZ1xQfPN4R3PAAiRwltmBDnKpus7aKYiKBr4ef4WAOIX8SHglOpzIwOjiKQtcpcjufkCzdg6PGMNmdgTo0hP6SCxt7G0CX6HR6Kj4WFUlBSS9Bd+tgGj2o0TTqox4v2OHscELjWgtjsQXi894x+0a2ZOPCc0Hilvr4D8fGfzZwwwekaEXczl+f4pkAAwBDiPf/eEPUkQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Kiribati',\n code: '686',\n iso: 'KI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNzJDQkU2RjE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNzJDQkU3MDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI3MkNCRTZEMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI3MkNCRTZFMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pmFxjgAAAoFJREFUeNrslE9IFFEcx3+/N292dmf/NLppIWJpCoKVCcUWIltqVlAQdOlWdOkWnQsEr12DLnXp0rlDkl7yH5HQHxLLKNTWrDZaXXd219kdZ957vbFT2k6HrVtfHrzffHjf7/B+82NwtP6QzhyoJI6izsGAgEXNtRVCXPWgwyOMpxX8roIiKvksRaV1jgU+cpBxR+yzw5eyIUaJwcsWL00GWUojLgBWjA5zh64TVW4VowOCpjRnSYUa0K9Y67O0cD+CMzoJcukGXtEnY3Eq3uEXjd7CnGIz4tINcEEFqmrCy5USftEU/CXNBeIYjnG1oHe5XhNfq/m7EbpCweD+1j9Fl9EJ8NpBs/6irRYpEOEmLbWRrd7YQUsKBIVfdDk3rzJKtbh8cO0sg6IsFAj/JGXbpG1mrBeUrxBSorI7VjYfTcJKc8Z6FQsyQ7Zru0uSsuJg/vYdnHiaGpkQnO852RM72weEFB+PeYTxxp5kzWA3dDuwNg7fxkBw2J2E2l6YCZo3ny2PjQvY5trMwb4eHBpdGGg1jmoFEOKFExtNFTmHgeZIYpO85NGRNyU7jWcS+rH9puz983fG8HSJxNmpTj1Bi791STIyb2L/9QeLmXUwDDkILLfW0RAjBN9+Nn8hiLMLeYY13sjwtQMtUe/MF9PH1bJTp9cuHG5uMBY/ZzkXrU3xdKYghGioj1VJltImdl2+B1y0743L1859XKEK8b6Dy6sk3v3ml1dLtjs980lwkehs2lUbljSTs6okekhFo//W6e628yfaEfHR5IeHT+bkjc4db6+SDE+9RzgyBGYJyhvelGvyX6F7Ra5qYugU9IC3tij0FwiBf6b/0Vv0Q4ABABynxPRdAJihAAAAAElFTkSuQmCC'\n },\n {\n country: 'Kuwait',\n code: '965',\n iso: 'KW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NUZGOTk4RTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NUZGOTk4RjE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU1RkY5OThDMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU1RkY5OThEMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+rNTKhQAAAX1JREFUeNrElktLw0AUhc8kadMmBhcttN1Y3IkguBC1goKPRRHxN4jiThR0r4KI/82NOxdaEZWKD9Qi9pXX9aatIhQhixm9cDfJJGc+zpnLGJgcrWJz1UExD9w+Al4AaAKqK1IgWClgfQVYngHqTeC5BuiaUmGdew+eb+L0HLh5AEaKwHAB+OAN+EwvhDLid27n+4mVBjaYvjwNNNvA05sS+n7hryqNdTcwlFPi/e/CUdk978sl4KoCNFrdL5QL90qbG8fS/q5vhiAKQvFnwiZ3q1YnDFoEScyxUkPJJF7dhuitFzI6dlx9CqWmWsM/VXxhyWfZiLPIDT1QJkud8SopXLGEF3UH4dpOcGcmKSBSf5wMfn1g57CVyqD6UuGFnvrJtZAYwJGdx1TCwkXQRp1TrUOo8zj6eSQYUbbZ0jO/yQkUUkX7hOeZ8phFJ5jykikbkin7LgIR0SF7uZ3O8qAgXIduh1LlPcSYTdj3J3bBmepQuuxloIzyZ30KMABBFnf5qa4SdQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Kyrgyzstan',\n code: '996',\n iso: 'KG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NUZGOTk5MjE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NUZGOTk5MzE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU1RkY5OTkwMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU1RkY5OTkxMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ZagutAAAAeJJREFUeNq0lc1qFEEUhb/bVT1Dz2gkShZRUQP+LDRushNXvoDuBcGFa0EXbnwIX0BcKAr6Ej6AgpsoYiAoKgnqxskkM9PVdb3V4nKmZwan6UUXRZ976px7bsnO8jqLefyxpTWR7L/jqkafZX4RlI2uN/ipWFcwEgRyxU3Huqk6BBgIVv2QEmFfUplCyUnLCVo34I4MWjhesV7KpWDf+t7z0fPVpQJtReeDDjXu+SA3DzgV+OGsmFwu2XH6vOCDp5wEMFFlE3e1klv7xk5fdBiKFdNXhekgt/ucrChlLkHsvKbmxcBh5YuTtaBPO0SVa0N6wopi9O0cYSzGeNZRjKxcKPnsWFZOV3QjS8pq5Gjkk5eNkiJSyeystX5bqTH0ZcFKJQ97tNFHXXYzuT5INkht9cxaZ5r6wZrhXGAAW16ujGRjyHdHL+Ns0HeefobT2VnbzgG8zblayt2+Pu7ogyMJqFC50+enYzNPxnZ0rg6x4O06fVaYb3J/j1aKjNzbM4f1SZFauzUpMxLO3Bgb9L+RMaNO1JGxbjHpN72+yfnmUtzHR6Yp6PZbG8rUfIalrzUVMxHKGjRnQhSb0kg9JYxdN1maJgn/ljTgJuhph7VX/IxDNcawqKvg1+/tBV1gfwQYAP8yvkoLLzQ/AAAAAElFTkSuQmCC'\n },\n {\n country: 'Laos',\n code: '856',\n iso: 'LA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MTY0MkY2OTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5MTY0MkY2QTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU1RkY5OTk0MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkxNjQyRjY4MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vPM0fwAAAXBJREFUeNpiPCeoxkAbwMRAMzBqNBpgMRJ3AlKC/35hlWZkZGBgZv7w+M2/bz8ltOUYmZieX33IxMYqIC/K8Pfv///o6t8zsSGMhgqx8OCwmpnhznN+LZX2niR/aw0mRobtJ++Ulc57c/4ug6o0w5+/6OqRnMjIoJGB00tANz99q6Ald3l/Kw8Hwjm//v7Tc66+efYOg5wow7//ZIU10FF//zaVByObCwRszEwd1eEMzEwMv/6QG43ffjDLiztZamDKOJir8ShLMnz5Qa7R/0FBwgiKSoygYmIEif//T67R3Bx/Hr4+fPoWpsyRM3c+33vBwMNJrtHA5MHA0NCz7g+G66o71jD8/M3AzkKE0UysWBAjC4OS9I2T92TtalafffAFGPgMDJsvP5F3rr944DqDigwo7aJpQQ40SOLj/P8XR/Jj/M/M9P3BS4a//yUNlZiYGJ9euAdMcByK4kz//v/H8M13RmaE3tFCdTgYDRBgAIXydkRRgS1WAAAAAElFTkSuQmCC'\n },\n {\n country: 'Latvia',\n code: '371',\n iso: 'LV',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MTY0MkY2RDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5MTY0MkY2RTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjkxNjQyRjZCMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkxNjQyRjZDMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+92Hw/QAAAF1JREFUeNpibBNT/sQwAIAFiHkHwmImhgECoxbTL3F9f/d+YCzml5MZEIsZf37+8n9ALP4PBCMrcf368nVgLJ6sbzUwFn989GRgLOYUEhwtMkctplkL5PNAWAwQYABbtBShZM+mNQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Lebanon',\n code: '961',\n iso: 'LB',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MTY0MkY3MTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5MTY0MkY3MjE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjkxNjQyRjZGMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkxNjQyRjcwMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KNMpfwAAAapJREFUeNrsVd0rg1EY/x2bNWab0aLEBWIkn+XChVJSSv4AKXfyH7hyq5SvcqeUK5I7VzIpLnxESzOTYhOab5t3693hffc+TnPP+5Zxs1+dntM5T8/v+TjPc1iqpZTwD8jBPyFL/GdgWvRFEtKuT53AcnIBmwNjO1OotpVgqH0QkDmIx0UYJr28cRCRRAbhjZ4RFlsJS13U65uhGKlGTUiGUx1O3GF0exJ19gaUMSe8vlWEX68yX+MJ/xIu4xHcJO5FtjR4imsxf74GRVMN2TEbUQ5Ew0ioHLL6DpclX5TUgsBTEIHbAzS6qjDi6c8M8fLFOnyPpyjKKwQXDihKEg6rExXuepzEQuCpD1iFM79K7I9eQjFb8fB0BkkQVJd3ICSiJVIR4G+wiztJkX+feP8xCL8gne6ZwLGQs3uzcLjrMN42nK65U6R+M3KEgcpunZ2ps504aRQiOb2fu9ogzHsIC00UlK7TZymxDpMRklSuq50YJeWfB4h4vRARwcSwFd7FM4+hs7QZ06crqCgowXBNHywWx1ePKBzQhD5j3w4Qlv0Ws8SZwqcAAwBwcmoqHHZSowAAAABJRU5ErkJggg=='\n },\n {\n country: 'Lesotho',\n code: '266',\n iso: 'LS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMDVDQzk4MDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMDVDQzk4MTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMwNUNDOTdFMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkMwNUNDOTdGMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0nsttgAAARhJREFUeNrslc9Kw0AQxr9Nd/uHNFSQHEqoKCrWIsV3EHydPEz1Fih4EfIMOXnOQTA3D1FQ6ik2K0hJ6o6rB8/ZHCyUfDDsZWd+sx+zuxz7c8IGZGFDasDbD2ZLWUi9OlUThBBotYDZ7ApluYbv+2CMoShKE+4HHzjCuNvnp0ck93dQSmHxconDowl6HbM6vI5Nijg+V9An/tKedWpZXQvseR7iOEae53Bd9/+GKwxDpGmKLMsQBEG96SIiSQaKoog45z/P7F/oRshQ0gi8zN7pYDgip92j6fGEzk/OaKfbpz13SG+vCyMwL9S6kjNti0PYXQS3N0iSB0gpYel7Zds2Tsdj9HcHv/uq1mO4vmh+pwa8XeBvAQYA1mkQ97LOB/MAAAAASUVORK5CYII='\n },\n {\n country: 'Liberia',\n code: '231',\n iso: 'LR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMDVDQzk4NDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMDVDQzk4NTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMwNUNDOTgyMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkMwNUNDOTgzMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+G0pyRwAAAdFJREFUeNrklM9LVFEUxz/3vZlyZnyKNNXkGIhDmZtEaKEEZuBiFJfSJpyCgpYGEW1cuHLTP1ETCOqiGYJxIUgMtBpoIUVgPxQdTcksnljjNPOeZ17TIghqcfEtOnDfu++eCx/O93zPU5wf2gAsfkWlAqYJSv1cEpnVIgMHJdYx0BUBWa3ergZxHCiVIdQgGYFU5VuOw73dBIIBGl1XI1ipPUzDYn0LvpVI3btJemYeVopw5qTcMOl4niYilyOgEVytova/k7yWpL0txsMHt+hKnGXp5Rtmc3lJO3xJZ6nEopS0gkVLt/yDyqddJqbuEhGZ798eZezOJG5N2tBxPtxIkcDmPUobWNE5bAvBYvk1T7KP6O/p4m1xi8ErKYi2iL4hXlwf4VJLE3saK1bialsMZUVbTzHY183cTI7kyFWBb7OcL4AAV9YWaUdvKOIDtjwtz9UfdzxpPWefaJZsbXxcFnovcjncwGetPT4WrG+ln22nwaiNVX1sTMM7tp/mKIu1dnX2+J29b//2A/lDxF0HmWwcnVKLc/8Kpg41dEr9Sl3AjwhYQ/2+gP9Zau0Vf32c8afiAsqfis9NP/vPerw2Om75UvESiU15Nx41+FCAAQBN8o5alKABbgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Libya',\n code: '218',\n iso: 'LY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMDVDQzk4ODE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMDA0MjA0QzE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMwNUNDOTg2MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkMwNUNDOTg3MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oNTByAAAACVJREFUeNpiZJhqwEAbwMRAMzBq9KjRo0aPGj1q9KjRtDMaIMAADHgA7Vx8bugAAAAASUVORK5CYII='\n },\n {\n country: 'Liechtenstein',\n code: '423',\n iso: 'LI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFMDA0MjA0RjE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMDA0MjA1MDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUwMDQyMDREMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkUwMDQyMDRFMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+aIartAAAARBJREFUeNpiZNCuZ6ANYGKgGYAZzfSP4Q8bww9mhq+MdkrXpXlfMXxgZ/jOwcD8n2yjWaD0T0525k+V/ruEuL5fvv/fQuqfig/TpP12V+6oMPB8pczor1yqGje89e79ZBD4+e27vBSHjdb7C4+uX7mswcDDyMDwnwKjmX5+/iIgIi4kJ8umqcbHzsbA+e/7p1985BmKajTf94dvZIsX60lwXn736jsXN5OEpMrWG6YMPD/INp0RmviY2RiYWBieMTF8+szA9JvhPyMDGx+DNBsD2zeGv6Snon8/Ea7m/vOV4f9/BhFmBjE2BkZWoMj/f98Y/n1k/MVIhnu/gk1gPCeoNnSzzKjRo0aPGk0UAAgwAEdbUI8xqJtmAAAAAElFTkSuQmCC'\n },\n {\n country: 'Lithuania',\n code: '370',\n iso: 'LT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFMDA0MjA1MzE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMDA0MjA1NDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUwMDQyMDUxMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkUwMDQyMDUyMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+dE0CWQAAADFJREFUeNpi/LtTmIE2gImBZmDU6GFhNAvzRsPRABk1GjdgPKiuOxogo0YPiNEAAQYAG3sD7LiMQpYAAAAASUVORK5CYII='\n },\n {\n country: 'Luxembourg',\n code: '352',\n iso: 'LU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMDQ3NDU2MjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyMDQ3NDU2MzE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUwMDQyMDU1MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkUwMDQyMDU2MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+HeS18gAAADFJREFUeNpifK+ty0AbwMRAMzBq9LAwmvH///+jATJqNG7Awrjk3miAjBo9IEYDBBgAMnEF8ALV3YIAAAAASUVORK5CYII='\n },\n {\n country: 'Macao',\n code: '853',\n iso: 'MO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjA0NzQ1NjcxNzgyMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjA0NzQ1NjYxNzgyMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMDExNThCNDE1MTY2Nzc5NUQ5Rjc0M0UxN0MxOUIxM0MiIHN0UmVmOmRvY3VtZW50SUQ9IjAxMTU4QjQxNTE2Njc3OTVEOUY3NDNFMTdDMTlCMTNDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bj2DXgAAApBJREFUeNq0lU9IFFEcx3/vzZuZnWXXdQtX1z/bWuimGIFU0EZUqEVgEFRQF0+JVws6ZRGBBUGnTh0CIfJQhzynsUFiKFaHrBC2XDVXd7F1c2dnZ3fnzeuNXoIabc0ec3j8ePP5fX+/933vIXgI/2ngklajtW+70RypA8uVgMebEw2AAoApHKmTzza6JBAhb0UQ+ke0AbVueb/PCau4p4k8Og6CIda55NZKGaiwVTQXxQBW4bBP7GmSABe7RrI1A6qW0tqCuLtZYRmTJ+bakS3AziEMnKIUcpHZLNPyBYbJxd3dPjnwePp+Bv2g1Ah6iF6ks2oRBGCsJNVF8Mv4VqsIOKenaW/TlYH2B/eOXnvSPuhV/HrS6G0Wz9c7mQbMBkBs0RLMZPVLEV3LWxVUlFWuh/eWh5a1BP/v6ptMgffCBXZse9UMkCntlEI3DtwO14fHFycoozw8Gh+tFqpuHrt+wn/O0B2WTxgqsdcatPhaJi5MKKKiF9WR2Ku2+g6FyC++vAy66xp9jXxJ31jfndF+Vl6qahGW1KVoaoZPHaKrs6ETMXNRTZzc07bOBRM+rk4xe4AAZ2y9g4G8TYxLTFIM1wpNDX0dGpkb3qGU0wKdTIz3T96NxCMqVu3k2W+jCV63J+RuGFt4/W7+/TJOz2SiyGQfUp8DjhqCCE8ccOxK5hImYn/cSbJBPXF1YcWbOVV1mtK8pMa8gseK4kKtw18h+6ez0dlczARm5xC0yaWqwUFfa1fwcrj6UJnTKSCcz9Op75+ex54Ozj3jibhHeX1bQq/RwQHtNR37KppFQuZXvg3HI8vppAUltqb+OzR3LTd0du0KZFZLQAGQN4Ju1utfzo7lAfdvwe19ZUoaPwUYAKgQ8M86ceGrAAAAAElFTkSuQmCC'\n },\n {\n country: 'Macedonia',\n code: '389',\n iso: 'MK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMDQ3NDU2QTE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyMDQ3NDU2QjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIwNDc0NTY4MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIwNDc0NTY5MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+x/HZMgAABhZJREFUeNpsVmts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'\n },\n {\n country: 'Madagascar',\n code: '261',\n iso: 'MG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OTdFNEQ0RjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OTdFNEQ1MDE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIwNDc0NTZDMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5N0U0RDRFMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9rDjCQAAAKdJREFUeNpi/P///1MGBgYpIP7MgAP8+/6D4YqOHcPPe/cZWASFGCgEvED8jAXKYECi6QF4mRgGCIxaPGoxzQALMYoYgZjv61+G30DI/OUP/Sz+D8RvBFgZvr9hZ2AVYqOfxT+AqkLa9Rgefpdg4GfjpaOPgWH9SYKDgeE3F8NHFk46xjEorD//ZmD4CcSsv0ez06jFoxbjzE6foa2Pz/RqfYDsAggwAPr+KDn2/fllAAAAAElFTkSuQmCC'\n },\n {\n country: 'Malawi',\n code: '265',\n iso: 'MW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OTdFNEQ1MzE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OTdFNEQ1NDE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5N0U0RDUxMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5N0U0RDUyMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+taggYQAAAP1JREFUeNpiZCAO8DAy8TEy/2dg+Pr/36f/f4nRwkhQhTATix8bnz4LpxAjM1D1x///Lv75vuHXx9f//lBktAELZz2X+Jv/f+f9ePvm318mBgZ+JuYEdiE5Jtamby9P/fnGQB5QZ2Y/IKCcwCEEZNuzcldziQORCxsvkBvOLnBYQAXoFTKNns8rW8olCmTM4JX5L6r/V0T/j4j+fzGDhXxyQMFsTpElfHLMuLXjlLJm5ZZlYm389rKESzSfU+zwn693//26/+/Xg7+/XFl52RmZur+9Mmbh/MfAABTEHtYXBdUZaAOYGGgGRo0eFkazJPXyjQbIqNEDYjRAgAEAy3xInECTax0AAAAASUVORK5CYII='\n },\n {\n country: 'Malaysia',\n code: '60',\n iso: 'MY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OTdFNEQ1NzE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OTdFNEQ1ODE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5N0U0RDU1MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5N0U0RDU2MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WpzGZAAAA1RJREFUeNrElF1oW2UYx38n5zTn5Lvt+pE13XLhoNPNaZirUqc4BTdBBcdAwSlMFId3YxdjoHgnCIpXohcieDFwYAteCFZFhcKYFVfHKhq3Nfsg6dIk2CZtkybnY8/JWTtEbaMIeeDl5YX3ff7P//9/3kdhz2gWiLAaiuPthT5YNiC0DB0mBGX3r4Dt429DixJayfP9ucMk5Vhk/dBkDaydfBZUgzC7mYf3j/PC41+RySa4cCnJmfQOSgtdUkRdwFXvriYFOYr3tlxG6QyQOD1GTDcxmqnXB66sMW7owrSfd06+xfEXR3n/1DNMnr+HuapOh18AFRvqOnpkgYalYdcCYIgSjqhQX0HRQkQOPo1fsvpbYHxb4twgrz3/IcePjXLgyBuMnzoCW6+CXqezN8/Ijinu7JtlXlS5kE1yrRinVvd7zHt6sCtzpEM6SbNOUVkfWBGPy03GKwY+8c/6/Am++3Enj748BtunhaRKv17l/rt/5s0nT5O6N0P64gDvffkU354b5nKpF9sFXrIIb1KZeXuQLt3GRG2R8XKIgaFfoBc+ndwLAZHQ50rrJxRuMLItTWp3BsTaoVSOAzemODu1Rwq71WyOg6IoqLEYPkPBh69FYK3B4lK4mTgZK4jfHZ6nmsV8OcaVolS0JPc20dwz+T6KlRiolve+qwt7Kc/MzqFmVxdoVWq38hsJfvjgWYZFTmVkQpKKUX15DEslLt6+8tDXPLj9N9K5BB9PPMavV7ZRNqVAVaReaBCJG1z/7BGiQdUVoEVgt7lKPXR3Fyl9cYjpmTj7jn5EMS9M++cIR+expQAVm55IhcJilFrNEC8VrzHFmXAnXDwRoNtv0djAYwEe84BxvMqlWwe3/M4nr79Lh1Zl/OxeJi9tYfraHczO9XtDxFGb1jStaA4cAVfDBBsFJtKvstVapLQh8ANnymv/2E3ieuYCLMs3ue8nEvEC2esyY/Kbb/u5etddqwPkD/nngwEq3wwTZuNQTvTuL/9pZN5KaonnC9LplqkSDlYxhKniMvsn72om/qjO0Zd2o8kE8bG+yYqzb+ivwP8l3EY0bWYyFWzb2Zix4zj/D/C/DC13+DnaEZqZy7UFuH1SZ3bd1R6p9VQq0i6ps+2Q+qYAAwAlKDesr1W8UQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Maldives',\n code: '960',\n iso: 'MV',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5NjMyMTNFRTE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5NjMyMTNFRjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk2MzIxM0VDMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk2MzIxM0VEMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+25GwywAAAhZJREFUeNrEVktL41AU/u7tIzdarUU6oGNFRBlm5cafIAriQmRWs5jVLCoMzNI/ITO7wY24E0Hc6x9wXXQjiCBi1YKPtEmbdGqSOdemjG3iow/rgZvk3pyc757vnHtO2MHAdBbAMA0d3ZE+Ghdh7wGP7l0B53gnCT+euAxgLtBfBrhTnbcj0pZDNnSF7rw6DwSuvbjpIUU575B3Ubse1AcsPb0m0C9fIzhNAAkz2FCIh2BYRVjGLZRYAjERg+PYPr0CeZosAjubFaQ0QFOf8VjSqyXokuS4K7oBqBGi5AzqYBxzC8vInGaQuzoGIsKvS0CapJkxcLeeQx4UF2bSRYKWGoZJH15cYlCM4OjnHhbjn3CdPad1+HVLng3T23xD3JrLavseuLew+30NN8U7LP/5BruUpyCq7WX1i2LmMTQ6hemPn7G08QMQvURnnLh0mgZu+hxzVuXMfkim1vO+OWC1H9mzAxzmTrAyk6Y4UqqWDcLnbwwsM5qHMb+exuSHcfxOb1B86fxVrPaBH6qVeGIoFMuhYZxrx5j4NYv9cg4jqbHqunD9+jLnlJrhV5RMQeyBnFMDC0gFLDoK47aA7a1VhPqS6FF64Vr+AmJWyIbxvz7UHVtqi4VaZ2LexvQo89XWVsT1KI39dRtrv17nsSzonLRTBaejTSIv2MtNQr7TRKfag78BtXyOO9mPdS/G3fz10f8JMABK7r8EsRKWRQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Mali',\n code: '223',\n iso: 'ML',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5NjMyMTNGMjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5NjMyMTNGMzE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk2MzIxM0YwMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk2MzIxM0YxMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uyeEmgAAAJtJREFUeNpiFNlq9ZSBgUEKiD8zYAHv/jEzyjL//nte8sF/QZbfLH//Mf/Hpo6Z7z/j79dMf6+H8jH8fMjEzCL4H6s6IOAF4mcsUAYDEo0N/IPSTAz4wX8oJqSOl5ACdEOpoYYoH9AMjFo8avGoxaMWj1o8avHQtpiRSmrAgAXa5OHF1fSBGvYXWsmz4KnsYerALSE86sB2AQQYAKnHJTCzkNpyAAAAAElFTkSuQmCC'\n },\n {\n country: 'Malta',\n code: '356',\n iso: 'MT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5NjMyMTNGNjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBRTVFRUNEODE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk2MzIxM0Y0MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk2MzIxM0Y1MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uPhVmAAAAQVJREFUeNrs1s9LwmAYwPHv5hvI3AvqZrrK6AcFDSSoTpWHIqi/OegQQYcOHaK/QNtWastY6jJ0Zeg5OmwR7AsvPLcPL7y8PEoURQ6wMArDoO94aFaZjKbxU+O3Hve1Y4YNB1HM84vk13HFdGDQ8eXd5RV2/YDCxjoxJ9Vx+M7Hs0/Te8DJqjy+vjB8ajPqD2KVRc91uT2/oGNIGq0mypzAu75h5+SIvL0VH6xVyuyeneL4bSJFYXNxibW9fbJmMdYbq5OHpK9UsYwSZqtL1ZhHX11GSD1eeDbkTIPt+iHSqpBEYjZkchqFmk1SqfxRKZzCKZzC/w+e/NXBdAsJEjK/rU8BBgBwJ0VJGmmDwgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Marshall Islands',\n code: '692',\n iso: 'MH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBRTVFRUNEQjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBRTVFRUNEQzE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFFNUVFQ0Q5MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFFNUVFQ0RBMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YGjCSQAAA6FJREFUeNrUlV1MW2UYx/+nfenHac8ppT0TLVAEZoWxwZKB4OayGJnL6p2axa9NEtggMcZEvV6yxBsvduONMTF6MdR4sSg6wleaxUFhDM1wLMDQ0CHQjkJp6ddpT885vgcKsjijI9mFb87Ved/3d57n/3+e5zBo+gSPZunwyNb9aAZQVO3ZzVLBKMhaEC81M/pzZUPkvt10zsgbZVnJiTkU6B8CS6EZHqKD5Rc7q75uc/c9zUV3oHP0m/KeQnMyk4usZ6DXQc9A/S9QDqKTQjuqutop1BaNR3DjjnELLcnEROr2F59sdgdXUlf8gWAornEp/d+gZn6ps6rrbHmvxxKLBnF7ASYX6zz+GtH0TUk05PoDj19898hz9U+kxFxlCf/RF+OJpXXYTA+I/S/oYuferray3uqCWCSIqTAsnnpXw2nu0OspYieQVZ43VdjN3iY35dKLrIm8+nzVyMj8TaILJrKSrEDH/D3Sjr1ftZd0VyupSBizhcR69JT7mTNsdUv+ZCqrCSIrqijJsVRWpSZvQNaTUiKTy0iymg+YbqibRm1AL7UJ39bIiCUQKK3hT5x5suENYndtZ5VKS4PDAULzTaal6XVRGg7UewRvs3s1Jn72/eS1O2FpLQ2rAXoKtSFjt/CL7RVfvs1drjMhwWLpqVdsTa3l+05uE4P3Er6x+Z6hwMD4H+HZVSbfjTRrhhEc7LGDruW19OhkKJPOgjDIUmgRZ5s/J3x32jq434FsWWmy7h370VYYhE3irZmVfv8cdX54IpSdX9MqzWmhJm1VCNHRV+G5yFVa3FSKaAJEoJparb+fdX7a6hytrQRqvDjygaHkmGHjxk+/hPquzfb4796cDIGWEy02hwXlRZoxqiYj2W4lrZCthtV4WhE55IotBVPtRRfbKm7ta7Tj8AUceA/gMkDfUKjHd7v/+t256WVQxTgjHCw8ezRE3pd8PZEdbUpf2ZUwVffnTqH7/WcXSl9qRPPHICeWgX5fpLu31zcWWP1thTYt7GYUsXiMy4PUB7QW2YAC2ULEDCbZ/2HN2IWXC/CiF8KbU9HawYH4Dz39V6/PSIGIdpwG6LJp+f0zccdAOvg5wlIxP3H+hZUOL4/K2plkyzfTxVd8kzf8E1iMwKjXbLEYtAgeZnAxDcfPv3VYbKnVKWzZ5YVDl0akmdEJhEIay8li0+ddjULS0sguGcpP/ej6dfwelgdg1Wk6eoStlHc/r5n/5V/mTwEGALOVkZrh0WmoAAAAAElFTkSuQmCC'\n },\n {\n country: 'Mauritania',\n code: '222',\n iso: 'MR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFMUYxOTgxNjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMUYxOTgxNzE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFFNUVFQ0UxMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFFNUVFQ0UyMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+I0M3dwAAAo9JREFUeNrEVjtvE0EQ/vZednx2/CDGcQiJLYMQ1EggRMkPQKKiA1FQIaVKRUWDxA9BNKRAogWEoKCFIgoSBixix1GwZRs/78W3xyGFxmcfyKw0utHu7Hwz3+7Mnth4fmUfwBqlh8WMFKWuBQqOfRcCrkTZpQkPA09BnyL1KGMuYEFxJU+2jrxio0DZp+7M62gWey8QOSxPICVcZBUHd5bbuJtuIUc9o7gYe+KPPaGshWUowVTSKSO0KR1XxfZyC1vZQxp4MFyBh90TsGhtENLm1yFyjGte1IwnBD2tWTCF54Mm+K07OnZGJtPiVq4/GydQs2JIkgnXt3FR4h4bIjrVMruL8QHW6KhLXWZgktoi5cbBJq7Xy8gyGFO1fVBpIwO9vNRH21GiUz1wFZzVx1in45c/0sgziJO8UK9HCbSDQOR5F1T7V6CWgavpIxQJPuA6VCdaxrJU3pDWe5kjnIkNUZ3E/YPXOS/BVilGUE7VSQxFBrlF27cMTA0ps6nABUb+tJfBnqVjb3PXp/EznR44GvpkQ0qTepVzeWb3sbSLBjN93M1xrx0dWJcGiodbjTIUOq5V3uNBrokLzEyyIeWcPsF9zh1WPiBJ/XajBFfe9pCiEuzV3WntUjqXNF4i1a/WPyGeoDlvcn8cp2uBpDEE4kN4wySufavgBY+mrI/YVKbe6p4WVugOS6ZsjPFusoRTX85jm5fnptnFhjHyz7vOIJ60VvGos4KmraFEUDeklGbK+Hjm33meHTo3eX4llS2D/r+yZfY4t8y5FV422xOzdMzwjH8P6TAt26PhYES9xkbi1zUbRo6MeIHNzA/NvK+KBJDtMCacuXrzX71O/3L8N2At+OVJLfjXp/dTgAEAlE8F1+TZHx0AAAAASUVORK5CYII='\n },\n {\n country: 'Mauritius',\n code: '230',\n iso: 'MU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFMUYxOTgxQTE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMUYxOTgxQjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUxRjE5ODE4MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkUxRjE5ODE5MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+lva3PQAAALZJREFUeNrEVsEKwjAMTduIbjIcO6h48CO865/4j36QCB704BBHq4iMNWbQQ78gefBo6OX1JSENntfbGwBsmAFkUDHvmALIThFxC0rABf10hB+mjCmOQppjliMe6qOO4yc2NnuJFCya+NVxTL7QEZ4vvUpzmfayenFQMwchYcfsDPUTLzy1RgQculKnxm7a6wj7z0xncu1Oe0oXJGiY8PouXNZtUnDYKNVY7z9OK08lvPqEvwADAH3qLsG8TnJFAAAAAElFTkSuQmCC'\n },\n {\n country: 'Mayotte',\n code: '262',\n iso: 'YT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTFGMTk4MUYxNzgyMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTFGMTk4MUUxNzgyMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNTg5MzRERTk0QkFGMDJBOUYxMTU2OEFENjQzOEYzRDMiIHN0UmVmOmRvY3VtZW50SUQ9IjU4OTM0REU5NEJBRjAyQTlGMTE1NjhBRDY0MzhGM0QzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pK5/OQAABEJJREFUeNqklMtvG1UUxs+8PbYndvwKiZ3EiROndVJIE5M0BSSya0slkBBSFlXYtGWBhAQCsahY8AcgdlQQiQWwRIIltI2g0ECqkHfckCZ2bCd2bMd2bDLjGXtm7mXkCkTVOKnEuaORrmbmd7/znXOGwBjD44H/uZPwv4I+gqsjtLeHWUonGXDYILIBPQGCodFyRCvlqbOD2uIKBkQgRDodmKYIijP1nyaeQBNHqMaodu2tymrEdO1NlM/o0TR1fkSdnSG7gpgAmufR1qZ+LkzPLAAF4sMHzJWrtisTlME6UTXCupbaJfJFvL6B8lkIDuB7s9zgGb23D6an6edHyM52+vKrWLBXkylqbp7UFATGKSepRhhUTYWNda7JUcmlye5Olub19YfMaFjNZbUffmQmJyGXpZub1UJGUyk2kVR5gho6xxBPYcgj7TKA2TipcTG1espKXS9z1AtHoGPR6KEoGldfsNfpdH337R/xnaJVYCsKMBiZeCKTq5oYeOfdlzEm5ucWLRYzb+WDhl3He722vLK4tHTh4oXt7djuTsrt9tyeTn/+RQTAVq+TWk8JB3uo9z+8mM2kFFkaeHbg9q1b+5n9F1568b+ox9ItFgqxrehwOLybSICu8RwLUHN5OIPb2mZ3ubk2n2N0zAtg6gkKAFWEsImlY1tbw0PhUqEYi8UaohVFMQvWUH+oqdkh2B1iRdKqUjqrG+gSwX/86eDNr0cl0g7QXKlaAB/mCwW7yyM02f3dfofLWZEqDQ3J7xfaO7yFwl6gJ2BsC8UisFarRTXBDk6ZP7uR43i0/qfEAbI0+YAQ/P5OlrNyLJPP59wtnlq11hCdy+cye5mJidcl8YBlOIuJ38HE297IDfioGZh0glRA6wS9CrBlfiNy+FoXxRnDKIlFl8N+f+Y+wVChgf6jDRk7P1aRlampb6bv/LS5sc6wNEfS7Nq2k4bvJ90uDzol6Hcm/AIPrbGdGgaKoePb0V/u/vrl1FeJeCIcDjdUbTFbrl+/+tvM75WK6O0IJJIJ5O+iSDanwaqF7eX5QBHNeoUACSzBIKSl0nmXu2V/v4gxfenyKyc0X7lUpgno6Oi02e3VWjWSy3pA9gB8cDOJALFAvvfJA6Njorr2lyS6SMpmszubnYokl8tlm8123Mjc+/muy+0Ohk6TBJFMJDPlsu/wQMwfMCarVsxg2oQ1XM3vmtva1eEhLEqhgQFZVjKZvXg8Pj4+fpxqT0uL0doOp0OuyLup1HOhEOU8Y6uPclySkKZ12Gy4PjzmWnVufmE9sur2PLOTSDYJwsmDvraymk6njNJ3B3pdbs/q8tJ2dLOttVUURU3TKIpS5Gqr1zsYHlFVZXFhThIVn6/jbHjoqX5PjyKbzao1lWXp7F7GarUKVmutVhMlsVQq+3w+BKQkiX2n+hp9fhxa03WSJIx19FNNk2VZeMKHf+NvAQYAoQ8NT92b0fIAAAAASUVORK5CYII='\n },\n {\n country: 'Mexico',\n code: '52',\n iso: 'MX',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOUI5NTczNTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOUI5NTczNjE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUxRjE5ODIwMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE5Qjk1NzM0MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0LwZHQAAAaBJREFUeNpiZMhw/8SAD7x4zODm6M+wM6+NgVjwKKeS4enUTgYOQVWcaliAmJdhAAATwwCBUYtJAv///aOfxf+B+Pev7wzPr51g2NwWydDkb8Rw5dQR2lvMCMTvX19guLWrleHW+bMMBw6cZygPtGV4fvsyLSz+D2f9/PWK4T87N4OgmgvD1TuvGBz8XRnEeRgYVk1sRKj+/5+giSxE+ZKJGUy/fHmLgecfJwPTh6sMHB9PM/z5+oXh4zdWBo+CLoZf/9kYnr+6zSAupsrAwsJKLR8zgskvnx8xHHv0jGHJ+a8MD8UcGFyqehg+Pj/J8OXjdwZbHy+GJ88voain2OL///6CaW4ucQZx9tsM/zS9GJZ8MWa4zf6HQaK0kYHZ0ovh8/MzDCJCsmAD//z9Rd3EJSGlyyDCI8WgzXKZIUDoFoPj48MM7L/5GYT5XzJwCIkxKMqaQf3LSJ04RgaSKk4M/C/OMdz8+53ht0kOgz/7WwZhEXEGaRkTksxhISc7cUsYMRgBMcM/YOplYhyAIpNMS0crCboCUOL6PBAWAwQYAIwVfZVkoDrqAAAAAElFTkSuQmCC'\n },\n {\n country: 'Micronesia',\n code: '691',\n iso: 'FM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOUI5NTczOTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOUI5NTczQTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE5Qjk1NzM3MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE5Qjk1NzM4MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pVbFKwAAAjtJREFUeNq0Vt2KEzEU/jJJptMfu3+u7ML6i+zdXop4JSi+hyD4ArLghe8h+Bi+g/gCXgkFvXGFdi1ut9NpM5N4Tqq0CGmbcQ1th+lM8p3vfN85iTh937tAjeHc/CoEag1F32uxkxJCy8vKg7dTCfsnipg1YidIAj3PDW5uN3B3N0N/PINMRC3GUWM0q3BvL8PLR4dQBPj2wzd8HU6R6QTifwJbS2mlz1Y2n8psZ5VDU8etI8hcUQKVBNwl0FY6ZzgxFsO8hJbialPNUS0vyQCjosT3C+vvOYCGErAuPCcamI10SZqya1OZICUANjCnt5vJRfodOx2Ylo7Sbr3r2xSQdTWAk9/uPb7RxNQ4VIT4c1IGHcw677U0qMjQbUh87k/oqujObV5O/OrYVLhD5fL8wQFOnxwhUwnGMxtkUJDWEA6vHh/hxcMD3L+eITcVQiWerBKXyWn64TTP/1rvwyaVlab3kzUtLehqnjig5nBy2IYhsQpK9w9KvQqk2lCq9zvaS8H6fjrLvfsRCDaoMRtqv5OiNyi8ftwgON2h9tigZ/1Lg6K0PrjtplrZSle6uiKmvGCmF8EwYWbH9cuDA0ql8M+41LSUXtd1/XttHf8tFbPfIjY7rcUuNSS3L0uwyY4VvUlMjfWsXz+9hTfPbnvG+Qq3X1mvFoSqiBKnm9kyOUUp3qRb/RNwh/bfL8MC7z6e+c7GjWKXGkfsnhy/OxEAO7Y3mHiWOy1V6yDAwKM6xx52+/IRKHb8EmAAirfmzWzPA+cAAAAASUVORK5CYII='\n },\n {\n country: 'Moldova',\n code: '373',\n iso: 'MD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOUI5NTczRDE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOUI5NTczRTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE5Qjk1NzNCMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE5Qjk1NzNDMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+UdXXEwAAAipJREFUeNrUlctrE2EQwH/7SDbbmI3m0SpF2iJRaPEQ8FJE8OJFD55ETx5U0EMFEfInWBEFEfXmQfAmCFqhFKHSg+2lBsFSNAj2UFqatNQ8TLN57ToxBy89rCUxODDsx+zs/Ha+mfk+Bd4W2VVU0YM8u5fiauo99jc8iXYYKq985G+EUKOOGHb300VD9EBUeiR7AquKqPoPwS2gT4pTrYN/PwQi4Dptm6J0C9wQmCG9cghqsn76MMT8bAgzKjb5AUPeuY0ugI04pD/5uH39AEGBf8+FWVi2KLtwU2xfMhpGtAtgRbJa/Kzx6EUfM48tEopNJGsz9SDMk5cm6SVNxsc7WPfsuQPhqM7l8T5G5n5S2qgTUFwSQzoXT5lYluRQ9Z6KN7A0jr0Nc2mNuGUwGxvm+KUVlKbD/Md+Brc01nMqTkECxju81a0uNnwFPuQd7gYusDwcZHpglInCLcqObPs+G0UazHE6CZYGUiVo8ohJrlbi2sgb1jMx1paCXBmdweovELH8KH5oNrswTlZYJ7xR5Ky2SKigcsK/xmTiNdsrVfJV7XdJvM6z5+aqb8Lp8RLJ5zD1TmNhuohhNomdV5lIlRkccqhvieNAh8ENG6KW6BicsRxWs3l0SfLkOZejSanFqtxKO94DegYrArFlXNwMjB1zuX/nR/u8NgX4Vd7rbZ+uXRKt4JWsPKV7Hal7ZbMN/VvZwycCap0VtT/r/+o+bmVc6gX4lwADANw8m6+4QijQAAAAAElFTkSuQmCC'\n },\n {\n country: 'Monaco',\n code: '377',\n iso: 'MC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QjA3RTdDNjE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QjA3RTdDNzE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRCMDdFN0M0MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRCMDdFN0M1MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+o1HuEwAAAEdJREFUeNpiPCeo9omBgYGXgb7gMxPDAIFRi0ctHn4Ws/x5/35gLGaXlRkQixn/fP4yICUXCzMP92iqHrV41OJRi8kCAAEGAK++Cy3NEBqaAAAAAElFTkSuQmCC'\n },\n {\n country: 'Mongolia',\n code: '976',\n iso: 'MN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QjA3RTdDQTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QjA3RTdDQjE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRCMDdFN0M4MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRCMDdFN0M5MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+XDrqKwAAAkFJREFUeNq8VT1vE0EQfbO7vrv44jgKiZ1YQRb5ATRRJCiQkKADGn5BaKho6egogQ7xExBlJBoKUDpEgyhQCiJSxBKREcaJ4yS272OXub1EwiYFEnuMtPJ5NLo3b/a9OfpaX/4GoILJMHxoPCW0xnynjacPn2Dj7jqW9lr4m2gvLuPG2w08evwAB9U5aCmhON8YqzoFS/cJImCwaQOTwnkIPv3JpO4Rpq4lUBc19DEKCTGZSH+SBVx6eYLwVoykJ/4PsPAZvEM42VSItiRInldVBOMYKF/nMddTTN1MIEO+40HRwCwiMyKEdxIGH6F6L2JxaZsrBphy+yQdATVrkHYJgw8+hh9Z9iv8f0Aw0Z/2+pdQv3tWNTIVE+JtbqAuuAE+P1hs8xpU4prYMWN9SCDfoPmpj9qzAQ5feWwpgT7/qkWNlS89q/C4Kxwz1nkLqqYRrKUIriR23N7lFF5TQ8zxmeUy7W7cY3esE8JoS0BWDfzVFIYnEW0LW2CGTq/4lPHZeh7xy3lNVu9HKDVThLdj6CNyq6pz7cSsM7ZJSyBpSwRXU4jMx0UDizJbmTf3/gsf8Q7h4LmH4zeKYbVz4DE7kTBQC8A0j1g1mCmryVzK2ZJX4ALRvKHiXcLRa+6HDIbvJQbvJEwCKy7njMWMsWuxtVaxGyreEfi+HtovVfY93l2dsb4uXeCRd90BVyxvfmfEVspGKhd4TbKVbEPMNvqs+FlDBW4Z7/GYK9m4M8CzhSLK+XO2KmUtF5dxqLFfAgwALQ/bbU/KwEgAAAAASUVORK5CYII='\n },\n {\n country: 'Montserrat',\n code: '1-664',\n iso: 'MS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzRGM0JBODYxNzgzMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEIwN0U3Q0UxNzgzMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iRDk0NjlGNUJGQkI2MjlGQjlENTFEMUY4NDU0Q0QwMkQiIHN0UmVmOmRvY3VtZW50SUQ9IkQ5NDY5RjVCRkJCNjI5RkI5RDUxRDFGODQ1NENEMDJEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+w2IgWQAAA5FJREFUeNrsVG1sU1UYfs69l7WzWxlt1466spISNs02ZLgExpeogAmbGwEyg59hQKiO4PwIKmqm4JQQ1MVERhxkGfiDRBf/YACDQBgyzDbiGMOMwcCytdCt++rXbW/v8dzjiIs/jJnun0/uj3vved/nvO/zPueQ3u0vOzesrOtMrm7suNvSDJg/r3DtOPH+qZJdq4+KCA6KYugVu79225wxZ57jjc4Rb4AgCX8LCogihNlfeDY99el63/mOyozde56dkZvjG45DVgdUMXmG/gXbrbYK/d7qJ/YLRZlf0RFfgGXhn4CClD5TLxuMi/WDbsst83NPe7MW9dZ/Pb3y+ciez6jTVRjrxtqNje3xYwePR70DzRf6Y0qc/MlOqFZiAhAIBF7u/aoFtvbITISj92TBM0rjQwGHxaBEYr+FFDOoIUUYy3DJXl+6MjZrdroqiA/++rhPTSeI8Hy2wTAQBh4AotBUMhGobIVTE6nVmD0QGR6IhnJLltgTY0l3ro+y0HMt+kcLZi3Nv/lDc9DhaDG7bof9ZJoUI9MAhVfGeP1Wi2l3zebs/NyermsfvPetp+8OkMGb4B1h+uvOskU7X1ywLT8uN538qFOX87D1yaqyK2/W3ly7udziN176vq6p95MbabcVC9ovExoDJIqRh1ymtw+/GxGtKf4O0V4gRwP73R92dPURmJlKTBBx7ztVDUtjRT0/1lUdeqnR1/STtDpzZFnf6XtZ88sqznzT0p06x7Vlvt5t8iVdvXxhCImEntcVOHJoq3NZXs0Bf/jSzvPXjavW5a9faKtvOAOwAEEgVHIEB7989ViD39olZ4MGWc7JX5TQ0LxrbTGkSj0Xf950sX1fcfGO5UW2tL6kRCQGA9fEVLTYebYfqXYb1dkDROftx4rCmYAFiEMbKSFAGZDJvxUCiVVEtUwrk5Joium4BwJ87HYWRqBwH/hPn6qe+5jdXX7YYDkuFWx8a01p/G6woHAXYGTUbIxsGssZHdFUF8bV10Ykcz+xF8qXkqE9bG/Ky2H/5Lar5LXS4XKdu3VUKMnrXpKRWryl1+u5QbS2CBOExW3FZCBSDM7NmfdxZZhEznqiC498l9badoXABKjjvp4s9R+HZRSwpRj0wVAIGGIG5w2NHxkJkwTlkzBShDkvuA4Tt9YcSvCvQO4fbooJVFSlEhsl/huQiTefIFBJVVVMARLquOGmBP9T/wW/CzAAKWlmnQeZkEoAAAAASUVORK5CYII='\n },\n {\n country: 'Morocco',\n code: '212',\n iso: 'MA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NEYzQkE4OTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NEYzQkE4QTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0RjNCQTg3MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0RjNCQTg4MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+AgxteQAAAiBJREFUeNrEVktr1FAU/m5uMppOY9up2rEVVCgtFEU3iooVdNWFe3euXAiCf0DsTty5E6VbN+5EBdGFuFGLG3Ezm/rAQseBthJppm1y8/JLTEREnHScmV445Obcc853njcRDQzXAYySHPRmWaSverbBb8+egGvYptUWcEjaCZFS2Caw3o5SHwGXjQhaDFQCAdWLiImFIardP+biwREPFciU13XgXOHRGYVnJ3/GKrqR6ogkSbsJKVMIDctmgG9eBE8JNGWMaqinuQhIq9SICzjTEtikCZ+mbhxdhz0cY6oh8WKSHFre1GNcnlnDqUUDtWqAUZ5dq5mpE+p/gUMaSWq6x9Zw62oT1opA+ZPA9GcDygBejvl4clZhoxzj3k0Lu+ioXaDqgjfX2r8ujzxtVfq4YPq4cs7Bmwkf9bkRfDcjjF9awYX3Jdx9bWG/kmhkA9Yi1U7LiHMDdVZwYtPAbK0fM+M2Lp63UwjLFZhd6CeonsrITs9x3s2vRhSEJvB2yodO5Dggb6/C8bq+pREpLGtkPf5w2oN7MMb87UE8vzOI5mSMx6e99FR2A7hC0adDjPYj8OF6BYeDEk64Jbzj3lsE5vsUBrYw0S2bK187aPRLKWSTSexTGpZY4QRmjO9L5K9GEQ4EEl6xe8wpXOMNGjzErpVpo4W/miPZD/AiKfMkkel4cyUG3Swa+Qd//S/8rnwWO7H07JfH6vGvj/NDgAEAfcqvgcMO6pAAAAAASUVORK5CYII='\n },\n {\n country: 'Mozambique',\n code: '258',\n iso: 'MZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NEYzQkE4RDE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NEYzQkE4RTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0RjNCQThCMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0RjNCQThDMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9o9/QQAAAvpJREFUeNq0lt1rFFcYxn9nZnez3x8xGpMl6xpMNCaglCiliAqKYEVbCQriBwreFEuhsVAU71oopRRv2hu19QNBBEVQLxTxoqEgGsvWoIwSFzdo/EjiZjOzu2YzOzOeXan/QGcHZm5mzvmd55n3fc4RP36yafzYlmXteFWDt2VQBA2+IvJ+KRx69BvJRGTv9l6mkjGYKoFlg2joAgzlQSLMxvECmVPDrPlnHOYFIeAF22mobEVxHEaaQzRJlUOX/uW7axr4PZAINBQuRuL9es13S1obNi2WFMtcSs/nwJe9FFvDMGE0wnrjIxg5r20J7DmFFbM6z8J+dm3tZXhlEkomVKV699iGp/a0cFjgeGkKCp63ldBex+gtV7h8YYi//AOMHvycuWmdRXgxccd+cT/Ur6dVf+Se/g5t5WsGj5tktqW4ZZT4DJU1/hAPkgEGDI2sWWSpJ4QiB9r/V3FHK/xdKrBTH+XrxRXuyBn/CE7QZXTS0T0PTa+Qzs5xWoTZ40zwhJI7VZ1IOAz1P+ToL61sWNXP+v0ptvw8wPeFCuGDj6nM+Hgqq7wvsZCxlnUcCaTcAWsZL7/mekg8DbL75lp++PZPXnWfYPhMH85PUayKQAQsqvV/KwgJ1RWwpyUOhx4VuGsFuX6lg84Wg7F3xzm5Y4p9083Mj1dpKwuy1jTrqqNocgmugHXTpll20/nfX7Fs7AhPNiX59HYWezDK5OGldM3EuOrz8lVVo0hUDgm5U9WZwCo93a5EnNVTjF2OY8358KVKtPaYvLmp0jbYQ+6bzUzmDTodX731HNcCRBAxdR+epiqqv4qRj6N6qnSfzBDbL5NL9i+Wu8lVD5CaBF+sgl1RKOajxJdP0nnxMb4+E/ulfD0rk0t1N6vrYKE4mLJtTKuJ9l05Os7mPoh8Vqv7/75yGSyk3Nl8UO7/Fl2/jZA4lKeWEdbzxgA/gsuFMOH0jLRWw79a2v1GWltuLLQOXvDFCyN1LhtRohhWjg87kNpQZu3oY7wXYABi1iBcy/DE+QAAAABJRU5ErkJggg=='\n },\n {\n country: 'Myanmar',\n code: '95',\n iso: 'MM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMEI3N0VBQTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMEI3N0VBQjE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0RjNCQThGMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0RjNCQTkwMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hqhQlQAAAbNJREFUeNrskrtuE0EUhudy7L3E9q7XlxDZEgbFCRApQkQgykjpeAFqyrS0afIGKdLTIB4gj0BKBEWaSFEig41jiPBtvbb3Mrt7MpZF7zWiifJLoznSGX3z6z+H7uweT6nCGXUmAjg1c4ppqI4T2I4vwljTwCZaKbI/9I/Wov6I6WRhQY/l5OV5oZnP7WyVp17ouaJSMDdXUp+/XA8FumnFpWkkhBIkScQ09BGJ50fP1q0VDfZeVw72X77aLjNG6zXTdUOyrJg8cYxFS7vpuiVLf/umvvk4//7d8yePTCFiXQPZXR6NBKVHy1DqD43u0G91HBn9Rs20TCWXSUfRP6Ald2h7ugqN9ohR8mKr1Po1Pv3aUdJ8NA5kdzk0yPEwxnyBV61R3lA/nlwYWaX9exKE+L3t2OMgVchiuAwdfkJxQlUosW+NcROw+oD/uB5UVzN92+tcMlirOah7CLF0QOJk6EP7U0j4rNLp4DwQZ1G5oP85d+c7HvXQp6CjrxExpWoiNPWfptjfhaWzkc4WRuY7r6U4ieXfLSgLwnkS49CE1QWf8oSBMPLfdI++R99F9K0AAwBXEavacm2ESgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Namibia',\n code: '264',\n iso: 'NA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMEI3N0VBRTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMEI3N0VBRjE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEwQjc3RUFDMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEwQjc3RUFEMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+rnH82gAABORJREFUeNqslmtsU3UYxn+n7dq1o2Mb7OJUBGZEjck22ECHiW4EI4iiDEb8IoPAMHFsA+/6xS9+YAheEgNjDBkDhiSKSKJhExmg8cKQXbgMAxHGGDCB9bKu69qe+vb0UBiXgOhJTtOe9LzP//c+z/89RyH3g7NAupxu/uthNMBgANo6Medn8dX2cmYca6HjpTIGunowJtjD/wp/dJv0L5ELSkhujIEBCyhyxeKDmMCdiZqM0HlRlu/j+XXlfDkvC+tHqzn45ttSKxHLiPsIBQfBYCA06LebojeGRd1xWG0D5GZ2EAopNJ+8H2+/FWze21O2nCK2IJuNG19jTqAb58TptBxowGZ9FKPVpokqhhh8jm5M+IkIiyZBI0mpl5iVfYzJGZ0EVAPj7u1hZ9tDXHDERxYWPm9G6RxgxtoythVnY/24isPL3sGDGXtCLiElqAmE/EHcnhZGpzxO+qYqXTjcV6GdOqmNwuyj5IzuxmIKMirJiddvYnNDHsR7hlL6hPKQUE7JpraulKLBszgmzaDl911C+QhxYUo1IJVNeC+fIQYHefNXEqoqY7Fnpy4cMGIa4cTljJUAKIzM6dcux/QKjMOKZaQDn0dabvGLqE7Z59Mo6+dnM+yzao6Uv0WfRplzHWUrGSlPkLppPfunplO0+1XO7/5aFzYGCfTGk5joJeRScRyK1YhVZ4ikxH58l6XV8RK0gCqUp7HkZ7Jp8xJm+4UyZxq/HGzUvIxSKtdSroD15Szq+551y6dJHqS7o7J1YUNIC1DD0QyS4rz0uIcRCCr80ZnODx0ZIipt7boErgFeqC7TEhu7cjWH33iffilvTxRK1EhcdC81yq117M1PZnbDQi42fQtp42C4DdQgV1Mt2+ZidzK1eyZy/NxfsnIDv50Yg7vXDKc6sDydRe3GUuaqkljx8pDupS1MGQpe46WTvGKhrKlgsXcXayufEcqQRomqaqJaLqPCsn0Y3ifb0EzjgcdkIRKg8+clRC6eW1PKtvkTsH0qXlbcxMvBMGUbY5MnkVa/gZ+npDOroYSepu1C+bB0zBYVjG6IIb/C4lZpq0H8bD+DpSCTzfWVFHo7xcvptGpeXp/YLqG8TN6CMGUZC13fUVM5TaccP4Ty1sJX9qXLx0wpsuWVLGyr1nDk9feEUrxMmCBrU4cmNlW8rP+JpvwRzG1YJJQ7IHXcTSlvFJYxhl9IW09jfiqTOklskXoOR65Mn+YGIdQTG/VSp5y3HDYspcSzi+rKJWILN3h5a+Ew5RmhdMj0qVoSnT5Hlr2rUcZHp4+e2L7WiJdb97G/II1C8fLvpm8iib0N5VDh5pNYp4zXKAs9p3FqlLqXtuunTy95C1dBdelVL33qHVNeeygza5pddQsm2O2fCOXSCGVcwliNUlEUVBmNfZ52xoqXaVs2sK8ghaLGpVz4UU+sxfavBPXDrYT+POG69HKp/bgkNu7Kk0QKKYarXmYVfwhfVFAi06f687LI9EkeE6EkdDdPbrfSbh3t8np9dmviA1LiCqVfEtvOgyl5ktha9hYkM7exggt7dkS8NN8V5RBhk6rEE5sUG/HSGMOgq4eAv4vJxZLY9ctY5JEZu+JZeTm4Oy9vGS7FbHZLsfBbiDvodGKxJzG+ah2/znmSFxtLIl7eI17abf+LoP7G4/5HgAEAvGpSdeM9fnwAAAAASUVORK5CYII='\n },\n {\n country: 'Nauru',\n code: '674',\n iso: 'NR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMEI3N0VCMjE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMEI3N0VCMzE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEwQjc3RUIwMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEwQjc3RUIxMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+zsfIiwAAAWVJREFUeNpiZNCuZ6ANYGKgGRg1elgYzcLwm5l2RrMw/KeJ0Yy3N2jzsP/BJsP49+8/oKUszEwM/8mxnEWQ+xcvx290YWbmb5++f//3l4mRke0/Izc/J8PffyS7mkGtCU0A6E6GJ+8ZhLhs7dT//f9/9PAtho/fGST4QaaT4npmBkFnhv+MKOjTT14hntQU+wmV3iFuOv/Z2K7fev3z408GFhZ0lXgRCwM7amj8/cfC8N3PX6+n0JqDHZQ0uwusvnx8u3je0Z/M/0AeIj9d//vPyM7y9+cfDnYWaGwwM/3+9YeRjYXh33/Ksgwb8+8//44cu7dh3w2IwLYjtw8cvPXj9x8GmGVEh7WYA3rMcrN/eflp34XH7Gwsxy8+Lu/e9ezxO0Zh3v9//4MimYQUgrUqAKblD99AzmRiZPj2G5haGH7/I8lc3GUIMJ3xcjAAnQk0kY+D4Q/J5oIzOh7AyUpJRgcIMACUJouaxkAcBAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Nepal',\n code: '977',\n iso: 'NP',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRkNCMjg2OTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDRkNCMjg2QTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEwQjc3RUI0MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNGQ0IyODY4MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8vLQDwAAA4RJREFUeNq0lXtoU3cUx7+/+2rSR9L04SNWbdX6RuhGcW51uKp0FXVsQ9gfUphTBO0/goj/iCCICBNREJyzjk7ErlPEirZqnYiPWtOVRTYb1zZVY9NIjbFpk97eR+5OkmL/atLXfnC53PO793zO+Z3vOZcZhoHRFvvspyoIGYeh9rlhaFELxrOMpspR97hEH64JPt9W4Wt0QbL9ADGTPEUwVSshOFcLBard1eKZzqqzOcq7eqTOKgQnTkkACcG9fDoXSMnBtrfNuOc68eXWHspezNgHshF9+PofwDwiUBkHp9kOy1AYZzuquQvtp4/OD79ugtm+ErxpwtlzSQWi62DBPnjkMJwaj83eJtx5dvyT3a/rHoNLOQLT9GEfxtSBmSTG7xyHxbUXUHj5N/xjzoNuMJzw3cB118n9RUFXG8wzyyCkjSv7hGDF0430VcVY7LgJ25ZNsH2zASue1EP9Yi1a5AhKBrrQ8O+phQde1jQQ9GcKwBJ3aUwOzEkSQm1/Qw8GP7gy+19hZmsj5qtBqLwAW2QIh15cgufpwe3be267UxmrABOTgoWEm9NyoTv9cH1ejuklJXiZYsPvjjeYwS+AlF9M9ddAp04SZChQAigP/JXdLlmr71kWVULX95CLhxMCG6pKgysTgibg7YMbyCDb/SV7jdb8DUcQ6q4lsp0UwIaFQBHQ+2pQhBbOp2dpwhmDRBVRFOjyIDTzXGTrg2hs+5F9F5G/vZW37ijCXmdMUGxklGpMmHyNoxnrggJL6RosvVmD7DvXECndiFrPuUXrfX8EqJU+Hu65uKJjqh5bWyXMWH9HvmfnY9r5UxDsM2I2ueZX9K0vx0XnSW4LJzbdzfm0GIM9zmilx/MT4ZINDzFv9gdodJlybQgULEc/xXyl4xdxtb/5MbXRsrG20dgmF9VY83mhv+kdqaE/AL3bDS9vRYhG5tWOc6ZVfkczwRfGMzYmDxaybJC7OvGiYjcGHjlil3vrLoSfP4OJ1N4tWSDT36qusyqtONDaQvCCscKFZANEVHj037qN/gdPYj71UD+ktEwwQYBAovISfI7yHvXtZzLKCne2/Jm5ogiy79WkwCZtyJrDwuBS06GG/fFg0mgmkw3KSFYq42FXgmhpO5b11YIdXXVZHxVBHXg6YbAjNc/z9bzvrTITjGSHF4XPpcxVQ7dS49dSdKVk9o72/n8CDABnj2XIyb5lqQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Netherlands',\n code: '31',\n iso: 'NL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRkNCMjg2RDE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDRkNCMjg2RTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNGQ0IyODZCMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNGQ0IyODZDMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+dLNUtgAAAEBJREFUeNpiXCej8Z9hAAATwwCBUYtHLaYZYPz///8nIM1LZ3s/j8bxqMU0AyxK7j28A2Av72gcj1o8/CwGCDAAa10IGBJ1C8IAAAAASUVORK5CYII='\n },\n {\n country: 'Netherlands Antilles',\n code: '599',\n iso: 'AN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0ZDQjI4NzIxNzgzMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0ZDQjI4NzExNzgzMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQkE2REE0NTQ3MzVGMzJGMUI0MjQ3MkQxOUFBQTIyNDciIHN0UmVmOmRvY3VtZW50SUQ9IkJBNkRBNDU0NzM1RjMyRjFCNDI0NzJEMTlBQUEyMjQ3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ZDn+FAAAAexJREFUeNrkVM9P1EAY/aad7UK72RZkNSgmROFiOHEyZoUQIgkJRw/Gm4khMfHf8KxnxRMQTsqJAyEEDv6InkiAhUAWVrbID3cL2y67225nPmd7U9L2ZGL061ya7703r+/rDEFEiCxndcUcGVOuXAVKW++cez/M7tk54/GjaKIEf6z+VWkinl8LW4vEEmksItWj9YKflG1GBBglCj5A8loiXnpxaSu8i1SmF2vfTuQ7tKmf2S5y7OhUuXSSWS5pZIdxH5CEfy48i9y7KXwDyQBWHj4fNvS2qReLQNKAFkA1yJNEBGKEWRbMtKE4VQ/9BoDf+G5VLIFngC5Au6aptRpHZGEDkwGGgp1/Wy1pVU3OTI8XCo5ZPBbed7b2c+tFgDRA/fatztdvRj9/PD6vXAT+LisQIX0/JCjCGG6sl/O7tuuKyQnjqpgfgC1seq68mSvl9yqMkbBMhHQ2dIjIT0/LrusamY7BwZvFogPgZYf6GCbKJevo6IyxmKyt2H9f7e+dmBz49GFB4B88yb57v3d4kA9a9agDMfX2S0Rblmgtt119+SqRUj1seaSSz85t7emkeu8u580oSxhb+1+Ft3pKwes63tAbeltNsFbnY3nxp9EpVE2gSrILWABWuAdm92HD+F9vvr9R+qcAAwDK6wIXIkUhaQAAAABJRU5ErkJggg=='\n },\n {\n country: 'New Caledonia',\n code: '687',\n iso: 'NC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTc4OUU5MjExNzg0MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTc4OUU5MjAxNzg0MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iOUZFRTg5QjJBOTY4REI3QkY3NEIwMDg0OEVCRkM5N0YiIHN0UmVmOmRvY3VtZW50SUQ9IjlGRUU4OUIyQTk2OERCN0JGNzRCMDA4NDhFQkZDOTdGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+xxyn+wAAA1BJREFUeNq0VVtoE0sY/ueW7CZNm9oY0jRFihjFC2K9HUWOCoceUEShL17w9tAXwSfx8qA+iFpQq0/KkUKtep4UER884PH0CK36oIiXIN5trVirrYk1SbOzu7PjpFU0wS2t4DK7MP/MfP83///9/yKoPQ+/5sEjLyOJ1OfrTjQmaDoisCOxDp/KIYOACHAYBDnoSXDEaNy4QTvACPTFoO9jxZS26TN6YxH+wdDb2uPWqxkwAYGvH8TwVeSYoB3EvPJlZdm4jsYjf69dfr+sCrc0+X5flGE7/cdb5xxu3gQlUyDSBaYDkrqhI5h1tdjGMHSXxSMX2s41xiapeajpoDx5CrVdZtXxDED6yqXQsi0HHd9cCPYpGm686RKSKAwEeDPBlKez9ezR2CRqvAlpYR7w04aN/up4LterUaL/ufL9X6nGE1t3RoKOQXIgkYsEZtYWSWbwCX2yq3PWngx/V8I0WxBt+w5obkmdaQ7VrxU8aTEvNkvTD+pD865XQtR2ZZ21yfdzv0UeBQ36h9oecKTEHpRNsbsJ6S3130ug+vytsJEFX6kOdfaryzI6npl544+gOS6A1kw2WGWGK3E+RQh4mgTCvK6Odb/1rVihfHEpdIStfOhqaM84EpWYEzTKkkFCSRjL4QhKxZ5AqDyn00w0DGBr6h2SBFJHBUIjyBsTKQsGE1ovzfWrbAqFThmy0vb9BDAvu9YhgFCJkMx7leS1E05KC8lihK+DlqVFgS/pzO+mL/4hUMsVYRpw+ru91/7nj5+nb9wMrl/nMKrOgQmi5KIWNxBkLN2tZDbUVxUgI0m5N/ks0PL0VkWc2ykWmkj279UPHIHD+5iTNiQGFrT+veJp8kyr3qZZwKWbQs4uCBbbNAxdFatbjasNd2iNOud52ulEInrimblwKcKQftnONv9X27OqCkqMoei76BpOrim2KRo+Am99s82uQ4sfntndc7r9y8qFY7rvt8jqi1MHYtW0NCW4Sqhr7/wR9DC64s4D0DUAt5/T7ABYlk08EK2E+TUQooAHwRJIVZx7C3TpfEpUXOnvI0zWYMFcAIEt6WHYNAGSWRCG0h3kFfrz/RojzmUvtxH+cpV8mkdiOmrofG0MNbZvIkBy1H+ZzwIMAI1PbW2aWDCwAAAAAElFTkSuQmCC'\n },\n {\n country: 'New Zealand',\n code: '64',\n iso: 'NZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxNzg5RTkyNDE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxNzg5RTkyNTE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE3ODlFOTIyMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE3ODlFOTIzMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ycsmVwAAAzVJREFUeNrslF9IU1Ecx3/nnHu3uc3p5lbOWDk1VDQj+muQgVREUJGFqEQPSf8IqYeIiAyKngojCiItqLCIrIewsH8WQf8gJNK0P6LRTJ0619y/u927e+7pbgn9hR7cY7+n8/L7nO/5nPM7qOvA8ezyOS0e87EbvZ9bX0CatXlv/vqWE/c21FVe84EgTk+T9zmFHRW5gs05++ib4LAXjFr4uWQFCAYEvxVX0jS6/XZfw+5Fm7c7GldVHm/3BBlNpVI0xZiRjepI3561OUa77fCg+dSdkYhrFMz6H90YQFS5KUCjoEGg/IJGm3ZcVczWckt0G3Fp1pUFHYUDN9uhtgqfv2owpcxEXli+4lJXpLXpoRIT27rHYkERNGSyO0qdDmN9CW7opj0DAmjxL+hA8Xw143hQdkUw8wesOhxTmFdnNIf8Wh5/tdrZmCeLSPaZJgnrbdFVAaYHJE12h2L5eemnl/D7X0mdH/zx4OquBAFLoF/vqg+6v4YYKSorNntHTILPI6Dei1dyayozSwv8L3s8Ev40bVbG+Agy6JY/5UICAx5AkOP9elUxiQuRIxwHBoM2HJZkVX3CO2nka/pXVyzbV72gNIuX0UnNPFi6qOjO5Xd1hx6Vbly6ZaUlP+PdGDvod9ZHciXXICgxjEnBrNQZthT1rEymQEUIxwqzTTfWpD8fUzxu1UzcGLmwv+5MUWB2x+NzR25Xt7ivPwlUO0Jzh54N2udWbG278vijwWKtylVqU93W7rftblAYxkh3dhlf6UDN/RyNicATwChCWV+AdY9EJIXFnajoDQtX3G1s29lBLg1ZfN4wpAND0PtFfIDsnTHk6+htbX1/U++UM7N499DdL1GFaJgidQnk/jAb9gnAJa6Ox5JI+11hSWWqur+7Bt0esGQAjYAeAc8BlWFChvRpMOEBEwYNr+aEoQlQby7TBnoKLKEymHCdyn2n/LUQ5NXDFEuicSd/jAyeElTtlhQwpAFlyUYLSrHTdKtcXuw0QpQlFS1RHY9zTDyvPgmR/v6HTAltJB0DoZJxEwhBMOKkpiYE1JHxjoMsx9fJTM2YOiyg5SbXyUz9r+fzH/1zfRNgANDBXQHER7G8AAAAAElFTkSuQmCC'\n },\n {\n country: 'Nicaragua',\n code: '505',\n iso: 'NI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxNzg5RTkyODE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RjI4OEFCQTE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE3ODlFOTI2MTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE3ODlFOTI3MTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KfyaKgAAALBJREFUeNpiDG7/8p9hAAATwwCBUYtHLaYZYPwPBANhMQsQfwFiHuK1vGFg+PWD4d/rBwwM//4yMIkrMzCwcQLFhUmx9wsoqEny8ZdX74AW8TDEPbjBEPrgHsN/NkGGb+++kOrh/yyk6uDiE2Y4de0Jw+VbXxn+MTIxHBN8wGCtJklWUDOSlBo5WBjkud8wnHQMB2v8zHwbGAIkW8w4cIkrpOPraAEyavGoxVQBAAEGAHrPMKYO1i6mAAAAAElFTkSuQmCC'\n },\n {\n country: 'Niger',\n code: '227',\n iso: 'NE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RjI4OEFCRDE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RjI4OEFCRTE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRGMjg4QUJCMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRGMjg4QUJDMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+d5ixUwAAAKxJREFUeNpifBDExkAbwMRAMzBqNP2MZvz//z+NjGYhUt2HZV0/b1xmU9EUjKsi1uz/RIBnpWbXFRjuWDFcV2J4mqfz/+8fYnQRDusfl/Z92XuKw4CRRZKNU5/p68Er385spVI0/vvLAI8ORgYQ+98/6hjNoevEZ6v76/z//y9//Tz/j8dSmcvYk3opBKhkaj3DrSsMShoMOa1Exj0tEx/fRp3RjD5qNG4AEGAANauB5CbwRkAAAAAASUVORK5CYII='\n },\n {\n country: 'Nigeria',\n code: '234',\n iso: 'NG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RjI4OEFDMTE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RjI4OEFDMjE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRGMjg4QUJGMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRGMjg4QUMwMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+qCpo0QAAADBJREFUeNpiZGgPZMAN/leswyPL2BGER5aJgWZg1OhRo0eNHjV61OhRo2lnNECAAQBu1gQALTkVbAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Niue',\n code: '683',\n iso: 'NU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUQwRkFFMkIxNzg0MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUQwRkFFMkExNzg0MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMERFNDlDRUIyNzJFMTE3MjI0MzM4RjQ4QTlENUY2QzEiIHN0UmVmOmRvY3VtZW50SUQ9IjBERTQ5Q0VCMjcyRTExNzIyNDMzOEY0OEE5RDVGNkMxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+gBm+VQAAAyhJREFUeNq0U2tIk1EYfs/Z59znbbPZ5qU0nZp4qbRES41IMLooVn+meIkuNLtQGlhmhFj9iDAoyh8VlYRgJSVeEiSzmxgZeUMWbqNsOi9r07Xp9rnLSabkj5xp5MNzOJzDeR7e87znoJ8tje7RUXUjdMO1xkCRJ8eNHbxBmDCstLT2qtMT36qwVWtUDE66Ra3JovpC+FZ9Aq37oWBhDgCC+UHYbNP4WBDV1SxNrH+Wmp5WyQs7V1wDtnbxqaLdfk/gUcVXj5uSu1MwpKZZzve314Yci+odjaC1+UF+nfA3GI3ZuGwgAJWN1Z8or4p7JW/ayRWljkoZSAa4DIyZABYWxUxO3rCIT2/LrIuIzGhX9CpgEWCBK7Up1rdGJjkVI7B8kaav7x+SH9IBp3VPXU8DbK5ap/wYumpEYIpOyW9knn5u9t0WG7A2EKDbLncYiH0gpHv80KPtjdXMGV8ppPgarmK4xyn+okZGeXb7f08tW6MiwXyNwcBuH/UI8AaCLccrkb+S5dB31lo1kAdjOdnEvrLyQVsKxAtKISDj+nYFWZcUnKwGMO8H3VmYOTNN5h3bTJwIQY4J0xxUHqVMGQe0kfF9Cj0d4R0pDoGg94W84NyrfTEFbfdK072yrkBzE+Pr+5bn6mMyrFjBdREVs0EGC1VtDwsRXFRv5BcajgjETkdyWSpzm9yjevWuCpFcCbWBNHWLHwc5kpUT0KpiQhvDvC64dI6i37deyJqFscGGd2TG9oi/hd8tKcms3lLSX3mp2zkPu5eDeVx3klsWmtIm9Usq2mt95/3cVd+hMbIW7OFc4NRtiUgg/dBypjPjpf+IRQgg4/Jp+IThDqA0N/ARyt40hSf2557f+aBgg2Frl9ZtAhYHNNFx0MV6/wUdrelThQucGBsIRTyR+gd0D+uTRVI1sJipMY1RPqBJ2ZcSxGNs+tfABTxf1YTYQ0a26Wl4SAI6/eGZnv5B5GAfFngeNtusakgloYAgx9khWCIQmpNiQmA5QGwE/0Npi7NGeFmM7YlgWDYsozUFaGoxH3fpeTDUhCEc440WC///9ZNw6HGTKfSXAAMAWGmKZjQmfUsAAAAASUVORK5CYII='\n },\n {\n country: 'North Korea',\n code: '850',\n iso: 'KP',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNzJDQkU3MzE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNzJDQkU3NDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI3MkNCRTcxMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI3MkNCRTcyMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uqrYYwAAAdNJREFUeNrUVc9LVFEU/s69982bH82QzUjOiDjpNoSgraNIuGhR2apVG6GNJEJBLtxIiP4jA26CLCFwM/4KESlaWLTIhVIKJjX2Zkbfu+/d2xsJsnHz1N7Cs7hwDvd+97uc7zuXcGsa4QRDaCF4VIL0/wfWJLwDERbrxz1Jk5+gTf61gCvrq2H8SQOHv932NJULhSScfw4KgUoFW1+RvQrG8G0Hba1IJuG6waEtRMSv9U1P2cf6yrS1r2Q18eSZ6ClAK3dltTY1QSxKTVfgeQHRq8wU2qejIn9rnlI/tlMvXpr379ozs6hW45PPjb7ecn8/NyKIB22M9qEbSur7rjnwgF/LV4ZG5PwSlJJvV6KPBqMPB+1ikeVaz65rLS3RdZ2aLntfNuSn9/LzB3f9I11KiJs3tFc7l2WIxeTiMs+3x8dGCQaBx4aHeGeHLC34/T0XNGvJOaWSM/OaDCP9czdTs1hzxnkz57ya5S1tp9M1LEsfVwjnxMX+vTuJ8QmzOaNB7tq7ytMRIKalg8ODwJwdKnd3+7pGo64tbO8gna6ne3vIZZFKQbrBKdd1PXV71BQnhwhBa9hHrzFN0OnsWHejqym8oRrq5Ds0Lt5XECL0bwEGAHp0quOMFme/AAAAAElFTkSuQmCC'\n },\n {\n country: 'Northern Mariana Islands',\n code: '1-670',\n iso: 'MP',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUQwRkFFMzMxNzg0MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUQwRkFFMzIxNzg0MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNUVGNjQ4M0M4QUNDQjhENUNFRjMxODFCREQzNUFCMDMiIHN0UmVmOmRvY3VtZW50SUQ9IjVFRjY0ODNDOEFDQ0I4RDVDRUYzMTgxQkREMzVBQjAzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++R9VmgAAAxxJREFUeNrElV1IU2EYx5/3nG1nX7rtTOfH3PxqFplgH1pmRsaILvpSiYToA6qLIIhuveyioKKorhIyC8NEKkyCAkspjKJyRYZWOtfcMbe57Zx9n52zc5rV5cwZSM/NC8/D++Pl//yf50Vw5hksT2CwbCH5WxEBJAHiciDVJimjmqVzSEWc1LyjJeBmQRUGKQIB/QMaAceDqsCq/bE3fKmpkuQshY+mvA2qIIXxPUWHuiZNEPKBGkBMfx+HuiPpdWKFbMzQFps9T15u3C6Mq7YMSNb0fsfyDGTrqmBz5F5RYUF/yAxhFmRoKWgexySJjprkSfZqrL74uOdC+3MmOmorFvmnocp+OJCn4VqUQ7q8xifOJIhC2pYtgA4kju6oOCFe7AwKpwJnhx7PyIXxmy351Sb1tWH3yISuj9iKfC+aYw7aZP3o9IBMkplDBIQUWbv4Yczvvc7sHxudhYL49Ewov6pOX7XV6+YgN0HbHTeCzVPI14A7gCCW0EaklbM2r7+0zC23rNLOtB9dQ6oqSHMBCaKt4zAdiZy89dmFVgDOV2qHteQu2keDLJNXI0Csn9NUs+XH4lHPl4DyxjOnMUf3y4yYWa9uH3B+Cag4YHIte/32EohHUrpmJogIUqW+l7qNy+3bykvEJHa3j+qxzf4udr93d/fPiEhcX2R2Ibbz9VscV6fFpM/FI9hYQiOLfD29MRc8THZd8Z4Vsvtddx50dzWvVOhqjOCN7ysMrxbc+Q2bmUBwKeZjo1mGtY15aMfKxChR9uGtnXC+iHuogM/z1OYYnJA37a64UmVPZpWesxspigEFljFaipg5cTSmtsq/HaxgCb2JcjpK9QSB4yM0YW3cdLN2MsFxLYO6VyN+yCFAFDNGp4KAH17soUuxU0+1WuZcriDNy4I8vkEbbasPjrnYlsH8l58SoJcsNOlokaUalZYUa2pDA+uSjnJjYYryYXruo8zyRlrjnWZAgxbcIIujMQTh1NxLyrIpM07zIv5JMDIRHWARUGILYxddqvOTKYIydXB2MNiThj9JVWzeRuL/+wqWEf1TgAEAg8xMLtJFnKQAAAAASUVORK5CYII='\n },\n {\n country: 'Norway',\n code: '47',\n iso: 'NO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNDZFOEY0MzE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNDZFOEY0NDE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjlEMEZBRTM0MTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY0NkU4RjQyMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9564bgAAAchJREFUeNrslc9LG0EUxz872Wm226baJKKHSNNTwVbJQRC9xmsvvfgHePEmiH9Jj14KCgrtzUtBsIdcpLRioVINliIKkkMTxehisma3M/lBG9hoXUEP+mDZmfnOmy/v+97jGYcvB32CrFrFdxye/tzg7VqJ6ewMPLJY3nzHaydPaSSLSKVACMKY9ipz81YW3JLdPWKT8/NgRJ+3MMP4e67XvqpH123gIYvL9IrFYKRSwT89VSRe++ORCNRcvDMHtG9Y4vjWl2BEE9bU97CHXreg9ipCV5KqnsDgKMn9PFhRLUE44qWCFYxoSQ2B93Wdj6vr0NUFUcn8wgo/Rl4h0v1wpFPhhyI2sN4cq3/swltPbOjrBk+RHJTAqVy7j1Vx1S6/5nlNBfyG/P/jc1nEc5/3giNuSf1rl9XcNz4s5uCBZGpynMzwAOJZf7PqQ0ldNvxiB2KvWVy9z3n/aZOJ7KzKsc3G9hyZdFJJvqP20fZWu4rUpRfDF7ZT4uSAgqlybEiQEfblYzLf1/g9NIaIJ8O3k0gk6DidbLsudz36ltVUfiMSYdnUfcMSY5qdC6qF+f/kUa+1vFI28GuMxfvpdGPEsVvgjf0RYAA4FZnydWrl6wAAAABJRU5ErkJggg=='\n },\n {\n country: 'Oman',\n code: '968',\n iso: 'OM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNDZFOEY0NzE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNDZFOEY0ODE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY0NkU4RjQ1MTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY0NkU4RjQ2MTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oZcAewAAAahJREFUeNrUlbtKA0EUhr/ZS7yu5iIWIoKN2FioYCPBS2NloRaKlY/hY/gSVhFUlGChWATEQhFLK61EEhW8JMRks+OZbDotLDYJHhhmlx32O2f+/8woPz11B/SitaZUhP44WDa8vkB3F5RKmkTSsveyPWYmonBkjPFVhpFRUPLmxgQs//c86BTwzRUCJOoQsPog1uFxew3La5LGOOgAHu7hICOJuLJERQ62CGpQqcDKOvT1w/QMLC6hh4ZhcyuEVqtNAJtiip8QF23nFtFeH/ryAnWahfwT2KK31YyKjZE6OuFoHyWVqcwuKncGs/OQOzfmEkHcyHV2CILQTOkF9OEemGF0TaZgdQMkEbPV+uRYvC+GQ0cCVn568h3b9erb+VxotJMVtlNC4DFJoiyuL+SpJxkR2Kn3UM0Xg/mhuUwYQDwBfjV0uDFYaiDqdmqE7fz8aoz123Mk5mpTOH/OULcaLPIqgaqiaB3o8FhtBdiqaiquYjvdw1u3Lb0etAas5EStyb2xMyEXRkqWl4IWbrVMg+818qbXy8H/dnVbwV67+vixHfBvAQYAQ9x1aPT3zwwAAAAASUVORK5CYII='\n },\n {\n country: 'Pakistan',\n code: '92',\n iso: 'PK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNDZFOEY0QjE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNDZFOEY0QzE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY0NkU4RjQ5MTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY0NkU4RjRBMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+95KRfwAAAndJREFUeNrElj9IW1EUxn8vRqpNrS8xoKnW0qBQzOTgpHZQoXTp5OBUOogIlcbQTScHpVAdhEKGDI4OUsSp4CLS0rFdirqorTXSanxIbXwxMXm9793bJhUpSB72wOG+c+6f751zvnO5mmVZSeCW0GPOydSbKcZfjUMTbkqN0D2v+qBkvAqp8fCfxFPWzh+gmRqaV7sCYE3t2oHOe530dvRi/bTAUv6c0IxaW1DrXQG2d3yB/gf9zI3Msb67DnkFIEB1XSfoCaKlNKp8VXKubGD78H1oibSw8GyBmcUZkh9FU9xU8ycQrguzPLHM2OMxcpmcS8AFGVX8SdwxE+8SEEIefiZU9EhXSxftze0MdQ+Rt/LSf4F4LwWcBv9dP32RPrb2tiiYhWITVsgwEm8T1FbXsp3aplFvJJlJugBsQmtDazHtXpWFCmULzZ5lnRKcGCLvdcLn48J0ey5PaknTcChMW6gNjL9PyRfynGgCtEEYlbhUY0HSzf1NzKzpmLFHMaeX7Uz8OUlTgPZ4SpHxZQHfgNRWiqUPS445eH+Q4aFh+GzfvkKzimRp2XLNgWYC/oDs7bKAPbKeE4sTorQFxxUfiDP/cp6mtqYi6HWYfj5N9GEU49BwgVz27VQPG5826JnsYWV8xan5QMeAo0fmEZWeSnzXfKx9W6N7stvpbXS1t6ybyw70Nqy+X6V+pJ7Z1Vl2jB1nSq/WMXMm0ddRIk8jGN8NyWyr3Ih/R22T5Q4cHBww+mKUWChGIBggk82Q3k3LKBskGd25QErBbbb6ZRqtU4vDr4cyf3ZagyVrcBO49Adsuab0vJ9/Ax+r18fxVb0+bKxfAgwAbIbG6d67HZUAAAAASUVORK5CYII='\n },\n {\n country: 'Palau',\n code: '680',\n iso: 'PW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNDdFNkQ0RTE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNDdFNkQ0RjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI0N0U2RDRDMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI0N0U2RDREMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ffmgGQAAAhdJREFUeNrElc9rE1EQx+f92GR3ze7G2pi0sVKrJ5tLEVSE3kRD8eDRixcP6kVEEHrx4v/gpdCDB0EQxaMHBQNtb1FUMFpbwYrWxJhks5ts3J/PtwpSaLNhK8HhsYd5vM+b2e/MPDT3qALDMQxDMxqxh4Dxr+WnOr7KGBKJpdA2hoDxnX9BU+S2vZGanT8orc+kVijyq3Z+rVMQSW8s+dlndOAFtB/3mz0hIPfm1Hwx8yCf3OAc09WW28W7n268tY5Nye84PRqNtsvIU255o4zhhem5Qq4MNoAH4b8hACL8tKTLr5+86pyclD5E03eQMQDccPffPnylMFYGE8AJXSGaX2CCKPXuHD2fFhqGl45dIT+c3Cnt2ensY+juoCx3qqp+IbtQdSZiow0/fVwrgQDg9zkUwAntuYy7ASNx6xqptBUVTwB7hfoeYvgQG806nhadqu7uswIF982rD1oh7bI5G4pG+h56Ycx2/RRBMdGjiepSq7j0vQjy9nyAO3umfL92NZv4GltGHkuaNm99XFyrT4MCoZ7o9+JJKBA45Pr7h3VnXKPN2OiA4Uxik4+OS2+e3lu/1nQyYc9ScIJkafPcxZelFf3MIWl1N934t9d5Tzac7BG5MimvEuTV7AMVc4Zgfzy5wctulzOEm8cEleiqpOveyHLzLAMs4W5O/ELBGxjv4KH6J64UMfjaOgb+/1MwRPQvAQYAH8/QWrO3BXUAAAAASUVORK5CYII='\n },\n {\n country: 'Palestine',\n code: '970',\n iso: 'PS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjQ3RTZENTMxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjQ3RTZENTIxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMDdFNzEzNzU3NjNERjUyQjNBQTU3RjQ5QTU4OTk1RTciIHN0UmVmOmRvY3VtZW50SUQ9IjA3RTcxMzc1NzYzREY1MkIzQUE1N0Y0OUE1ODk5NUU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0ETvLAAAAYtJREFUeNq0lT1PAkEQht/Z2zvDHSCgiYbOwsrGvyCJhbGw0tbWCDQGEwtbC/+A/gBLeyu1ozBWGgsrGhI9SbRQlBC8G3fv8APouHUzuWQvm2dm3/lY1DJZSIF/WFadqGM7dWaEoWE2k83S3vUyEKZjb0uHlQPb2XEzsKRJ9LtGk6Y7TjmdhrCMo4WmS6eqlJGWSXQIEcR0x9ny0kaUIYV2P3uK3t9DebFO1tcmanuu/xQEgYGoY+vHPp3ny3NOtobRsSn6G/BweNDpdsfjhmE4LIiudFBU4UET8J5fCoX8OO3CPNwmqiNjbis7mbq5HY8b5YxGtY5qfHGZXxNKzXLQlba7HB3tFzPNY2o2OPrzRy7+Pjhwe4wcIDVBfrRm0um7n8JShXw3QCPhbIL8jZdxPYtSBe1cgEdgJglYgIUU3N9dFalUpQ8vgK9mbeJWhJoXekrzxRxWttFLMXzWJUJJJ7X6SJtxNi9WyxZI6RDqeImMPATydIE2NpU0EC1iy9IZ5uTPi772lwADAA1uTobZeCdSAAAAAElFTkSuQmCC'\n },\n {\n country: 'Panama',\n code: '507',\n iso: 'PA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNDdFNkQ1NjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3RkFEODE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI0N0U2RDU0MTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI0N0U2RDU1MTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+IRlRqwAAAbFJREFUeNq8lksvA1EUx//3TqcPtCpSz5BYioUNESxJvGJBmlhZS3wCH8CChYhY+QhsfQQJCemiC+xKUDSNKtOhNXPnOvWKhZFcOj3JyZ3JzcnvvO65l0kp0wDaSA0oiFMwcdo9BesqDS0aVTENk177Pj7wba2GhLnbjiTNmTaEIz0hu4ILRYHl3UtkDevLEc/BRxcmxjdOsL5zjunNU+yfFcCqAe7vrEV7OcTDLJop1UNddRVPtc9tY3S4CTMjrSiUBCQ5wVgVwJaQmB+IIeTnKFoObIpa15j34DLkExTUuWvbi4cH2MgDeXWnfM8Ukapo5IxlUxZaYpQeG1pDvTq4YymhbJR7EuiM6kjubaOeVkH/yuC722f1AtHZzllB8EgECGjQAn+pcVhXtyq3eB3Z/VJakX+EFqZjqHG1yfVnoaZzDBOZ1S3Y2Tu4jb2Kg58Sx0hNL+BmZQ2p2UWYB8kfM1NxcE1fD1hrCPfIgDUFUDvYqza5/iMNY5NojMfpzqbGLd9unHkPli8WonMT4KEgnGIJUthgXPcezPw6lfQdxIOBX0em8fH6MFAdeWO9CjAAKGmKMiin+isAAAAASUVORK5CYII='\n },\n {\n country: 'Papua New Guinea',\n code: '675',\n iso: 'PG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3RkFEQjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3RkFEQzE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzdGQUQ5MTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzdGQURBMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+A8tj8QAAA/9JREFUeNqcVUtoXGUU/u5z5t7x9s5MpjNgbLEzNYyEJkwqCBJTG5AiLUJXCbgRpBBSQrPpQhSSjeuARVG0rq24UOJCu5AuJAsfCRFja5OGpLE2tslknjdzn7/n3ljJZGbMJAd+uPd/fed83znn5wCwrBDCp9oxvCipWHBqcGiSx8GNEwB7gwNHh8U4A3Nb7/XvL99xTZwpLOF6LY9uMYwY3eCAHQyUbrIINNzpQe1x4Brc/20v/xeY79xI+U+MVh5AJ+A0sdAuuB+ZU+YgdjBkvysift6CYVD4/nGudcR19sn2Jl4rLuO+a6FXUII5ryXiDr28DFQsCUdesCF1m3CK5AQtOiUOrXxvKuVPjoGXifobZgG9RL1GPDZE799JU8aGgPAJF+lLFYSf88DWJCTfMJH7IQ+1y4W5JQQyNEhDo0RDaxXUmKjjvehxGMzDqmdBesIdgVoFAR2vmtDOWtBOOVBPu3D/5iDotPisi+2bMhYu6gFlgsqaa7zXRFHE0+kTuMaV8DpRv+k56BHCAe3+FWaBR+J8DSdv5pF6uwy124X3iAP5B2bRhg0eyrkaOscMWCbfQHlL4KGhITy4t4yxy1dwy64G1H9rlZEj6hWKmoUYBI0h/5mKtdEoqr+K4LMuhCiDuSZg68sQaj/K4DhigFDZHmCxFfDi4iLm5+dx9/bt4D9PqXuxtIJJNYWrahJR3cXKFzLWP1dgkf/F701kuxyIzzvgH/O4O6rh6AUTCO0g8gLqwPfVuJldkI/gmtaJDvL7jmNC5Hy9eYRiHrQzNtLvV7B6NYK/bijIvFPBw+sKvAqBSW1ovNdCoRAEQQi+v7FKeKVwD7+4BvpkBSLv17ALe4vD+lcKFgajMB8KiPdbCFGSKWkXToVvrnEkEsHk5CSmpqaQSqXqNvn/c3NzmJmZQSwWC+ZWqc7PEvgH2xvwW26ckWoUsRpzUF2izkdOiJTJhVsypKNeQznXuTEyMoLx8XHIsly3ybIs0oeB5/nge7ddoU53iTpehIr1JL/T7STdg7nCw/iD0opkri6IEBXWuo4zmQwSiQRmZ2dh23bLMnMcp2G+V1Tw8VPP4LSk4DebHhrCUY97sB9zsDd5iHrdo1HeN7kGBwcDGaanp/fPAyqdDwn8zXAcy/TwbBoeJIFeKz+zGdprIE9M13Ukk8m2EtAkOd4qr2Gc6O/gRGQiEhzZa9qvD1VO7dhLUgQfUfRdlHi/u7Wg4/HtRJzL5TAxMYH+/v5DAc9QtxsoLuFrq4ge0t9PPndX6C2B+/r6gvIaGBg4dNQFz8VQaRXvVtdxjJfQScPeBV76t+/XDU3T2PDwMKMsZ83WDzrOyRpbjGdZNXGK/RzrKv0jwACqn6gx8GMIaAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Paraguay',\n code: '595',\n iso: 'PY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3RkFERjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3RkFFMDE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzdGQUREMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzdGQURFMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8tTVLQAAAOtJREFUeNpiPCeo9p9hAAATwwCBUYtHLaYZYPzz+csnIM1LtEsZGRj+cHMzfL10ieHn928MAmYWDOxA+u8/knLlZxZmHm6SXPoXiJ8d3s7w/OAJBl5uPobv314yyDj6M7DQPKhfvmQ4MLebYfqfNwyb5UQYLqxbwvDz6jXax/G/X78Z2L7yMjAKcDPc+v6I4ddbUHyRXvgx/v//n6Q4BoFPGzYy3Nm7k+Hn/98MqrZODCLhkaTa+5nx09dfJCYuJoafnMwMXw5fYGD8/ZeBy8mYgePHP4Z///6SZjGDxYrRSmLU4lGLqQIAAgwAPdxSxGn7ZuUAAAAASUVORK5CYII='\n },\n {\n country: 'Peru',\n code: '51',\n iso: 'PE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3QjRGQkQxQTE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3QjRGQkQxQjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzdGQUUxMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzdGQUUyMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+b8OOOwAAAGlJREFUeNpiPMPA8JSBgUEKiD8zYAF/gJiNi4tB7/FjBmYhIQZ84N+PHwyXZWUZvr95w8CKWxkvED9jgTIYkGh6AF4mhgECoxaPWjxq8ajFoxaPWjxq8cBbzAJt8vDiavrQovUBsgsgwABVWxD3afjyOwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Philippines',\n code: '63',\n iso: 'PH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3QjRGQkQxRTE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3QjRGQkQxRjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNEZCRDFDMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdCNEZCRDFEMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+RLn3GgAAAxpJREFUeNq0VUtME1EUPTOt0JYpnwJCVBQh0agLZWsgMXErGze60R0uNDGiK6IICiqkAgFjRFjgl5AQDX5CMEDih0QSNBiDIJRfpOVTSqG00EKZ97ydwWKEhXx6k5np3PfmnXPP/VRo+Dhmy7k7YOz50APEi0CiEZAZwBFSEzgZYEfZEzvy7vfB3T0OpEQBxm1EIHToInw/3ehPQ/ZZD3rfncS5S2mAZxHocarAGiFEEfsnZ5mr2Sga04GwJMXZ0TWF/IpvaGwYIB/JvydSlZ7zLZV6lp7GtRbrGodxvbwTlnaSP8GgXksshMDcTyvawLLyWlTVhYKH3zFvmQFSKf8Rm8//CjCbp4wbFCcbuQDoj0CMywputE16ca3kKx7V9VEN+FUCWkoD4xssrj9BLgxB7s0A99HBsosoieDOWrCh04FV7IzXo6YoHZ9fZeJ4Ziow6AFG3HQCqSIIm5OaT5jBHNUETAcKeiB8N8Qd+RCkY6s+rG2WcbX4DYY7xqj94oFI2i/L6wT2WYzMUakIwO0l5A2nIvIB0mGIUSfAtTEQt2cvC0TSOosBkwcMhShr9cJc0MScjikmSvr/Dl2rRApZjRKBitWo0gWO4Ax8yakS+dvkOboZFBpXlt4iw1rMZ20urpGkDUo9eQ9sopTwvQonQZcKMalcKbR/baalG7aci3B9aUWcGA1dVCT4uqUmYO7tBhs+A01yDZidwKSjJDcV2VwbxJSXwQ98vRZYc+/AXv9UEUUXnaoWGF9ff2uDDMJ2QbP/03JLMQhsEULCZfp9Xm2xOS+seYWYqKjCot8BfcReiDod4ckbmmhrDxCZBoVGCvKyVz/GaKEZnl8/oBMToY0xEeDSpgaIdk2vJlp5uJpaYLtRjOn2FtooQYo9SMHJmwZVgf2jlNNKCKZT1LqH1Dz2D8KWfxv25zXKuyFqH5ERtwRwBZjNQVh4TaBZYD4G280CjJc+wOLCBPSGZIh6/XIe2Rb/LXK1MhzPXsCWdwvuwU7ohARoTbFbGuGqiN1tHaPWXLNx+n09jQ4DJNMBGigspKAB+y3AAHmPY4VHbneXAAAAAElFTkSuQmCC'\n },\n {\n country: 'Pitcairn',\n code: '64',\n iso: 'PN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0I0RkJEMjMxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0I0RkJEMjIxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMDAxQ0NCOTM1MjkzODNFQzU2REU1MTU0ODY4MzQwMkMiIHN0UmVmOmRvY3VtZW50SUQ9IjAwMUNDQjkzNTI5MzgzRUM1NkRFNTE1NDg2ODM0MDJDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Q37dSAAABJRJREFUeNqsVGtMU2cYfs/p15bTy2lLKQUL46ZcHBlIXbEo6hwE2QZ/lhFcFsMuWWK2OTez6eIyl2X3zR8z8bIoW+YSF9wCGeiUjdFNRRJH8YroqEIr0AKFXml7ei7fTlGj/Jibxuff9+XNk+d9n+d9Cd8JmzaFHllY8t33f7oHXabMtIoSQ6HHEdWl2nnlhcHJgFpnlseqmLGMesvvw1y/3amh5XBXROI4P0OJdrUMkCf7N766siAgbXWT579oebFp6f7er4Yrqt6asF7/pXttBrO+4RFUuODzA1ff/7ov6nCDmro7NYTCL2woQyP5pc0OOtIb2FqT3thk7fzomYBn6lr7jrjG+M4667I1kSWNyx1S07tdUz+1n4yyDJh0IEXzmQgAPO8ZFSS0ihj97Etiz8GxtFzExpDTubi6JBbhLnbaZZkpi42qqAT5MvLGTg+ohFhpjrp+orAjaAQUu80jkMDLgOQBxQETNz9HQy+/YSYxoFnMeZ3XWI2Srlnpd3pCvhDISJJlpcVF4TiesPViUxqj13AYGIIUyQBh8FMwrQaxTj0t154xcJOIwBCXQpgGjIBINIG2+TMOlG3ZvbWqtpCDK0PNnS65dcljTQ2B6scPfvLpCta/LDzc3372wzOsTWryey8B64W4urLSiaQx29FSbb5v1cNUkk/dZqc4SUS7aCToNQiYFPWTT5Sn/7FWtcF94ueNuy2Nh17afu744XOmDEk2JWxqaM4p372tbeahTH1rrWpPuCct6geSAg5bF81kF9shdXCBlqlbFWAMPl4Oe7f0VK7oERg/sErAGOn4+K/fdG2a4s5CFgRJ0ET/GvK/HTIHLyEQYnB94uPNLTvXmJ+vy7XoUgwSj4enZMmRFqcriiSg9utkKveoZ4S5UL3cUmMJa/9W9+nk7mEBE1gioyt3dox5KCPgKKgJQiWbHJrugWz7OBf1emGBGpLp+MjU6bZzbQ48JVeClAdM+mK8CuSvr55dmtvrHqx7rmrq2NBo8+GyJ82xI71ZITdeWmkgJfokkEiAEkBGiA5hDgsaOaAgiCapKGAx8AJokiDPAHrRc060kffJFkuz9j09Ubga2+hXYjnEt2PvaYrMPsn5+s0Lx90qoHgxjuRcIolb8bwjm/jOsN543MovoyooP2UL2Ndvf63PtaG2fuAKm3Zx/M2mErRvx2HLo1chqhCLyXmE/xN09LducySYWmAO1uR/IHinny3ZFQk6HTFmxptz+XKmuOoiNYL7gIRhQroieYXCcMQb7jrUF9fn9ZlJoq27oONoMhemQBEU2yNvdE/8F25PSoRCYL2K/a1F3tGAy6W1LmMuXDSaaOdTBQbOsxCUs4kVFVcGJ2Yo3JtqHkNyZJwRMidyBpzFqYrj9mMV6aUzWB5ObPxN88SlnHMIYzz/xPwr5ipFSdxMmDp6ihZz9ePOdaCd/eGInkQCke7HrMgpiEUoEZLEWPC9CRcvEeKBToQMjLGEyiSRjwCR9xYVeUew7g/E3DGaoyPm6UNCgAEuAC4EDxCsTwhEUEl5+qqwxZisfIDM0wGmuNT0jwADAIjDExM8WLDuAAAAAElFTkSuQmCC'\n },\n {\n country: 'Poland',\n code: '48',\n iso: 'PL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCODVEM0U5RjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCODVEM0VBMDE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNEZCRDI0MTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI4NUQzRTlFMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+2uLYNgAAACtJREFUeNpi/P//PwNtABMDzcCo0aNGD0ejWe6K2o4GyKjRo0YPBqMBAgwACfQEVtJhm9QAAAAASUVORK5CYII='\n },\n {\n country: 'Portugal',\n code: '351',\n iso: 'PT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCODVEM0VBMzE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCODVEM0VBNDE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkI4NUQzRUExMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI4NUQzRUEyMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bRhArwAAAq9JREFUeNrElslPU1EUxn9voo+W2jIUKjiEIYpaNQRMVDYuHBIT3JqwIU5/gDsS18SlJG78A3TDBldiDEFNZHDHQjTBGMCWUQZpSynv9b3rrcXEBaCFoie5ue++m5fvne98Z1C43TwNVMuVYCczVHxph6GRZQ7JfUWed2l+uWb0zQd+2/+F+VX+k/09sADF1lDSKoorz8p+Aisit8c9IMEqA+vYNRaOoqDO6rnrXXKm7wiakdcplabILL4qm9MVKcpr1/g+6UGT8lAGAihBcEw3x0JhPJZcxlXaIws8OqtTM1DJen8Ja699JN9W8aWjjOTdNcSyQHUKSfWSSdu5aZ51zLHWB92jLl1OA/FjTaD5SfRpJG9tkLyxLL038o65vp2QMFxawkkocWkcmCHc1cPgtevYNpxv60drv4lDEC20RCYsXzr5xXtrYEcjUJYiXJzm8fMQja3fiFlTDL5bRQgX24qiX7IJWbDRso4ynMEbK8LxunukWmQLlYumC17NBfGO+ilfMLA8DrbpYEYNDk95SJQI+SOSZXWTpT3HWHdZTJm8j5aSCWaIJi1OuaNcbS3jSmsFJ+0xVsqS1N6LY370YUwbUtmiADHOplLCZHG1mCdtn+h+0MDxF0+50DtPrKSYNwdeEu4sRzszjZ6sQIlJcTVYeXm9fR4H0/SOhTkaSHG5+SsP6yLULw9zZzLFichBMtZnJu/7CfYcQK2zcfOkWpHdKb5lg8h6LUskaYOLdYsUSbHVR1J0Tkilj3iwl7yYg/Izv/NTVHkWkMT2HguZmIbMEU0wNB6S9TLNUixF/EMxR6IqiRkPojKDMETeVWtnqn+BZz0vTctarTEx78cYt9CQ1FbbuZi6+9mdRI56YUoPfQ5CspBv+uy+LRbY9M2Rx//H0aeA00cW64cAAwDqlwCQvzogDAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Puerto Rico',\n code: '1-787, 1-939',\n iso: 'PR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Qjg1RDNFQTgxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Qjg1RDNFQTcxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iOTc1NDI0M0UxMTY0OUU1MTE4RDY2RTdCMTg3MDk0QkQiIHN0UmVmOmRvY3VtZW50SUQ9Ijk3NTQyNDNFMTE2NDlFNTExOEQ2NkU3QjE4NzA5NEJEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+giI5EAAAAmdJREFUeNqslU1oE1EQx2d2Nx9NyKE9tLb42WNFW8SP2mJPUigKCl4EIyhetD2kJgQrgopoRCliFUE8eyh4sBXFgwcvSig9CS0UayqpFcGmSUiyyTa7mfHtpmnwtmQz/GG/3vvNvJl5b3G/Mv+Axkfg6y+AFIEMiNAckxbp8Fn4ElZimuTrQYFmQmRoAl/ESIwmchck7mLoPH3IVGANTDY7RAuChBVAInaBBGf4dbR9cqBvPZF0qyo7RNP/jxDYAQ9vp8eueQA8xFKFqg4acUOWRHoNgE0LYWpgmL/9YCdWR6NIC2gApS1PpvITNzbUYoHZaACNNZCZDb+/HAppsZhIhWJJvDd279FfTBmnh5aAlBLtRERJlJ3tlVHUsLNTLxakvkP650+wr5vVkiI+pDbclm+B0U4FPk5wtJdWVthbRkWywa7OpCPH85OP4UCPr7UN11PleFyLRtzfl32i8a1loaXCFbgfgUeiIGUbNVQsPs/HfcELajIpZvk1lS9fktNpL4oPpmOpNtgL4JJrfmyhLQC2tXozmc3ZGbW/nxRZxCtzfVnGyZb3t4zxo7S6BIoOKNvcMtbVGB3N/vntejvTEryo5nLud7P+amt2dRWfPTXODS5AhYu8V5JQst3kVvMhWQk0qjFa9zqAej2czec0ZnLS19u9vKXBYX1uQW/SljFjFzlnXwe/fJVlLldHVExRA8IaV3SwOKthBKdvtk+dOPY38dNTLFacnIC1mQp04No9CAfpjThUV7fPKgemmAAZrsKTMbrTzYVlFhVEd1P+MgeVuWl56DlHAlRYJNS5vkMc2j8BBgDaEDAtyJBdYwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Qatar',\n code: '974',\n iso: 'QA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGN0NFMTgzRTE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGN0NFMTgzRjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY3Q0UxODNDMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY3Q0UxODNEMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+iEFoawAAAcBJREFUeNq8Vs0vA0Ecfbs7uy1toyIiIvFxIiTiIOFIxN3VwdUf4eLiRBwcfJYEoU1VNUpCGjS+Qor0UPER0lJNQxUJJYLumm45UEezv8wmM3uYt+/93rxZTlGUR3wVnSN0cIjI8Tn8i16cbO5BEAl4QcB/F6GP6XvBcRxKaipTExx5d9UPoYNJkd8vfLNL8AxOI34ZhZSlBytkTlEyd36IxrAybIV3zKECE53EnvH6uBMLPRbEw1GY8sxqfxUGrP9k/Jp4gaOzD1tTLhBJUg3GnPHKkA1b1nncXkQg6nTgiaBNj18Tz7g+u8Ta2Ax8zmUIhGjD+GzHD9+cB8H9AAUUwfM8E8YZu2bnmFBYXob80qJ0qMiyNsDGvFyYC/KhM2SnUEEjRJsAuQqcYtvmpn2+AEdl5rSSuralGW29HahsqMPH2zvkjyR7xnJShmdgCpuTLtwEw9AbDenjpFWAJO4eMNfVTyVfAKHO1uQ4rY3a4e4ewWPsHgazSdvIjFGZVy12bEy4qLk4Gpsie8YpebetbtyGIvRWEsGqMlxd1ViPpvZWFFdXqK5WkjIzVz/9dHYSol5SfwLU1BLYXBKfAgwAZJi4vg1/oSQAAAAASUVORK5CYII='\n },\n {\n country: 'Republic of the Congo',\n code: '242',\n iso: 'CG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGOTJFRENBNjE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGOTJFRENBNzE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY5MkVEQ0E0MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY5MkVEQ0E1MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+aVFAGwAAAdJJREFUeNqklttOwkAQhv+2W0CTBuMNwlMIJirXvpByeAopXvl42kRQ8QajjRoVus70gKW03VI22RuW8GW+mfmDhtuLRwAtui7KHI3ugu6bh8GJietjE/iWWMjE9zwJbc+A0apZ89HkSdBHVvhklYa+S/QZekrQD4J64Vscuk/QZg2v4wleho6lo+xZQT302gKjc4J+SfwucqD2BM99B6JRgb6r3l7bhN2t+JX+/tCTlqKXoHOGDu5hMvRAQOyit9chKFf64aVDV3qnmA0cmEdVGHUBuZRbVhzTe0V67S5BP2U+1NcbVBpB+ejlempi3DWz9e6n642gxcEx6ID1KqF7PnTGUNLLUCzX90vfTi+tzLm6Un9luKcNgtY3oWpwAlpYb/8uWJmDdGg+OAbtbwGNpjcPykcoE6lToXAQaujIT6RgkOr50PSKY5Ve+omUBcUqHLins+G9Um82OLEyN7l6dQ78sKfF9KaDE3rtIj0dRdNbTO8meCPw1XoZOhs6W+ldByf02kq9YTgMORzKQYOpjgK/zXoLTK/9oAyHYhW7Mgz8DCj9rlalSptVzMfBnpbVu1Yx9dS1z0yLoO4GlI+hwTgUVOn0P3vrO0H5n477J8AA8FlP8fwgsDwAAAAASUVORK5CYII='\n },\n {\n country: 'Reunion',\n code: '262',\n iso: 'RE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjdDRTE4NDMxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjdDRTE4NDIxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iOTg3RkEzNzQyMTUxRDFERTcyRTlFRDRFRjVGM0VEQzQiIHN0UmVmOmRvY3VtZW50SUQ9Ijk4N0ZBMzc0MjE1MUQxREU3MkU5RUQ0RUY1RjNFREM0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+w8A3BwAAA3NJREFUeNqUVV2MU0UUPmfu9La9LWv/KIsFQUB0FQk/0aBxNwFMDLAqkZiYrFljoglBFwOa+CZISHzyQQk+aDA+uEB4ImRFRQgQXH9YeABlN0tWYZdtC5GWdtvt7f2ZM87dTQjSgu1J7n2Yc+abc77znRl8ctXedLb07devrluzoPDOe5EvPj/49KZ/no/0xPqEGS25MxAJQUJzpnYQu2tB/csU2PrXWx9c7da4EwncwGkPYKOo0vtwJrBaX4xPAJ/89NqmjuGtWTveYlzj6ErZGDqB9AOLSzFC7O5CAITUQLPCxtiZW8vaBneeya00gtmQVhb/C02SKf4MsPtdcYhY/SCJyhE30kWXd1z+cNdYF/eXovpNqU4F9IxcmMzDZA6FDV6sVxPGGXPROey6JwgMZPfKQE4lkdCLPl9xx9jLG4a3F5wZD4QynBznxogo5yC5CGa1OZUJygwhmtosTY5Jc78th4DHOOiS379EIVkLqziGdTS34olqqnf2lx10TrR3a8+97Us9zhRx1y+JgYNwap/zR1mcj0qLMIGSpEqNN9AYZEjRcCZTmbm6v+vXndtWvdB522vMXgIv7S6yJfbGzdqDQYzqasO0sQb1hMQhd3Xdi4/diXubunDna/73eyg7OiWkZqCV2a6AgG/b+vl1x8Nr7iudMhbXqnbT0KZF0Zj/0VSw/uwpZhY9ore2ulalaWhEECRduk9PhCDh6bIpaAQ0gmwiLS8MWnVlqkw7e0H7e1SGQoTNQEskvZSAQPWT0a8ArFo68gAHhvqCFTtR5sRYY9DqolGxuaSVzPA3jw3o+14//Vlt1I6ze7rm/rxx97NVHyXTthpElTu/NwnqXELTYFWjuvR8pf04BUzML+sd7v09P/jR8jdWRhcrYfxZvLLr4v6L4/0Qm/vD2vDiefqRvZnll8rlVp3XH3JUx6K/EEfmTKz9vrp0AMwA5uOqCBZZOFK43P3TdjCSXqR5EzQdYw97lF8xx1OBFR8/tOeb6+/23eJ1WqISlj6ej1MiXVpz1J4zDsUIupoaGy9CCjSSUhKQ7YWGU4iaWp1mF7OOjLKeLanfFoZ5jRYAHA6FFqftl1L7jyJUxlxi6l4Td9zX0tOY5v+vRqaFAlqBqAK9G2I1WUtgarieOTn51HdQ9Xm4TDT1ygilDIfYqPWvAAMACcVzuqlUzzkAAAAASUVORK5CYII='\n },\n {\n country: 'Romania',\n code: '40',\n iso: 'RO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGN0NFMTg0NjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozQTJGMDNGODE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY3Q0UxODQ0MTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY3Q0UxODQ1MTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vo6AZQAAADBJREFUeNpiZNCuZ8AN/iybjkf2koMAHlkmBpqBUaNHjR41etToUaNHjaad0QABBgCcdAQtf60IKgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Russia',\n code: '7',\n iso: 'RU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozQTJGMDNGQjE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozQTJGMDNGQzE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNBMkYwM0Y5MTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNBMkYwM0ZBMTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+I9CATwAAAEhJREFUeNpi/P///1MGBgYpIP7MQB/AC8TPWKAMBiSaLpYzMQwQGLWYboCRgeH//9GgHrV41GKqZCdgXhrNTqMWj1pMFQAQYAD5egotBoZoiQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Rwanda',\n code: '250',\n iso: 'RW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozQTJGMDNGRjE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozQTJGMDQwMDE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNBMkYwM0ZEMTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNBMkYwM0ZFMTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+2RPnbwAAAbJJREFUeNrEVstKw0AUPZNMm0QN1hZq8QE+FoILdSeCoHt3bty680f6B/6BH6AbN4Lg1iqC4EZRQcH6wNLGvmxeM96OFdzoKmlOuJnkznDPzL3nwjAUS2UAY2QNRAZJpkGTKWWM/rtPwHyABTZNPnN62b3VdnTEOnHrGNQbWDAfkNXquHKn8eAVyJ8ics/miAMiDZtXsZPbx2bmhLYR4s6dwG5lC6etJUUePbGkkExgfegC29lD5LiDtjAxazzRaOHGnULNz1MhIiemNFMtF61bCAof0kZmzBc0wwFMpt+Q0x1axGIgZlIN9944BRfgLMBjZxSDWgfvQQYdaaj5GIhJucLAUWMFBx9rqATD+KRUn7XnsVfbwJNf6IqLzlws1aNVdO88lPIREtiydY08r+H8cw7XVF+pVO02ODw7BllL1VKOO4zj1qzqY9H1kuhURmCAD1gV8dME0dMTpdSUmHQiNb4pug7BXi9navSRIQvRH5Ds4fBRu6z/cvQLOveoDkmApw0/GeJqy4xNXH/3GgSfPliVv3qgX5C83rSSERcSqrGGhMB7Vx472qvPv1BcXwIMAIuEkzMvcwIMAAAAAElFTkSuQmCC'\n },\n {\n country: 'Saint Helena',\n code: '290',\n iso: 'SH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzUxRjY5MzExNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzUxRjY5MzAxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQjhGRTA5QUQ4QjRBNEYyMzI0MkY0NERCMDRFREYzQ0YiIHN0UmVmOmRvY3VtZW50SUQ9IkI4RkUwOUFEOEI0QTRGMjMyNDJGNDREQjA0RURGM0NGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bql65wAAAzxJREFUeNrsk1tIFGEUx8+3s7dZXWlHV921NFJLlCJMKrx0U2rdxC5GEfWWGERSUPSQRagVvnQheolACtSkMjQfTExDhcpiJUTLLrZe1zX35u6669x2mhldC32RpJfoMAzffPOd3/mfy4d+XC7VGrOeDitLH7zvbXoJoKkr232wsaIp+6Sx4htg1Bqd9GxKoPhQgle3Tl/U4rHYEShhCYbd7tA5W98UJmGnjImxWalfphWb9fjGvs7upEyTDc4lue8fX5uxI/mmI/pY9Yj9wyeRi5aCRkcLH8qjNUZ9IJ8dVRYYQBdvbnzlPrBXVfVYExsVMTkIBkPLd6rqboNjyNb8wsywFIBU9OU44S0RIwVgUUDEZe8Ekhl30WM+4ByOiDAl6aOcJKtGAYVaSUbHUBZrBFCxa8MpCR7ZGTfFKBAwAhhYgBU8QS7zUrRapLtF+lwIqSk8aXzcRqq5jQVblS57qM3i5eT2R43hh/fqUhP7W99DlLaHWDkwOYIUOIMwmOMiTIJfutKXscXjcam0uon29piysniaoea1I9BfyDi+reREem6MH168rrQo1iVGrzmWZ75R6dlj3EP4oKP1eZv5+iesa1IKr7uRoA7jQBoSins9N3hEU50+t8DCLwhNsdPFE8k51bXlOUfiJfD2SU11151+rMtKNJen6DYQXwfMBv3pzLz480dT9+2Ky08YvVf/9YyKJn1yURepQHR779UQQuXCLZ19GKvUYNIRAH+wE4AdTN7eVFFzsc1762PImN0LbECKocF+RxupNQ1Rw5+7a5/1tKMEf5iW+TzQ8n2aCcyiJSwdWGU1ObnsmdVnx+mcgdHMjkfPSWoagSJYENgPEAXA9x0hkAGwHMzwyQE4EcgBZGK7bOIkRIoO7GytASJKsq4R6fAxvD50onVqiKypV1PMFBJOiqoBtokOWHCL9xEC8HmJOxwSQoYAqMQ1F2ySsPAECHna+oYwjZW1mxps026ZqC94ZRBsWjiPwWfx5m+fPMJndRPDjrTI9CjbW9z+zg1AI0Fr8AyCIvhTE1OgccD8Qg3x2Szn/0pgGSbmIfMLhVrIhflBWR4d+5XDbyaBv2b/0f8E+qcAAwB+l0HjpzOhQgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Saint Kitts and Nevis',\n code: '1-869',\n iso: 'KN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzUxRjY5MzUxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzUxRjY5MzQxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQ0ExRTQ3OThCOEZFNzE1NzlBNEFEMTBGOTU1MEQ0QkEiIHN0UmVmOmRvY3VtZW50SUQ9IkNBMUU0Nzk4QjhGRTcxNTc5QTRBRDEwRjk1NTBENEJBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+xg9gqQAAA/lJREFUeNqcVXtsU1UYP+fe03vX23v73EOnEgWWbUpwEFcSJQooooCEaNDAZkKs8mjCgAjGkMEY+AcdoJskYxAjc8FNIYEoWaTRTEMgmcNkKS5sMnoHbZmk7drdzrbr497jadctc2ug+CX35Nyc3/nle/y+78DV3370D4ggQIFHMAgBoCBOJKm/glxlhbxv0d99re7PjiUhk2RRBoQc4VtBGFYBFQA4V2ICpWRplIN6qmb96GKXeHi91Nk1E4byaS1F0YzC5kBNOAEN8WgUeWOqjStDWwo8vY2evV9EvPEsaDR156FGQTkuQ2eQe+5Z+eQyT+wHp9Ua6JeyYzNfLhmgIRRDyE+zR6q9p+f22t+7/rG1SIyXFhUazWbzLGZ04JTwcGpE4cC46laAffvleNeGgafP976z6N7pTpA/B4mDXTf7Bw0GwzQ4vXA1c8PH1j+jRQ/wlOggoUDnfXX5gnjba25T9926pcHLDhoAhQC2bt1S/EQx2SwxL7Hb7WTDFOU1tLE7F/LSh+pLF1Uoa60gkQAEosTILPrc4l2bFM9u9x5qldOAFK9Op7PZbGTl1Oz3310FwPR6zcjZw7qCdvXVNZpAktKC2GxqBVGKL8IGwszGV6V9C9zuDs+6vdEBH5yUUGqV0lZ3wOYbHh9jnWeucJsNT91dxl/ohQJICGnQf6hpCGIKdnrV5fOT595yPn7DXb8idO7aBN1saSJxaKDqEP21pZA5qv25kY0BxQRkDDBOh44ms4AhhLeDeTAveXTzSDU3dGbXcG0zVFKM1ESXTK8CCa7sTfqrRv6lPr6vXHM7BLUgoQFYyZxO6pqGyug44w8xG1b4G8yu4YuudXuE66IJgBGTyRSJRKLR6DRnMZ1P1X6pry3TSjvZzssqBii6dAFm9AdKytQdLz9vbvxHqzjP5flkpfTNL8TB0PHjDURVDoejqalp8lpKqcu3MydrhNLz2u5NjA9gPkU6ka6ZfYe8CdWR913biu/8ZAu8sZ8KJVKBm80vWCwWIoCWlpYpZ4VSVcMxbhurvfeu+sKfgHgqAAVnSLP0M/rtg0Hlj5urXsG/O8lvZhYYjcaenp6Kiucj0fHHCsrv+/qrDnK2VYaiU/yvrSgKFCNIklrhBw4JuGOT8UR7IJ10gpSnDiorzSXzy9o72uYs1zTXc2v6+b7drBgh5SKeKrmMHajTGSUpkH3E6OndB1V1JfqkTei+QjNAJhVTcptl6QlB4dkdTrS1uBqcqBJetBd274J+APh0QLnzpqgxnkGNuSfp/Z9q9rCC38pdGiIaiGtBBgQf5SlCPM+PjY2p1WpyOxzGS9eyzTv0JR2aa62MBBSNgGWcJ4P/Y/8KMAA88JPiKZPG5QAAAABJRU5ErkJggg=='\n },\n {\n country: 'Saint Lucia',\n code: '1-758',\n iso: 'LC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NTFGNjkzODE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NTFGNjkzOTE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc1MUY2OTM2MTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc1MUY2OTM3MTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+RRKY5AAAAg9JREFUeNpi5A5cyEAbwMRAM0Cs0UwsTN++/fr29SeQQaQWFmIUMTIw/Pj0Q1FaAMh+9OQDBw/b//9UcvV/JsbfD95OzHGcV+r+5+Hb/yC7qGT092+/xMx12d9d5nh3Ud7e6PuXH9QxmpGR8d/zT+lh1stndk5oLcsIsfj38gtQkApG/waGq4ioFvfrAwf279hzXJHpMbOc7K+//yg1Gui2n68/+/pbMzw9cv/1zw+/GP48OhAZaPnr5SeC7mYiGIEMX/6FmQiuWbKclZGBh5Vh0bwlvjocDH9Y/hEym4DR37/+VHUw+vnw4todu06s5jq/jXfXkeMvLp7QcTH+/vkH+UYzASPwxedQe60tK9bFOTIYBQupuPDn+DHsXLs+xErt/6svTEyMZBr9698/Jmmpb/efmkuvWbiE/f+t3/+v/548l8NZY/O3e0/YFeR//vlLjtGgCHzzUc/QMdLkUkH4MwYmgb9f///98Z/ht0BG4Ksw4+Omxk6/Xn7EE+A4M/pfYJr7IV5ifdHMtpThFdCeVyzi4Nz9h4FLk8FYtLz0t9SRzTJ//+IMFpxG//nLyCbF9+3Vyh3b2f5+c2L4j5yQmZg573/+tJJTJuL3r2/sTNgLFEY85TUT858vn5kZfggxsGBo/sPEwPGOl/f3379swCRKcsn37y8LFxcDA9d7nIH2lxWXuYOjKiADAAQYACDo1+pXfbuqAAAAAElFTkSuQmCC'\n },\n {\n country: 'Saint Pierre and Miquelon',\n code: '508',\n iso: 'PM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkE1QjFENUMxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkE1QjFENUIxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iRTZGREUxMUI1NDA0MDcyNDExMDA2MDlERjhFMDQ1RTMiIHN0UmVmOmRvY3VtZW50SUQ9IkU2RkRFMTFCNTQwNDA3MjQxMTAwNjA5REY4RTA0NUUzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vSLwPQAABrFJREFUeNokUwlQlEcWfv0fczuHM9wMOMMhoKAc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'\n },\n {\n country: 'Saint Vincent and the Grenadines',\n code: '1-784',\n iso: 'VC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkE1QjFENjAxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkE1QjFENUYxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMzVDMjYxQ0FGM0Y5RUZGMzgyRDc3QzgwMjZFRDA0OUMiIHN0UmVmOmRvY3VtZW50SUQ9IjM1QzI2MUNBRjNGOUVGRjM4MkQ3N0M4MDI2RUQwNDlDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/PJycgAAAulJREFUeNqcVU1IlEEYnplvvp9ddRcx/zK33MyfkDJajaA8FNFB7BZBFF0iIYgu1UGNrCCoQ0cJOgR1EsJLUhelOiVaoVmYmGu7LWYqW667334/O9/bfLumtuou+l5mmHfeZ573mfedwUfOPkP/mz/kudnadelMtxrNwQhQRnM49bsDe2+/r/K6Y8uLCcScINO1uwFAoIwISJIslBkaAxH5TgbWOk66foQl8sGy8PJK2umrlwHW+JNGNuCTCrYAiCIySvgEkot8BJmAIlpWFqk2hF46wEGtOBMxBuEfL0rAABxNKE6a5SIyQUsi45m2vGgcnCmQcjTOGwCLTq3vR0FLbz2SmETZpqFTFImUeDLm6R/2PhzZxTPgQPZhSOgarXgzWt7ztZTI5no3kRE6lWggvK1zyOvePvvcX9jzpUJQTEHWn36qeBksyi2Ktg1Wzy26Ns1awDZ4+4A3OJ9X5tIIJh0fvVwOpst3hnZLYsLjjo9P598bqEpyhs2wBjvHE2XzSNZjCcliuKk4gjAWZONocdgwScSkolM/tmN206xTHXBhv/987Vwg5Pa41UfHR15NeF4HSh6fHC7K1UMz7st1Uy21waR6eAvFhzobxpGoPTg8jgTjXF/Nxf59VDQ7Dkwh0Whv+Ja5+GgGnxFzePMXe08PNldOd32oCUdcYQLdn3ddaZjc6VIL8+Kmqog52kaPQSZoXmiGRporQyM/C66/21OSrwOzWt/W+UoWTlUHtKgTMIhbaxlsi27ruBB3qAkqEVMQkMqE33HZdmLAGLbc6LbxrJu8oRv134N/8qYj9NbBSV/5LyMmZw3MDp3g7x8T2hrHZIdamqdf800gRhhkD6RZd2CM9bjkzo3fPzSZIzJZ1rnKmaVYhiZpAvOfQKS2xIoCK1XOHFd9fnvOZEWxlkoZ2y5Kk2E4/TGhAGZatwhYU6NsMYI0VVj5HIA/T7zMBIORVZSp4kBqDBHMPxpYrkKLTwD9FWAAxwI1PaSIg8UAAAAASUVORK5CYII='\n },\n {\n country: 'Samoa',\n code: '685',\n iso: 'WS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCQTVCMUQ2MzE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCQTVCMUQ2NDE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJBNUIxRDYxMTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJBNUIxRDYyMTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+mJryLAAAAXxJREFUeNrskEtLAlEUx8+9M97rjOMMGPaGHvQgWkW0MKI27iJo0ap2QVB9ABH8Rm2jhVAQ1CYisIU7kTLsoYk6ckWdmTs5pCVBMCnt/HEWh/v4nT8HBZeiVSzCFw1T1uTwytRV4qmYKwHxgIDABhCIbFRPHy9HjGpZIOACnBe9DItOEcqYybK67ZPW1xawKjPdYCYwkXw+aCZojkDgFuzjZqstVEKrs4eRzfdM4Sh6krlJx2Jbe9vL8FyCruhYhcFVhY4P+p1kVAwEg7fJ7EtOB4X2rB5W4+fJ+FkCVAne9LnQzMXdg/VahiENTKs3tclBpiDgQEDZCC9e32esSg0GlO68zq6B+oGqrfKqYNLy2OhBZKcxOQF18n1FNUb8HJBg2y7V6Hh6t4Fwx4kNCGk+WmZ14E7fziAQy9gvplRu1JDgSl2V5jF0BMHIMrler/sJET2CY2+P5AiniWIg7DK4mGou5AceAAnyv3xwvxAM/0Zf3Vf31X/iQ4ABAIPdhjTlJ084AAAAAElFTkSuQmCC'\n },\n {\n country: 'San Marino',\n code: '378',\n iso: 'SM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMzM1RkUxMDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMzM1RkUxMTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEzMzVGRTBFMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjEzMzVGRTBGMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pmAcAgAAAlxJREFUeNrUVU1PE1EUPW86hGk7tbVAoaDpByGG1EBMVEyMceHGnQtNXLjTH+BKf4BxZ1g10Z0LY1ITjW6MCwPBqCHBFghpLTRAS0EoQqX0ezrTzniBLm0thtpwkzsvk7n3nbnn3Xse08jQAuPIsy3AzXJokR1HYLXq/xk4PPsWQf+rfwbmD5sgFVJYXFrAejQAoa2CcNgFx+kBGE2dzQXmdWYUtz7CZppEdK2A5K8SBvtHm0v158UZTO9u46Syg+zyF4jZaZwxSgiVJDwY8yJdzBx9xTllA775T7iq+DEfD+K9NAqLWYcriZfgx+8iEBeQv3AbZv2JxoCfTG6Xaa2Q11AwHfGi4uvKBJuYGmceV5zzi48xlr6M9mQFCasD9/AMdsWheQNPtQ79TVVjA7RbTV1i5GX+oS+mq0s5M9DUJMkjgKwiJnbRGUdxKiOjT1TgNpQRyRvh+1ZmWF2n+JAOmkCJqXoF63jYBFb9ixrA9KnSC07OgVttw+aSAfazL/D6h4Tv0SLO9QKzK3ZA3w9YrzHwF6sqLNQDZlxDbUBUa9wynLZ2BEPDkGIenHf/xJAzj0yiG1O7fehyfoDAZihebKhnG2guOn6tBE25Dt7ejTs3hjCSXoPbb4Bn0AVTxyXIOxa8i7yBzHooVqZ6tCMA1hTaiNrAdAsLqSK8cyoyhgx8GyMYZkb0SMDzzU5i5D7F5ajYLcr5+7YMj+b2hs/U8NTL9ChQitlMMkaoCjEiEr1sjxnWqH5n+UPfCzwBWKwHLwJ1vKAdsLIPqjVPMvcHQJX/MJrH5D7+LcAAowvZ8JHN4kgAAAAASUVORK5CYII='\n },\n {\n country: 'Sao Tome and Principe',\n code: '239',\n iso: 'ST',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMzM1RkUxNDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMzM1RkUxNTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEzMzVGRTEyMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjEzMzVGRTEzMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+A/jZ9wAAAoxJREFUeNq8lk1rE1EYhc98mGRSo0UkJSmiUJtFFwri2rUIgtiiuFGwiMtiili02A/caG2wC8WVUPeCf8B/oCBFVKzWhtgmTalpk2Yyk3ZmPJeZ0GASm4WTC2/mfk2e99x77k2k5I3TK6mRakTLSegqS7BldKSoj+eDcThAarQKrKBjcDkdskszr4NIzgZQ6XVQDrPT7oDiEkHLko2nhIuSSgrlMrp0+KpcVaiuqAFLsCGUKxIwc6eKSpqJbJOs+AQWHwJeInyZ8Ml5DUGuwMLDHLRMgAPwBS4tdJ8t8hkRDYsCA7qMo4aK6Ogi8GQd+In24LuMbvGNjN+MA/uYq74hlFthC7mQhQ+zA9hIxoBjHKAPUBWZ/RUCtuPBeoDsN9rjM+sxr2/Hm2M1RqN9bAlyeBdqyMD3uQTy9+IuXPNecuoCrrLCGlCmJcZfAiMpwGB9I1en2mmMpr51CFcID2kVLD1L4NfwCTgHORBsMpn9WRO4chV49RZ48w64eAlIb9U2sI2lbjCA7DA5GVZJcZeuWdkEBs4Bt8/vdV1j+8wFVgr7uLoZ0DIUGHoYx4cXEU9lgFUOmC1S5ZkvMO5eB0JclQq3xNlunWuDq901oEpCTQG9+QPRF4RmXGVNnS25e5bN01OnXCn5j0D0iDffaUOxuKkUQqO6ip5bX4HnOVdpmRFqkbpnllg/n2JfeTKifd47tcT+BRbQsEED8xzPDZbxacyG9r6Xayi12JD/cHPVoH2EPhoyMHGfh/YLj9Gmj1emgGo0TT+hk4NVTD0wEVyTcEjfgaX5+COhUWmC0OnLe9BISYKlwNcin9TliIBOjJsIrBNa7MwfAXV6qLo6NWZGBPTwlv9Ka+WPAAMAQOHt/oOWjtwAAAAASUVORK5CYII='\n },\n {\n country: 'Saudi Arabia',\n code: '966',\n iso: 'SA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMzM1RkUxODE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozMEE2MkM3MDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEzMzVGRTE2MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjEzMzVGRTE3MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VDw2aQAAAwhJREFUeNrEVttOE1EUXdNO72ALvQqIQYSIxIA+GCMvPJEYLzH+gN/hZ/jAL2jiB/jkgw+YeEkkgsRE4w0UrLTFdnqbzrTj2jNtANMpwgOc5uScM3PmrL3X2nufKlic/QlgiF3D8bR+9k21PcGe8VjAPTihprq/UgCrxd505h7aaFm771qGM/WoznOl8017v8L9Hu+eb/a3Hh5btMpCgABqUwcaZfg9Ps4b8BpVhAOnEPH64eNaFfCWCbXVhMfUoXBUXAAP9pgHRoJR3Bu7jbA/grWdLyjUS0jzWc2oYDw6iunkFFa2P6CglxBUQ9DNOm6dncPH4g+8+LWC19+eA+HEIT02ahiLnsGNsXlcy8wgrgbxieDJSBLzo3McU1gmqBCr09tUMIYdsjLcfxpR7m1aZk+PvbiZecAx0O1lhbTlawUk6eVkfBJb5SyGQgMo8blFzWPU8XtxHWkaoelFvM2uYSSSQCw4gDfZVfyu5YnQ9eiGu8fUrUFP8vUixPY4NVWocZ36DYfjWBi+iqnUNLZqO8hW8gj7wrgzsYD10iY+k5nxwXOUyzyCxtQrfWoE9y/eRZJePnz3CDOJCVyKn8er7HtkqN3S1jIKZg0+o4y52BV4yMCzjZcwabBXIlpReuTM4mypa/FgWvhJk3gnducqOVtfP5nIlTaQolGbpD5AT0MEqdE7g9RqzIQ0dS5UttFQvG64mjuw5CEtR0Nz8tnfb7Ng5y9ph87nDCJ7n53vlpO3AiZ7mGr2HF3TSnPXWA6TQxko8Pc5oLKWYDEbzihgYpwcLmCyR+Zkwd4L6yiVq6O1jkFG6mhfBnXOmzTIah+oyI86tmhAjMaVzSq+Mrh0Fhi7oh2tZLZbi4WElF5nLkuFMuiZAEmXIJL1H+bvODW/nLiAp+tLeLL6GAgNol1HDxlce7UWD4RG0a1TqxXsats0oNC4EAPRSwY00V/pef9oB3ssh0sQSf+3/nYuBoJZjOpqNedQrAZcL4f/p3ofkAt1nYj2hHfXB7QTvY+1tsbH+ddH+yvAAIKJO5Z5g0J2AAAAAElFTkSuQmCC'\n },\n {\n country: 'Senegal',\n code: '221',\n iso: 'SN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozMEE2MkM3MzE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozMEE2MkM3NDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjMwQTYyQzcxMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjMwQTYyQzcyMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MP7aXAAAAYNJREFUeNrkVjFLw1AQ/u7loRUMtS6Ck7v+AcGiIrjo4i/wH7j6C1xcBAf/gJM4irvgoiLqIAgOHUpbqCgKWm1pX85L8opFYptAgogH93K8fLkvd7m7PMLWfBXApOgroqQJGnVhyusOF/LQ3gc4CqbyisyDMfWlCjqltqPGnUiciCta09ZAzzVKvK5/9Be2OgjnDgJ8d5oGJlYEmckfI5aEkhNq/OSmQKwIaAlhy9rZEtvIVE6WMeDgnrF/x4Ed7CFZ9LGJtQqb6qzMQccf3grxdWify15H7jlOBsTkp3SEcFEXe9fguMQ4rTJox+BERpB2Mkp12/gLY6NI2CvKYzWJtsLYnlXYXAzdGBOfWMdG0tf8unxiLMwpDEuUVy92WDGFmNSJLXnjEVibIizPEIY04ejGw7OkvzCRLNXJiCXinES5Mk0gv5eajFV5Ae8teT/rpP3nFxm/9/A0bOFlOkDot0fmfyGmND+Gtkce98ejT+jM2LrVfeq3i/Ol338r4PoUYABXBXI3FKW/6wAAAABJRU5ErkJggg=='\n },\n {\n country: 'Seychelles',\n code: '248',\n iso: 'SC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NzkxOEIzNDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NzkxOEIzNTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjMwQTYyQzc5MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjMwQTYyQzdBMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1AigIAAABGRJREFUeNqMlUlsW0Ucxr+ZeXa8hjgRJSCo1BQlQFUkoGqkSlGqJBWkjYTUqooEh1QVSBygNBHbtb30wqlCHOglEkUtqBfOSJQzByBpk7jO5nirlySO7Sz283sz/J+XbHbijDSW5Tf2N99vvvnM0HsnCsCLRoMrYMUOuExz/u4EOl7bEmbGdvB6qcBsHPx1J/SJdSM8NovNqXWh+WzMeqzRfAVHGQYH1mwYH51Dx+ks5KK7vJm6axVEK23qZTsy9+OIfDMHI2ugqcMJVSx/h34NuYaighaHnOgbTBgjw1GlYg4oVkfU+sgkURKAW8jY2Gxx4dq0lLpC04kd0arjxoiX7eDtBfnoi3mGLc5kQdS63Ubrgv5fzggR2uzjtEaCTLgElLF3vXYkxGm7undzRvq61jUZ8JQJ7EfbRmjb7SrzS9wMfz3HjOWicL7pLoMwa+loDREH3Ri4GDevD0e4ChOu3U5V2WkJbVHJ6JcBmfwxyrUWjTu6XDUujyZcQYxjefnQQlzgXOZ3IbbQ2gntSUI7uW6ERgntn6viILRHF7YQZ2xq/NaMbOskxLO7EFfRvkRofya03xHa1OFoa3wdluL+wYQ5shtxNbUnSqk1Y2MBY/HaNFe6Ehba0vNGmpwTDaOO40pRsPaC+dvnhHhT8FKKIXdSS4UQuhlA9q+05iC0vBFaS6xQgJFKwcxmIZqbZa2wQcWyalc/3ZpWrZUUKyWhVVP7IGFGKLV6Uj8crSWWz5fFcjkIn0+6zpyRnt5eeAcG9jmupPjCpbj5yXBEKMItLVErtbo0K6kVVmqd9VLLGJSubzvT2tqkq7tbevv64KHp7u5mleNlWm2KC/LXalEYGrRTDuhPNozQjWcltDWptZxZYolE2VlLi+VMeXp6VPPQEOh9Sagy66S63MVq/DYVxYmchlUfRKdNUdcakW/neNEqhLcIrSJX1izqe86s6szb3w/X2bOWiNgvVitcQuyyutgcuRIR0Frp/4pZXWsm7oatfxTueMMDubEFI1n/zNznzm1jPCTT1dwrbbuLj+XNR6MLHB4vK/yTN8JfzSL3eE2zvaoxtbGMrcnMQWcmDhMIp58jmI6r6WQQfpoL6Rj8yyFybHCGlA33fgjC12WyzP1NKvgpnk9FOD2E2iBn77ynms+fVy9+eJnh7VP7EUrrJZlbkf7kEuZXImx2NaqexOfVVGKRLa3FudxYo8zkGEy6MhrdDruLhBedeP9GFtcvhxD7aFJGHwRFC2vFyatXTdfAIPDBReB423bZxIs5Ob3kJ4GoekY7f5pYRHA1xpYySZZfSzDk13cEmigTTVQsrhfo6Fr37Jc1X7qjMp/9ATzMwHzaCfFxD4q972LldBdiTgdmkgFMTP2N+egC/KklBFIhGJkUXa9NajGDUkI3wU7XrYmmzUHbE6Vr1Wiw729/GhhCuv33bIcev3CcRbx2zMTmecD/L9NTz4HNDCW+yCE0S4DBQZ1tJwFG4TiCwEHjfwEGABOHZsLQl4B/AAAAAElFTkSuQmCC'\n },\n {\n country: 'Sierra Leone',\n code: '232',\n iso: 'SL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NzkxOEIzODE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NzkxOEIzOTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc3OTE4QjM2MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc3OTE4QjM3MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+GrndcAAAAE9JREFUeNpilNtq9Z9hAAATwwCBUYtHLaYZYPz///9HIM0HxPTKVoxA/IkFymBAouli+WjiohtgQUpU9Exc/xkZio6NVhKjFo9aTBUAEGAANLMNXBNFuocAAAAASUVORK5CYII='\n },\n {\n country: 'Singapore',\n code: '65',\n iso: 'SG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NzkxOEIzQzE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NzkxOEIzRDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc3OTE4QjNBMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc3OTE4QjNCMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k5fIFwAAAflJREFUeNrslk1rE1EUhp97Z5Jp0dTEL7S0GEFcKK4CLgouunARQcEK4kKqtTsVi8WFFUS6EDdiUXDvX9CFgkJXirjQoggiKoqSGIuYtpOk6SRzxzMTK/0BlwrSA5d5mYF5zrnnPXdG1fYMloBeHO3TDjEfv0CXh96Vh6AFLVmOA0phKTKyym4itIb6YsZ8LZEeG8U9WiS4fodw5m0CVZl1Hbgx1uA6uYRSaWUWb+oa3s2rmDfvaD16gNq2la57t1D5fsz7T7C01EnAQiRgU6qQOnyQ9PkRwulnNMcnSZ86g9qUJXw4DY1FUieHUH3bE20NTL2BPrA/ke37j1Ebs6TODic9DqbuEs3+JHX6OFrAkV+3AnaXhVo2T896onKZ5vCYtMCg9+6TLQ5ojl6ClIvanLNYcXc34fOXnUwGBzBUcAYKeLcnJYkfeDcu4544gvn23Zq7nStbdk6Ia73wxQxazOQOFVGu9PbJU6jVBVYmdn0kjo9+VVHptA1uoPzewoK8OENdIFWp7uIF3GOHaJ6bIHz9Cr1jN1Gl0gHmZJvbbRtgX9UKxTkRG2RMDEGA+fBZ3JxD5/uIag2bB8fK9s4rM79QFZGNp/nvIzEVMS+e2SiyDY4PgjlX9WScFTdWKxzNP4o18Br4/wPHXyf/z++Iv0rMhPVbgAEAAN6l96444okAAAAASUVORK5CYII='\n },\n {\n country: 'Slovakia',\n code: '421',\n iso: 'SK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMkIxODFBMzE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMkIxODFBNDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc3OTE4QjNFMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyQjE4MUEyMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YhjhIwAAApRJREFUeNrclktME0EYgL9l221LW/oAIlWBg4oXUUPkZGLwhIpBIDFBjeFoOPg6GfXqTSPxqDdNDEZJwMDBgB5MTJQLCWoPBhrwwSNAC7TUdvvYcQoESuRiq2icZLL//+/MfjOz/2MUIcQEsF32CFvTnLJPmlYFsp5bAi/gL7V/CyySSURcX5b1wDj6yNiKXdpEIvnnwIHWCwy59zCo2JnuuM/Mg0fL8pC3ipGmtt8CNvW+mVxTYiYr5W6VYv8HEvpXbNv24Wk+gaJphDq7iU0MY3y0M/h+hs+6BZsezR3ceP7FuhYU1DeW0el1yNhyUHatHVvVbkQ6je/mRSauXsdX7ODGnXd0Pw+CV+QOprRwXTMXYHZrGKEg9gOHSIcixEcDoKokp+aw19RiTI1gdpnBJ6OvKJUHWFXWNVUQFQUkYgm0ihI8p+rRXE6UAgVT0zGS/k+kxvxyjCq9Q+42e+4vgze4WpovKTtL+2so6eskNtDFwu0OsFjRLrXLw5d+cLyFb4aUxFxmpfmAs1ZtVQjMqMzu2MuYdRcvi2vp6naiq2Zad56jbvot5fLdcNACtsy83HescKQ/vJYuM98JGTQ1eIkuCgZef5eAWbk7aY+XUHfYRqnPzLMe6VgeZcWeW4sotypPh7PzdCqeoFBT8LW1cGX6IMFXfjAMHEeruVfhZ/7hUyKxNJrNkgdXghcL3RvAqqKwFA1T5HEweuYyZ23NJKQzPU72Uv3kLguz8zjsLtJC5JM/IsqQpyr8U2WS4aOHI1Qm57A0nETIf5zq62FccaO5PZBO5Zu4IqZNzTJhWBx2Jg07Wl9/JkuTcFWgZUbnD90knDZUCoEMX1KestWkLo/W+A/Komn1yuPc4qtP5IcAAwBoBOOwBg9d5gAAAABJRU5ErkJggg=='\n },\n {\n country: 'Slovenia',\n code: '386',\n iso: 'SI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMkIxODFBNzE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMkIxODFBODE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyQjE4MUE1MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyQjE4MUE2MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ioEsVAAAAYNJREFUeNpi/P///1MGBgZeBjoDRqDF/xkGADAB8eeBsJgFn+STp78Z1h/4wHDnzi8GULgoKrMw+NkKMSgrMEPdTAEAhvSn/zjA9IZTQOtu/GcQ2f+fQXQ3kP3gf03+OaDMr/+UArzOtlT/DST/MgjpqDBIG6qCnMlgrgYSY6U8qLcd/ok91TExMZw48JfByYuZYdYsGQYONgaGlIx7DHuP/WBg0fvF8I/CNMnIIPr4E9bs9IeHgeHbaYbnV/QY+BXFGf78Bcbq+9cMihonGV7/t2ZgYPtKYeISZcYV+wycb8QYpjScYwju9GT4D1S2u+E8ww82CQYGEVAMMVPoY71n2H0MtBjka/531xkWlfxg4GJnZIjrYmF4zqXFwMD+DayVRhZDPfWHm4Hh7l2gO4BhraQGtPQ7UOwfNfIxnoT9F+Q0oO9UlaCBAGT/YaQ8D4MtZhMnQTk/9UquhS+jB6LEBFYSbAyfBqJ2Agb1gHiYCqlkKFrMOxAWg+rjZwNhOUCAAQDa9c0WhSA2hQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Solomon Islands',\n code: '677',\n iso: 'SB',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMkIxODFBQjE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMkIxODFBQzE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyQjE4MUE5MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyQjE4MUFBMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+3IS9UAAAA4NJREFUeNqslV9sU3UUxz+99+52bVe37i90bMbIDGFCiBjiZDGaDGEwBYXwYGJ8JD7og0+GxBB8kswnX0x88wVdsOqDIWRMFDXTkUzkj2iQZLCwrltHh2u3/r33cn53g6YPdmvnSZrm3tN7Pr9zvt9z6+HI+SmS+SAFG19zLemJJLQHQPOA4+DGZIq6rnpSiSxYci9kQmElV2V42HvWaW/z8fYrj7N7SwOffTfJN+NxMhlLsh5qDA8Htzdy7PUnuD6Z5JPIbSaiSxAw1gXWBJ3MxtIc7mnlxadDPNvdgBVbWkk72DNpureG6BP40ec3kJ7LqOOug2iDrWEQqGFOih379C9e6A7x9W8z5HVteaS2g+XVOX1xmnze5tKtf4mlC1BvqjNVOFsFlCnFNrnPenhteEEz9aA9L/rdl09HHdzLsFm6NGXMNy7fA5GCOyloMDGaaim4MlQC1CHeLkAPPdtGOf7yl7hC2Tkp5JOkzw9ygF6Bnj65k1pT440T44xcS0DY79ZZM1QBLSk/t8kd7e4dP3F8zxn27zsvHCh1iBqvGCoqxTvE4Sqi7shZdrEuRJ3yY1YaFqRsvMO97Nn+C+/3RXj1wDmQkn9ebOHjC20CVmsj+qG6VgVlhe7L9ZZ3RuXSIZHMr/hMknnHHRem7upfTsNe1WHfGfr3jbgdXvmhlcHv24hc8ZNJK3NlLR6T1dghrn3uqXqGLkS5I7DE7eRyQem8M+zj6J4OWacUY9cTzC+JwWq0Ug1nO0s0HDggI/WqDlv5aKSVod8D5HMaG5vyBEIFAUt3gbTFqTe7XLCqN/j5P+SUc9VkF3Ic6n+Swbe6uHF3kb3vjjKvpmNSVsNrP7ZxaqSFyB8BMlmNsAD9ZgFLSW8rjaXbaSn47aVZGutquDyRIqcc3hl0xbSk+6uS/3tqkcivM9yNL0KT5GLtZTX8YjxANiMdNkuHjUVg8c11aHjB8GpBQ3TJLBYIy+pE1UtC9zwy3MZmL9MzAvRJ5Xkxjfyu95mfy2roAk2nBFb6ypQ9lu+g0vqRW/1G0TzqRErueNjVcNfOMT7oH2Jg//B/a1gG+DCK6+TVi3cV9OEeRsPLGu6qTMPVwqh2D1fTcO3gCvewWmARXOUeVgssgmdlpJZe8R6uN4yerWPB9176iiMDZ6Hu/9Nw1f8Q55ZvipZ08ObVFj48t2HNe7jeeCDAAKYZ9xEESrmkAAAAAElFTkSuQmCC'\n },\n {\n country: 'Somalia',\n code: '252',\n iso: 'SO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDNzVGOTkxRTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDNzVGOTkxRjE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM3NUY5OTFDMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM3NUY5OTFEMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+aPgnNwAAAXBJREFUeNrslr9Lw0AUx7+XXBLbJB0ULLi4+QsR3F1UEAUR/CecXRwcxal/gbOL4OCgo0v/AcFFcKpooS0SWmmitqbXxLujYsactHHpg0ceL5d87uX9yJH1UqUGYIZrgGzE5VqnAwOJayZwDf8kY3C6hwjQ68dShZ0ZOIoBkrBHChagmEMYJ1VbITaXHGwvu3huhtIXJzYzVDD/qsiZBIQQ1N8Ytjh0b7UAz2cSmjc1uSat0LQLO2EEk+o43S9ivmihkNOh8W1XSgt48kKcXL/KNbalDTdi8cLWB8NZuYngK5LRW5Sgy2Lp8wKGvKWNprgmbYqbex+3D7/Ttfz4jqu7trynkmOqAvY7fWwsOlibs3FwXsMnj/x4dxo7Ky5emj04ChErgQ2dIGdoOLpsyLyKojq8qPNodZi6WkMrgUVOG+0eQp7X2SlD+oJuXxbVhEGUepqqDg4RtdAfiGijvwyS8U8iM6GDI4+b8dEn+BZgAN1qgUfVZqa9AAAAAElFTkSuQmCC'\n },\n {\n country: 'South Africa',\n code: '27',\n iso: 'ZA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDNzVGOTkyMjE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDNzVGOTkyMzE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM3NUY5OTIwMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM3NUY5OTIxMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+CE4TZgAAA8tJREFUeNqsln9MlHUcx1/Pj/vJ3WEMPBERMrDagkVba4I5BzihtCyZzsoxurVm65fVwgp1/eGMmrLlP7VYFvzjDJS00T8dUUmba9NqqDAwMDpQzBz3CHdwcPS5O9yOudbu4Lt992x3z/O8P6/P+/P5fB+Fuh0+YDlTQQPdROPWXXgeWg8Xu/F5thDovYz5vjwUiwVmZliE5ZQ9rPCWx491womugTEGN65SWlrFiZ1vkyp33DrwDiMNH6CnOTGtyGE2Ij47u1BxQ63MGpKLCyZ0cEgwWavo6GhhyZtP0HSlB8d7B8nvOIc5w03wt24IhUDVFoyttlf8TEvZLxAWijEJQJGX5twL0yGq656h9FgDRmERWV19uHfXEuzpZ3r4TxRdAlWUpIUVT4nub6yXvC/NpPxUAd4rK8EWlD0p4mHwDaCkZ/LlywfZmXM//H4e365tBC71L8R7IxKy32FRnR37FR6uttF6fjVVnQ+IqE1Sb4Cmws3r8M8oZZurObHtNVxR7/dw9Ug9iiRKsZqSE56rNGqKNT4/JD+lLaP8dGEc/ZR4K1TDA/Kfm6ZX62P0Z7uY+apJAnQk6vt84ciymVS8Qr/meRtt5/J5qrNQ6K1x9H/LHmV95bO07XgjWvlJNNmdwreXZ61G4yGVcIqbdacK6bqWDfYJMIvMtOxRH/b05SxZukLqcHLxhG+vY6+rbPeY+P5CLhsvFEk3iZ/6tBgr9IFxZPBImtWEhfX/u2MsILFpYVwiphIZHHEtFBGMeJu4MP8pvLVIo6VBRNwZPP5NAe2+XLAKnVkGiHQZo0OYXHeRkplNODS1GMIq7XsUKl+x0Hkpj/KjhcxMStU6xBFdAvHL9foIxaWb+K7mXWxYkhog84S3PKhx8rC8PDeDqtYCWvvvBovQpI7FKIeknexOmvd+zHOrS/j17A0+a+qSbjKhaUriwpp49G2twoaXLHh78qj4tIDpoNSb04jd4Rfh0RHWbXiSH6rrIk9QW3eGDw+cnmsmc+LEUS8/kmhXCeVJoewTSms85aCkOZXmfUeilL3dBmVPH8XXN4A5fRnWFDPhmXDis3r2ot3vHcpzbvTGeylV6r8plMOUlG3mTM2+OcqfhPJrecqGIztNHg4ne0Ia+nbvGo5fvgdMoTlKedPQH+Kli+b9QpkfofQL5RdCORg9Hq32GOVCTmX9+KCkNuVWrGInAnDtLx5ZW8GPL+wV58xzXrZFhimOldlRymRSe2dx2caN6OQKyqePpnP4xffZXfwYA73jPLrpE3z9871c8LdHbEoa/wowALUrYLIw4iaVAAAAAElFTkSuQmCC'\n },\n {\n country: 'South Korea',\n code: '82',\n iso: 'KR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NUZGOTk4QTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NUZGOTk4QjE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI3MkNCRTc1MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI3MkNCRTc2MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+kIg3fgAAA81JREFUeNrEVl1IW2cYfvJjMPGvIbhhJZ2tZaWFlqZgKEOHGtGZqtALcVR703mhRGk7dTBEhsz/UmVsYOl2IXOghYpFWmnNxYyKOkMXfy4EZTil/katTZqaH0/efefYZbgYPN5sL7wJ3/ne873f87x/R0JEywBOMnXiv5EopisS5tjxfhEkbrcbYWFhkMlkxzrZ7/fD6/UiPDw8lIlTGmpnfHwcRUVFsFqt8Hg8op3ytlNTUygsLITZbA5tyCOmQyQ/P5+0Wi3l5ORQY2Mjra2t0VGys7NDra2tlJmZSXFxcVRWVhbK1HEo1c3Nzejp6YFer8fExAQUCgVGRkYOXpjj2A8gkR8MQ1paGra2tpCcnCxQnZiYCJPJdDTVPE1dXV1Qq9VYWVmBUqlEW1tbYP/tyG+Yz72JmUQ90yTMffY5nL/+cymGGIwlcOxiQ0NDwnpsbCyI6SDHKpUKeXl5iIyMFOJsMBiQlJQk7G3c/xGTKVex8fQXeBb/hGdpCZsvHmEqPQWr334n2Oh0OgHlwMAAEhISUFBQgJiYGHEx9vl81NfXR4wiYhkqPNt8YaFhZm6VxJJNc55eqs/R7+qPaTEmgRYRTaNsb7PnaeCM8vJy6u7uZhHhxMf437LLdOJGKaK7HoA0F+AnDuF+DvFeJ2ZUsXgrV+LimhXSDCPizc/EJL9TLsZqgenjPzjUs3+77x3CaN/p16dScU+bwgImx3VZPO7bJoEtO6CJPfJMqRjHWq8fP39wGVUaA6I4D+Tkx+2PDLh39hogU/Apjt7TmXjwoY4V8htR9S4KcZRCiuQzGjycuYrn5/TgSIrlKNZl3TsA52XOWUm92sDrTxj6k2dFOQ6JmM/KioqKwPrW9UvAOweWSIPl6DiGjLV2v2/fqYt1ttdvkHojNWBfVVWF3t5e8Z1rYWGBmpqaiJUUsdKilpaWwN5XP1kIahMh/i5B9w3hClPtl4QTpWT63hyw6+joIFZClJubS/X19TQ/Px+U1UGIt7e30dnZCalUisrKSvT392N6enq/o33xKfqe3cEV4yXI1SrITqhwMeMCHj+5jR/KMgSb2dlZzM3Noa6uDg6HA+3t7VhfXw8CfGg5VVdXw2azobi4GA0NDUL3Gh4ePvCiy+3j2UKkUnHgeXp6Oux2O2pra8GQClOqpqYmqJxCDgl+OPB0ZWVlEXuRVldXRQ0JnlrmXAhTSUlJyCER0rHFYiGj0UiDg4O0u7tLYoXNcBodHaXs7Gyh+x1rOv0tDAEiIiKEj4HjyN7eHlwu1+E9+j3Vkv/r0+cvAQYAGzcZMFujiqgAAAAASUVORK5CYII='\n },\n {\n country: 'Spain',\n code: '34',\n iso: 'ES',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNUU3QzUwNTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNUU3QzUwNjE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY1RTdDNTAzMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY1RTdDNTA0MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hN0M3QAAAeBJREFUeNrElk2L00AYx3+TTCw1adndLlS2KLv4Ug+CeBCk4s1v4cWLn8WLNz+B38GbXrysKOxBVFwRXRXStbiktcFmW5IZn5qCwgYRUpqBITPPPOT/vP5n1K5/LgS2ZMasZjRk9vViwV/flYA7VDR0+rMabH1qLasEWM0eO+N/5Ve7FqXztU0hzdQycGPt7ZjiIzs3S+YGRFENK/vW5hQvkoVZnJUJNcMC6Tz66zCdOTx/EDA4qpElE9rNjN49Qz0Q5CPRccsAF40AwvfimGeoZSkfXkoAOgHtbo1RGBEJbmdb9I6XDSyF/v30NpOPdYb9dzSCLa7dvs+ZXsynw0fo7CsdPSgV6pO9NM/dDPzxBeyry7wRz/eabQ5HG0y/XWXy+Qr+8LzkoVyedSGwmBMLIGdnXBcj9t9anr1+yCX3AJ8uyXHjT/HZZQHPfyQ5NBcNU0+RSLPdaod44QGD8Q/8uzs4616uZ8t43CyQ1mG01hfPXHo34UW3ixvVudF6wm7rC9YRezdFLylBINlTdZJAxBPl5iFXvpIeFg8dIRI3xY7lMFUYI3tVgkD27nSKq07lLJFZB+2kv2WpcXFVHmNjy3G8Tgb6P9TcpXO19nxTySVR3X28ePI0Vvz0iX8JMADE1p16B3U5CwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Sri Lanka',\n code: '94',\n iso: 'LK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNUU3QzUwOTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNUU3QzUwQTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY1RTdDNTA3MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY1RTdDNTA4MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ynHuxQAABGdJREFUeNqklttvVFUUxn/7XOYO03Zm2g6XDhbE1ghEMURRY2IUwpuX8OSbiW8++KwvmhhN/A+M0USJygOJMSYEH1CUBGICUgpUCW3ppNDaMlPauZ3OmXNxndML470tO1mz55yz91r7W+tba23lX+Qmm+jGwMXnn4cmYovURbaIGCL/tva/RqBnEZ0pZpV7mfrPU4lEsWFi6p7oU8TwOKxqmCvKXZGkyFa4caoXa84kXWjguWpNB1BqaS7fTJHbVaHv2bmG0YxjvXc+nzg51gEpgeUbxFWLKTVCh+/JLtlRFRmE+Xic4lAnrbrByQ/2EDUdlLYGy37gMIP9r0xQvR0j81TdMnR5GYk7YlQk6YaLUspBU8vuXJlj4DU10n0WDzxdYuJsNkSiGR5aoES12ZFH31Ph+2CNXdfJdNd4/LUi107k8Wwlx1hRrvwlkReaalOkWP2/Kb/I8FfbufRpgXiXjWPp6KaEx1ehcutuBDPhrlp3bJ1krokZd8M1nx09yJY98zyRHQ9psvYhng8U12ejaEKAAG2mv8b4uRzJTptHXy0yO7KZTdss+p+7w9T5TkZ/6EaLeHIwA6eiY2puiGRdhv1lopgJJ3yIJCUkgvjhw1PsPjRDZneNymQ8nH872Ut+34Kscbn67RY04UK4Ty2FwmCDwxP0yYyN72jEuiwyO2vMDKWpzMQY/zGLbypGTnXSf6BEz2CF6eGOv2XWukfIN08T9EKegFi+xi1hezLbpFaKcv74TloNnR0HS3QN1IkKcZ2W+pOODSH2Q+755PcssFgxufRlHy+8ew2z02Hg0DRPvjGGmZNYZmVtE26ezoiL2ljKfbjatTVSwvJI2uGhI9MMvj6NKvn3/Bjk/oKY6obOvkaYXu0ptzFXiwK3qVO+kWLb3rs8//4IqipG55eYT0oq47RkagKalsnomZ6QhO3FRtsoYmUEiqAlB2jNGDTGIpLoYqhscP2LXqG+YlJcXLkSoy75HeT7fZMr3Cik8gXB5KUuPnnpGc59tIvaTJSv33yM428doFqNM/TNdhYnTAoHyzhywPa6bqyXzcFPEN9ousXETznshrS1hkbhSImqFP6JoSyFQhnDcNj38iTd+ytcOLEDT9LOXWa2WrdhQRgYciSVUlEvZHTLMshJni78muC61OFE0iYtlWvo8wKxtE3xYpbyWIp03mKhFMf29DANjdUm0CZ+e6lqm635CL2DC+x9e5Lv3nkkRBHvsMXFMc58OIAhzaajx+L3q2nGz+ZW3RRNtsg+WOXFj3/hyrGt1OaiGI58aAoKKpElRkpbrAptvfbuFKRGAykCGobU6prU6lIphW556PPmUsyFbJ58n7uVXPXOyrBrBsUrOS4f245Tl8JjSOFxh6l/X0wlRmuR1YtAQnkcpYK5AlVKLJvlHFsVo6e7aZQjgrR1r2X+b4z8sOjMyUWgZ6BC/+E7DeVfkKvPZrn6ROSe4f21I7Rxv7l89clvhB3LewI9llx9bjP7hwADADpQzQBjYpxJAAAAAElFTkSuQmCC'\n },\n {\n country: 'Sudan',\n code: '249',\n iso: 'SD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNjc2Q0MxMjE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNjc2Q0MxMzE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY1RTdDNTBCMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY1RTdDNTBDMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+dsEThQAAAfVJREFUeNq8lT9oE1Ecxz/v3ZmkMae2xdbuiqRiqaugKDo5WFGQOiiimy5aR6dOOrhYHRx0qQoVaQOCbgpO/oHatTrVhCYNtIlJbWJJ7p6/C7aiVhfv5Qf3jrt33Of9vt/f7z118sTe+TvPE15XQzHbGaABZbAeihu7zc6sw71MB0cWXGY9n28uOJbhDgM910q9QXx8oEFnVXMsu6mVcSVuF64lZ1jUrYcrp2sMD9XwBbinpPFlzihb4LVxRQhlzdP9qxy6sMKbHT6DZYdYk9YCovd4JF2Vu7f+JpS3O4BVuPUiydXpBPMUKLLc+tweOAzhkpIVxJsMv1bm/rZTfrK7y2QrBWUi8t39qwGh9HWHiX1l9bF/znl8/rpJk1LReryxFiK7I0MPMy8nVf+lXfrhh2fqx8x/X/rf6xJdfR/60tAMOHdziMNjZyguL1rM+I+OF1caUKpXpd2MJY9/BxY/QSzJ3ZFxLh84a7G41toq3MJ0haMHj5tHFx+Y3giLa2NwIMDNMpWSje1V0WzJav/2zKjJfVlQgQksgUPo9oT4KYBMHvO+rKaYcKPeuX7+MCwYR2qtrwPmvsJUDgp1a4eE+4u0W2PwVlplMmv9PHbXpZU+5clnmF6iHeGKtB65mkgrWebrtCtc3i3lyeQ8jKGd8V2AAQDj9qv7QrTRKwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Suriname',\n code: '597',\n iso: 'SR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNjc2Q0MxNjE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNjc2Q0MxNzE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2NzZDQzE0MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM2NzZDQzE1MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ZGHpRwAAAa9JREFUeNrsVbtKA1EQPXf3buIa17xMNCqKaGyECJZW9v6An2BroSD+g5W1v2KhKNjYGBAMPglJCslmY9TNPsYxJGClNyAK6oXDDrNz98zcmbNXYD1H+IGl4YfW3yMWDlGdnwlG8E2cOsOWFnWMnkMxXcZj1x5i9D+euixOr/S2KW8PnzVExt1OAu3yADSzr8N6S5ukd18W7xwfE/JIEIc9I4rZtTtoEcLl7jRMuOwlfhsqk0s9kfg8jM+CSMDMufAdCaoMIrnqQh8KYO5aiGYMGGkP7UpEsQRAqqYYMKFRaCK/X4SIcWUhf10Qls6OQa7A7fYcni5ikHHvC+XEHHLYh32UwvXGPIKWhJgIIcYIoafjZjOP+kEauuUrVdufjnWCYbVRO52AfZYCsuwbAxrnSVQPJ2HEPG6c+njLwG4qB3swkJotIblYw9VyFuGLhpm9KkYWSmgULRgtT51YZpLKchLc5+gUcLNTwMNJptMDsZWFkQsQKSWgcztU5STI8Rw2LLU0OTeHu/PEGO1qt8b/HZOHLc7whWrBTeET2WzEOzL9vvuhIf7v419P/CrAALDtiSyIepCqAAAAAElFTkSuQmCC'\n },\n {\n country: 'Svalbard and Jan Mayen',\n code: '47',\n iso: 'SJ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzY3NkNDMUIxNzg4MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzY3NkNDMUExNzg4MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMTZFRUEwNDBGQTBGQUFDMTU0NTE1NkMxNzg3NzIyQzUiIHN0UmVmOmRvY3VtZW50SUQ9IjE2RUVBMDQwRkEwRkFBQzE1NDUxNTZDMTc4NzcyMkM1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Ec+VdgAAAaJJREFUeNrslLtKA0EUhs+Z2c3mIhiLmASFFIKiKSRBIYVg8A1E7CzsLW18Dgt9Bi+FaCUoahNvoCQIAQsbxYhoTLy7M7vHWVHB9bYpBIuc8p/Dd5jz/zN4leyGj0VCQPW66XBrqvA4lh0Hg8/uTQ8b55epAR6LAufgrRj8WdXRrtLQstyaZaF8EfFNQQQi1flF8w9o8/TUrZnCfrxptCVy7VVRqZDSvClz2/KeEC2yu+LWbBuECeFEsyiCJUFgXN5BRyq2n4OA4dzAI3pJS7hzjUh+xtcLy8s70NgAGlucW6/0p+1E0tkVkUc0QmjomyOChiCLhNWO6awK90812wj34ttDwySOaGv0JOBBANWGxsnV4uebIGPspLSWy8/PbANnoyN9vT1d1BKzVUI8D0C6PftkIznuhVsXNg4GsxOg8838ZKYzAeVj8PkAPS/koj3jnmaa8roSPS+W9BBwXaFPtCAcFUptaV80Tu+J/BWtB/1u+3TOpTKAE0nHTPVanCWgEQjxYKCGXJNhuNGMgRLRYb5JBAxVp9Nc/1T/IfpZgAEASgSdGXymLpUAAAAASUVORK5CYII='\n },\n {\n country: 'Swaziland',\n code: '268',\n iso: 'SZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MkM2NTlENTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MkM2NTlENjE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2NzZDQzFDMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgyQzY1OUQ0MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+wwOMbAAAA4hJREFUeNrslV1sFGUUhp/52Znu7uy6u0DLFlYMaREDgaiRBFAJhlATa2JSNMQLuVBDYiTGK1PU6IWJF6a3XuAP0Sv/wdAmuoEKSpoULanahtaK2Cpt12Jpmf2bnd0Zz+5WS0wM5YpEnck788038533nPOd94yyqm3M5wYcKjfo+O8RK/4UV+Qeua5VhmBeMC6wBI2CBoG3ZAu28vnNoWsSV+2pisJqxSdr5+nLQzkZZ/vdW3F+ucDM6XNorhhJikcNBn7lmh7Y+vyE9k/JoFrulYWgUoJuinxg3clAYYBnH3mKra++QlEIM6e+Y+iFg1zo7yEqbmqywpdTk7GDLXddEJaZRYd00/Kv5kKRd15OQUlU8EOQkCCaFJVnztt8pie444HnuXXsLL9nZmpLGgKwZtcmQTfjH3/CyT0dxCNzGBGT3yYd1ux9lOLEz+T6+tAta5H4T0LfV9BsX7aqQLFJJd+is6zRI2woPJbOMdKyjv0PdWC5WexoKx8dfYuH90zRefAlfhgdxdd0Nu28n/v6j3Fi34MYsQrLnn6ZYGobdL0oVoWjLAEZfm3v6lVdloEqpJuLXLotjHdvgOaNLqq49cTJEv2XYV08Tsi1Gfz2EMNDbxMOBjhytIfh4WFC4TCFrM3syCCpLe3c88YRKjGTVGuO+UP7uHiuH2u7iZFw8QrKopxU3ydYzHJ8w2662t8k7XQQ+qaMOqpRytRroFwuUXDKLF+5ivUb1uKVy1iSOtM00XW9Bk2rf2s4TVhDOWYff42RcIyu547xzl0HJD4Xs+JepWOJTJeo7dM645fX4p73mBuQjHyvczgSZKN8MqmqKMEgAVWjkHewIhE6OztJJpNkpqdxPY9QayvTX33JqV3b8H4V46KXS2diZCYbmRhshikPNVSvKeVTy6rJyfAruFLCZ5o3s372J5Y7c+Q0gxUio4SQHsjn+cJ1F+tQ5k709rJzx46/5i6m0xxva5P6BTMalUL1MEp5vk7eTsyxxe4YWcOq6sVWPiRSI/bk0RDxJMhJR2mQq1mTQ1VON8m7lYJuSdXrIpCp2ixs2b2X9989zGqnRO+T+5lIv0fVbEBEVZWOVxtX5CknKwNiNyQp9uoNpGdFeEkNpLp7KYmyIJk6K9n5UQQ8bLu035KkJSf7OXOFaNRACZlLaiCKP36dLVP5G2YWvIovdJultsz//8f/euI/BBgABhdR5PJe/UIAAAAASUVORK5CYII='\n },\n {\n country: 'Sweden',\n code: '46',\n iso: 'SE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MkM2NTlEOTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MkM2NTlEQTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgyQzY1OUQ3MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgyQzY1OUQ4MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+cif6DQAAADdJREFUeNpi5A7oZMANvhSUQxg8E/ApwwqYGGgGRo0eNRo/YPx/YDRAUAJkNKOPGj1qNCkAIMAAQwkJrW14Lx4AAAAASUVORK5CYII='\n },\n {\n country: 'Switzerland',\n code: '41',\n iso: 'CH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MkM2NTlERDE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MkM2NTlERTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgyQzY1OURCMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgyQzY1OURDMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hqToNQAAAfxJREFUeNq0Vb1uE0EQnp87/4iE8w+BCIxFAWVegD5lJCoKXiRdel6CDiFKKKHnBWiQoECRCVbC2Tmc4LP3ZpdZO44jkvPZBFan0+7c7jd733wzg5/aISwz8MLcLXUigOWGM3buJaB/BM0IJjMHc+hSy0EYgLjrQSPaJONmdP/Vc44aapCkd7i3K3FC6wG4RehYwDWhdMfhw3uPPnbObZ+3WubLN94sgV0ETQtAPRX61h9zIsfx1OwnTrzxfMNqhBDYn2OXKtEgJ0BxH2x29slmEvfVCDgCASwDRSHY5aEzy40Iy2t6S+oPw7u3gXjmlcNWG+iQ61X17Ma/3HBw5d0vcY1eZ+a7tF+/WN956tIUJAMOOaprSCcydJL0QQwwY6V68u7t/pNnwR3CMv+h96tvrZHnWpMqN0CfS5rhWmN+vrGRJxOC/zaCHDV7Jdj0tJCQrHeEuJKurcXK2jSMMgnjg/cfuHZrIr4fX7cfm4PiMOYoJCDpJS5NvPgG6ikFKzOvYjr7pjuyg+SvxGeBbpYgmlADI27WL4pPl/a0yxtlH26NYU5O5teQ6QENs1EHPGXDFyudIHujbliY6EXlyQFW0Y2HgzcvKWp6j0msSzUWVm0sbgXKhCZR56yGKkFhiyEkkOvXa4UgCjbdrLtoSSrGXaHL+DxesYH9FmAAtnngpsgiSsEAAAAASUVORK5CYII='\n },\n {\n country: 'Syria',\n code: '963',\n iso: 'SY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRjMyNzg5MDE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDRjMyNzg5MTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNGMzI3ODhFMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNGMzI3ODhGMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bS4JXwAAAKdJREFUeNpiOSeo9p9hAAATwwCBUYtHLaYZYPz///8nIM2LSwEsrzESaSCR6j/j9PE/KL396WWGzU8uoIhRQz0DyMf/cYCdz2/8F5kT+19gVtT/jU+v/CcESFD/iQWfo5Q5eBje/vjE8P/3dwYFFg6CwUyKerxx/ODLG4Y3v74C4+0/gwArJ4Mqrzhew0hQ/5lg4qIR+MyIlBDpm51GLR61eNhZDBBgAHqosVFFWSaxAAAAAElFTkSuQmCC'\n },\n {\n country: 'Taiwan',\n code: '886',\n iso: 'TW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRjMyNzg5NDE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDRjMyNzg5NTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNGMzI3ODkyMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNGMzI3ODkzMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yLbMqgAAAZxJREFUeNrsVstKAlEY/maawNtgmQtvRC0ENy7Etbhz68KH6SV8gV5CFy7b5EJxUZCIuBBMvJTS4G2svMyl32nCaValhhB+8HH+c85wvv92hsMA110APqIIDQxR/jShEFndPiKquu0ADwFdXNE4wy/BE5843cB6lGG3c1DVOTyeEwjCBIpyjOlUMjixNXju+3wV7RzRqBvBoBudjohE4hy1Wh/5/CoxNkPU28EkPEMg4EIk4kMqdYlw2IVyeYBslkO7vUCjIdA3ll0Lq1rEoZALyeQFYjGvthqPe8FShuv1EQkP9LpvD9YsLEmKRiNkWcVyqe6yxsaTWK2xGo0xcrkWisU+NRhQKPSQyTTRbI5pX9K7e+c1tqDVGqFS6WE+l5BOP8Dvd6Ba7VOqv+q7s+aywyxeul+gdPcIj9eJm9sXSvXKP6chWgfxTb8FGwpbMTRdKAZLUdaOfK4PqZUYbdVGoqoe7TsWsGK0VfSMAPvE8BP5EVRyhCWXTskFZjNxkTvDK/YBFnvCQfgg/P+EOf3Jw6+fPn8OTetDgAEAPv6K9CaVVcEAAAAASUVORK5CYII='\n },\n {\n country: 'Tajikistan',\n code: '992',\n iso: 'TJ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRjMyNzg5ODE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQUIyQzc0RTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNGMzI3ODk2MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNGMzI3ODk3MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YTHlPgAAAVFJREFUeNrklT9OwzAUxr8mdpM2bVJ1QELqUsRAB3qALhyAuRyEAzBwCa7AwAh34AKILkgUKEJi6J8AberY5jWJmHHV4oEnPSn/7N+X58/PpRHvzWAhGGXdBtiBpbAGZqkY2gEHxyep2ZASpYbDatm1Sj+KR9psFq21WkexBAGh4CJc649XYCOpy+QB4vMR5do+tJIQiye4vAk/6G4PPB/fEkzA4RGUmOTuZA0oGWdlrzZ723G14wbglRb8sIvZ6ArT0SX8qItydY/eVYwbyK8iXbxBiim88DC7D1t9MlRuD+bvQsyfKV8yYRsFlxxOIEmsBEk8QPx6s1ooKnUEr94hU6f0TXl75kq/hngfnGExucvW1YsOsNM5B6u2/2Y7/YQutrZpA7m4P5WmDcTlDSqrm3NJt1yOCwUGsxxdG47YVMtsBW0b3P94LFLGNsDfAgwA/Id16/aLV8UAAAAASUVORK5CYII='\n },\n {\n country: 'Tanzania',\n code: '255',\n iso: 'TZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQUIyQzc1MTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQUIyQzc1MjE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVBQjJDNzRGMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVBQjJDNzUwMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+A+PQqgAAAytJREFUeNqsll1IU2EYx/9nHnVTpjMoQSuiNGeaXWmo0BddqFdFF12YQSVFVgpiObWbAlMhP/NO7SItIsOvUOhLQoouYxemiaVSGvtK3YebW/r2HOdsS8/RaQ8ctou9589vv+d5zuF296ZNAoiiy4ItVAAYbEwG/Xww1HI7Bo7osX3ejII8Kxqe2b1/qqRril/+Aq9Pv4qjS8YxjLmCACeHyv1GFCcZMNlpxp6rDkzoFtY6puT/C6VDjniifHXcgJ0uIypzbChpc0melW2WMoAox38HQW8PQkWMCZ+zxhHc/xMx8eZ1QjlcP835HyxQ2hmHMbsC8YFO/Mj4Dk30BCpyTNhxyoav+kXRsxGhHLRNDA/aIzcevOSSQscESkcgKolyMHMc8jdTiDtoRmmbU5oyA/g1wrA3Ox0JXR3g/etYX5cV5+ZQ+tgpeVal4PC+kSHhogLVWg2KXpTQDQOlgz2UgkvmkqEq1oRbSXrouszYd8WObxJ/q1D5WUB9C8NMWDri2msxYkwGQvQAPyMe7E2pXqbc5TKh6rwVmlbpjo0I4TBQz5CYq0CtthiF3QIljVvYKED9AcavDvbM5TjNJXPKUEGUmkN6mLrNiCXKUZ005TVy2fiQwapKRfzzOgwbUlYohUBP8WJzqVbY8faEAVHksjzbhttPpClVRPmRXKovyHFfW4qbPRq6Ie9D6V28h5LzcWkklwboOmYRm+dYh5JDQRZDXTO5DE8nylqiTF6T0ifY22UcuXx9jFwuCC5t5FK6Y8PlWOrYxEtycqlBYU+Zm1I56sZh4r3LTxDlopdLA7mMuWyXXARC3cgEGlqA2fA0qInyi4hL0eADtH1eCi6dJtzLtqJsHZfbaPt8aCCXS3NZgqKe4lUdu6GFxBajzVOd08qjG3CZn8lQ30yUEelI7a3BkJ+UXmWRleeaEH1mTjI0nLbPIC2C+j45qg13oHr0DkMzKW7KAIu/oStjaxZ/Fv+lnFERZV+N6Fz6WRbRh4QyhMenJoGSXBruIqK1H8PTKe6O3STlv3NsWSZeefU5ezIIT5s5OCJTaC6JUn8YCN0ypferj+WPAAMAfeh+JFKb/jQAAAAASUVORK5CYII='\n },\n {\n country: 'Thailand',\n code: '66',\n iso: 'TH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQUIyQzc1NTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQUIyQzc1NjE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVBQjJDNzUzMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVBQjJDNzU0MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MpuROAAAADdJREFUeNpivMcrykAbwMRAMzA0jWb8////aIAgBwiDSu1ogIwaPZpliAYs9/nERgOEPkYDBBgAYAkIxbRv61QAAAAASUVORK5CYII='\n },\n {\n country: 'Togo',\n code: '228',\n iso: 'TG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQkUyNkYyMDE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQkUyNkYyMTE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJCRTI2RjFFMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJCRTI2RjFGMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+DvPYywAAAaZJREFUeNrslM9LG0EUxz+zP2ISsxitmlTxIghCKVSx0EKP1pZAWuiltwQvKir6H3jw0D+iB/8DLwXx4KmHXnppEaSFEEwhAaFhS9JCks1mt7MrLPEmOPGUL7yZebxhvvO+8+aJ8/RKDbDoh++DEJGbcP1wXijM3tx3BxjSZiIvIJOkvUYTLZVCmMb1JQYATdrfG8k6XUafL0viJHS96D59AijLGKGbMssGbbeESZa5ow9cvt3mz9UXkizgWQ/wPRd/45Na4u6/OtaLZ2Rf76LFk8QX53l4uEf6cg3nW5X68Sm6YSmXWsqo0alVSCw9Ymq/GAbS73OM5/K0K+XwnQVCPbExOo5TqvLj1SpO9SoK/nySp/n1M/rIJN4giP2eKw/ukHm3Jd9bp1zYpFP6RfZgR0Z1TOEQ0z31xRVAj1t4rRbll+vYFye0zi5IPn1MLDVDgl5Y1uLjG2XE4nxspRk0kKCyXdvGxyU2kaVr/5brHubENPGOc91AirPqMm43En3udDi6djBmorUm5VYN4X9nMK3pNsU1JL4PGCq/yFDqIXE//gswALMxeaDVbAFMAAAAAElFTkSuQmCC'\n },\n {\n country: 'Tokelau',\n code: '690',\n iso: 'TK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkJFMjZGMjUxNzg5MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkJFMjZGMjQxNzg5MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iRTFENzgyRDE4MTQzRDBERDc2RTIzOEJBMjNFMThGQkEiIHN0UmVmOmRvY3VtZW50SUQ9IkUxRDc4MkQxODE0M0QwREQ3NkUyMzhCQTIzRTE4RkJBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+xugOwgAAAy9JREFUeNrsVFtIVFEUXfvMjNY0zaMEa8zINLEHViCTX2EQFGSYElHRk6h+il4/fQS9IAjsJ0IoKqLCCOyNFQ5o9uNPDyYwKxWVCjPLfF1nRmfOaZ87auPY66e/9sdcmLvPWvustfYlIXZBl5ByEBgAJgshAIU/lJLSBjiAwc3r6nPTvp24kNdnQAg52iFiDymDOTneYydLbDbNodTvQbnfAyQXrWioq7h99ab/VZO7z3AJEY3vs5rzGsBQMBT53D7Ah4CgUlai8bNrRiUnAROX+hqPH3pWsKIVLrTcdV57kAP0ARTfLZQMz5ufnpWd0db6vqzsvtNlP3p0TWqqw9QnvqSUViVT3A7j4umHtfcrCla2ohnohv95OpMBkYTbCYX+kuJFqwvnA2HAEwpHntY2G/1hIstYESYDzo2FgXc15Tv2BfAVeEP6VgKd3XbAQpQonFUIz6lTfn4jaAqIDCNc8+Q1YBfCYgrCoHxoShIZl85Ubdpdjy4gwIgETc3oykLyp56w1iRlRGqZFBQnxCmEIwZqisAx8OTntl4/+zgzvwtvgVAMNHYZDe1NYZWHlCKiMd5or4Rg05A2w1O0ZoktSSkVGcF1Aq5DO+rqHpVnLujSww7G4eqhFZu3bHEH0G9OiQTomPehGV7n1i15E5JsSkWl5NikuO2hO+dvlZ6r0XFv0npinKAserqvx7fgCzApIVE0sjJ6SCAqyCpVMg+73Pf26tmq6Qt70cDmC+33T0sqZKPy8pzCg8VAj4hrE6McsV+p3IDtyJ5qf2XF9IxeBCyQOvq/XCAGaMOqbY0Fi98AKYAcD8368rDeubM/1d64dbK0TiehhWCVJiv9ejlJGxvEvSv+ae52llEp+UMQrQSSs2YOnNj/YsOBl/rvLpNe4G9rCEgFOql4/dq71bxBQV56q5S8SJwwmjb1Y2d35PBOX8+XCcKitPvDtgjWSSeL4wUdchCNvCIzgOYjAm+24Z3KaUnj5eRAU37u2r3bG7yucEeH9UO7Qw4fIhNn9Dh/PXgxhjfO5DDbNDuPQFHSlGoIHk8wY1aoszfpQnkmN+3CvymBf1b/oRPquwADAFZsVbvbw0XNAAAAAElFTkSuQmCC'\n },\n {\n country: 'Tonga',\n code: '676',\n iso: 'TO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4M0I5RDdCNzE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4M0I5RDdCODE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJCRTI2RjI2MTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgzQjlEN0I2MTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hRrzKAAAAQ9JREFUeNpi/Pn0KTMvLwMM/Pn06e/372yCgoxsbHDBx52dN1pbuRhIA0xsUlJAo+HoYV3dbi2t3+/eIQsysbP/ZyAZsPz9/BniaqDzf7548fXq1X+/f7/bvZv/yxdubW1kt5NsNJx1r7DwwurV4gwMQHQuO5uRgcH5zh1OZWUqGC3g6qry8eOfixe/vXwpaWLCLizMwsfHQAFggrMkU1NNd+7k0tB4wsCgPn267o4drKKilBjNgsZX6u3lPXeO18QEWZBNQuIfGUY/7ukBJgA4n11GRlBE5OnEiX+/foWIMDIxfdi7l510oxm3MzAQTFisDAwcDAykOpyFyIzwj5JopDoYNXrU6FGjSQIAAQYAmalRzsgP/4UAAAAASUVORK5CYII='\n },\n {\n country: 'Trinidad and Tobago',\n code: '1-868',\n iso: 'TT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4M0I5RDdCQjE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4M0I5RDdCQzE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgzQjlEN0I5MTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgzQjlEN0JBMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+K4UpOgAAA9dJREFUeNqslX9M1HUYx193YMovAe8uajKwgXCA8cO4TCejBUUGo2mDwmprLSFD0yBmtWajVWoTSjR0qeuPiiVmw5FsAbnGUFJAwQkcIqUEDPHu8E4PSO7u2+cOYavvlQI9f7+fez1397yej2JCkizrc1/j6MHD/LO0UVHUNzSweNBIc1wCdiQWqMOQ7BPMtRTDb26TNHt2sumD9/niw49lgUCNml8u6YmVvGlbspRRywDeqhgkx9zgyq6yXfSnZ7Ov+CM+P1IhC4xcNxAXqKa6v5t4cz+qKB03jR0oUIqxFbMH+wVEcqXmKD2PJLMlO4fKM6fdBjNjEzhUU01k51lCnnyWmyN6sNkFXDk7sHNwX1U0w+cauBAURtYyHc3Ga3gt9JOFN6Rn8k7pbkJrq4jOe4tblss4xscE22MWYEkS/5cNH3UM1uE+Wnw1JBrH0ZstPKSNlDXsKizi5c35qA6UovvkM8ZGr2KzjKDw8Jwh+E45N9VLHYldDNIUEUrIiZNc7tLzWMoTsqZv9pWTlJbG/He3srq6jtsTQ/xpGBDweTMHT8Hnqxfj6RnEqYwU7GVf0lT/M8+9+oqssbG2lqiEeIYyUlnV2oGHkG3M0HPPcNlmSHYb8/wXscArhF+35GF6422+P/wV20o+lTV3t7UTHhBAW/gDJFqM+KgexGoQG6/0vOvGu11JyWFH6e2N78JwLu4vYWDti+wsKKLk269lWavZTIK/ihNXu4g1XHHpdsvYKT5E8Z/wf3fB4QBPD/wCtfxWVYE+egUF61/ieFur23jGw/HsqfwOrdBtibgL07oplTMEu766JKaW8BO6mbrOckETRmZ4LM2mYXz8/WXxrc/n8J7QLfjHIyzbWDip2+ioW93ubv8d3byduhn6afYNJPGPEXpv3CAsOkoW3yF0yxa3f1H5blaU7GdsrA+b2STT7Z7PzqRuS3GIlqa4SIJqTqLv6GRlaoos63xwkp5O476C11l9rIYJ2zVuGwb/tvEzuneTugW7dGtMT0EqLed0XT05G/Pkuv1US3hMNIPr1rBS/7u47U7dLk3DZ3xop3TzcupWmI8pv4iK8gMU7JC/bL2dXWhVKlo0Pugs1/HVBE/rpjgXGCHN7sqLmSdsrgUKSc0ktO44B8Ujkivuubv6ofUMa5c/Ss/yJIbON84B7HrNFS5frUKd+2NXEdF+iqrzLQKgcxvfe6ySTeuy6Hsma47gKb746aziaPj4BxPf10u7zUxyhBaz0STLbi7eTtn2YhfYwv9QzqUZN/SKm+2B7mIbfRo/nkp+nG69XpZ9IXcDfwkwAKswgUQLQuTdAAAAAElFTkSuQmCC'\n },\n {\n country: 'Tunisia',\n code: '216',\n iso: 'TN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4M0I5RDdCRjE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4M0I5RDdDMDE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgzQjlEN0JEMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgzQjlEN0JFMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+2pqf5gAAAmNJREFUeNrkVktrE1EU/u7MNBk6mTws+IgiqRUpdFXUjaAiXYkbFyoSFSxiddMGsRUFsfgoYlcipYhIMAURQXDnT1BXSt3YlmJQ21iU5tHbvOfhmZtZuLKJjXHhgXOHy9w53znfPY9h39CxCCBMytEa0UlTjIBX3E0rhUv4R6I0/gkjrcLCqthJ0Gj1kNp/C9ghpwIDOQGteMPCCaOcIkibDAVo7yU167ZW1zEbRQGqHT6BcDqHTaVF0gVs/vIV2tEz4p0tWJCaCWxQHKsI3r6H0KvnqL6fxvKePuT6B2EtfUfo5RRC4/fpTEGw0iRgohMZaMdOwXf9CrKnzyPVdwBSZBu0qzEwvw47k4U2EoN28qyIvJYH6wauCjP62E1UXr9F+uljdNy6i9CLBMzZeTDVC4vXEk0b6BcGbZTXD2whD0XdCmVXF/ITkyJ/fbFBmDPzSEejWIpshzmXFGfb9u6GHOgkYN6MiKlMmEud6WasxGAXy7ArTln9wqzzZKw5dyzBB6O4ADP5Ge0XB0TqFB4+gtLbgw2JJ9jycRZyV6R2Ke+mYWY/Eb6vGRG3idbAR+/Ae+gggkeO48fIJeTODcGzfx8kXQcL+MXJQjwhGGBQ17QqD6P9mlv5v/HOg9KHN5CDGxF4MA61pxfF+DMYM3OQd0SgdO8kFuLIjY1CprbPaF1DKnUOCaeB5EWd6tELCExNkss1sqzlDPjlG+CJCYJTCdRfT/fiDUwnJ4oS1ekKuSFDCXYSpxKMTJLorVLLdADVelsm/4OxKAkHLLdknESq3WlDQ4L/n/OYuxG38teH/xRgALiVytS9zUFxAAAAAElFTkSuQmCC'\n },\n {\n country: 'Turkey',\n code: '90',\n iso: 'TR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMDRBRjkyRTE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMDRBRjkyRjE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIwNEFGOTJDMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIwNEFGOTJEMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ZWWjjQAAAsJJREFUeNrEVktoE1EUPW/eTGaaZPpJ0w9N60K6ENxVRIhIUdz4wSJYEFy40EXpzoILcSWoCxFddFVc6KKr4qKC4kJt6aoqCOIHoehCbGsNrZq8NMnMvJnxZtKSVmuJNaRvGN68Tzj33HvuvWFfwm1zADroFajNMOmdV1c+sGauCbiCbRrqpqeMAbYDz8kGS0WNAHoI8P3/Bt6YscIB14VcXoB0lsDNOLSubvi8tAcpS3eqCswU+NYyHGsR4YPHkHj3AYnMLNreP0fL+H00DA6Rn1T42XTJI1UDJjbSSSN25RpaJx5C270L2ZG7SPUeQebqDTBNg967n2aDDMzDl1Zg7L8ORumUKSuawcktIHqiHy0PxoKd1OHjyDx7BC04VeDRo8V3kIHEVmHw3BxkOgWuhsH1Jgq/rARXrBOX79iBC8yB86XTkTsQBGqE4oCmBqJSyL2+KEBaKYT29qC+bxD5sXHw1mYUnk6A1UUqCoGyHjgHXt8BbU9PsLYmp0oXVkBLl3x4VhZaezcaBi6g4fJFtL+agptaJF/kKo77BsFh5d9ukjZMUYidUU47KbcuLkZxcjNzsF+/Cdb6gSSxKArOKzOhWTFM2PMz+HH7OsStYRLeUfDOBJlcV3GObygus/8M4mOjwc635CGI6UkSF6dTlQyxoDVRafdoHdLheZR6S19JXBESV2PF4uJDWvRSkdzqDoeB/NsXUM0Y9OQ+RM+dhaqb8D7NQ+3sQuTkKbD6RsiZj/DyZLMtwetiYLyoe69ST9u/MS6S5vALggqXQLTvNJqGb4J3JeBlBOzplyg8foLle6Pw0j/BIuZWy6f4E3i1ZDoFql7fSQQqtLadUOIxyNnPlLPk1lAjuTlMBN2tFq6/AK9pEn7Bgu8WW7VPzjDBDKMaTUJs3p0IgFE3Ymhet1eNsa39WKy4upZ/fcQvAQYAj5ICkAs+H68AAAAASUVORK5CYII='\n },\n {\n country: 'Turkmenistan',\n code: '993',\n iso: 'TM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMDRBRjkzMjE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMDRBRjkzMzE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIwNEFGOTMwMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIwNEFGOTMxMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+rBlHvAAAAuFJREFUeNqklEtIVFEYx79zzr137rzfvsFMExEqaVQyULLc9bKEWlU7DRfhql3bdm1atQqCqF27AqEQkRIsSMkHPlAZx5nRcZyZq6P3dc7pTthrEcw4H4dzdr/zPz++7yAYvg5WybYr6cTjjzvp6rN+1wad24rVuod6ahRmA0rB0EEQASEADoCguMJHp8jyy2pFQ5urv2esJaR0HwbzRFMIYI4QqgxXE11DpmnthWswLgYtHJ2IM+Z1Cusz+eg6Pd0beaBFx5mqglMCndZ4fPW+4Pa+EhCl+c111XoHQkWn1om3iSprm63vY4PZg+rReFZLCn4Osre+si6eSVNG15MbkYaW2119kEmVkpqD4DBspjOzGogfTvkXaWUHMTCSRKnWFxQl6dvyLKzM2Tt7m040F5yU4Fpi5pr81eXKD+Q8F/ji1cBsLuA7lHRl5/PidDSdyqUS+GTLw5v3LSGASSmpC7ot4QCmpRFhho7eIopcMzZ3kgOX+0cu3Xg7Nf7y3RsIVZWC1jGuV7vm92ZG/Qd15vkV4C27qtsHFAERKEZxJTP06tn89y8QCAMhwFjxHQJYJVkM82Bup3inkHdS6Si7IJjUnLSgVlXUFHqjCO7frilPOiY0WIlAU6Rqos5YTUviAQHCgf8cE4ersAqSeIkjQzF49WaMgjEaTSuNWVvYYVKJASt29v4vxEA0oLWJDC2RuE+J7KJUu2FYaAplo0XuSAifZOfrPgkEMpsirXuafIDydjg2/RcaczmHluy28VbZaxhxv1gxxURrMuy87NQ6Vk7RWx/S8tONLY+vXXe7z+Ty3kA5rvHv5mOamdWg487g8L2GsGsxs08QHJ/7T/Ntzxjha92hJxcn/fTc83bVXqMljELzlYvWiadOcvLp7Iu7UnX7nm8kVJXkjJaT+s9/je12Gl3IzHiROxaDRx53wpSbC39KuakFlt21xbfD9jBWF8YEIbmy1kgEs5zUPwQYADj4QuUGyU1HAAAAAElFTkSuQmCC'\n },\n {\n country: 'Turks and Caicos Islands',\n code: '1-649',\n iso: 'TC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkFDQjQzOTYxNzhBMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjA0QUY5MzYxNzg5MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNTI1QjE1RURFM0E2MkU5MzlCRDM2MzZFMjczNThGQkQiIHN0UmVmOmRvY3VtZW50SUQ9IjUyNUIxNUVERTNBNjJFOTM5QkQzNjM2RTI3MzU4RkJEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vPd/igAAA8RJREFUeNrsVFtMXFUU3efcN/NkykNmYmSoCrYROgG0TUVNY1qtVavYppoyWrVNbAI24COpiT9qNY3BH/RPawxNCVg7pNJIEUzmo9rXWKYYZLQ1zAwiXIZ5z9zX3OMdsE2NMTZ8GnfOxz7ZO+usvbL2QdEPD7se8HyTrurs/u7yoB94x5GD657/9qOx5tYnh3BqNlm1ihyozrzeVpNd3WDZ2Ac3Hbjl8JU99/V4vv96+NnK/Qe2A2dfmBbh58n0TCwl5lryVwfuJ6/s9hyJ3VHXGSKQI6AR0P/hkGtJ3oBG3o6+Kwl2h1t62bnI7nh4pnT1/MDpsp1bxEM99MZ76xOT8Hjr8FX94/dOJn6JXApEMpkCx1FEJ7KMCFAA5BpLhJBRIghwXpKQcU23PmL+MZRC1mhaU36bdddUSOlsdC5ZbuOtAhMrc8kLSUcudctaRxb4mmDTvMxzlIKAsjgo2iqqGRNW7ZZKncIo+bsej0sIgSwbDUDP2KtTSIpk1bVb17tBtiXmCjIpDPpwwz321oeU46OyuXS81ClmY1CkhIEUZJlYyk3+T4N1OJOyi0rJQmjU5iyPz3DNm7xNci62PAXdct6Zd2/qeefBWg8Hw6M9E9StlcLmwYGzzZtH2rr2dHRVBMaCR8c7glwoZWLUAI9VqYCoknQZYeDM+9b1Z3KrusKfzcsCCPvmWDuj5NCSSgi/9WJTtMP2XPRU/5bONU+fbH/VLwYmhDobm5h9wdXubOju/QHv2nbn1DOFd5mLqqxJRX2BKCbFIkLFhBqq5mnWdDsLTrDeJmg5WMYtsnaTVO9rX34+Zz63aActDUgaGc9A3HPxJwoE62zwXNtL5z/Y/sSbj9W7SsM2nEgaZAFSoiXNLcLevVmfq9erNW6zNa5RLiMiJfRl3CL0/u7RcNgEwFJ0nhU4IPpx/3Q/3oDOxnmKoJIqTSXjvqGdvgKgKp4zC0jXEFZV7ULAWds86ftVbPcLx3brGx6FC91mA5Fjkaws+ToSNl6heR4zNCZGAGJonsMZlqaNlOg6RRGed3BcOcdqYHjWcBxl8Mr0D94FYB0YMWD0U6eTAGV9J+425sH4TzMaXY1F8jR1fRBYytBfVwsVjXrjNT85VVGiu9bVToSnFe9T/NBXuz456mDZJEJY0wpGL4YVBU0biotvvO2KzLWNfVF/acp78FAlxgsURd3IZl9RIJ75G9F/CYSJpuiqZuUFs5RPMkyOLkpaLEnS0sos98mSujL6COJyPm4AaWrxXNcTVizITf18/0P/F6D/EGAAAySvSKv5fokAAAAASUVORK5CYII='\n },\n {\n country: 'Tuvalu',\n code: '688',\n iso: 'TV',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQUNCNDM5OTE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQUNCNDM5QTE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBQ0I0Mzk3MTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBQ0I0Mzk4MTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uL136QAABDBJREFUeNrslHtMW1Ucx++5jz4ube/tg3ZreYXwHEwGgSEEQomasQQyMpUEZqIYJlsGRmNwRmO2mCyZic5kajTRGJxmzoxNFo1xcWMP2SQuk+LKuk1hFFg7aEvfvbf3dTwEXSLDhH/8z99fJ/fmfu73fL/fc8Afb33gaCj9eok5NHR7ZngMM5m/6C/Z8eXRH57u7RgKYsm0lZUHcoTellwpv2CPX0jFEzRJYGsNDhRe1qRlDVpryRRx1F0eujzxUinV1+QwP7rJJdM1Jqzu+qVr1c6LIXzAFDjWkddQX/Bm0NbxXcCkitmtGZIE10TzihZg2GtlB+rMo6PBZrKzq2pBZ/ycE164eefFHQ3d3fXzQyO35n01WbrxvZnZGIs1OwfdqTunz7ZoMb3NmhIU8E8ixAAFxJjELPAbcmivQzsXE1iAQcBtbtJwfDgueXkAo3GLBhdlZUmrYxMxDYWHLDa4EHIQYqZVi7Hs7p6+RQOr51MPHJAh4eccBJBrTaPFhptXgk4fl6XG08gQcsr5RNgbSmD4psYyU3BBl4yGOCwweMLQtdNaV8L8PBkQgMuWw/r8tE0PKZIQhQd6E5LOpr7fWTz4vb+9ynhtZ8lXN65smZKLNASnQJysnLTVtrW9/mRxjj4EL00c8Rsq8g1bTh3/raX1zNaG3T2y3u3ynPP2R7N+EQ3tAmdSSbz8F1qQNQYq0lpwGseUE3PPumLVQcHKqMIrGyLe6+n90B4pvjDy9v5v2o/NDp8NbGOitTdG3abirmeG3/92ktAyz1mlXeKczuWeKdhIZGiArKygkbq4xPzkf8wTK18SLPdS2RJUoSQUDIcQJw4PPP/rubE3kuxnhlzcTOVVG3OL2BhNe0qK5vKMiejSj7f8rqoKq7OsMCPlAWQKJ9VAEhR1RDSh9Chcus/ZRUWNA8jJGehnhypebrBcPL+wHTQfOalYzIzEb6QBSZGYJM1GpagpUx8O5ulxTEXJCvTdi0RETG0zW7kULslpqNISnF0z5+OzOZkmcRH1QUfGkdiYwBwo35+QDIc9B8Guj8483FDUW4CtPahqi7yt3XFyX+U7n070HZ/tZlXhqMgeLHu1MXvklbGPr4drGSpipJaIR1o7H/7+37grL5FkCZLTscKpeJECCajgIqRUuMintePhrRKkaGK5nWuj10ZikJfppKRD6cdE42LC5klsLjW4363Zo8djg3f3Xg01aYkUKjUAy8cVXycX+YAE5tB3662XkaeNmecHH3+qzX5qJpnvTzvQETerAxs0Poi68fee160agkDatt0+vK/yyHSo6Pd4qQzJ+UTudLLwgm/b7UQZQ0VX2Uiu1w2w3IGrQWd8nPFyed5U/ieefhUpZKoXU6gkQIJwdUDrRaOhySRqArrS0NqiXlx5iPJU4cKKY6vvWOw/m//Rq+ZPAQYAm+jfAfBELj0AAAAASUVORK5CYII='\n },\n {\n country: 'U.S. Virgin Islands',\n code: '1-340',\n iso: 'VI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REM0MjcxOTcxNzhCMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REM0MjcxOTYxNzhCMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNjE4QUQ1Njc1ODU2QTk1QjU5NTgzQTRGRDNBMTc2RDAiIHN0UmVmOmRvY3VtZW50SUQ9IjYxOEFENTY3NTg1NkE5NUI1OTU4M0E0RkQzQTE3NkQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uuR1EwAABFVJREFUeNrMVWtMHFUUvrOP2R1mHzP7Ynd5LYFCYBVKwSImWBvTYIGYCkbTGu0fk0agUdtqiI2KWmOqxhgfbdPWRGhII0nRUjV9YNtAK0HAtVhWaCndJ8s+YHeHnZ3d2Xk4VAQaQ2lMTPySm5xz5ztfvrn3zBmI53nw30D0r6ruxw0vWknn1qIn2Tsc/l7EpWeSpXxm8igX6ZNoNsvxTSieL73bQjJBOexfQuFvdEV7cfN2aLFo2VmCBbHgME1eTYYGFdl79KaKRWmBmqAitKsTCnW6UkoU36rSlkvQKllalgK3wGIomSACrvOF8hE+sCeu247CwluKKJpLzHuS5DgVuUIG+lnqsgIGSQrIMl4X3EBL15hKsU77gYSjTaYC4QBQIsCUA4K+NBG2Ke/hHwUC6XoJ1RwBbiRinMZwDPC/2882qBAPhiXGJgAqBTIUxGmJ1nranFsrglZIL+LmZ1Oel6EkIJJYaUmEocD0NHChNp0+pp6pvuW3oBChL37FzzUl3Hut6nYsHVCE6NoEYtKTDKs2FfWmZVQsnoQgPeYPnHJ79xcXXiGZ4QjUwP2sIT7xes7DaSB/I+RwNuXuKAKEDTUB0mEFmoBKGyAG9I89n3np8PcgcO7aKDDIACWrx0uOzcqNI56bDbkWKSxduAeVDH771sx4nPrU6ztNRHLX1Xw0uRWxHI7GMmfsvIY/Y4FHAJ1Pzq1T6gJSDiY8GUCCVBr7ATsybgOyWPYlrOuH9B5ca+z0OZ4bd4tFf3dIFoY980DBQeeMmANfWM2Hu1vf7zpIP9vxakWH21aXmne1V7rMpjoGC8aGXICMiwzaFFyGFB+bHAjFoeIzhuOHgpm7FY543JAuVxXguEgiXv5kmnXqE7dnCDpVkiaG1dlADr66uMtFZ5fV31CUfw6v36yi5owaVIcgegTNhTG9eJIva1Favp4s7HqPQnni127fdIJNaeUSaKHdoGXpR1UIkMIaTC3E9RuezkvPYlDmZN/HEiSzpLSFVvQ6Y93xuD7KiBKcNJiAb0Mfpqn59MKdIrWFdQwL51qTZdYosbFw1B6e5VhG0BG3tbWxPGB4Vp6i6nBFvloph+XuKddl58BvsevkXEEOsU/F90qqm+YnrFjAyXgj0UeeyHgxEOs/ZNA82OwpjSTc9i1VT+aYBbNsMp7PM5UaXAoLnc/zHMczwlrEQjBkH8reWWhoAc1vAk9f5uzU/tD84HfttT1P7eioXd97cR/Dh9jBbeQFpPV4zXV/iL8bf2lBq00+rz/ERkf7hl6DC95ofKjR3qOJ0OEwhcoRgKVIiWHX2ewj3159txX7pXHbKQBk/1SA7j1UQ0lwoKt1Y96Wx9V/TNl2V1WD+TnguiGmc05sCJaDGPRWifEdq3KV2bcWWIaeDvmEYNz2gfMnMHkB93sHhPSF3j5w9OQ5r3e1wjWluZWJzzscjU7f2eV4khh1TJE0vVol9H/7y9wX/hRgAAzpo5Xw0k2XAAAAAElFTkSuQmCC'\n },\n {\n country: 'Uganda',\n code: '256',\n iso: 'UG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQUNCNDM5RDE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQUNCNDM5RTE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBQ0I0MzlCMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBQ0I0MzlDMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+TD5l0QAAAL5JREFUeNpiYBgFKIDx/39aGc1EO1cPTaNZbilz4lfx/9P3P6zsqnMOLTi0UEFL31nR/kaUCcu3L4wCnJS6mpeHQW7uIjYvs+t/BMT1bZht1SXmLOIVoEaAfNFS4PUMO3v99tnLJ/nYQelJ2D3wi7YydULtPxikFJUqcjHdCjH7/+Uj1SJk/fqNQKN37d43ceKU/zdP71i6hKgsQ1zG4umfsFpYiF9RQe7lT6YQbwOGn69Gc+OQyo0jLEAAAgwAGc1CiUqK1KwAAAAASUVORK5CYII='\n },\n {\n country: 'Ukraine',\n code: '380',\n iso: 'UA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjExNEYxODE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMjExNEYxOTE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBQ0I0MzlGMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBQ0I0M0EwMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+LuVcRwAAACtJREFUeNpitCo9wkAbwMRAMzBq9KjRw9Foxp93xUYDZNToUaMHg9EAAQYArtQDhtrhiMcAAAAASUVORK5CYII='\n },\n {\n country: 'United Arab Emirates',\n code: '971',\n iso: 'AE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjExNEYxQzE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMjExNEYxRDE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyMTE0RjFBMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyMTE0RjFCMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VISheQAAAGRJREFUeNpiPCeo9p+BCGDUeYuBmoCJYYDAqMWjFtMMsBCr8H/c/98M7AzMQCYjfX38/QsjVD0jNTDRFv/592eEJS5mZuaBSVyM/LygMv0ftRIX8RYzMrKOFiCjFo9ajA8ABBgAlQMOS8Um6UkAAAAASUVORK5CYII='\n },\n {\n country: 'United Kingdom',\n code: '44',\n iso: 'GB',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjExNEYyMDE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMjExNEYyMTE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyMTE0RjFFMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyMTE0RjFGMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EXnauAAABW1JREFUeNrEVm1QVGUUfu7dXZBYvuRj1yATNT5FxCClTNLUFNBJrfxRZjOKkVLqGA2okGGDhA44ToqT1pigA9qAhkho4kiCqRhgCKwBg5IiLCDs8rEid0/vvVfWGD/K/nR27u7Ofc85z/Oe9znnXi52S4Eh49sy9DS1AE6OgJsdYDYDhOFWr8fi+Ej8kByBuoDX0FOtA6dUwVrrignNlxG1vQT7Yg8B492Gx3HsUvBAmxHoNEAdFoyYqDAoUzeF2322djbS0k9h53el6NXdAEY6Aa6PIfBvTQTkGaBeBOxmgCFYFz0Dy5z0GJe7FbzxdAlc1CokJ4SjoSoRsQkLoXawAXTNLKhHZss9JaAY085idbdgN9EbcQfWo2JTIJLOpoCbOw0VR8+BvzUrDFe8X4Th5Blo7K2RmjQfjZWJiE9aBHtnW5lAe69IH9wTCMhrDLCD+epuwiHIFwmHGGCcH5LPpYCfHYrKY2VwPJyHoNYGoKXwNAlvRVItK2qVTzAZi0toyNqNAxT7eT6px2xkBQ+nsI+OSPdrJ4TRJWipXPkc/e4xWbq3OKGI+USSOmwPxX1fQ01nLhB9+AHVs7y/uXpSR3auJa+JXYB/Gi1LKaXiXTlUExRKvzDHinGB1L430+LYqjfS8k8yacmmEyQMCg8BCwN3KSqthN5dtZ+u7s4iYekS+kPMM8qL2nPyLHkq6jto6apDBJuPCVOXHSSvyH0UnVVPOrbYf7Gc6uYtpLqIt6kzt4AeZdV+IrCGyhUeVOkeRGbpw6zpGvVGR1PtjHl0p/DnYTFX20y08ouT5D13D730/kHiSNo2s/4+GE1m2DmpLec2qO8Ap1KxtlGAFwWj4iEYTagJjcTdaw1SOyldRsL31+Ow0joDBna+Ls6WeBIEUL9J+t9nuge1rTVgYyNromb8VBqSI+MNQSBwCgXTCSe3khhMw3vK3Nsnt9p9VfG2z7Af5q9UyqoW/QeFYZ2oUDA/jsdQfyp7G5ufukWVjg7si5dzMJB7f7Y8RO6fjMf/ZEqbMR4PGpGxFszDmXPi9JGalKTyihuTSi08KLXKYxT+3uTc0NSCnJNYHM+OjruPIflYxMUSm7qMsGJCkhZUSnDW1g8YiGAsl8BEUsvEZRoSlysTV1k+E5eLRMZsloFEwrza1hJ+19gHazsrca/yjhfFF+B2UycCfLWIWfkqArQjLM791XW4uXUbnNlIdYpbC3j6QGEjKYXxNMsCEzU1ij0YrKyGnV33ybPQ7z8gbg2jN3wKvb8f0nOv43xeKVw1avB5KbkYYerFmzPHW0CNpRdRHTwDTQG+eL6tAb0+gVifcRkrvipmIjdLupIQWekUolJZ0dZ8XYaYuBx0G+X2cZg1BXYhITCeKcWlCf4whM7E67fK4f6CB37MY3OyubXH0uTGkjK6Mmka1bBUg/PfoJajJyg9V0djlxxmx7GQQpdnP3ZkLogvZD7zyNk7kRKTC6mzX7Dk7TpeRJWeE6VpZn7vHbp+oph4Dzdb9F24jOrJ03F9+svwfXYE3PILsSc6A1Myu7Bu0Q405rNBCi3cNXaPValGfKBgDDpuG5C04TDGTtyML7efgmGA4BAxB4GNVXA5Voiqs9Uwhc8ELwI2TQ2G32hbaAqKsGvFboRkGRATsQ03fjoPeLkC7k6S+J7Uq/IaO3M3e8B7NLraepAQmw3PgM1gFUD3gBmOC+Zi0o2r0OQXQemjscKd3HxkWPkjPfMSGrLT2FhTyYBSrqd8ExAJsOknvclo7NHZasCWjUew+8AFrF3xCtasmQ2HyDlQ7lr9jXFnVjkac1IZIJO6l9t/A3wUAbpPQGuPjpZuqQI79p7D6qhp+EuAAQB9e+n65ZcRTgAAAABJRU5ErkJggg=='\n },\n {\n country: 'United States',\n code: '1',\n iso: 'US',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpERTc5MkI3RjE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpERTc5MkI4MDE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyMTE0RjIyMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRFNzkyQjdFMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+60cYSwAAAyhJREFUeNrElN1PU3cYxz/tOQUBD/aNymtbUAq2IOiUWXmZA40Iy2BzcW53y7JlyZLtZuE/8NaY7Gbe7WJbdJnTDOdQCbLKrERUotgCSodQ7AsFpK28yKT7rfsL2gv7JCcn+eV3zpPv5/l+H9X2xp65SqtJGfr1Fg3vNPD02SIhfwRniwP3pdvsOVxPaCHGs7+DOA/VJs8crXXEs3P48OfTfMIcU+SRaqlMzm8SNut2VuefIxvyydZIxFbWyX35iviLNZRiPZJaxdLyCkoiQUyc6cwFTPvC9FRkcbJMy7JaTrmxHIuvxaZm5xW7+Jl3NkKRaRt5OVlMjvuoqa9gwr9AgS4PvTYP78hjdtVVEAw9J+Kdxv7Td+hL8tGTeslGg8Jeexk3/riLs62O+cU441NBDjbZGbg+SlNbPYvRF9zzzHCoycFA/yhvCtRqnZbr5a1YEjGm5S2po1ZXfRHVaCTlWLODq24v1eWFGPVbuXH5Dh3vORm88xhziR5zoZ5rl9y0dx/ggS/EzGSQs5Ua3s39h7CUlbri0mKdUGzmijBXqzBXYH4Z931fsmlf7zBvd+wjIigMDI/TcbyRvt+GOSgUZ62uU3S2h8IdRgrTQK1S2T6PyhpZ+aB9LxcF2hpbCUUF27hy4S+Of/wWfUMeykuNVIin9/xNuj9qYWR8juknIc5szNC1voA/DdSypayAhlor57/vp/NEC7OBRfpveek+0cwvP/7JsfedhEWcLg8+pOtkMxfOuTjc5WSrSc+S6ymSQYtGyk5dsVT9/4zbhZmu3Z5IztggXOwSZjvSuZ+hUR9mEan/KAz+PkJb5z7GngSYdXu46T9Ho3EL6ZSKnZ9Fax0W5aFrDNuB6mROA6El7BYTnns+bPt3srK2gV+QcIjIPRLzrxL3ZkLLfB0c40udRCAd1EfFNioxaSG+Sl2NmchSnCKjwh6HBWlzk/rd1uTyMOTn8MbuctRiieyqLKbKbqXs4gSvQmFephOnRCIRFW+F11yyp/3TtD/eSKjYTM4rjcZh110yUZlDPfnVqcwovkppRhRnDrX/2x+UjKDuJXcuE4r/FWAAjBMttNdoYOEAAAAASUVORK5CYII='\n },\n {\n country: 'Uruguay',\n code: '598',\n iso: 'UY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpERTc5MkI4NzE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpERTc5MkI4ODE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkRFNzkyQjg1MTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRFNzkyQjg2MTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+foYgAAAXJJREFUeNrsls9KAlEUxn93nCadUbISM03BWraofbRq07JV79GL5KZdqx6h1wjaBBkGQVCNWmo1M47jn7xdw4L2ji7qg3M5Bw5897sf53KElPIJyKpwmQ4SKmyhiJ1xgec6CE2jPxB0uwGWGSUet0Jh178TvxNwU74kqnuqEjTqt+SKu6zmN0nEzXCIh0NJq+XQ9yr41RM8547l1DrNh4CXxhs7u3uqS0OI0sSItdHheH1atQsM54ymfU3SUortMv3aKaZu0+tp4Sg25g26gUf98YpCPoKlfDVNQbV6z4IcMJCqR/VJeTRZxSMIITFiabr+B+22j+/6JJJ5Ws0HXpvP4SienxtlGaKZQ4bOOXajghVbwUgekCrsk8umx5crTZY4onQXN7Z5X87xVltHT/sMpWSgrVEoboUyTr/mOOi0CYLO1xwjA3Q9wuJSJgxed0QsmQE0ZgT1psd/TPG/x3/C458PZIpw9fHKk5jy6uN+CjAArpeUjQlCP/MAAAAASUVORK5CYII='\n },\n {\n country: 'Uzbekistan',\n code: '998',\n iso: 'UZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NjFFMjIwNDE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0NjFFMjIwNTE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUUyMjAyMTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUUyMjAzMTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5O2LbgAAAeRJREFUeNrkkz1rFEEYx3/7fhd3c+EE0XAE0UZrG/E7JGhjZWHnZ0jhd7ARsbS2sRGLFIrfQBBBMIJwigkhyb14+zI7Oz4zFwSxWpHbwgdmZ/YZZn7z/z8zHk9ffgUyAh8mP6Afs33lEvvzgg8HJxAGuGgMF84lTKuaNcktak0WhZxWCqUNeLSKUNqmG81yRsOMvdu3GC9Kdl+/czC3odJLcC+h0g3DJEIbw7AXMVM1ioa2ZAueYUxGqXixfZNrGynXn+2BKEPGiLIt6a2y8aKgEPCJzJWi8rhQ7gB4LeVK+O5rcJbeOL/O97yE45mY3xdo7cBpFBD5HoM4JJGS2D4OPDZEeWChFt4yAnbu7YpLCUXFkWxw9+om87UeH8dHrA9SPIFMKu0U1jKfi+W1OJuLcqt2Ib3D2gO0aCG5WvoUxzx+8563k5w7ly/SDDIOrN1WdRKDrikCuWi2pmGEqRVTyeuqdLm2docPDz/LKrRdWDcNn17t8yX0eZD2hanFYp9K8tZqJWrjs3/bF1q7Gx78RY09M5+cuue0rDS/au728n5L/8vwjDFyk0hZcVjw9Ezx/wPuyOqF+fNyrSDCJ4/um1VDl+/l+VYnVoejdLRytQ7sN3QSPnQHzjqxWtq3LuA/BRgAxkzb8HD3VjsAAAAASUVORK5CYII='\n },\n {\n country: 'Vanuatu',\n code: '678',\n iso: 'VU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NjFFMjIwODE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0NjFFMjIwOTE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUUyMjA2MTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUUyMjA3MTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+q4FzLAAAA2xJREFUeNq0lX9o1HUYx1/f7/2au7vdbdMLl2KzmT+oTUaQVjAhFbYKQ6SRqF3gwLKLCkKNsKyhYv/4h2RETlAQRAZO/+gHVlrLAn/NBvkjHJOam7Rzeafb/fw+Pd+7TpT+kDu3B54P932+3++9n+f9vJ/na1RRMbDTNd3/ckUVaRH6rQRZBBODiTRj2Uqk6wDMpZptZTUs9QY1AUsTSCo8msDEmLl/A/GrZ6GmNcpLiV4WRC/w89gtHnd4mW56cuAyEcCVDdDZBUe3wvkfwdk8TMvYeZ6LXqI3Oco8RzlTTTeWwo9nAmZWj3e3QNVs6FbgX3ZDTzcMNg2x6PY5mqOX6UsnqHf6CJmucUvgTgsTGVj/AZQ9osCnoXcfHDsCF54cYkG8h5XDVxjMpHnC4aPacOYEKOMBbJuvzKByioPw2xB4DEauwZ+H4esjFt/O+4vG2DnWRPuIWRbzNYGgJmCr312C2zMTU/eHl3loW11GygmZm8KSV+M5Wc1WBj7bAc8+pVo4AeHNkOp3E6GGSDDEZKV/TKySqo8tbHDK4HdBeeVFjzxT75Tfjgblp70VBUHnvGEu8sMhRK4hX3ypsYAdd4uPgDjwiVmk5yreGin3T/LAJ7vHaGly030mTU9ngNqWfxiJ3VtL3QzY8T48vwQOfgMDN3QSStg1Tvs48FWSjo98LF6U5ftTaT58bRKWyj2V/v8LN0ZUiAmt1Q+zVCFTkrqFHKUJzO6xNM5xSvt75bJrk1ckHpK9W7z3UD1rBnK4A0n3I8f2II868lRDUN1ftN8RVyGLoROVnLycZXlbLHc9tRp2bYflzTrjOueRCJyJKlFNM6FVea9wQTJb/K6+G9il/2eYJqmUhc3e56rmcCv88Tu8tV7nuk8fb1SZr6lVngMQVc5HtR+mxg2j+B4XLJ2xT4udusnWrYa+i7DiBejq1XC9An6qPieoqab05s08mI2XldLEVdgkH29QKsMQV6W2rYL9JzVYOw3atcIG5fyWVnc1/t8LD/bZzAFv1k218U3dVMPwzuvQcVyD0x7WTGbmAe19WgAcp8+0cf1XYi4P/u3tOp+dGqkOwVoFfPohFY0Ff4+qpqXoHt4XeFMrsu2g/vJOhjfqYGEoP0BDtycE8C5VBwZYV+dncU2+b9e1woz1wD28n/0rwAB0+lOwpXHd2QAAAABJRU5ErkJggg=='\n },\n {\n country: 'Vatican',\n code: '379',\n iso: 'VA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUZDNzdDNzcxNzdDMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUZDNzdDNzYxNzdDMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iODY0MDczNUVBM0I5QTUyOTc2RUZFMTAzNDJBQjczRUMiIHN0UmVmOmRvY3VtZW50SUQ9Ijg2NDA3MzVFQTNCOUE1Mjk3NkVGRTEwMzQyQUI3M0VDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oPgNXQAAAghJREFUeNrkVL9v00AUvvNvO44dbFNBkjYllIWUASbEQAeQEBszjP0D+B9g4p9ghY2VlQEhIdQGRwyIItFUSUOSJnbqn3dnH05IUISEVEdCDLzh3d17T989fXrfg0n/HjizQev12YsZ8NfsP4GmMKN8es7ZhxTCFIIULOIQAoxRduPyQs8R4NSlCfFOByhyOUEq6hWG5X/G4cznhqY06wsmJIzjKHCP0Ml77B8yohlbNwtaVZJlVjiXJJTj8kO7w/bgqIkRUo2yLMaR84mMba5Q5tXK9xC4E5SmqXVhc2N9MzfX7R77rjn8aH9wRrZAfdI1nINt9/hqyhjIt6Ovz5RvjxTn+SqEAMgyUh2yZpCWhrjcr103as2yekAg1hhHO+9I2IdsNC3Mq8ZsQlAKEAIFCcSj/darx5/3WmL1wa2HT6q1dQgmAMgk4Vkmf9coCMPhWxq2sDai3omR4iJ/3yV32oPjfjwCHtZ1zTLXdL2UGzoJulHvTeJ/mRwOQrLlmk/rOyWR7w77nV6HUgBPXZZn8SrQTLHOrt0lndCdXAzINVkkPOdlw6YSL85oUouXNkzLklfhOhMMXDzD8dh++aK3t29uXbmxu6tY5mzw59n8klloMjNBUS7f3qk0tkVNE9XCb5Xcaqtn1hplBMFqNH6plNLlf1eFXtb9n1L51xNd3lT/aF//EGAA9B/iH5xEuF4AAAAASUVORK5CYII='\n },\n {\n country: 'Venezuela',\n code: '58',\n iso: 'VE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NjFFMjIwQzE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3ODRDOUJGQTE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUUyMjBBMTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUUyMjBCMTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+suiZXgAAATpJREFUeNpi/H5RnIE2gImBZmDUaPoZzcigsJdGRrMQ8hUjw/ufDO9/+VTov33x/cfPv/LKfBvaLzDwsjAIcjAw/AdCEl0t+IGBhZHh02+Gm+9rpzt8/vHnz+9/v379+/HrrxA/2++//2XEOCsT9jGoCjAIsDG85iPFaOF3DF9+yyrxOZuLs7Iyffz2Z9X0KwyinCBPPP8WmqktxMf648ffo+ff3LnxgeGXOCkBwsLE8OkXz/c/Ho5SmblH3j/5yqDEx/AP7HkV/tVzr3MIsM2f5XDl9GuGDz8ZuEgKEOYX5rZSif6KWVUn/v3/z8DDxvD/P7Imhm9/GX7+ndRuvnbv04M7f5PiambBd//57rMIMIuI//vwi4EZQxnrXwZe5kdsQm/+fWZgeEvvxMd4XkR7NKOPGo0bAAQYAF2fdeRLtEqSAAAAAElFTkSuQmCC'\n },\n {\n country: 'Vietnam',\n code: '84',\n iso: 'VN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3ODRDOUJGRDE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3ODRDOUJGRTE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc4NEM5QkZCMTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc4NEM5QkZDMTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MKjEOwAAAg1JREFUeNrMVTtrFVEQnvPae3fvPryPRLmInQn2WkhMIYggGEHs0gqC2FhraSE2grW9VgF/hZWPQmMqCZFAQhTxZu8jZ3fPjLPXRiSsm5iAU83Oznz7zTdzzop37Tk4HpNwbFYXWkjATKAVojYZXTPPTYSZRXbyHSkbdHSsBWRj2b1lZ5YtO/x4dNAlXUgu5+2rVgBB8S+C8BcLKHZLHOZYkGh2XDDnZIj+aTfa1Ebgr1c6phIDa7OmDKRPyaXcn3deH7m2s5TJHkJI7GggDvpnkRNki8geiDWK4ocIL9j+wzGMIVvXqoO4JZlp/97k5LL1zjhIcPtJkL4xzH3aXT3Wokmc/uVpsH47IgPeYianrWBWFngLOYS4cTfaeNxiTO7vIGNEkAE1Ytx65b+f76YvmqLLIRAK2BmueBzcfOmbCFWL9hW6ckOwVCtoF+lA735gj9QsqlPITrpm0m+6lThhgPBwy8drloq4k8/csBDT6K0ZvTYQY++ajXpFMdxX4dp7nRcyvpJ5F+3gub96Pfl4M/n+LDDn7Yklm7m/nJ0qaG5WAbUX851H4eqdhIGkorX7yfaDqL2QG4mUVx7hiku1hA5JJ5R+MiZwKiglwj2wIxWdy3EoioHgwR7meuIyHInJV+nxxJi/mwYb0NRu77NSAQkNFXLr6jGyCOV6wW8QVKr4Z/A//RUcwn4KMAD6MNV+pBmzeAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Wallis and Futuna',\n code: '681',\n iso: 'WF',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzU5MkY0Q0MxNzhDMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzU5MkY0Q0IxNzhDMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQTQyMEE3MkQyMkZFM0NBMzRDNzNGM0VCOTZCQjUzQ0UiIHN0UmVmOmRvY3VtZW50SUQ9IkE0MjBBNzJEMjJGRTNDQTM0QzczRjNFQjk2QkI1M0NFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5wahWgAAAsdJREFUeNrEVUtrE1EUPudOMpOkNcmExsRgGyr1USRYUOrKFFTQhXWl0YUoLizWhdS0ttBCpdWuqhY3RRFUFBSh+heUdm9pKbopupPYR5o0j2YmmXu8k1RR6bSlULwMw33M+e53vvudO9jcPDo7m+zrOxaPR3lRS504TTNfjKZDmE5KuQIxhK02BtvWbLSpz/7hTuVng4Rsmg7ZAtcr9O12KBWpUCBuAK4mRPkciCERYAWLSMjEGLpcwJg5bwUt+1VXFmyqRwxKYoMaP9u9y3B7MLUMRpEkBRr2wlyCUwkJyzCEaMdAEObnQOwqK1boOB1tNTj3uBXV6+Ai+Pt3k2MRWWqRGGifZ5Thh96uWzQ/DwYvS4MU3Jkde1+IXZL21IEiowVvpPoQSGwlo2czmsgY/TUk2SRuGGKxvl6KthSGH1S9eeluPfM7ZmVqZunwEbmny/71m/FxglTv2g5ZdNQs2n15X5CFw1gXBmcVygp3OKFk8MQP952+Hc8ep8+2pl+8qgRkxicWmiJKb7d36B5mMlzXLbUun/Va6YgUdN1IJKpjMZ5Mpa9eJr9qqw1nWqKu2z2+wUERZiwvmydpDW3ZSNhA00THfb0NQsH8xSs8n3PeH1E7O8QkL+ogSeuZbwND06p5WeNByiYFkhSJ/L2ytWoUrpJMgOyH8fS+BsfII+fYu+ypkxXd0WYDzrfCGjlJiFRbm5+cTh1vccY71Y6bZhWOjgrd0eV0x84xRTas0W3rCA2hUP7125W2a9X9/Z6BgUq9e9rbWZUzd+E85Z5DIGBytyK30BixwAaQHaXpKezt9g3dFSpzXjIvDiYxwKWnT7QbcXn/ATD0XxfA5qFR2EMn4nC0GZJJphXIhKCKyhQI8E+TmNfA5bAsdEvosrfNdzJJxeIf95zocBS28/lEGQOnLZmvQkdVLW3G6f/8CrYR+qcAAwC0wiFWD6ebGgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Western Sahara',\n code: '212',\n iso: 'EH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNTkyRjRDRjE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNTkyRjREMDE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM1OTJGNENEMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM1OTJGNENFMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+f+9yRAAAAhJJREFUeNrElEFIlEEYht8Z/zWyRNiU2EoQIqJdyUjEkxcDD1qEBHaIwFMRRGQH9RIR1LFA8Fi0bODFi4fyWLGnCJMWkgo2aFeWbNEOq8uu/us/vaNjsLm7/cbu3wfPDDMM837zzseHMUDhf5DjMEvavBZ+wyFDvpLzHgpLyXGB+MgUeQhvQutuiX4nCTJKXpBWL4R11JE8mSc95DW5WEvhBmB1ZyFMAp9IPQlrB6RUDFQbWSoby1ifJLeVEpnBQQdra07FgonHFSIR98VVzgr9cpssMbuFmRn53u+XmelpYYwpIheNio/d3cLu6hJIpUqe+RP5t7/Qz9ynk7BtxIaG8KWvD3Y6XXQmMT6OAwMDyCWTeNfRgfTEBJx83l1xuanCTZ1AKgUUCsXJZbPYHwyisLyMnysrWE8kIHy+iveJOYD9A41lD5B1Mx9/9Bgtd0Z2nVl9OYtvw8NoC4dRHzgCq6UZda3H/k3YMf98mDSdPqcOTj1XCAVE2ZtefQDi7H/XLrly0Cq1qY08RAJkMiTw+b5/81koYFW8qffMNi5DRFnaDWahzD+eIBvkbj/wRDfwG6rqDeS3sGNaZ5C8bQJuXQFiZ7lIm5Ymqyts7VjbTI6Sp6eAm1eZiN5Y3Gvt70FYi7abR12/AET6zWLRVFeNQmRp9Xzj9itjndz5URtrdwk/OAl17zKLSpfxEjyLXwIMABpOQfz9h5ChAAAAAElFTkSuQmCC'\n },\n {\n country: 'Yemen',\n code: '967',\n iso: 'YE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNTkyRjREMzE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNTkyRjRENDE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM1OTJGNEQxMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM1OTJGNEQyMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ACJHhgAAAE1JREFUeNpifK+t+59hAAATwwCBUYtHLaYZYPz///9HIM0HxPTKVoxA/IkFymBAouli+WjiohtgQUpU9Exc/xnpaOFoyTVq8TC3GCDAAFQ1DF5mtiLSAAAAAElFTkSuQmCC'\n },\n {\n country: 'Zambia',\n code: '260',\n iso: 'ZM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MTY2NjI2QzE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MTY2NjI2RDE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgxNjY2MjZBMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgxNjY2MjZCMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+b9h8+AAAAXJJREFUeNrslLtKA0EUhr+ZzW7MbYkmMQoqVhZWilrb+Q4i2PgGPoCVlbVoY20r+AQigoKFlWDnhaAYMCYm0d3s7oyzwScYsBEPpzicA9/8/GdmxOQeFiE0sUMgySa4GgWRxFOI4TR00iKDVSQOhZCy4j5H5EGMH9F3CYa8fEAttkV3XGotDhrgc1CimmehzX6JCcFSl/V3jnK2aH/AY4U9wc4rh02KRaI6Kw3q79QLXPmc1RB2Xkvjr+TFZWTA8gfzfTZiyh+cCk5nufYpCFvVWpAIKgmhx8UUlyHVWx7GOZ7B7LQUpSu1RJsbEjnp0kyRj6gKTuZo5Sgq4oBEEtipNpKfS2yfZzdust1R/Rqrrebnkznkjc1Vdte4b/FliTbpMd/MLN5lGVNvStH5TLsw2WJaMx3RE0gbN0gNbeeMqapdVs++0uJnFBqeQ0emKfm1+Ef/o/8i2v57Gjj0PN139ZfUYgSRpP04Q2/44vvwLcAAr1qGyCgX8xUAAAAASUVORK5CYII='\n },\n {\n country: 'Zimbabwe',\n code: '263',\n iso: 'ZW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MTY2NjI3MDE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MTY2NjI3MTE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgxNjY2MjZFMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgxNjY2MjZGMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WOc8GAAAAtBJREFUeNq0lmtIk1EYx/+7b7pJ2LxfKv1QqZVBEERfEsKCyi5ghqldmEk1urAuUBGYSRCChMrQkqAsM8IuokVRUeAFBmVhsVa6OWeba7rNy9bedzudN9KK+ra9f3jOC88D7++c55zzPEfQ2NBkO3xLo5LnAzmZcvjGAAjBuwSEyvCkH2U1xfiwcAC5eSK4RqUIBrkov2Av/aoCowQ7daXo9N1ESRngD8gwNUEjIp7Bs47a6mtwWzU4UU4QvYg6LPzA/wFzau924JV+PTQF75G1gzqmqUU49X+Bpz1vIXZFQ2a2YiAnD/pLB5Dtb0TFMhqMkWEyEIJYEGGwj7EjOJiLQAeBVTeGFY6vYOMTcf7cdbir9uMIQkifp4aZJRAREjlwiA6M8SRC1ssY0gJy0UZk9DykETHajGZ0bivA9o/vsCVVCchk4YOD7nHvtzM6lffuY4jzY5BS6YJEIoK92gnv/QVQSGVIqzwKY3E59BoN/M1XkaoUQiSXh0cmLOud6nxAPsVnEstmEGYwmcz0JRH/SAKx6UCMq5PITPdrMiv90+cEsXFcrsMzLtXcD1lqjrYUMv1SSkx31GS4PZ74ekEmnGdJiPxWi+ENgTohbLB4buXUFEvT4DTYwEg89PqEYDUBCUnZP2/RMLX6Q1qMNdThVBS92rGKsDI9B2bNk2BeuKFcIoGSxNEt8CDoFiImvQhdQ3a0FG7FJkMfipIpNUoRuVPNWkfhHzFBvmoxnQ3tEhIp4BHjYs0jWC5ocRAuZCnn4wvLFTLCT+XiZB4H6uprkWg5Bl0GdagV8DDBiFXP/4I7uj7jWWspCtf1YE0JdQS4veC5VjdfuQdL/y6crmDoYeOW/qs/C/gC03HPcS1u2+uwdx/XkaTwOgV/HD8eHgKm3iGUVO1GX2w3cjYAEw4FmAC/LxFB6402W0VTmcq/1oeVy2X4bheCCAn41g8BBgCi8X7r2R04cwAAAABJRU5ErkJggg=='\n }\n];\n\nexport default FlagsList;\n","import classNames from 'classnames';\nimport React, {\n ChangeEvent,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent as ReactKeyboardEvent,\n ReactNode,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp, FeedbackState } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Icon } from '../../atoms/icon';\nimport { Feedback } from '../../shared/feedback';\n\nimport FlagsList, { IFlagProps } from './resources/config';\nexport const PhoneCountryCodes = FlagsList.map((l) => l.code);\nexport type PhoneCountryCode = (typeof PhoneCountryCodes)[number];\n\nexport const PhoneCountryISOs = FlagsList.map((l) => l.iso);\nexport type PhoneCountryISO = (typeof PhoneCountryISOs)[number];\n\nimport { Dropdown, DropdownOption, DropdownOptionProp, DropdownRef, DropdownSection } from '../../molecules/dropdown';\nimport './input-phone.scss';\n\nexport interface InputPhoneRef {\n input: HTMLInputElement;\n iso: PhoneCountryISO;\n code: PhoneCountryCode;\n}\n\nexport interface InputPhoneProps extends Omit<ComponentPropsWithRef<'input'>, 'onChange'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Sets the input in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedbacktext is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * Define de initial country selected using the country ISO. Will override defaultCode prop.\n */\n defaultISO?: PhoneCountryISO;\n /**\n * Define de initial country selected using the country phone code (without +). Will be overridden by defaultISO prop.\n */\n defaultCode?: PhoneCountryCode;\n /**\n * Alternative text that labels the list of country flag options of the dropdown list.\n */\n dropdownAriaLabel?: string;\n /**\n * Enable the search bar to filter items.\n */\n searchable?: BooleanProp;\n /**\n * Placeholder text for input search bar.\n */\n searchInputPlaceholder?: string;\n /**\n * Accessible text for the input search bar.\n */\n searchInputAriaLabel?: string;\n /**\n * Text to show when filtering presents no results.\n */\n searchNoResultsText?: string;\n /**\n * Number of visible items to display in the DropdownList. Remaining items will be accessible via scroll bar.\n */\n visibleCount?: number;\n /**\n * Callback to run whenever the input value or country dropdown changes.\n */\n onChange?: (args: InputPhoneRef) => void;\n}\n\nconst InnerInputPhone: ForwardRefRenderFunction<InputPhoneRef | HTMLInputElement, InputPhoneProps> = (\n {\n label = 'Input Label',\n defaultISO,\n defaultCode,\n hideLabel,\n hasError,\n hasFeedback,\n feedbackText,\n feedbackState = 'info',\n darkMode,\n className = '',\n searchInputAriaLabel,\n searchInputPlaceholder,\n searchNoResultsText,\n visibleCount,\n required = true,\n searchable,\n dropdownAriaLabel,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const dropdownRef = useRef<DropdownRef | null>(null);\n\n const [isDropdownVisible, setIsDropdownVisible] = useState(false);\n\n const [hasValue, setHasValue] = useState<boolean>(propsClone.value ? propsClone.value.toString().length > 0 : false);\n\n let initial: IFlagProps = FlagsList[0];\n\n const searchForProp = defaultISO ?? defaultCode;\n\n if (searchForProp) {\n initial =\n FlagsList.find((country) => {\n return country.code === searchForProp || country.iso.toLocaleLowerCase() === searchForProp.toLocaleLowerCase();\n }) ?? initial;\n }\n\n const [currentCountry, setCurrentCountry] = useState<IFlagProps>(initial);\n\n // Necessary to override the default initial value and currentCountry in case of initial code or iso values changed\n useEffect(() => {\n setCurrentCountry(initial);\n }, [initial]);\n\n useImperativeHandle(\n ref,\n () => {\n return {\n input: inputRef.current as HTMLInputElement,\n iso: currentCountry.iso,\n code: currentCountry.code\n } as InputPhoneRef;\n },\n [currentCountry]\n );\n\n const onHide = () => {\n setIsDropdownVisible(false);\n if (wrapperRef.current?.contains(document.activeElement)) {\n inputRef.current?.focus();\n }\n };\n\n const onShow = () => {\n setIsDropdownVisible(true);\n };\n\n const handleDropDownControlKeyUp = (evt: ReactKeyboardEvent<HTMLButtonElement>) => {\n const code = evt.code;\n\n if (dropdownRef.current) {\n if (code === 'Escape') {\n dropdownRef.current.hide();\n }\n\n if (dropdownRef.current.visibility) {\n if (code === 'ArrowDown') {\n dropdownRef.current.first();\n }\n\n if (code === 'ArrowUp') {\n dropdownRef.current.last();\n }\n\n if (code === 'Tab') {\n dropdownRef.current.first();\n }\n }\n }\n };\n\n const handleDropDownControlKeyDownCapture = (evt: ReactKeyboardEvent<HTMLButtonElement>) => {\n const code = evt.code;\n\n if (dropdownRef.current?.visibility) {\n if (code === 'Tab' || code === 'ArrowDown' || code === 'ArrowUp') {\n // PREVENT SCROLL AND TAB INDEX CHANGE FOCUS\n evt.preventDefault();\n evt.stopPropagation();\n }\n }\n };\n\n const onDropdownChange = (options: DropdownOptionProp[]) => {\n const selectedCountry = FlagsList.find((f) => f.iso === options[0].value);\n\n if (!selectedCountry) {\n return;\n }\n\n setCurrentCountry({\n country: selectedCountry.country,\n code: selectedCountry.code,\n iso: selectedCountry.iso,\n flag: selectedCountry.flag\n } as IFlagProps);\n\n propsClone.onChange?.({\n input: inputRef.current as HTMLInputElement,\n iso: selectedCountry.iso,\n code: selectedCountry.code\n } as InputPhoneRef);\n };\n\n const handleInputChange = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n\n setHasValue(value.length > 0);\n\n propsClone.onChange?.({\n input: inputRef.current as HTMLInputElement,\n iso: currentCountry.iso,\n code: currentCountry.code\n } as InputPhoneRef);\n };\n\n const handleInputKeyUp = (evt: ReactKeyboardEvent<HTMLInputElement>) => {\n const code = evt.code;\n\n if (dropdownRef.current) {\n if (code === 'Escape') {\n dropdownRef.current.hide();\n }\n }\n };\n\n const handleDropDownControlSelectClicked = () => {\n if (propsClone.disabled || propsClone.readOnly || !dropdownRef.current) {\n return;\n }\n\n if (!dropdownRef.current.visibility) {\n dropdownRef.current.show();\n } else {\n dropdownRef.current.hide();\n }\n };\n\n useEffect(() => {\n const handleClickOutside = (evt: MouseEvent) => {\n if (!dropdownRef.current?.visibility) {\n return;\n }\n\n if (!wrapperRef.current?.contains(evt.target as HTMLElement)) {\n dropdownRef.current.hide();\n }\n };\n\n document?.addEventListener('click', handleClickOutside);\n\n return () => {\n document?.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n // REMOVE ARIA DESCENDANT ON HIDE OVERLAY\n useEffect(() => {\n if (!isDropdownVisible && buttonRef.current) {\n buttonRef.current.setAttribute('aria-activedescendant', '');\n }\n }, [isDropdownVisible]);\n\n // PREVENT NON NUMERIC INPUTS\n useEffect(() => {\n const keypressHandler = (evt: KeyboardEvent) => {\n if (/\\d/.test(evt.key)) {\n return true;\n }\n\n evt.preventDefault();\n evt.stopPropagation();\n\n return false;\n };\n\n const elem: HTMLInputElement | null = inputRef.current;\n\n if (elem) {\n elem.addEventListener('keypress', keypressHandler);\n }\n\n return () => {\n if (elem) {\n elem.removeEventListener('keypress', keypressHandler);\n }\n };\n }, []);\n\n const wrapperClassNames = classNames('agora-input-phone', className);\n\n const inputWrapperClassNames = classNames('input-wrapper', {\n 'has-error': stringToBoolean(hasError),\n 'has-value': hasValue,\n 'disabled': propsClone.disabled,\n 'readonly': propsClone.readOnly\n });\n\n const labelClasses = classNames('input-phone-label', stringToBoolean(darkMode) ? 'dark-label' : 'light-label');\n\n return (\n <div hidden={!!propsClone.hidden} className={wrapperClassNames} ref={wrapperRef}>\n {/* Label */}\n {label && !stringToBoolean(hideLabel) && (\n <label htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n )}\n\n {/* Input wrapper */}\n <div className={inputWrapperClassNames}>\n <button\n type=\"button\"\n ref={buttonRef}\n className=\"country-dropdown-control\"\n tabIndex={propsClone.disabled || propsClone.readOnly ? -1 : 0}\n onClick={handleDropDownControlSelectClicked}\n onKeyUp={handleDropDownControlKeyUp}\n onKeyDownCapture={handleDropDownControlKeyDownCapture}\n role=\"combobox\"\n aria-controls={`${propsClone.id}-dropdown-container`}\n aria-expanded={isDropdownVisible}\n aria-label={hideLabel ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n aria-haspopup=\"listbox\"\n aria-required={required}\n disabled={propsClone.disabled}\n >\n <img className=\"shadow-center-lower\" src={`${currentCountry.flag}`} alt={currentCountry.country} width={26} />\n <Icon name=\"agora-solid-arrow-down\" aria-hidden className=\"ml-8\" />\n </button>\n\n <span className=\"country-code text-[var(--color-neutral-300)]\" aria-disabled>\n +({currentCountry.code ?? FlagsList[0].code})\n </span>\n\n <input\n type=\"tel\"\n id={propsClone.id}\n className=\"agora-input-text\"\n {...propsClone}\n disabled={propsClone.disabled}\n readOnly={propsClone.readOnly}\n aria-invalid={stringToBoolean(hasError)}\n aria-disabled={stringToBoolean(propsClone.disabled)}\n aria-required={required}\n ref={inputRef}\n onKeyUp={handleInputKeyUp}\n onChange={handleInputChange}\n />\n\n <div className=\"absolute -bottom-8 left-0 w-full min-h-[8px]\">\n <Dropdown\n className=\"min-w-[224px]\"\n ref={dropdownRef}\n onHide={onHide}\n onShow={onShow}\n onChange={onDropdownChange}\n type=\"text\"\n searchable={searchable}\n searchAriaLabel={searchInputAriaLabel}\n searchPlaceholder={searchInputPlaceholder}\n noSearchResults={searchNoResultsText}\n optionsVisible={visibleCount}\n >\n <DropdownSection\n name={'countries'}\n value={`input-phone-${propsClone.id}-countries-dropdown-section`}\n hideSectionName\n aria-label={dropdownAriaLabel}\n >\n {FlagsList.map((country, index) => {\n const optionIndex = `input-phone-${propsClone.id}-countries-dropdown-section-${index}`;\n return (\n <DropdownOption\n key={optionIndex}\n value={country.iso}\n selected={country.iso.toLocaleLowerCase() === currentCountry.iso.toLocaleLowerCase()}\n hasIcon\n icon={country.flag}\n >{`+(${country.code}) ${country.country}`}</DropdownOption>\n );\n })}\n </DropdownSection>\n </Dropdown>\n </div>\n </div>\n\n {/* Feedback */}\n {stringToBoolean(hasFeedback) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputPhone = forwardRef<InputPhoneRef | HTMLInputElement, InputPhoneProps>(InnerInputPhone);\n","import classNames from 'classnames';\nimport React, {\n Children,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n isValidElement,\n KeyboardEvent,\n ReactElement,\n ReactNode,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp, FeedbackState } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Icon } from '../../atoms/icon';\nimport { Feedback } from '../../shared/feedback';\n\nimport { Dropdown, DropdownOptionProp, DropdownRef, DropdownSectionProps, DropdownType } from '../../molecules/dropdown';\nimport './input-select.scss';\n\nexport interface InputSelectRef {\n selectedOptions: DropdownOptionProp[];\n}\n\nconst parseChildrenProps = (children: ReactElement<DropdownSectionProps> | ReactElement<DropdownSectionProps>[]) => {\n let allItemsEnabled = 0;\n const newSelectedData = [] as DropdownOptionProp[];\n\n Children.forEach(children, (sectionChild) => {\n if (isValidElement<DropdownSectionProps>(sectionChild)) {\n Children.forEach(sectionChild.props.children, (optionChild) => {\n if (isValidElement<DropdownSectionProps>(optionChild)) {\n allItemsEnabled = optionChild.props.disabled ? allItemsEnabled : allItemsEnabled + 1;\n\n if (optionChild.props.selected) {\n newSelectedData.push(optionChild.props);\n }\n }\n });\n }\n });\n\n return {\n allItemsEnabled,\n newSelectedData\n };\n};\n\nexport interface InputSelectProps extends Omit<ComponentPropsWithRef<'select'>, 'options' | 'onChange'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Input placeholder.\n */\n placeholder?: string;\n /**\n * Sets the input in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedbacktext is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * Show or hide the leading icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n /**\n * Alternative text for the dropdown that will be rendered.\n */\n dropdownAriaLabel?: string;\n /**\n * Number of visible items to display in the DropdownList. Remaining items will be accessible via scroll bar.\n */\n visibleCount?: number;\n /**\n * Event triggered whenever selected value or values changes.\n */\n onChange?: (options: DropdownOptionProp[]) => void;\n /**\n * Select All item text to be rendered.\n */\n selectAllLabel?: string;\n /**\n * Enable the search bar to filter items.\n */\n searchable?: BooleanProp;\n /**\n * Placeholder text for input search bar.\n */\n searchInputPlaceholder?: string;\n /**\n * Accessible text for the input search bar.\n */\n searchInputAriaLabel?: string;\n /**\n * Event triggered whenever the input search value changes.\n */\n onSearchInputChange?: (value: string) => void;\n /**\n * Text to show when filtering presents no results.\n */\n searchNoResultsText?: string;\n /**\n * Text placed as Select all options item\n */\n allSelectedLabel?: string;\n /**\n * Initial template structure for multiple items selections text output\n */\n pluralSelectedPlaceholder?: string;\n /**\n * Type of options to render\n */\n type: DropdownType;\n /**\n * Section list of dropdown options to render.\n */\n children: ReactElement<DropdownSectionProps> | ReactElement<DropdownSectionProps>[];\n}\n\nconst InnerInputSelect: ForwardRefRenderFunction<InputSelectRef | HTMLSelectElement, InputSelectProps> = (\n {\n label,\n hideLabel,\n placeholder = '',\n pluralSelectedPlaceholder = '',\n visibleCount = 4,\n hasIcon,\n icon,\n hasFeedback,\n feedbackText,\n feedbackState = 'info',\n darkMode,\n hasError,\n required = true,\n onChange,\n searchable,\n selectAllLabel,\n allSelectedLabel = '',\n searchInputPlaceholder,\n searchInputAriaLabel,\n searchNoResultsText,\n children,\n onSearchInputChange,\n type,\n dropdownAriaLabel,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const [isDropDownVisible, setIsDropDownVisible] = useState(false);\n\n const controlWrapperRef = useRef<HTMLDivElement>(null);\n\n const controlRef = useRef<HTMLDivElement>(null);\n\n const dropdownRef = useRef<DropdownRef>(null);\n\n // INITIALIZE SELECTED VALUES\n const [selectedData, setSelectedData] = useState<DropdownOptionProp[]>([]);\n\n useImperativeHandle(\n ref,\n () => {\n return {\n selectedOptions: selectedData\n } as InputSelectRef;\n },\n [selectedData]\n );\n\n const mainWrapperClasses = classNames('agora-input-select', {\n 'disabled': stringToBoolean(propsClone.disabled),\n 'has-value': selectedData.length > 0,\n 'has-error': stringToBoolean(hasError)\n });\n\n const controlClasses = classNames('agora-input-select-control', {\n 'is-overlay-open': isDropDownVisible,\n 'has-leading-icon': hasIcon && icon?.indexOf('agora-line') === 0 // allowing only line family icon\n });\n\n // NEED TO REEVALUATE ALL CHILDREN TO ENSURE THAT SELECTED VALUES AND DISABLED VALUES ARE SYNC\n const stringOutputMemo: string = useMemo(() => {\n const { allItemsEnabled, newSelectedData } = parseChildrenProps(children);\n\n if (newSelectedData.length === allItemsEnabled) {\n return allSelectedLabel;\n }\n\n if (newSelectedData.length === 0) {\n return placeholder;\n }\n\n if (newSelectedData.length === 1) {\n return newSelectedData[0].children;\n }\n\n return `${newSelectedData.length} ${pluralSelectedPlaceholder}`;\n }, [children, placeholder, pluralSelectedPlaceholder, allSelectedLabel]);\n\n const focusInput = () => {\n if (!propsClone.disabled) {\n controlRef.current?.focus();\n }\n };\n\n const onHide = () => {\n setIsDropDownVisible(false);\n };\n\n const onShow = () => {\n setIsDropDownVisible(true);\n };\n\n const onDropDownChange = (values: DropdownOptionProp[]) => {\n // select local values\n setSelectedData(values);\n\n // trigger external data selection callback\n onChange?.(values);\n };\n\n const onDropDownClickHandler = () => {\n if (dropdownRef.current) {\n if (dropdownRef.current.visibility) {\n dropdownRef.current.hide();\n } else {\n dropdownRef.current.show();\n }\n }\n };\n\n const onDropDownKeyUpHandler = (evt: KeyboardEvent<HTMLDivElement>) => {\n const code = evt.code;\n\n if (dropdownRef.current) {\n if (code === 'Escape') {\n dropdownRef.current.hide();\n }\n\n if (dropdownRef.current.visibility) {\n if (code === 'ArrowDown') {\n dropdownRef.current.first();\n }\n\n if (code === 'ArrowUp') {\n dropdownRef.current.last();\n }\n\n if (code === 'Tab') {\n dropdownRef.current.first();\n }\n }\n }\n };\n\n const handleDropDownControlKeyDownCapture = (evt: KeyboardEvent<HTMLDivElement>) => {\n const code = evt.code;\n\n if (!dropdownRef.current) {\n return;\n }\n\n if (dropdownRef.current.visibility) {\n if (code === 'Tab' || code === 'ArrowDown' || code === 'ArrowUp') {\n // PREVENT SCROLL AND TAB INDEX CHANGE FOCUS\n evt.preventDefault();\n evt.stopPropagation();\n }\n }\n\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n if (dropdownRef.current.visibility) {\n dropdownRef.current.hide();\n } else {\n dropdownRef.current.show();\n }\n }\n };\n\n useEffect(() => {\n if (!isDropDownVisible) {\n controlRef.current?.setAttribute('aria-activedescendant', '');\n }\n }, [isDropDownVisible]);\n\n useEffect(() => {\n const handleClickOutside = (evt: MouseEvent) => {\n if (dropdownRef.current?.visibility && !controlWrapperRef.current?.contains(evt.target as HTMLElement)) {\n dropdownRef.current.hide();\n }\n };\n\n document?.addEventListener('click', handleClickOutside);\n\n return () => {\n document?.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n const labelClasses = classNames('agora-input-select-label', stringToBoolean(darkMode) ? 'dark-label' : 'light-label');\n\n return (\n <div className={mainWrapperClasses} hidden={!!propsClone.hidden}>\n {!stringToBoolean(hideLabel) && (\n <label\n id={`agora-input-select-${propsClone.id}-control-label`}\n htmlFor={`agora-input-select-${propsClone.id}-control`}\n className={labelClasses}\n onClickCapture={focusInput}\n >\n {label}\n </label>\n )}\n\n <div className=\"agora-input-select-control-wrapper\" ref={controlWrapperRef}>\n <div\n id={`agora-input-select-${propsClone.id}-control`}\n ref={controlRef}\n role=\"combobox\"\n aria-invalid={stringToBoolean(hasError)}\n aria-disabled={stringToBoolean(propsClone.disabled)}\n aria-expanded={isDropDownVisible}\n aria-controls={propsClone.id}\n aria-haspopup=\"listbox\"\n aria-required={required}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n aria-labelledby={label && !stringToBoolean(hideLabel) ? `agora-input-select-${propsClone.id}-control-label` : ''}\n className={controlClasses}\n tabIndex={propsClone.disabled ? -1 : 0}\n onClick={onDropDownClickHandler}\n onKeyUp={onDropDownKeyUpHandler}\n onKeyDownCapture={handleDropDownControlKeyDownCapture}\n >\n {hasIcon && icon && icon.startsWith('agora-line') && (\n <div className=\"input-icon input-leading-icon\">\n <Icon name={icon} aria-hidden />\n </div>\n )}\n\n <div className=\"content\">{stringOutputMemo}</div>\n\n <div className=\"indicator\">\n <Icon name=\"agora-solid-arrow-down\" aria-hidden />\n </div>\n </div>\n\n <div className=\"absolute -bottom-8 left-0 w-full min-h-[8px]\">\n <Dropdown\n aria-label={dropdownAriaLabel}\n type={type}\n ref={dropdownRef}\n id={propsClone.id}\n selectAllLabel={selectAllLabel}\n optionsVisible={visibleCount}\n searchable={searchable}\n searchAriaLabel={searchInputAriaLabel}\n searchPlaceholder={searchInputPlaceholder}\n noSearchResults={searchNoResultsText}\n onSearchChange={onSearchInputChange}\n onChange={onDropDownChange}\n onHide={onHide}\n onShow={onShow}\n >\n {children}\n </Dropdown>\n </div>\n </div>\n\n {/* Feedback */}\n {stringToBoolean(hasFeedback) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputSelect = forwardRef<InputSelectRef | HTMLSelectElement, InputSelectProps>(InnerInputSelect);\n","import React, { FC, HTMLAttributes, ReactElement } from 'react';\nimport { TableRowProps } from './table-row';\n\nexport interface TableBodyProps extends HTMLAttributes<HTMLTableSectionElement> {\n children: ReactElement<TableRowProps> | Array<ReactElement<TableRowProps>>;\n}\n\nconst TableBody: FC<TableBodyProps> = ({ children, ...props }) => {\n return <tbody {...props}>{children}</tbody>;\n};\n\nexport { TableBody };\n","import React, { FC, HTMLAttributes, ReactNode } from 'react';\n\nexport interface TableCaptionProps extends HTMLAttributes<HTMLTableCaptionElement> {\n children: ReactNode;\n}\n\nconst TableCaption: FC<TableCaptionProps> = ({ children, ...props }) => {\n return <caption {...props}>{children}</caption>;\n};\n\nexport { TableCaption };\n","import React, { FC, ReactNode, TdHTMLAttributes } from 'react';\n\nexport interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {\n children: ReactNode;\n /**\n * Header label.\n */\n headerLabel: ReactNode;\n /**\n * Header identification key.\n */\n headerKey?: string;\n /**\n * Value of the cell.\n */\n value?: string | number | Date;\n}\n\nconst TableCell: FC<TableCellProps> = ({ children, headerKey = '', headerLabel, ...props }) => {\n return (\n <td {...props} data-header-key={headerKey} data-label={headerLabel}>\n {children}\n </td>\n );\n};\n\nexport { TableCell };\n","import React, { FC, HTMLAttributes, ReactNode } from 'react';\n\nexport interface TableFooterProps extends HTMLAttributes<HTMLTableSectionElement> {\n children: ReactNode;\n}\n\nconst TableFooter: FC<TableFooterProps> = ({ children, ...props }) => {\n return <tfoot {...props}>{children}</tfoot>;\n};\n\nexport { TableFooter };\n","import React, { FC, HTMLAttributes, ReactElement } from 'react';\nimport { TableRowProps } from './table-row';\n\nexport interface TableHeaderProps extends HTMLAttributes<HTMLTableSectionElement> {\n children: ReactElement<TableRowProps> | Array<ReactElement<TableRowProps>>;\n}\n\nconst TableHeader: FC<TableHeaderProps> = ({ children, ...props }) => {\n return <thead {...props}>{children}</thead>;\n};\n\nexport { TableHeader };\n","import React, { FC, HTMLAttributes, KeyboardEvent, ReactNode, useMemo } from 'react';\nimport { Icon } from '../../atoms/icon/icon';\nimport { SortOrder } from './models/sort-order.type';\nimport { SortType } from './models/sort-type.type';\n\nconst DESCENDING_ICON_NAMES: Record<SortType, string> = {\n string: 'agora-line-sort-alpha-up',\n date: 'agora-solid-sort-generic-up',\n numeric: 'agora-solid-sort-generic-up'\n};\n\nconst ASCENDING_ICON_NAMES: Record<SortType, string> = {\n string: 'agora-solid-sort-alpha-down',\n date: 'agora-solid-sort-generic-down',\n numeric: 'agora-solid-sort-generic-down'\n};\n\nexport interface TableHeaderCellProps extends HTMLAttributes<HTMLTableCellElement> {\n children: ReactNode;\n /**\n * The sort type applied.\n * */\n sortType?: SortType;\n /**\n * The sort order applied.\n * */\n sortOrder?: SortOrder;\n /**\n * The default icon alt text.\n */\n defaultIconAlt?: string;\n /**\n * The ascending icon alt text.\n */\n ascendingIconAlt?: string;\n /**\n * The descending icon alt text.\n */\n descendingIconAlt?: string;\n /**\n * Callback to be called when the sort change\n */\n onSortChange?: (sortOrder: SortOrder) => void;\n}\n\nconst TableHeaderCell: FC<TableHeaderCellProps> = ({\n sortType,\n sortOrder = 'none',\n onSortChange,\n defaultIconAlt,\n ascendingIconAlt,\n descendingIconAlt,\n children,\n ...props\n}) => {\n const circularSortOrder = ['none', 'ascending', 'descending'] as SortOrder[];\n const currentSortOrderIndex = circularSortOrder.findIndex((order) => order === sortOrder);\n\n const sortIconName = useMemo(() => {\n if (!sortType) {\n return '';\n }\n\n if (sortOrder === 'ascending') {\n return ASCENDING_ICON_NAMES[sortType];\n }\n\n if (sortOrder === 'descending') {\n return DESCENDING_ICON_NAMES[sortType];\n }\n\n return 'agora-solid-sort-vertical';\n }, [sortType, sortOrder]);\n\n const sortIconAlt = useMemo(() => {\n if (!sortType) {\n return '';\n }\n\n if (sortOrder === 'ascending') {\n return ascendingIconAlt;\n }\n\n if (sortOrder === 'descending') {\n return descendingIconAlt;\n }\n\n return defaultIconAlt;\n }, [sortType, sortOrder]);\n\n const applySort = () => {\n if (!sortType) {\n return '';\n }\n\n let nextSortOrder = currentSortOrderIndex + 1;\n\n if (nextSortOrder >= circularSortOrder.length) {\n nextSortOrder = 0;\n }\n\n onSortChange?.(circularSortOrder[nextSortOrder]);\n };\n\n const handleKeyUpHeader = (evt: KeyboardEvent<HTMLButtonElement>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n applySort();\n }\n };\n\n return (\n <th {...props} className={props.className}>\n {sortType && (\n <button className=\"table-header-cell\" onClick={applySort} onKeyUp={handleKeyUpHeader}>\n <div className=\"w-24\">\n <Icon name={sortIconName} alt={sortIconAlt} />\n </div>\n {children}\n </button>\n )}\n\n {!sortType && <span className=\"table-header-cell\">{children}</span>}\n </th>\n );\n};\n\nexport { TableHeaderCell };\n","import React, { FC, HTMLAttributes, ReactElement } from 'react';\nimport { TableCellProps } from './table-cell';\n\nexport interface TableRowProps extends HTMLAttributes<HTMLTableRowElement> {\n children: ReactElement<TableCellProps> | Array<ReactElement<TableCellProps>>;\n}\n\nconst TableRow: FC<TableRowProps> = ({ children, ...props }) => {\n return <tr {...props}>{children}</tr>;\n};\n\nexport { TableRow };\n","import React, {\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent as ReactKeyboardEvent,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { Button } from '../../atoms/button';\nimport { Dropdown, DropdownOption, DropdownOptionProp, DropdownRef, DropdownSection } from '../../molecules/dropdown';\nimport './table-pagination.scss';\n\nexport interface TablePaginationProps extends ComponentPropsWithRef<'div'> {\n /**\n * Defines the label for the items per page\n */\n itemsPerPageLabel: string;\n /**\n * Defines the label for the items\n */\n itemsLabel: string;\n /**\n * Defines the page size\n */\n itemsPerPage: number;\n /**\n * Total items of the table\n */\n totalItems: number;\n /**\n * Array of values to be displayed in the dropdown\n */\n availablePageSizes: number[];\n /**\n * Current page of the table\n */\n currentPage: number;\n /**\n * Aria label for the button\n */\n buttonDropdownAriaLabel: string;\n /**\n * Aria label for the dropdown list\n */\n dropdownListAriaLabel: string;\n /**\n * Aria label for the previous button\n */\n prevButtonAriaLabel?: string;\n /**\n * Aria label for the next button\n */\n nextButtonAriaLabel?: string;\n /**\n * Callback to be called when the page changes\n */\n onPageChange?: (newPage: number) => void;\n /**\n * Callback to be called when the dropdown changes\n */\n onPageSizeChange?: (newPageSize: number) => void;\n}\n\nconst InnerTablePagination: ForwardRefRenderFunction<HTMLDivElement, TablePaginationProps> = (\n {\n itemsPerPageLabel,\n itemsLabel,\n itemsPerPage,\n totalItems,\n availablePageSizes,\n currentPage,\n buttonDropdownAriaLabel,\n dropdownListAriaLabel,\n prevButtonAriaLabel,\n nextButtonAriaLabel,\n ...props\n },\n ref\n) => {\n const buttonRef = useRef<HTMLButtonElement>(null);\n const dropdownRef = useRef<DropdownRef>(null);\n const dropdownWrapperRef = useRef<HTMLDivElement>(null);\n\n const [isDropdownVisible, setIsDropdownVisible] = useState(false);\n\n const onDropdownButtonClickHandler = () => {\n if (dropdownRef.current) {\n if (dropdownRef.current.visibility) {\n dropdownRef.current.hide();\n } else {\n dropdownRef.current.show();\n }\n }\n };\n\n const onShowDropdownHandler = () => {\n setIsDropdownVisible(true);\n };\n\n const onHideDropDownHandler = () => {\n setIsDropdownVisible(false);\n };\n\n const onDropdownButtonKeyUp = (evt: ReactKeyboardEvent<HTMLButtonElement>) => {\n const code = evt.code;\n\n if (dropdownRef.current?.visibility) {\n if (code === 'ArrowDown') {\n dropdownRef.current.first();\n }\n\n if (code === 'ArrowUp') {\n dropdownRef.current.last();\n }\n\n if (code === 'Tab') {\n dropdownRef.current.first();\n }\n }\n };\n\n const onDropdownButtonKeyDownCapture = (evt: ReactKeyboardEvent<HTMLButtonElement>) => {\n const code = evt.code;\n\n if (dropdownRef.current?.visibility && code === 'Tab') {\n // PREVENT TAB INDEX CHANGE FOCUS\n evt.preventDefault();\n evt.stopPropagation();\n }\n };\n\n const onDropdownChangeHandler = (options: DropdownOptionProp[]) => {\n if (options.length > 0) {\n const option = options[0];\n props.onPageSizeChange?.(+option.value);\n }\n };\n\n useEffect(() => {\n const handleClickOutside = (evt: MouseEvent) => {\n if (dropdownRef.current?.visibility && !dropdownWrapperRef.current?.contains(evt.target as HTMLElement)) {\n dropdownRef.current.hide();\n }\n };\n\n document?.addEventListener('click', handleClickOutside);\n\n return () => {\n document?.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n const firstItem = currentPage * itemsPerPage + 1;\n const lastItem = Math.min(currentPage * itemsPerPage + itemsPerPage, totalItems);\n const totalPages = Math.ceil(totalItems / itemsPerPage);\n\n const handlePrevPage = () => {\n props.onPageChange?.(Math.max(0, currentPage - 1));\n };\n\n const handleNextPage = () => {\n props.onPageChange?.(Math.min(currentPage + 1, totalPages - 1));\n };\n\n // Utility to change button icon\n const iconDefinition = useMemo(() => {\n if (!isDropdownVisible) {\n return {\n default: 'agora-solid-chevron-down',\n hover: 'agora-line-chevron-down'\n };\n }\n\n return {\n default: 'agora-solid-chevron-up',\n hover: 'agora-line-chevron-up'\n };\n }, [isDropdownVisible]);\n\n return (\n <div className=\"agora-table-pagination\" ref={ref}>\n <div className=\"section-items\" ref={dropdownWrapperRef}>\n <Button\n ref={buttonRef}\n appearance=\"link\"\n hasIcon\n trailingIcon={iconDefinition.default}\n trailingIconHover={iconDefinition.hover}\n aria-label={buttonDropdownAriaLabel}\n onKeyDownCapture={onDropdownButtonKeyDownCapture}\n onKeyUp={onDropdownButtonKeyUp}\n onClick={onDropdownButtonClickHandler}\n >\n {itemsPerPageLabel} {itemsPerPage}\n </Button>\n\n <div className=\"absolute -bottom-8 left-0 w-full min-h-[8px]\">\n <Dropdown\n ref={dropdownRef}\n type=\"text\"\n onHide={onHideDropDownHandler}\n onShow={onShowDropdownHandler}\n onChange={onDropdownChangeHandler}\n >\n <DropdownSection hideSectionName name=\"page-size-dropdown\" value=\"page-size-dropdown\" aria-label={dropdownListAriaLabel}>\n {availablePageSizes.map((ps) => {\n return (\n <DropdownOption key={ps} value={String(ps)}>\n {String(ps)}\n </DropdownOption>\n );\n })}\n </DropdownSection>\n </Dropdown>\n </div>\n </div>\n <div className=\"results\">\n <p>\n {firstItem} - {lastItem} / {totalItems} {itemsLabel}\n </p>\n </div>\n <div className=\"action-buttons\">\n <div className=\"prev_box\">\n <Button\n variant=\"neutral\"\n darkMode\n className=\"prev\"\n hasIcon\n iconOnly\n trailingIcon=\"agora-solid-chevron-left\"\n trailingIconHover=\"agora-line-chevron-left\"\n onClick={handlePrevPage}\n disabled={currentPage === 0}\n aria-label={prevButtonAriaLabel}\n />\n </div>\n <div className=\"next_box\">\n <Button\n variant=\"neutral\"\n darkMode\n className=\"next\"\n hasIcon\n iconOnly\n trailingIcon=\"agora-solid-chevron-right\"\n trailingIconHover=\"agora-line-chevron-right\"\n onClick={handleNextPage}\n disabled={currentPage === totalPages - 1}\n aria-label={nextButtonAriaLabel}\n />\n </div>\n </div>\n </div>\n );\n};\n\nconst TablePagination = forwardRef<HTMLDivElement, TablePaginationProps>(InnerTablePagination);\n\nexport { TablePagination };\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactElement, ReactNode } from 'react';\nimport { TableLayout } from './models/table-layout.type';\nimport { TableBodyProps } from './table-body';\nimport { TableCaptionProps } from './table-caption';\nimport { TableFooterProps } from './table-footer';\nimport { TableHeaderProps } from './table-header';\nimport { TablePagination, TablePaginationProps } from './table-pagination';\nimport './table.scss';\n\nexport interface TableProps extends ComponentPropsWithRef<'table'> {\n /**\n * Define the title of table\n */\n caption?: ReactNode;\n /**\n * Table children content\n */\n children?:\n | ReactElement<TableCaptionProps>\n | ReactElement<TableHeaderProps>\n | ReactElement<TableBodyProps>\n | ReactElement<TableFooterProps>\n | Array<\n ReactElement<TableCaptionProps> | ReactElement<TableHeaderProps> | ReactElement<TableBodyProps> | ReactElement<TableFooterProps>\n >;\n /**\n * Define layout for mobile breakpoint\n */\n mobileLayout?: TableLayout;\n /**\n * Define layout for tablet breakpoint\n */\n tabletLayout?: TableLayout;\n /**\n * Define layout for desktop breakpoint\n */\n desktopLayout?: TableLayout;\n /**\n * Configurations used for pagination\n */\n paginationProps?: TablePaginationProps;\n}\n\nconst InternalTable: ForwardRefRenderFunction<HTMLTableElement, TableProps> = (\n { caption, className = '', mobileLayout = 'list', tabletLayout = 'table', desktopLayout = 'table', children, paginationProps, ...props },\n ref\n) => {\n const tableClasseNames = classNames(\n 'agora-table-container',\n {\n 'layout-table-mobile': mobileLayout === 'table',\n 'layout-list-mobile': mobileLayout === 'list',\n 'layout-table-tablet': tabletLayout === 'table',\n 'layout-list-tablet': tabletLayout === 'list',\n 'layout-table-desktop': desktopLayout === 'table',\n 'layout-list-desktop': desktopLayout === 'list'\n },\n className\n );\n\n return (\n <div className=\"agora-table\">\n <table {...props} className={tableClasseNames} ref={ref}>\n {caption && <caption>{caption}</caption>}\n {children}\n </table>\n {paginationProps && <TablePagination {...paginationProps} />}\n </div>\n );\n};\n\nconst Table = forwardRef<HTMLTableElement, TableProps>(InternalTable);\n\nexport { Table };\n","// TimelineEvent.tsx\nimport classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, MouseEvent as ReactMouseEvent, ReactNode, useRef } from 'react';\nimport { BooleanProp } from '../../../../../models';\nimport { stringToBoolean } from '../../../../../utils';\nimport './timeline-event.scss';\nexport interface TimelineEventProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Hide the label\n */\n hideLabel?: BooleanProp;\n /**\n * Label for the event\n */\n label?: string;\n /**\n * Additional class names\n */\n className?: string;\n /**\n * Is the event active\n */\n active?: boolean;\n /**\n * Has an icon\n */\n hasIcon?: BooleanProp;\n /**\n * Icon name\n */\n icon?: string;\n /**\n * Icon alt text\n */\n altIcon?: string;\n /**\n * Determines if the timeline event is interactive or not\n */\n interactive?: BooleanProp;\n /**\n * Children\n */\n children: ReactNode;\n}\n\nexport const TimelineEvent: FC<TimelineEventProps> = ({ label, hideLabel, active, className, interactive, ...props }) => {\n const eventRef = useRef<HTMLDivElement>(null);\n\n const handleClick = (evt: ReactMouseEvent<HTMLDivElement>) => {\n props.onClick?.(evt);\n };\n\n const handleKeyUp = (evt: React.KeyboardEvent<HTMLDivElement>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n if (eventRef.current) {\n const newEvt = new MouseEvent('click', {\n detail: 1\n });\n eventRef.current?.dispatchEvent(newEvt);\n }\n }\n };\n\n const eventWithoutChildren = { ...props };\n delete eventWithoutChildren.children;\n\n const timelineEventClassNames = classNames('timeline-step', className, { active: active });\n const timelineLabelClassNames = classNames('timeline-label', { 'invisible h-0 overflow-hidden': stringToBoolean(hideLabel) });\n\n return (\n <div\n ref={eventRef}\n className={timelineEventClassNames}\n tabIndex={interactive ? 0 : -1}\n role=\"button\"\n aria-current={active}\n onClickCapture={handleClick}\n onKeyUp={handleKeyUp}\n aria-label={stringToBoolean(hideLabel) ? eventWithoutChildren['aria-label'] ?? label : eventWithoutChildren['aria-label']}\n >\n <div className={timelineLabelClassNames}>{label}</div>\n\n <div className=\"timeline-event-container\">\n <div className=\"timeline-event-left-indicator\" />\n <div className=\"timeline-event-dot\">\n <div className=\"timeline-event\" />\n </div>\n <div className=\"timeline-event-right-indicator\" />\n </div>\n </div>\n );\n};\n","import React, { FC } from 'react';\nimport { TimelineEventProps } from '../timeline-event/timeline-event';\nimport { Icon } from '../../../../atoms/icon';\nimport './timeline-event-vertical.scss';\n\nexport const TimelineEventVertical: FC<TimelineEventProps> = ({ ...props }) => {\n return (\n <div className=\"timeline-item\">\n <div className=\"timeline-event\">\n {!props.hasIcon ? (\n <div className=\"timeline-dot\" />\n ) : (\n <div className=\"timeline-icon\">\n <Icon name={props.icon} alt={props.altIcon} />\n </div>\n )}\n <div className=\"timeline-line\" />\n </div>\n <div className=\"timeline-content\">{props.children}</div>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { Children, ComponentPropsWithoutRef, FC, ReactElement, useEffect, useId, useState } from 'react';\nimport { TimelineEventProps } from '../shared/timeline-event/timeline-event';\n\nimport { BooleanProp } from '../../../../models';\nimport { stringToBoolean } from '../../../../utils';\nimport { TimelineEventVertical } from '../shared/timeline-event-vertical';\n\nimport './timeline-vertical.scss';\n\nexport interface TimelineVerticalProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Hide the labels\n **/\n hideLabels: BooleanProp;\n /**\n * Timeline events\n **/\n children: ReactElement<TimelineEventProps> | Array<ReactElement<TimelineEventProps>>;\n}\n\nexport const TimelineVertical: FC<TimelineVerticalProps> = ({ hideLabels, ...props }) => {\n const generateId = useId();\n const [events, setEvents] = useState<Array<Array<ReactElement<TimelineEventProps>>>>([]);\n\n useEffect(() => {\n const sortedEvents = Children.toArray(props.children) as Array<ReactElement<TimelineEventProps>>;\n\n const groupedEvents = sortedEvents.reduce(\n (grouped, event) => {\n const label = event.props.label ?? '';\n grouped[label] = grouped[label] || [];\n grouped[label].push(event);\n return grouped;\n },\n {} as Record<string, ReactElement<TimelineEventProps>[]>\n );\n\n const groupedEventsArray = Object.values(groupedEvents);\n\n setEvents(groupedEventsArray);\n }, [props.children]);\n\n return (\n <div {...props} className={classNames('timeline-vertical')}>\n {events.map((group, groupIndex) => {\n const keyGroup = `timeline-group-${groupIndex}-${generateId}`;\n\n const groupClassNames = classNames('timeline-group', { 'has-label': !stringToBoolean(hideLabels) });\n\n return (\n <div key={keyGroup} className={groupClassNames}>\n {!stringToBoolean(hideLabels) && (\n <div className=\"timeline-label-wrapper\">\n <div className=\"timeline-label\">{group[0].props.label}</div>\n </div>\n )}\n <div className=\"timeline-items\">\n {group.map((event, eventIndex) => {\n const keyEvent = `timeline-event-${groupIndex}-${eventIndex}-${generateId}`;\n return (\n <TimelineEventVertical key={keyEvent} hasIcon={event.props.hasIcon} icon={event.props.icon}>\n {event.props.children}\n </TimelineEventVertical>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { Children, ComponentPropsWithoutRef, FC, ReactElement, useEffect, useLayoutEffect, useState } from 'react';\nimport { BooleanProp } from '../../../../models';\nimport { stringToBoolean } from '../../../../utils';\nimport { TimelineEvent, TimelineEventProps } from '../shared/timeline-event/timeline-event';\nimport { Button } from '../../../atoms/button/button';\nimport './timeline-horizontal.scss';\nimport { TimelineVertical } from '../timeline-vertical';\nexport interface TimelineHorizontalProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Label for the next button\n **/\n nextLabel: string;\n /**\n * Label for the previous button\n **/\n previousLabel: string;\n /**\n * Determines if the timeline is interactive or not\n **/\n interactive?: BooleanProp;\n /**\n * Timeline events\n **/\n children: ReactElement<TimelineEventProps> | Array<ReactElement<TimelineEventProps>>;\n}\n\nexport const TimelineHorizontal: FC<TimelineHorizontalProps> = ({ children, nextLabel, previousLabel, interactive = true, ...props }) => {\n const [isMobile, setIsMobile] = useState(window.innerWidth <= 768);\n const isInteractive = stringToBoolean(interactive);\n const maxVisibleEvents = 6;\n const [events, setEvents] = useState<Array<ReactElement<TimelineEventProps>>>([]);\n const [activeEvent, setActiveEvent] = useState<number>(0);\n\n const [startIndex, setStartIndex] = useState<number>(0);\n const [endIndex, setEndIndex] = useState<number>(maxVisibleEvents);\n\n useEffect(() => {\n const eventChildren = Children.toArray(children) as Array<ReactElement<TimelineEventProps>>;\n setEvents(eventChildren);\n const activeIndex = eventChildren.findIndex((child) => child.props.active);\n setActiveEvent(activeIndex !== -1 ? activeIndex : 0);\n }, [children]);\n\n const handleClickEvent = (index: number) => {\n setActiveEvent(index);\n };\n\n const getTimelineStepClasses = (index: number, currentActiveEvent: number) => {\n return index < currentActiveEvent ? 'completed' : '';\n };\n\n const handleNextButtonClick = () => {\n const newEvent = Math.min(activeEvent + 1, Children.count(children) - 1);\n setActiveEvent(newEvent);\n\n if (newEvent >= endIndex) {\n setStartIndex(startIndex + 1);\n setEndIndex(endIndex + 1);\n }\n };\n\n const handlePreviousButtonClick = () => {\n const newEvent = Math.max(activeEvent - 1, 0);\n setActiveEvent(newEvent);\n\n if (newEvent < startIndex) {\n setStartIndex(startIndex - 1);\n setEndIndex(endIndex - 1);\n }\n };\n\n const selectedContentEvent = Children.map(children, (child, index) => {\n return index === activeEvent ? child.props.children : null;\n });\n\n const visibleEvents = events.slice(startIndex, endIndex);\n\n useEffect(() => {\n if (activeEvent > endIndex - 1 || activeEvent < startIndex) {\n const newStartIndex = Math.max(0, activeEvent - Math.floor(maxVisibleEvents / 2));\n const newEndIndex = newStartIndex + maxVisibleEvents;\n\n if (newEndIndex > events.length) {\n setStartIndex(events.length - maxVisibleEvents);\n setEndIndex(events.length);\n } else {\n setStartIndex(newStartIndex);\n setEndIndex(newEndIndex);\n }\n }\n }, [activeEvent, events, maxVisibleEvents, startIndex, endIndex]);\n\n useLayoutEffect(() => {\n function updateSize() {\n setIsMobile(window.innerWidth <= 768);\n }\n window.addEventListener('resize', updateSize);\n updateSize();\n return () => window.removeEventListener('resize', updateSize);\n }, []);\n\n const renderTimelineActions = () => {\n const isPreviousButtonDisabled = activeEvent === 0;\n const isLastButtonDisabled = activeEvent === Children.count(children) - 1;\n\n return (\n <div className=\"timeline-actions\">\n <Button\n appearance=\"link\"\n variant=\"primary\"\n hasIcon\n leadingIcon=\"agora-line-arrow-left-circle\"\n leadingIconHover=\"agora-line-arrow-left-circle\"\n className=\"button-previous\"\n onClick={handlePreviousButtonClick}\n disabled={isPreviousButtonDisabled}\n >\n {previousLabel}\n </Button>\n <Button\n appearance=\"link\"\n variant=\"primary\"\n hasIcon\n trailingIcon=\"agora-line-arrow-right-circle\"\n trailingIconHover=\"agora-line-arrow-right-circle\"\n className=\"button-next\"\n onClick={handleNextButtonClick}\n disabled={isLastButtonDisabled}\n >\n {nextLabel}\n </Button>\n </div>\n );\n };\n\n const timelineClasses = classNames(\n 'timeline-horizontal',\n {\n 'event-static': !isInteractive\n },\n props.className\n );\n\n return (\n <div>\n {isMobile ? (\n <TimelineVertical {...props} hideLabels={false}>\n {children}\n </TimelineVertical>\n ) : (\n <div {...props} className={timelineClasses}>\n <div className=\"timeline-steps\">\n {visibleEvents.map((event, index) => {\n const isFirstVisibleEvent = index + startIndex === 0;\n const isLastVisibleEvent = index + startIndex === endIndex - 1;\n\n const hasMoreEventsLeft = startIndex > 0;\n const hasMoreEventsRight = endIndex < events.length;\n\n const eventClassNames = classNames(getTimelineStepClasses(index + startIndex, activeEvent), {\n 'first-event': isFirstVisibleEvent,\n 'last-event': isLastVisibleEvent && index + startIndex === events.length - 1,\n 'has-more-events-left': hasMoreEventsLeft,\n 'has-more-events-right': hasMoreEventsRight\n });\n\n return (\n <TimelineEvent\n key={event.props.id ?? index}\n {...event.props}\n active={index + startIndex === activeEvent}\n onClick={() => handleClickEvent(index + startIndex)}\n interactive={isInteractive}\n className={eventClassNames}\n >\n {event.props.children}\n </TimelineEvent>\n );\n })}\n </div>\n {isInteractive && events.length > maxVisibleEvents && renderTimelineActions()}\n <div className=\"timeline-content\">{selectedContentEvent}</div>\n </div>\n )}\n </div>\n );\n};\n","import React, { FC } from 'react';\nimport { LinkableImagesProps } from '../models/LinkableImagesProps';\n\nconst FooterBrandBadge: FC<{\n brandImage: LinkableImagesProps;\n badgeImage?: LinkableImagesProps;\n}> = ({ brandImage, badgeImage }) => {\n return (\n <div className=\"grid items-center xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32 xs:pt-32 md:pt-64 xs:pb-32 xl:pb-64\">\n <div className=\"xs:col-span-2 md:col-span-4 xl:col-span-6\">\n {brandImage.link && brandImage.image && (\n <a\n {...brandImage.link}\n className=\"inline-block outline-none border-2 border-transparent rounded-4 focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)]\"\n >\n <img alt={brandImage.image.alt} {...brandImage.image} />\n </a>\n )}\n {!brandImage.link && brandImage.image && <img {...brandImage.image} alt={brandImage.image.alt} />}\n </div>\n <div className=\"xs:col-span-2 md:col-span-4 xl:col-span-6 justify-self-end\">\n {badgeImage?.link && badgeImage?.image && (\n <a\n {...badgeImage.link}\n className=\"inline-block outline-none border-2 border-transparent rounded-4 focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)]\"\n >\n <img alt={badgeImage.image.alt} {...badgeImage.image} />\n </a>\n )}\n {badgeImage && !badgeImage.link && badgeImage.image && <img {...badgeImage.image} alt={badgeImage.image.alt} />}\n </div>\n </div>\n );\n};\n\nexport { FooterBrandBadge };\n","import React, { FC, ReactNode } from 'react';\nimport { LinkableImagesProps } from '../models/LinkableImagesProps';\n\nconst FooterCaptionPartners: FC<{\n caption: string | ReactNode;\n partnersLogos: LinkableImagesProps[];\n}> = ({ caption, partnersLogos }) => {\n return (\n <div className=\"grid items-center xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32 py-32\">\n <div className=\"xs:col-span-4 md:col-span-4 xl:col-span-6\">\n <span className=\"text-m-regular text-[var(--color-neutral-500)]\">{caption}</span>\n </div>\n <div className=\"xs:col-span-4 md:col-span-4 xl:col-span-6 md:justify-self-end md:w-[calc(100%+32px)]\">\n <ul className=\"flex flex-wrap md:justify-end xs:gap-32 md:gap-[30px]\">\n {partnersLogos\n .filter((_i, index) => index < 10)\n .map((partner, index) => {\n const key = `logo-${index}`;\n\n return (\n <li key={key}>\n {partner?.link && partner?.image && (\n <a\n {...partner.link}\n className=\"inline-block outline-none border-2 border-transparent rounded-4 opacity-50 hover:opacity-100 focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)] focus:opacity-100\"\n >\n <img alt={partner.image.alt} {...partner.image} />\n </a>\n )}\n {!partner?.link && partner?.image && <img {...partner?.image} alt={partner?.image.alt} />}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n );\n};\n\nexport { FooterCaptionPartners };\n","import React, { AnchorHTMLAttributes, FC, ReactNode } from 'react';\n\nimport { Anchor } from '../../../atoms/anchor';\nimport { Icon } from '../../../atoms/icon';\nimport { LinkableIconsProps } from '../models/LinkableIconsProps';\n\nconst FooterSocialUsefulCopyright: FC<{\n socialsLink?: LinkableIconsProps[];\n usefulLinks?: AnchorHTMLAttributes<HTMLAnchorElement>[];\n copyright: string | ReactNode;\n}> = ({ socialsLink, usefulLinks, copyright }) => {\n return (\n <div className=\"grid items-center xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 md:gap-x-32\">\n <div className=\"xs:col-span-4 md:col-start-2 md:col-span-6 xl:col-span-4 xs:py-16 md:py-32 xl:py-64\">\n {socialsLink && (\n <ul className=\"flex md:flex-wrap xs:justify-center md:justify-start gap-x-32\">\n {socialsLink\n .filter((_i, index) => index < 10)\n .map((social, index) => {\n const key = `social-${index}`;\n return (\n <li key={key}>\n {social?.link && social?.icon && (\n <a\n {...social.link}\n className=\"group ease-in-out overflow-hidden relative flex flex-wrap justify-center content-center outline-none border-2 border-transparent rounded-4 focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)] h-56 w-56 text-white\"\n >\n <Icon\n aria-hidden\n name={social.icon}\n dimensions=\"m\"\n className=\"absolute ease-in-out translate-x-0 translate-y-2/4 opacity-100 group-hover:opacity-0 group-focus:opacity-0 group-focus:translate-x-0 group-focus:-translate-y-0 group-hover:translate-x-0 group-hover:translate-y-0 fill-white\"\n />\n <Icon\n aria-hidden\n name={social.iconHover}\n dimensions=\"m\"\n className=\"absolute ease-in-out translate-x-0 translate-y-24 opacity-0 group-hover:opacity-100 group-focus:opacity-100 group-hover:translate-x-0 group-hover:translate-y-2/4 group-focus:translate-x-0 group-focus:translate-y-2/4 fill-white\"\n />\n </a>\n )}\n {social && !social.link && social.icon && <Icon name={social.icon} alt={social.iconAlt} />}\n </li>\n );\n })}\n </ul>\n )}\n </div>\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-1 min-h-full min-w-full xl:relative\">\n {socialsLink && socialsLink.length > 0 && (copyright || (usefulLinks && usefulLinks.length > 0)) && (\n <hr className=\"border-1 border-white opacity-5 xl:h-[calc(100%-2px)] max-xl:w-full xl:bottom-0 xs:left-0 md:left-0 xl:left-1/2 absolute\" />\n )}\n </div>\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-7 xs:py-32 md:py-64\">\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-7\">\n {usefulLinks && (\n <ul className=\"flex flex-wrap xs:flex-col md:flex-row xl:flex-row md:justify-center xl:justify-end xs:gap-x-32 md:gap-[30px]\">\n {usefulLinks\n .filter((_i, index) => index < 8)\n .map((link, index) => {\n const key = `useful-${index}`;\n return (\n <li key={key} className=\"py-8\">\n <Anchor {...link} darkMode appearance=\"link\" variant=\"neutral\" />\n </li>\n );\n })}\n </ul>\n )}\n </div>\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-7 mt-32\">\n <span className=\"text-s-regular text-[var(--color-neutral-500)] flex md:justify-center xl:justify-end\">{copyright}</span>\n </div>\n </div>\n </div>\n );\n};\n\nexport { FooterSocialUsefulCopyright };\n","import React, { FC } from 'react';\nimport { FooterBrandBadge } from './footer-brand-badge';\nimport { FooterCaptionPartners } from './footer-caption-partners';\nimport { FooterSocialUsefulCopyright } from './footer-social-useful-copyright';\nimport { FederatedFooterProps } from '../federated-footer';\nimport { PublicFooterProps } from '../public-footer/public-footer';\n\nconst MainFooter: FC<FederatedFooterProps | PublicFooterProps> = ({\n brandImage,\n badgeImage,\n caption,\n partnersLogos,\n socialsLink,\n usefulLinks,\n copyright\n}) => {\n return (\n <div className=\"bg-[var(--color-primary-900)]\">\n <div className=\"container mx-auto\">\n <FooterBrandBadge brandImage={brandImage} badgeImage={badgeImage} />\n\n <hr className=\"border-1 border-white opacity-5 w-full absolute left-0\" />\n\n <FooterCaptionPartners caption={caption} partnersLogos={partnersLogos} />\n\n <hr className=\"border-1 border-white opacity-5 w-full absolute left-0\" />\n\n <FooterSocialUsefulCopyright socialsLink={socialsLink} usefulLinks={usefulLinks} copyright={copyright} />\n </div>\n </div>\n );\n};\n\nexport { MainFooter };\n","import React, { FC } from 'react';\nimport { AgoraIllustrateBookmark } from '../../../../assets/agora-illustrate-bookmark';\nimport { Anchor } from '../../../atoms/anchor';\nimport { CardFooterProps } from '../models/CardFooterProps';\n\nconst FederatedFooterCard: FC<CardFooterProps> = ({ title, description, links }) => {\n return (\n <div className=\"footer-gradient\">\n <div className=\"container mx-auto\">\n <div className=\"grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32\">\n <div className=\"col-span-5 w-[calc(100%+32px)] bg-[var(--color-primary-900)] h-128 self-end xs:hidden md:hidden xl:block\" />\n <div className=\"grid gap-x-32 xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-7 xs:col-span-4 md:col-span-8 xl:col-span-7 xl:col-start-6 xs:pb-32 md:pb-64 xl:pb-64 bg-[var(--color-primary-100)]\">\n <div className=\"xs:col-span-4 md:col-span-6 xl:col-start-2 xl:col-span-7\">\n <AgoraIllustrateBookmark aria-hidden className=\"mb-32\" />\n {title && <h2 className=\"xs:text-m-bold md:text-l-bold text-[var(--color-primary-900)]\">{title}</h2>}\n {description && <p className=\"text-m-regular text-[var(--color-primary-900)] mt-16\">{description}</p>}\n </div>\n {links && (\n <ul className=\"grid xs:grid-cols-1 md:grid-cols-3-auto xs:gap-0 md:gap-[28px] xs:col-span-4 md:col-span-8 xl:col-start-2 xl:col-span-7 mt-32\">\n {links\n .filter((_i, index) => index < 3)\n .map((link, index) => {\n const key = `link-${index}`;\n return (\n <li key={key}>\n <Anchor\n {...link}\n className=\"xs:flex xs:justify-between\"\n appearance=\"link\"\n variant=\"primary\"\n hasIcon\n trailingIcon=\"agora-line-arrow-right-circle\"\n trailingIconHover=\"agora-solid-arrow-right-circle\"\n />\n </li>\n );\n })}\n </ul>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport { FederatedFooterCard };\n","import React, { AnchorHTMLAttributes, FC, ReactNode } from 'react';\nimport { CardFooterProps } from '../models/CardFooterProps';\nimport { LinkableIconsProps } from '../models/LinkableIconsProps';\nimport { LinkableImagesProps } from '../models/LinkableImagesProps';\nimport { MainFooter } from '../shared-components/footer-main';\nimport { FederatedFooterCard } from './federated-footer-card';\nimport './federated-footer.scss';\n\nexport interface FederatedFooterProps {\n /**\n * Informative card. Links limited to first 3, remaining array is discarded.\n */\n card?: CardFooterProps;\n\n /**\n * Image on left side with/without link.\n */\n brandImage: LinkableImagesProps;\n\n /**\n * Image on right side with/without link.\n */\n badgeImage?: LinkableImagesProps;\n\n /**\n * Small descriptive text\n */\n caption: string | ReactNode;\n\n /**\n * List of images with or without link. Links limited to first 10, remaining array is discarded.\n */\n partnersLogos: LinkableImagesProps[];\n\n /**\n * List of icons with/without link. Links limited to first 10, remaining array is discarded.\n */\n socialsLink?: LinkableIconsProps[];\n\n /**\n * List of links. Links limited to first 8, remaining array is discarded.\n */\n usefulLinks?: AnchorHTMLAttributes<HTMLAnchorElement>[];\n\n /*\n * Copyright text\n */\n copyright: string;\n}\n\nconst FederatedFooter: FC<FederatedFooterProps> = ({\n card,\n brandImage,\n badgeImage,\n caption,\n partnersLogos,\n socialsLink,\n usefulLinks,\n copyright\n}) => {\n return (\n <div className=\"agora-footer\">\n {card && <FederatedFooterCard {...card} />}\n <MainFooter\n brandImage={brandImage}\n badgeImage={badgeImage}\n caption={caption}\n partnersLogos={partnersLogos}\n socialsLink={socialsLink}\n usefulLinks={usefulLinks}\n copyright={copyright}\n />\n </div>\n );\n};\n\nexport { FederatedFooter };\n","import classNames from 'classnames';\nimport React, { FC } from 'react';\nimport { ContactsFooterProps } from '../models/ContactsFooterProps';\n\nconst PublicFooterContacts: FC<{ contacts: ContactsFooterProps[]; contactsOnly: boolean; hasCardLinks: boolean }> = ({\n contacts,\n contactsOnly,\n hasCardLinks\n}) => {\n const contactsClassName = classNames('grid gap-x-32 xs:gap-y-32 md:gap-y-64 md:content-center', {\n 'xs:pt-32 md:pt-32 xl:pt-64': contactsOnly,\n 'xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-6 xs:col-span-4 md:col-span-8 xl:col-span-6': !hasCardLinks,\n 'xs:grid-cols-4 md:grid-cols-4 xl:grid-cols-6 xs:col-span-4 md:col-span-4 xl:col-span-6': !contactsOnly && hasCardLinks\n });\n return (\n <div className={contactsClassName}>\n {contacts\n ?.filter((_i, index) => index < 2)\n .map((contact, index) => {\n const key = `contacts-${index}`;\n return (\n <div key={key} className=\"xs:col-span-4 md:col-span-4 xl:col-span-3\">\n <div className=\"text-m-bold text-[var(--color-primary-900)] mb-8\">{contact.title}</div>\n <div className=\"text-m-regular text-[var(--color-primary-900)]\">{contact.description}</div>\n {contact.phones && (\n <div>\n {contact.phones[0] && <span className=\"text-l-bold text-[var(--color-primary-900)]\">{contact.phones[0]}</span>}\n {contact.phones[1] && <span className=\"text-m-regular text-[var(--color-primary-900)]\">{` ${contact.phones[1]} `}</span>}\n {contact.phones[2] && <span className=\"text-l-bold text-[var(--color-primary-900)]\">{contact.phones[2]}</span>}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport { PublicFooterContacts };\n","import classNames from 'classnames';\nimport React, { FC } from 'react';\nimport { Anchor } from '../../../atoms/anchor';\n\nimport { AgoraIllustrateBookmark } from '../../../../assets/agora-illustrate-bookmark';\nimport { CardFooterProps } from '../models';\nimport { ContactsFooterProps } from '../models/ContactsFooterProps';\nimport { PublicFooterContacts } from './public-footer-contacts';\n\nconst PublicFooterHighlightCard: FC<{ card?: CardFooterProps; contacts?: ContactsFooterProps[]; hasCardLinks: boolean }> = ({\n card,\n contacts,\n hasCardLinks\n}) => {\n const cardClassName = classNames(\n 'grid gap-x-32 xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-8 xs:col-span-4 md:col-span-8 xl:col-span-8 xl:row-span-1 bg-[var(--color-primary-100)] pb-32 relative',\n {\n 'pb-64': !contacts\n }\n );\n\n const cardHelpClassName = classNames('z-[1]', {\n 'xs:col-span-4 md:col-span-6 xl:col-span-6': hasCardLinks,\n 'xs:col-span-4 md:col-span-8 xl:col-span-6': !hasCardLinks\n });\n\n const contactsClassName = classNames('grid gap-x-32 xl:row-span-1 bg-[var(--color-primary-100)]', {\n 'xs:grid-cols-4 md:grid-cols-4 xl:grid-cols-8 xs:col-span-4 md:col-span-4 xl:col-span-8 xs:pb-32 md:pb-64 xl:pb-64':\n card && hasCardLinks && contacts,\n 'xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-8 xs:col-span-4 md:col-span-8 xl:col-span-8 xs:pb-32 md:pb-64 xl:pb-64':\n card && !hasCardLinks && contacts,\n 'xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-8 xs:col-span-4 md:col-span-8 xl:col-span-8 xs:pb-32 md:pb-32 xl:pb-64 ':\n !card && !hasCardLinks && contacts\n });\n return (\n <>\n {card && (\n <div className={cardClassName}>\n {hasCardLinks && (\n <div\n aria-hidden\n className=\"xl:hidden absolute left-0 xs:w-[calc(100%+32px)] md:w-[calc(100%+64px)] xl:w-[calc(100%+64px)] h-full bg-[var(--color-primary-100)] z-0\"\n />\n )}\n <div className={cardHelpClassName}>\n <AgoraIllustrateBookmark aria-hidden className=\"mb-32\" />\n {card?.title && <h2 className=\"xs:text-m-bold md:text-l-bold text-[var(--color-primary-900)]\">{card.title}</h2>}\n {card?.description && <p className=\"text-m-regular text-[var(--color-primary-900)] mt-16\">{card.description}</p>}\n </div>\n {card.links && (\n <ul className=\"xs:col-span-4 md:col-span-8 xl:col-span-6 mt-32 inline-flex gap-x-32 xs:flex-col md:flex-row xl:flex-row\">\n {card.links\n .filter((_i, index) => index < 3)\n .map((link, index) => {\n const key = `link-${index}`;\n return (\n <li key={key} className=\"py-8\">\n <Anchor\n {...link}\n className=\"xs:flex xs:justify-between\"\n appearance=\"link\"\n variant=\"primary\"\n hasIcon\n trailingIcon=\"agora-line-arrow-right-circle\"\n trailingIconHover=\"agora-solid-arrow-right-circle\"\n />\n </li>\n );\n })}\n </ul>\n )}\n </div>\n )}\n {contacts && (\n <div className={contactsClassName}>\n {contacts && <PublicFooterContacts contacts={contacts} contactsOnly={!card && !hasCardLinks} hasCardLinks={hasCardLinks} />}\n </div>\n )}\n </>\n );\n};\n\nexport { PublicFooterHighlightCard };\n","import React, { FC } from 'react';\nimport { Anchor } from '../../../atoms/anchor';\nimport { CardFooterProps } from '../models';\n\nconst PublicFooterHighlightCardLinks: FC<CardFooterProps> = (cardLinks) => {\n return (\n <>\n {cardLinks?.title && <h2 className=\"xs:text-m-bold md:text-l-bold text-white\">{cardLinks.title}</h2>}\n {cardLinks?.links && (\n <ul className=\"mt-32\">\n {cardLinks.links\n .filter((_i, index) => index < 5)\n .map((link, index) => {\n const key = `link-${index}`;\n return (\n <li key={key} className=\"py-8\">\n <Anchor {...link} darkMode appearance=\"link\" variant=\"neutral\" />\n </li>\n );\n })}\n </ul>\n )}\n </>\n );\n};\n\nexport { PublicFooterHighlightCardLinks };\n","import classNames from 'classnames';\nimport React, { FC } from 'react';\nimport { CardFooterProps } from '../models/CardFooterProps';\nimport { CardLinksFooterProps } from '../models/CardLinksFooterProps';\nimport { ContactsFooterProps } from '../models/ContactsFooterProps';\nimport { PublicFooterHighlightCard } from './public-footer-highlight-card';\nimport { PublicFooterHighlightCardLinks } from './public-footer-highlight-card-links';\n\nconst PublicFooterHighlight: FC<{ card?: CardFooterProps; cardLinks?: CardLinksFooterProps; contacts?: ContactsFooterProps[] }> = ({\n card,\n cardLinks,\n contacts\n}) => {\n const footerHighlightClassName = classNames('footer-highlight', {\n 'footer-highlight-only-card': card && contacts && !cardLinks,\n 'footer-highlight-only-help': card && !contacts && !cardLinks,\n 'footer-highlight-only-contacts': !card && contacts && !cardLinks\n });\n\n const cardFooterClassName = classNames('grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-x-32 xl:grid-rows-1', {\n 'xl:grid-flow-col': card && cardLinks,\n 'xl:grid-flow-row': card && !cardLinks\n });\n return (\n <div className={footerHighlightClassName}>\n <div className=\"container mx-auto\">\n <div className={cardFooterClassName}>\n <PublicFooterHighlightCard card={card} contacts={contacts} hasCardLinks={!!cardLinks} />\n {cardLinks && (\n <div className=\"grid gap-x-32 xs:grid-cols-4 md:grid-cols-4 xl-grid-cols-4 xs:col-span-4 md:col-span-4 xl:col-span-4 xl:row-span-2 bg-[var(--color-primary-900)] relative\">\n <div\n aria-hidden\n className=\"md:hidden xl:hidden absolute w-[calc(100%+64px)] -left-[32px] h-full bg-[var(--color-primary-900)] z-0\"\n />\n <div className=\"xs:col-span-4 md:col-span-4 xl:col-span-4 xs:py-32 xs:pl-0 md:py-64 md:pl-64 xl:py-64 xl:pl-64 z-[1]\">\n <PublicFooterHighlightCardLinks {...cardLinks} />\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport { PublicFooterHighlight };\n","import React, { AnchorHTMLAttributes, FC, ReactNode } from 'react';\nimport { CardLinksFooterProps } from '../models/CardLinksFooterProps';\nimport { LinkableIconsProps } from '../models/LinkableIconsProps';\nimport { LinkableImagesProps } from '../models/LinkableImagesProps';\nimport { FooterSocialUsefulCopyright } from '../shared-components/footer-social-useful-copyright';\nimport { PublicFooterHighlightCardLinks } from './public-footer-highlight-card-links';\n\nconst PublicFooterMainPlusCardLinks: FC<{\n brandImage: LinkableImagesProps;\n badgeImage?: LinkableImagesProps;\n caption: string | ReactNode;\n partnersLogos: LinkableImagesProps[];\n socialsLink?: LinkableIconsProps[];\n usefulLinks?: AnchorHTMLAttributes<HTMLAnchorElement>[];\n copyright: string | ReactNode;\n cardLinks: CardLinksFooterProps;\n}> = ({ brandImage, badgeImage, caption, partnersLogos, socialsLink, usefulLinks, copyright, cardLinks }) => {\n return (\n <div className=\"bg-[var(--color-primary-900)]\">\n <div className=\"container mx-auto\">\n <div className=\"grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32\">\n <div className=\"xs:col-span-4 md:col-span-3 xl:col-span-6 xs:pt-32 md:pt-64\">\n <div className=\"mb-32\">\n {brandImage.link && brandImage.image && (\n <a\n {...brandImage.link}\n className=\"inline-block border-2 border-transparent rounded-4 outline-none focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)]\"\n >\n <img alt={brandImage.image.alt} {...brandImage.image} />\n </a>\n )}\n {!brandImage.link && brandImage.image && <img {...brandImage.image} alt={brandImage.image.alt} />}\n </div>\n <div className=\"mb-64\">\n <span className=\"text-m-regular text-[var(--color-neutral-500)]\">{caption}</span>\n </div>\n <div>\n {badgeImage?.link && badgeImage?.image && (\n <a\n {...badgeImage.link}\n className=\"inline-block border-2 border-transparent rounded-4 outline-none focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)]\"\n >\n <img alt={badgeImage.image.alt} {...badgeImage.image} />\n </a>\n )}\n {badgeImage && !badgeImage.link && badgeImage.image && <img {...badgeImage.image} alt={badgeImage.image.alt} />}\n </div>\n </div>\n <div className=\"xs:col-span-4 md:col-span-1 xl:col-span-1 min-h-full min-w-full md:relative xl:relative\">\n <hr className=\"border-1 border-white opacity-5 md:h-[calc(100%-2px)] xl:h-[calc(100%-2px)] max-md:w-full md:bottom-0 right-0 absolute\" />\n </div>\n <div className=\"xs:col-span-4 md:col-span-4 xl:col-span-4 xs:pt-32 md:pt-64\">\n <div className=\"xs:col-span-4 md:col-span-4 xl:col-span-4 xs:py-32 xs:pl-0 md:pt-0 md:pb-64 md:pl-0 xl:pl-32 xl:pb-64 xl:pt-0\">\n <PublicFooterHighlightCardLinks {...cardLinks} />\n </div>\n </div>\n </div>\n\n <hr className=\"border-1 border-white opacity-5 w-full absolute left-0\" />\n <div className=\"grid xs:justify-items-center md:justify-items-center xl:justify-items-start xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32 py-32\">\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-12\">\n <ul className=\"flex flex-wrap xs:gap-32 md:gap-[30px]\">\n {partnersLogos\n .filter((_i, index) => index < 10)\n .map((partner, index) => {\n const key = `logo-${index}`;\n\n return (\n <li key={key}>\n {partner?.link && partner?.image && (\n <a\n {...partner.link}\n className=\"inline-block outline-none border-2 border-transparent rounded-4 opacity-50 focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)] focus:opacity-100 hover:opacity-100\"\n >\n <img alt={partner.image.alt} {...partner.image} />\n </a>\n )}\n {!partner?.link && partner?.image && <img {...partner?.image} alt={partner?.image.alt} />}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n <hr className=\"border-1 border-white opacity-5 w-full absolute left-0\" />\n\n <FooterSocialUsefulCopyright socialsLink={socialsLink} usefulLinks={usefulLinks} copyright={copyright} />\n </div>\n </div>\n );\n};\n\nexport { PublicFooterMainPlusCardLinks };\n","import React, { AnchorHTMLAttributes, FC, ReactNode } from 'react';\nimport { CardFooterProps } from '../models/CardFooterProps';\nimport { CardLinksFooterProps } from '../models/CardLinksFooterProps';\nimport { ContactsFooterProps } from '../models/ContactsFooterProps';\nimport { LinkableIconsProps } from '../models/LinkableIconsProps';\nimport { LinkableImagesProps } from '../models/LinkableImagesProps';\nimport { MainFooter } from '../shared-components/footer-main';\nimport { PublicFooterHighlight } from './public-footer-highlight';\nimport { PublicFooterMainPlusCardLinks } from './public-footer-main-plus-card-links';\nimport './public-footer.scss';\n\nexport interface PublicFooterProps {\n /**\n * Informative card. Links limited to first 3, remaining array is discarded.\n */\n card?: CardFooterProps;\n\n /**\n * Contacts limited to first 2, remaining array is discarded.\n */\n contacts?: ContactsFooterProps[];\n\n /*\n * Informative list of links. Links limited to first 5, remaining array is discarded.\n */\n cardLinks?: CardLinksFooterProps;\n\n /**\n * Image on left side with/without link.\n */\n brandImage: LinkableImagesProps;\n\n /**\n * Image on right side with/without link.\n */\n badgeImage?: LinkableImagesProps;\n\n /**\n * Small descriptive text\n */\n caption: string | ReactNode;\n\n /**\n * List of images with or without link. Links limited to first 10, remaining array is discarded.\n */\n partnersLogos: LinkableImagesProps[];\n\n /**\n * List of icons with/without link. Links limited to first 10, remaining array is discarded.\n */\n socialsLink?: LinkableIconsProps[];\n\n /**\n * List of links. Links limited to first 8, remaining array is discarded.\n */\n usefulLinks?: AnchorHTMLAttributes<HTMLAnchorElement>[];\n\n /*\n * Copyright text\n */\n copyright: string | ReactNode;\n}\n\nconst PublicFooter: FC<PublicFooterProps> = ({\n card,\n contacts,\n cardLinks,\n brandImage,\n badgeImage,\n caption,\n partnersLogos,\n socialsLink,\n usefulLinks,\n copyright\n}) => {\n return (\n <div className=\"agora-footer\">\n {(card || contacts || !cardLinks) && (\n <>\n <PublicFooterHighlight card={card} cardLinks={cardLinks} contacts={contacts} />\n {(card || cardLinks || contacts) && (\n <hr className=\"border-1 xs:border-white md:border-transparent xl:border-transparent opacity-5 w-full absolute left-0\" />\n )}\n <MainFooter\n brandImage={brandImage}\n badgeImage={badgeImage}\n caption={caption}\n partnersLogos={partnersLogos}\n socialsLink={socialsLink}\n usefulLinks={usefulLinks}\n copyright={copyright}\n />\n </>\n )}\n {!card && cardLinks && (\n <PublicFooterMainPlusCardLinks\n cardLinks={cardLinks}\n brandImage={brandImage}\n badgeImage={badgeImage}\n caption={caption}\n partnersLogos={partnersLogos}\n socialsLink={socialsLink}\n usefulLinks={usefulLinks}\n copyright={copyright}\n />\n )}\n </div>\n );\n};\n\nexport { PublicFooter };\n","import { stringToBoolean } from '../../../../utils';\n\nconst menuClick = (el: Element) => {\n const menuItem = el.previousSibling as HTMLButtonElement;\n if (menuItem.ariaExpanded && stringToBoolean(menuItem.ariaExpanded)) {\n menuItem.click();\n }\n};\n\nconst checkElmNotCurrentBurgerMenu = (el: Element, navigationBurger: HTMLCollectionOf<Element>) => {\n if (el !== navigationBurger[0]) {\n el.classList.add('hidden');\n }\n menuClick(el);\n if (\n el.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('agora-header-burger-navigation-options-menu') &&\n !el.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('hidden')\n ) {\n el.parentElement?.parentElement?.parentElement?.parentElement?.classList.add('hidden');\n navigationBurger[0].classList.remove('hidden');\n navigationBurger[0]?.querySelectorAll('.agora-menu-item').forEach((element: Element) => {\n element.classList.remove('!hidden');\n });\n return;\n }\n if (!el.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('hidden')) {\n el.parentElement?.parentElement?.parentElement?.classList.add('hidden');\n navigationBurger[0]?.querySelectorAll('.agora-menu-item').forEach((element: Element) => {\n element.classList.remove('!hidden');\n });\n }\n};\nconst checkElmNotCurrentBurgerSubmenu = (el: Element) => {\n el.classList.remove('hidden');\n const menuItem = el.previousElementSibling as HTMLButtonElement;\n if (menuItem.ariaExpanded && !stringToBoolean(menuItem.ariaExpanded)) {\n menuItem.click();\n }\n};\nconst checkElmNotCurrentBurgerSubmenuLevel2 = (el: Element, navigationBurger: HTMLCollectionOf<Element>) => {\n navigationBurger[0].classList.remove('hidden');\n el?.querySelectorAll('.agora-header-burger-navigation-options-submenu-level-2 .agora-menu-item').forEach((element: Element) => {\n element.classList.remove('!hidden');\n });\n};\n\nconst checkElmNotCurrentNotCBurgerNotSubmenu = (\n el: Element,\n navigationBurger: HTMLCollectionOf<Element>,\n navigationBurgerLevel2: HTMLCollectionOf<Element>\n) => {\n const menuItem = el.previousSibling as HTMLButtonElement;\n if (menuItem.classList.contains('agora-burger')) {\n navigationBurger[0].classList.add('hidden');\n navigationBurger[0]?.querySelectorAll('.agora-menu-item').forEach((element: Element) => {\n element.classList.remove('!hidden');\n });\n [...navigationBurgerLevel2].forEach((nbl2) => nbl2.classList.add('hidden'));\n } else {\n el.classList.add('hidden');\n }\n menuClick(el);\n};\n\nconst checkElmNotCurrentNoChildren = (\n el: Element,\n navigationBurger: HTMLCollectionOf<Element>,\n currentSubmenu: HTMLDivElement | HTMLButtonElement\n) => {\n currentSubmenu.classList.remove('hidden');\n menuClick(el);\n navigationBurger[0].classList.add('hidden');\n navigationBurger[0]?.querySelectorAll('.agora-menu-item').forEach((element: Element) => {\n element.classList.remove('!hidden');\n });\n};\n\nconst checkSubmenuItemsVisible = (navigationBurgerSubmenu: HTMLCollectionOf<Element>, navigationBurger: HTMLCollectionOf<Element>) => {\n Array.from(navigationBurgerSubmenu).forEach((nbs) => {\n if (!nbs.classList.contains('hidden')) {\n nbs.classList.add('hidden');\n navigationBurger[0]?.querySelectorAll('.agora-menu-item').forEach((element: Element) => {\n element.classList.remove('!hidden');\n if (element.hasAttribute('aria-expanded')) {\n (element as HTMLElement).click();\n }\n });\n }\n });\n};\n\nconst handleCloseBurgerMenu = (\n el: Element,\n currentSubmenu: HTMLDivElement | HTMLButtonElement,\n generalSubmenus: HTMLCollectionOf<Element>,\n navigationBurger: HTMLCollectionOf<Element>,\n navigationBurgerSubmenu: HTMLCollectionOf<Element>,\n navigationBurgerLevel2: HTMLCollectionOf<Element>,\n navigationBurgerSubmenuLevel3: HTMLCollectionOf<Element>\n) => {\n if (!el.classList.contains('hidden') && el !== currentSubmenu && Array.from(generalSubmenus).find((gs) => gs === currentSubmenu)) {\n el.classList.add('hidden');\n menuClick(el);\n return;\n }\n // Find current is on burger submenu\n const bsSubmenu = Array.from(navigationBurgerSubmenu).find((bs) => bs === currentSubmenu);\n // If element is visible, not equal to current and current is burger menu\n if (el.classList.contains('hidden') === false && el !== currentSubmenu && [...navigationBurger].includes(currentSubmenu)) {\n checkElmNotCurrentBurgerMenu(el, navigationBurger);\n }\n // If element is visible, not equal to current and current is burger submenu\n else if (el.classList.contains('hidden') === false && el !== currentSubmenu && [...navigationBurgerSubmenu].includes(currentSubmenu)) {\n checkElmNotCurrentBurgerSubmenu(el);\n }\n // If element is visible, not equal to current and current is burger submenu level 2\n else if (el.classList.contains('hidden') === false && el !== currentSubmenu && [...navigationBurgerLevel2].includes(currentSubmenu)) {\n checkElmNotCurrentBurgerSubmenuLevel2(el, navigationBurger);\n }\n // If element is visible, not equal to current, current not equal to burger menu / burger submenu level 2 / burger submenu level 3 and current not on burger submenu\n else if (\n el.classList.contains('hidden') === false &&\n el !== currentSubmenu &&\n ![...navigationBurger].includes(currentSubmenu) &&\n ![...navigationBurgerLevel2].includes(currentSubmenu) &&\n ![...navigationBurgerSubmenuLevel3].includes(currentSubmenu) &&\n bsSubmenu === undefined\n ) {\n checkElmNotCurrentNotCBurgerNotSubmenu(el, navigationBurger, navigationBurgerLevel2);\n }\n // If element is visible, not equal to current and current not has child\n else if (el.classList.contains('hidden') === false && el !== currentSubmenu && !currentSubmenu.hasChildNodes()) {\n checkElmNotCurrentNoChildren(el, navigationBurger, currentSubmenu);\n return;\n }\n\n //else burger submenu has items visible and not enter other conditions\n else {\n checkSubmenuItemsVisible(navigationBurgerSubmenu, navigationBurger);\n }\n};\n\nexport const closeOtherSubmenus = (currentSubmenu: HTMLDivElement | HTMLButtonElement) => {\n const generalSubmenus = document.getElementsByClassName('agora-header-general-options-menu');\n const navigationSubmenus = document.getElementsByClassName('agora-header-navigation-options-menu');\n const navBurger = document.getElementsByClassName('agora-header-burger-navigation');\n const navigationBurger = document.getElementsByClassName('agora-header-burger-navigation-options-menu');\n const navigationBurgerSubmenu = document.getElementsByClassName('agora-header-burger-navigation-options-submenu');\n const navigationBurgerLevel2 = document.getElementsByClassName('agora-header-burger-navigation-options-submenu-level-2');\n const navigationBurgerSubmenuLevel3 = document.getElementsByClassName('agora-header-burger-navigation-options-submenu-level-3');\n\n [...generalSubmenus, ...navigationSubmenus, ...navigationBurger, ...navigationBurgerLevel2, ...navigationBurgerSubmenuLevel3].forEach(\n (el: Element) => {\n // If not burger menu visible\n if (\n navBurger.length > 0 &&\n navBurger[0].hasAttribute('hidden') &&\n el.classList.contains('hidden') === false &&\n el !== currentSubmenu\n ) {\n el.classList.add('hidden');\n menuClick(el);\n } else {\n handleCloseBurgerMenu(\n el,\n currentSubmenu,\n generalSubmenus,\n navigationBurger,\n navigationBurgerSubmenu,\n navigationBurgerLevel2,\n navigationBurgerSubmenuLevel3\n );\n }\n }\n );\n};\n","import { MouseEvent as ReactMouseEvent, RefObject } from 'react';\nimport { closeOtherSubmenus } from './close-other-menu';\nimport { DrawerRef } from '../../../atoms/drawer';\nimport { DrawerContentProps } from '../models';\n\nexport const handleClickMenuItem = (\n evt: ReactMouseEvent<HTMLButtonElement>,\n setBackdropVisible: (val: boolean) => void,\n val?: DrawerContentProps | null | undefined,\n refDrawer?: RefObject<DrawerRef>,\n setDrawerContent?: (val: DrawerContentProps | null | undefined) => void\n) => {\n const current = evt.currentTarget as HTMLButtonElement;\n const submenu = current.nextElementSibling as HTMLDivElement;\n const avatarMenu = current.classList.contains('avatar');\n\n if (submenu) {\n closeOtherSubmenus(submenu);\n if (submenu.classList.contains('hidden')) {\n setBackdropVisible(true);\n submenu.classList.remove('hidden');\n document.body.classList.add('overflow-hidden');\n } else {\n setBackdropVisible(false);\n submenu.classList.add('hidden');\n document.body.classList.remove('overflow-hidden');\n }\n return;\n }\n\n document.body.classList.remove('overflow-hidden');\n closeOtherSubmenus(submenu);\n setBackdropVisible(false);\n\n if (avatarMenu) {\n if (refDrawer?.current && setDrawerContent) {\n setDrawerContent(val);\n refDrawer.current.openDrawer();\n document.body.classList.add('overflow-hidden');\n }\n }\n};\n","import classNames from 'classnames';\nimport React, { CSSProperties, FC, MouseEvent } from 'react';\nimport { stringToBoolean } from '../../../../../utils';\nimport { Anchor, AnchorAppearance, AnchorProps, AnchorVariant } from '../../../../atoms/anchor';\nimport { Button, ButtonAppearance, ButtonProps, ButtonVariant } from '../../../../atoms/button';\nimport { HeaderMenuOptionsProps } from './header-menu-item-options';\nimport './header-menu-item-options-links.scss';\n\nexport const HeaderMenuItemOptionsLinks: FC<HeaderMenuOptionsProps & { className?: string; style?: CSSProperties }> = ({\n submenu,\n closeOtherMenuItemOpened,\n setBackdropVisible,\n onClick,\n className,\n style\n}) => {\n const options = stringToBoolean(submenu.actionItem) ? (submenu.submenuItems as ButtonProps[]) : (submenu.submenuItems as AnchorProps[]);\n\n const containerClassName = classNames('container mx-auto', {\n 'py-32': submenu.submenuType !== 'topics',\n 'pt-64 pb-32': submenu.submenuType === 'topics',\n 'flex flex-col items-start':\n submenu.submenuType === 'link' && (submenu.submenuAlignment === 'start' || submenu.submenuAlignment === undefined),\n 'flex flex-col items-end': submenu.submenuType === 'link' && submenu.submenuAlignment === 'end'\n });\n\n const ulClassName = classNames({\n 'grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32': submenu.submenuType === 'language' || submenu.submenuType === 'platform',\n 'grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-x-32 gap-y-16': submenu.submenuType === 'topics',\n 'xs:w-full md:w-auto xl:w-auto gap-x-32 gap-y-16 flex xs:flex-col md:flex-row xl:flex-row flex-wrap': submenu.submenuType === 'link'\n });\n\n const liClassName = classNames({\n 'h-full xs:col-span-4 md:col-span-4 xl:col-span-3 !mb-0': submenu.submenuType === 'language' || submenu.submenuType === 'platform',\n 'xs:col-span-4 md:col-span-4 xl:col-span-3': submenu.submenuType === 'topics'\n });\n\n return (\n <div className={containerClassName}>\n {stringToBoolean(submenu.hasBackButton) && submenu.backButtonLabel && (\n <Button\n variant=\"neutral\"\n appearance=\"link\"\n hasIcon\n leadingIcon=\"agora-line-arrow-left-anchor\"\n leadingIconHover=\"agora-solid-arrow-left-anchor\"\n className=\"xs:mx-32 md:mx-64 xl:mx-0 mb-32\"\n onClick={submenu.handleBackButton}\n >\n {submenu.backButtonLabel}\n </Button>\n )}\n <div className={className} style={style}>\n {stringToBoolean(submenu.hasSubmenuItemsSectionTitle) && submenu.submenuItemsSectionTitle && (\n <p className=\"text-m-semibold text-[var(--color-neutral-500)] mb-32\">{submenu.submenuItemsSectionTitle}</p>\n )}\n {stringToBoolean(submenu.hasSubmenuItemsTitle) && submenu.submenuItemsTitle && (\n <h2 className=\"text-xl-bold text-[var(--color-primary-900)] mb-32\">{submenu.submenuItemsTitle}</h2>\n )}\n <ul className={ulClassName} role=\"menu\" aria-label={submenu.submenuAriaLabel}>\n {options.map((element, index) => {\n const key = `menu-options-nav-${index}`;\n const optionClasseName = classNames(\n 'min-h-[60px]',\n {\n 'agora-rounded-leading-icon full-image !py-[6px] !min-h-[44px] language': submenu.submenuType === 'language',\n 'agora-rounded-leading-icon small-image platform': submenu.submenuType === 'platform',\n 'link xs:w-full md:w-auto xl:w-auto xs:[&>.children-wrapper]:mr-auto md:[&>.children-wrapper]:mr-0 xl:[&>.children-wrapper]:mr-0':\n submenu.submenuType === 'link',\n 'topics xs:w-full md:w-auto xl:w-auto xs:[&>.children-wrapper]:mr-auto md:[&>.children-wrapper]:mr-0 xl:[&>.children-wrapper]:mr-0':\n submenu.submenuType === 'topics'\n },\n element.className\n );\n const getTrailingIcon = () => {\n if (submenu.submenuType === 'language') {\n return 'agora-line-check';\n }\n return undefined;\n };\n\n const getTrailingIconHover = () => {\n if (submenu.submenuType === 'language') {\n return 'agora-solid-check';\n }\n return undefined;\n };\n\n const handleClick = (evt: MouseEvent<any>) => {\n closeOtherMenuItemOpened(evt.currentTarget as unknown as HTMLDivElement);\n setBackdropVisible(false);\n document.body.classList.remove('overflow-hidden');\n onClick?.(evt);\n element.onClick?.(evt);\n };\n\n const defaultVariant = submenu.submenuType === 'topics' ? 'primary' : 'neutral';\n return (\n <li key={key} className={liClassName} role=\"none\">\n {stringToBoolean(submenu.actionItem) ? (\n <Button\n appearance={(element.appearance as ButtonAppearance) ?? 'link'}\n variant={(element.variant as ButtonVariant) ?? defaultVariant}\n hasIcon={element.hasIcon ?? true}\n trailingIcon={element.trailingIcon ?? getTrailingIcon()}\n trailingIconHover={element.trailingIconHover ?? getTrailingIconHover()}\n role=\"menuitem\"\n {...(element as ButtonProps)}\n className={optionClasseName}\n onClick={handleClick}\n />\n ) : (\n <Anchor\n appearance={(element.appearance as AnchorAppearance) ?? 'link'}\n variant={(element.variant as AnchorVariant) ?? defaultVariant}\n hasIcon={element.hasIcon ?? true}\n trailingIcon={element.trailingIcon ?? getTrailingIcon()}\n trailingIconHover={element.trailingIconHover ?? getTrailingIconHover()}\n role=\"menuitem\"\n {...(element as AnchorProps)}\n className={optionClasseName}\n onClick={handleClick}\n />\n )}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { Anchor } from '../../../../atoms/anchor';\nimport { InputSearchBar } from '../../../../atoms/input-search-bar';\nimport { List } from '../../../../atoms/list';\nimport { SubmenuSearchContentProps } from '../../models';\n\nexport const HeaderMenuItemOptionsSearch = (submenuSearchContent: SubmenuSearchContentProps) => {\n return (\n <div className=\"grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-x-32 gap-y-64\">\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-start-1 xl:col-end-7\">\n {submenuSearchContent.hasTitle && submenuSearchContent.title && (\n <p className=\"xs:text-l-bold md:text-xl-bold xl:text-xl-bold text-[var(--color-primary-900)] mb-32\">\n {submenuSearchContent.title}\n </p>\n )}\n <p className=\"xs:text-m-bold md:text-l-bold xl:text-l-bold text-[var(--color-primary-900)] mb-16\">\n {submenuSearchContent.searchTitle}\n </p>\n\n {!submenuSearchContent.inputSearchBarPlaceholder && submenuSearchContent.inputSearchBar && (\n <InputSearchBar {...submenuSearchContent.inputSearchBar} />\n )}\n\n {!submenuSearchContent.inputSearchBar && submenuSearchContent.inputSearchBarPlaceholder}\n </div>\n {submenuSearchContent.hasLinkList && submenuSearchContent.linkListContent?.linkList && (\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-start-8 xl:col-end-13\">\n <p className=\"xs:text-m-bold md:text-l-bold xl:text-l-bold text-[var(--color-primary-900)] mb-16\">\n {submenuSearchContent.linkListContent?.linkListTitle}\n </p>\n <List className=\"xs:block md:flex xl:block gap-32 flex-wrap\">\n {submenuSearchContent.linkListContent?.linkList.map((element, index) => {\n const key = `search-content-${index}`;\n return (\n <li key={key} className=\"text-m-regular text-[var(--color-neutral-900)] mb-8 last:mb-0\">\n <Anchor {...element} appearance=\"link\" variant=\"neutral\" />\n </li>\n );\n })}\n </List>\n </div>\n )}\n </div>\n );\n};\n","import React, { FC, HTMLProps } from 'react';\nimport { SubmenuItemProps } from '../../models';\nimport { HeaderMenuItemOptionsLinks } from './header-menu-item-options-links';\nimport { HeaderMenuItemOptionsSearch } from './header-menu-item-options-search';\n\nexport interface HeaderMenuOptionsProps extends HTMLProps<HTMLButtonElement | HTMLAnchorElement | HTMLDivElement> {\n /**\n * Submenu options configuration\n */\n submenu: SubmenuItemProps;\n /**\n *\n * Function to close other menu items that are open\n */\n closeOtherMenuItemOpened: (currentSubmenu: HTMLDivElement) => void;\n\n /**\n *\n * Set state if backdrop visible or not\n */\n setBackdropVisible: (val: boolean) => void;\n}\n\nconst HeaderMenuOptions: FC<HeaderMenuOptionsProps> = ({\n submenu,\n closeOtherMenuItemOpened,\n setBackdropVisible,\n onClick,\n className,\n style\n}) => {\n if (\n ((!submenu.submenuItems || submenu.submenuItems.length === 0) && submenu.submenuType !== 'search') ||\n (!submenu.submenuSearchContent && submenu.submenuType === 'search')\n ) {\n return;\n }\n\n if (\n submenu.submenuType === 'language' ||\n submenu.submenuType === 'platform' ||\n submenu.submenuType === 'link' ||\n submenu.submenuType === 'topics'\n ) {\n return (\n <HeaderMenuItemOptionsLinks\n submenu={submenu}\n closeOtherMenuItemOpened={closeOtherMenuItemOpened}\n setBackdropVisible={setBackdropVisible}\n onClick={onClick}\n className={className}\n style={style}\n />\n );\n } else if (submenu.submenuType === 'search' && submenu.submenuSearchContent) {\n return <HeaderMenuItemOptionsSearch {...submenu.submenuSearchContent} />;\n }\n};\n\nexport { HeaderMenuOptions };\n","import classNames from 'classnames';\nimport React, { FC, MouseEvent, ReactNode, RefObject } from 'react';\nimport { BooleanProp } from '../../../../../models';\nimport { stringToBoolean } from '../../../../../utils';\nimport { Button } from '../../../../atoms/button';\nimport { MenuItem, MenuItemRef } from '../../../../molecules/menu-item';\nimport { MenuProps, SubmenuItemProps } from '../../models';\nimport { closeOtherSubmenus } from '../../utils/close-other-menu';\nimport { handleClickMenuItem } from '../../utils/handle-click-menu-item';\nimport { HeaderMenuOptions } from '../header-menu-item-options/header-menu-item-options';\n\nconst HeaderBurgerSecondaryNavigation: FC<{\n item: MenuProps;\n backButtonLabelBurger: ReactNode;\n hasBackButtonBurger: BooleanProp;\n itemsSubmenuClone: SubmenuItemProps;\n handleBackButtonBurger: (evt: MouseEvent<HTMLButtonElement>) => void;\n submenuLevel2Height: number;\n menuItemId: string;\n menuItemRef: RefObject<MenuItemRef>;\n setBackdropVisible: (val: boolean) => void;\n submenuLevel3Height: number;\n}> = ({\n item,\n backButtonLabelBurger,\n hasBackButtonBurger,\n itemsSubmenuClone,\n handleBackButtonBurger,\n submenuLevel2Height,\n menuItemId,\n menuItemRef,\n setBackdropVisible,\n submenuLevel3Height\n}) => {\n return (\n <>\n {item.relatedNavMenu?.menuItemsHeaderNavigation && Object.keys(itemsSubmenuClone).length > 1 && (\n <div className=\"agora-header-burger-navigation-options-submenu-level-2 overflow-hidden hidden sticky w-full right-0 z-sticky shadow-bottom-high\">\n {stringToBoolean(hasBackButtonBurger) && backButtonLabelBurger && (\n <Button\n variant=\"neutral\"\n appearance=\"link\"\n hasIcon\n leadingIcon=\"agora-line-arrow-left-anchor\"\n leadingIconHover=\"agora-solid-arrow-left-anchor\"\n className=\"xs:mx-32 md:mx-64 xl:mx-64 xs:mt-16 md:mt-32 xl:mt-32\"\n onClick={(evt: MouseEvent<HTMLButtonElement>) => {\n handleBackButtonBurger?.(evt);\n if (evt.currentTarget.parentElement?.parentElement?.parentElement) {\n evt.currentTarget.parentElement?.parentElement?.parentElement\n ?.querySelectorAll('.agora-menu-item')\n .forEach((element: Element) => {\n element.classList.remove('!hidden');\n evt.currentTarget.parentElement?.parentElement?.classList.remove('fade-right-left');\n evt.currentTarget.parentElement?.classList.add('hidden');\n evt.currentTarget.parentElement?.parentElement?.parentElement?.classList.add('fade-left-right');\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.add('pt-32');\n });\n }\n }}\n >\n {backButtonLabelBurger}\n </Button>\n )}\n\n <div className=\"overflow-y-auto overflow-x-hidden\" style={{ maxHeight: `calc(100vh - ${submenuLevel2Height}px)` }}>\n <p className=\"text-m-semibold text-[var(--color-neutral-500)] xs:px-32 md:px-64 xl:px-64 pt-32 pb-16\">\n {item.menuItem.children}\n </p>\n\n <ul role=\"menubar\">\n {item.relatedNavMenu.menuItemsHeaderNavigation\n ?.filter((_i, idx) => idx < 5)\n .map((subitem: MenuProps, idx) => {\n const subId = `${menuItemId}-submenu-${idx}`;\n const containerHeaderMenuOptionsLevel2 = classNames(\n 'agora-header-burger-navigation-options-submenu-level-3 overflow-hidden hidden sticky w-full right-0 z-sticky shadow-bottom-high',\n {\n 'bg-[var(--color-neutral-50)]': subitem.submenuItem?.highlightItems,\n 'bg-[var(--color-neutral-100)]': !subitem.submenuItem?.highlightItems\n }\n );\n\n return (\n <li key={subId} role=\"none\">\n {/* Menu item with same elements of secondary navigation */}\n <MenuItem\n {...subitem.menuItem}\n ref={menuItemRef}\n itemType=\"secondary\"\n vertically\n onClick={(evt: MouseEvent<any>) => {\n subitem.menuItem.onClick?.(evt);\n if ((evt.currentTarget as Element).nextElementSibling) {\n (evt.currentTarget as Element).parentElement?.parentElement\n ?.querySelectorAll('.agora-menu-item')\n .forEach((element: Element) => {\n element.classList.add('!hidden');\n element.parentElement?.parentElement?.previousElementSibling?.classList.add('hidden');\n element.parentElement?.parentElement?.parentElement?.previousElementSibling?.classList.add('hidden');\n element.parentElement?.parentElement?.previousElementSibling?.previousElementSibling?.classList.add(\n 'hidden'\n );\n\n (evt.currentTarget as Element).nextElementSibling?.classList.add('fade-right-left');\n (evt.currentTarget as Element).parentElement?.parentElement?.classList.remove('fade-left-right');\n (evt.currentTarget as Element).parentElement?.parentElement?.parentElement?.classList.remove(\n 'fade-left-right'\n );\n });\n }\n\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n />\n {subitem?.submenuItem?.submenuItems && (\n <div className={containerHeaderMenuOptionsLevel2}>\n {stringToBoolean(hasBackButtonBurger) && backButtonLabelBurger && (\n <Button\n variant=\"neutral\"\n appearance=\"link\"\n hasIcon\n leadingIcon=\"agora-line-arrow-left-anchor\"\n leadingIconHover=\"agora-solid-arrow-left-anchor\"\n className=\"xs:mx-32 md:mx-64 xl:mx-64 xs:mt-16 md:mt-32 xl:mt-32\"\n onClick={(evt: MouseEvent<HTMLButtonElement>) => {\n handleBackButtonBurger?.(evt);\n if (evt.currentTarget.parentElement?.parentElement?.parentElement) {\n evt.currentTarget.parentElement.parentElement.parentElement\n .querySelectorAll('.agora-menu-item')\n .forEach((element: Element) => {\n element.classList.remove('!hidden');\n evt.currentTarget.parentElement?.parentElement?.classList.remove('fade-right-left');\n });\n\n (\n evt.currentTarget.parentElement?.parentElement?.parentElement?.previousSibling as HTMLElement\n ).classList.remove('hidden');\n (\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement\n ?.previousSibling as HTMLElement\n ).classList.remove('hidden');\n\n evt.currentTarget?.parentElement?.classList.add('hidden');\n (evt.currentTarget.parentElement?.previousSibling as HTMLElement).click();\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.remove(\n 'fade-right-left'\n );\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.add(\n 'fade-left-right'\n );\n }\n }}\n >\n {backButtonLabelBurger}\n </Button>\n )}\n\n <div\n className=\"overflow-y-auto overflow-x-hidden [&>*:nth-child(2)]:pt-16 xl:[&>*:nth-child(2)]:mx-64\"\n style={{ maxHeight: `calc(100vh - ${submenuLevel3Height}px)` }}\n >\n <p className=\"text-m-semibold text-[var(--color-neutral-500)] xs:px-32 md:px-64 xl:px-64 pt-32 pb-16\">\n {item.menuItem.children}\n </p>\n {/* if secondary items have direct options render on a HeaderMenuOptions component */}\n <HeaderMenuOptions\n submenu={subitem?.submenuItem}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n />\n {subitem?.submenuItem?.highlightItems && (\n <div\n aria-label={subitem?.submenuItem?.highlightItems.submenuAriaLabel}\n className=\"bg-[var(--color-neutral-100)] xl:[&>*:nth-child(1)]:mx-64\"\n >\n <HeaderMenuOptions\n submenu={subitem?.submenuItem?.highlightItems}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n className=\"flex flex-wrap gap-32 w-full\"\n />\n </div>\n )}\n </div>\n </div>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport { HeaderBurgerSecondaryNavigation };\n","import classNames from 'classnames';\nimport React, { FC, MouseEvent, ReactNode, useId, useRef } from 'react';\nimport { BooleanProp } from '../../../../../models';\nimport { MenuItem, MenuItemRef } from '../../../../molecules/menu-item';\nimport { MenuProps, SubmenuItemProps } from '../../models';\nimport { closeOtherSubmenus } from '../../utils/close-other-menu';\nimport { handleClickMenuItem } from '../../utils/handle-click-menu-item';\nimport { HeaderMenuOptions } from '../header-menu-item-options/header-menu-item-options';\nimport { HeaderNavigationProps } from '../header-navigation/header-navigation';\nimport { HeaderBurgerSecondaryNavigation } from './header-burger-secondary-navigation';\n\nconst HeaderBurgerPrimaryNavigation: FC<{\n headerPrimaryNavigationClone: HeaderNavigationProps;\n headerHeight: number;\n backButtonLabelBurger: ReactNode;\n hasBackButtonBurger: BooleanProp;\n setBackdropVisible: (val: boolean) => void;\n submenuHeight: number;\n handleBackButtonBurger: (evt: MouseEvent<HTMLButtonElement>) => void;\n submenuLevel2Height: number;\n submenuLevel3Height: number;\n}> = ({\n headerPrimaryNavigationClone,\n headerHeight,\n backButtonLabelBurger,\n hasBackButtonBurger,\n setBackdropVisible,\n submenuHeight,\n handleBackButtonBurger,\n submenuLevel2Height,\n submenuLevel3Height\n}) => {\n const menuItemId = useId();\n const menuItemRef = useRef<MenuItemRef>(null);\n\n const headerBurgerNavigationContainerClassNames = classNames(\n 'agora-header-burger-navigation-options-menu overflow-y-auto overflow-x-hidden hidden absolute w-full right-0 z-sticky shadow-bottom-high pt-32'\n );\n\n return (\n <>\n {headerPrimaryNavigationClone.menuItemsHeaderNavigation && (\n <div style={{ maxHeight: `calc(100vh - ${headerHeight}px)` }} className={headerBurgerNavigationContainerClassNames}>\n <nav aria-label={headerPrimaryNavigationClone.ariaLabelHeaderNavigation} className=\"overflow-hidden\">\n <ul role=\"menubar\">\n {headerPrimaryNavigationClone.menuItemsHeaderNavigation\n ?.filter((_i, index) => index < 5)\n .map((item: MenuProps, index) => {\n const id = `${menuItemId}-menu-${index}`;\n const containerHeaderMenuOptions = classNames(\n 'agora-header-burger-navigation-options-submenu overflow-y-auto overflow-x-hidden hidden sticky w-full right-0 z-sticky shadow-bottom-high [&>*:first-child]:px-0 xl:[&>*:first-child]:max-w-full xl:[&>*:first-child]:mx-64',\n {\n 'bg-[var(--color-neutral-50)]': item.submenuItem?.highlightItems,\n 'bg-[var(--color-neutral-100)]': !item.submenuItem?.highlightItems\n }\n );\n\n const itemsSubmenuClone = {\n ...item.submenuItem,\n ...item.relatedNavMenu?.menuItemsHeaderNavigation?.map((sub) => sub.menuItem)\n };\n\n itemsSubmenuClone.hasSubmenuItemsSectionTitle = true;\n itemsSubmenuClone.submenuItemsSectionTitle = item.menuItem.children;\n itemsSubmenuClone.backButtonLabel = backButtonLabelBurger;\n itemsSubmenuClone.hasBackButton = hasBackButtonBurger;\n\n itemsSubmenuClone.handleBackButton = (evt: MouseEvent<HTMLButtonElement>) => {\n item.submenuItem?.handleBackButton?.(evt);\n if (evt.currentTarget.parentElement?.parentElement) {\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement\n ?.querySelectorAll('.agora-menu-item')\n .forEach((element: Element) => {\n element.classList.remove('!hidden');\n evt.currentTarget.parentElement?.parentElement?.classList.remove('fade-right-left');\n evt.currentTarget.parentElement?.parentElement?.classList.add('hidden');\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement?.classList.add('fade-left-right');\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.add(\n 'pt-32'\n );\n });\n (evt.currentTarget.parentElement?.parentElement?.previousSibling as HTMLElement).click();\n }\n };\n\n return (\n <li key={id} role=\"none\" className=\"overflow-hidden\">\n {/* Menu item with same elements of primary navigation */}\n <MenuItem\n {...item.menuItem}\n ref={menuItemRef}\n noIcons={!!item.relatedNavMenu?.menuItemsHeaderNavigation === true ? false : item.menuItem.noIcons}\n itemType=\"primary\"\n vertically\n onClick={(evt: MouseEvent<any>) => {\n item.menuItem.onClick?.(evt);\n if ((evt.currentTarget as Element).nextElementSibling) {\n (evt.currentTarget as Element).parentElement?.parentElement\n ?.querySelectorAll('.agora-menu-item')\n .forEach((element: Element) => {\n element.classList.add('!hidden');\n (evt.currentTarget as Element).nextElementSibling?.classList.add('fade-right-left');\n (evt.currentTarget as Element).parentElement?.parentElement?.classList.remove('fade-left-right');\n });\n const childCurrent = (evt.currentTarget as Element).nextSibling\n ?.childNodes as unknown as HTMLCollectionOf<HTMLElement>;\n Array.from(childCurrent).forEach((element) => {\n element.classList.remove('hidden');\n });\n (evt.currentTarget as Element).parentElement?.parentElement?.parentElement?.parentElement?.classList.remove(\n 'pt-32'\n );\n }\n\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n />\n {itemsSubmenuClone.submenuItems && Object.keys(itemsSubmenuClone).length > 1 && (\n <div className={containerHeaderMenuOptions}>\n {/* if primary items have direct options render on a HeaderMenuOptions component */}\n <HeaderMenuOptions\n submenu={itemsSubmenuClone as SubmenuItemProps}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n className=\"overflow-y-auto overflow-x-hidden xs:[&>*]:px-32 md:[&>*]:px-64 xl:[&>*]:px-0\"\n style={{ maxHeight: `calc(100vh - ${submenuHeight}px)` }}\n />\n {itemsSubmenuClone?.highlightItems && (\n <div\n aria-label={itemsSubmenuClone?.highlightItems.submenuAriaLabel}\n className=\"bg-[var(--color-neutral-100)] [&>*:first-child]:px-0 xl:[&>*:first-child]:max-w-full xl:[&>*:first-child]:mx-64\"\n >\n <HeaderMenuOptions\n submenu={itemsSubmenuClone?.highlightItems}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n className=\"flex flex-wrap gap-32\"\n />\n </div>\n )}\n </div>\n )}\n\n {/* if primary navigation has secondary item for secondary navigation */}\n <HeaderBurgerSecondaryNavigation\n item={item}\n backButtonLabelBurger={backButtonLabelBurger}\n hasBackButtonBurger={hasBackButtonBurger}\n itemsSubmenuClone={itemsSubmenuClone as SubmenuItemProps}\n handleBackButtonBurger={handleBackButtonBurger}\n submenuLevel2Height={submenuLevel2Height}\n menuItemId={menuItemId}\n menuItemRef={menuItemRef}\n setBackdropVisible={setBackdropVisible}\n submenuLevel3Height={submenuLevel3Height}\n />\n </li>\n );\n })}\n </ul>\n </nav>\n </div>\n )}\n </>\n );\n};\n\nexport { HeaderBurgerPrimaryNavigation };\n","import React, { FC, MouseEvent, useEffect, useState } from 'react';\nimport { MenuItem } from '../../../../molecules/menu-item';\nimport { HeaderProps } from '../../header';\nimport { BackdropRef } from '../../models';\nimport { handleClickMenuItem } from '../../utils/handle-click-menu-item';\nimport { HeaderBurgerPrimaryNavigation } from './header-burger-primary-navigation';\nimport { stringToBoolean } from '../../../../../utils';\n\nconst HeaderBurgerNavigation: FC<HeaderProps & BackdropRef> = ({\n headerSecondaryNavigation,\n headerPrimaryNavigation: headerPrimaryNavigationClone,\n darkModeHeader,\n setBackdropVisible,\n menuLabel,\n hasBackButtonBurger = stringToBoolean('true'),\n backButtonLabelBurger,\n handleBackButtonBurger\n}) => {\n // #region \"MENU BURGER\"\n\n const [headerHeight, setHeaderHeight] = useState(0);\n const [submenuHeight, setSubmenuHeight] = useState(0);\n const [submenuLevel2Height, setSubmenuLevel2Height] = useState(0);\n const [submenuLevel3Height, setSubmenuLevel3Height] = useState(0);\n\n // #region Resize and functions\n const checkResize = (\n burgerNav: Element | null,\n heightGeneralNav: number,\n optionsSubmenu: Element | null,\n backButtonSubmenu: Element | undefined,\n backButtonSubmenuLevel2: Element | undefined,\n backButtonSubmenuLevel3: Element | undefined\n ) => {\n const heightBurgerNav = burgerNav?.clientHeight ?? 0;\n setHeaderHeight(heightGeneralNav + heightBurgerNav);\n\n const optNextSiblingPaddingTop = optionsSubmenu?.children[0] ? parseInt(getComputedStyle(optionsSubmenu?.children[0]).paddingTop) : 0;\n\n const optNextSiblingPaddingBottom = optionsSubmenu?.children[0]\n ? parseInt(getComputedStyle(optionsSubmenu?.children[0]).paddingBottom)\n : 0;\n\n const backButtonSubmenuMarginBottom = backButtonSubmenu ? parseInt(getComputedStyle(backButtonSubmenu).marginBottom) : 0;\n const backButtonSubmenuLevel2MarginTop = backButtonSubmenuLevel2 ? parseInt(getComputedStyle(backButtonSubmenuLevel2).marginTop) : 0;\n const backButtonSubmenuLevel3MarginTop = backButtonSubmenuLevel3 ? parseInt(getComputedStyle(backButtonSubmenuLevel3).marginTop) : 0;\n\n setSubmenuHeight(\n heightGeneralNav +\n heightBurgerNav +\n optNextSiblingPaddingTop +\n optNextSiblingPaddingBottom +\n backButtonSubmenuMarginBottom +\n (backButtonSubmenu as Element)?.getBoundingClientRect().height\n );\n setSubmenuLevel2Height(\n heightGeneralNav +\n heightBurgerNav +\n backButtonSubmenuLevel2MarginTop +\n (backButtonSubmenuLevel2 as Element)?.getBoundingClientRect().height\n );\n setSubmenuLevel3Height(\n heightGeneralNav +\n heightBurgerNav +\n backButtonSubmenuLevel3MarginTop +\n (backButtonSubmenuLevel3 as Element)?.getBoundingClientRect().height\n );\n };\n\n const checkMutationPrimary = (\n burgerNav: Element | null,\n heightGeneralNav: number,\n optionsSubmenu: Element | null,\n backButtonSubmenu: Element | undefined\n ) => {\n const heightBurgerNav = burgerNav?.clientHeight ?? 0;\n const optNextSiblingPaddingTop = optionsSubmenu?.children[0] ? parseInt(getComputedStyle(optionsSubmenu?.children[0]).paddingTop) : 0;\n\n const optNextSiblingPaddingBottom = optionsSubmenu?.children[0]\n ? parseInt(getComputedStyle(optionsSubmenu?.children[0]).paddingBottom)\n : 0;\n\n const backButtonSubmenuMarginBottom = backButtonSubmenu ? parseInt(getComputedStyle(backButtonSubmenu).marginBottom) : 0;\n\n setSubmenuHeight(\n heightGeneralNav +\n heightBurgerNav +\n optNextSiblingPaddingTop +\n optNextSiblingPaddingBottom +\n backButtonSubmenuMarginBottom +\n (backButtonSubmenu as Element)?.getBoundingClientRect().height\n );\n };\n\n const checkMutationSubmenuLevel2 = (\n burgerNav: Element | null,\n heightGeneralNav: number,\n backButtonSubmenuLevel2: Element | undefined\n ) => {\n const heightBurgerNav = burgerNav?.clientHeight ?? 0;\n const backButtonSubmenuLevel2MarginTop = backButtonSubmenuLevel2 ? parseInt(getComputedStyle(backButtonSubmenuLevel2).marginTop) : 0;\n setSubmenuLevel2Height(\n heightGeneralNav +\n heightBurgerNav +\n backButtonSubmenuLevel2MarginTop +\n (backButtonSubmenuLevel2 as Element)?.getBoundingClientRect().height\n );\n };\n\n const checkMutationSubmenuLevel3 = (\n mutation: MutationRecord,\n burgerNav: Element | null,\n heightGeneralNav: number,\n backButtonSubmenuLevel2: Element | undefined,\n backButtonSubmenuLevel3: Element | undefined\n ) => {\n const heightBurgerNav = burgerNav?.clientHeight ?? 0;\n const backButtonSubmenuLevel3MarginTop = backButtonSubmenuLevel3 ? parseInt(getComputedStyle(backButtonSubmenuLevel3).marginTop) : 0;\n\n const oldValueArray = mutation.oldValue?.split(' ') ?? [];\n // Needed to know if is a back or a go\n if (oldValueArray.find((word) => word === 'hidden')) {\n setSubmenuLevel2Height(heightGeneralNav + heightBurgerNav + (backButtonSubmenuLevel2 as Element)?.getBoundingClientRect().height);\n } else {\n setSubmenuLevel2Height(\n heightGeneralNav +\n heightBurgerNav +\n backButtonSubmenuLevel3MarginTop +\n (backButtonSubmenuLevel2 as Element)?.getBoundingClientRect().height\n );\n }\n\n setSubmenuLevel3Height(\n heightGeneralNav +\n heightBurgerNav +\n backButtonSubmenuLevel3MarginTop +\n (backButtonSubmenuLevel3 as Element)?.getBoundingClientRect().height\n );\n };\n\n const observers = (\n observer: MutationObserver,\n burgerNav: Element | null,\n optionsSubmenu: Element | null,\n optionsSubmenuLevel2: Element | null,\n optionsSubmenuLevel3: Element | null\n ) => {\n if (burgerNav) {\n observer.observe(burgerNav as Node, { attributes: true });\n }\n\n if (optionsSubmenu) {\n observer.observe(optionsSubmenu as Node, { attributes: true });\n }\n\n if (optionsSubmenuLevel2) {\n observer.observe(optionsSubmenuLevel2 as Node, { attributes: true, attributeOldValue: true });\n }\n\n if (optionsSubmenuLevel3) {\n observer.observe(optionsSubmenuLevel3 as Node, { attributes: true, attributeOldValue: true });\n }\n };\n\n useEffect(() => {\n const heightGeneralNav = document.querySelector('.agora-header-general')?.clientHeight ?? 0;\n const burgerNav = document.querySelector('.agora-header-burger-navigation');\n\n const optionsSubmenu = document.querySelector('.agora-header-burger-navigation-options-submenu');\n const optionsSubmenuLevel2 = document.querySelector('.agora-header-burger-navigation-options-submenu-level-2');\n const optionsSubmenuLevel3 = document.querySelector('.agora-header-burger-navigation-options-submenu-level-3');\n const backButtonSubmenu = Array.from(optionsSubmenu?.children[0].children ?? []).find((bt) => bt.classList.contains('agora-btn'));\n const backButtonSubmenuLevel2 = Array.from(optionsSubmenuLevel2?.children ?? []).find((bt) => bt.classList.contains('agora-btn'));\n const backButtonSubmenuLevel3 = Array.from(optionsSubmenuLevel3?.children ?? []).find((bt) => bt.classList.contains('agora-btn'));\n\n checkResize(burgerNav, heightGeneralNav, optionsSubmenu, backButtonSubmenu, backButtonSubmenuLevel2, backButtonSubmenuLevel3);\n\n // #region Check if hidden attribute remove from burger navigation and get client height\n const mutationCallback = (mutationsList: MutationRecord[]) => {\n for (const mutation of mutationsList) {\n switch (mutation.target) {\n case optionsSubmenu:\n checkMutationPrimary(burgerNav, heightGeneralNav, optionsSubmenu, backButtonSubmenu);\n return;\n case optionsSubmenuLevel2:\n checkMutationSubmenuLevel2(burgerNav, heightGeneralNav, backButtonSubmenuLevel2);\n return;\n case optionsSubmenuLevel3:\n checkMutationSubmenuLevel3(mutation, burgerNav, heightGeneralNav, backButtonSubmenuLevel2, backButtonSubmenuLevel3);\n return;\n default:\n break;\n }\n if (mutation.type !== 'attributes' || mutation.attributeName !== 'hidden') {\n return;\n }\n setHeaderHeight(heightGeneralNav + (mutation.target as Element).clientHeight);\n }\n };\n const observer = new MutationObserver(mutationCallback);\n observers(observer, burgerNav, optionsSubmenu, optionsSubmenuLevel2, optionsSubmenuLevel3);\n // #endregion\n\n window.addEventListener('resize', () =>\n checkResize(burgerNav, heightGeneralNav, optionsSubmenu, backButtonSubmenu, backButtonSubmenuLevel2, backButtonSubmenuLevel3)\n );\n return () => {\n window.removeEventListener('resize', () =>\n checkResize(burgerNav, heightGeneralNav, optionsSubmenu, backButtonSubmenu, backButtonSubmenuLevel2, backButtonSubmenuLevel3)\n );\n observer.disconnect();\n };\n }, []);\n // #endregion\n // #endregion \"MENU BURGER\"\n return (\n <div className=\"container mx-auto xs:flex md:grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 xs:gap-0 md:gap-32 xs:justify-between md:justify-normal min-h-[60px]\">\n <div className=\"agora-header-burger-navigation-content xs:col-span-3 md:col-span-4 xl:col-span-5 flex items-center\">\n {headerSecondaryNavigation?.headerNavigationContent ?? headerPrimaryNavigationClone.headerNavigationContent}\n </div>\n <div className=\"xs:col-span-1 md:col-span-4 xl:col-span-7 justify-self-end\">\n {/* Menu burger */}\n {headerPrimaryNavigationClone?.menuItemsHeaderNavigation && (\n <>\n <MenuItem\n className=\"agora-burger xs:[&>span]:hidden md:[&>span]:block xs:justify-end md:justify-start\"\n itemType=\"menu\"\n aria-haspopup=\"menu\"\n aria-expanded=\"false\"\n darkMode={darkModeHeader}\n onClick={(evt: MouseEvent<HTMLButtonElement>) => {\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n >\n {menuLabel}\n </MenuItem>\n <HeaderBurgerPrimaryNavigation\n headerPrimaryNavigationClone={headerPrimaryNavigationClone}\n headerHeight={headerHeight}\n backButtonLabelBurger={backButtonLabelBurger}\n hasBackButtonBurger={hasBackButtonBurger}\n setBackdropVisible={setBackdropVisible}\n submenuHeight={submenuHeight}\n handleBackButtonBurger={() => handleBackButtonBurger}\n submenuLevel2Height={submenuLevel2Height}\n submenuLevel3Height={submenuLevel3Height}\n />\n </>\n )}\n </div>\n </div>\n );\n};\n\nexport { HeaderBurgerNavigation };\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n FC,\n Fragment,\n MouseEvent as ReactMouseEvent,\n ReactNode,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { useWindowSize } from '../../../../../hooks';\nimport { BooleanProp } from '../../../../../models';\nimport { stringToBoolean } from '../../../../../utils';\nimport { AnchorProps } from '../../../../atoms/anchor';\nimport { AvatarProps } from '../../../../atoms/avatar';\nimport { ButtonProps } from '../../../../atoms/button';\nimport { DrawerRef } from '../../../../atoms/drawer';\nimport { MenuItem, MenuItemRef } from '../../../../molecules/menu-item';\nimport { BackdropRef, DrawerContentProps, MenuItemGeneralOptionsProps, SubmenuItemProps } from '../../models';\nimport { closeOtherSubmenus } from '../../utils/close-other-menu';\nimport { handleClickMenuItem } from '../../utils/handle-click-menu-item';\nimport { HeaderMenuOptions } from '../header-menu-item-options/header-menu-item-options';\nimport './header-general-options.scss';\n\nexport interface HeaderGeneralOptionsProps extends ComponentPropsWithRef<'div'> {\n /**\n * Activate general options navigation darkMode\n */\n darkModeHeaderGeneralOptions?: BooleanProp;\n\n /**\n * Navigation aria-label of general options\n */\n ariaLabelHeaderGeneralOptions: string;\n\n /**\n * Has menu item language\n */\n hasLanguage: BooleanProp;\n\n /**\n * Has menu item search\n */\n hasSearch: BooleanProp;\n\n /**\n * Has menu item user\n */\n hasUser: BooleanProp;\n\n /**\n * General options navigation menu items\n */\n menuItemsHeaderGeneralOptions: MenuItemGeneralOptionsProps;\n}\n\nconst HeaderGeneralOptions: FC<\n HeaderGeneralOptionsProps &\n BackdropRef & { refDrawer: RefObject<DrawerRef> } & {\n setDrawerContent(val: DrawerContentProps | null | undefined): void;\n }\n> = ({\n darkModeHeaderGeneralOptions,\n ariaLabelHeaderGeneralOptions,\n menuItemsHeaderGeneralOptions,\n hasLanguage,\n hasSearch,\n hasUser,\n setBackdropVisible,\n refDrawer,\n setDrawerContent,\n className\n}) => {\n const menuItemLanguageRef = useRef<MenuItemRef>(null);\n const avatarMenuItemRef = useRef(null);\n\n // #region ClassNames\n const headerGeneralOptionsClassName = classNames(\n 'container mx-auto agora-header-general-options',\n {\n darkMode: stringToBoolean(darkModeHeaderGeneralOptions)\n },\n className\n );\n const searchClassName = classNames({ 'ml-auto': !hasLanguage || !menuItemsHeaderGeneralOptions?.language?.submenuItem?.submenuItems });\n const userClassName = classNames({ 'ml-auto': !hasSearch && !menuItemsHeaderGeneralOptions?.language?.submenuItem?.submenuItems });\n\n // #endregion\n\n const [headerHeight, setHeaderHeight] = useState(0);\n const { width } = useWindowSize();\n const isMobile = width < 768;\n\n // #region Language Handler\n const [initLanguage, setInitLanguage] = useState<string | null>(null);\n const toggleLanguage = (evt: ReactMouseEvent<HTMLButtonElement>, selectedAriaLabel = '') => {\n // Update text on menu item\n (evt.currentTarget.parentNode?.parentNode?.parentNode?.parentNode?.parentNode?.previousSibling?.firstChild as HTMLElement).innerText =\n evt.currentTarget.innerText;\n // Reset attributes of previous language\n [...document.getElementsByClassName('language')].forEach((element) => {\n element.removeAttribute('data-aria-selected');\n element.removeAttribute('aria-label');\n });\n // Get ISO of selected language\n const dataIso = evt.currentTarget.getAttribute('data-iso');\n // Set attributes on new language selected\n document.querySelectorAll('.language').forEach((element) => {\n if (element.getAttribute('data-iso') === dataIso) {\n (element.parentNode?.parentNode?.parentNode?.parentNode?.parentNode?.previousSibling?.firstChild as HTMLElement).innerText =\n evt.currentTarget.innerText;\n element.setAttribute('data-aria-selected', 'true');\n element.setAttribute('aria-label', `${element.textContent} ${selectedAriaLabel}`);\n }\n });\n };\n\n useEffect(() => {\n if (menuItemsHeaderGeneralOptions.language?.submenuItem?.submenuItems) {\n const currentLang = (menuItemsHeaderGeneralOptions.language.submenuItem.submenuItems as []).find(\n (lang: ButtonProps | AnchorProps) => lang['data-aria-selected'] === 'true'\n );\n setInitLanguage((currentLang as unknown as ButtonProps | AnchorProps)?.children?.toString() ?? '-');\n const languageItems = Array.from(menuItemLanguageRef.current?.current?.nextElementSibling?.querySelectorAll('.language') ?? []);\n const currentLanguageItem = languageItems?.find((el) => el.hasAttribute('data-aria-selected'));\n currentLanguageItem?.setAttribute(\n 'aria-label',\n `${currentLanguageItem.textContent} ${menuItemsHeaderGeneralOptions.language.submenuItem.selectedAriaLabel}`\n );\n }\n }, [\n menuItemsHeaderGeneralOptions?.language?.submenuItem?.selectedAriaLabel,\n menuItemsHeaderGeneralOptions?.language?.submenuItem?.submenuItems\n ]);\n // #endregion\n\n const userAvatarPropsCloneMenuItem = useMemo(() => {\n return { ...menuItemsHeaderGeneralOptions.user?.menuItem };\n }, [menuItemsHeaderGeneralOptions.user?.menuItem]);\n\n const userNotLoggedSubmenuItemPropsClone = useMemo(() => {\n return { ...menuItemsHeaderGeneralOptions.user?.submenuItem };\n }, [menuItemsHeaderGeneralOptions.user?.submenuItem]);\n\n useEffect(() => {\n const resizeGeneral = () => {\n setHeaderHeight(document.querySelector('.agora-header-general')?.clientHeight ?? 0);\n\n (userAvatarPropsCloneMenuItem as AvatarProps).tooltipPosition = 'bottom';\n (userAvatarPropsCloneMenuItem as AvatarProps).tooltipAlignment = 'end';\n userNotLoggedSubmenuItemPropsClone.submenuAlignment = 'end';\n };\n\n resizeGeneral();\n\n window.addEventListener('resize', resizeGeneral);\n return () => {\n window.removeEventListener('resize', resizeGeneral);\n };\n }, [userAvatarPropsCloneMenuItem, userNotLoggedSubmenuItemPropsClone]);\n\n const renderMenuItems = (menuItems: MenuItemGeneralOptionsProps) => {\n let component: ReactNode[] = [];\n Object.keys(menuItems).forEach((keys) => {\n const generatedKey = `menu-items-${keys}`;\n switch (keys) {\n case 'language':\n component = [\n ...component,\n <Fragment key={generatedKey}>\n {stringToBoolean(hasLanguage) && menuItemsHeaderGeneralOptions.language?.submenuItem?.submenuItems && (\n <li role=\"none\" className=\"mr-auto\">\n <MenuItem\n itemType=\"primary\"\n aria-haspopup\n aria-expanded={false}\n darkMode={darkModeHeaderGeneralOptions}\n ref={menuItemLanguageRef}\n onClick={(evt: ReactMouseEvent<any>) => {\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n >\n {initLanguage}\n </MenuItem>\n\n <div\n style={{ maxHeight: `calc(100vh - ${headerHeight}px)` }}\n className=\"agora-header-general-options-menu overflow-auto hidden absolute w-full right-0 z-sticky bg-[var(--color-neutral-100)] shadow-bottom-high\"\n >\n <HeaderMenuOptions\n submenu={menuItemsHeaderGeneralOptions.language.submenuItem}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n onClick={(evt: ReactMouseEvent<HTMLButtonElement>) => {\n toggleLanguage(evt, menuItemsHeaderGeneralOptions.language?.submenuItem?.selectedAriaLabel);\n }}\n />\n </div>\n </li>\n )}\n </Fragment>\n ];\n break;\n case 'search':\n component = [\n ...component,\n <Fragment key={generatedKey}>\n {stringToBoolean(hasSearch) && menuItemsHeaderGeneralOptions.search?.submenuItem?.submenuSearchContent && (\n <li role=\"none\" className={searchClassName} key={generatedKey}>\n <MenuItem\n itemType=\"search\"\n aria-haspopup\n aria-expanded={false}\n darkMode={darkModeHeaderGeneralOptions}\n onClick={(evt: ReactMouseEvent<HTMLButtonElement>) => {\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n >\n {!isMobile && menuItemsHeaderGeneralOptions.search.menuItem.children}\n </MenuItem>\n <div\n style={{ maxHeight: `calc(100vh - ${headerHeight}px)` }}\n className=\"agora-header-general-options-menu overflow-auto hidden absolute w-full right-0 z-sticky bg-[var(--color-neutral-100)] shadow-bottom-high\"\n >\n <div\n aria-label={menuItemsHeaderGeneralOptions.search.submenuItem.submenuAriaLabel}\n className=\"container mx-auto xs:py-32 md:py-64 xl:py-64\"\n >\n <HeaderMenuOptions\n submenu={menuItemsHeaderGeneralOptions.search.submenuItem}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n />\n </div>\n </div>\n </li>\n )}\n </Fragment>\n ];\n break;\n case 'user':\n component = [\n ...component,\n <Fragment key={generatedKey}>\n {stringToBoolean(hasUser) && menuItemsHeaderGeneralOptions.user?.submenuItem?.submenuItems && (\n <li role=\"none\" className={userClassName}>\n <MenuItem\n itemType={isMobile ? 'user' : 'primary'}\n aria-haspopup\n aria-expanded={false}\n darkMode={darkModeHeaderGeneralOptions}\n onClick={(evt: ReactMouseEvent<HTMLButtonElement>) => {\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n >\n {!isMobile && menuItemsHeaderGeneralOptions.user.menuItem.children}\n </MenuItem>\n\n <div\n style={{ maxHeight: `calc(100vh - ${headerHeight}px)` }}\n className=\"agora-header-general-options-menu overflow-auto hidden absolute w-full right-0 z-sticky bg-[var(--color-neutral-100)] shadow-bottom-high\"\n >\n <HeaderMenuOptions\n submenu={userNotLoggedSubmenuItemPropsClone as SubmenuItemProps}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n />\n </div>\n </li>\n )}\n {stringToBoolean(hasUser) && menuItemsHeaderGeneralOptions.user?.drawerContent && (\n <li role=\"none\" className={userClassName}>\n <MenuItem\n {...userAvatarPropsCloneMenuItem}\n className=\"my-8\"\n ref={avatarMenuItemRef}\n actionItem\n itemType={'avatar'}\n aria-haspopup\n aria-expanded={false}\n darkMode={darkModeHeaderGeneralOptions}\n onKeyUp={(evt: any) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n handleClickMenuItem(\n evt,\n setBackdropVisible,\n menuItemsHeaderGeneralOptions.user?.drawerContent,\n refDrawer,\n setDrawerContent\n );\n }\n }}\n onClick={(evt: ReactMouseEvent<HTMLButtonElement>) => {\n handleClickMenuItem(\n evt,\n setBackdropVisible,\n menuItemsHeaderGeneralOptions.user?.drawerContent,\n refDrawer,\n setDrawerContent\n );\n }}\n />\n </li>\n )}\n </Fragment>\n ];\n break;\n default:\n break;\n }\n });\n return component;\n };\n\n return (\n <div className={headerGeneralOptionsClassName}>\n <nav aria-label={ariaLabelHeaderGeneralOptions}>\n <ul role=\"menubar\" className=\"flex xs:gap-16 md:gap-32 xl:gap-32\">\n {renderMenuItems(menuItemsHeaderGeneralOptions)}\n </ul>\n </nav>\n </div>\n );\n};\n\nexport { HeaderGeneralOptions };\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, CSSProperties, FC, ReactNode, useId, useRef } from 'react';\nimport { BooleanProp } from '../../../../../models';\nimport { stringToBoolean } from '../../../../../utils';\nimport { MenuItem, MenuItemRef } from '../../../../molecules/menu-item';\nimport { closeOtherSubmenus } from '../../utils/close-other-menu';\nimport { handleClickMenuItem } from '../../utils/handle-click-menu-item';\nimport { HeaderMenuOptions } from '../header-menu-item-options/header-menu-item-options';\nimport './header-navigation.scss';\nimport { BackdropRef, HeaderNavigationType, MenuProps } from '../../models';\n\nexport interface HeaderNavigationProps extends ComponentPropsWithRef<'div'> {\n /**\n * Activate navigation darkMode\n */\n darkModeHeaderNavigation?: BooleanProp;\n\n /**\n * Navigation aria-label\n */\n ariaLabelHeaderNavigation: string;\n\n /**\n * Content can be a custom element of logo default position.\n */\n headerNavigationContent?: ReactNode;\n\n /**\n * Legal sentence\n */\n headerNavigationLegalSentence: string;\n\n /**\n * Navigation menu items\n */\n menuItemsHeaderNavigation: MenuProps[];\n\n /**\n * Free Navigation menu item\n */\n freeMenuItemsHeaderNavigation?: ReactNode;\n\n /**\n * / Header navigation type\n */\n headerNavigationType: HeaderNavigationType;\n}\n\nconst HeaderNavigation: FC<HeaderNavigationProps & BackdropRef & { optionsMenuOverflow?: CSSProperties }> = ({\n darkModeHeaderNavigation,\n ariaLabelHeaderNavigation,\n headerNavigationContent,\n menuItemsHeaderNavigation,\n freeMenuItemsHeaderNavigation,\n headerNavigationType = 'primary',\n headerNavigationLegalSentence = '',\n className,\n setBackdropVisible,\n optionsMenuOverflow\n}) => {\n const menuItemId = useId();\n const menuItemRef = useRef<MenuItemRef>(null);\n\n // #region ClassNames\n const headerNavigationClassName = classNames(\n 'container mx-auto agora-header-navigation-options grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32 min-h-[60px]',\n {\n darkMode: stringToBoolean(darkModeHeaderNavigation)\n },\n className\n );\n\n const legalSentenceClassName = classNames('text-m-regular', {\n 'text-[var(--color-neutral-700)]': !darkModeHeaderNavigation,\n 'text-[var(--color-white)]': darkModeHeaderNavigation,\n 'sr-only': headerNavigationContent\n });\n\n // #endregion\n\n return (\n <div className={headerNavigationClassName}>\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-5 flex items-center\">\n {headerNavigationType === 'primary' && <p className={legalSentenceClassName}>{headerNavigationLegalSentence}</p>}\n {headerNavigationContent}\n </div>\n {menuItemsHeaderNavigation && (\n <nav aria-label={ariaLabelHeaderNavigation} className=\"xs:col-span-4 md:col-span-8 xl:col-span-7\">\n <ul role=\"menubar\" className=\"flex justify-end gap-32\">\n {menuItemsHeaderNavigation\n ?.filter((_i, index) => index < 5)\n .map((item: MenuProps, index) => {\n const id = `${menuItemId}-menu-${index}`;\n const containerHeaderMenuOptions = classNames(\n 'agora-header-navigation-options-menu overflow-auto hidden absolute w-full right-0 z-sticky shadow-bottom-high',\n {\n 'bg-[var(--color-neutral-50)]': item.submenuItem?.highlightItems,\n 'bg-[var(--color-neutral-100)]': !item.submenuItem?.highlightItems\n }\n );\n return (\n <li key={id} role=\"none\">\n <MenuItem\n {...item.menuItem}\n ref={menuItemRef}\n itemType={headerNavigationType}\n darkMode={darkModeHeaderNavigation}\n onClick={(evt: any) => {\n item.menuItem.onClick?.(evt);\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n />\n\n {item.submenuItem && (\n <div style={optionsMenuOverflow} className={containerHeaderMenuOptions}>\n <HeaderMenuOptions\n submenu={item.submenuItem}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n />\n {item.submenuItem?.highlightItems && (\n <div aria-label={item.submenuItem?.highlightItems.submenuAriaLabel} className=\"bg-[var(--color-neutral-100)]\">\n <HeaderMenuOptions\n submenu={item.submenuItem?.highlightItems}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n className=\"flex flex-wrap gap-32\"\n />\n </div>\n )}\n </div>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n )}\n {freeMenuItemsHeaderNavigation && (\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-7 flex justify-end gap-32 pb-16 pt-[12px]\">\n {freeMenuItemsHeaderNavigation}\n </div>\n )}\n </div>\n );\n};\n\nexport { HeaderNavigation };\n","import React, { ComponentPropsWithRef, FC, MouseEvent, ReactNode, useCallback, useEffect, useRef, useState } from 'react';\n\nimport classNames from 'classnames';\nimport { useWindowSize } from '../../../hooks';\nimport { BooleanProp } from '../../../models';\nimport { stringToBoolean } from '../../../utils';\nimport { Anchor } from '../../atoms/anchor';\nimport { Button } from '../../atoms/button';\nimport { Drawer, DrawerRef } from '../../atoms/drawer';\nimport './header.scss';\nimport { DrawerContentProps, MenuProps } from './models';\nimport { HeaderBurgerNavigation } from './shared-components/header-burger-navigation/header-burger-navigation';\nimport { HeaderGeneralOptions, HeaderGeneralOptionsProps } from './shared-components/header-general-options/header-general-options';\nimport { HeaderNavigation, HeaderNavigationProps } from './shared-components/header-navigation/header-navigation';\n\nexport interface HeaderProps extends ComponentPropsWithRef<'div'> {\n /**\n * Used to help identify page, SEO and accessibility when in homepage.\n * Can be a set of keywords or simple the name of our application.\n * When not in homepage, h1 should be on main with the title of the page\n */\n headerSEO: string;\n\n /**\n * Current page is homepage\n */\n isHomepage: BooleanProp;\n\n /**\n * Header on darkMode\n */\n darkModeHeader: BooleanProp;\n\n /**\n * Show/hide general options navigation\n */\n hasHeaderGeneralOptions: BooleanProp;\n\n /**\n * Configuration headerGeneralOptions\n */\n headerGeneralOptions: HeaderGeneralOptionsProps;\n\n /**\n * Show/hide header primary navigation\n */\n hasHeaderPrimaryNavigation: BooleanProp;\n\n /**\n * Configuration headerPrimaryNavigation\n */\n headerPrimaryNavigation: HeaderNavigationProps;\n\n /**\n * Show/hide header secondary navigation\n */\n hasHeaderSecondaryNavigation: BooleanProp;\n\n /**\n * Configuration headerSecondaryNavigation\n */\n headerSecondaryNavigation: HeaderNavigationProps;\n\n /**\n * Menu burger label\n */\n menuLabel: ReactNode;\n\n /**\n * Has menu burger back button\n */\n hasBackButtonBurger?: BooleanProp;\n\n /**\n * Menu burger back button label\n */\n backButtonLabelBurger?: ReactNode;\n\n /**\n * Menu burger handle click\n */\n handleBackButtonBurger?: (evt: MouseEvent<HTMLButtonElement>) => void;\n}\n\nconst Header: FC<HeaderProps> = ({\n headerSEO,\n isHomepage,\n darkModeHeader = stringToBoolean('false'),\n hasHeaderGeneralOptions = stringToBoolean('false'),\n hasHeaderPrimaryNavigation = stringToBoolean('false'),\n hasHeaderSecondaryNavigation = stringToBoolean('false'),\n headerGeneralOptions,\n headerPrimaryNavigation,\n headerSecondaryNavigation,\n menuLabel,\n hasBackButtonBurger,\n backButtonLabelBurger,\n handleBackButtonBurger\n}) => {\n const { width } = useWindowSize();\n const isTablet = width >= 768 && width < 1200;\n const isMobile = width < 768;\n\n // #region Opened Menus\n const getOpenMenuNav = () => {\n const allSubmenus = [\n ...document.getElementsByClassName('agora-header-general-options-menu'),\n ...document.getElementsByClassName('agora-header-navigation-options-menu'),\n ...document.getElementsByClassName('agora-header-burger-navigation-options-menu'),\n ...document.getElementsByClassName('agora-drawer-authentication')\n ];\n\n const openSubmenu: Element | undefined = allSubmenus.find((menu) => !menu.classList.contains('hidden'));\n\n if (\n openSubmenu?.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('agora-header-general') ||\n openSubmenu?.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('agora-header-primary') ||\n openSubmenu?.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('agora-header-secondary')\n ) {\n return openSubmenu.parentElement.parentElement.parentElement.parentElement.parentElement;\n } else if (openSubmenu?.parentElement?.parentElement?.parentElement?.classList.contains('agora-header-burger-navigation')) {\n return openSubmenu.parentElement.parentElement.parentElement;\n } else if (openSubmenu?.classList.contains('drawer-open-right')) {\n return openSubmenu;\n }\n };\n\n const trapFocus = (evt: KeyboardEvent, focusableElements: NodeListOf<Element>) => {\n const focusableElementsVisible = Array.from(focusableElements).filter(\n (value) => !value?.parentElement?.parentElement?.parentElement?.classList.contains('hidden') || !value.classList.contains('!hidden')\n );\n\n if (focusableElementsVisible) {\n const firstElement = focusableElementsVisible[0] as HTMLElement;\n const lastElement = focusableElementsVisible[focusableElementsVisible.length - 1] as HTMLElement;\n\n if (evt.shiftKey && document.activeElement === firstElement) {\n evt.preventDefault();\n lastElement.focus();\n } else if (!evt.shiftKey && document.activeElement === lastElement) {\n evt.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n const trapFocusBurger = (evt: KeyboardEvent, focusableElements: Element[]) => {\n const focusableElementsVisible = Array.from(focusableElements).filter(\n (value) =>\n !value?.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('hidden') &&\n !value.classList.contains('!hidden')\n );\n\n if (focusableElementsVisible) {\n const firstElement = focusableElementsVisible.find(\n (el) => !el.classList.contains('hidden') && !el.classList.contains('!hidden')\n ) as HTMLElement;\n const reverseFocusableElementsVisible = Array.from(focusableElementsVisible).reverse();\n const lastElement = reverseFocusableElementsVisible.find(\n (el) => !el.classList.contains('hidden') && !el.classList.contains('!hidden')\n ) as HTMLElement;\n\n if (evt.shiftKey && document.activeElement === firstElement) {\n evt.preventDefault();\n lastElement.focus();\n } else if (\n (!evt.shiftKey && document.activeElement === lastElement) ||\n !document.querySelector('.agora-header-burger-navigation')?.contains(document.activeElement)\n ) {\n evt.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n // #endregion\n\n // #region \"BACKDROP\"\n\n const [backdropVisible, setBackdropVisible] = useState<boolean>(false);\n\n const backdropRef = useRef<HTMLDivElement | null>(null);\n\n const callSetBackdropVisible = (val: boolean) => {\n setBackdropVisible(val);\n };\n\n const handleClickOutside = () => {\n setBackdropVisible(false);\n\n const allSubmenus = [\n ...document.getElementsByClassName('agora-header-general-options-menu'),\n ...document.getElementsByClassName('agora-header-navigation-options-menu'),\n ...document.getElementsByClassName('agora-header-burger-navigation-options-menu')\n ];\n allSubmenus.forEach((el: Element) => {\n const parentAllSubmenus = el?.parentElement;\n if (el.classList.contains('hidden') === false || parentAllSubmenus?.classList.contains('hidden') === false) {\n if (parentAllSubmenus?.classList.contains('agora-wrapper-menu') === true) {\n parentAllSubmenus.classList.add('hidden');\n }\n el.classList.add('hidden');\n document.body.classList.remove('overflow-hidden');\n const menuItem =\n parentAllSubmenus?.classList.contains('agora-wrapper-menu') === true\n ? (parentAllSubmenus.previousSibling as HTMLButtonElement)\n : (el.previousSibling as HTMLButtonElement);\n if (menuItem?.ariaExpanded && stringToBoolean(menuItem?.ariaExpanded)) {\n menuItem.click();\n }\n }\n if (el.classList.contains('agora-header-burger-navigation-options-menu') === true) {\n el.classList.add('pt-32');\n el.querySelectorAll('.agora-menu-item').forEach((element) => {\n element.classList.remove('!hidden');\n });\n el.querySelectorAll('.agora-header-burger-navigation-options-submenu-level-2').forEach((element) => {\n element.classList.add('hidden');\n });\n }\n });\n };\n\n const navigationTab = useCallback((evt: KeyboardEvent, openedMenu: Element) => {\n const focusableElements: Element[] = Array.from(\n openedMenu.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n );\n const burgerMenu = document.querySelector('.agora-header-burger-navigation-options-menu');\n const burgerSubmenu = document.querySelector('.agora-header-burger-navigation-options-submenu');\n const burgerSubmenuLevel2 = document.querySelector('.agora-header-burger-navigation-options-submenu-level-2');\n const burgerSubmenuLevel3 = document.querySelector('.agora-header-burger-navigation-options-submenu-level-3');\n\n let focusableElementsClone: Element[] = [];\n\n focusableElements.forEach((e) => {\n if (\n ((burgerSubmenuLevel3 as Element)?.contains(e) && burgerSubmenuLevel3?.classList.contains('hidden')) ||\n ((burgerSubmenuLevel2 as Element)?.contains(e) && burgerSubmenuLevel2?.classList.contains('hidden')) ||\n ((burgerSubmenu as Element)?.contains(e) && burgerSubmenu?.classList.contains('hidden')) ||\n ((burgerMenu as Element)?.contains(e) && burgerMenu?.classList.contains('hidden'))\n ) {\n return;\n }\n\n focusableElementsClone = [...focusableElementsClone, e];\n });\n trapFocusBurger(evt, focusableElementsClone);\n }, []);\n\n useEffect(() => {\n const { current } = backdropRef;\n\n const keydownHandler = (evt: KeyboardEvent) => {\n if (evt.code === 'Escape') {\n handleClickOutside();\n document.body.classList.remove('overflow-hidden');\n }\n if (evt.key === 'Tab' && current) {\n const openedMenu = getOpenMenuNav();\n if (openedMenu) {\n if (openedMenu.classList.contains('agora-header-burger-navigation')) {\n navigationTab(evt, openedMenu);\n } else {\n const focusableElements = openedMenu.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n trapFocus(evt, focusableElements);\n }\n }\n }\n };\n\n current?.addEventListener('click', handleClickOutside);\n document.addEventListener('keydown', keydownHandler);\n\n return () => {\n current?.removeEventListener('click', handleClickOutside);\n document.removeEventListener('keydown', keydownHandler);\n };\n }, [backdropVisible, navigationTab]);\n\n // #endregion \"BACKDROP\"\n\n // #region \"DRAWER\"\n const refDrawer = useRef<DrawerRef>(null);\n const [drawerContent, setDrawerContent] = useState<DrawerContentProps | null | undefined>(null);\n\n const drawerClassNames = classNames('agora-drawer-authentication', {\n darkMode: darkModeHeader\n });\n\n const callSetDrawerContent = (val: DrawerContentProps | null | undefined) => setDrawerContent(val);\n\n const [headerDrawerHeight, setHeaderDrawerHeight] = useState(0);\n const [footerDrawerHeight, setFooterDrawerHeight] = useState(0);\n\n const handleCloseDrawer = () => {\n refDrawer.current?.closeDrawer();\n document.body.classList.remove('overflow-hidden');\n };\n\n const handleFooterDrawer = (onClick: () => void) => {\n handleCloseDrawer();\n onClick();\n };\n\n useEffect(() => {\n const { current } = refDrawer;\n\n const headerResize = () => {\n if (refDrawer.current) {\n setHeaderDrawerHeight(\n (refDrawer.current.current?.current as HTMLElement).querySelector('nav')?.previousElementSibling?.clientHeight ?? 0\n );\n setFooterDrawerHeight(\n (refDrawer.current.current?.current as HTMLElement).querySelector('nav')?.nextElementSibling?.clientHeight ?? 0\n );\n }\n };\n\n const keydownHandler = (evt: KeyboardEvent) => {\n if (evt.code === 'Escape') {\n handleClickOutside();\n document.body.classList.remove('overflow-hidden');\n }\n if (evt.key === 'Tab' && current) {\n const openedMenu = getOpenMenuNav();\n if (openedMenu) {\n const focusableElements = openedMenu.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n trapFocus(evt, focusableElements);\n }\n }\n };\n\n headerResize();\n\n window.addEventListener('resize', headerResize);\n document.addEventListener('keydown', keydownHandler);\n\n return () => {\n window.removeEventListener('resize', headerResize);\n document.removeEventListener('keydown', keydownHandler);\n };\n }, [drawerContent]);\n\n // #endregion \"DRAWER\"\n\n // #region \"GENERAL HEADER\"\n const headerGeneralOptionsClone = { ...headerGeneralOptions };\n headerGeneralOptionsClone.darkModeHeaderGeneralOptions = darkModeHeader;\n\n const headerGeneralOptionsClassNames = classNames('agora-header-general z-sticky', {\n darkMode: stringToBoolean(darkModeHeader)\n });\n\n // #endregion \"GENERAL HEADER\"\n\n // #region \"PRIMARY HEADER\"\n\n const headerPrimaryNavigationClone = { ...headerPrimaryNavigation };\n headerPrimaryNavigationClone.darkModeHeaderNavigation = darkModeHeader;\n\n const headerPrimaryNavigationClassNames = classNames('agora-header-primary z-sticky', {\n darkMode: stringToBoolean(darkModeHeader)\n });\n\n // #endregion \"PRIMARY HEADER\"\n\n // #region \"SECONDARY HEADER\"\n\n const [headerSecondaryNav, setHeaderSecondaryNav] = useState<HeaderNavigationProps | undefined | null>(null);\n\n useEffect(() => {\n if (headerPrimaryNavigationClone.menuItemsHeaderNavigation) {\n const menu = headerPrimaryNavigationClone.menuItemsHeaderNavigation.filter((_i, index) => index < 5);\n const currentMenuIndex = menu.findIndex((item: MenuProps) => item.menuItem['aria-current'] === 'page');\n setHeaderSecondaryNav(\n menu[currentMenuIndex]?.relatedNavMenu ??\n ({\n ...menu[currentMenuIndex],\n relatedNavMenu: {\n headerNavigationLegalSentence: headerPrimaryNavigationClone.headerNavigationLegalSentence,\n menuItemsHeaderNavigation: []\n }\n } as unknown as HeaderNavigationProps)\n );\n }\n }, [headerPrimaryNavigationClone.headerNavigationLegalSentence, headerPrimaryNavigationClone.menuItemsHeaderNavigation]);\n\n const hasHeaderSecondaryNavigationClone = hasHeaderSecondaryNavigation;\n\n const headerSecondaryNavigationClassNames = classNames('agora-header-secondary z-sticky pt-16', {\n darkMode: stringToBoolean(darkModeHeader)\n });\n // #endregion \"SECONDARY HEADER\"\n\n // #region \"SCROLL\"\n\n const [scrolled, setScrolled] = useState<boolean>(false);\n\n useEffect(() => {\n const onScroll: EventListener = () => {\n const primaryNav = document.querySelector('.agora-header-primary');\n const secondaryNav = document.querySelector('.agora-header-secondary');\n const burgerNav = document.querySelector('.agora-header-burger-navigation');\n\n setScrolled((last) => !last);\n\n if (window.scrollY === 0 && !isMobile && !isTablet) {\n primaryNav?.removeAttribute('hidden');\n secondaryNav?.removeAttribute('hidden');\n primaryNav?.classList.add('fade-in-up');\n secondaryNav?.classList.add('fade-in-up');\n burgerNav?.setAttribute('hidden', 'true');\n burgerNav?.classList.remove('fade-in-up');\n setTimeout(() => {\n primaryNav?.classList.remove('fade-in-up');\n secondaryNav?.classList.remove('fade-in-up');\n }, 550);\n }\n\n if (scrolled) {\n return;\n }\n\n if (window.scrollY > 1 && !isMobile && !isTablet) {\n primaryNav?.setAttribute('hidden', 'true');\n secondaryNav?.setAttribute('hidden', 'true');\n primaryNav?.classList.remove('fade-in-up');\n secondaryNav?.classList.remove('fade-in-up');\n burgerNav?.removeAttribute('hidden');\n burgerNav?.classList.add('fade-in-up');\n }\n };\n\n window.addEventListener('scroll', onScroll);\n\n return () => window.removeEventListener('scroll', onScroll);\n }, [isMobile, isTablet, scrolled, setScrolled]);\n // #endregion \"SCROLL\"\n\n // #region \"MENU BURGER\"\n\n const headerBurgerNavigationClassNames = classNames('agora-header-burger-navigation', {\n darkMode: stringToBoolean(darkModeHeader)\n });\n\n useEffect(() => {\n const resizeMenuWithBurger = () => {\n const primaryNav = document.querySelector('.agora-header-primary');\n const secondaryNav = document.querySelector('.agora-header-secondary');\n const burgerNav = document.querySelector('.agora-header-burger-navigation');\n if (isMobile || isTablet) {\n handleClickOutside();\n primaryNav?.setAttribute('hidden', 'true');\n secondaryNav?.setAttribute('hidden', 'true');\n burgerNav?.removeAttribute('hidden');\n } else {\n window.scrollTo(0, 0);\n handleClickOutside();\n primaryNav?.removeAttribute('hidden');\n secondaryNav?.removeAttribute('hidden');\n burgerNav?.setAttribute('hidden', 'true');\n }\n };\n\n resizeMenuWithBurger();\n\n window.addEventListener('resize', resizeMenuWithBurger);\n return () => {\n window.removeEventListener('resize', resizeMenuWithBurger);\n };\n }, [isMobile, isTablet]);\n\n // #endregion \"MENU BURGER\"\n\n const menuItemWithFreeContent = headerPrimaryNavigationClone?.menuItemsHeaderNavigation?.find(\n (el) => el.relatedNavMenu?.freeMenuItemsHeaderNavigation !== undefined\n );\n\n const [heightGeneralNav, setHeightGeneralNav] = useState(0);\n const [heightPrimaryNav, setHeightPrimaryNav] = useState(0);\n const [heightSecondaryNav, setHeightSecondaryNav] = useState(0);\n\n useEffect(() => {\n if (document) {\n const generalNavElem = document.querySelector('.agora-header-general');\n if (generalNavElem) {\n setHeightGeneralNav(generalNavElem.clientHeight);\n }\n\n const primaryNavElem = document.querySelector('.agora-header-primary');\n if (primaryNavElem) {\n setHeightPrimaryNav(primaryNavElem.clientHeight);\n }\n\n const secondaryNavElem = document.querySelector('.agora-header-secondary');\n if (secondaryNavElem) {\n setHeightSecondaryNav(secondaryNavElem.clientHeight);\n }\n }\n }, []);\n\n // This only need, because Firefox not has in production mode the \":has\" css attribute, but is planned on next versions (so we keep this and css lines)\n useEffect(() => document.querySelector('.agora-header')?.parentElement?.classList.add('sticky', 'top-0', 'z-sticky'), []);\n\n return (\n <>\n <div className=\"relative z-sticky agora-header\">\n {stringToBoolean(isHomepage) && <h1 className=\"sr-only\">{headerSEO}</h1>}\n {stringToBoolean(hasHeaderGeneralOptions) && headerGeneralOptionsClone?.menuItemsHeaderGeneralOptions && (\n <div className={headerGeneralOptionsClassNames}>\n <HeaderGeneralOptions\n current={backdropRef.current}\n backdropVisible={backdropVisible}\n setBackdropVisible={callSetBackdropVisible}\n refDrawer={refDrawer}\n setDrawerContent={callSetDrawerContent}\n {...headerGeneralOptionsClone}\n />\n </div>\n )}\n {stringToBoolean(hasHeaderPrimaryNavigation) && (\n <div className={headerPrimaryNavigationClassNames}>\n <HeaderNavigation\n current={backdropRef.current}\n backdropVisible={backdropVisible}\n setBackdropVisible={callSetBackdropVisible}\n {...headerPrimaryNavigationClone}\n headerNavigationType=\"primary\"\n optionsMenuOverflow={{ maxHeight: `calc(100vh - ${heightGeneralNav + heightPrimaryNav}px)` }}\n />\n </div>\n )}\n {stringToBoolean(hasHeaderSecondaryNavigationClone) &&\n headerSecondaryNav &&\n (headerSecondaryNav?.menuItemsHeaderNavigation || headerSecondaryNavigation?.headerNavigationContent) && (\n <div className={headerSecondaryNavigationClassNames}>\n <HeaderNavigation\n {...headerSecondaryNav}\n darkModeHeaderNavigation={darkModeHeader}\n ariaLabelHeaderNavigation={headerSecondaryNavigation?.ariaLabelHeaderNavigation}\n headerNavigationContent={headerSecondaryNavigation?.headerNavigationContent}\n current={backdropRef.current}\n backdropVisible={backdropVisible}\n setBackdropVisible={callSetBackdropVisible}\n headerNavigationType=\"secondary\"\n optionsMenuOverflow={{ maxHeight: `calc(100vh - ${heightGeneralNav + heightPrimaryNav + heightSecondaryNav}px)` }}\n />\n </div>\n )}\n {headerPrimaryNavigationClone.menuItemsHeaderNavigation && (\n <div className={headerBurgerNavigationClassNames} hidden>\n <HeaderBurgerNavigation\n menuLabel={menuLabel}\n headerSecondaryNavigation={headerSecondaryNavigation}\n headerPrimaryNavigation={headerPrimaryNavigationClone}\n darkModeHeader={darkModeHeader}\n current={backdropRef.current}\n backdropVisible={backdropVisible}\n setBackdropVisible={callSetBackdropVisible}\n hasHeaderGeneralOptions={hasHeaderGeneralOptions}\n headerGeneralOptions={headerGeneralOptions}\n hasHeaderPrimaryNavigation={hasHeaderPrimaryNavigation}\n hasHeaderSecondaryNavigation={hasHeaderSecondaryNavigationClone}\n hasBackButtonBurger={hasBackButtonBurger}\n backButtonLabelBurger={backButtonLabelBurger}\n handleBackButtonBurger={handleBackButtonBurger}\n headerSEO={headerSEO}\n isHomepage={isHomepage}\n />\n {menuItemWithFreeContent?.menuItem['aria-current'] === 'page' && (\n <div className=\"container mx-auto flex xs:justify-start md:justify-end py-16\">\n {menuItemWithFreeContent.relatedNavMenu?.freeMenuItemsHeaderNavigation}\n </div>\n )}\n </div>\n )}\n </div>\n {backdropVisible && <div className=\"z-backdrop bg-[var(--color-backdrop)] absolute w-full h-screen\" ref={backdropRef} />}\n\n <Drawer className={drawerClassNames} position=\"right\" dismissOnEscape ref={refDrawer} onClickedOutside={handleClickOutside}>\n {drawerContent && (\n <>\n <div>\n <Button\n className=\"agora-drawer-header\"\n variant=\"primary\"\n appearance=\"solid\"\n hasIcon\n fullWidth\n trailingIcon=\"agora-line-chevron-right\"\n trailingIconHover=\"agora-solid-chevron-right\"\n onClick={handleCloseDrawer}\n >\n {drawerContent.headerLabel}\n </Button>\n </div>\n <nav\n aria-label={drawerContent.menuDrawer['aria-label']}\n className=\"overflow-auto\"\n style={{ maxHeight: `calc(100vh - ${headerDrawerHeight + footerDrawerHeight}px)` }}\n >\n <ul role=\"menubar\">\n {drawerContent.menuDrawer.items.map((c, ind) => {\n const keyDrw = `menu-drawer-${ind}`;\n return (\n <li role=\"none\" key={keyDrw}>\n <Anchor\n className=\"agora-drawer-menu-item\"\n appearance=\"link\"\n variant=\"neutral\"\n hasIcon\n fullWidth\n leadingIcon={c.leadingIcon}\n leadingIconHover={c.leadingIconHover}\n href={c.href}\n role=\"menuitem\"\n >\n {c.children}\n </Anchor>\n </li>\n );\n })}\n </ul>\n </nav>\n <div className=\"absolute bottom-0 w-full\">\n <Button\n className=\"agora-drawer-footer\"\n variant=\"neutral\"\n appearance=\"link\"\n hasIcon\n fullWidth\n leadingIcon=\"agora-line-log-out\"\n leadingIconHover=\"agora-solid-log-out\"\n onClick={() => handleFooterDrawer(drawerContent.footer.onClick)}\n >\n {drawerContent.footer.footerLabel}\n </Button>\n </div>\n </>\n )}\n </Drawer>\n </>\n );\n};\n\nexport { Header };\n","import type { Config } from 'tailwindcss';\r\n\r\nconst AgoraTailwindConfig = {\r\n content: [],\r\n theme: {\r\n extend: {\r\n borderWidth: {\r\n DEFAULT: '1px',\r\n 0: '0',\r\n 1: '1px',\r\n 2: '2px',\r\n 3: '3px',\r\n 4: '4px'\r\n },\r\n content: {\r\n empty: \"''\"\r\n },\r\n gridTemplateRows: {\r\n 7: 'repeat(7, minmax(0, 1fr))',\r\n 8: 'repeat(8, minmax(0, 1fr))',\r\n 9: 'repeat(9, minmax(0, 1fr))',\r\n 10: 'repeat(10, minmax(0, 1fr))'\r\n },\r\n gridTemplateColumns: {\r\n '1-auto': 'auto',\r\n '2-auto': 'auto auto',\r\n '3-auto': 'auto auto auto',\r\n '4-auto': 'auto auto auto auto',\r\n '5-auto': 'auto auto auto auto auto',\r\n '6-auto': 'auto auto auto auto auto auto',\r\n '7-auto': 'auto auto auto auto auto auto auto',\r\n '8-auto': 'auto auto auto auto auto auto auto auto',\r\n '9-auto': 'auto auto auto auto auto auto auto auto auto',\r\n '10-auto': 'auto auto auto auto auto auto auto auto auto auto',\r\n '11-auto': 'auto auto auto auto auto auto auto auto auto auto auto',\r\n '12-auto': 'auto auto auto auto auto auto auto auto auto auto auto auto'\r\n },\r\n opacity: {\r\n 16: '0.16',\r\n 32: '0.32'\r\n },\r\n minWidth: {\r\n initial: 'initial'\r\n },\r\n maxWidth: {\r\n initial: 'initial'\r\n },\r\n minHeight: {\r\n initial: 'initial'\r\n },\r\n maxHeight: {\r\n initial: 'initial'\r\n },\r\n zIndex: {\r\n dropdown: '1000',\r\n backdrop: '2000',\r\n sticky: '3000',\r\n fixed: '4000',\r\n drawer: '5000',\r\n dialog: '6000',\r\n toast: '7000',\r\n tooltip: '8000'\r\n }\r\n },\r\n screens: {\r\n xs: '360px',\r\n md: '768px',\r\n xl: '1200px'\r\n },\r\n fontFamily: {\r\n sans: ['Noto Sans', 'sans-serif']\r\n },\r\n fontSize: {\r\n 'base': '16px',\r\n // Typography / S\r\n 's-regular': ['0.875rem', { lineHeight: '1.5rem', letterSpacing: '0', fontWeight: '400' }],\r\n 's-medium': ['0.875rem', { lineHeight: '1.5rem', letterSpacing: '0', fontWeight: '500' }],\r\n 's-semibold': ['0.875rem', { lineHeight: '1.5rem', letterSpacing: '0', fontWeight: '600' }],\r\n 's-bold': ['0.875rem', { lineHeight: '1.5rem', letterSpacing: '0', fontWeight: '700' }],\r\n // Typography / M\r\n 'm-light': ['1rem', { lineHeight: '1.75rem', letterSpacing: '0', fontWeight: '300' }],\r\n 'm-regular': ['1rem', { lineHeight: '1.75rem', letterSpacing: '0', fontWeight: '400' }],\r\n 'm-medium': ['1rem', { lineHeight: '1.75rem', letterSpacing: '0', fontWeight: '500' }],\r\n 'm-semibold': ['1rem', { lineHeight: '1.75rem', letterSpacing: '0', fontWeight: '600' }],\r\n 'm-bold': ['1rem', { lineHeight: '1.75rem', letterSpacing: '0', fontWeight: '700' }],\r\n // Typography / L\r\n 'l-light': ['1.25rem', { lineHeight: '2rem', letterSpacing: '0', fontWeight: '300' }],\r\n 'l-regular': ['1.25rem', { lineHeight: '2rem', letterSpacing: '0', fontWeight: '400' }],\r\n 'l-medium': ['1.25rem', { lineHeight: '2rem', letterSpacing: '0', fontWeight: '500' }],\r\n 'l-semibold': ['1.25rem', { lineHeight: '2rem', letterSpacing: '0', fontWeight: '600' }],\r\n 'l-bold': ['1.25rem', { lineHeight: '2rem', letterSpacing: '0', fontWeight: '700' }],\r\n // Typography / XL\r\n 'xl-light': ['1.5rem', { lineHeight: '2.25rem', letterSpacing: '0', fontWeight: '300' }],\r\n 'xl-regular': ['1.5rem', { lineHeight: '2.25rem', letterSpacing: '0', fontWeight: '400' }],\r\n 'xl-medium': ['1.5rem', { lineHeight: '2.25rem', letterSpacing: '0', fontWeight: '500' }],\r\n 'xl-semibold': ['1.5rem', { lineHeight: '2.25rem', letterSpacing: '0', fontWeight: '600' }],\r\n 'xl-bold': ['1.5rem', { lineHeight: '2.25rem', letterSpacing: '0', fontWeight: '700' }],\r\n // Typography / 2XL\r\n '2xl-light': ['2rem', { lineHeight: '3rem', letterSpacing: '0', fontWeight: '300' }],\r\n '2xl-regular': ['2rem', { lineHeight: '3rem', letterSpacing: '0', fontWeight: '400' }],\r\n '2xl-medium': ['2rem', { lineHeight: '3rem', letterSpacing: '0', fontWeight: '500' }],\r\n '2xl-semibold': ['2rem', { lineHeight: '3rem', letterSpacing: '0', fontWeight: '600' }],\r\n '2xl-bold': ['2rem', { lineHeight: '3rem', letterSpacing: '0', fontWeight: '700' }],\r\n // Typography / 3XL\r\n '3xl-light': ['2.5rem', { lineHeight: '3.75rem', letterSpacing: '0', fontWeight: '300' }],\r\n '3xl-regular': ['2.5rem', { lineHeight: '3.75rem', letterSpacing: '0', fontWeight: '400' }],\r\n '3xl-medium': ['2.5rem', { lineHeight: '3.75rem', letterSpacing: '0', fontWeight: '500' }],\r\n '3xl-semibold': ['2.5rem', { lineHeight: '3.75rem', letterSpacing: '0', fontWeight: '600' }],\r\n '3xl-bold': ['2.5rem', { lineHeight: '3.75rem', letterSpacing: '0', fontWeight: '700' }]\r\n },\r\n borderRadius: {\r\n none: '0px',\r\n 4: '4px',\r\n 8: '8px',\r\n 16: '16px',\r\n 24: '24px',\r\n 32: '32px',\r\n full: '100%'\r\n },\r\n colors: {\r\n transparent: 'transparent',\r\n white: '#FFFFFF',\r\n black: '#000000',\r\n focus: '#F408FC',\r\n backdrop: 'rgba(43, 54, 60, 0.96)',\r\n mask: {\r\n image: 'rgba(43, 54, 60, 0.8)'\r\n },\r\n neutral: {\r\n 50: '#F7F8FA',\r\n 100: '#F1F3F8',\r\n 200: '#E1E4EA',\r\n 300: '#CDD2DC',\r\n 400: '#BAC0CC',\r\n 500: '#9CA6B8',\r\n 600: '#8893AA',\r\n 700: '#64718B',\r\n 800: '#475164',\r\n 900: '#2B363C'\r\n },\r\n primary: {\r\n 50: '#FAFCFF',\r\n 100: '#F2F6FF',\r\n 200: '#E5EEFF',\r\n 300: '#BBD1FD',\r\n 400: '#5F93FC',\r\n 500: '#1A65FA',\r\n 600: '#034AD8',\r\n 700: '#0338A2',\r\n 800: '#002B82',\r\n 900: '#021C51'\r\n },\r\n secondary: {\r\n 50: '#F5FBFF',\r\n 100: '#EBF6FF',\r\n 200: '#E3F4FF',\r\n 300: '#CCEAFF',\r\n 400: '#A0D8FE',\r\n 500: '#1CA3FC',\r\n 600: '#1993E3',\r\n 700: '#1682CA',\r\n 800: '#12669E',\r\n 900: '#0D4C75'\r\n },\r\n informative: {\r\n 50: '#E5F6FF',\r\n 100: '#E5F6FF',\r\n 200: '#A5DEFF',\r\n 300: '#77CEFF',\r\n 400: '#49BCFF',\r\n 500: '#0079BF',\r\n 600: '#00598C',\r\n 700: '#0B486B',\r\n 800: '#083752',\r\n 900: '#00121C'\r\n },\r\n success: {\r\n 50: '#E5FFF6',\r\n 100: '#C2F2E2',\r\n 200: '#7ACCB1',\r\n 300: '#36B289',\r\n 400: '#1F9970',\r\n 500: '#008558',\r\n 600: '#00724C',\r\n 700: '#005539',\r\n 800: '#013926',\r\n 900: '#001C13'\r\n },\r\n warning: {\r\n 50: '#FFF9E5',\r\n 100: '#FFF2CC',\r\n 200: '#FFE699',\r\n 300: '#FFE699',\r\n 400: '#FFD966',\r\n 500: '#FBCB3C',\r\n 600: '#FBBB3C',\r\n 700: '#F2A222',\r\n 800: '#B06112',\r\n 900: '#80460D'\r\n },\r\n danger: {\r\n 50: '#FEF1F2',\r\n 100: '#FEE1E3',\r\n 200: '#FEC8CC',\r\n 300: '#FCA6AD',\r\n 400: '#F8727D',\r\n 500: '#DE2D3B',\r\n 600: '#D12332',\r\n 700: '#C41826',\r\n 800: '#B20917',\r\n 900: '#86131D'\r\n }\r\n },\r\n spacing: {\r\n 0: '0px',\r\n 8: '8px',\r\n 16: '16px',\r\n 24: '24px',\r\n 32: '32px',\r\n 40: '40px',\r\n 48: '48px',\r\n 56: '56px',\r\n 64: '64px',\r\n 72: '72px',\r\n 80: '80px',\r\n 88: '88px',\r\n 96: '96px',\r\n 104: '104px',\r\n 112: '112px',\r\n 120: '120px',\r\n 128: '128px',\r\n 256: '256px',\r\n '1/4': '25%',\r\n '1/2': '50%',\r\n 'full': '100%',\r\n 'initial': 'initial'\r\n },\r\n boxShadow: {\r\n 'none': '0 0 #0000',\r\n 'top-lower': '0px -4px 4px 0px rgba(0, 0, 0, 0.16)',\r\n 'top-low': '0px -8px 8px 0px rgba(0, 0, 0, 0.08)',\r\n 'top-medium': '0px -16px 16px 0px rgba(0, 0, 0, 0.08)',\r\n 'top-high': '0px -16px 16px 0px rgba(0, 0, 0, 0.16)',\r\n 'top-higher': '0px -16px 16px 0px rgba(0, 0, 0, 0.32)',\r\n 'center-lower': '0px 0px 4px 0px rgba(0, 0, 0, 0.32)',\r\n 'center-low': '0px 0px 8px 0px rgba(0, 0, 0, 0.08)',\r\n 'center-medium': '0px 0px 16px 0px rgba(0, 0, 0, 0.08)',\r\n 'center-high': '0px 0px 16px 0px rgba(0, 0, 0, 0.16)',\r\n 'center-higher': '0px 0px 16px 0px rgba(0, 0, 0, 0.32)',\r\n 'bottom-lower': '0px 4px 4px 0px rgba(0, 0, 0, 0.16)',\r\n 'bottom-low': '0px 8px 8px 0px rgba(0, 0, 0, 0.08)',\r\n 'bottom-medium': '0px 16px 16px 0px rgba(0, 0, 0, 0.08)',\r\n 'bottom-high': '0px 16px 16px 0px rgba(0, 0, 0, 0.16)',\r\n 'bottom-higher': '0px 16px 16px 0px rgba(0, 0, 0, 0.32)',\r\n 'inner': '0px 4px 4px 0px rgba(0, 0, 0, 0.32) inset'\r\n },\r\n transitionDuration: {\r\n DEFAULT: '200ms'\r\n },\r\n container: {\r\n padding: {\r\n xs: '32px',\r\n md: '64px',\r\n xl: '0px'\r\n }\r\n }\r\n },\r\n plugins: [\r\n // Override to class .container max-screen resolution\r\n ({ addComponents }: any) => {\r\n addComponents({\r\n '.container': {\r\n maxWidth: '1216px'\r\n }\r\n });\r\n },\r\n\r\n // Function to use variable colors inside scss\r\n // Ex: var(--color-primary-100)\r\n function ({ addBase, theme }: any) {\r\n function extractColorVars(colorObj: any, colorGroup = ''): any {\r\n return Object.keys(colorObj).reduce((vars, colorKey) => {\r\n const value = colorObj[colorKey];\r\n\r\n const newVars =\r\n typeof value === 'string' ? { [`--color${colorGroup}-${colorKey}`]: value } : extractColorVars(value, `-${colorKey}`);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\r\n return { ...vars, ...newVars };\r\n }, {});\r\n }\r\n\r\n addBase({\r\n ':root, ::backdrop': extractColorVars(theme('colors'))\r\n });\r\n }\r\n ],\r\n safelist: [\r\n {\r\n //pattern to be able to dynamically build stories in which we change the DOM\r\n pattern: /(border|bg|fill|text|stroke)-[^/]+$/,\r\n variants: ['hover', 'focus', 'xs', 'md', 'xl']\r\n }\r\n ]\r\n} satisfies Config;\r\n\r\nexport { AgoraTailwindConfig };\r\n"],"names":["hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","value","newClass","module","stringToBoolean","EmptyIcon","props","newProps","React","iconList","lazy","allIcons","c","isBundledIcon","name","iconsCache","loadIcon","cachedIcon","lazyComponent","Icon","dimensions","onIconLoad","onIconError","_a","onLoad","onError","LazyComponent","fullProps","Suspense","InnerAccordion","children","hasIcon","icon","title","Component","className","expanded","onExpanded","onCollapsed","ref","innerRef","useRef","generatedId","useId","propsClone","useMemo","isExpanded","setIsExpanded","useState","useImperativeHandle","AccordionClassName","AccordionBodyClassName","AccordionIconClassName","toggleExpanded","last","onMouseDownHandler","evt","onMouseUpHandler","onMouseClickHandler","Accordion","forwardRef","debounce","func","timeout","timer","args","useDebounceHook","setArgs","useEffect","normalizeText","text","getDateString","d","dayString","monthString","yearString","createSyntheticChangeEvent","target","event","isDefaultPrevented","isPropagationStopped","preventDefault","stopPropagation","IconWrapper","iconHover","wrapperClassName","InnerAnchor","darkMode","appearance","variant","fullWidth","iconOnly","leadingIcon","leadingIconHover","trailingIcon","trailingIconHover","inline","role","anchorClassName","onKeyDownHandler","_b","onKeyUpHandler","_c","_d","onClickHandler","shouldTriggerClick","Anchor","InnerButton","buttonClassName","onMouseLeaveHandler","Button","InnerInteractiveAvatar","onActivate","alt","ariaHasPopup","ariaExpanded","ariaCurrent","ariaLabel","InteractiveAvatar","InnerNonInteractiveAvatar","NonInteractiveAvatar","TOOLTIP_CHANGE_EVENT_NAME","Tooltip","hasTitle","position","alignment","description","top","setTop","left","setLeft","width","setWidth","height","setHeight","setDimensions","useCallback","rect","TooltipContainerClassName","TooltipClassName","visibility","setVisibility","showTooltip","hideTooltip","handleEscapeKey","handleTooltipChange","parsedChildren","Children","child","isValidElement","cloneElement","cb","topPositioning","bottomPositioning","leftPositioning","rightPositioning","tooltipPosition","TooltipContent","memoPortal","createPortal","Avatar","avatarType","srcPath","hasBadge","information","badgePosition","badgeVariant","tooltipAlignment","interactive","containerClasses","memoContent","avatarClasses","badgeClasses","BreadcrumbDesktop","items","BreadcrumbClassName","iconClassName","link","index","BreadcrumbMobile","sectionTitle","buttonRef","listRef","closeMenuClickHandler","handleTabKey","linkList","liParentNode","setKeyboardKeydownBehavior","firstLink","expandMenu","id","Breadcrumb","baseClasses","desktopBreadcrumbClassnames","mobileBreadcrumbClassnames","InnerCheckbox","label","hasError","hideLabel","required","inputRef","currentChecked","setCurrentChecked","handleCustomCheckboxKeyUp","handleCustomCheckboxClick","handleChange","inputWrapper","checked","Checkbox","InnerDialog","visible","fullScreen","dismissOnBackdropClick","dismissOnEscape","innerDialogRef","isVisible","setIsVisible","show","hide","handleKeyDown","focusableElements","firstElement","lastElement","handleClickOutside","containerClassNames","Dialog","InnerDrawer","onClickedOutside","open","setOpen","drawerRef","DrawerClassName","handleClose","fn","_f","_e","handleOpen","dialogElem","Drawer","InnerGlossaryLetters","letters","NavElementClass","GlossaryContainerClass","letter","status","anchorProps","isDisabled","tabIndex","href","GlossaryLetters","InnerFeedback","feedbackState","feedbackText","feedbackWrapperClasses","feedbackIconWrapperClasses","feedbackTextClasses","feedbackStateIconsMap","Feedback","EMAIL_REGEXP","InnerInputEmailBar","hasLabel","hasFeedback","onSendHandler","pattern","onChange","email","setEmail","isValidEmail","setIsValidEmail","handleChangeEvent","onSendButtonClick","inputWrapperClassNames","labelClasses","InputEmailBar","InnerInputFile","maxSize","maxCount","extensionsBlackList","addedLabel","fileListLabel","removeFileLabel","announceRemovedFileLabel","fileDropZoneAriaLabel","dropYourFilesHereLabel","allowedFilesAriaLabel","uploadFilesLabel","propId","fileLabel","rest","formattedExtensions","extension","isDraggingOver","setIsDraggingOver","files","setFiles","lastRemoved","setLastRemoved","announceMessage","setAnnounceMessage","dropRef","fileInputRef","fileDropContentClassName","handleButtonClick","fileInput","isFileExtensionAllowed","fileName","fileExtension","generateFileListAnnouncement","fileList","file","addFiles","filesToAdd","validFiles","prevFiles","handleFileChange","selectedFiles","handleDragOver","modifiedEvent","handleDragLeave","handleDrop","droppedFiles","handleRemoveFile","fileToRemove","e","isFileAdded","actionMessage","actionFile","fileNamesMessage","updatedFileListAnnouncement","fullMessage","handlePaste","clipboardData","clipboardFiles","list","f","syntheticEvent","fileIndex","InputFile","InnerInputNumber","increaseButtonAltText","decreaseButtonAltText","min","max","inputWrapperRef","currentValue","setCurrentValue","inputElem","isHovered","setIsHovered","inputClassBuilder","inputWrapperClasses","labelSectionClasses","inputClasses","leadingIconWrapperClasses","handleStepUp","handleStepDown","handleMouseHoovering","isHover","InputNumber","InnerInputPassword","togglePasswordAltIconText","showPassword","setShowPassword","handleTogglePassword","InputPassword","InnerRange","type","disabled","orientation","propValue","currentVal","setCurrentVal","prevPropValue","innerRefs1","innerRefs2","values","handleRangeChange","firstValue","secondValue","getBackground","primaryColor","secondaryColor","percent","percent0","percent1","RangeClassName","RailClassName","InputClassName","RangeStyle","handleMouseUp","handleMouseDown","InputRange","InnerInputSearch","InputSearch","InnerInputSearchBar","hasVoiceActionButton","voiceActionAltText","searchActionAltText","onVoiceActivate","onSearchActivate","currentTarget","onVoiceButtonClick","onSearchButtonClick","InputSearchBar","InnerInputText","InputText","InnerInputTextArea","showCharCounter","charCounterClasses","InputTextArea","LinkWrapper","containerRef","anchorContainerClassName","innerAnchorElement","List","listStyle","startNumber","ComponentType","listChildren","allItems","data","idLi","item","InnerPill","circular","size","pillClassName","Pill","InnerProgressBar","hidePercentageValue","current","validatedValue","progressPercentage","percentageClasses","ProgressBar","InnerRadio","RadioButton","scribblesList","allScribbles","isBundledScribbles","scribblesCache","loadScribbles","cachedScribbles","lazyScribble","Scribbles","onScribblesLoad","onScribblesError","LazyScribble","SkipNavigationMultiple","containerSkipNavRef","multipleLinks","skipOptionsRef","ariaExpand","setAriaExpand","handleClick","content","handleFocus","handleBlur","handleKeyUp","code","allSkipMenuItems","currentIndexFocus","mi","handleSkipOptionControlKeyDownCapture","handleButtonSkipClick","handleButtonFocus","handleButtonBlur","handleButtonKeyUp","handleButtonControlKeyDownCapture","getFinal","elements","lvl","final","getNotDirectAnchor","initLink","childData","isLink","groupAnchors","recursiveLinks","links","level","getKeys","keyIndex","o","newLink","init","initLength","idx","menuSkipNavigation","element","Fragment","singleLink","buildAnchor","newSingleLink","SkipNavigationSingle","InnerSkipNavigation","multiple","navigationClassName","SkipNavigation","InnerInteractiveStatusCard","leadingIconName","InteractiveStatusCard","InnerNonInteractiveStatusCard","NonInteractiveStatusCard","InnerStatusCard","handleIcon","iconType","StatusCard","StepList","StepLisClass","stepListChildren","InnerSwitch","reverse","isOn","setIsOn","wrapperRef","handleCustomSwitchKeydown","handleCustomSwitchClick","switchWrapperClasses","markerClasses","switchLabelClasses","Switch","TabBody","TabHeader","Tab","Tabs","automaticActivation","onTabActivation","tabPanelRef","tabListRef","activeTab","setActiveTab","tabsHeaderData","setTabsHeaderData","tabsBodyData","setTabsBodyData","activateTab","header","body","handleTabListItemKeyDown","tabListItems","newActiveTab","focusedIndex","handleTabPanelKeydown","activeTabButton","tabPanelFocusProps","activeTabData","tabsClassName","tabListItemClassNames","InnerTag","tagClassName","buttonStyleMemo","Tag","ToastContext","createContext","useToastContext","useContext","Toast","closeLabel","removeToast","getIconNameForType","selectedType","handleCloseClick","toastContainerClassnames","useToast","toasts","setToasts","toast","prevToasts","t","duration","useWindowSize","isMounted","listener","ToastProvider","showToast","contextValue","memoToast","visibleToastsCount","InnerAccordionGroup","AccordionGroupClassName","generatedAccordionGroupId","childrenAccordions","itemsAccordions","refsMap","updateAllAccordions","prop","v","k","parsedAccordions","createRef","firstExpandedKey","r","AccordionGroup","InternalDropdownContext","useInternalDropdownContext","InnerInternalDropdownFilterSection","debounceTimeout","dropdownContext","applyFilter","next","prev","currentFilter","setCurrentFilter","debouncedApplyFilter","onInputChange","resetFilter","onKeyDownCaptureHandler","shiftKey","onMouseDownCaptureHandler","InternalDropdownFilterSection","InternalNoResults","OptionComponent","InternalDropdownOption","selected","filtered","iconPosition","parsedIconName","iconName","setIconName","selectOption","options","first","optionWrapperClasses","select","option","opt","clickHandler","applySolidIcon","lastIconName","applyLineIcon","SectionNameComponent","hideSectionName","sectionNameRef","isAllSectionOptionsSelected","hasSectionOptionsToInteract","selectSectionOptions","activeFilter","sectionHeight","allSelected","handleSectionClick","checkboxClassNames","sectionNameOptionClassNames","sectionNameClassNames","InternalDropdownSection","sectionId","optionsRefMap","sectionClassNames","sectionOptions","optionClassNames","newRef","optionHeight","InternalDropdownSelectAllSection","isAllSelected","isAllDisabled","selectAll","selectAllItemClassNames","selectAllLabel","searchable","optionsVisible","noSearchResults","context","sections","filterRef","maxHeightStyleProp","setMaxHeightStyleProp","getFilterSectionHeight","elem","val","getSelectAllSectionHeight","getVisibleSectionNamesHeight","visibleSections","heightCount","sectionName","getVisibleOptionsHeight","visibleOptions","visibleOptionsKeys","optionId","getListboxBorderWidths","computedStyle","borderTopWidth","borderBottomWidth","containedOptions","maxHeight","dropdownClasses","hasOptions","hasSectionsWithResults","allSectionResultsDisabled","visibleResults","sectionWithResults","hasMoreThanOneSection","s","section","InternalDropdown","useDropdownState","internalDropdownRef","onSearchChange","onShow","onHide","setSections","setOptions","parsedSectionProps","parsedOptionProps","sec","setActiveFilter","newFilter","lastFilter","lastOptions","newOptions","childrenVal","notFound","focusElem","fromVisibilityHidden","inputFilter","opts","domOptions","currentIndex","firstEffect","triggerOnChange","selectedOptions","isMultiSelection","isProvidedOption","availableOptions","hasOptionsUnselected","allOptionsSelected","isInSectionProvided","hasOptionsNotDisabled","dropdownState","firstCall","sectionChild","optionChild","Dropdown","DropdownSection","DropdownOption","VisibleCountAvatarGroup","avatarCount","visibleCount","visibleCountAriaLabel","countValue","avatarCountList","avatar","dropdownRef","isDropdownVisible","setIsDropdownVisible","handleKeyDownCapture","onMouseEnterHandler","avatarKey","AvatarGroup","avatarGroupClasses","totalVisibleAvatars","renderAvatarListItem","InnerBackToTop","tooltipVariant","hasTooltipTitle","tooltipTitle","tooltipDescription","backToTopRef","backToTopClassName","goToTop","BackToTop","ButtonGroup","selectedButtonIndexes","setSelectedButtonIndexes","childrenButtons","ret","rawIndexes","newSelectedButtonIndexes","buttonIndex","selectedButtons","_","indx","buttonGroupClasses","isSelected","CheckboxGroup","legend","childrenCheckboxes","allCheckboxes","innerOnChange","nativeEvent","legendToUse","LoaderDialog","subtitle","loaderClass","LoaderDialogContext","useLoaderDialogContext","LoaderDialogProvider","dialogRef","dialogProps","setDialogProps","ariaLiveMessage","setAriaLiveMessage","showLoader","currentDialogProps","str","hideLoader","iconAltText","hasChildren","lineClassName","solidClassName","ContentMenuItem","itemType","noIcons","leadingClassName","trailingClassName","childrenClassName","changeIconOpen","changeIconOpenHover","InnerMenuItem","actionItem","vertically","menuItemClassName","setAriaExpanded","menuItemRef","previousAriaExpanded","keydownHandler","MenuItem","ModalContext","useModalContext","ModalDialog","closeButtonLabel","ModalProvider","dialogChildren","setDialogChildren","currentDialogChildren","PopupContext","usePopupContext","PopupDialog","closeAriaLabel","popupHeaderRef","setMaxHeight","dialogClassNames","titleClassNames","PopupProvider","ProgressBarGroup","hidePercentageValues","sequential","progressBars","activeCurrent","foundCurrent","currentCount","p","firstNotCompletedIndex","sumMaxValues","sumValues","renderProgressBars","isCurrent","progressValue","RadioButtonGroup","generatedName","childrenRadioButtons","allRadioButtons","InnerSearchPage","pageNumber","SearchPage","InnerSearchPaginationNumberOverlayProps","SearchPaginationNumberOverlay","InnerSearchPagination","totalPages","hidePreviousPageButton","hideNextPageButton","boundaryCount","siblingCount","nextPageAriaLabel","previousPageAriaLabel","activePage","setActivePage","navArrowsClasses","prevPage","pages","showAllPagesContent","page","page_index","paginationContent","leftSiblingIndex","rightSiblingIndex","leftRange","middleRange","rightRange","visiblePages","shouldShowLeftDots","shouldShowRightDots","SearchPagination","FileList","removeFileButtonLabel","onFileRemove","replaceFileButtonLabel","onFileReplace","handleReplaceFile","fileToReplace","fileToRemoved","getParsedSizeString","bytes","decimals","decimalCases","sizes","getAvailableFileActions","fileListClassNames","actions","actionBtnProps","actionIndex","actionKey","extensionWhitelist","lastPoint","isNotDuplicated","filename","getFileInput","extensionWhiteList","onChangeHandler","input","validateFiles","lastFiles","newFiles","replaceValidation","hasErrors","duplicatedFiles","sizeExceededFiles","extensionForbiddenFiles","maxCountExceeded","useFileUpload","maxFileCount","maxFileSize","defaultFiles","trigger","setTrigger","errors","setErrors","getParsedMaxCount","resetFiles","initialFiles","validationErrors","removeFile","replaceFile","replaceFileName","targetIndex","handleInputFileChangeOnAdd","handleInputFileChangeOnReplace","InnerButtonUploader","selectedFilesLabel","extensionsInstructions","accept","maxCountExceededErrorLabel","maxSizeExceededErrorLabel","forbiddenExtensionErrorLabel","duplicatedFileErrorLabel","innerButtonRef","innerInputRef","labelText","setLabelText","handleOnChangeFiles","onAddFiles","onRemoveFile","onReplaceFile","onPasteFiles","canUpload","handleFileReplace","newFileToReplace","handleFileRemove","parsedErrorsMemo","parsedErrors","buttonContainerClassNames","errorMessage","errorKey","ButtonUploader","InnerDragAndDropUploader","dragAndDropLabel","separatorLabel","dragAreaRef","dragAndDropClassNames","DragAndDropUploader","useBlockedLink","parentCardRef","anchorRef","blockedLink","activateLink","onClickCaptureHandler","anchorElement","parentCardElem","CardArticle","pillLabel","pillVariant","mainAnchor","image","Heading","cardArticleRef","cardArticleAnchorRef","headingPlacement","anchorPlacement","mainAnchorClone","buildText","isAnchor","isHeading","cardClassNames","anchorContainerClassNames","CardCollection","cardCollectionRef","cardCollectionAnchorRef","CardCollectionClass","CardEmphasize","mainButton","cardEmphasizeClasseNames","iconProps","buttonProps","CardError","backLink","statusCodeMessage","CardLinksClasses","AgoraIllustrateBookmark","CardExpandable","showBookmarkIcon","bookmarkIconAlt","generatedAccordionId","CardExpandableClasses","onExpandedHandler","onCollapsedHandler","mappedChildren","clonedElement","CardFrame","cardFrameRef","cardFrameAnchorRef","cardFrameClassNames","cardFrameContainerClass","CardFullImage","cardFullImageClassName","CardHeroHelper","helpTopics","CardHeroHelperClasses","block","CardHeroIndex","cardIndex","CardHeroSitemap","anchors","highlightedLink","arrayLink","CardHeroSitemapClasses","InnerHighlightCard","CardHighlight","highlightAreaPosition","cardPosition","cardSize","cardHighlightClassName","isTablet","isMobile","CardHighlightNewsletter","cardHighlightNewsletterClassName","CardHightLightSingle","buttonAnchor","CardHighLightClasses","CardLinks","category","topics","anchorKey","topic","listItem","CardNoResults","CardNoResultsClasses","CardSearchResult","date","cardSearchResultRef","CardSearchResultClass","containerClass","CardSingle","cardSingleRef","cardSingleAnchorRef","CardSingleClasses","CardTopic","statusLabel","variantMemo","cardTopicRef","cardTopicAnchorRef","cardTopicClasseNames","cardStatusClasseNames","RatingButton","hasLikeButton","likeButtonVariant","likeButtonTitle","hasDislikeButton","dislikeButtonTitle","dislikeButtonVariant","pressedButton","setPressedButton","handleToogleButton","buttonType","createButton","buttonTitle","buttonClass","buttonVariant","ratingButtonClasses","ratingButtonWrapperClasses","InnerRating","starAriaLabel","totalStars","setTotalStars","setSelected","hoverIndex","setHoverIndex","stars","readOnly","inputRatingRefs","handleMouseEnter","handleMouseLeave","handleSelect","hadleChange","newValue","onkeyDownHandler","ratingStarClasses","starClasses","starKey","RatingStar","evaluate","message","showMessage","setShowMessage","feedbackClasses","DatePickerStateContext","DatePickerStateProvider","DEFAULT_MONTHS","DEFAULT_WEEK_DAYS","useDatePickerStateContext","ctx","months","weekDays","mapMonths","getAbbrWeekDays","wd","focusedMonth","focusedYear","newDate","isDateInSameMonthOfYear","date1","date2","isSameDay","parseInputDate","parts","day","month","year","parsedDate","DialogBody","isCalendarActive","setIsCalendarActive","parseDateFromTarget","dateString","focusAndSelectTargetDate","targetDate","onKeydownHandler","onFocusHandler","onBlurHandler","buildDay","currentDay","weekNumber","dayNumber","isInCurrentMonth","isFocusedDate","isSelectedDate","isToday","stringDate","tdDayClasses","dayClasses","trTdKey","ariaLabelForDay","labels","dayLabel","buildWeek","firstDayOfMonth","dayOfWeek","memoGrid","trCount","trKey","focusDay","DialogFooter","onOkPressed","additionalTodayProps","additionalCancelProps","additionalOkProps","DialogHeader","DatePickerDropdown","onCancel","initialized","setInitialized","selectedDate","setSelectedDate","focusedDate","setFocusedDate","cancel","managerMemo","MIN_YEAR","isValidDate","isLeapYear","InnerGroupedDate","handleInputDateKeydown","dayInputPlaceholder","monthInputPlaceholder","yearInputPlaceholder","setDay","setMonth","setYear","dayRef","monthRef","yearRef","validateDate","validateFebruaryDay","newDay","newMonth","newYear","newDayNumber","newMonthNumber","newYearNumber","handleDayChange","handleMonthChange","handleYearChange","handleInputsClear","handleTargetIsDay","dayValue","handleTargetIsMonth","monthValue","handleTargetIsYear","yearValue","handleInputKeyUp","handleCombinedInputKeyDown","formattedDay","formattedMonth","formattedYear","focus","groupedDateWrapperClasses","GroupedDate","InnerInputDate","calendarIconAriaLabel","previousYearAriaLabel","previousMonthAriaLabel","nextMonthAriaLabel","nextYearAriaLabel","monthsLabels","weekdaysLabels","focusedDayAriaLabel","selectedDayAriaLabel","todayDayAriaLabel","todayLabel","todayAriaLabel","cancelLabel","cancelAriaLabel","okLabel","okAriaLabel","defaultValue","parsedValue","groupedDateCurrentValue","setGroupedDateCurrentValue","overlayCurrentValue","setOverlayCurrentValue","overlayVisible","setOverlayVisible","wrapperClasses","showOverlay","hideOverlay","toggleOverlay","handleOnDismiss","handleDatePickerCancel","onGroupedDateChangeHandler","onOverlayChangeHandler","dropdownDatePickerLabels","InputDate","FlagsList","PhoneCountryCodes","l","PhoneCountryISOs","InnerInputPhone","defaultISO","defaultCode","searchInputAriaLabel","searchInputPlaceholder","searchNoResultsText","dropdownAriaLabel","hasValue","setHasValue","initial","searchForProp","country","currentCountry","setCurrentCountry","handleDropDownControlKeyUp","handleDropDownControlKeyDownCapture","onDropdownChange","selectedCountry","handleInputChange","handleDropDownControlSelectClicked","keypressHandler","wrapperClassNames","optionIndex","InputPhone","parseChildrenProps","allItemsEnabled","newSelectedData","InnerInputSelect","placeholder","pluralSelectedPlaceholder","allSelectedLabel","onSearchInputChange","isDropDownVisible","setIsDropDownVisible","controlWrapperRef","controlRef","selectedData","setSelectedData","mainWrapperClasses","controlClasses","stringOutputMemo","focusInput","onDropDownChange","onDropDownClickHandler","onDropDownKeyUpHandler","InputSelect","TableBody","TableCaption","TableCell","headerKey","headerLabel","TableFooter","TableHeader","DESCENDING_ICON_NAMES","ASCENDING_ICON_NAMES","TableHeaderCell","sortType","sortOrder","onSortChange","defaultIconAlt","ascendingIconAlt","descendingIconAlt","circularSortOrder","currentSortOrderIndex","order","sortIconName","sortIconAlt","applySort","nextSortOrder","handleKeyUpHeader","TableRow","InnerTablePagination","itemsPerPageLabel","itemsLabel","itemsPerPage","totalItems","availablePageSizes","currentPage","buttonDropdownAriaLabel","dropdownListAriaLabel","prevButtonAriaLabel","nextButtonAriaLabel","dropdownWrapperRef","onDropdownButtonClickHandler","onShowDropdownHandler","onHideDropDownHandler","onDropdownButtonKeyUp","onDropdownButtonKeyDownCapture","onDropdownChangeHandler","firstItem","lastItem","handlePrevPage","handleNextPage","iconDefinition","ps","TablePagination","InternalTable","caption","mobileLayout","tabletLayout","desktopLayout","paginationProps","tableClasseNames","Table","TimelineEvent","active","eventRef","newEvt","eventWithoutChildren","timelineEventClassNames","timelineLabelClassNames","TimelineEventVertical","TimelineVertical","hideLabels","generateId","events","setEvents","groupedEvents","grouped","groupedEventsArray","group","groupIndex","keyGroup","groupClassNames","eventIndex","keyEvent","TimelineHorizontal","nextLabel","previousLabel","setIsMobile","isInteractive","maxVisibleEvents","activeEvent","setActiveEvent","startIndex","setStartIndex","endIndex","setEndIndex","eventChildren","activeIndex","handleClickEvent","getTimelineStepClasses","currentActiveEvent","handleNextButtonClick","newEvent","handlePreviousButtonClick","selectedContentEvent","visibleEvents","newStartIndex","newEndIndex","useLayoutEffect","updateSize","renderTimelineActions","isPreviousButtonDisabled","isLastButtonDisabled","timelineClasses","isFirstVisibleEvent","isLastVisibleEvent","hasMoreEventsLeft","hasMoreEventsRight","eventClassNames","FooterBrandBadge","brandImage","badgeImage","FooterCaptionPartners","partnersLogos","_i","partner","FooterSocialUsefulCopyright","socialsLink","usefulLinks","copyright","social","MainFooter","FederatedFooterCard","FederatedFooter","card","PublicFooterContacts","contacts","contactsOnly","hasCardLinks","contactsClassName","contact","PublicFooterHighlightCard","cardClassName","cardHelpClassName","PublicFooterHighlightCardLinks","cardLinks","PublicFooterHighlight","footerHighlightClassName","cardFooterClassName","PublicFooterMainPlusCardLinks","PublicFooter","menuClick","el","menuItem","checkElmNotCurrentBurgerMenu","navigationBurger","_h","_g","_l","_k","_j","_m","_q","_p","_o","_n","_t","_s","_r","_u","checkElmNotCurrentBurgerSubmenu","checkElmNotCurrentBurgerSubmenuLevel2","checkElmNotCurrentNotCBurgerNotSubmenu","navigationBurgerLevel2","nbl2","checkElmNotCurrentNoChildren","currentSubmenu","checkSubmenuItemsVisible","navigationBurgerSubmenu","nbs","handleCloseBurgerMenu","generalSubmenus","navigationBurgerSubmenuLevel3","gs","bsSubmenu","bs","closeOtherSubmenus","navigationSubmenus","navBurger","handleClickMenuItem","setBackdropVisible","refDrawer","setDrawerContent","submenu","avatarMenu","HeaderMenuItemOptionsLinks","closeOtherMenuItemOpened","onClick","style","containerClassName","ulClassName","liClassName","optionClasseName","getTrailingIcon","getTrailingIconHover","defaultVariant","HeaderMenuItemOptionsSearch","submenuSearchContent","HeaderMenuOptions","HeaderBurgerSecondaryNavigation","backButtonLabelBurger","hasBackButtonBurger","itemsSubmenuClone","handleBackButtonBurger","submenuLevel2Height","menuItemId","submenuLevel3Height","subitem","subId","containerHeaderMenuOptionsLevel2","_v","HeaderBurgerPrimaryNavigation","headerPrimaryNavigationClone","headerHeight","submenuHeight","headerBurgerNavigationContainerClassNames","containerHeaderMenuOptions","sub","childCurrent","HeaderBurgerNavigation","headerSecondaryNavigation","darkModeHeader","menuLabel","setHeaderHeight","setSubmenuHeight","setSubmenuLevel2Height","setSubmenuLevel3Height","checkResize","burgerNav","heightGeneralNav","optionsSubmenu","backButtonSubmenu","backButtonSubmenuLevel2","backButtonSubmenuLevel3","heightBurgerNav","optNextSiblingPaddingTop","optNextSiblingPaddingBottom","backButtonSubmenuMarginBottom","backButtonSubmenuLevel2MarginTop","backButtonSubmenuLevel3MarginTop","checkMutationPrimary","checkMutationSubmenuLevel2","checkMutationSubmenuLevel3","mutation","word","observers","observer","optionsSubmenuLevel2","optionsSubmenuLevel3","bt","mutationCallback","mutationsList","HeaderGeneralOptions","darkModeHeaderGeneralOptions","ariaLabelHeaderGeneralOptions","menuItemsHeaderGeneralOptions","hasLanguage","hasSearch","hasUser","menuItemLanguageRef","avatarMenuItemRef","headerGeneralOptionsClassName","searchClassName","userClassName","initLanguage","setInitLanguage","toggleLanguage","selectedAriaLabel","dataIso","currentLang","lang","languageItems","currentLanguageItem","userAvatarPropsCloneMenuItem","userNotLoggedSubmenuItemPropsClone","resizeGeneral","renderMenuItems","menuItems","component","keys","generatedKey","HeaderNavigation","darkModeHeaderNavigation","ariaLabelHeaderNavigation","headerNavigationContent","menuItemsHeaderNavigation","freeMenuItemsHeaderNavigation","headerNavigationType","headerNavigationLegalSentence","optionsMenuOverflow","headerNavigationClassName","legalSentenceClassName","Header","headerSEO","isHomepage","hasHeaderGeneralOptions","hasHeaderPrimaryNavigation","hasHeaderSecondaryNavigation","headerGeneralOptions","headerPrimaryNavigation","getOpenMenuNav","openSubmenu","menu","trapFocus","focusableElementsVisible","trapFocusBurger","backdropVisible","backdropRef","callSetBackdropVisible","parentAllSubmenus","navigationTab","openedMenu","burgerMenu","burgerSubmenu","burgerSubmenuLevel2","burgerSubmenuLevel3","focusableElementsClone","drawerContent","drawerClassNames","callSetDrawerContent","headerDrawerHeight","setHeaderDrawerHeight","footerDrawerHeight","setFooterDrawerHeight","handleCloseDrawer","handleFooterDrawer","headerResize","headerGeneralOptionsClone","headerGeneralOptionsClassNames","headerPrimaryNavigationClassNames","headerSecondaryNav","setHeaderSecondaryNav","currentMenuIndex","hasHeaderSecondaryNavigationClone","headerSecondaryNavigationClassNames","scrolled","setScrolled","onScroll","primaryNav","secondaryNav","headerBurgerNavigationClassNames","resizeMenuWithBurger","menuItemWithFreeContent","setHeightGeneralNav","heightPrimaryNav","setHeightPrimaryNav","heightSecondaryNav","setHeightSecondaryNav","generalNavElem","primaryNavElem","secondaryNavElem","ind","keyDrw","AgoraTailwindConfig","addComponents","addBase","theme","extractColorVars","colorObj","colorGroup","vars","colorKey","newVars"],"mappings":"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","x_google_ignoreList":[0]}
|