From 86a0325947316d5e4b229a7f178f87a4f12be52c Mon Sep 17 00:00:00 2001 From: Yana Stamcheva Date: Sun, 23 Sep 2012 17:23:33 +0000 Subject: [PATCH] New enhanced interface. --- resources/colors/colors.properties | 24 +- resources/images/images.properties | 33 +- .../images/impl/gui/buttons/addAccount.png | Bin 1369 -> 1840 bytes .../impl/gui/buttons/addAccountMenu.png | Bin 864 -> 1470 bytes .../impl/gui/buttons/addContactSmall.png | Bin 1561 -> 1346 bytes .../gui/buttons/addContactSmallPressed.png | Bin 1575 -> 1522 bytes .../images/impl/gui/buttons/addToCall.png | Bin 413 -> 1734 bytes .../images/impl/gui/buttons/addToChat.png | Bin 989 -> 1617 bytes .../images/impl/gui/buttons/callButton.png | Bin 1354 -> 1892 bytes .../impl/gui/buttons/callButtonPressed.png | Bin 1351 -> 2095 bytes .../impl/gui/buttons/callDesktopSharing.png | Bin 474 -> 1493 bytes .../impl/gui/buttons/callHistoryButton.png | Bin 1185 -> 2381 bytes .../gui/buttons/callHistoryButtonPressed.png | Bin 1265 -> 2180 bytes .../images/impl/gui/buttons/callInfo.png | Bin 273 -> 1279 bytes .../impl/gui/buttons/callSettingButton.png | Bin 754 -> 1033 bytes .../gui/buttons/callSettingButtonPressed.png | Bin 804 -> 1112 bytes .../images/impl/gui/buttons/callSmall.png | Bin 1480 -> 1361 bytes .../impl/gui/buttons/callSmallPressed.png | Bin 1494 -> 1592 bytes .../impl/gui/buttons/callVideoSmall.png | Bin 1408 -> 1282 bytes .../gui/buttons/callVideoSmallPressed.png | Bin 1427 -> 1430 bytes .../images/impl/gui/buttons/chatCall.png | Bin 919 -> 1599 bytes .../impl/gui/buttons/chatDesktopSharing.png | Bin 951 -> 1574 bytes .../impl/gui/buttons/chatRoomConfig.png | Bin 800 -> 2107 bytes .../images/impl/gui/buttons/chatSmall.png | Bin 1531 -> 1405 bytes .../impl/gui/buttons/chatSmallPressed.png | Bin 1514 -> 1596 bytes .../impl/gui/buttons/chatSmallWhite.png | Bin 653 -> 1636 bytes .../images/impl/gui/buttons/chatVideoCall.png | Bin 0 -> 859 bytes resources/images/impl/gui/buttons/close.png | Bin 685 -> 1347 bytes .../images/impl/gui/buttons/closeTab.png | Bin 583 -> 1309 bytes .../gui/buttons/contactListButtonBgLeft.png | Bin 0 -> 1079 bytes .../gui/buttons/contactListButtonBgMiddle.png | Bin 0 -> 1025 bytes .../gui/buttons/contactListButtonBgRight.png | Bin 0 -> 1077 bytes .../buttons/contactListButtonSeparator.png | Bin 0 -> 999 bytes .../gui/buttons/contactListDialButton.png | Bin 1309 -> 1945 bytes .../gui/buttons/contactListOneButtonBg.png | Bin 0 -> 1104 bytes resources/images/impl/gui/buttons/copy.png | Bin 446 -> 1160 bytes resources/images/impl/gui/buttons/cut.png | Bin 631 -> 1812 bytes .../impl/gui/buttons/desktopSharingSmall.png | Bin 1436 -> 1388 bytes .../buttons/desktopSharingSmallPressed.png | Bin 1437 -> 1494 bytes .../images/impl/gui/buttons/dialButton.png | Bin 735 -> 1866 bytes .../impl/gui/buttons/encrypted_verified.png | Bin 1020 -> 543 bytes .../impl/gui/buttons/enterFullScreen.png | Bin 322 -> 1435 bytes .../impl/gui/buttons/exitFullScreen.png | Bin 359 -> 571 bytes .../images/impl/gui/buttons/hangupButton.png | Bin 1242 -> 1693 bytes .../impl/gui/buttons/hangupButtonPressed.png | Bin 1279 -> 1844 bytes resources/images/impl/gui/buttons/hdVideo.png | Bin 390 -> 1482 bytes resources/images/impl/gui/buttons/history.png | Bin 1309 -> 1602 bytes .../images/impl/gui/buttons/holdButton.png | Bin 225 -> 1279 bytes .../impl/gui/buttons/holdButtonPressed.png | Bin 712 -> 1266 bytes .../images/impl/gui/buttons/infoIcon.png | Bin 473 -> 987 bytes resources/images/impl/gui/buttons/loVideo.png | Bin 388 -> 1549 bytes .../impl/gui/buttons/localVideoButton.png | Bin 366 -> 1487 bytes .../gui/buttons/localVideoButtonPressed.png | Bin 983 -> 1494 bytes .../images/impl/gui/buttons/muteButton.png | Bin 666 -> 1940 bytes .../impl/gui/buttons/muteButtonPressed.png | Bin 668 -> 1941 bytes resources/images/impl/gui/buttons/next.png | Bin 605 -> 1346 bytes resources/images/impl/gui/buttons/paste.png | Bin 535 -> 1162 bytes .../images/impl/gui/buttons/previous.png | Bin 587 -> 1343 bytes .../images/impl/gui/buttons/recordButton.png | Bin 327 -> 1920 bytes .../impl/gui/buttons/recordButtonPressed.png | Bin 918 -> 1907 bytes resources/images/impl/gui/buttons/save.png | Bin 580 -> 1071 bytes resources/images/impl/gui/buttons/sdVideo.png | Bin 410 -> 1616 bytes .../impl/gui/buttons/searchCallIcon.png | Bin 635 -> 1474 bytes .../gui/buttons/searchCallRolloverIcon.png | Bin 625 -> 1802 bytes .../impl/gui/buttons/secureAudioOff.png | Bin 587 -> 736 bytes .../images/impl/gui/buttons/secureAudioOn.png | Bin 687 -> 781 bytes .../impl/gui/buttons/secureVideoOff.png | Bin 584 -> 579 bytes .../images/impl/gui/buttons/secureVideoOn.png | Bin 655 -> 585 bytes .../images/impl/gui/buttons/sendFile.png | Bin 662 -> 1307 bytes .../impl/gui/buttons/showHideLocalVideo.png | Bin 366 -> 1606 bytes .../gui/buttons/showHideLocalVideoPressed.png | Bin 1075 -> 1596 bytes resources/images/impl/gui/buttons/smiley.png | Bin 1339 -> 1937 bytes .../impl/gui/buttons/transferCallButton.png | Bin 483 -> 2114 bytes .../impl/gui/buttons/videoCallButton.png | Bin 1304 -> 1502 bytes .../gui/buttons/videoCallButtonPressed.png | Bin 1216 -> 1635 bytes .../images/impl/gui/buttons/volumeControl.png | Bin 431 -> 1645 bytes .../impl/gui/common/addContact16x16.png | Bin 780 -> 1410 bytes .../impl/gui/common/addContactDialogIcon.png | Bin 2892 -> 3074 bytes resources/images/impl/gui/common/addGroup.png | Bin 3293 -> 4132 bytes resources/images/impl/gui/common/admin.png | Bin 835 -> 1698 bytes .../images/impl/gui/common/browser16x16.png | Bin 774 -> 1939 bytes .../images/impl/gui/common/call16x16.png | Bin 741 -> 1418 bytes .../common/callHistoryButtonNotification.png | Bin 0 -> 1726 bytes .../impl/gui/common/callToolbarSeparator.png | Bin 0 -> 972 bytes .../impl/gui/common/changeNickname16x16.png | Bin 808 -> 1531 bytes .../impl/gui/common/changeSubject16x16.png | Bin 744 -> 1420 bytes .../images/impl/gui/common/chatRoom16x16.png | Bin 861 -> 1421 bytes .../images/impl/gui/common/closedGroup.png | Bin 404 -> 1250 bytes .../images/impl/gui/common/delete16x16.png | Bin 693 -> 1404 bytes .../impl/gui/common/desktopSharing16x16.png | Bin 561 -> 1280 bytes .../images/impl/gui/common/downArrow.png | Bin 268 -> 1053 bytes resources/images/impl/gui/common/envelope.png | Bin 410 -> 1249 bytes .../images/impl/gui/common/groups16x16.png | Bin 861 -> 1511 bytes resources/images/impl/gui/common/hdVideo.png | Bin 0 -> 1482 bytes .../images/impl/gui/common/history16x16.png | Bin 971 -> 1609 bytes .../images/impl/gui/common/incomingCall.png | Bin 965 -> 1706 bytes .../impl/gui/common/incomingCallBgLeft.png | Bin 0 -> 1102 bytes .../impl/gui/common/incomingCallBgMiddle.png | Bin 0 -> 1018 bytes .../impl/gui/common/incomingCallBgRight.png | Bin 0 -> 1107 bytes resources/images/impl/gui/common/leave.png | Bin 522 -> 1380 bytes resources/images/impl/gui/common/leaveold.png | Bin 0 -> 1609 bytes resources/images/impl/gui/common/loVideo.png | Bin 0 -> 1549 bytes .../images/impl/gui/common/missedCall.png | Bin 1108 -> 1700 bytes .../images/impl/gui/common/moderator.png | Bin 792 -> 1617 bytes .../images/impl/gui/common/moveContact.png | Bin 775 -> 1432 bytes .../impl/gui/common/moveToGroup16x16.png | Bin 775 -> 1446 bytes resources/images/impl/gui/common/noSound.png | Bin 0 -> 348 bytes .../images/impl/gui/common/openedGroup.png | Bin 342 -> 1232 bytes .../images/impl/gui/common/outgoingCall.png | Bin 1095 -> 1753 bytes resources/images/impl/gui/common/owner.png | Bin 763 -> 1730 bytes resources/images/impl/gui/common/padlock.png | Bin 2826 -> 3740 bytes .../images/impl/gui/common/personPhoto.png | Bin 7055 -> 10463 bytes .../impl/gui/common/personPhotoFrame.png | Bin 3090 -> 1217 bytes .../impl/gui/common/personPhotoSmall.png | Bin 0 -> 2117 bytes .../impl/gui/common/regionSharing16x16.png | Bin 622 -> 1129 bytes .../images/impl/gui/common/rename16x16.png | Bin 651 -> 1455 bytes .../impl/gui/common/renameDialogIcon.png | Bin 16876 -> 3873 bytes .../images/impl/gui/common/searchIcon.png | Bin 363 -> 1533 bytes .../images/impl/gui/common/sendFile16x16.png | Bin 548 -> 1150 bytes .../impl/gui/common/sendMessage16x16.png | Bin 522 -> 1142 bytes .../images/impl/gui/common/separator.png | Bin 0 -> 1034 bytes .../impl/gui/common/showHideOffline.png | Bin 822 -> 1529 bytes resources/images/impl/gui/common/silent.png | Bin 526 -> 1579 bytes .../images/impl/gui/common/soundMenu.png | Bin 703 -> 1672 bytes .../impl/gui/common/soundlevel/Headphone.png | Bin 441 -> 1618 bytes .../impl/gui/common/soundlevel/Microphone.png | Bin 353 -> 1696 bytes .../gui/common/soundlevel/soundActiveLeft.png | Bin 0 -> 1276 bytes .../soundlevel/soundActiveLeftGradient.png | Bin 0 -> 1641 bytes .../common/soundlevel/soundActiveMiddle.png | Bin 0 -> 1055 bytes .../common/soundlevel/soundActiveRight.png | Bin 0 -> 1587 bytes .../soundlevel/soundActiveRightGradient.png | Bin 0 -> 1510 bytes .../common/soundlevel/soundInactiveLeft.png | Bin 0 -> 1167 bytes .../common/soundlevel/soundInactiveMiddle.png | Bin 0 -> 1024 bytes .../common/soundlevel/soundInactiveRight.png | Bin 0 -> 1170 bytes .../gui/common/soundlevel/volumeButton.png | Bin 578 -> 507 bytes .../common/soundlevel/volumeButtonPressed.png | Bin 658 -> 491 bytes resources/images/impl/gui/common/standard.png | Bin 789 -> 1527 bytes .../impl/gui/common/statusicons/away.png | Bin 610 -> 1478 bytes .../impl/gui/common/statusicons/dnd.png | Bin 567 -> 1416 bytes .../gui/common/statusicons/freeForChat.png | Bin 674 -> 1552 bytes .../impl/gui/common/statusicons/offline.png | Bin 584 -> 1378 bytes .../impl/gui/common/statusicons/online.png | Bin 619 -> 1441 bytes .../gui/common/unauthorizedContact16x16.png | Bin 839 -> 1582 bytes .../images/impl/gui/common/videoCall16x16.png | Bin 473 -> 1078 bytes .../images/impl/gui/common/voicemail.png | Bin 1013 -> 1853 bytes .../impl/gui/lookandfeel/blueBackground.png | Bin 0 -> 946 bytes .../gui/lookandfeel/blueBackgroundRight.png | Bin 0 -> 927 bytes .../impl/gui/lookandfeel/blueCurves.png | Bin 0 -> 1484 bytes .../impl/gui/lookandfeel/blueCurvesTop.png | Bin 0 -> 698 bytes .../impl/gui/lookandfeel/blueIndicator.png | Bin 0 -> 1046 bytes .../images/impl/gui/lookandfeel/box-bg.png | Bin 0 -> 3134 bytes .../images/impl/gui/lookandfeel/chatLine.png | Bin 0 -> 204 bytes .../impl/gui/lookandfeel/selectedTabLeft.png | Bin 392 -> 1178 bytes .../gui/lookandfeel/selectedTabMiddle.png | Bin 251 -> 1055 bytes .../impl/gui/lookandfeel/selectedTabRight.png | Bin 421 -> 1216 bytes .../images/impl/gui/lookandfeel/tabLeft.png | Bin 359 -> 1088 bytes .../images/impl/gui/lookandfeel/tabMiddle.png | Bin 242 -> 1027 bytes .../images/impl/gui/lookandfeel/tabRight.png | Bin 387 -> 1105 bytes .../impl/gui/lookandfeel/yellowBackground.png | Bin 0 -> 946 bytes .../gui/lookandfeel/yellowBackgroundRight.png | Bin 0 -> 927 bytes .../impl/gui/lookandfeel/yellowCurves.png | Bin 0 -> 1484 bytes .../impl/gui/lookandfeel/yellowCurvesTop.png | Bin 0 -> 698 bytes .../impl/gui/lookandfeel/yellowIndicator.png | Bin 0 -> 1045 bytes resources/images/impl/media/audioConfig.png | Bin 1202 -> 1415 bytes resources/images/impl/media/videoConfig.png | Bin 625 -> 1553 bytes resources/images/impl/systray/dock-away.png | Bin 11300 -> 13559 bytes resources/images/impl/systray/dock-chatty.png | Bin 11711 -> 13693 bytes resources/images/impl/systray/dock-dnd.png | Bin 10912 -> 12990 bytes .../images/impl/systray/dock-offline.png | Bin 11390 -> 12357 bytes resources/images/impl/systray/dock-online.png | Bin 9880 -> 11247 bytes resources/images/impl/systray/envelope.png | Bin 822 -> 1748 bytes .../images/impl/systray/envelopeMacOSX.png | Bin 199 -> 1507 bytes .../impl/systray/envelopeMacOSXWhite.png | Bin 198 -> 1502 bytes .../images/impl/systray/envelopeWindows.png | Bin 1068 -> 2382 bytes resources/images/impl/systray/systrayIcon.png | Bin 792 -> 1645 bytes .../images/impl/systray/systrayIconAway.png | Bin 822 -> 1754 bytes .../images/impl/systray/systrayIconDND.png | Bin 929 -> 1731 bytes .../images/impl/systray/systrayIconFFC.png | Bin 895 -> 1828 bytes .../impl/systray/systrayIconOffline.png | Bin 441 -> 1623 bytes .../impl/systray/systrayIconWindows.png | Bin 1301 -> 2186 bytes .../impl/systray/systrayIconWindowsAway.png | Bin 1388 -> 2362 bytes .../impl/systray/systrayIconWindowsDND.png | Bin 1452 -> 2334 bytes .../impl/systray/systrayIconWindowsFFC.png | Bin 1426 -> 2444 bytes .../systray/systrayIconWindowsOffline.png | Bin 772 -> 1994 bytes .../plugin/advancedconfig/configIcon.png | Bin 1304 -> 2249 bytes .../images/plugin/chatconfig/chatIcon.png | Bin 977 -> 1583 bytes .../plugin/contactinfo/userInfo16x16.png | Bin 465 -> 1345 bytes .../plugin/generalconfig/configureIcon.png | Bin 893 -> 1301 bytes .../notificationconfiguration/folder.png | Bin 1305 -> 1306 bytes .../notificationconfiguration/playIcon.png | Bin 590 -> 1354 bytes .../notificationconfiguration/popupIcon.png | Bin 429 -> 1290 bytes .../notificationconfiguration/progIcon.png | Bin 589 -> 1510 bytes .../notificationconfiguration/soundIcon.png | Bin 492 -> 1254 bytes .../images/plugin/otr/encrypted22x22.png | Bin 699 -> 1368 bytes .../plugin/otr/encrypted_unverified22x22.png | Bin 832 -> 1774 bytes resources/images/plugin/otr/finished22x22.png | Bin 820 -> 1839 bytes resources/images/plugin/otr/otr_menu_icon.png | Bin 708 -> 1136 bytes .../images/plugin/otr/plaintext16x16.png | Bin 612 -> 1438 bytes .../images/plugin/otr/plaintext22x22.png | Bin 717 -> 1428 bytes .../images/plugin/securityconfig/security.png | Bin 920 -> 2510 bytes .../images/protocol/aim/aim16x16-away.png | Bin 531 -> 1877 bytes .../protocol/aim/aim16x16-invisible.png | Bin 604 -> 1880 bytes .../images/protocol/aim/aim16x16-offline.png | Bin 621 -> 1613 bytes .../images/protocol/aim/aim16x16-online.png | Bin 623 -> 1532 bytes .../aim/cr16-action-aim_connecting.png | Bin 0 -> 1764 bytes .../protocol/facebook/facebook-idle.png | Bin 3332 -> 1706 bytes .../protocol/facebook/status16x16-away.png | Bin 3203 -> 1755 bytes .../facebook/status16x16-connecting.png | Bin 0 -> 1655 bytes .../protocol/facebook/status16x16-dnd.png | Bin 710 -> 1720 bytes .../protocol/facebook/status16x16-ffc.png | Bin 756 -> 1847 bytes .../facebook/status16x16-invisible.png | Bin 0 -> 1756 bytes .../protocol/facebook/status16x16-offline.png | Bin 567 -> 1350 bytes .../protocol/facebook/status16x16-online.png | Bin 552 -> 1426 bytes .../protocol/facebook/status16x16-phone.png | Bin 818 -> 1761 bytes .../protocol/facebook/status16x16-xa.png | Bin 3332 -> 1726 bytes .../protocol/gibberish/gibberish-away.png | Bin 1008 -> 2085 bytes .../protocol/gibberish/gibberish-dnd.png | Bin 1108 -> 2057 bytes .../protocol/gibberish/gibberish-ffc.png | Bin 1124 -> 2130 bytes .../gibberish/gibberish-invisible.png | Bin 1014 -> 2125 bytes .../protocol/gibberish/gibberish-na.png | Bin 1121 -> 2079 bytes .../protocol/gibberish/gibberish-occupied.png | Bin 1125 -> 2061 bytes .../protocol/gibberish/gibberish-offline.png | Bin 941 -> 1823 bytes .../protocol/gibberish/gibberish-online.png | Bin 992 -> 2055 bytes .../protocol/googletalk/status16x16-away.png | Bin 562 -> 1867 bytes .../googletalk/status16x16-connecting.png | Bin 0 -> 1777 bytes .../protocol/googletalk/status16x16-dnd.png | Bin 748 -> 1843 bytes .../protocol/googletalk/status16x16-ffc.png | Bin 947 -> 1951 bytes .../googletalk/status16x16-offline.png | Bin 495 -> 1636 bytes .../googletalk/status16x16-online.png | Bin 815 -> 1631 bytes .../protocol/googletalk/status16x16-phone.png | Bin 890 -> 1905 bytes .../protocol/googletalk/status16x16-xa.png | Bin 618 -> 1845 bytes .../icq/cr16-action-icq_connecting-1.png | Bin 0 -> 1885 bytes .../images/protocol/icq/googletalk3_157.png | Bin 0 -> 1987 bytes .../images/protocol/icq/icq16x16-away.png | Bin 438 -> 1954 bytes .../images/protocol/icq/icq16x16-dnd.png | Bin 832 -> 1937 bytes .../images/protocol/icq/icq16x16-ffc.png | Bin 870 -> 2022 bytes .../protocol/icq/icq16x16-invisible.png | Bin 1009 -> 1984 bytes resources/images/protocol/icq/icq16x16-na.png | Bin 714 -> 1946 bytes .../images/protocol/icq/icq16x16-occupied.png | Bin 912 -> 1916 bytes .../images/protocol/icq/icq16x16-offline.png | Bin 643 -> 1793 bytes .../images/protocol/icq/icq16x16-online.png | Bin 817 -> 1774 bytes .../images/protocol/ippi/sip16x16-away.png | Bin 730 -> 1963 bytes .../images/protocol/ippi/sip16x16-busy.png | Bin 705 -> 1916 bytes .../images/protocol/ippi/sip16x16-offline.png | Bin 363 -> 1573 bytes .../images/protocol/ippi/sip16x16-online.png | Bin 615 -> 1830 bytes .../images/protocol/ippi/sip16x16-phone.png | Bin 730 -> 1967 bytes .../images/protocol/iptel/sip-connecting.png | Bin 0 -> 1901 bytes .../images/protocol/iptel/sip16x16-away.png | Bin 962 -> 2007 bytes .../images/protocol/iptel/sip16x16-busy.png | Bin 960 -> 1977 bytes .../protocol/iptel/sip16x16-offline.png | Bin 550 -> 1766 bytes .../images/protocol/iptel/sip16x16-online.png | Bin 948 -> 1823 bytes .../images/protocol/iptel/sip16x16-phone.png | Bin 1006 -> 2003 bytes .../protocol/irc/cr16-action-irc_away.png | Bin 703 -> 1946 bytes .../irc/cr16-action-irc_connecting-1.png | Bin 0 -> 1818 bytes .../protocol/irc/cr16-action-irc_offline.png | Bin 711 -> 1675 bytes .../protocol/irc/cr16-action-irc_online.png | Bin 812 -> 1703 bytes .../protocol/irc/cr16-action-irc_op.png | Bin 651 -> 1946 bytes .../protocol/irc/cr16-action-irc_server.png | Bin 996 -> 1903 bytes .../protocol/irc/cr16-action-irc_voice.png | Bin 919 -> 1892 bytes .../images/protocol/irc/googletalk3_131.png | Bin 0 -> 1895 bytes .../protocol/jabber/status16x16-away.png | Bin 752 -> 1952 bytes .../jabber/status16x16-connecting.png | Bin 0 -> 1937 bytes .../protocol/jabber/status16x16-dnd.png | Bin 650 -> 1938 bytes .../protocol/jabber/status16x16-ffc.png | Bin 800 -> 2047 bytes .../protocol/jabber/status16x16-offline.png | Bin 433 -> 1653 bytes .../protocol/jabber/status16x16-online.png | Bin 663 -> 1867 bytes .../protocol/jabber/status16x16-phone.png | Bin 800 -> 2045 bytes .../images/protocol/jabber/status16x16-xa.png | Bin 787 -> 2009 bytes .../images/protocol/msn/msn16x16-away.png | Bin 879 -> 2015 bytes .../images/protocol/msn/msn16x16-brb.png | Bin 820 -> 2024 bytes .../images/protocol/msn/msn16x16-busy.png | Bin 893 -> 1996 bytes .../protocol/msn/msn16x16-connecting.png | Bin 0 -> 1931 bytes .../protocol/msn/msn16x16-invisible.png | Bin 910 -> 2035 bytes .../images/protocol/msn/msn16x16-lunch.png | Bin 876 -> 1984 bytes resources/images/protocol/msn/msn16x16-na.png | Bin 723 -> 2005 bytes .../images/protocol/msn/msn16x16-offline.png | Bin 796 -> 1753 bytes .../images/protocol/msn/msn16x16-online.png | Bin 844 -> 1926 bytes .../images/protocol/msn/msn16x16-phone.png | Bin 814 -> 2045 bytes .../images/protocol/sip/sip-connecting.png | Bin 0 -> 1643 bytes .../images/protocol/sip/sip16x16-away.png | Bin 579 -> 1715 bytes .../images/protocol/sip/sip16x16-busy.png | Bin 510 -> 1676 bytes .../images/protocol/sip/sip16x16-offline.png | Bin 490 -> 1323 bytes .../images/protocol/sip/sip16x16-online.png | Bin 482 -> 1342 bytes .../images/protocol/sip/sip16x16-phone.png | Bin 623 -> 1757 bytes .../images/protocol/sip2sip/sip16x16-away.png | Bin 935 -> 2081 bytes .../images/protocol/sip2sip/sip16x16-busy.png | Bin 913 -> 2041 bytes .../protocol/sip2sip/sip16x16-offline.png | Bin 612 -> 1775 bytes .../protocol/sip2sip/sip16x16-online.png | Bin 905 -> 1859 bytes .../protocol/sip2sip/sip16x16-phone.png | Bin 956 -> 2075 bytes .../images/protocol/ssh/ssh-connected.png | Bin 1321 -> 1703 bytes .../images/protocol/ssh/ssh-connecting.png | Bin 1055 -> 1657 bytes .../images/protocol/ssh/ssh-filetransfer.png | Bin 1059 -> 1725 bytes resources/images/protocol/ssh/ssh-na.png | Bin 1088 -> 1719 bytes resources/images/protocol/ssh/ssh-offline.png | Bin 789 -> 1309 bytes resources/images/protocol/ssh/ssh-online.png | Bin 1215 -> 1391 bytes .../images/protocol/yahoo/yahoo16x16-away.png | Bin 671 -> 1781 bytes .../images/protocol/yahoo/yahoo16x16-busy.png | Bin 805 -> 1736 bytes .../protocol/yahoo/yahoo16x16-connecting.png | Bin 0 -> 1654 bytes .../images/protocol/yahoo/yahoo16x16-idle.png | Bin 837 -> 1741 bytes .../protocol/yahoo/yahoo16x16-invisible.png | Bin 874 -> 1759 bytes .../protocol/yahoo/yahoo16x16-lunch.png | Bin 855 -> 1708 bytes .../images/protocol/yahoo/yahoo16x16-na.png | Bin 737 -> 1724 bytes .../protocol/yahoo/yahoo16x16-offline.png | Bin 538 -> 1485 bytes .../protocol/yahoo/yahoo16x16-online.png | Bin 878 -> 1514 bytes .../protocol/yahoo/yahoo16x16-phone.png | Bin 830 -> 1766 bytes .../protocol/yahoo/yahoo16x16-vacation.png | Bin 886 -> 1723 bytes .../protocol/zeroconf/zeroconf-away.png | Bin 728 -> 1962 bytes .../images/protocol/zeroconf/zeroconf-dnd.png | Bin 755 -> 1933 bytes .../protocol/zeroconf/zeroconf-invisible.png | Bin 775 -> 1967 bytes .../protocol/zeroconf/zeroconf-offline.png | Bin 494 -> 1673 bytes .../protocol/zeroconf/zeroconf-online.png | Bin 781 -> 1648 bytes resources/styles/defaultStyle.css | 14 +- resources/styles/defaultStyle.txt | 65 + resources/styles/stylebackup.txt | 1949 +++++++++++++++++ .../impl/contactlist/MetaContactImpl.java | 169 +- .../communicator/impl/gui/main/MainFrame.java | 2 +- .../main/call/AbstractCallToggleButton.java | 62 +- .../impl/gui/main/call/CallHistoryButton.java | 39 +- .../impl/gui/main/call/CallPanel.java | 163 +- .../gui/main/call/CallPeerRendererUtils.java | 130 +- .../impl/gui/main/call/CallToolBarButton.java | 72 + .../impl/gui/main/call/FullScreenButton.java | 36 +- .../impl/gui/main/call/FullScreenLayout.java | 22 +- .../impl/gui/main/call/HangupButton.java | 42 + .../main/call/InputVolumeControlButton.java | 12 +- .../impl/gui/main/call/OneToOneCallPanel.java | 9 +- .../gui/main/call/OneToOneCallPeerPanel.java | 9 +- .../main/call/OutputVolumeControlButton.java | 208 +- .../gui/main/call/TransferCallButton.java | 25 +- .../gui/main/call/VolumeControlSlider.java | 29 +- .../main/chat/ChatConversationComponent.java | 2 +- .../gui/main/chat/ChatConversationPanel.java | 726 +++--- .../impl/gui/main/chat/ChatHtmlUtils.java | 412 ++++ .../impl/gui/main/chat/ChatPanel.java | 33 +- .../impl/gui/main/chat/ChatTransport.java | 2 +- .../impl/gui/main/chat/ChatWritePanel.java | 5 +- .../gui/main/chat/IncomingMessageStyle.java | 203 ++ .../gui/main/chat/OutgoingMessageStyle.java | 206 ++ .../gui/main/chat/history/HistoryWindow.java | 28 +- .../main/chat/menus/ChatRightButtonMenu.java | 40 +- .../impl/gui/main/chat/menus/FileMenu.java | 2 +- .../gui/main/chat/toolBars/MainToolBar.java | 100 +- .../contactlist/ContactListCellRenderer.java | 6 +- .../ContactListTreeCellRenderer.java | 338 +-- .../gui/main/contactlist/TreeContactList.java | 81 +- .../gui/main/presence/AccountStatusPanel.java | 34 +- .../impl/gui/utils/ImageLoader.java | 123 +- .../communicator/util/AvatarCacheUtils.java | 344 +++ .../java/sip/communicator/util/GuiUtils.java | 37 + .../sip/communicator/util/ImageUtils.java | 2 +- .../sip/communicator/util/UtilActivator.java | 20 + .../util/swing/OrderedTransparentPanel.java | 4 +- .../util/swing/SIPCommButton.java | 14 +- .../util/swing/SIPCommTextButton.java | 10 + .../util/swing/SIPCommToggleButton.java | 13 +- .../util/swing/SoundLevelIndicator.java | 135 +- .../util/swing/plaf/SIPCommTabbedPaneUI.java | 12 +- .../util/swing/plaf/SIPCommTextFieldUI.java | 6 +- .../sip/communicator/util/util.manifest.mf | 1 + 359 files changed, 4870 insertions(+), 1183 deletions(-) create mode 100644 resources/images/impl/gui/buttons/chatVideoCall.png create mode 100644 resources/images/impl/gui/buttons/contactListButtonBgLeft.png create mode 100644 resources/images/impl/gui/buttons/contactListButtonBgMiddle.png create mode 100644 resources/images/impl/gui/buttons/contactListButtonBgRight.png create mode 100644 resources/images/impl/gui/buttons/contactListButtonSeparator.png create mode 100644 resources/images/impl/gui/buttons/contactListOneButtonBg.png create mode 100644 resources/images/impl/gui/common/callHistoryButtonNotification.png create mode 100644 resources/images/impl/gui/common/callToolbarSeparator.png create mode 100644 resources/images/impl/gui/common/hdVideo.png create mode 100644 resources/images/impl/gui/common/incomingCallBgLeft.png create mode 100644 resources/images/impl/gui/common/incomingCallBgMiddle.png create mode 100644 resources/images/impl/gui/common/incomingCallBgRight.png create mode 100644 resources/images/impl/gui/common/leaveold.png create mode 100644 resources/images/impl/gui/common/loVideo.png create mode 100644 resources/images/impl/gui/common/noSound.png create mode 100644 resources/images/impl/gui/common/personPhotoSmall.png create mode 100644 resources/images/impl/gui/common/separator.png create mode 100644 resources/images/impl/gui/common/soundlevel/soundActiveLeft.png create mode 100644 resources/images/impl/gui/common/soundlevel/soundActiveLeftGradient.png create mode 100644 resources/images/impl/gui/common/soundlevel/soundActiveMiddle.png create mode 100644 resources/images/impl/gui/common/soundlevel/soundActiveRight.png create mode 100644 resources/images/impl/gui/common/soundlevel/soundActiveRightGradient.png create mode 100644 resources/images/impl/gui/common/soundlevel/soundInactiveLeft.png create mode 100644 resources/images/impl/gui/common/soundlevel/soundInactiveMiddle.png create mode 100644 resources/images/impl/gui/common/soundlevel/soundInactiveRight.png create mode 100644 resources/images/impl/gui/lookandfeel/blueBackground.png create mode 100644 resources/images/impl/gui/lookandfeel/blueBackgroundRight.png create mode 100644 resources/images/impl/gui/lookandfeel/blueCurves.png create mode 100644 resources/images/impl/gui/lookandfeel/blueCurvesTop.png create mode 100644 resources/images/impl/gui/lookandfeel/blueIndicator.png create mode 100755 resources/images/impl/gui/lookandfeel/box-bg.png create mode 100644 resources/images/impl/gui/lookandfeel/chatLine.png create mode 100644 resources/images/impl/gui/lookandfeel/yellowBackground.png create mode 100644 resources/images/impl/gui/lookandfeel/yellowBackgroundRight.png create mode 100644 resources/images/impl/gui/lookandfeel/yellowCurves.png create mode 100644 resources/images/impl/gui/lookandfeel/yellowCurvesTop.png create mode 100644 resources/images/impl/gui/lookandfeel/yellowIndicator.png create mode 100644 resources/images/protocol/aim/cr16-action-aim_connecting.png create mode 100644 resources/images/protocol/facebook/status16x16-connecting.png create mode 100644 resources/images/protocol/facebook/status16x16-invisible.png create mode 100644 resources/images/protocol/googletalk/status16x16-connecting.png create mode 100644 resources/images/protocol/icq/cr16-action-icq_connecting-1.png create mode 100644 resources/images/protocol/icq/googletalk3_157.png create mode 100644 resources/images/protocol/iptel/sip-connecting.png create mode 100644 resources/images/protocol/irc/cr16-action-irc_connecting-1.png create mode 100644 resources/images/protocol/irc/googletalk3_131.png create mode 100644 resources/images/protocol/jabber/status16x16-connecting.png create mode 100644 resources/images/protocol/msn/msn16x16-connecting.png create mode 100644 resources/images/protocol/sip/sip-connecting.png create mode 100644 resources/images/protocol/yahoo/yahoo16x16-connecting.png create mode 100644 resources/styles/defaultStyle.txt create mode 100644 resources/styles/stylebackup.txt create mode 100644 src/net/java/sip/communicator/impl/gui/main/call/CallToolBarButton.java create mode 100644 src/net/java/sip/communicator/impl/gui/main/call/HangupButton.java create mode 100644 src/net/java/sip/communicator/impl/gui/main/chat/ChatHtmlUtils.java create mode 100644 src/net/java/sip/communicator/impl/gui/main/chat/IncomingMessageStyle.java create mode 100644 src/net/java/sip/communicator/impl/gui/main/chat/OutgoingMessageStyle.java create mode 100644 src/net/java/sip/communicator/util/AvatarCacheUtils.java diff --git a/resources/colors/colors.properties b/resources/colors/colors.properties index 7a9c77af2..a4b9cf74f 100644 --- a/resources/colors/colors.properties +++ b/resources/colors/colors.properties @@ -83,10 +83,10 @@ service.gui.TAB_TITLE_SELECTED=000000 service.gui.CALL_HISTORY_EVEN_ROW_COLOR=EFEFEF # Selection color for all lists (contact list, call list, chat rooms list, etc.) -service.gui.LIST_SELECTION_COLOR=ADD2EF +service.gui.LIST_SELECTION_COLOR=9ae8fc # Selection color for contact list gradient -service.gui.LIST_SELECTION_COLOR_GRADIENT=FFFFFF +service.gui.LIST_SELECTION_COLOR_GRADIENT=0cc0f4 # Selection border color of all lists (contact list, call list, chat rooms list, etc.) service.gui.LIST_SELECTION_BORDER_COLOR=daeefd @@ -131,10 +131,10 @@ plugin.simpleaccreg.ACCOUNT_REGISTRATION_BACKGROUND=C2CEE0 service.gui.LIST_ROW=E7E7E7 # Contact list group row background color. -service.gui.CONTACT_LIST_GROUP_ROW=C3C3C3 +service.gui.CONTACT_LIST_GROUP_ROW=dde4eb # Contact list gradient group color. -service.gui.CONTACT_LIST_GROUP_GRADIENT=FFFFFF +service.gui.CONTACT_LIST_GROUP_GRADIENT=e3eaf1 # Main window background color. service.gui.MAIN_WINDOW_BACKGROUND=FFFFFF @@ -155,10 +155,10 @@ service.gui.CONTACT_LIST_CONTACT_FOREGROUND=000000 service.gui.CONTACT_LIST_GROUP_FOREGROUND=000000 # The background color of all windows and dialogs. -service.gui.MAIN_BACKGROUND=4A9BDB +service.gui.MAIN_BACKGROUND=dfedf6 # The end color of the gradient painted to all windows. -service.gui.MAIN_BACKGROUND_GRADIENT=E1F0FD +service.gui.MAIN_BACKGROUND_GRADIENT=dcebf4 service.gui.FAVORITES_PANEL_BACKGROUND=474747 @@ -214,8 +214,16 @@ service.gui.SECURITY_ON=6FC93C # The security off status color. service.gui.SECURITY_OFF=ED0000 -# Going secure status color. +# Call toolbar backgroundn color. +service.gui.CALL_TOOL_BAR=DFDFDF + +# Call toolbar sound background color. +service.gui.CALL_TOOL_BAR_SOUND_BG=282828 + +# Call toolbar full screen background color. +service.gui.CALL_TOOL_BAR_FULL_SCREEN=313131 + service.gui.GOING_SECURE=FFC01B # Chat editor correction message background color. -service.gui.CHAT_EDIT_MESSAGE_BACKGROUND=fffbc3 \ No newline at end of file +service.gui.CHAT_EDIT_MESSAGE_BACKGROUND=fffbc3 diff --git a/resources/images/images.properties b/resources/images/images.properties index b96951911..11516498b 100644 --- a/resources/images/images.properties +++ b/resources/images/images.properties @@ -15,6 +15,7 @@ service.gui.WINDOW_TITLE_BAR_BG=resources/images/impl/gui/common/windowTitleBar. service.gui.USER_PHOTO_FRAME=resources/images/impl/gui/common/personPhotoFrame.png service.gui.USER_PHOTO_SHADOW=resources/images/impl/gui/common/personPhotoShadow.png service.gui.DEFAULT_USER_PHOTO=resources/images/impl/gui/common/personPhoto.png +service.gui.DEFAULT_USER_PHOTO_SMALL=resources/images/impl/gui/common/personPhotoSmall.png # service gui icons service.gui.icons.ADD_ICON=resources/images/impl/gui/buttons/add.png @@ -22,6 +23,7 @@ service.gui.icons.ACCOUNT_ICON=resources/images/impl/gui/buttons/addAccount.png service.gui.icons.ADD_ACCOUNT_MENU_ICON=resources/images/impl/gui/buttons/addAccountMenu.png service.gui.icons.CONFIGURE_ICON=resources/images/impl/gui/common/configureIcon.png service.gui.icons.SHOW_HIDE_OFFLINE_ICON=resources/images/impl/gui/common/showHideOffline.png +service.gui.icons.NO_SOUND_ICON=resources/images/impl/gui/common/noSound.png service.gui.icons.SOUND_MENU_ICON=resources/images/impl/gui/common/soundMenu.png service.gui.icons.QUICK_MENU_ADD_ICON=resources/images/impl/gui/buttons/addContactIcon.png service.gui.icons.QUICK_MENU_CONFIGURE_ICON=resources/images/impl/gui/buttons/configureIcon.png @@ -34,7 +36,6 @@ service.gui.icons.QUICK_MENU_MY_CHAT_ROOMS_ICON=resources/images/impl/gui/button service.gui.icons.SEARCH_ICON=resources/images/impl/gui/common/searchIcon.png service.gui.icons.SEARCH_ICON_16x16=resources/images/impl/gui/common/searchIcon16x16.png service.gui.icons.ADD_TO_CHAT_ICON=resources/images/impl/gui/buttons/addToChat.png -service.gui.icons.RIGHT_ARROW_ICON=resources/images/impl/gui/common/rightArrow.png service.gui.icons.DOWN_ARROW_ICON=resources/images/impl/gui/common/downArrow.png service.gui.icons.INVITE_DIALOG_ICON=resources/images/impl/gui/common/inviteDialogIcon.png service.gui.icons.SEND_SMS_ICON=resources/images/impl/gui/common/gsm.png @@ -112,6 +113,8 @@ service.gui.icons.SD_VIDEO_ICON=resources/images/impl/gui/common/sdVideoIcon.png service.gui.icons.HD_VIDEO_ICON=resources/images/impl/gui/common/hdVideoIcon.png service.gui.icons.UNAUTHORIZED_CONTACT_PHOTO=resources/images/impl/gui/common/unauthorizedContact.png service.gui.icons.UNAUTHORIZED_CONTACT_16x16=resources/images/impl/gui/common/unauthorizedContact16x16.png +service.gui.icons.CALL_TOOLBAR_SEPARATOR=resources/images/impl/gui/common/callToolbarSeparator.png +service.gui.icons.CALL_HISTORY_BUTTON_NOTIFICATION=resources/images/impl/gui/common/callHistoryButtonNotification.png service.gui.icons.AUTO_ANSWER_CHECK=resources/images/impl/gui/common/autoAnswerCheck.png # Status icons @@ -125,6 +128,11 @@ service.gui.statusicons.USER_OCCUPIED_ICON=resources/images/impl/gui/common/stat service.gui.statusicons.USER_ON_THE_PHONE_ICON=resources/images/impl/gui/common/statusicons/onThePhone.png # service gui buttons +service.gui.buttons.CONTACT_LIST_BUTTON_BG_LEFT=resources/images/impl/gui/buttons/contactListButtonBgLeft.png +service.gui.buttons.CONTACT_LIST_BUTTON_BG_RIGHT=resources/images/impl/gui/buttons/contactListButtonBgRight.png +service.gui.buttons.CONTACT_LIST_BUTTON_BG_MIDDLE=resources/images/impl/gui/buttons/contactListButtonBgMiddle.png +service.gui.buttons.CONTACT_LIST_ONE_BUTTON_BG=resources/images/impl/gui/buttons/contactListOneButtonBg.png +service.gui.buttons.CONTACT_LIST_BUTTON_SEPARATOR=resources/images/impl/gui/buttons/contactListButtonSeparator.png service.gui.buttons.CALL_BUTTON_BG=resources/images/impl/gui/buttons/callButton.png service.gui.buttons.MERGE_CALL_BUTTON_BG=resources/images/impl/gui/buttons/mergeToCall.png service.gui.buttons.CALL_VIDEO_BUTTON_BG=resources/images/impl/gui/buttons/videoCallButton.png @@ -240,6 +248,7 @@ service.gui.buttons.HIDE_ACTIONS_ROLLOVER_BUTTON=resources/images/impl/gui/butto service.gui.buttons.CALL_PEER_TOOLS=resources/images/impl/gui/buttons/tools.png service.gui.buttons.CHAT_ROOM_CONFIG=resources/images/impl/gui/buttons/chatRoomConfig.png service.gui.buttons.CHAT_CALL=resources/images/impl/gui/buttons/chatCall.png +service.gui.buttons.CHAT_VIDEO_CALL=resources/images/impl/gui/buttons/chatVideoCall.png service.gui.buttons.CHAT_DESKTOP_SHARING=resources/images/impl/gui/buttons/chatDesktopSharing.png service.gui.buttons.CALL_HISTORY_BUTTON=resources/images/impl/gui/buttons/callHistoryButton.png service.gui.buttons.CALL_HISTORY_BUTTON_PRESSED=resources/images/impl/gui/buttons/callHistoryButtonPressed.png @@ -262,8 +271,14 @@ service.gui.buttons.CALL_INFO=resources/images/impl/gui/buttons/callInfo.png service.gui.buttons.ZRTP_ID_BUTTON=resources/images/impl/gui/buttons/zrtpEditId.png # Sound level icons -service.gui.soundlevel.SOUND_LEVEL_ACTIVE=resources/images/impl/gui/common/soundlevel/soundActive.png -service.gui.soundlevel.SOUND_LEVEL_INACTIVE=resources/images/impl/gui/common/soundlevel/soundInactive.png +service.gui.soundlevel.SOUND_LEVEL_ACTIVE_LEFT=resources/images/impl/gui/common/soundlevel/soundActiveLeft.png +service.gui.soundlevel.SOUND_LEVEL_ACTIVE_LEFT_GRADIENT=resources/images/impl/gui/common/soundlevel/soundActiveLeftGradient.png +service.gui.soundlevel.SOUND_LEVEL_ACTIVE_MIDDLE=resources/images/impl/gui/common/soundlevel/soundActiveMiddle.png +service.gui.soundlevel.SOUND_LEVEL_ACTIVE_RIGHT=resources/images/impl/gui/common/soundlevel/soundActiveRight.png +service.gui.soundlevel.SOUND_LEVEL_ACTIVE_RIGHT_GRADIENT=resources/images/impl/gui/common/soundlevel/soundActiveRightGradient.png +service.gui.soundlevel.SOUND_LEVEL_INACTIVE_LEFT=resources/images/impl/gui/common/soundlevel/soundInactiveLeft.png +service.gui.soundlevel.SOUND_LEVEL_INACTIVE_MIDDLE=resources/images/impl/gui/common/soundlevel/soundInactiveMiddle.png +service.gui.soundlevel.SOUND_LEVEL_INACTIVE_RIGHT=resources/images/impl/gui/common/soundlevel/soundInactiveRight.png service.gui.soundlevel.MICROPHONE=resources/images/impl/gui/common/soundlevel/Microphone.png service.gui.soundlevel.HEADPHONE=resources/images/impl/gui/common/soundlevel/Headphone.png service.gui.soundlevel.SOUND_SETTING_BUTTON_BG=resources/images/impl/gui/common/soundlevel/volumeButton.png @@ -312,6 +327,18 @@ service.gui.lookandfeel.SCROLLBAR_HORIZONTAL=resources/images/impl/gui/lookandfe service.gui.lookandfeel.SCROLLBAR_VERTICAL=resources/images/impl/gui/lookandfeel/scrollbar_vert1.png service.gui.lookandfeel.SCROLLBAR_THUMB_HORIZONTAL=resources/images/impl/gui/lookandfeel/horizThumbHandle.png service.gui.lookandfeel.SCROLLBAR_THUMB_VERTICAL=resources/images/impl/gui/lookandfeel/vertThumbHandle.png +service.gui.lookandfeel.INCOMING_MESSAGE_BACKGROUND=resources/images/impl/gui/lookandfeel/yellowBackground.png +service.gui.lookandfeel.INCOMING_MESSAGE_BACKGROUND_RIGHT=resources/images/impl/gui/lookandfeel/yellowBackgroundRight.png +service.gui.lookandfeel.INCOMING_MESSAGE_INDICATOR=resources/images/impl/gui/lookandfeel/yellowIndicator.png +service.gui.lookandfeel.INCOMING_MESSAGE_CURVES=resources/images/impl/gui/lookandfeel/yellowCurves.png +service.gui.lookandfeel.INCOMING_MESSAGE_CURVES_TOP=resources/images/impl/gui/lookandfeel/yellowCurvesTop.png +service.gui.lookandfeel.CHAT_MESSAGE_LINE=resources/images/impl/gui/lookandfeel/chatLine.png + +service.gui.lookandfeel.OUTGOING_MESSAGE_BACKGROUND=resources/images/impl/gui/lookandfeel/blueBackground.png +service.gui.lookandfeel.OUTGOING_MESSAGE_BACKGROUND_RIGHT=resources/images/impl/gui/lookandfeel/blueBackgroundRight.png +service.gui.lookandfeel.OUTGOING_MESSAGE_INDICATOR=resources/images/impl/gui/lookandfeel/blueIndicator.png +service.gui.lookandfeel.OUTGOING_MESSAGE_CURVES=resources/images/impl/gui/lookandfeel/blueCurves.png +service.gui.lookandfeel.OUTGOING_MESSAGE_CURVES_TOP=resources/images/impl/gui/lookandfeel/blueCurvesTop.png service.gui.htmllookandfeel.PROGRESS_BAR_DEFAULT_BG=resources/images/impl/gui/common/bg_bar.gif service.gui.htmllookandfeel.PROGRESS_BAR_BG=resources/images/impl/gui/common/bar.gif diff --git a/resources/images/impl/gui/buttons/addAccount.png b/resources/images/impl/gui/buttons/addAccount.png index 28b469c3604d4207144c56369ebaa11e1f1d3a09..faa27498ec46d2f5f4d08876b8f9382d1406961a 100644 GIT binary patch literal 1840 zcmbVNc~BEq7>^PilNJvQ2#6Y@r4eN}8*)p;kOYYmU?9e%D6&Zw2#{<@786j>dRui= z6hy!SBA|E`FR&IbpcWWp97F~xQ^i_D#nvKJ6l^yfwtqNwraQCy-uK@3`+fK9j)<_u z&SXzAfk1GUg-9atbq4-=P8g4Wmu4?7#}^Mws=}hsILr#05rRmEY7nZ-0LLSd2&_v> zsYL<^1gAK?LWQa1p#m*x0APm>U^AF-G=UHhXfwguBm|>ska)dONc-*TbsAN#6VjHm z=DhC1}e-@X^olj*lAO^@_f)LXW;tKqk0tSOR^3ZT= zW?h^hQW8933zvkn1Pn6?K+tNn0#<(jHOGSxpU-!2FqwY1hMy(Ph`}~LqhU9cH7P>1p>(0{}}E9k%C9>(haPtHKx8PL%j|7w=eBfJA0+Yhae z3m=9DG2#vdx-Vi}YRE7W5R& zr@fop0roRn57n;i8H~9=KGL~k#q+K%eYMG%N78L5zp*a%{H@jGhrWmHCxY9W+Rxm0 z=mdDU7q_URpF^Izk1Krl?cVL|vgh`7pZ&F+s#(N^0}Is!a{^YK#){A93RaXJhI7^^ z^BSIf`_tUYnCq2W(==tO{H{xv>Q}kBJ*cR54Q(VRISmdzc=LwWpHvio^}Ek~F7&^g zvZu2!*nabgYvG!4&6b`XaZ=Z7=e0%|so=QVqu{8+O&*F<%^NkhQu67bOEL?6dQAtvitxUDfVDDg z+>yr%Nm*s5UR1JqZyJ(0;dQAXf|OR@TV_@+>rnD>4{vzfqY`hl@%72JbY<2b4vY9>nThhEu-kTRM(CF0LYIT`w?`O2W zeJhX^Md|}A)`wZ%p*5wMmoHvSU=a7RVAhr%<*8+76m{fxmr33sb6my^$V02TXXm67 z=P#er%jR-L4a?Ta8wi;{&|gRMpGn?xLO6M@iv6KJJ;YzCaxzHs$6$vpUO9Pk1~k3K z-o0f3Y0$py{Zyy9vf@bk;|G}c(d+9fuDvhoP-*Sia4VG8+%|6@^ToETtWGl#_$$A$ zvypyx`SVA0z^*5^+QFv8OGJK$TCILHPn|6+ZR$!i<<|1g;}Oma3TcH`fLE65Q5 literal 1369 zcmV-f1*ZCmP)pqEtXagB_K_WNYTcM_<;{C6a-%iK3IyBQm{&`2&wqchZ2@xS~h9g zY`%8qS@UX5jL>bAIQXxk{2GSRKEOjPwLjejG(nv+sG8KgPx`?%ch5 zsBP1x%6*F;63S}$h4bg%%;j<)RI62fcWMfr=b>7yVysyF{pYJ!pZ?|g_38f#XDeS$ zo;Zf^)jvXHYkPp@JWOw&_kG8cP+qiKf*0;7| z?Yebv90yWLOx?MIY+W5Tx3@>G>r&TsQLEM9`#vTnCN36>#lFG8!SI1!u4&pW!!W>w zKqiwxV`C%MHaDYMsUQqPSdN2IsYDe;fubmg;}~HWf)LW1&*ujKyuXr1R%LQINfLiC zCk2F37`hH!*Wm{N%H=YA-$#-ppp-(>GzcM3Utf=GHhXBbmcPNTT)Q^rd*0h_wTk(< zIozF^La|sxd3qZ6?%j)LW@aFz1Y-=2?WVJ5&o(_!OV`$|uN$0iWvaT5 zbN&{iv^$AoUm@iB+}zwuQ$D|6(=>3-;W!Q)$3eAPMHEGFUAH2HxciUrXLs!yeBed}nfUkWw1e<#Jt*b#}hfl+XXw35o*77$~J+jDZmHU4MUnbRT?s zPtTzj`}>avL4cWZ8HLu?!umqtGbtso)J+E;9LIs@d01FjNQ(&or6fs?tah%n zwY2bOdV43=7YdH+x`^W#ln@X~K`8|x1PTDEX$Zp*j4`xs*nsAimL!|ajz>{+`O>9J zU(V0Ze-y{@nW3SfZ})(cJ9}VYVBj18D0_GAyxH8+vN=f-7={6pbC{L| z%d%kGHdMnvdq)T2IEIuGVHhGw62x%~0L#x|7@}6I!F63JrR+U;@Zb;3_x=1tsRVAC zh@uFTQkVct(}ZQ)$kx}RTCGAZWkv{rqA1JC(hV46P*oMWu4}bg?Gpe`(2Ni-_(9Md zMG(=@?3hhZ2{Rki8HjT={~W12U^ zFx+P@2KdqX0N!mX+wb4%0Ltgn(sPa2yAjOa?*-sHzG@QPMhO832rqkIw)& zyuGLAD@y6}Ns@F#QM5&2Y#UQm!Z`<}6zM%399313PHg(`Piq2T_PWgI(p>?Ow7 z8QZq4RDreBNtR_n2(hS8(*OWcO1Q2I*L6{;R9<~3d})KVmSvq3LcEd!Q|L;^01$>D zq?9wB=N;LzXV2IF3QuErczBx-;wjGg7S4HxVHoY2rhzdwP6!zXFdl~CueDn3Twh1tT+8lN00000NkvXXu0mjff|P9T diff --git a/resources/images/impl/gui/buttons/addAccountMenu.png b/resources/images/impl/gui/buttons/addAccountMenu.png index b871a0695a03331214833ddb91d4b8fa4d0ead55..5f2838b9287b585fb13701101a7f6740d2366fa2 100644 GIT binary patch literal 1470 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz6!3HEJ^yqE{Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^Ko2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>aHCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JJoa z7#fLwm{}MaS{S;Tx|x`{7@1nSn7LXS!OXy>*UiM)*wW0=&BEE))zHw@(8A5w z!qLUZ+|0np$;{Qo5vJEOuec;JFF6%vZzj-Qs9smRdaay`QWHz^i$e1Ab6_bTAS1sd zzc?emK*2fKRKYhfIWrH$2SpFWw=StgnPsUdZbkXI3gGay%EV$n(6a>m4bhuIPMGNf z9itCQ97u@;CIn1@ASOKN13B=_lbQ$2F-5?vQRKk>n}LDxou`XqNX4xwA+{ce9YoIc zAG~o%DORg@*RHYx!NQUYJY20&E(L{!@89TYaOCCjIceTKa@14ng_2%ciO{Ws)0Eb3 zUG~#*|MKfX&Xc#W$KTI>_ip$1d$sRf6jMaFS~F*`CP-FjO!dllIx@lOM3OtFwtv}my!8>t40{Q7G* zRoRU5A(z3?+Hb!P&p4cWz4Y$;1x2ia^M1VUIgyelyfS3fjI(KvCkt$I(wn3dCe?fF z&5FN{Ez>>D@+k=GoZhwmYF2!*I|rkD^M`Z)Ww$Q=wRd~e+UP%TFD~EM+8ZU?@a6LU zdxbKKqt@CTc;6?h*fO^vQspLZacU1=V4|<@<&-ss%GRviX$jLBVi$CrReIUC{C2y( zX4j>_(64M2xn{GU&-mrgd8fWbLFw#TruGA3;@=W1?s;6)WI7?!aobUP--89gG9k-U zIwGFc&SuuDY5F#;m6vb%mBQ0P9Vzz~z5eiA)w9ZsXR&j)r+<2b*td=keu>O4EA;d^ zbG}#Ywe@P?xW2(c_NUI@(k_ctPX+GEWbI}&_j|e3@kX2PC7GJ*@~rAhEV;`ff`4p@ zU-rWHa?K)k=P!HoGW&ZXPW*m3U)Xpi&sWpc*I#dyXJlh=n{YOC6GzuSP>Jg4>gTe~ HDWM4f3>y}# literal 864 zcmV-m1E2hfP)d; zpU+OMfQbTT1WXhtrl2@6Uj6;z`CrWAKYoDQcY-)* zTFZFk?%&>%@m$SAe?FO>teA4$4-Fj8>dkxm!~_Qc{KUHs9P7)hD;xsxJAbjNBN9n> zv?C$#_hQjQ?lncwRW`Nf2dUR0{{d7oc)AVeqgtDW2wF- zkdCt2l#ja%vYEK6n)e^HwYC(x{cJlW;>D6XfB8}MF#u3BmDZ{DsI#~X4i4nJHMxw! zd-^b!_BxYEZ^y@i(1h~j<+b_YXJ!hzCBe-9)Nbs*TlX6lcDdaqv|=qR00JvV*B1Ri zwZ5tAx4Sd--kGXmg6(Q^)#ml9y`{k7#>0uq@MO8fgs@nu&)uIjWdM-HN>NXakKK!M z*Qbf73nFc=j#QQ^3k|=}gDVD*_$uM0r<-Yupvo#Y*Y_lyY!t?Pwk~x zr^7_P74ZT1*+{$oua4N+5tymlH`vTPoG`_k-@}HmBGd#PJbk?|{k#-ZYgKz|tTg{_ zbV&B;ytiKX@&X7uXy@UJUBh)4*m*v6(*w(ld(7xqxBv!6&s q013qeFQi_cu+w)go7s`kmHgkR??M%Tm8bOp0000er{{GxPyLrY6bkQqisxz*Q}aqZU2K(rGI}YQDOPSS=5B_D z<|YQ_Mh0dUhK82r78Xv9mM)e?PHqO4ZjLZBu<12%GB>v{c6D@fasldeHFR>auyiyw zb8>NWb}=wDHG=8&%quQQ%u7y%*_#Qp7pm71uU;$XqSVBa{GyQj{2W*c2*}7U$uG{x zFHmp}HdD~>O-#4U~=uJW0O3ol|AU_VP6aQr*=j4GcD)iB3x^SL`u-yWQ~8KL+hd@&{); zS7@oJc55y;ES55Vx1zs*_~R8n-uW08Hv70RonT%1MRJx=-9nS5T~mAu)TSw&v^ZZp zol~Rhkzm&5ZkLs6nX}$WwQW?sRT_KWZ_<+meyRTteP;O4CH$l=_EGYOw^vPH`8Pe# z;b;nJb7WW^BZOi>_)}<7_<#^#AfwqSs!5;4E4;xKSZ(6r%)vuhcK9jw( zmsOtg-aO^qqYpOum((;*8-1<)pOLA1hOw!7V{78)1!~P63*09JpOB7j2>Z}$r&6(f?f_B}hiUi*LF6YmB_2A&OaUfiorh=EEqPgg&ebxsLQ0B`-= Ay8r+H literal 1561 zcmV+!2Il#RP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00XlC00XlDihVA?00007bV*G`2ipM> z2sspK5crn>00o&zL_t(Y$DNi>XdCGn#((oiGq&s~*4UC)R-J5ZA}ge6A&sd+s40P9 z7t9_Sx+fp9J@r&5J@nX9ORv4>wy=dwp-GEKX$f60p-r}nv&oX$INEe$w~AKMj6E99 zf6ereks^B)=O5K-_4f}SKKvZm2mIs%qT>Q~ zS*fe5tG`hcYPE{vIA1<^@ZhJLo16avbinOPGbI1x zKpIz8R?7K&{?UaC7qVBcUS(ut1mE|M3`J2mdGaK_?~hDQPX5?5&2_^t^n_*D4=5h` zXKF5&yL0yJS!sTLo-hn?UH3plQ8aKqj$;ai0;;Ntmo8oU9WV=MfZC5E^`%l?U0wZc zKA&H@a^(tP7#?6DiXyYKvz$3|hT_x|k|a^D*Ku99x2D~0W11$iEDz`N`M0Xo>L-1L z6!!y)OG`_$nx?(Kyu2*PvW)Nhc%IkWY-VPLQ>RX$C<-Y>VQg#+(=@5oYQ43(t`kKs zi}S>Z6EiPfy!h0ztQUaYO|6))lg7u#-+6LNywO|2};i<6U+c%Ju_Dh$IA+qM}V z9wwDa5k(Q5PKRc*Nv&3+)9DO6$k}YR4CH`qzy!h`LrIcKnx=iF7+lxIaU9my*9pUr zPNzd0$3#)Yy?ggw3kHx*rze2yK!$=KXp$u1y6ypHySuwRb~kR^U}0ea+qSuX|2|Vw zQ|P)*v)LR7s3^)1kO79f^&82NA-H$Ieq%{lq5;t76gGH2-w@(BM1VD#UiOx3PBJk6*A0! zGs{O$4O*R1e*V27iZuEA-|pc1eh+YKYinb3bMqr$1E?ix6CLOl8yg#+o;!E$-8ha% zx^uN!jmM84<9QyIWf4UYj^og184Qa){>EMI{`D^hz--&LE0xMk;0f?F>5)DV3;p5^ zjLpr>egE?1%Qpo<5P5?UMNxeF_U)UxuCD=~B!IhJEj`>1qgJc6YntYIp-}jNEX%`R z2h6r@r&6i>QP=g4fzN^!3x|_@8-pXV$GlC!-X}01xj<>e9 zHY%0MhmPYsOu#+|ntfgW^%f(MA`K`O3We{M%jI{n*=#wTPERCqh41@byWKXM&F0RN zCr{Q5!>9sZB&`0MSPbW|#W>PL0i(cp(qeLn5N8s(BKdj~Fn|W|<<~V)he72;2h+ev zave_QNGi`sN`61N`h7koep4eX4G8*7aDTk95gxSeD67wL?Ee1&&@T=|0p+OR00000 LNkvXXu0mjf?8@Vi diff --git a/resources/images/impl/gui/buttons/addContactSmallPressed.png b/resources/images/impl/gui/buttons/addContactSmallPressed.png index 4bebb7ef14bd328cb37178fe9af4f13582b8f5f0..774551d639fb871961c15285adb1c0a1e38caafd 100644 GIT binary patch literal 1522 zcmbVMeM}Q)9KIG5B`^rXpu~;yI@GD{eUu*UrL`X%)kew~bXmnQIqnXq(7Sp)O!(JB4_U_+4EsstFehL_wOsGMSATtbWkql{|)1j=%A-Q zz@x={P~0T3U_UA~F*2y#;~hnTAR6j9$pF3x zB?M(gVELF|AMiWFH9nS0LwxjV_6nb7sC4!DpYV~W&6U( zSwE%NCR3Zc^=hqZZF@rRilm{0##hJF^r=Un1?Hp^ssh`<=kdu%samyoS)XcUxIi{{ zc6MUBcJF?z>&%(uab2&U60dFhdU$y2y)X7;J(%-L_BTz3*Bqb}MHvkS0&{k(n7Do8 zQk6#Y-nno%Jlsns+1ooh&R-uH*$bVp#dE5mikH`|yUL*`y6C7kEj|62Oa1-J_vi*M zUewOL)3z+~LHb%X5$@^ffkH!g(_hxq2v{$wos0eUAWk!(A-gUevUZo95{8raX14CA z>1&;LAj`UKOGeq`cb`4%q@BaGj@3uorJNo1L(o0H8mYg5At?6 z#}o5Y8rPp~xa)B^)C<$BjrYwxgM-4Vec7;E*#U(hj^i?I^Pa|j9@+e6+2-plm)Aw! z*#7bMmB$xdNGsP3F78P?O_lFDn8<1-lDe~PJ2P7DBzuQHTHn2GX-Z{SS z*7~EK#({wY8$W$1)b7qGZAvM)eDbTT%(W14Z_yF23jcBYJG%CvRfiRI{`ptnbF()5 cpo*Ul^_CtZ>y95vkN$;S`Gxd{j`F5|0MwNyT>t<8 literal 1575 zcmV+?2H5$DP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00XlC00XlDihVA?00007bV*G`2ipM> z2>>h5Ffu0q00pN>L_t(Y$DNi>Y#V7A#(&?;IQF>y7sob^HzwPxvTLO|M2ad`l?aCj zPC%&e9!y7-}63#%U?pqxXY7qsgGO+L;*BFm7&Q0UBHpim+K3` zF9K8m_4@VeZ-zplAE>IjqA1GSLWnqk=XrIGgVJ8TmAgL?S`gFlaWLr`R_d4eIqe zs;cVIXf$0emv=@Q$wRg}fLLB$zUuS&K3H2@JGWN3T#l<(uc8P+uh*kcEb`#NgW=|0 zy?QlFS0a)4PCOp}vRbXy0Yi4Kr$}~cBog_4I-OR6!QiQs4bljZ%jF1%!-T?NqOlmc zT#i^YO1)m^=;#RBw*S|CLWpcOyAGs)pv)JBg-wOU2j^&!~t@iE0>5lz$B*x115^Ks|S9p>lfdG_oX zbBoLT@WUVR>tFqnmoHzQOB9$GU}!_R_q=+u*^C3&woRwgp;#;eu(7eh($W%|rjgI* zu`G+W(PQNoHLi6{?tSzTckkY%(P*4P>i7HBIDrOm9mm;kwOYg4y?F5g&-0j{pJ#D# z5k*l@RTWLsh(sbd2%3GBW=|oNN^$Gft=Fg-hS8MrW)H-Cz|gTQ>yIZVC)agd$Fi*9 zZg1SUF=%rXMd9&R4SxKa3O&~abPDYW)_?vLsqi9t{0)ri;SjLVXdD2|k#mS56~H+< zI{LibZo4NZC$!sbJnz5q7mLMkT^G;u@H~%7%i^zfAAf7;0ND6=!4$`0iuBAZBPH@m zrP3py26RUcK7dmw6!u%K)@QX^4Z|>oFFtwl1lzW8T^HAN`R?L3*nL0AZ{PEw2thvW z@ZepIpRHP)l%5XXJ3Ktx>vTH%z_FA!=e23^{Q2|8v$M1BxvqO-R5=4#=uaPC$kQ9=Qn+*iiR-lX% z5Q+y@I#LlWRnQupqOEvfp%rMUf>O(28A`StrMQwvBzO4=NgS~T60g4tnfR`6Nbx0>MYvRj$D>+26UGoyqy|kv0J#B9MdA=x zleMuK5s*mET77~FS1F?TYSh4h9XbrF!9<`*Btf{<1gp~!97sV@^+q9esO|z4&})R$ zB(?%nn8b)qzakq$;1r?(1VSMO6dc0gaDo692!TwH#e`UNh{F$N@j(!ndZ>go zOrzz;Nn}&D2uVoQ;kb#Y??U1{1k^yCH`n;SGN!rYDL5r%O<^#ef)bxkN}MZWtQ9h7Uqq z5P~=%AcqBpav_MzW%I6i$qeXgab)A zA{Hc`#>$Om95$+vX}fyD?i5z^RxDqPAux_&2`HLA-2t&W6i3ZE)C7p**?x~ZC zQJ$C4N)Sw+foNnHY5*ql%h$ijK8GWFJ#G=ik%`4JHpG%i*_s!SNya&Y(h{PRXf^W8h0m`5;&ZF?iRPWJK|AgvxW-x zBCE%@+j{fH5bolb11o)1^(?Q6z1|gVy2g!T?p-h?y}c6r^<>)I$HK^6OGb_YF7JvC zT&cR$-*-%TZ_zLMzN~Tjoxswl>#bTd-67A1i;F>RB*cQ~${34FwE)So31zK9y&o6N^ zF3V}p_r>_-p9dU@M&||ob|k~UEbW1y(C{KRga&QB8THjk#f^#!QqPW0l8nwd5#;kD zBE8#-QHB4mXP;JalRLNY-fP-PJEx??)^wy?dw-U)G0nYOY$*W1D8HH<+91u-mO1}a zU9X+IwAcAQBY%F?lT{t@3)}bj41M?6c=y3vw=Jg50p$r*PxRMUH>?h;X$%ey;?4Q9 z)6z52wy$}oa9{nY*u|lhZMv+*-&Wh5OHQk5H+$(il2?%)^o{gwFKK8eKfanCTKDD8 zH-|^BR40H~J^8j@X@o7Puj1oNH!Y%h?8Of literal 413 zcmV;O0b>4%P)Aks{jB18FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10UAj}K~y-6os+Rj13?gmzZ}Hoz{*BJE3ND$osz}}5bYIfeGf|^ z7FHG_@d3n;#=>_npf-wyU?YMC6#Oi*r<-`*UHoC0otfp|{by!T8FO{iPjxenCyb9( zpcd>m{zH_DnmXhIO<)c<1>S%Opam?1Gt0p~0asz)iM6L{&mTOiO|@YK#6;UU`HniN zUaF5_W#~t-qnPM8hv-$Uk6f6c{a4pca%$KHKB^QuCh7u*KtK2wz&^h_dmHS{P&7Pk zC1~!d8|u2c6JqBh@}|@!HHoF6&Z;jZO*yb+;!*cXNL1g|nIfVDSgTOWI|O;T zfV42{V0!OMq+P4?MbfgrmIAv#16Ty6fd}9YIAieF3g_tyI&clf`$rVo00000NkvXX Hu0mjf`@y1- diff --git a/resources/images/impl/gui/buttons/addToChat.png b/resources/images/impl/gui/buttons/addToChat.png index 792d8550539007f453cfd674c908f58ddec88ab7..df52ce5b75189e451f4c7c3392ff9dffcf8a1ad2 100644 GIT binary patch literal 1617 zcmeAS@N?(olHy`uVBq!ia0vp^vLMXC1|-8Kr}G0T$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsVi$+{xL*&CJ}=z|_^y(ACh%%+TD`+||(0(8$Qe z!o(b=*Cju>G&eP`1g19yq1OVZUQklVEdbi=l3J8mmYU*Ll%J~r_Oewb7PlBWTAErK zxtRgYbHVNwh~5<3ZUO1V?hk#SWAs50ixkl?Az6RqSn0xo;&$Hiu@4LVK zv}V_)ugj(Pe-*#AUpVB-y$2S3JWRjLWWUbpv2&TfXuW9byfl}&rA~J9>yyl8mtV^@ zli|A`qBV8**Q&kUFW)S9z`nFRT6#l-PSKLp?;~}lWgkrVP^30_XZy-p;Z{)3`vZ9m?FE-2v9~ebkgaCn-79YR>h$AK`fY<7#my#r6j&k<%h3uCt9? z7!WXxjIR^Eu{9q|UVZhK zM|Z?sx5XDv*X_SA;(BrA8_~r_sv`WN_h=P!DBcjCb#HRs_UguTvqQ3OJeww+P0OAV zzV!O*y?WD6Z#R&YIVLkr^WCL}M4sJi!%j0?uE;ZxIH$*IBGx2bQ#@4sZscqW zzR?n%-{CAZ;Z>%F$fn&fdJ|neUQd|Bttr*JYvCE=2VZs_eyA~F%c^T{lwX$Zo^L(( zT=0bt`)=mEThy<4_l%?E{`>j;#~+8!^?NQGahG*TND%9!jeW~Kwuh{o=X_QE_S7do_7s%S9-Gj!P3$_ z63Ut?GV5+cFZiSN>dIu^6Tc<)ZCo{dal2t)_T!MP?(2BJNcx}7T=O$Ga-BNUtc3q3 w)l`dha)XO+%y7H*Ui15Z{{Q9M-ZSwqSah4E?()74OwbGrp00i_>zopr0CD1VPXGV_ literal 989 zcmV<310wv1P)(f|Me8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H116oN$K~y-6os`c@Ge;Q5zcc&m-F;W~&GwC26&vi*L(PH~>_O_m zOE-Up6xyEJOaFjYL3nRkdW_hLmmc4PhXE0)9vWH?YHIvRO)-g4Vth?vR^9AQFUiX` z8hGg!9%knG@tGNzc?jnm0FX!|-ZM?}D^1fzIOl_e5J3+6$z zKL00xUl?Oo06;kBNF)-U0{DJtXs9P1k9R4GLKQ`!k|a?@QK&4-RF>tpb4ikDsZ_dO zU0pp*r_9^1l%wTNmbPm3gAPusZc1~`@YXlPfzRleEv?; zG+}sn*y!o$Q2`(liO8{7Og9Weet38Y1_uX+MF3(LB1sZSCX=JRy}jD~{k=auJ^hz$ z+b`nrc%+qMn&vapG@p5%7p$$VookvV3zlVl5e7|8PMVJ6^Z|es&5ZKRi6FFE1|_c6WE*0KoC_ zadlx~;cRhn@vK^{HayScVmnBZB)YP)a%S6h(s-71PgqtU3kxw%=Kot-^t-xL50 z!w^l=6#sLzsi~;-1OSqZv11Zy zY@Y%620-6C0tx`;8DqZ#&GryhB9Slvd<)?7w!#wtzXG@f@Hb=ZCLDYOYQiP~%!FL8 z0sO=md+2n$M_;6=-R5`;;1y%+w@!e!3U|V=Igay#<2dhkinrUp?7Oq&McS!K00000 LNkvXXu0mjfm8`-c diff --git a/resources/images/impl/gui/buttons/callButton.png b/resources/images/impl/gui/buttons/callButton.png index 06c4a43f457eef718b354aac2779e06e79139cf6..1b53155b444162615fa47959c662195d0a757bca 100644 GIT binary patch literal 1892 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 M07*qoM6N<$g57s}RR910 diff --git a/resources/images/impl/gui/buttons/callButtonPressed.png b/resources/images/impl/gui/buttons/callButtonPressed.png index b45be018ead05a2ad8d439a8136006ae0583c29b..16d864e2a23c08b15b2eeb891f8c3bf93a2a109c 100644 GIT binary patch literal 2095 zcmbVNYg7|w8V(3TSrJ8~6cERN0v0m4-z3nGNg!1M5UD6t{}q81LV z1uP1MB2~OBXsxzb0g;PWpeTY>tGh*5X%PfgMJ=5uxckG?A3JAezVCbIeV+GzCO=9P z=IG$=fWzS&h2c;%wgzC&3j4X(yK!ko3buTJ^5aplMvfXKdKkx*X_8?;h)7c4Xjmf4 z&|QLqaJV@NWlTI8AF+ll)gT0kMTcNQv=|zP3kor5CDK$F1(M+urJ93(+|Y;zlrj!} z9W8U?9lE#t0A?l>jD0r8cll9QD^OI+20^3INH9_e8hr{#VzF2j4l+3q(+D(Vs8NY2P;Ky@Wq@FV zRIk*cN{t$@FiMg&X($JedHN;m$DmRN0=Nfeec&?M1Nl$A3wLneeHaQ!U)?^=#Mb3HZO-rMZ&LN z#wNXNX2SJd4XZ>K#zqEB1J|6oTbBs@Y-x#E!Gt}ClW|G)Ey4p->~X!JA`~d&YUT6l zotb-M7K|oVJQ%1+KZlT85dSbU;=RFWryG~Jc<_r$suP`4?zKoR|HkjGzFo<#H4kM> zn$M|ES01?1;`W(>Gxx>n!BJ7hp@g<+`f95c>m02ek#Nzg+^t7wY5WhTx8_Ec3-W$+ z=nNV8WS_3Avrt?vh#7}m;34Z1$95zxxJiCqSR_hb&fMiu3H;QGI&N&Tp_D~P;o-~` zIUUEB>INRc6Tbi2%wL(1f6F%L8AtAX^z4yhFWY03*vjJ2vy(U5hY}+X_ZF{|58SW~ z3dy=LVSmD(O#ZgZ#mLPMUMpC#|^j-Hz>xYB;`(cx4*rAe7j5Bzefs}W!`tYdfnY~+4@~~ z_VC-iJOQxSuV+#Bp?02KIk)vu)%n5S-I%AWSPPr)oEMppFZzxK0u#^nPcAOFu-r<%|Gm51fQpvKpB}eYR6Y+?jgEvp z?E#zmC-LWg_tiEh^T!{S)Ug(P^`gM*5%)Q`Nt#)9@Ls|8SjA6~XW-9EDUj%w|u@b0*ezBI&UXb-R(JGz`o`{qs*WW^5k>mVWCn-=_Q`1}_~{!yn= z7WiDNdD2~WsmJbo^O>HO_}jU8)4olQ3@wK6g1@&Tn+rncGit+~(<1xIUfGK3o)>M) z)J-m$H|nsSoHY6ThFBK%g5;6d=66ZbJOZ7T4K5ozd{CH_og0|>spmRv8 zRo6$!zs3Bptr|IJ9G z`&DZm9x?CNMUJiUa6It6!z%5jno^(MI~CURa0kb>Uter8L|J~}LcRz(5t_8)Px>oJ Al>h($ literal 1351 zcmV-N1-SZ&P)1K~zYIwUx_nR8<_uKleQDJUXpyQfL_hEwq(Dfg+L;X@eUK z#DxNi1QHgKuy+AXYU0Xhlcq6*@IUBEWkI4QCTe715g4&xOK4gi9V&fJr;nMr=icLD z+M&}Hkk>akImtc0dq3y|U4h;oB`}MxQ zPN!+}<`&?$lc!FJ<0no8QcCfX+yO8*J8Rm{oKb%z5&^K+d2{R5@9G;G4t{n1e4vzi zsj$V+qlXSDW6bwTO4+>s-FLCp3eWRi1rMdQYTCJz#FZ<}N=g~8s;}g^72)L?lmln@r*%A zIS=%_=T50HhE!@C-nvFcXL%6ZXHBFWnXV{`^L;-LR7&9+gYWy#1)Q0lM!wNcN{?WD zf$uv!jP$U2a!(<~aU6mmcmy0A7@#^HCmM}D6HE$$F0l-iCJ2mE0OF5Qxu{8`(`oMA zz56JozV9~tN*=&|f zCX?Tsl=BX?M!POjO02bHGMPe<5aO`|AR38qPj}Nl_a|A;WCI`7cc8l_aBcP>>B1cg4jSeZKw}!(pOPjXxr> zvk~f?-AGvs)LK8PQmqtH%EuN-5CoK#mJ$w!85wHhB!=2`c&;sohw7 z@QZ+QQA(ErQ>hdqBO{bnh8bS}Bmb6NW=*t}waIr1u-e*ME~Gjcob83F5_X3U7r85> zRO|WHrW9(Pz8HAx)-C?&y-D@)etI@s!1n~k6O4qCtP}fjU6-1T>-cuEgI~tK!Ov-afI)wMkwXg*pvGK-~@$~#;rnxzh-(I{(9-e7JK%oJw9x!I2}qxlU4vtjCb z4sfvfW3<*Q*1)o&QA>&@7K_ok_832TH}E|l1fC)?Sj(==hqScrTM@Kk zN~M&@6{<8oypN;q4ifIy4Ea4w`lDoWIbsvlxZ_ncWZ!02-Co>K=!vibaG|vY)+RG^ zb8)TpvMVa)SJ6863D#PSG32sY!W9u@rF_h%SC-bA>6saXlu6|{PWOXk@?hh(Z3bBR zx}JY25{Wz$2=YhATAO(|JRFu%b}K1m*WEjJ-n-e;qqa3Q89+U6$5|>N1lHQzmCKjI z!^6XYl(NgQ*79jvTU#g`?x?G;7d16CL`zC|^2PLY1=cb>J&AGPq_=9Dr?DRvq@`hH_-KYN5>_A{{Ywp9M{_N#a#dZ002ov JPDHLkV1nnZbLRj6 diff --git a/resources/images/impl/gui/buttons/callDesktopSharing.png b/resources/images/impl/gui/buttons/callDesktopSharing.png index e60c96f3ec89ae10b56095d2ef568c25bd589e66..0e1b2ec48bb5dcda544ab14856a17ade4a4ff894 100644 GIT binary patch literal 1493 zcmeAS@N?(olHy`uVBq!ia0vp^+CZ$v!3HE_4=2e1DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y) zTAW{6lnjiIG-a4(VA$ce2&53`8Y};zOkkuW=D6f1m*%GCm3X??DgkBmQZiGl3=Ay{ z3=Pdq49txT%q$EIEi6neoef-F3{A`pfx+ntGXtAm3l|d?H$yWMOG7tvLqk_XODAI| zCs$V&b3<2iCnG~=m|oAk;*!L?>O)SYT3dzsUfu(?ejQo=P z;*9(P1?ON>1>eNv%sdbu6g?2%x}+9mmZhe+73JqDfWy}+6N~+B=H_n5{&q4ncXM`j zGc`1Fb2W7~cT$4tO(7@D^ns4i2PF=q!~zonra%xAp7ennc;-pX1Ll|_VAj|lb?pQL z0~4#Ki(^Q|tv56FXCHD9Ilk9L_!swYXKr6>5%rY;LIrOh&A+(PqV!e$rG<05IhI!6 zm042X;Me6X$Td~3Ris;U*+q%pe&>Q*CQB5XHCBJvF`?zj*=ST2JMZrSG<`V z6!U0h2-kdJX3@=a{n9UFZH=3K_L=6Ci~1I+D_2$Vo;u~nn(*`{!||N$w@p`FeZ_s? zRHw@$9=EtjORRT%6EL~aIdf|iZ+ct#q8G|`aG)oy&~R z9d?YfSd#@)bN`EoHO>tW6ThXy+-m-&D$#o0{~y6OJ_qfs2^7nj%dlo=&2m4f@Anp+ y`o(x!c&{ctblF&ZMZavL1lk5Jp36C(H)a<0XOmf z9FpXIl0lN6rOtyShh^PMvQ>JrlVqyWljS6tz&qT)Q>Qa=xp4P}Iq(YWIBrr<_qCFF z++_Y&(DVv>xQ^*DJ%Kyux02L>S*K(B1#dOK$Q+(vWt6g@q6Gw5 z6%ZE`1rcj~0u?P%7Qt%WKqCT*iYTH_wkp0s#rNJhp8oOX%*=0@`+fJj_jm6(lO5pa zfmv+47==P%ygXS!$Os^hnU)6f-nsr-4l)?Y+_|!KqD`_yNCKl6d{HzEcqKqFa1adf z60xPxV~#?JW+xJG;iY|PY@$$6w29EE{1qBwj*k5#it8HyFhvp=AUZhO^Y9=DkVp=o6Olv$?EnHEB;fGKO|l1_Xhaf?Kn6Zv zSj3xzzlj#aVt@99tmxQSnM_Q>;Sv)Q9TFWKM3NXBNTpKeIS2%M#KK;x5XvCAy-;eg zz`%l~Jc&Ro6NrSsJR=k>+A5=C5v89(ND%w_ejyf0KPL)F8BPv~ai9Ypmyj?Y*GFrq zEC~LOjIUZtISMh13xcJhtr8w`9-Ax{z)0@?-qE}vqK4)#5g>;G#j`}btqHJD=Eb68 zkuMH>0iVWZk=YMQk)o|Bi^0L#IuMCSTCVe1_^oaf?omR_cPZ0Z?QC{1cqcH2}dM~U#Nh9SdmO5 zjTMOj<~kDaoiD@_2m-c~$NY6-+<_K=M9fCrkw|TJ` z9C?3pNT|O_h~fL3Jv|$vx2NZ>(5tiy;X~Qy|$+V!7yt;NrX-w}_%2fHA z4bLa1rZRW=9cvtt-QN6jyQP&?rZ-BvN%^w4tSr3sn&4sY#KB8y2ZO@H|LP;_n7I(j zdP2mfmatGLWn@^`=!cn!;R@7*ro*>Or=gj17iMoK5{a(Sdj+t-YjSc@H66!bFfQos zd$y_}!taSiR6YJrTjhZRTPG$aNJZUN$F>;yT9+t3{My*M>90~B-Ie}qEY;NzhiNvX39#p|gAW!t4m^0Ue{c|*X{zw0ql>rMWp{xij7I&HhVED$y=@Jh0XOU`@{O(2yn8Il|4&jiak>NvRzc zQ}{d{v%kNepPU@A%GUPrzOzm}fVS!%xyp;*H>nQv_v;xJ>`=R}x7?z{$Vf7H8NJ9| zx3;@Gx}vs&5MJ-WKPt%$_n9*gg`$ELjXj)-chA2-uzT|8}EU0r?S z&H%2VquA=&n%h$^9~5fw>8`75Dc5h_WchZt&tBm6mIuaFl$YC8RaO01OsCTc*`w35 za}D}WUp(LU@L?2Mc#eDc{CVy&p(Y`0L-_JvJTAmd_sm=^u$G#O66u`qosfDkC}NL+*~b=G2ui zk+FHqcgy+a-aGI4B-p8NUnSLv&|HPxmBVB!MtUi^j zEAi_iAY#TcC(N@c1Dv{j$g=CIs;L3!e8|bNSUYVylNoJmSHMb3B7v{LtoFuxFV+v- z)i|xT<~Iuqf=VhtDZ-)ECwEmH&+x$)2Nc}QdVB23-0WD1U6NrviazN>$Tw*AXgccp zs`Qo?Q`g1-HyfOOREInGLy<$|di|`N9L||{N9z3APk;04NF($0Kkw{S)IaPe!pgbi zHBAPU&6#L40h8Txd8T908MAG)PEY@$-DBtuF-8J+{tm9N0e=dv{zfX5XqWr%R+}?@ z?c!)-Z(mr1i(GZ8@!OM^cg#Z9y9Qrv>B=GOX^WUe-E+Egpx4XH+~aIh6?^qj)tYCx z@qwbcm%>{nD-6@7bH;=8&&F%__ONd&6pB@+l@=q9BhkN)W!1!#`UM8&4YjFL@Q#kv zTAid9h5a*co>*btS0tM=HW-(fVNg4i${Ww$LSf5G>`QtGkr#j10C#)K6Isb@<#M^& zY745hP4jSTXAf$Bo|lfX=k-N%+!~FxiBz4ApG}TgwVX)1*Mjs%s>xE)!S*`C!}nv8 zXaBV;FE7uOey0EB=;&J_k>Zo?!?$)H15oma3Oyl;a{K e%ZFW6G*F(v@r#Kgo4lHRL_8V|%Cv*FEE3a-viuC) zndxO|SeH@Lr0w_ke&65w%=^vEdq0d}7$_yP*~|xk&q0E(h$ z063;7Y6Bs(0RX=Q0)dyMyjUq{M@L5oNs`|-H8rJFD%I~=tv1!r&~V8HEa>p?P#6k@ zB++QJYG-Fhf)M)3@Avy}g__M~5lNEYNu|;c9S+A6u~>Y47l=*ibecOdGV1hlh z^kpCrxOfX{Hk$<`Nj~f8>DjSbtq1=Uc2jP*Tki3Anh-+zKp=1h08my~Yq(P-iTV8nSmodlkv>+5?Ni^V?P-Q5+j zi9~`A04bcN>5X78Si@#C8ja6A9uJqIDD1YUKR!O@#N%Ii+fQn1YxgH7Cj~T3mjqv4UgD#pqXMhd`n^CPDEXfP07N2@2f1ACDGmT@ z;c&P+TPx-$mjDI06->_!To+e-)6JDr`2kobaizdvE@jo z)7)@4Tn_+i_ilp#082|t^3~N1 z-Q8}B#X|J<_WpL;=7JDH1WA&ty|!2`mrLRE`KaaPWh+3@l*#3C175H98HQoZeMZ}T zfo`{3?)7@r2qAqT_Wus?V*RJrm16yy7qhQB;iE@WJOjHkf3K+Lh^tB$&1NTf(t|z%b-xT zAT+W_Z57;TssRxhK^U!~gNR^Dp)O@CgCM76sZx#eqT?_q*RY z@2}BOAK-+U_FR^?iOZPyDz@)0M@NQc?oDNl7{986)?aOBdIVLDix-~ zF|bgayX^)X001T#lDGskAu@s?LZk$t!G@rc$}uzm1O%z%LQxisf~j!2M8?EVw_m}7 z5-}4mphl7+ znTQA9n4noq{9928k2^qk?jf*b{=V-i(o8wf9%L$h^b+0R7kKx5oU7{(RL{;LqoYt zJhnp+OT-L5m(C}X>3$?Sg+%iwlOejlKbr+{AqtyMg7~aOjt^m3G!CD}rnA{JKAlYF zk=ZO3G~7Ggp<}dVc&cb7pwD0Z7{FVUc3&;o!le_?lh4gRCI*2A&srw_ZkmG&D;SSO z8^8j74XM0jW~6*7`&rwpz>nJ=c|D5Y5Wo4p;I|QFUt4n1u04BJ)kcN5t`5W(78Jbn z^z_`O|ChG4H63CysXtZNSSnVYx$?Qo%9Z(R2n7A(sj1pt_3SyIb7`_nCev3}S3lRC zKR-iP+X6m5KJcnls~(Juj+SA2S4%1@`y$FY(~lk<5^UZ)cUw$()zg~q1QZt+CttpN z`9NJ=T@SdS`F^`;XK$}1GcfS(t5+R%5EU>oGI|lgTv5iSI9t`%jV$jO82D`L;f(Q! zJy7#q(O62SQ!$B&<9PXJuu8ydVQXzrl#WO1mB{T7Yhqv$n7-WW!Bbr zzx~!id$jS=CC%0D?gyrOqa&Q}Mee#$b>v8ilrt&BSz3C!ySq1OD!qxumfqgN@r4D= zwd>a>3CUL zS?KQF-hB@dfxt=E(t;cR?dr2m)@BZeBi1HdxasTb+tkpo*UQVRXuhm$Sy*_u{mrKn z6JMqVm@gQmW@krKOgpIO=C*H5NH|!^f=-=lYC5EMcXQj6oa{a~KYzEY%P281aZ^eP zI5;$vd8??X=+3QMR#TIc{^lupc}e%q#3dyqoy%RZw7$OntNQWv#vHTwYf9Tc2S5CA zWTZw3+{vG{Cm8AcKY46dRaJ!#R73064-5fu85wJMAtAjCKzm)CX!iw$q;_JNsM>IM ztbvk8kA#!xU9X^^pwj*OkC&8KY_l1fF&lFQsGiZ(c?-uz7l0HI3{`7tYb$pgd;H`{ zT7Tiz<|ns;%#NLK905*$zu?T~q}CL=T`*^UlJtC6LA*dv?4fICECIX%gMyqqx_)YF zYa4dx?d?6@*tkY$GI;8?RYX^d+yVd`OeZTW?CtG~^P)@ghD(=%o$RnM+>Tf&o=unA zcw3PYUJv=bv{j!udGZTl$mj^eq&M%zWCyJ(4 zvlVxewrp8@KU38d-1~J~<&h&3uKzHien0W_sU$Nq?4|WFm3D&3E&cMMO~}~Tn8n=1 zmR7qx8MaMbCi^QZD{lyF#;<|KzKy1nU71>~wnC!`)9dxa)jJ%_PJhwdhI0>zIJWgq z1^z5(xNu_7YzhCMv-|4u6YHAWw6E|kPmTuVjUE3eRQ~el*X2J?YnJ8K<^MD9bMpPc zR?Rx&=@$L8Fzxp4!M^~G=P%y9SapT;4eoFA+xydBIJW+>{^^tS%}kz7=J#o-sakCe0T&6A zv}p+yR17I%gbE#TA#S>H(_I(RRdLhSh17x&+JfK@Qo9l|<3=cgl}KHv5GN*+$t2Us zOHAe`uM6ok!Fglofx9`J@0@!t?|t9(xvq;=hz?~mL6p`N8dM}2Bu*(wa7hsN5pf94 zLG*eF&Rx!_O2npw5EGoF2|+yf-B)LpTY39hg{Fqj9MToK^iGEwvNSS+DuY74mYds% zbstBA$#8{QVXC=El5+N&FF(K2Hnj7jOwdrpl}=MmA58i!!QUR_3C1BhQuC5u&&jfy zIse76@*APCk5B7{D*buT))H|;(Em@{3`q~yL-AdCSyetbd;HTS0BD+rH2G?8QcJ`Q zY8$w1+cw1GaTtby+1Xj-^LebSta$3HOAE9#`z)dD+3h%h}pjaV#(OeTZ={(dmVJcC!tMQW_A4E}N_I|2Z{U5C$^hDv{ZxKr&E z9(CKdZ^zi!7%pGFj6$J+cs!2v^>sLo0{}>;)39wD)}*|Vpq$>nl*`SK<9@89ov+D5&Gav>j(Wih}E zRT>KWdB97&Z{I#Ve*7441gsgz5Qh!2n?C@NUhQ)pQh78VvZajxqkkw`!Y(F}a} z@F9xDA}q_oix)3idabRlLJ}g%BuTVAL8(-NWm%iJ`}gmIa}L|KVcRxRsT7u%m(kJD zfnu@P)=!oQBnz5pfJHghTZ-o9=8#IIFh4)v7}ZE$U@98Nr-IC=Y87A$w~C}^+D6LO}r2Sfk2?S(&;oFJa_;_Q9QjO(N3tclw~Bz zcU@8)FX8IyDsJ7ng_9>wA{-94)b#fDqPx2rH*el-`@toXDJL8b-6cg9S(lj(>XiW8 z)>k|=HH8~DZeVO|3{Rds!Q9*&DwPT%kqElFy5KktE?l^PU@+(zC@Ttj4)i#(B(gr& zb#eaNpGHJu^+$JcD&$#(*Nq|)i6EIw!m=zpfBqa#pFTyYRD!PS?MiX{#EHfCc6FWh z`_=2sDf9LBBBW=aZ3}%bzS&;TN{0Q_r700di2O`(=`8U_yC}){!?b`-Mngc z)VE@^^}xOLk&$D0(=<;tYd1FNAAbEk$lS)2`YR_r`)tx`)V*8U+n^{4Mn^xJx9wC; z*Yym5H;4E}{QO(?5Z3FL%Eg(`^4|-FQz>KZmG{j27rJgB8jE6wy`$38b6_zL2%IIN z_Rp1#xSjn&lZeu8qdv$O1_e=y!IcD&kBEUdfrvqH4nf>i6s1a>PbrEtVH(B+fE<99 b53_#&&xLi@zSWSD00000NkvXXu0mjf@)=Dx diff --git a/resources/images/impl/gui/buttons/callInfo.png b/resources/images/impl/gui/buttons/callInfo.png index 65a415bb4b37de2832d377089579cc6df607296e..fe6741146400ebb921d9123ebf3092c3b03fb2a7 100644 GIT binary patch literal 1279 zcmeAS@N?(olHy`uVBq!ia0vp^+CZ$v!3HE_4=2e1DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y) zTAW{6lnjiIG-a4(VA$ce2&53`8Y};zOkkuW=D6f1m*%GCm3X??DgkBmQZiGl3=Ay{ z3=Pdq49txT%q$EIEi6neoef-F3{A`pfx+ntGXtAm7iSYACl^a&OG7tHLqk_XODAI| zCs$V&b3<2iCnG~=m|oAk;*!L?>O)SYT3dzsUfu(?ejQo=P z;*9(P1?ON>1>eNv%sdbu6g?2%x}+9mmZhe+73JqDfWy}+6N~+B=H_n5{&q4ncXM`j zGc`1Fb2W7~cT$4tO(7@D^ns4i2PF=q!~zonra%xAp7ennc;-pX1Ll|_VAhb}aG1-$ zz^L!(;uunK>&?{DV^50hS$2)v*-<{0WQR)v)A# zJU->fj7?dlsxv+R`561YIDVmw&HA*_YOS!%S}82v8$jrH^y=3&GjeZ-Nwj72EO+G* zEs{U}QR1*jl9p(2b{gZYKP;m922HP>eJ^i2xLM_1qs-!j#Tt(aj-QuEeltNm;!iM>+?aKnnq6ru)9nAQOCtIu8NI{B4+`lV e{C7N#iHG3>U+};6idy?YMUtnhpUXO@geCxBh_xdC literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=f!eQwFr$;k>+y#YPR$V7Os6fE4giXxz4Nw{-+*GSA|y3)t6dr zBp>9}ug3CxQbMolE_>kw3Bkvk-nbvJSsHSs(ErB6KHE=X|4(zzzmb`1l=<^0&~Xf& Lu6{1-oD!M5CakwOt5rd>g+vUUAea+Nz!V2*X@dV zLwxJYH^u+#{&Xm&yWH#ZeLCP1%!t&A=pg~^1P@7<;AndMg=|aG(je~jc|Uk!hBQ%d ziBXCq6KqM^-YGI1jtK{cWEiKG{Nw$Z4C2U=4;ldsGKY-f-BU*PPxpG^={PhZdFK(> zE=(bi5RO5S9HqHgSn^EQ6zlR>mB9?c$Cf;IsvmTKLm2@L1=d2?grJEORNvHfeFJC^ zK^1B$(rQRI>zWB6SPWTMW6{9uy8gnJ*je(3^UPG$$z-BT>I!8;6&Z$6YG_(bAZqzE z<+!M&`C6sml00N_#$%d-QV}206K=`E(|HI<76g~VX}(C5NSRvTOhpP*lcbDmhR%7H z{C49?bl#h0MD3ECp0H57$6&1@i`-prs00dc%%?0CkAja}8lEI1Zdo^ET%skrSl z=Qs^XWj7Xf7hL;VuIVs>Ib}UckE#mjj3}r1h-SdqZ-4-Yaa!)n=b1O~5*1i3FH2u+E}Ms>qGOn7je}30mqc3`ZMW4c zF20|mRY_W2g5RF~?0jr}eK@)}e{lQGU&e=bH*QI<-Q%}tqdDu&wzucLv7f*E1sSe4 A*#H0l literal 754 zcmV_r7cZ8UHUNBjv$G># zuB;@+7#^kcQ6+>>ANTkDugAw0z-wlr-SXU=TwY#Ix;HnE3cHoRwY{yrHyXaydY6f4 zb$($1-Ci#bSO$F>hWOcPtuhgXQ^g`w9OuXbN~IFcJDre;8SHsbTIUKZPECQB!9)b5 z6tq&g0|`mVBx=MP|&~B@Ar`; z37Cn79OflX?_lbXncb@~&FVp85d7 kv5Bd&r~dm|?EnCN0p4UEj!f6MMF0Q*07*qoM6N<$f&hj{!Tq36*DME3u+uOh<0~o*2}nqo4Gr)wa}QX3$9(napvd_I&-F(V>|lP z1)&@CBwZjVf*yJZi=v=NtsV@dHzk9zp4>pPho~&U&ZuiaZ3A=8`48Xs{nvB0xoKZ< z;nqTeAc~{=g&5vF_}{rcAFm@j`n&N~hQtJFfn6viTYzX(VJ9G?y4($7Kvw&Yy#)0H zkxOau1WHH;cm?V{*~R!A-NbBysBdsgS?K|Y>;&DK5v1lHk5Hth2C3E>iIL1ONNW2B zEYLF06jug%lz>V#>>=wN9t-FI$)uzA8aD3)sbyUrpWSPkB9|ekCrGUXm5`drFth+! z<72!EQ_GOGtdFg#<~Ytn`Wcp?89&YXy)4I9`FVyRS3e4Sv(zp=CPY?!VJk=_5i)t2 zPNh=5RFw}}-835r1Y8Zj--{7myWc>v<2CGxjDi4c#nMcqL4$M^sItFamXDPUGT@|h?lMh=! zM$n2w*qfWI;K&Kgt-74 zX=GWE4TP#fAyE`KR^&o{Hk{!KQ0dcwfihh6H@7Y;*Bu4j#GVCUX~%&Yv7k;ar_5{F zW2woix5`zs$5NY>OXFZ@x3PaTI&+1m$33o%EjHE$9~gMrEj-pkm&Zr&lbDDKjdADA z+%#MGZ12Xw4{a6aa>jBKhZ3(7>#6pc-DkE8Z}jwDC=E}2n>cZ8a5C@RXi4<;#qvqx zp0P7I*p=+Pdn?q6CIVbRNy~kaj^CUUOMm1)6|Qbr9F9~DT%S5$omcYKDR<_3py%s_ zN8nT{y*);K@`>%5nFtN5v-LPN?J5F9`H^rvLx| literal 804 zcmV+<1Ka$GP)sQ!^e+&K ze?SlQ;D6wu2kAjdXeek8_9pby2r-tXNx+bo-Pzq9l6~%bd1-B_HwT89-5vHbo1J|b z=Di01d^kC25Ya9X?QqWPj4=>VPAw70m~3p~_1V0c+3|P`t#!u|of6Uhn}dTE05I=8 zJ~o>#opXD&T8&p%R^S0(mdIWFshjtmbLe)v_jYe|O#)~wL@!n^k;D_;} zrKRNQ))p???HviAZit|@{v#l$5TZ0GAw=$UvD7y=0iZ4cz&Qu4b+*wWKzy3w$wJY@ zek@YTsRaOIOervo!yScj42(}!R;@vdF%eMfIiL_C1I0GXhu8oULgXO9GR6P^6ayy( zpb!GqS_mO>fbhQJyDGwhA7BAEPSaap_v#8idOfVItszO04Cb7h(*P^0$QTy?tkzmw zbvm~|?>&aYAx5JSDwPT5fjJ{uA1HdTgHLAHDLb3VA1!Dn~DJ@6eUIn@l8U8>u!*2!TtAt(T0LvjG1 zo~Y0Wd_V}bw@!j81kpsqdcW%T9$W}u=0&?rhaY<_eM zL&cB{J8be2-k1wS#Qhx#sOzYy4|X&Mts%_553NcvkRS?F0Zm3*q&SnbVe7mM+-Jo& zhOR@@W*fHQl;2y6x?}~QCcQxyBuEmaX+3E)(KK0!QUpoi1iWb-X=F?^Lz&Ud3xn2_ zP?+&?{H85yQB(9ofO}bW8gqMsE9FD zlqEFFC?xx2feED(Cb98^SD6rqKagKbeDsUFUT!7uud7-D$N%#)<#ymddOR7QS`9r`1L;#-9G`k00Of%}gQRpZVMI z${P>&UEB6d!AH|$sm#yMj&A~Vq&iwz{%(JynI2o;_S~u0VUU zsHjLY^XUuE=au%)u(Q~a{GFpm=PtE0`L+2cCnhFli%KfXwJTR2Fn+n#d24xY@~abj zzwTaGnEoc12IUugrTGKh13P+7uq7{DezYf*f8B<5_I-O`VrpV?#I1fAUOiiA S4RccVC+Bh3aHpLOFa86q^XF&) literal 1480 zcmV;(1vmPMP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00XlC00XlDihVA?00007bV*G`2igG{ z3kMW7&IuO)00l@%L_t(Y$DNkTZyQw<#((1(KVrABGmg{7NgYHK0wstPwW)$4g9??3 zR2EbbTNeBmELgBbV!@U*5>hL~8_D8Pi8iDu6e?PXBhoZXT8GAtGmh<<>lx3m=(TZL zCkEd>Q-t$bLWqfCi{C0`j>BG-bH*dQb4Z00V$JJw2T~ zeE9H-p-|{VFc>_hY1#y!2q6}2+rC+?RRdLPWpHp1$8mNI!!TH0UZz+qUYeVmduM%peG%9M?2a^ptjCTtX0zGB z(b3U`2&&Rp-{M5uh&~F-Q55KKscMtelRgH zF*Q9sjqAFP1Z#!oc|@a8EX(RiBobr!eEu3xmo;s(R6A0s&CbrgK0G}9)~Qpcx`H{5 z(>@nM5RF9WeWrrzHL2VaY;SK6F7<&H+$0T?)W^5npgBS$_tbLLD` z)3o+ScVna{5=5UVQaJhlBo;$0m)8Hr_(Q_ zQmOuMIE-!E*tU%j0wF~EymcQSJ``ki>^wD5W3BNA4SgNQaoY6>g+j4RCNl#J08vR! z(OR_(g+fz@4jn=Wv1dm*j>FSOkMj59pRjJ-q9$x?;nC|0sSW=wUDwBf6kq@qz|~p| zgTdgWuIt#g-4(<%P0HmmwOWm2GRZv_so2{%4HZ|Yh+6X@z<4}91oU-fsA<}Ss;WBx zUDsu6YYW3LcBJd_<;y%)eV*sePI9^NAx%4i_$&O7g2dzT6wnLwwE88`u_YAKG~0Eu zZJUja4OUiGc7V0k?dwG{Yp>u44Q+XZrqe~yeP010K&XY)&VdkOv0AOp_`Z+hI9Qg& z+S(fZ{rybOoWzen>Ep)K+kAiQO~zimpSBYxPLO)p=2GmTCM(4 zE|&?1!!#NVP(1oy`;%WsFSHwj$rWCI><#jfZ~3(HIqK3d>YszV&YWVgcvp6(B_{}) zRDfnapPx&o(_4{9BmppXCdkU@dEADED^whzk{9#bP_CkE9whR^F_gtaC`xxUA%rjt zV;LyRjo$=(wKa}R(`@$j_1Upl>?K7}`0Lkgo_%TxGjx}_XxwKg4iLRHPT=!rq0qZ4 z7{L7e{FU|f^`C%6pddj#rK6TnVEEj*b06rsKGSNBNF+j!uHtD8tb$L&aUW?T48ypS z%jGTr3&1sCtp%t)=u67w^3ur2$XQiYdjMS5#ol%hrbpBB9tmbymYvJxzH%JrH{f^R zjuddO+dTBD)oQ&^C|uQb{fSsCHuxV*7KUNm&E;}m*6a1_zztvp*aDmfr$vjQ2e|cm zy_V1Ce^wMlB$LUfR8$ zhi;aCh^k`!&L9m!QK0cgFuV i!rk86%j&ZqyZ;X$TPNKW`Qf7g0000U z8=f~eb?1b6w=X%pxuKpqb#9`dZgq#?{D2#x-r*)9>X=j5TcB=#c>b~6o4oJ)ywC6V ze7@O`moqmmHZc~0pg8M1JRi)7;C*qF7<`=xJ3U~UBxKoz0?s9r5C8VAn87QOae2M zLGqf~hS+>&+Re->=jnp-oIQ%Y)4vPs3`NQc5By3TrenRHfEv(Als8K^1ZY42=|3VQLMg(89xy1X$xK z7nYA(hHZhJLE;t!A10TVmX^v&l`@VmlB0UPKFpy|NP&jbU&abVK+5`)BMdn0Cwayv zFdPeq83`x1LNG{xr$ZrleKy+@V%9&LD3CIFfbhvt86x+3!*LC2`-Ob^UpJnr?Jq3z z(eixS&#mA|P!Csf1PpTbY(rs1;0>0`GoUC$3C@u#yfiCVaf1Y$$S8)wEV$N!qFNQA zRUjH2it4pGoyn-j^$L>((OZlWj;CQ2Muk#qG2vjSP&5lQnRI%iQUe5L98s$k5v-N< z3j|Bj5xWeqJB&3y6N{O7nh-d?kmE`s9gyed1kUf~e6YDd1JAG#B*TUUGs6WMiWjGO z=1rQi@SGPO%rM40#RFVvG@3OCqBRahu0wQ6ixE{Qlp388tR=%(>i=X-4xEvP+v7j& z5)pwO3@@KFKiE9EJ~RvN3=b~HW8&m^2pZwC;>N|b3w&I^#z)yr4^4K-Y=Nw zm^=5>vIoEax}7RYfj9k-+VkL#%hir!6^|*8XZN^lWO7|y-Q=#Wu6H^*I$BF_U-@fu zaf0ak0cFuo=}`?Av^8`?c6RpJ%rgh;>+5YQm1-(?5Ts v`iSCIL-aIpp3L=}6HPl%mACjSNF;{#R9;S9d3XBS@W0%em4ojwEnE8!CA?Ov literal 1494 zcmV;{1u6Q8P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00XlC00XlDihVA?00007bV*G`2igG| z4iOMJMHSot00mY_L_t(Y$DNknYg^|T$3Hsf*p`kg5y{a>Ue2nTb6w!S{KT0vXMQj;GV*Q1FkaPl{beAbl(MCiE57ePs8lLTwOXwPxPXj5VE?qh zo>yawi;H(ssnoA$XJ^k&PEKN37WsT0*LB(2+M-sgQLEK(9H+Uxz5T0)4^NOers9Qk8j+#!OYAIQc9FkNGT7jw_aOY!?taj&E`K=R#tx5Xf$k~ z4g`JI3~@XLuCY`q6^q5FMcrZ{50uQflboQpy2PDw(9!Y2y2Wy}dn}%_hlYax#%f1oe7- ztuK)VfZFBDm#spf@Zp_1cTB@Dj(9L^ZJj+!@jDUbPaY7gWm$i;MHEET%d!>#3ov8n5=JkUBO@bMCnqQIJnz_S?3w3zTz&mpJbdXF>;>BdVxP=t z7AOp4U?!8f6mLEQT0m&@JTwgBN}*7|_x+)uMx(**?k??i8>JLC-@Zn@TR{mOC3K`X zTIcC>dJ4!5^-$OKmkq->0<72TJbChD;JN^wu5XZ;zCcZE5DFc!nHmNx09hc_%NMP$ zBog&{eIRz#YL&;2A0L4MeDM3beD?E;EGB=3k~;3Aqrh&rn*fr)XphwcqLi{*t=0i> zZ*PzF^>w=4=QV4ZCW*vgW4iX;YdmZG7p;-U`TN)rpzFGg!+X6e-Ir3XwA<|k!!S@v zQLR?#cDt0zWy;@s3G-5m&H7XR^xmfc%+1X)`y-u?I)7vTFR!42qcLo^+fLlxdc}VL zjC|k!)NveAsT4vyFX9W|xWLRC0ZZj~2&G1pN-}lvCRZ-K&cqvSK5qX8?eke0E5nCQ ztJT_!v(t|!$o~sJiXtzU%l%Z-w4{_0!!VeC$EWhz9|)z65(Y{nxVZQNjp-Hs+4&f4 z^*qgwa&*I^Fr}1OU0wZa6h)7KFMDO7_r{Uyy3zRfcrZFTdL5wC>G0ZH6IAsTlrWw{ zrOvjyiCd3|KAgk3n;Z%QuxC2ZTiXWRDOD2hIhVNZbFzNvq_ z#E4r_9+)ysbKbJ7g-j-MDVCgKrOh#PS>Zdb%#-vS!I4p955BI+>Ii2I-kq~qUIyhogQew^}dpQH$n w)2F8u!uk-SPXzbd*A~LV{&$kp=QMKvf1`yhnwU{h(f|Me07*qoM6N<$f-w=>f&c&j diff --git a/resources/images/impl/gui/buttons/callVideoSmall.png b/resources/images/impl/gui/buttons/callVideoSmall.png index 1c260465b869a1b5faa14315dc7e519be554b7d5..15f4dc8fac246caba82b4d39163f508483c558f8 100644 GIT binary patch literal 1282 zcmbVMZD<>19KR;6%&n14XW6oXk5@M~O>!?uF1aIFddVeiz;q!E7=~yscTbw5xtHEu zm!v4&rebxd13!q$&@!;vc zf~+b|zycKI=G0d(hGFiiQY_h}+~b_2s{zr$1RAP=*ccW|Gz?Ligf=L{2}O(J*Or!X zpvZCjiExh087Wv*MrKSnHZxk3W+o+8#uG9;9>=f^Z<{mq>~N3=^P2VTPf6fF>!LAkoeEsSp=tI64A0E*yC?HEXb|AV5np6~k6^4LFKo zS)aD!IEu8Bf@fkIY1N*chpqSrie8`m!?&y*;yfuqb~tjk-3Zz$xu`zL`G?oek>bD?n2@4&{ugt6;stoU%m( zLXhWE3`s`#PUcZE8qDw%O$V7MkLLIWSN=a$BTz7e(;ok6m#zu*pflZUeze#;K2Sqv z#zco>%9lTnVLfD4;ERow^6J`J!X3vRaG(ABeEM9!M><{l?b3(6<$CP*#Qg0yPqqWQ zmS~#(>}0mQ=N`~gYyY%7yL{($?5R&1^X@RQZSIZvx4)eGVEgUAZeFWbDwX5FW3o&d zPzTR=f#*iwVC37D3oJeO=r?n%y$fmZP>=uC{R0C7HxYjJ$L}$}_~fFkL=uVRgO}c4 z%U^u=)vGx7>j`Yn&$Xe;FYlaPZD03Yc9qCGxBmEL|6dH2eJrOMZDEnfLV z*B@EI$CK@$mIn-(UU%av{1b4fKrmWs$$Hx8p_6}d^LnV3oH0J8V X_>Zs7+-L<|&R;2;9u+=Hj-UDm&mpSE literal 1408 zcmV-`1%LX9P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00XlC00XlDihVA?00007bV*G`2ipM> z2>~Qolpgm000jU^L_t(Y$EB9dZxcrt#((Qw?BGC*H}M)1iPE5gbLfGz9JquE36VpD z#G$ub+Ec4a{V%9`?V-2cT7lF{b7+L9RHz6LvHPK^*ltJ_yZXp(KoWof=qeIwT>!C)NX>Ty-w7}Q=u=Zu zM@-ZF*f5MqUDuCknq~qBAsSH>RXoqTR;g4jFD@=V0NOyHHXwEj*kzTPnVI<_nM{5@ zIy#!LEDO^#IdI?ruIsYCzD})HqgJcoIF6{->z8I{XDPESu4Ez2rR zOiX0Yo;}Op;2=Q|>=?;pl1wH;5CntyeEvhnacy zCyAnnPN%c0kWx}86iB5~iBqReeFYo^Od!>dqxYrKn3ogh-gb-+&hLjRb)3jo-c>d|r zrzKTDJ|Mff)eXa#%;)p?zQ1uUT9WF>yEuvcxFUfoblP!(cAUTtb(T8@zYd(>R&4c{ zdHV{i<|leZkC90>4Y$+`!38-i8@p@3kE zenfhT`|n&}(K<~iG|)B+KbcGp07Jmueulm4@$A_%QmK@xzK~T{a_^aZ0i=I4_vTnh zztz)_ZA5ecNOm!L+Yv%ETCG;^UbWl~51SJCiXLFLpK$ul*SuZ7`NCQd1pd}%U4|lx zqDs5nHg#Pm3`44GtH?vIZa1l*NvgTR`}e;icd&w!%x2u}`jcXG1w6pCgZdVSHu2w_dGQ9|I2HsSbjn(jJ$~<;$5&=Cekl zkpK{(Pv+V;r1QrK_Y4xtjV%fZLV%QlA-lq!*4p!%aH|_f*=Uiw_W& zN~Ox!*w`gq*JlO>1~&c_co@rzy}ZB9D3{B3ZQHH@>q_3@Zc3$^xU;jf7dxHKn&)}^ zpW(W$J3l}F6YvOF>t~qg^CUh{TUc25RCERL4TcaxUcGwtN8oSZp=!wfR`Kq=U#ry` zj^o@Y6bc_0hOzfGnR#<_b3fGU^*?~y3a|l$+W|^dx{+<$cBxeQIhV^F92y!L(==^I zvn8dJ<#PG%+}zyvp64wpum?c3uj{|uVkjvxfzd*t@LsW4JfF>Gi|KTFM9CFF5cthz z)2UXgkC&E~Zm0rzq*y&s9m3mcF?KXjz&>CYu$1a&l{OBjcRT8y*{T}XUe`oz1vQio zrd5kcEB48*dMOsJDt%Wyi(ckWcWZ?8ZGt`%+#hdjgtvQdC#%nH?EZf+(fY(&aDb!$ O0000DSr z1<%~X^wgl##FWaylc_cg49ppsArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKW@b!fooL3ADC}5E3S0onb8|oS8=jMX^1y)^L5|oN?23FO@A(aKG`a!A1 z`K3k4!1zd0hG_np+{nPp!qCvt+`_`i(bC1z$jQyX(#;WO23EahMvf*xZEj93CWeNthE7fvmX5|| zPA+cFE(WHiMlijedBr7(dC93Tdow}yLiC#A)obNkl$uzQUlfv`p94z)0U7xv`NbLe z1q#l=W(pdZIEG}>{c64+$GcYiBg!tUT zz{1$g(a^}q*v!Ha$X0^tO(7@L^ns4i2PF@r3DF-y09N@dT{CB!5b$-cZ>XHKXOoS-CY*h zU*><9`L;Swx8h_y-lX8v&chdav1?&&hTJ^vl^rIg8#9;7Sxk7c`@ZeY^-q#jJ(C(( z3s`*`Y=n7pHZZ?R=x6sx;SO==>*RZ)&9>@+H0Rn%rOQm5UUR0e%Tzw-8Zo)>fn}Q8 z4DP?uP4}DDy?(xGRo?Hl)_ukak<-|B=57BSq9Nk<`s*+E7afyMKG93ldFCD{BF^d< z@WM*2fBo{yFI8`aufF;%dhNBF`Sm(>j@FA?cnAc0JkAL2nO7$N0 zQ7iW8-lUV=7<8O*Z`}D4X`98TrCQpVtcdmfr85*ME<9ddE|eBlPOL!wP37{a~?;FTT4y-{rslcaq@s k9=}!ZA1Kca+0P=u;IMFt!M&WF2S6pIr>mdKI;Vst08Y;Q&;S4c literal 1427 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 Nd%F6$taD0e0svLa5Zut14AmJunp#yL?>kh7IQ& z&R*4i2uzVli7|P1D+{sw(k#oQ;hQMn^|cRTV{1Xf~Sw>#g`8 zq*AF*f*|}%CX)fL*Nd*}G@H$?=Ng95UdQ8c=H})Q1Od}D+1uNrP$;15y5;Nx@Yw;Z z3=Ith+-~04pvaIy^j#rfKg6Dv?OwaCC+R zyk4(e8b@6~#OL#&s;VtaQ50lZrdF#lH8sV;!a^6pFbq3z#05m0PG=X`FbvA&GWmSI z>zU{0=g6|m+S(c(j|YI8n;ToO13*!ft}G}Pi)6FemwyMq#l;1;x3>Ujnno^{vjgJ- z($#A9i&YSfMuYqNdnP9*SzTR4*L9ALj<5=8adDBQr6mB4kB@n!*Q8xQx>l=waXOvt zO4`}kAruO=qrbVi$;rtHu~>|)tt|jDnGET4+SXeOd@ai|Znv9evq>tIVtjnO>(=t} zGJe0G>FH?zbY180@bEP#z_kmwY&04V<#IV-8NC#z)7ge*vsn%f4yf1buR$MxOTjcv zL{UsS9FFfEkB54_&hG9mV`F1ow>3@U^z@XgtE;y>1^7#nq#vE#?H@r9)~$VCUmp__ z6Zm{SGMNm8LV>5Jr}v;|k|ceF=d7?~+ceDt5CW)FD($rTp!@>1txdZ=TYWSPoc$M? tnoj@# diff --git a/resources/images/impl/gui/buttons/chatDesktopSharing.png b/resources/images/impl/gui/buttons/chatDesktopSharing.png index c22eb06b42f20c2be3b33186e5512ce4b8b844e1..af0705c0b43c2fad03be8adca4c78323eb886f70 100644 GIT binary patch literal 1574 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 R?9l$sL#Yvzzmeik{0BH)XU_lt literal 800 zcmV+*1K<3KP)?NlPT)&6gFZ?|yvQ`=YI9G&dY@UyDZk001Bq%QpaEH8}wa z0AOwT%i!0^;l?-{1NnO8)!PxmGkGEEWsoQHXQI|1AuFf07+5~S}2W%d>ee1 zeLl-&pRZ4jv^4uh#Y+>uZ#JTwIkoM!rvm`2+N_zF6Y{x=69SRY zrY7w7Z~y=}Bo|6G%_E;)4|D?nXif*;eVclA0dqwM@>qFsl}(hX7@_J~`#OA{mCnue zA8Jg9v%A2?b_k65v?z|(9FhyQ%{@;fvV%8YJ#1k?t!c{&sg(}!&9I8(A0bd|?0zfsvAweuHV7J|N5&*zqv*tT&R%7ySaQW%MNN_U;V^XcV zvM9|{ic5|*jvuZ(f1gK-%H69AIms8X1-6{RXe7`uHse|BysTf|)4ol{A-P)HK95u8 z@@Q0aq<*cUu5+3eNp}GNkrWR#Fa!Mvq13aWs%1W7ff_^i1YDSr z1<%~X^wgl##FWaylc_cg49ppsArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKW@b!fooL3ADC}5E3S0onb8|oS8=jMX^1y)^L5|oN?23FO@A(aKG`a!A1 z`K3k4!1zd0hG_np+{nPp!qCvt+`_`i(bC1z$jQyX(#;WO1~$D$jz-4jZcdhNPA(>fhOUNAP8ODq z#%4|~Zq6&NiI9)nvNt&%wTvYYhPERB`rN$EkNH`Q>?K;LEyEA zr{_(Z>Thop&M+l>`n$RA@2{!}7Cf6bZIWWXdg=j}rjyvg?tRzS$LF(0etLadb+;2gQnmNOX0>CMkmguoNm3iJr;r-Mh!l4NkMWq#Udjk zHJLT-k|ta1s_fY@D|*2%4)2{m`bD}sR{hvu@!)>OY(_~2772#sj;UrR^eZ2N3Pev= KKbLh*2~7a@Eb|lq literal 1531 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 literal 653 zcmV;80&@L{P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00guE00guF7}21#00007bV*G`2iyS) z6f`JqMel(C00Iq3L_t(Y$L*F)Yg0iOg`c_iCTUDlY7hgWU~Qnhbj~$TB&dUfi%d-1!}G4<`*S!~!YnwF?0GTL z7D=*!*%w-^H8(xIKlHLC71eC6%B-SMVYaPib5&t@c~~*0Mq@=%RVPPP?e>bK0SCPS z#V{<8$;<CN(4dnc)@{VPly>6~!1arAvqUbH4ZqEPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyr4 z4Jj-aup9UQ00P@dL_t(Y$L&@gj>TVGb zNwZCg2qL5i1Z-rgh!MMm5J(YGn*{s;2DC5>i4rA+VzIhxoSmI_Q@AVRxa)2VArL$; z%<$&jk8{tx^9H!a{|2MVt!Wzn?)Ok+_oGw1w z5y_ME4a0a!@|B3Z1TbwF#s>gsYiqNDKBuOpc!6o5P|yJ2dEV=MK7VUxXXjlk7JD0D zDq%^AYjR5ZZ22aD2FG!Z#>dC&UDut^T5n8GPp@7Gy12L~#Q;wLU}$J)uvlJAQkA@h zO3kp=0DJ%^0N}drHvk=lLSYTSYB^2MIc#ojKJtAZB$elRo1W)=C25zFLqtyM>+1)V zQV{^hJv}}5`}+Fc1LzGHJ>}*~Y95(TV?b+tQbTTq zlBr=BH^M$@(lppqEiEmNM@B}vP196CMkGrgj~swI#kJd8TU)EGt*y^UHkD&+*1%NT zw%re)zf$HQMAGT>dRJH1!}j*}PljPMDy14~WvYTrAR-cAR<x|Yh2@>;1})MIOe$u&%poy002ovPDHLkV1kXoeh2^n literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/buttons/close.png b/resources/images/impl/gui/buttons/close.png index 6fab7b711bd203916a17f37c7cf20ebd512d13a3..47fba77750d383c4205ef64356c300cd266cd961 100644 GIT binary patch literal 1347 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv*!3HG19C1kkQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^Ko2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>aHCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JJoa z7#fLwm{}MaS{S;Tx|x`{7@1nSn7LXS!OXy>*VWw3$i>yo(!$x<#L&>y(8A5w z!qLUZ+|0np$;{Qo5vJEOuec;JFF6%vZzj-Qs9p=adaay`QWHz^i$e1Ab6_bTAS1sd zzc?emK*2fKRKYhfIWrH$2SpFWw=StgnPsUdZbkXI3gGay%EV$n(6a>m4bhuIPMGNf z9itCQ97u@;CIn1@ASOKN13B=_lbQ$2F-5?vp?GjhD+2>#v8Rh;NX4z5$$R};90ZR4 zDU7F-%zH*EjJTEnn)^MxClt!>6Fml8y@v(~OxFl=j@W7yU& zFh_BFT7Kk?-|C0+5`Jtn{_nWvb(BNrB8?l{Y@6O1AK^)QV{tAf!R4vX!=H*f`(-*O zZ{ge+9eQ>4y4THo0?%Y-EUR?4pT5G@GfU<4r@m#G>sd}TNNIK@Nw*cAYd(8p632y2 zYm&uWLPU<5>oAL%wOzVb>G0yYB>$A>Kli@>ZN6dctbLc+56t0*0C;Vof zs3Y0%$wvR|rkwfZhwKE_r~h~GoV4y&LZHapO$)+i#;)7gG`Ze^wfaZmyE$vQqh@UK z?e|@MrqnUE_=feClFf$=WD+xN6nNg5KD@9Yb9#26Onp*+h2HYaUmT|kINR)VBd7UI z|GQ_S=cFeZ98J?*{cfKD zlU+#DVHAg-|NH-PTbds^F%9b?iwP-FuBLQTmq}gJ3KWsBlwe&X)t%I3c@eUR2vLX; znp#HQSwa^LEkw=fMUqB-RN_>GS{tuhR}-f$s2?0Szr*3-yodKFwY9Z&tJUgNRn?_w znotx4MNtq!5YIP?vf z6k;Rw!FX?Ra5{X2RQquO|F6BSlY1;Rk9^a#cNwke7Eh`uQN*-kyb5w~w zd@TaqFgb1M=eTX2;gxJMbMle{PF7sxMR$alcuRRfgz8^oL==<5nHobgg>;8qT))|v z9H6Qy6&Ehi^Grow9mjdV3Z{**uQocD_Hymk9Zb_q03_@HAQp=eBZjK$kdg{ndr(a) zLfz836(FVLRYxo5)8BDq*D@nhAqI!%aip(uarZC}n{E>hhm${{zqcK?tq*7FA|Jl& zr)#+Y!$?6c4N;api(;AK@qG&ojrX<(tOmbRdhiGD7wvTYE~WCa2h%ip+R}`&GKX{L zEN#=X$tO5;>=d2>g^cW6+%;FwbsbI9sJVKBt|vQa|2)OH>iR^$+S*z)ZVHP^C@ML+ z{_oeDG>z)|hV@&BD;y3-MKl`qFDxuGM5eC1B!k?KX|#j z_kDl&JkRgX`+KhtX@9o5a!)0KAl0E3J_^SQ_*6b{KYXWl7#HBM+i31GI@Oes6*Pcw zqM86`NEZ4)6bNGe@K>M-L9A&h)@5{s+t{Qk+XWM2&&e6cMvx|NE+ZuSfq^DKpQL!O z8|S7mR1!Vd3yonSoC$!m)H1Ar&f)f0a=1Uqh?w^P+LU9VfD8-)&B+6b&gMMWx-JXn zrWwc3b%@dL!8U^G3P;d@ssXgo?zANdl0+%WPP!T?ihKrj5TpYq;7!>`7u!g&4mY}a zVbGfy%|gMF;W;6LlXe1^WizjJv~EPf-(hTv)?@h$ zz@tD{2el;Jk5qk$3~Tq_j!YnohV9TKxGBN_uO5VmCJ^K}M@eHluAAZ*#@|Tz1H7Lkn@PqWaQR(~li{fVP11ac8&Y&b zP?DhJSAu>WCYEDdkjwommknq@FjOt3ssp7Ch@@3R)zfMQ4RlgyLs&>kifPzyZqP=) zJkX>eAOf5sH5>+mo9*$B zb}5-)51P}h=7)=|;{z0UW;A#>YWF?)9fFj#hIlTPyOLO0Ss73C_MR;J?BW^uhclKI zXD**7t&<_&k@AMQ%a7L77{Nn_ep>zUT-N*2`Qh3J$LGJ8ou%U(S9kZz<9n+vPk1}T z!A{*KUY`V1dH}!cTdlvrfK&Qf*@Qk7Ol(}7mwdQRVak&PUPRH z_+@rF9*@5}ap08%@L9@tJ~m$Vbzx+_4V@?y3h$ML1rdO|^%!>Rp~veQ8fL3c4?PhP z(6PzM$%kk6p!bT)%db9v@Zg=RS3d5yE?@nmesXH+(tWY_zxi$9+qd^$e9QLo(9bi+ zife0Y?()Q(dhNn~zGVKeLe1^`l)rc6FBXBwO8@`> literal 583 zcmV-N0=WH&P)hRT<&2E~4S)P) zE?&9izIIa*WnpDt;NWFo z5SC?NWaB~)Z|p8`cXwwOVf(Q!NBg0fncP423oqDyKYaf6m!a4?4cqD0BEKizmOS(37mE`E1H<2$=lFIpDL=Ke5PHkb%=ljorx&!; z6yI-sE@yJ$o!E)jzc{^i?%es~?%lipq!iSb-T1_Bu;H0J_s@UK1y^r9xWO=d002-v Vu;?CNOJ@K8002ovPDHLkV1n>v8}a}E diff --git a/resources/images/impl/gui/buttons/contactListButtonBgLeft.png b/resources/images/impl/gui/buttons/contactListButtonBgLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..966aac3d9d91223ec00700a0b5c0ed746333f725 GIT binary patch literal 1079 zcmbVLy>HV%6nANv8geF zAjXS}Mg^}^_?td6ivRVAohDu;QK5!b;2LUKAs{pd)&W`ctaVTUma}#DGnglc;f7nS zp;~E4wV_8_i47fl0Y($V{6ZX9b`v174%S^iOZ|NJfg)WeOWnwn*iw)O4R>)n1S{L+ zs=eK`6^B~5Le9r3Ch!2V$k^NPBQ?%aU0xN-iJGCvt_f;psa{aE(lVKcAs{ofkg{2h zBSn$s(iu_Y=1899c!tHVnBvlEMpSu;>^~It7CLKc#W4H6@GeU=5DHX=X|-B(OQ2!6 z&TxvNBpf`S!WOA$%STq6@}rpng8?EtbOYoIBVs@57Ydh* ziLHR)XqNH3B(JV@geu@~7{^*i)vW+96%fJA(8l+%HZuU@+MVnuF~rfR*FzUyinU=t zd(#6xDjHb|pU{r$sHP#A94Dn&iDyNb;}l7jbxko8UN>3A)CL^KVbi)K$wHxE>IOy@ zI9-<&O%Qd%%o}Vb!w;}UKSGvogMnWc`|V?m6R~PO1Qvo}6~c`{2P`)rf>8qoWPU{? zFO@9Y^%KQxazVX(4G_BbfMbTxBfAw=-D4s!1Wn6}EGucf%w<*ZT0cxFO89KU}&p2mZPYo=A>{rdUF?OkHzWA1RQ zy_fs)H8;F_s!ipdjJ7YHOOGt&4)x}>)rnc*+YsBiTz+%2&EDy}Dm_0{`-077h39smFU literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/buttons/contactListButtonBgMiddle.png b/resources/images/impl/gui/buttons/contactListButtonBgMiddle.png new file mode 100644 index 0000000000000000000000000000000000000000..b61d69ad48d2e4b189003d84bc12834ab58aed7b GIT binary patch literal 1025 zcmbVLKX21O6n9k#P^E6Dg0h@kBtRmz&q@4GHLV@TGy<0@jYNbPaO`X2ruG^8O59F} zjREly7+9DP8%PW=bYX*)Z@_@~3Opxq0jcVMW&7T}d%xfNbMHOh+PuBEu)M%=++t_L z>B71U-<1pJ;6GS;HG<_bYxmhU-C<)tBb*h|0YRPE-z8n*hlh{9kX4SGA4a`C>w9;N zfX0Gf+6YCQ0-EDi*NW5+MuedO*^LsD|Ml?`kD}1z?>9ZkOIu_ZZ5(A}`)IQl9E}1! zZ1v`@;GL{;mI3ACMab2LN^tEyIaW!H89*~Yf5=~i8_9k=C3 z&8A#oJ4w#`Bp{XF2>i~l_)M(P%81Ws)}wU4>VT~wWi%hs6t%V$blvlVC@B>;$_tw2 z>yRvZLP9sAF`87^h)#*XsasY{ktEfcX0Az)i-l#mu4op>{0tlZPt`;SMl9RouXd?a z(1WFT()_SF86T3s%w#Ye?=F4#34EIU}gDy zVr*)RqNqf1NiUOiiagV!BjjD1eA*z(DO{-HRkV&LZpjgOd%^1T*u20w$HNOz~rqzI$uE7n*QcV6Q7>-RS!wUn*0_*jG5N)oQV= z6pMll4#=_`YY0M;Ad=yhhs`MIg|h<%9fnrm_}D=n9V?nOw24)QMA}Qi^-HA#VK3|# zij<6tOrHZR&$(`#R~H@PGW;9Hq3E!(&U0` zt0H~6WLl0FZ=8t_sF$w}1Lr2RjR3iHx5A2ZSOh6e%Zogp)q0sryp%FDAP6Z@(umFU zx%U55jU&NuaeMsJE`u%7gRyzg{N&?ce4s~WCLqIciF*Ey43<^YwMz7@cCvo;Q)hAd z=ZX9KL%%%w)`!mG*}aL*+TxRm4zs&EIwEa34{xWy%&L8PJP%!`i literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/buttons/contactListButtonSeparator.png b/resources/images/impl/gui/buttons/contactListButtonSeparator.png new file mode 100644 index 0000000000000000000000000000000000000000..fa63cd5474eb27dee4d1ef9a61bc4666bc10e1e8 GIT binary patch literal 999 zcmbVL&2G~`5O%4As!HXC5IwEj3zdlNbsGPvrn0>?4Z>}dMj{6eZ0t>9HTIhIwsCtx z+&FRJ#6!RXaNvx@6Yvml;Q?4Dap6$)fMt7UXXpFoXJ_8^j-PIAZf{DGwADRAeX*{I z@7~5;@&6fIycEkremLZ(bj;_N5y?yFh=6W}C!|ksa{2lj*_WjCX*wA4Vf5UIX{O-X zMyawwpe1Slpek^DMmQLeNt(OzuPGH*%$1ix4Wk|iC?lYwv|F(TAutRD?sW_UJ_fo5 zbyX9u(SmzU$8dBLtR7i-W69X*qj2R*>|A-udEuz)d_Gs^ZH2Ol3T@l2Idr`xEL!Dd z&T-Ys%bkV+kuqj!!Bd)pnh}raId^3d=`w|^h@xxayj&GZluWH~p+ZGdv#ic*VO{b* z`5VTK*5%-`AZnkK^qj@wKE^u@Sk&%zN424d#yMfBxD-4?G(OKr&b!E!#fg%ni4!6- zgwWj6OkFc92yN4{e9uO<2Mz4SJ>cItP?PTIb{P%XH5t6rj*liN(&I28sJfc<20`oyY&Sv^F@TE7bFQ8 z&A_6CUr_H`2N^oveM_e6any9=-12G5X}c Gdiw{9-7bv) literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/buttons/contactListDialButton.png b/resources/images/impl/gui/buttons/contactListDialButton.png index 50bd8e085018b51ce34f537cb867f97704ad55bb..3d8433e2db1af3c7a33c861183baf4734f1e5b67 100644 GIT binary patch literal 1945 zcmeAS@N?(olHy`uVBq!ia0vp^3P3E+!3HGT!p`>qDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49ppsArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKW@b!fooL3ADC}5E3S0onb8|oS8=jMX^1y)^L5|oN?23FO@A(aKG`a!A1 z`K3k4!1zd0hG_np+{nPp!qCvt+`_`i(bC1z$jQyX(#;WO1~$EhCe8+y&aRG5WPTrHgqTufnlJ@bl767!N%VfJPM?S<;K#H-iJxhOTUB)=#mKR*YS0s=DfOY(~| z@(UE4gUu8)d=ry1^FRWcpa_Ea*Cn+mvn(~mttdZN0UW|snOI!l=7#EX3nL>(R|`us zOE(j97Z($t>mhnm$O$!lpkwqw$pb05z=VKl5X6Khejo>)eNyv)d8P=MIeenCC4qVF zxTlL_NX4x^;nCjGjv{umkHlPw*s3V1dr!1^JDYafs)(abfv;yr#JAdMBrScgnd=vG zR(7pM#Qk6wT@TjPTY~gWwAPA0u!k`})1N%~!o_=hkuzu7FnyR*mYkgYp)`vtC^*PLZ~A7@)mO7BqN2H< zGcPY>I`*gS?%mjquCAt9pXcY+>AlFvZvL{xEJ?Em>; z!Ug>^Pg$5Otn8L8I%cBilzU;$(fRg@rlwb`b3YgqM0y`)_Y7e1JL82OA;BTM&*VP!!^7{bt)1TaN^6&V2-cC=USMiA`|SEvncOKS zq^{L0W7W<&Jp1XYt4r%8KZN}*obzJ&l+96V1H$6YwH*(fld`YI>-yuxi(fBa_&KK4 z$Iolmg1UISsnPdZJKnzp7APlv-Jg+F^QR%yssABonX3H*9-DP568;{aC>U3FK+?m@ zXU~S`|7!m6e5grCNND&P^8M$JKavl2vPRFI9sY@VAFKbW)sg=bD`rfW|G*&h|73N2 z-2u}NajR4RK9juquVx=(!p`!D4Nrdk?Ynj3#*RtvPaAw)8C#GbM)Txm1uFD(Q*XNP)W%Kuk8RO$@Ff*=x0=fu>Ph=4e`WfEKml zY41?DyM0($7&~BJw*9_6&;4GWdtUy}g9w5EVzAro3IKQ;!?2Smik<|3qbQ0>M9Bca zaU2f-zi}M5$g=Dr0Q~6ndS8ff5wXy=wzf75!#=I8tzAEU{P^?w`ucUF(MabD%pepB zmHPdDbubt#Us_sHvn)F>KR-WTFw}0hmth$8c~w=Feq?0iCzVQ-EEbdx@pxQ5G&J;9 zG#Y)vvg`+5uQ&0xP`llJ7{jpp-QC?wJv}|YiWw!7Nz~`_y|%EhVA$H)QdU-0ZZTOH=C0wjYuD=M=H}i>rBWpT z0A{m!>FU+1vm%C_p-|{`006mM{$gNYV5+I9DVEKN$K&$e-rkPAy}c6>0BE#YtzofE z({S;JvKIGTUl8#ba!_L1wnZ1cDvh6Cez-PD_1@% z;h zAqWDk*XuW*K7EQtqfx4^t}Z5%$$EEe*3JhK3Q>|Ou>U>N3ox7&RmK@dUgYP)>-@&gn_l>|Yob#-+e zoH=vGWH1;aJkLMT>2$x8mX@Z)0$nbb$?bMqSe9+b^!>k=csBmi=SnvI&4=0VE$whI Td$IWe00000NkvXXu0mjfT-|Bs diff --git a/resources/images/impl/gui/buttons/contactListOneButtonBg.png b/resources/images/impl/gui/buttons/contactListOneButtonBg.png new file mode 100644 index 0000000000000000000000000000000000000000..8e5c2a7f5c0e8963f2cbf02b8b3506f958d8a52d GIT binary patch literal 1104 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 literal 631 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 E0Q?msV*mgE literal 1437 zcmV;O1!DS%P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00XlC00XlDihVA?00007bV*G`2igb= z3_BknphAEE00kXML_t(Y$DNkTZxdG(#(!gv6Tf4}&V)EgLnFs)x~bGntFDk(blXLD6^piucGreVs8s|sJW3PfP+VRP;BoBO>E_xv!Gyq- zj_fmcbiX<0e&;(!V(&{5)^GX3_H@WzKmvda1ce2}{ubZ~bA`Vv_-=p!AehhRGpSVS zgHR}RLYC!Y!C>$(AUTdxv~7FEFpL}Ja(PizRTaV)Rcf_bqf)7yzkU1mPe2XW1gw71N`1frg+gJUqA1@e zit@?){5+GBli0S6<2cy1-L;NiDwQY}i!>UIKUY>(zTDW@C<1lB>`60-``DJoLZL7= zHa2!`c6RpUnKNfdBof%RjcJ;grio=)UF-ORgM*~gX&lFSE1gb%RIAngvMj3;rTa3# z05Di66uzCAnK^mt)G1uo-F9#XxF4wNy2RsgHa9mT(P;EQxm>;hw8fovqYU<>Ql6We z`*dPr;`7s|PvbZarfK4Zlen2_oVbFU7{yEGaEEfZsR_2E0D86DjlS7z(r7dYhr>BZ zlFWL&Ug{x|kDxk$bm-8bY&06ZFh4)vy&FF}&8^sBOi#iL_?SMJK``+#B`}pE6vE?p zi{E3KChP0#-E>V&O`Tg?Tf5e7w;O;VnCr_Ty5R8e@cUz9W7%jlieVVow#`U9&TK-* z-SVHC=Wp{hX^>lu2K9O!&-1!~vMk3GMVWo@;K9FwKvoA3AQ%dTPUdns+U<5X!nczW z2M(lnRfg5oCcjmyefJWH#6e&LcnoNO+l^3`<)b4bBi-n1+s1X>=LfH?^WAcb)#i2) z@w@=m$6t|D?_gj15#P1Dd$Cw-97qFE!566;VK5jxEX(pXK*w?LJP+UZ`RoskUt0TK zqDkYhFVBa^eY`6ddjUs)BoOHkRPHGWsa~%WiA1_!jYflJvx#L{oXxd47q9J_-unYd zE??3-wq&-;}kVbn+33K8(r5?D;2cKNleq^^pOctsno83KbLQExyRRa zeWRa118mv0z0zv6Xt&!KhQYIE&$w4Ap*5SdG>tb|tyZfh7)HPIoAog>Ds zLlh7PGJqmfKP|MeLt|6a*@j@F`np5ZPEc9sU=)an--vjIV4flBOz#;f+?UO#dmV&> reT<$VxYyoz5bpQhZlgYX8TbDOr5fXSLrMt500000NkvXXu0mjfm2|1n diff --git a/resources/images/impl/gui/buttons/dialButton.png b/resources/images/impl/gui/buttons/dialButton.png index 2e54171318507f36b66f85b660b7ef237a0716ce..48631fa7f5637d622cf4af0533f9a228d16686fa 100644 GIT binary patch literal 1866 zcmbVNX;2eq7!HSu94&`}0l{@e#?g>u14&>dVonYTBA1AYEXf7}CL59^37|kwR7O!@ zsv?)S)B^+@98VO~A|nV@zzX%mmX@O)L$S)B-6&XpIR5C)?0(<-eed(U_iTPxXn>8S zvn7c{vIz z{YWG;nLIKEj}eE!5==owj5<`kLPelSBtL(>3X!CsIFNuQ%9R}O#igqtAeVB$l}s^R ztm30d^1uu=8j%qiDalBY_)0g@8U>hCx~GKBq5~|53VC_6*=!2HphI*Tok4>bo)8=MV!(7dF!6wdHMLX* zhYLg#wg`y>CgHdWrqOgd9aZN=#ng#3$k*4`$iZNE5*nVGbR~}HJ(ZeylMDh>BT>s$ zxExagMn)t7OT#%J;pwLk6e_X!GqF-LktiZ%G(DoCK~y?Tp)khvQCowDqyM?_Rc%dV zx(cO*qZ%wtEg|Y5n>Pt2a`$aRMn%FKc)40m6a`r?z$9r3REY-(I3RIDmCB_s9rB?= z5Zjy1X3$wa5ai>-^ySlq0?3;U5$P08a(oRd^5OF!A>YRr5-}i12>J57cs!v{z=niu z9s}Y}VuO?#98pTpNxO2w?gW?vBQb3KWCw&LVK}Bq!c+i1f(eKbiCk%v zjpg|itpHWawWw62#uUKE{KE3D*=MswU&hUY*djh(#Do|kA(PMMffHEi|H&DRaE4}V zjxU;J@`&g_=TP>eXmfjjGta!H7@BI2Io z4Y%Z(nY$D0UYYr&+jaT_7JD7DbEbXZa$g?p=jFSpcRO!$ce{~cmwaODFQU6!+;Zbf ze?R3RKG)_k_S8!T4l;tY%S;`$@%qO)?Pz)8fj9eGY(t}>dQ;_>hi5UZPEYAJO))6E z11hJ_Zibo@WwI?Zg%>Pzxp?a(^UN*JH~X7s+9&GmSkp@L+L}CG-tidPm0VvEyJihV za(S40X594&JiZ{Q(e$9p_J_HdPJJso@-g;p+wRtR?JGxUbrjm3;A47k=c<~VIn#$m zMn;$w{Rf(^6l7goeeC8ta?Z}K!N1=Y6coIvjS1<@W!X3`J!AIAqS)6J-cJ^6Kl~3k z`#XOJa|0l`;nNcyo814|Y5MP&qBfq2_XPU+UQS`@+V? z#(aapFh<=sIQ6&>Icg;R%A?HUv(~QnTLMa9o0llN@cHaPGUByA zUf1r`-P=rFQyBnOa>y{l3RqO+zR|rpE8^)Y`3a9iDaRv+G2@WYPV zq#e;I^*t`LAC|D*5hxdR*B>%#%J7`JLT?u4{Aqk_TGe~UfE~> zw`*0mO-Ki64zCPz@;ZqO;$s6{8_%^b9r6i&7MH_3ylQNPed)#afnaQ~PPRC%!S&(6 zx@9Hxt4cW9611jE)26keAOq(0jIN_c#FT*-C)b*!jJF_$`fIWAAFhtB&M_es6}vC( Sts1R1{@sFvp@M2&eD1&5jMVi2 literal 735 zcmV<50wDc~P)Xmcu+5xh{yXyB($1NzxpyW^YpiE$97E9&@`<>VF026467ox*If6$mCt|E7Z>|p zj*N7vn>&GydL~7~NRcMi^ z?A0C1`l##rVTIKM$gB2BK9@W5eq!RH0$iZ^>;fkMu}h^{T$h= zp?$d3cv_>_c;0EdSX}*)N?lV2XS5IlgYRHfVzRUJ-Vj$ zHxY7rax&`M_RVU!od3SOd_4eq155}0TL{@QBBes%L9JTlv!*@tDwVHA!^i&i(G?e_nWp3E!-wh=hSt;0v&2*7t#LfT60xg@r|A6SxC5 zT}p<)k*YpAC6{Ild~S-q0AGPUU(~>t@^*kyDqNf4>&2c{)51 z$pIH`y9opW7=}T&+ofKw15AMvRlS;LMc&H${eGg+C;*{Qh+3^iHk&0J4qJ!Id+~VR zy2xZQbUGd4@i>J-fn+jCwOXZ8skrvc^7tQmy&l0}kYce&DwU$uYEdec7Jn;5WNPQy z?KZJkjLBp|I-O=X{QrqiSXJLVD}LFDMxy~hv)ObMb?WikiAW^!5je1N{eGWBB0;%a zW;7Z(315!KBD^cmMzZ delta 995 zcmV<9104LH1pEgfiBL{Q4GJ0x0000DNk~Le0000K0000K2nGNE0F8+q4Ur)!e+v@; z01FcV0GgZ_00007bV*G`2iyY!5d|1Geqs9n00VqUL_t(I%dM1MXq#0S$N$fHPu{m_ zlD3Jp&DfZB$cEAn?L}`&QCKZSrVgwF3oEwJft@(mr0Ceqf$wrM`zf8>47hZow=c3&tvcZdJOkMsPW=ln@)jr)1{{Q@2T z;{f};c-dmxg@J(qjEsx`0Q&p;(c9aLSS(i7+uPgG)zx(i@R}VzT+o>w+T3zgRTZ+? zEQkn7DG*UvtE{YqZQIzWH%$|zQV9TX^jc`IofR|QYTmx32}HXmMF z&74_H%BOr`b|t{V697Q}e|2rf$HytY<9#bDZl2CBs~+Yd9oS(!{n`HY=>J-qXzj4i zE@UU2obD!rVEXCvzDGWcZs-gEUWz>6e__)9&e+T`x*P1!WX+y@Vf}(A>2AgWUV%jq zna8>wI)W`gi)uNn5NeR`triw0{u=;RNt(!tY#9--YC;%GHYe}D{VE$GO^^D8$u z*Oone?v(FLMUW1;IsJ>9$4RF7cLY|Da9a(pK57QA-|+m?fD%A)MIS%+a{l!@emz-W z?`f}bpgPPSEjh)HMNtAuXu~2hOacgCFu=*eUpMkIl{z$hJ6pC)x%))m#Xb9WPgK=< zxh*p&${d7t0RR@Oe?+wz#{AquI`e0-?fh%mg?j=4;F*tV`&wFBKH0gu-o&;M%_XnO z*~D+pM&HVReW$_Q5)NOzkv{d)k3VC$K zuY8|KB%X+Td3G%M>viFA1Go^4oo%RU`QToAN?L0S4Gpn)e>`ra(`jBT7P%0@Bc=2x zrTDHV^<$w1^WegiGnP$J27qLY3C5VDSr z1<%~X^wgl##FWaylc_cg49ppsArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKW@b!fooL3ADC}5E3S0onb8|oS8=jMX^1y)^L5|oN?23FO@A(aKG`a!A1 z`K3k4!1zd0hG_auyiyw zb8>NWb}=wDHG=8&%quQQ%u7y%*_#Qp7pm77uU;$XqSVBa{GyQj{2W*c2*}7U$uG{x zFHmp}HdD~>O-#h zTN)dhnwuNDS(-UoC_(k6kP~Y9K*#8Vk_S?9fe8WAAczT1{6G#o`=sUp^Gp#ib1YNi zwq#&nJn8A;7*cWTO~l!(76SpZe+t*$E_{>tGW&}sSF79`-}~NIqWN3x9Of_H!XFsr z6}ZiNi}7iW%x&w`jvaDhV@oxitZy9u$o%xKb;W)sW1b&5!?dkI_d&f`{j2WGS@(>O zxz^Tp-d{0aM?)UyI!Ps*!YvY=>H{mhKQv~d}*befYOWfMRn!^}< zfctf#=iy@&EHf?cIsB>NI{q{++BqlB>TveCpF*56SFi1Qq`qpE*A<3c*G?23-?DXm zIfUQZ?66ZXVvzO&_ zFE5-n@7Bvhe0(cCV?4QYJ<6_eZ9K=4tD7dF{gtn9n;OIJD++8v-*;rq=HFRq)SR9t$x`njxgN@xNA34jTJ literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~i!3HGN^yhQ|DVAa<&kznEsNqQI0P;BtJR*x3 z7*vjfFk@P4*Ce2zWQl7;NpOBzNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~)E`#oJ8 zLo_BXy=>^^>?qRu(BD&W2V-kP$J$nf2oBB5CzWffPRhNBZP{w}PAOq=ue8Au&NS9Z zpCV>F5`2D?=bypRy>ouPKXAt5lFH2G^C~B$>7P_js|Y$Sk$!EPr_j{wNh-gm2G?Iy zwK$f!df$zcUtJX~^BI;m^%eiq)i3;G@FKXiT0ZIYIm*0*a}|LfeQ=sSw7XX7Ov zF1-6jwCVeg1FNn^Cp3INTj0rXUixdY`?}9k<;&Wa&QFg#E#dwDuh0D}dB;-s)yaqg Py~5z>>gTe~DWM4f=$L}i diff --git a/resources/images/impl/gui/buttons/exitFullScreen.png b/resources/images/impl/gui/buttons/exitFullScreen.png index a01c05162a1860d444386e8f265885ddb981e6e1..502fff66e42e64bbfce25a254289d48b71f05d00 100644 GIT binary patch literal 571 zcmV-B0>u4^P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyr1 z5CSHLUXVfn00Fy6L_t(o!|hm6O2a@DoR=6%wSI`6#FL2NmtWc3E93%#2k;-yr<72|N05)r__W^hdAYN;|H6?@)-IkG0P6{F30Z69D4#2NU zk0le1_@x4FXW~==k<$BaiXMw7QB~C&gLVoeZQH)ir3cxbY$Cek1G3d7{0(5wC*8I- z0B!*6w4qf1N-5>R2jG~0NS%NLa7@$mN0q&?Vi`L!&_ttH1E7{tHj57(H#pdBMtS6l3 z`E|!rA;gFF(B#6$EX&ls_sSKi8q312l&ArGE~Sy7Z^>Z)IKX=W+)coDb$!3Qs)QDD zR2l1KYG$^s^n*6mXD(nh8#k`kd@WlyF4uetf42s}0dN33TK~*Lwoi$4;++5h002ov JPDHLkV1hPs?mz$l literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9Q!3HFy+4N(86icy_X9x!n)NrJ90QsB+9+AZi z3|i74%vciI)dUojEOCt}3C>R|DNig)WhgH%*UQYyE>2D?NY%?PN}v7CMhd9tiKmNW zh(+((D+~Rc4MmQ9l)ufy<}AR$lh07ZW|PLo!PMMf?x0Xm&2gr{!-mP)c&{ykSnEN7 zyfT41vvtl^y?=LT`WDagFMoc|o*m}$ML9`G@N>rc%E;UIJ32J^J~ZXO-O^gTNBiXB zjtyzjt}Z2BMHerfT*URlvEuT|cEM(R<|EWgvHK>sp$y85}Sb4q9e03Z8^ A)Bpeg diff --git a/resources/images/impl/gui/buttons/hangupButton.png b/resources/images/impl/gui/buttons/hangupButton.png index 2741d5460baf2df7c267b15cd41b80bd08fb106b..430f47a0d75c4bf2c2c4f9c7fa14f99d81d8745e 100644 GIT binary patch literal 1693 zcmeAS@N?(olHy`uVBq!ia0vp^IzX((!3HGv%U7lYDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y) zTAW{6lnjiIG-a4(VA$ce2&53`8Y};zOkkuW=D6f1m*%GCm3X??DgkBmQZiGl3=Ay{ z3=Pdq49txT%q$EIEi6neoef-F3{A`pfx+ntGXtAmHzQ+Lb7MC%OJKko8oC-H|m2**QVo82cNPd0}ECmE)#&rIbo&`bc{YIaUdlYm=G`pf|&5659GizPih`8#}omx#^nyDi3|)( zXFXjULn>~)nRY%~*iqzodD-UKzFx_>lY?F_ZBo6IB`C84J^|R2>qC!)flHH=yYqJf1Iu0W?Qj#spC_UXP9zI zJ}e7$T6E#}ibW!Y2Twhoxzy+6&MCFqH2*qDM#tXW6rNWfp_x>7T{_}3Ywwq$=xjE& zC7rJ4o%b?YvTn+>G2K7!(~O`M)h2<9zwCWlv3`2@)+c+9ZWU^KF^^Gwos2#6U%O8) zl;U{bh0b``5HojE%E7YvHc@`(_n(QHn)V@ncsd>Xdg@`OKsoR;Mjry0Df=PjIMaK<=RRdI=*M5U}l2~W+h`5S$b+~&e5-{I=FgY z%z75cHgyF%udcPW}=zH|z1OKR@mB=gj#a zv!`gu;j~lz!8>n0f8ENmtCB-sCf$0DP1o&DX7P`Xu8f!K+f!j+XeDg=mHTZDpTw;v zC0puq^!_UA=NQI6|FB-UTf=R)VM{&t2JZlKh1U~$819P%3H+TSal2ybR=Y-pix9Sw(9=sU0d|N$oe_2k}wQ@o-LI$ z=hr8L1x~VDXV2dDJC*%p=5O{J_kFfKOY?RqT*n@`Mfh-#~xb1cNo(I1Sf7%L-oj^^!^A`JB(opOnQW x3g0}oLO-E0dh!9G2qtfEdiwC6=}&M2BSY(dr*QYPF)E-6!_(EzWt~$(696x7fv5lg literal 1242 zcmV<01SR{4P)MH*anQ z+UvJ&HNHK1l=T}nuxiyRvX=>hV98f&4O$aqzB;qFc*Wy!A`c#Lv%8zv_;>)c4Lp6? zAsV)9*#-RhLvyq7{fQHSl+sux?*K@>ee1Qgw5UgsNC4~++w1DC)ok2&__y=t1Etim z!WKinJ90#Mo_AeIDVq))I)v8Ra9y_$Jd|mwhQ>xB{ryc!N*OAzsKE2Qg21x!Wo<2g zM(LI{E&cn6G*j#3c{QB+ivr<_iu7`S>BtE-E; zXq0`v&+5$OG!U1Ph~qFE4)f9RZyM@qC1n4X8>`!vqZ(s=(qiT-|W?cdLqmKIFQBArf?PNxBo zQZ5vY%2cV860J4qbedEu#p_F#*wNL6%r(;W(FpuB;MEeUgHOQ_Ar&{rNv7-4iAnU&59K(DBru6!OuS@`REa= zhlg1`J<}F;-m67a5>snwin26e>d(La_4WNq)b58{2VMQ(DT}@^Ze~y_?Xwb?<5E z1=+T38=E$5;;%Jpcv4Zp!0Xq{B$I64vEyB?vy2~`oArT%2l=$BD)*ulbP9B3@Kwu2+{j0 z7CT%U4ts!FZkP}Pt#x{8V#1M9_9`i5=gSu_zIi-2sKN~m9-x-1S`EWMYdzoJ*XK-3 zOaxNOPNB8tr`Fb1+i}`A)YKSNRaF$NT*-%KGtiounHfe$Mu?7%2CnP2{o2vdA+j&T z&uwkHfHQ_+G+CAv;zJ8aYv$(WVp{87p!1jZ_PYT80u<-n)21Fy;{X5v07*qoM6N<$ Ef<53#?EnA( diff --git a/resources/images/impl/gui/buttons/hangupButtonPressed.png b/resources/images/impl/gui/buttons/hangupButtonPressed.png index 49eee1b74d629e69ea74a654851d9c4073247e0e..92bc68fcea7e89d4574bca04d013cf9bfe848979 100644 GIT binary patch literal 1844 zcmbVNX;2eq7!Ie1Qd>bMh#l8>g#bx53ArRH$tH*rj2sq3973`r5t0p?g@nV3QIS|w zMyAFC#e+jYITSpq4x(~cv|oInd>a=@fb(HZzA0qFxTAK%->G!pPZ z1xpr?J~|a6l>s6Ig@HgSGeAKHL4eJsf~-I`8}tVlbdW)#<2O41Wbp&pd3WlIv+8l}^)Y?Qwn3HeeC(zixb1 z+YptZhiMV80ZBs@cs-J4je+spec6y*5%-3_4AtO8k*7e2B25eHuuw=q!oN_J8YN#6 z%#nZ~hehWw=xi}PsHT0 zm`n~XAH#;~447P}fXD1=aJ!>e=!;ms2!-Vsf<_@o%2)@;)Ch(c)QBDsMX~|1RIbqI z>;hkVfj-6y!Kfx3R!UGr3w+2hU-KCcM06&^kqCn!-e}}>E|V+biP;=6OTrRCq*1K$ z|74AZJ43U#$A8*oOoaEKefz2T@x!O_fpz%Ip!jeks41TK%q50G!BM8JzjntZ|Gvnp zRW-M;W

8j<8Uu{U|5rC~}j%|CS{qv^%Y;uVyo zhWvLr_`Nk_sAx&n!Oohek6vP#%3Z%s@HQ_i$zz-2o^|AY-AU=~Z#0YyO;OPLZx6l= zx!GWh!R8p9v;C}os~Fd+yoD{~mdD*_%`E7~{p|0%(q`PLJ?h*3YM=H(;c=|JDwE`v z{(1>1b-uVwV@|zY-7>4i@|AF)mHh2O1Lbrlrgo+76jDM2*p2w5rJ27G zC%Ht++V{VDY3T_&pAbeZi`IjM*E_b=J-T@kaNG~NrU~XJ63_SKrVi3eTN_p`AF+CO zlx=-H1nnq@-9_N&Ctu3B?$hF1SRitEuDTmb>&{wr^6tfo(v`#-s%w?YYk$Q9hpXXD ztm5u#N%OYL_+9F&L8VSEm$=*>?o@ZTtuh-`>H|1PeLc@P))w2IjZ;SlI+B2qN*hA- zTPZv@-`t_@2_Tfe*wZP9Otuu2t@k9t=IS?YhP>w<%kt0;Tbj%1Ri4vV92+<9(DI;5 zY3~T7yyi`Nf5Bpa6QKWqb#1>-efMhSS|F&%cKV6sK*@pNa!sxSa%$443geVBuKj+q zQ@*J`UU>OL^K4mp3OSmys(<`$hjo>8PvcHKNU!)anqz%(uFkuv+I@4`j(z4jA5#o@ z@ze(meK}{Q-MZ79-4tzIZE0^Oa$UErSJ)`Ejhjt^SZjKHSN_Pj;nE8KogNf6Ny&&` y*YxCYzCSv6xa-w6a`Vea?J2PxHEoIg+X+qt>OBYsA3Idp|6`%zaHv|CVEzYByw8LH literal 1279 zcmVG8^JJRb z+_M*XSYkySHeWa#?!CWrKIiv6Pghe)0npLjz6Ur1bOS!tMqywY82$79{Tl$9Qi_1z zKL88|cJ0!S_V=@;t&N6;210cf{ZVMswHOdZv7wNP$c=oLPJs7lsPqmMB?6};%b?f0D#>Q+Z z<(k4Op~sFKk(OosB!v*&pC3GkQcBO|a<$+g4MTQzbrHOMyITq&eBKQkuq>-4u#!IL z=-`iF&?kkI7=}TuvMb5uav`Kd3L(g5vo#0iEDIq-5tz%>+|qnLUjRxe$y*lre7Z(~T;!cZ0%tx?)HF#roh*({k%hD;^{ zfDodvXk>Af3L#KRRR!g;Ssq=yNZ|T)jwO?5FAqPHfp{FEQPNXW{NnNO{Pbzw3k0g{ z)O8)hFp#BHY8D?#XD7gu*;!l{E^v5Z0f1*xGUM~{q`sbioK9@Ool4P^PV-?TLVYgB z$B_unhlcp|=uzH3aiZLpuIrc%N5N7e6_Lo~+Y#EXr7?C8LI=n!77 z7k^6&LI{?Zmx;t;OioPj_0_9|&NCT$E?wg8=FNEb?=RbFnkKTeElTOyw#~}Y67}cK zK?Mw;M@qKr+gIgiQ&STFtv7F0#gfnC9UCJX2(WJBMoJ7J1iF+GL(0OW3PJwzW$b8_ zI8+r+Fi1WYE60_JZdo|S$5+MYQYluhTq(zufuh1vAq0tQ*GRysvgmd*7Y?riTEO2v z-z(e1Cnw8srePG1HYt%sx~6F?rPG)d?yRg^$HMO2$etd0+u9I9RN3lmXdrg-B%zrZ zJX2G=ySP~XmQ1J1z!F1BAutR31KYOwt+$tF^Yhd-He$NntZ!*yR%P|F zgb?)g_0iYYM=Ta25{aN`8h*bYUDvDTP|D&6NTzxp~!qWMzh; z0$2+bL512@Dx7)o!eAH?mDtr6Zt-5G5Y6~GoHKi2a4h#%9>gtBu z+S~Qk)>fSL^{a1&|0!E3lF1~Y2M?GFh3s4|H~9U?$cR=tu)iA|+yk7^b-mj(O&@Q& pfRtioWhJbXng&MC4-ek}_!o3p=OK7CKEVJ0002ovPDHLkV1l$eQu_b^ diff --git a/resources/images/impl/gui/buttons/hdVideo.png b/resources/images/impl/gui/buttons/hdVideo.png index c057d6e90cf54ce6e51b88b32e434b4bc8303407..e3175f370c934b39aed72729cf4bc43581715722 100644 GIT binary patch literal 1482 zcmeAS@N?(olHy`uVBq!ia0vp^(m*W1!3HF`9ol{aDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49ppsArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKW@b!fooL3ADC}5E3S0onb8|oS8=jMX^1y)^L5|oN?23FO@A(aKG`a!A1 z`K3k4!1zd0hG_F)=f9a? z$S+WE4mMNJ@J&q4%mWE%f+7gwUzgOP%(B!Jx1#)91#k#kWny!Iv6+FTp^1sHGt}n> z7RFA7#?G$hrcQEaktacfVgt^c6_k+<5qtW$ruK1$G<+^Oy7^N&&7On7cW$tU+0^#u+I z1%(%4+0)q6*oD;Ddzd@rS48OK&VN2L`cshh%EqF}%LU5ByGr=}mwCgo$;hTIdpii^2&krfubZ z8K&~E;7h6Bx!Q!gk?XJDKJ=O8!~avi{??rXxP>6t#yb_HmxY2TtQG*jS= zSAx}9%lAJ$ci+8NF0PfgZtk+_o3pmgGI%3mp#Sx_va`7DW~GUpx&qf31uLFR?B1QOxY~$(JzaS;T9e53k4ro-1)sKE##_^rnVrnygILq n@hz{pzm^|!QFBSJ=Qd#Y8Gk6dc+vx5Q0eOF>gTe~DWM4fWf2xI literal 390 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9Q!3HFy+4N(86icy_X9x!n)NrJ90QsB+9+AZi z44Mfb%=qeRaV1btvcxr_Bsf2(yEr+qAXP8FD1G)j8z}|`MrKbJ z#}JF&wO0(i4jYOb|LC8+uxVY_t`PI@dbUlAS3G!T$|4(cRJde?xqxj0yFlTVcXM50 zLP`R&<~s*>{K(H;ZC}Buq90%98KxRJmPt;7A$K0!sAJp z%M7C^LBXdk@BChMXzoGYZzFcss`Tu~MXZLLCK9>~}%H|vWKOo)b hf5z>9ucd!7Sv=92Yl3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsVi)($Uz_)!E$Az|73h(ACh%%+TD`+||(0(8$Qe z!o(b=*Cju>G&eP`1g19yq1OVZUQklVEdbi=l3J8mmYU*Ll%J~r_Oewb7Pq(H#s~$ri|gC;ZerU}`S{CTo**Xy8CzT)FheB)||CW|FNO` zntkuyyjkL_HraLY#XX%aO4^MM2kHav$Ypso6rW5fa@L!^f6naLzZnsa{*>oqihk{{8#ub~(Xy=CTj#1a*_M5R_yN`vD;mGlb-ENu zm;RUOJ}Sr7eDH(3bh*`b=>Vail~dSfa&C5C@m6&G_1W8Rzm=EnJtmhD%iZb}|L@gY zzUO7OGC?atB-horKY3QP^N5XVO!tkPZ{3RN4r@8lUJ}%*nYr|fz?dbP0l+XkK{&Hpm literal 1309 zcmV+&1>*XNP)EMJy|7TS?L`J!sOT zIbZKCMuKtK#|sA@9?tW7{_per&rzh5lsl0~q#>P7hZRNX^LRY(sj8}3mL;>;6Z#o9{{?pPezMJYCY^5hA1b#-W(R?It&!<{>K zn4O(veSLj19*?(1qtPUQC=@!5b4^uMUw?l;nx-M8EO{);DmE$Pgb;*6A&wqBN_~C3 zKM)99E4(8B1_uW}7ec&$?AS4?s;Y{R0sx?`t&RHn`jTe4uCutfNPBxbO-)TSH8mYN zdGcgGfXi{5dPPyDckkZq?&;|%0%Nfl0Dix}+|o%T5=|=&b5vGV(%RYzKut{z9UUE1 zS65d6M}(BJ+vD-DZQC{+$H8$Nq?DXFbB30d7A{@7L@XA=wrxz)WO8znt5>g5QBgr> zXJ^UCcJ11Q*XuUP!omU*6B7&%57W}p zLT_&`wr%4$P7z*LR|i04W#u8a5Tc`@p#j^r|MH)r6z$}8yE%LIELW~vVQ6Rw%d+U} z>mwWv7oDOg3U0R>Ap|uwH2|op+U^R4LSJi|=2=`^WNd7V<>h7C+S-s(;y4a2my7-T z_oM4N-QC@sIB}vlE-589Z{B2JV1SjC724a|nV+90olaYB+qPrLWb!~oMFoaokk98a zO%owRQMt$C;q>X#07aFB+jVtykkMuOA49!yG<*7)4Qv zOMDaXPjPK+Eys@^2jKDJ#{lGVxmmZOD8E{k#m2@4!C>%TA^#PxtgK)d29D#*31Ax7 znwy&|I^s=t{NMQH%a<%IEurgr9+-CBy?Zw|Jw3g=xw-kV&*vi;43;dX5ErcVc3w(} zX`0-+b&E_U!|Lkl7uT;}|5*TBym)ccw(Xe*4<7L9)vL0qMn*=sapOi=we$1y1?Vs1 z@U!NZ3S$>;OLDSr z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y) zTAW{6lnjiIG-a4(VA$ce2&53`8Y};zOkkuW=D6f1m*%GCm3X??DgkBmQZiGl3=Ay{ z3=Pdq49txT%q$EIEi6neoef-F3{A`pfx+ntGXtw$7b7QgQ&$&DLpM`HLsvsfCu1ik zS63HvLsxSrBSUAHUeCPZlEl2^RG7V)AbTNto$>0maxO|uEXgkl$-^Aq1JP;ogJrLizq!wkCrKY$Q<>xAZ!`CVki~Vlq=5EOTb}}?~b9M&$ z!^q9m)Y;rg392`RoG{Y|Iz}IqIFJ$xObD0)K}>kk2Xf$~oo~|DmYm+C6XdnlB_%8Cethn{=MyF8>l|A8cA~nNcJ;FG%UvPC zGY;&3uzObP)Qden_d~Y^2{)_mG|9RDC5qX*e{24Wt$Z_OX07>iao(%E*7lPvs&Br& cac^K`xI8&7L~V=BPf(HM>FVdQ&MBb@0Ee2s$N&HU literal 225 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2?f#ZI0f96(URk z2Vq7hjoB4ILCF%=h?3y^w370~qEv?R@^Zb*yzJuS#DY}4{G#;P?`))iisC$7978lF zzU|(~+h8DYWDSQ~D!-Iig6X#gwp9u@=OL87u!;GRmsfDwlVP|5@zsmj1Lzc|PZi2IV7cXF@ai{J$*Y?r_a`xFEZg185V2 Mr>mdKI;Vst01nYhng9R* diff --git a/resources/images/impl/gui/buttons/holdButtonPressed.png b/resources/images/impl/gui/buttons/holdButtonPressed.png index 9eff2d7e15be65de0e7c8b4a00303f41a57be56a..2727a750e27a728fe291dca35c2b5c5deae2cfd7 100644 GIT binary patch literal 1266 zcmeAS@N?(olHy`uVBq!ia0vp^+CZ$v!3HE_4=2e1DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49ppsArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKW@b!fooL3ADC}5E3S0onb8|oS8=jMX^1y)^L5|oN?23FO@A(aKG`a!A1 z`K3k4!1zd0hG_?$S+WE4mMNJ@J&q4%mWE%f+7gwUzgOP%(B!Jx1#)91#k#kWnyuGxvPbx zi>aA`i7V9S1{TInW=77AW~RVka5PYY>P;ah)bxRl(FY|Dq~rn<0;WL_6Q1~i9C-Fg z%>(9{B4FmY(`@9$z`&^B>EaktaqG^BCT^TYOXoky?rIeJ+&A2e@DlBSGct& zG(utFqvSb#hTI!HxwJ&iwI05D@$}z0s}IMt8XlAG^2~Q|i#Q}SZ9~gj`8WD0vzq?8 z25u2>`Z3|TP!983*^QFx+DqS9CtQEas50w#q0RA!JM2nXMO`;G{4PAwR&f8qi{SN* zK9f?o)?2;1xX$rR4y$=%lj5Gu&mPN5qi(FO_r><+pb; aFf(j*N|>l!&$a_p3VFKvxvX^IJZ7H30ocWH6(gdqJ+3CAF$#c$oHs?oF z6@b-M3`>}Lh*R>BW(|q6*pg4eIu>BS-8QCBM(ZIu;43Tr98p!4*KjHYGF_n{F{81A z@5D%~bWK7t7tq={LVU=nPr(&3iK1>os4k6+(yTV=K6^moh&(p&1u~?Ww3b;F7Dc(G zhU>;~!KCnifOsj2;&8*j?d^lky=EtxPhi?}9MKeE3c?RhNnDmNIS6_Yl{m3?UTjn! z?KC@MDCB*wbNAZ0=ToJT*8nQqTzk9uu-57p0E~#vR>oc~UYdB4%hF_t$WX(C5k64f z{N9@1Y4ptiT45A?-fApZrJ_pZpxwJVFaxlv@~wU}2b9AIpBl!kXA#fCNqVFct3E@r zN?Hs-zlj9HT)`0~?WJ+*S;Pg1BSZxOWViqjQJmx0{00Flh(?I~DdBJR-|(L?bUoB4 z3WFW_MXExgkihZPISB!ysO$A>O{tAW5s3=DQZBtWJlcgI)lf?ZrIQa*`@ZKUC;6FN zdRK*B6p@tLs7o2^L)eR`O%#KV_h+Z4w)T&v6=Zb8+q*njd}D+vfFn{~UbwhXtshpb zs`{S0J2Ret1=M_xkTTX~9eX%OCmm3=G4E!^^NpFa`7(kC?2GUP;VS@^FzdV9SI!s5 uP!yr2$|p%tJ#5p-y~m#VftAyK0Y3rX_%mY89H>VC0000}j|62zkiJ$O*O?Cize6%^0neCgWGgEjE--tX~!-|z1mtgT+1pF20laol`u zMX$4cfvwq@tuuW%m8zmOl z%a?#8B2f?}0ZC~jD;Y@xH8-v4RPa=?jP#iW%FSdtx!%%8oNKMbeHC=^Ffp;8RK^eKE$@X+;|jRpLy1C;A~^N8W0x@Q&ybmu}D+(MqGP(ESafXfdwPPjs2_9 z<102j@o_S?%$N*5_Sm!sY^*On-u}v-#Pyo4HKNb0Uk3-pMDBDlIs1Hn_tO)hZNE!A zJ^SKV^T&rl0;RGi`h#!T(!+(H&-hn7wD%ToC*NO5Klq)x@aSOgyta5|u)oXAh}`zQ Vlj_ag*VXvB)hes{%hIj;e*n19G)@2j literal 473 zcmV;~0Ve*5P)n;w&baH2AEODviYON8G=hyF2q~=c3qn9hqe4gs2;v7QB!(0bRxIPM zuvYv5hJb~Tq}Yi?Fgqq>bzJvj-W2I9tbN*ZI6O*3c)PMVH5AEml$R1f^^&-f=&hxV zog?*OeSUUkw6QlH{pkn57QlFXj#c&GRL_}_K6x`9{_H0?hjtT!5V{5!D|Ph7iM%rT zoD9&ohFSu(DufTf{qCa@5uQGKy?=7iGhHnBX)zz9#e#nonO~``S7tT9O-to(r!&X* zfL?v)0pQ*UMoaTHP+2nrt_(n@%|1Qq`P=1~>%f{?%eHmhmHKhHT>kM7mWYBnqrZT5 P00000NkvXXu0mjfTOZFU diff --git a/resources/images/impl/gui/buttons/loVideo.png b/resources/images/impl/gui/buttons/loVideo.png index 076b09d18410fd0cea1c6c819b84b1c656a37a2b..22d37e49a0cbd4e3d5d53f67f562ec51b640395e 100644 GIT binary patch literal 1549 zcmbVMc~BE)6ko5j#iG<>P(ivbGok{?ZjKGvu#MyZqb5>_2%apv3oJ=?!)74?|ER@| zh}LNt59~Nz?NGHX)&Vp`1A=79l+uM<$w!GSl*9-*ENpdC zd2AX>F(rj$if=ADxO9$490Oerq;dGC0kK*&KsKV_I*HPkO z6=|$jC=zLK9=Xv$FsR*&9R&A1BXJn%mQ8HW_ihKCK0eBXE=sHu>?>>ts2!T zQ9J>|5)w2z6KXMIYAuFhs3pkpJgf#YDU*~Y%&1c(W0(a?(5kc+4ThS{Y8*EjbwR9^ z_evB`vq8Tc@H>u0Ux+14B1=hv=nw=~ume)_1xfJc3m({%j>C&=6wUDg#p1vLjpb`* zMXs1-l10G{k5-uAo)>`%M|GH5tul>gjwYy#n95|)YK$0a1euRvng3HY1qenFXpjH2 zOHc)RFtB{q{6Kg%J}eJrMg+sLdD8R)5HwM5H77az-A$`8=gpXmtP9ml`A6UER`ppnlp(eZJ)E46)C*WVCcP zslroaF*|<0J=D{zf6%e{&t_lg(NzD@`@^xejza~nT$Bj%lZ;PG_J0Lk)6bb+_s%)= z-ALI>MA&2366XTv`t~eq+BMDKiR=rT2Dge0O}h#whW33pd*}Iw1zRS|_iR_ohNqA# zkm?*h3Vpxaup)BhB)uNKOxIRs=$F*oIK7knoZ?SA2mczWT3hp|GBf3a9m834>(9$e zCfD8D(gO{qPC&ZUw$ppA4j9gE+~DEQq*t!a-QDy@3^WW6Y;DbM>3vw$f2;PhsxDXY z)Q?LdPQ}jHcIPA^)Zg5+t|nvdh~auw8*`|A)i>c0aWyxhJBunBqNeDg-wu;{GhFDh zwVWwx=0N0$gNCeI7KW@2t%;p~p>m{+>66=@S~fsS4drL=crP?0hPS)=#Rl@`7wH9; z?iV-qqU*DtKB}A$_oEBneEit%EPKb$j5&`puB3eQW?je7lOxdGvi6?Yvv?{oswJlE z`)+&Kmk!yk(yEr+qAXP8FD1G)j8z}|`Mn+E; z#}JF&wO8!*n*&9TfAn9isc(aoy7<^>=z_cN&#q~&n zQfiRr<>VJruT1`T^70SW=W5UI6z{YA{^Xvv(kj71VZpg4*88nmE2i{_kK5w#_L^CT z)aI!c*(&v9e(mT;Qrcczc4@Vlhkh{TqOtZN_a^S@^{@4_L|Yi^CtO4#qOPL)aI zPo48fru(qN-z|O7a~=q@R~*cWyP$K=c%%85=d891nqEFRpTOC_*K?^)p!DPws{31= z-#ic!zi~jjuf4RSHP&Qu?Td3u7gc{gy+Zwec7(g{8-9zVT!%mY?vV*{Q|qR)Z8J#x g<9_=?{QVRBpJP5|G~Q{_1%?=dr>mdKI;Vst0J_MX9{>OV diff --git a/resources/images/impl/gui/buttons/localVideoButton.png b/resources/images/impl/gui/buttons/localVideoButton.png index f2c715173aed2d59b24619f95047a7d7c7823ff4..92b3bcf3c10f56728759410176b689ee44ad2ff0 100644 GIT binary patch literal 1487 zcmbVMZA=qq96w-GWGZGl6f@;^7&2GdyQj2V+fk+M^|XuvD=&6LJFo3QFXisK>(#cn z5r)Gzwzvg1O$fwoZr^y>WXi-T@dZUx+-wA2FfujH`7*O*iwj%W6{+)s@xv~;d!GOE z{C~gy`)w^PUO78;Q7QyMv#qNLyR^!sH#TC(c%!x_-Zjk2{dH%@Gcs* zvQ!Oirzub5?Lj&pf|9D4a);=!73tkPtE6H&$}sDf&=8crBJ8K!K3arbbPdB9kYD=_ zBQWDJAgeVt%;q=KUS?IDK$q1Om%HnHZk-2Nu^i41>m>q~7AZK))^Y)T*nmv&>ZN_` z7)9VI713uv9y#T(mBMCTpka*?Q@F7_49){ekgLXVJO@@`07Eeq3RDV!>vL6l41=d1 zM6xD$s`Yk)oVF!N2E;3hem#nYLLp@+SIG-CDA4J2F%FeVA!#TA5l*DS3NDZpXCUZ+ zTVVVm!*g(qk#g}t(SS&vJ_>>L+iZ`CxxjRyq?Dmy%8vpihO%rdt|{$+Xs7>kbE1_nAkvM}!+7)<&|(1K zY7AFld0GIpT8++(SqPxUfs{^5oa1R&Eukhzkf+rF5(mHnbf#RB$zmaJV8Kl)V2)$0 zTtK8aHyyXjNOq^O_%pG3vp`cKFO>6qZM*|Yy}ZZ=yu2SamuX-ds^WCz>UGBz0hH z`?&Qb;qma$oHQ|lG#dGJn}33!gh?x5EDvA0yUS2=q+sC*COL7@o=wK|mCGA8&Qbm| zcUGsYaz$h7{rV)+(!1G9-#>Qjcy}+zo5Kx6qiRC_<(2WkAal0xk4w(?vO|L{*KhVt z+`K&*(e3!_op$R`Y3{N`FH{~Wbj)lujn-g1pf-uW@YMV%dR1n{W4LM)MQM^eWN3qbCQ7W@f!u zcj#zR^Jr83Sj)9pgBuqNb~?K6#~ zHA7%ak<+?-Z6tXDwf*?_&kg&pUO0d^5C*!Z@6QiE_@?&U$?k2R&p#hUT)(WfKuLw_ z{{FqKa~)~OL3-f;)lu13SrJ5+Wy~iGm&W}My>DKyR&l9&on4_B-xnMYjv4J1<15%` z@8x?-jvky{`2Yu$!M80ts#Xl&@FfBbmvvoP)t&O0{Nvp%gE#h7b$puc$=GRn zt$tYM^ub%|4~_)iJ+bfJ*biRyygk80^8WffD(zKOP9~m{e7dZy`DE8y+pkW@N64l# q*hjC+zg^S)TV}>gIdy$|NrDWz2K6dNjx#UEez8_dG0|yS*Z405_!*M` literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~g!3HGv?z=Y!NU;<R|DNig)WhgH%*UQYyE>2D?NY%?PN}v7CMhd9twWo_? zh{nXJlQw!CaS&+RAL})e)W);SZt|69B6^==bi z`Fh^9TZK6TZf}d7_dHoJafPyA<<(;|F8i*0ZFDS0-LuGU%k%@>1qMN0Z(A7{rUd;y zz+AxihKYODvY$MbjxI}H@A__DSr z1<%~X^wgl##FWaylc_cg49ppsArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKW@b!fooL3ADC}5E3S0onb8|oS8=jMX^1y)^L5|oN?23FO@A(aKG`a!A1 z`K3k4!1zd0hG_? z$S+WE4mMNJ@J&q4%mWE%f+7gwUzgOP%(B!Jx1#)91#k#kWnyuGxvPbxi>aA`i7V9S z1{TInW=77AW~RVka5PYY>P;ah)bxRl(FY|Dq~rn<0;WL_6Q1~i9C-Fg%>(9{B4FmQ zsD1XBfq{v|)5S5Q;?|oPw*H44B#!UYR%JTKB0HmGioq@mi-bqv#Sg3vW_@6sbH_)b zP)+FZiv=q;UKGjBzF%`L=49ZlqP_bBCRb0Y_u6^y?)u~Z=T$RtH7)oS&*T}wshz00 zrsb~Wn^la8SK7LHKYiLK(=+wu&#gaC_%;=_zW==}_qO@vmtQ!R1s*Eg%yv3N>diI- zp2u7fQVM6dPp39tvgrum*OOl$FDIRF&e7ld(c6ZQd+mi>3DPAzuP$%bR~DJZSW_o| zizP35ORebFDUB!I)i0Obvq@Jl=hw#x=kh<@IIx&sDu+GLelm;T_rFOSE!stEJ2JD} z!p#bsT|X=Sezxv)-Ktepj^=IC8GjfWx!eDez0EdVe3C^)&Ia8M-;xXEq3RK_7vlLM z6O#CU>{-Jl)?LEX|2Jf6cky8%?@(SXp4A#&#p0pUU!3|?QX0s}6Ss1M#AC6XHR`j% zns{z?e5|N>W^u0gnNZGJnQqI(Ec; z!R3$jQU~v_+0+d6A!!c%)Ap|C^G`r{ed7;av;6|*?y}vd$@?2>`v2 B8&3cL literal 983 zcmV;|11S87P)Vp-~(a z$>2`GW%e^Wap`{O8}J(l3Vs0>S&4`{XAmKvWGe-1i=9taUw!0%@Ed#+!{p9q$~7&x&JdGe8xlxD9J>PGoY@e#D+Kl&%e#x? zqj+IqE*w*0*7KCe6KvJSa8E^1M7{Kit4+7&I`YNVK(2h#OkPVe4v(#~FhKTF)oH#o zqc%d9?m9tm*z1Xj)Dce=bK5OR@z>4{_7zrE1e*JSE>&g+M!)>=#^LqM^2698xw|)* zIU0ub8&@k|8mZ#e5Vfsle_`cf;f@VVP*jRk`^Q8E%y$vgLxtN#a{=7)R3Nk{4z z;t|T=5TyfnKS3-(N01Hyn3l* zADIKd3XE+)bmBf|uF9pP6o5GoDnPjL%6R*Ksa|Znv zSS#z~&8JJ>Plfbd$rsy|P{(g9mXnH$y}-k_4}7sl%uMgCZ+HPNObORpl3G7IvNV?( zDg%(GFUJH1Srck`NSrq-q5N&(39nxaf@!Vgl`)rlzAHZ65Acfuz`NK@>*e6UO_br0 zd7z-jgc2^;3Uz{7AsN=#%%llr-08!#yVE?H@x5O?t^O!bt{oxT%V!ORh$3ccfAEE_ zPSy1=%Qg9007az3J^_H^1q^iIl9%_oaTa~YE002ovPDHLk FV1oT6$MOIG diff --git a/resources/images/impl/gui/buttons/muteButton.png b/resources/images/impl/gui/buttons/muteButton.png index 5a08d72fa3c286883e2244e1a3522a95392fd91c..0ffb0d060679c66671eecef8c757e5de4b3f18d5 100644 GIT binary patch literal 1940 zcmbVNYg7|w8jes<0YPaitX3Qbxk@rKNeD?G0?8zjVpthCK#y1nlL4a1Oh`saC?aZE z$x?ACAT@})jp%AsK+$SjTfE?f79&NAtsrr!luE4y1&=*#-JK}d{_yn2&Y79-``&q< z=e?h?u1sA%$7_KXi^ZCwOhz$g4Pu_fvpkvim~P`tX88*(&!*F}`)Ku^$Wz^vDiCb3xpKIIiN zdzTmjfu}0;Itlp9sch9sKt>q}Acn(Z<1m5%0s#l%#|Q*SG{A)sE(9~TfQ|6QF#<6+ z7MQv~#+p%+FUC;Clr82Y0Sjr`Acmmg;$luQk3$&?AVee*xj497Hlx8dSx8!KW|O9n zX$F)q;YO{2)>0(kVpQi*>uCwdc={{^y+NgVPE4An62+tpGOG;`!hs>Z-WAtVZ4-?V zzq|25ZBvHDKtLE_qShO6rXKkr(_kide{RU7$ao|Et5M4oMXf_Ae7&9^X(cKFnJ*lT zRwITHA(O>eJ{-%11wsT73S&evSdJq6SOi93`83CiunIH=6=2T&W1P1N*qy@i{}d~h83{E_88awKH{Ag%3n`j16;cL3mM#Dy zRBBvHx&)D~0zHctC5+k)ghpYc^uW^$i?uKCKn}-<(4-_8BAALC7V?BLm@DE-g|JMD zfKyn_|C2R{aRzd=#~<2dTEz6AYx}(UnZxt(AxLIsjLdLce6UTx%-lI8nv`L_c_;H$ zN^M%8bFhB@k^Dwom2r59e(mDp9Q!NSFBj)VEiLp9o(QPC;WgWG^xT=Zm%#VV%|ap| zY+Uhi6nI6suJQ2o-d}U0NHX=tPcrLbN6>%>Ty5AN!(e-^BgY?yt^>d-W2-eKt_~zZm-+H zG|1rA$;tIw!YQzB%y0kbweu6DA4&&0-*5TSQZX;<+MIylli%q4kg#H!p717148C1W z5k;A^iu_W3ty>VZV}zHI14|^T!I>j-Ed!kgf;=Aa#=(DW%^E?ijW%19t+5e$DAZp* zos+v9?DR~$&{;e~H0nHfl{}fydzbz>Jw1JXP(#g%p-GR#N4C&1>7(IcqUz1o1U{dy zQ8Zl~M$#~ASBhi_2XF5YJ%az$9JkDuSkbR%}?tA7_dy1Tn)-i&MN-hU0;qnLe@d};Q(r{230 zdi=zR)s#*b@7>xLs@MQxGQIxD*&ikyHJ4VeULE%JhIXv6I)|H_d^SNdgTg{A;^PGks*k2reXK8t*^|d!80A~L7vcs{gd)M+gJ@Yia zzP^KryPqTt;@vk!N7ugl7W9w##T&MChRdySVlf#!Tz_`2M+8zH&M(IeF9)wV@Wf`b zU3*1W-c(c&emxy%s-M4T@#0Nk4PW?yKS~1dquCMTtBz#yI&iOAuiTUYrQ05UTc^Wr z2SZl;lKkD!&`@d4X%2cQOR;x6up{dM=B^8nY_AG*ZY8K&bz-|l!=P)_m3UpR%}Y!>aPfPpcxoSHcJcRo-)&+wmN&?@dx7-x+v-`G3O-4f{9ekN?<$iD$NlH z)RxQ6_B#8!(~l=Mp4hUiqDVGo8f?vaYH|NAyvTz&25q{D(eKPOZFZ^rpVQavVM&a}wD*{VV=z4YPQRzTZO0B`!tS&kh*dpM>C zTKcDHskn%G^R= z51;^_fzjER&V?7#(Tg>t<8 diff --git a/resources/images/impl/gui/buttons/muteButtonPressed.png b/resources/images/impl/gui/buttons/muteButtonPressed.png index 852c01099c1f645efcb799357249fcdd8ad65ad2..420975f0a82add3393182a358b916868194c0766 100644 GIT binary patch literal 1941 zcmbVNeOME99A81A7!XKAVtO0`BCy?!z00({;RbBdK*3UEYzMos?Z$S59MUgip zF)50o!Be2%8w#Syd?VioEE_eR%&H22}yX8G?t^pbYz7?hiujv2sDWlxy)=(C^HZoNJY|7Jr^A7JO%=&iVG&v zrI6GhK-8!>*NDXD$`X{h8A`SaT(%U5G;;_79fB(Wvrelwam-xsF)xSMJH!+ac&vhF zaKR@|B}wA|0cJ!1IyoX-3BfSHV31)Noxy;^04fAiDG+fp!eJVR&frj)z|;j2){Lq& zj$9ZuWs5j*K{bvWI21~Db~ZUXf{Yo{DKMMOc5qOs;eS@jAB+8C@>kK=yZ;_9&4L$Ir6U?&(t<0 z8MkP^?w18U7 z$fQ9`D#T#HFpEWJ3m}mYrZHg%hD6gG&%#Ct=|XA*%;xi8J`9Us7L5%HB3OL3h)?CS zg%Q(OiQa@O^h#vfE=t&)!m^%=_LA7^a=>fH*aVVBtl+-*=Ak!Q%wI`zV_v) zO>?mHogJaUX#C_SS)PrRHfB-WYF@PUlVd67mdeW4LSK$mI~T3>^`G6lHKD7jb&J^a ztt}|@0Bu?AmfgGi?{rN(Je6cRr@K~AJj5QmZ@w^DXR_Z7cAv4ap=FU*pHEGAfKSyx zmG}$i7Yn|bUvb@gNua$_xzGCB&ONQI2U}WN*!hQRYHH?N`g5wqmn@`*q=KrdD%0M^ zHZD6g`QCDH(e0ZKwYA*>i!$=h z?RZ7mSGvfW^_3OVym__QH+SY0Cvm*-6!38c@ZRZYe6O|sRaX%ls{y#fFUbn8xZT`n zT^ZIkq@u1=)P8VrRW+2^k%1?BT4x;jx$y7xoe$ts-eu+Gc|B5(^Ztjo2VQUs_(M@z zAKx=_Cl4vzYOz?(PF|V^uBi3B{L67(P_i>^{6-;=850wem60*Ba=yiVcOvO#bWxJa zqFwiv0)hv@ci8jFgXeDhLaovC_Wsf?mvnWL&e+?n7teHeb!jha4lFM!DvE9D@8AbT zhrl__o2@lk_uBKrewFuouU>8N*gY#ay4-i+gZ*!2XW!*+=?rVzs3q?lX_hw+NM*9T zPv0q<&EOUEXb!B3e{|x+2^aT;?do}Of5Xt2RLjGCF!R zbmun}l16#o__)C(&{9`d7ePx;OB#UG_=`+15wr$(>`%S~aLz92~Rp#dA zwp0AA&1U0kRr&V4gQIyDsi9u303R$)tSIrevu;mJlpBZ7zVO@3b{7{H%wP5h9D|2D zzfJ)T-*tL@R(i1b-M1?{_U*gvE>8}Od^_LE$;@|R&G7J?*nERIcUyYM6;kJ%3$i8) zkK-54S-SKgKWO_KQML^s*3?hqt{(b98q|P19J!Iwux?k_g?+meJh1-aht$45)$h0V zv8;aA*3F9S-63B1y?++lKJ0Ym$K#R5q@L^Q!dm0&ncvlG*Npj!i@Q#iBx#&IUfr;N zBc>hzuh~14qOyn&1_lN`zeUlAPxx97$C9IyG@DLd^79!kx{PK9#=Ma%zOnlFoQi?A u66RugcS=>eJoZn~*7KQj9#u>v=D$FS`H5aIxWQ%8@uQT8WWrW{O5s1Lzy3)8 literal 668 zcmV;N0%QG&P)W%|^YXt!vH!0d^J}r`l_+$4)oc;4L|OE}JdL3j$O-P47E)TTiwr z76!(W1lNkALr?5v~LPZLWqq=AbOFFbKLZ}WT~i7&*a<+ zE!A7;3n#7trGQU_l#I6H4s{6=uVag3Rs~fK6K~>6^d2m!2Ry)^e4~B?s(>c|&!^Iu zjS?jmgBY1i)%ogeh>)_L54@$u<-j>$Zs=2LzR4gNqCZyb@4hT`=V(-Qo&c@_ z6Tk;x8*sR%al1Y|v*aw^qF=n!;y7PdZoZoZs_;Ib3pk{X{}{Ob_Dsc%v%_<~3Y&30 z=yv!KLgaP)kp0000l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsVi)($Uz_)!E6?z|73h(ACh%%+TD`+||(0(8$Qe z!o(b=*Cju>G&eP`1g19yq1PFwUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZns$CG!Lpb z1-Dxqaq86vIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@i4im4q$iTq3&C|s(q~cc6 zpa1{unfEdZA7*Hnn5@aYkxNoi@?eRJOAF_Opl6RBMOo+H+hc#@ijbGO&XOGlIyyeg z9=>czXW!r7U(a|cI#X)T!i5VbIovN}m?`FPhX0Fid`QR?QD5D^-`~$?xez3*qG-Ax zLjOWi?ySgPUteF(c336dv0srhnn5?Oud`EddFN8=vNu0CSuQu6u~TsKb7-vp_b1cG z$LGls&uNkS>;C4Km3=EyDApAC?>for|F^f%-cC+T+JTmhH5UrI12ho5~r+Be4f8uF2RPRnVwt4B;2>UdWm+ zX;85~`0k}2KPvPRYRs5tnq|1&H{s*!b3Hvx_qThfH#0MHWaG_cLMM9IlG0RG&OESb zN7}(A*8MA^9#mIUFcfoFvrUL>S(b0h&F%g7&(F{MgKhnG?%cVxAw*N4Sdnu+!?DD- zlT^LqE~zLo^42r4u*Y00004b3#c}2nYxW zd>^PnlcBX*?YXL|pQ0JpXf$5)Jg;yZ zhd%)T9LJ$jsk94)!sGdTem5G8K6Ja?rY|C?RH~E9<(^5B1WA%0isAzZA)u6kQi^0U z2|*B$&1PlWwqNPGeyi*HH2@G%6z}8lIAXCFWLXaIrM`p^0znYK7y}^$`F#G-e!qXy z>2z*;z1|J+JP)qx!gXDEo)_TX8Dqg2hEj@hx%_mu+g-O>t?#_&dCV7u2}`3g0D-Jp zt)>%+#792-qNpG$3**ZslgUrVajpn}2ZD35a{|T~X0w?+9*?j3{r-@gPA6*HHjc+5 z9LIqqNswh3q9{U=Bv49&A512bP!t7>F)WwMJIk`(8;0=?0LbBRXiuk8CES;D9pX3+ z#bWVosZ@Hh*=+8I!{KLL*V{oOFWEKAvVN@BYtJwYOVc#&zjtlB-Lk=8@MX1Hy);de rg|pw5?{BkMEWX*c{lYZOQ#AVpmOG70fKYGk00000NkvXXu0mjfk1q)a diff --git a/resources/images/impl/gui/buttons/paste.png b/resources/images/impl/gui/buttons/paste.png index 592d5f9a6d3e3f714e7f7b1f24bf287d2a03cae6..f2abed9f80eba73b554ab6f8fb09a1813bd3ff84 100644 GIT binary patch literal 1162 zcmbVLO-K|`93Rs@&B%!8gYq?t1mW(ynRRD&2UlHpc68BIS+`sWrP-OM4muyrJlj<| zl$5OIB?!6{83oZLkWSU1s8bXK1qB_Vgs59omkx!!ab4>m1r5x+kNN$6|L>XJ?)I83 zd$&*&Rg>(H(qyeA@6Jsd$ai%9Rgx@wa3YKQtRb9N97M%5D~CYRP=-+&DcZz|C#Z>{ zDu?t;7H3mkqG}ld#lr*&hE3QM)znh36?GJ0kVC_|8Kpnpe?S9Wi_-m}6inH1G@^G* zI;d~5JEKmHsu7KDX$DONkq8(FE1+PEnXXuf(#yIc*?ZRv4VEEzG)kA8%BFfj+;R{I z1)yJrJOn%&V1tcuB@>ZHzvpe z7v^C&9*?kWf(^^Ta7^L^9&&AbLW-5SNz=uOsiLx7o!BjLL-Jp_V%$Lrww#P*jg>o~ zcf`V$J7U=&-WLKXMb%C3?3Je!t%Mx?B+_KZGQe_vMSTtXB-nq%UE*s0lQV`m!+6c{ zN3)c#NC$e`)z&A6)!{)VnHYzRhH%AxN5<-2Qi^2?Z*p_R;`isR71@Q{dSCUn&Glo8 zt<|5E+N0W|>tC98%^mSqZ{`=Py0&JhhEHdzzWNf=;N1Gh4<|QvQtj(*q3n&piiMrq zTPp8fK6kqQsa-t(b7^Vm{mq`MXJgxxgWQqB*A7+4vV3%K@a-{BIm1=;-&1nAb$6xd zhD-B%o^@U5EY9wy2Ohyq15@U{#=6=MJ5D`0aIyCFyO%${eeAJwn)Kq~X00004b3#c}2nYxW zd^ zlRapYQ51%sbMF1VuV1RE4H8O2O-VJ278I#J6e+rDb#+j|A&#LSI5`QTh&a@#%}^9X z=Q=4WxJiT-q*NV5=??+XhBQ=cZF(Kj#Pr8nU%10P_dMr3%N6Gw0GUk2bnH8rjVHPW zM2%PcI{oll;mggtw{MhL7s+0^7)|)4{;=!h`R)_v&ZsH?&N<${eVH#!jNYGJ+VymB z=s~Fty|~_!KNb7bGuhO~Tsi|teWL$)lq2OQye_839~BNA&gF6rz_v9n?U5j4zstkN z{CX1zBE%!VI)MQA31G24_+h9>o9Ps3VFdAXfD!A>_9)B z)#@>ZR;x`PUcI?+XK*BaEqnRchE0fWR0I;ccgT-Q=h0jDh9)gG0DlE=TSDo*Nm9v0 zrl%_LRlSDS<;|gJv<1&93+4IcRXwdQqGC3M8dKHtyg!vi`Fr;os8LV1vq=>6-_skT z-xplrzX-rSd*@D1%v8<_C_qa(ay162tstp=jar6B9zSpINOoJJSR)uUSR>T#vollk ZzX2{FaEkl3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsVi)($Uz_)!EI`z|73h(ACh%%+TD`+||(0(8$Qe z!o(b=*Cju>G&eP`1g19yuGhr?r(RG}$SnZc?2=lPS(cjOR+OKs0QRy~CT_R5;4}}a zHwC9#oLzD1)dxC89~7}j5e*XprXCOzo@{{}c*0N31E%&OV6uLypmLajfpN2^i(^Q| zt)xHy|JyU~WfVTl&=BaI$raHNc;v*1j!+v-&CaK{x91;pcy?D*J8TYPr{H7*%}+1C zzrTOC@rsYaJQ*>uWsaX8^mcV^V*0g;|HKpaB<_Tal9skMuS;iw7PQ{_|L^Z>R->yE z79C*GP;(UaPEJZX(%5F+T+^=dhqq(*{<^{%9`OD+n< zTmr=kp0X^j`eSz%Jx!j$aCH;U1t(vHtF37djTQ79w-vk)Z}#!=x!xEeDe&JxXd2U_ zc^^I$M9zxXm2-1by^M@Zcf&_hUf)w}Gwf$Se*Ac6hR_~vF`XZ0j~)$W*8P^yAUWk+ z!_B2e1_l$Rsufz*|NHY^M@Q$Y!?UU_UW++q<5Wou z_%N-gxH$Ww&R3?#KeR49N>cbN7WB`CS)|%=>mkPQS}94%m%LZ@i=5cQr)3kiHmbB) z;&X(?$^1EU=2$nnDzAvx!@X(3s-q7w4(D9CbP0 Hl+XkK2}$B{ literal 587 zcmV-R0<`^!P)4u*Y00004b3#c}2nYxW zd{2X}CXMw*5Y9pZ z7TP8VDPkc}i$JRU0gFKbsU?4aglKCQun-|4d#4CtIb0t5-ahB0$u90j4;=V5GjBf3 zk2fHtgt!`w#?w}-_48EhoK%Qev)NP$A>Y&KG>OL^vqapH%jLdRtJRnJd_H*zC{j_c z*ZW*9mrX*5V%xUXZnxh_DFFZ;Z3_|ItKea`+kIOqmAZyu+$f3y`~4mq#{u8>!S{U- zLICGHBE}dn#$Z05->U!solfUfu~>X>7{-mNs(^@)N~J*4G!R0Buprsmp!C)Y=+3X8l*RM~tCWMHHa~`(G7=ztz_i((mPqkX@ z4I$(SB7*C>;5be=haib_4xZ?)yiBf7QZh6 Z{RM;Y1#kh>NRI#j002ovPDHLkV1g`|{8j(} diff --git a/resources/images/impl/gui/buttons/recordButton.png b/resources/images/impl/gui/buttons/recordButton.png index 10931c4d18f6b4d8b6a6fc1d516ac41328b33e4c..4aaea30e615759ab78a00e9c9d0afc922f349335 100644 GIT binary patch literal 1920 zcmbVNX;2eq7!DOv#1jvW7IY0tRV3LBgpie}WB>9A|Mk)5h>ysJ``JCbQ zKiJb~wBgdZA|QAE$iojGMWQc4&tj2Xr#HzzI=?oN_M)RL#G9cB4QpZK9c^by7nSj3urU-N>i2x?uD!mal@fja^VQOzZW-)+|Dr6L& z@yV$WnF0{v1PXANpqCo-1p!}(33>Z)x!mah8-zd>$Yw!oFNh0!vtbYf`Y#4$jnG8E zN|B`B7A5f+ktAt=S*+ODSZ1s@6DPDRh{xkuIoND3O2f;zMo%IpFTK%yfI);B)dXfB zF2hU7CSPd|mAGstA0iS@?*L{TYYnGgdDVuCE4&KlQ8Z6m2f|8wK3+D6qH z1IkjOMm&a4Q}u{&9{^Li`?evgBIOOdfWWAtAge^UI!1@;NvVj>px!Vwm<9$RKM;br zJ|LG3`uahTpC5-O1jQoAhYL~Z6c2EG6)R#3xEu+@gCraX5<@(Jw?H5ki@1=OD_}#y z0jyMSBoVzD9k7d8?S8_7-^9W~0!2uiP~rHhfeuha;v{a2#0`Kjhy%zFHKw=9*7AIc zR)iARYE&a3a2@b5zcBU{`w}i!@@3oth$|5asW{jYF-OQ1F#55Y|C2Ko-3Q(CEyE2!}4MLo&T5_AR;p)lil6LXl z0H**B;gD%3O^a08PEO*EwvA6Lt(OgUptqPx?JeR_6Ek;=7?brtM2J+iWt)Afnze;> z@h3hc-5xbV+jMuEQzd<52fu^gy(Xa}et*Y@bJ}z3X09j>TK_J~?PY-_7%3=PbjQuk zQ!^v6>QTeXSFiev{5`e%0`6lWPVy3PaHsvj?jNsb)Mz|XQd710O~~nnJVkozN%P83 z#HKzaDi)DsZyCC^BCLSsyY~FORL8W61qbJ)n5PV*HP&?W+_!m2K#IQ)mx~$ovXZ5J z$I8pgx033}E@^qbDyy-niL)xPHhB?^w5#HyKcy*5=W=q|9I}*K z5<*uxocQi)LyXUMRaQ$$Nr}@i`W4>pK(S4aUus=M@zSgJ%&iME(k^WCjpUTH}xAusoJL`P10&b~Jr0I841KleI%#4qFeY_>{_;%U2=9}achbmekN3f(Ph z=q&@BoHr?=JhRe#wd+NqxiT8Ou%) z$F_w`f9-N=*TJl!vC){Ek$$wQvhsra`o3X96{#EZoJT(0U9suna|37N`fE4lnCCkl ze{s7Fdk4etrpHJ2jck!0ru)kqXhrg47v8*iGiFLI2}V!aJECaXS;h9MN4}%kyuzGX z%jqFW`u$HjJIf?xV_&V98|Ep>m|FB?EGELmyZ z$&)YE<9Ig|+0~?)RdHodxEVrKdZr^>ckzWuJh|81KnLitj#~7##1n%zfgH z`;K?Eis;Yh?5T}$*g0$C(TYID=mns&tE-!vTS!oc5!lIL8@MUQTpt6Hc~)EM?75| zLnNlwUa8TSpSY8A Soy39uVeoYIb6Mw<&;$TyLw4T) diff --git a/resources/images/impl/gui/buttons/recordButtonPressed.png b/resources/images/impl/gui/buttons/recordButtonPressed.png index 4affa9b6f58ee5d884345ca42ccd34b816ee06e9..58619b1d0a5c0b89a0657cf94e8194c818f61c8a 100644 GIT binary patch literal 1907 zcmbVNc~BE~6po_B15_v~_pHGK5t7|C7ZJpe4TuPB zELy2m3QDbQ&}tbgAQ+2ERdhtAL5^A#tUyJlifEAOM#1(E$3MEWyT4=K_r3SN-+Qw= zqNBncr?^jHFc^*z%aIs*Ttq+fCw)Y}lP;!s(}No&kyA1vmC8g(j3H7HDHsreqiQS$ zLseNDny?@S!!At|E2rerl|m(fvrwB2%ZTe}G=mWoV$`9^^%w=DU}}vvm^n~W&jd88 zVCEXG6qM@3Sej;eHi^lyqhgiW>y?2jX2?H4772;Z~$!)pwH4$s4+mR_ZeeA zFuju0=qL@L1#FCH3SppvnRKLYQ^0jn={sVrepD!0GPV)bu^|@7#&KI-Z>;rH4EApr z@3q#)X6Z0?45lXxq>?_5RG%?0t=)$m*$nAugrATa`cTkxgisoAOiM)|!A$xKOQlf> zK}bNW$mf837~}~cNFd+_ia`kiarh7jfs!$f_hCh$A{gRH7K;QR4}v66AQ$8WhK7n^ z2|p|pM36CTgjP?XS|v8-S3~<9#lj!N3dJObQUn=G5b0wT5S>O)gg%YX0b&^s@Rg!U zjn=lY&~`v?^F=UHlYyziNCF4mC@j>xCj!1i5QuPjAV)HqIVe~h%7eus9+#Fu1Tsgl zs{f-Jn+}F;E06z_%h(oOgSP3r;-?qy+6U9pJwwvX!J2;h2;FmK5r`<(c&GosK%{Jy z>*c!k&Z=Wk*F3MLo6rP@9Sxq6?fw-F75gvvzOv7j-Q3xgA3b1Bo}9OGy8<%L$c}@( z92*-ZJMvEyu}hAY!pGV>2HIcTa@&`^74!lQ?;FBl{9hB+|uh^E<2D}x2NAfWnYi?Z#>i4)J=|1!r<9E8<&39 z+Iz!zNPXh$C3ath<=1tj=5VZ^VH}vTPqs4u(~Nej)yh_@)vY;|@fnZH8&csf`(EaZ z*vqgLbDg!7Et-46wsQ^l4m+?fAu;jHG)G77>C81ciwZt|*`(d?vux9}LC@Ud{mbUv>%J4lblTskt)CDT zG0*ayVKuX;W1GL>Nvqgvb4};t%2_+Rx5fI^tvlWJI3369=8y*8gpG&$mtCDC zqGpBHHfL6Ncz9$uWO@I*wclmQ&qf^o>-($Sy;~#tbBsT}`U^0HP*Bz=x(`NoabBfk&S-|&89HjkI?DOr6y7PoXh+!9wZm|L4)n>^qLm40<()$H2l zjh1euWi3A(nGd<|zA-pB$g;ba#BqN;QPUf4t@*a^zWa1MCo(d!e_~`@-VgDPfYg~0 z;$q%(q2iWICVMf1*DG(rep_TrXDDWBhbzm?AC1pl^0jMEDGKUZ^USX|pN#)ut801bpVi-*p8B^G`UQU^|8D-isk`0ACti6;#`w9W-}ec(s~%@PY#wn^FwU>(Qu~ZVO|<<6 MBP3CXDO8d751F0#`v3p{ literal 918 zcmV;H18Mw;P)000d>0sP;YmjD0&8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10~1L^K~yM_ZIexCTxA%ApYOXr^FNbGW}4`wsa9|O)P1XI1`fTOlC5f-#hnv zT?K=Bw&(D`fpe6I@NX%FT3kf&9QtkoVhj<@imcbRl(t-pbdQLz)J9Hwte3d!4ZRwxYl+u>aLw0ANqbY6T5E|<*>`6R-EQ1=jaQF0#R>&i`(sz zbE3>v8=bQ^S9f3Bsx;<|VA+;#gdOXlLir%N+c&vh5M(r%++h6PxvA`RFCD#U8E!iV zYD*oLl)JZCUANv-y&UlbZ~KH zqcXo$X?h~4X)m>NVJ7#n^7*`ck%#*D>)1WR)rMELDz63+rpCU&)eI8Sg11_%O=Xjj-8Y_p z^0gPvjJ+EeQ7eB{F8Cc%Gg-_+p8j?Nu`H6mZ|7 zN#p8n17#FCFet5PYnN@?R%L)75L@}!rL})1Wdc-SL@T8TYt?kMRkyV61;zmMTRvik zd^&+*{{ zkgePMZ9o0=sbjZ*2SW#RtY1zo%9+RLc*$@*?AjysR(Cj?j5MB|9=V=Lgs=9S{PzA^ zbO7>s>YZMi^j^ik@a?{K>g;eHEa=ja@c s`TuTQSVqreaq1yds*AsvCpgUh4b3BG!+j9R9RL6T07*qoM6N<$f&hZD`v3p{ diff --git a/resources/images/impl/gui/buttons/save.png b/resources/images/impl/gui/buttons/save.png index 74008fa5e231f4a641eeab121af5de9d3c628ee6..3a91f9555b3b2dac95447157f67ab62f62b01981 100644 GIT binary patch literal 1071 zcmbVLO=#0l91l*14#&{V!_>nglYy`%@1>uKt8;CVtzc(u3-;nin!L7QOI}RgY_{W2 z*uab6#q01q*i8^|!bC*Gt9lZ=Zx;_kFTS+v^e`qENZv>Ozu)iwxmKE+85}r2z;WDQ zVOA}(^-T1h>}TIA&dg7?j8d&eE2Kf&hL5>vi_|eFI7Snfv0*LUe~%|QuCHNNYqVCp zu9(CTjL1d^9gm?oZgML0409e+P{&Q%&GNf1U-Q7Wviz-N5f;5XZrQWTKCUd!Rn6sj zQ?~f2t6(xz7=eSS0YYcN4U{m;cX$=HkFG@?bWG@cmhU=ME0#c>_!uMw7&BoCf)o-^ zJdsYPCx8SI6rm&{DTdNYTv8we`w!35e5;|9RefKJow9t3Qcn@ZcDpUK;{x%UB9dh} z;*g{mvxo&tE;YiK8;tcBR2-PT?NOV!AYwG?WRYfh=4m$s$14^Oh}~d6Q7mO*Xm}zL zpy)VJTpjCxmhm4q4z&)dOCA=>I3SC@$?DM<>w#JBjuwgxnK#M}-)2QI7F1#`I@qNJ zHOsR$wmFqJ_lgS4ccNU2g%R#TcR^*9d0>bj&Q6B^8DFolqY=oQcdCF=~##nx%KeIxyNEv_3l=3=ekM z#Q1D9b|x;rVPkc-piWoAul2{Pt9zfWjn_8oC&pGA+l`Z@@~LM-)nMpS|N7?W_R72U zU#c?uWNoDR{aEex%EvEz+;HEyt#9bzqtcJF!*?b|^j+`t=jn@YpN}tjH@OdMPhT7d YTimP4h27G|$WAoE1#M2<$lY7{4Lhk%ng9R* literal 580 zcmV-K0=xZ*P)D zlfi2fK@`TnnRzop+HE&m#T=>?4OpSzA?%?LgdDtz;9(I7NF;a>4<7v+JbCeui{~Ca zS3DI;XrPc#awuM;(&`$M?4~xmn^_M{tZ8;t{9uL$Z{Badk73xOC(m~SHg9syAUMYr zi{-+Tfs7I3=IUCcltdIo2*VJa&Nmz!x^LgSe)SY%(T_M|cKOv6Nd!d#OP5Y?+&e-T zhIr^aP=;Z^_kDPthwb_f2D1P7*^8H#hu&AGR;vvO2`Ur{P)a4WATwE&TP@vl_qRS& ztJV97fP6j=!!Qy706;3kme=mCAM9;z^3+p*5f_9D8FOLA!RIesY`l99Nd&1RBuQvJ zg4P-X-ve8`HSOj+;8U=SqwfSM1(c-m5|EOh7EkLbC;uB^)MCjD;LT4__H90hHQ)(MWZ4K&g=F%6|KS5Xht z>2$#6)af=3WgqU?36r6CGHx(n=T32`8}0G1t-f<`kKDvh5&>;)(V*wB2;qvi}Xw{QT= zq2{cW7(pYUL!DS^35l9ZGA#Cz0=vS&(JTj4ekD!dMkxgFyImfy(y!)B@+#?lNG#w0 zlPXk!nlt5;)wl}K;Uo%3_#&PigdjjF5D^K zBOQ546Pz+_i$1A2PKqLw0zpwx5x+>p$H{yFq);eA96}+F*5G-IJrv^SdA!^(1B`m@ zBt}pe?g2uKhz&2K)EwH=sSw74CplPMpHMPMiRAW-0Kh5wT;QkRUNs zps9Fal*D|fBZb7>z+{G%*wZ`^NkIi97K?P#k%MxP782?7GKm%fwRGfDSjYd#nt*mj z5NePAv`bh-_h4xIr1|N?lkq`4^vsa-aJ0Q|Jk4N41`Ker#ov2ojoKB5%sV^ORL~W% zbz!uw`2}C=Pi6ds^j~5RW|y|N8EP<_c}~?D=A0d0>gI5Tt+}!B`y0(m)5RW1dF(ck z=JzEUX2)3I!+Uo}(yDfkK1g8qY0lq!99UWZ>)>K-XU^U~IESO^t;>Ea(_W9K@*`u_ zTlcmpUQwOLwcMx&k&k8^kSyM`dP#H=zw{+=E@6u#21dr_ePb^5t!~Wb-}@lzy~Uw%wgvC)(-0U5k@uB(JFfhcoQm8RTs{L+={#C^Bw<%vD< zP4Tv`j3A2NDkqC)F}v8_8=Jd-uqlvCYZr4_(@LGP7q-ka|#E zi`jtKru@3D`bW`+?7l7H1v%_8?Uu36uil>Ru0VwcSv?Igy=&**Sl80m7g4F^juam0 zxH$6J*`P8)GoF#Qvr}-}_pq5K%*x9AZtX(nUY;+ebKh6XcemSi3^sK;2l>z_`N@mB z+sB9fXYx;tvo8=WrY{!dmMOd=W19oL8&7(!+#20?cSEDNW+3g@MYHqG>aOgYs{W

Co50*PcQ1Pfw^xq%sga*Cx&NNbeEd8%mf+l W3=Oqc1&&sS{_zHV23)7j-S!V@n+a8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10T)R`K~y-6t<tP1h-gG{ zG*azgDI#jt<807*qoM6N<$ Eg7KH96951J diff --git a/resources/images/impl/gui/buttons/searchCallIcon.png b/resources/images/impl/gui/buttons/searchCallIcon.png index 4c50ecb115251f7ab7b890729b71a7468c41a7aa..a751929c559c9e20d34ca90ddcd3f4bdfa1e61da 100644 GIT binary patch literal 1474 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g)!3HFq6y&A?DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y) zTAW{6lnjiIG-a4(VA$ce2&53`8Y};zOkkuW=D6f1m*%GCm3X??DgkBmQZiGl++57v z3=Pdq49txT%q$EIEzK<~oE$A(ERCGp3@qIoVP;^{>tx_&Y3OX}Y~gI~Y-s3eXyImT z;pk#yZf0QQWajDu*Xx;AT#}fVoC>oy6KF3~uM=LqR?bDKi6!|(A^G_^uoMuGkzbNu zoRMFk;2dnK;G3A7nFr#7q6gwzm(-%nveXo}qWoM1aQIqfVzJ-A#KHi@-)=?*Ze~tK zF3#pgMy}2#N>IHi?JgIrW98(0$8VjDkD`#L} z{N(B47*cWT%+%A_Qh^dj-}e~%$@ab%&k{bYpx7a@Mk#k`t6s^=Z3}<@l23VQ_P-}Z zSLx-V4i3+P$)TLJ5nH*|@)?)ZocnUeNr6R5Y4HSpz2bDeIll|vy}y&lb6DZF#HRrb&xWvAwxc>aJVEbW5i$3MaCsXckIX=^;?Yc>?AWP#0 z9q-m&2ZaMOmMx0WJMFjpv-#Y^@wQXFO0}k*QonrYWJ-{8`*nqbGtQ>DOna&=^W?d2 zLC%uPFTH1<{l?vX%xw1A=O5E;7J@nm0sqmaZ&$-Wk8c#p1+P(70S?{HnB2A?J zKKfV@v7lVVGiaJ#f}Vm+d&Rpu>Syj0a~i%a`<=Qqs@7bFul8|f4t>uuSl2%RM#D}0V?uaRA^ z?2{d(BW548Fly~LHi@=^`aj&g>t460316{^d@Zyqw8(CL{*S+POXJq>Z_q6)(Z0lc zCvW?#vuXO*zW&JLl=!_iO#9~RuZKQNV{WtGkSTn>ewN@qO|QdzOh*n2%?dc0bG-jC d|EKT0)+jEP)Et3tnn;8oBNPYBoaITYbZ4PZtOw# z+_zcNQ$f6b@yY!2`L~fsq{9yaQZYyle=FV_+w}DvnvXltyKHcVQbC0cgaAmEyXn=~ zZ}d$bTE|fAefzknnZiKmcIr_pztDLp?_StymwB|af(?RbTQ>I}l!`%0Ux#{ydvPp7 z56z%GlUDoZcWN2i+(0iE4_HMd$)_`*|5V!mJNPagL$bBtumDlU5 zU?|G6tm(RbFuCJ2n!MU63AXHZ^<=b3^DXBVJu6S!Z;EU66)>zSGJaO8)h-c{5DJBa zJNItwDO#xhXWOa$S~DA^6u*;s)m_@oRX#(c{HQ#-(Q5THBC-MC;3CN+uPDk%=PBoz z5qTucTr9#En{v5a9#vH(9Ny>191#HkqS2^WFbd4rGX%@9c%d!WwOY*pVEt=2)L$#! V5Mdl0^w0nR002ovPDHLkV1nL78dv}T diff --git a/resources/images/impl/gui/buttons/searchCallRolloverIcon.png b/resources/images/impl/gui/buttons/searchCallRolloverIcon.png index 46cee5a322f77d450d266f823bf2f13305f3abc4..79add6cd1dfe20735ff260c26a54c3abef956e91 100644 GIT binary patch literal 1802 zcmbVNX;2eq7>;NoLq%=nD0r<4aw*B~awJ&^m}C>7k_h2+iazG>a7zXV$CK1vm}l;cE#}2tH~(4FZHl z2xdgdA-P_HYl(P^0Z*|gQq`6MwLk;L#R4&Alp)aJvKa$Lbxyz4)f3m1ce}A;sF_J z22DPy#AFk;7)c0fX3qi)yw;|~Ca``)A(m0VQCS_c+O3#Hk5Lc&j#Wk*Nq?P#JZoF69 zm|CRAxk}tfnG9;C9{B;2U?z9}ZOEm_c!RDo5KK{2>oH1g(%~eXfC)k7hNB@gs0`!D zV3-#P@enAQ55oc;pDz{(FaaW#K?0d*lH+|?7>eS{V3~j~;bAZ=h551wz6e8j(GVhz zmSXR)38ax$k!pO>F2UHH!1DhSi%JZ*ilz*y6t#Y`1Cq29O&PV69+0F&0dkd^AYHPn zJa41La09Us*T@W%4j9ibO1#HD6v>DF6}Jq5WYJ;-lkgBkDv1Oqu$upqGcMx{*VP>V zXqL$%rUPBucdgF|?}i5_nTatlqag?@I?PNQnt+K?%>!Rou8g0X>{Yrd2=>qE)zy4vOr`tdK3_w{qLLrI+M2Ybvc)|Jl<< zKPqoLtKIbURdu%C1xyHOkcj7d#@^h8TaF%G(&e?F;x3_3D1sNxx172e+L)7_eZIS= z=Wb7Tcl#)%CCOoNYkJ)lWGFd1`(~ZhYHjG~5O?+T1haQ2>gGK6!-9i@cP0jfZjWDT zS03SQj}P4IegCOtjZ`WXZ9A8@gu@9c-Ek%tNDn(;_L=^3U0t19+v(G*ii?Xk_xJa| zZaz?7U*Fx=*O!xi^zw|{)vNsk^JeBPK7Q<&*w>d=SY~pvM}~(v=kgrwdj5?sJaq&C zBO?@!+xyo?r=+EMH#Ik>m`qJ2ObC5vMZ~rKg=ab z&dDs!6l_;wkhS@mIN9q*-w_%WUi67g-W2=Yk=okZ;Uy!p%FaByoSd92D%>(H;zB2g zdMiq|E=mu<5N9d|Ub?xV>W}v2h$BEjS9f&XxQN^=<;TVzDlhlk@C}wIm-h}04V_AI zNBql^hSD=@=3lQextk;XPjMC=z8%;nahvC(O@47UFs+N%P+#Bs`0+9G;gcsD3x{T#1fzO<}cx6T6XtT^88aE!u#{%#A4qKk_^GpA-`tk~GP@75^) z;n0x#~;J)5box5I^&y~nhw^EY?HosnkDia+Mok5}l8?Pi6xEotCp0N^aB%R}JX`5lT*{m3-eQxktHjc_*=*kB?v-T(F?M6}Gpu zww4e5R!BxPUSSg-l#KM||5WC1wzPz`R4fZUGx$gf%zm-CVE?lxPd+KCn)%pTeSaWr z`XQgTU(k{w-(H)|cA}=HMth}mR^?vj-L{9bvhs%$e{hu6e`UNA_qb|mKtRBeWpTmx tbDjHE9<`+{Tb%Xz_iQ#BymsaFoLrW5{~pel=Pjh`@01`_U=8A2>t8Irwj=-m literal 625 zcmV-%0*?KOP)MdG^Hid5}Ft<3t}Q{NDO9@ zt~B8<=$hZ-TDNY98+Pr)fML^xp)QCBU7&?1Wth?n)62|pK?g7JE>F&r@0|C0gw~oU zj^ij`9asUDC&x8l2Y6%Kb}zasBG7T1XTUq4#4XW6H^OoFx?C=AU4s+oBOw0=hJztm z1XxxaDP#ydw{3e{RI615)Nh*<1e(46CjM-L?AMpfX6LXht09C~G$(($`Mgll9XI*8 z^Z`HN(b}CN=Dr}4$&_MNY+X)@xS2q}bepc#!uP@JwCVTz1VI3>BL8ad-!hDV^8_L z$YaKjYh3<{k?uT!nG8qnH!k<@P|D{}N+G2LsF_?XcdZrwLi5pkPVep$H*;j}9rEe$ zoZe=UTzH?-(-O&K62mY6c0{#WRa)!1>mQd+%+H*}ck#{!^qU6eL4o<~17`Di3WYf= zD~1rF0W1owHI+(b)%OREcX1|B<=xK;As({s^O%&-Td00000 LNkvXXu0mjfCk_=) diff --git a/resources/images/impl/gui/buttons/secureAudioOff.png b/resources/images/impl/gui/buttons/secureAudioOff.png index d32800c3241551f85de329fc9cef078d7385f901..201e78297abc47075be82ca5ac5eff77e6d879a2 100644 GIT binary patch delta 688 zcmV;h0#E(R1mFcBiBL{Q4GJ0x0000DNk~Le0000M0000H2nGNE0NJrzgOMQ`3r7S1 z07nD?;o(69kwzzf0$oW&K~y-6m6ShBQ$ZZZKlgfll*JkmHKk3I^hX?ftKtgn21Qr-%AZ`psE&*w~05&mnAR)nXu#c2yf%;qS z{r-LKo4a>EWv%6ZOhm2%Pk{_@6L@WmdGD`N&45M31s(%`FMxhudJBjcV}92MohG0U zfp5S^5304My}jKlxd_|>P)ey&!6MQvB8$Lhpwo+|(`n}C=UHA}W@2K3*49>lD@v(A zJRW~@B3MLj17Co<{@m#3C@U)~WV2aPsTA347NE^qd!UrM-ViJzN<{7ebHEutG!O`o z$z+(Go@QfzV}qroC3<^%0onkpwP$Ob%UVPdKpuDioClO2=$Y1f&vT;4KX%0 z)=+sqpQlo(Ff%hlI2;BD*DfyrC>!VO89LAE#B*kKp z)zwvi-AE+T0_>Gar9I$4122IBAPwaKJv}`*jzcPyI~y;T3;3>{ Wnzt7{g5;L~0000iBL{Q4GJ0x0000DNk~Le0000I0000I2nGNE09MY9SCJta3monM z037ZCvy>j1kwzzf0mw;2K~y-6m6X3rTTvXvKR543qA3o=2o6QCTL!_wMQ{@#P9lh4 zhHmZPS_=iyF?8tYB2)_f1DwPmkTDL5IJgKciiq1yB^vVMzW2Tz9=_(8mo_9ky|K$F|_vfAP8vh?}xWtULMX!O->TjYRJO_0Kv^oXfQrLoKYg$ZN&EhuwR~8 z`8?LlOphjiH8q7wr*YTTFqI0THIIb?-sNRT=$_hRu_#F}XJ=wgPop|$G^Ccxbx$=u zHFssDCy6PSsn5;fRjW}?jgI0hEyWYZD#wYo{?!#vtE)T}i>Pdt)Wk%Ls=By|Zxk6_ zT+lf@3`JvO1o!v-s0oQgqOH5W&g)i-k=h($ diff --git a/resources/images/impl/gui/buttons/secureAudioOn.png b/resources/images/impl/gui/buttons/secureAudioOn.png index c408c4f8d00991c755eb1c3ae898c5737b5604fb..7bbbb51968756716b2373a850980df0b7c9c64a7 100644 GIT binary patch delta 733 zcmV<30wVpd1&szFiBL{Q4GJ0x0000DNk~Le0000M0000H2nGNE0NJrzgOMQ`3r7S1 z07nD?;o(69kwz$gib+I4R5*>5ls#xuQ51l```*h-n+6r*A0bj>b1PVXiw+63>SjqN zg@QtmQmO5r(4~tsba$;NLMNeAgwmx$aBLg|E$L81Zs<~%Hg!m$ z2>bv(`~?bd7PtiAvl&Kx2L}fSnVXvfI4*=R6NyBBTPzl91G)|1XDet=PY=Dly$B)L z-Q8trX^DJ3k7d;_)5yq3Bh-mTqd}muv9VDB_AKB9@CJ~6a5xxT(MyU=(-?Bz*1?aLzy7js*5373l*W0XKlFz_e0o#vk_wq`S}|FrpDW P00000NkvXXu0mjf+ipDh delta 638 zcmV-^0)hRF2CoGniBL{Q4GJ0x0000DNk~Le0000I0000I2nGNE09MY9SCJta3monM z037ZCvy>j1kwz$gEJ;K`R5*>Dl)r0JQ545N??+yKv^CPEq$w?pjY#T`!NDJ3CLILv zAEnxbK-ehk%%1Z-(hwae6nMXr)%?%OOiQKeBkt|U_l6Yx9Q1dlMf=N6ixW7bPZ z1Z{edRja^cdW^zau644K4#?K*slHK!w0ZF91`8|C5z^*R=p<(b$2l9j&SZMbwWHda zh_>&izb(#x{Ex@HS$>9)HUKYwJ|SJ4XP|8_hU(iI)aeZakS#5^%u8klRZ;2k^==Jn zhQM~^EPJg{q`5SGGf;=#Nyyg+QX-Ln#ILt+W=Bb;5@j0K-{p;Pap*2VBjlb&)bOYV z068NJnZl}KpxfW5EsiInEgD# z+vPcW{L#jW>!B+ihqvX7{u;kmzA*9r{CYPGt*08;GHz;?)8e zs*e*zkr8U5LT2?9bz!k&W_Y*qVk4)hBvXlVz!d-YjR2Uy6&<(_7{Dcblrf7MQ4q&}yD>_{bxA-A(Wqeu5`v@=!6Jx|!h8UU zX(XvE0)nQ^Rq1R~q}IYqs_V3{5f1K4JcWP|5ebV}gau_&+$p-6JBwthc{Bg_G2e=2EiO2&Fv;q9|0WVIm*X?$(Z5zWd$Y!(D>vez#kOeM9#01WPm%!Wy zn0G-Fi3G`Hl5)9BG#aJX>k$Y9a2yA~5Rn4#6?k@YWv-v%HWrI9o6T?>hsk7uuIq%u z;Z3^+eA|J40=T|oAj`5yr_b&3YQz#T@ zwOZJ=y(u3+0S-oy$z-;9v)QCnDlr%g0Ek2)#N%<=?KZ2`Y9sr>_0zlEv8HL;JeSL1 z7zU|S>S+Ha8o*oN74T>myf?J*c)ZOkmC7Drxm+?>old>rUrMPrBJvJ61D?S3=6wP_ zZ&bRjQ!Ey-ENk!fdc9^i95Nb>cFS`hsg(K+AR;N?JMj3Que6BxfcM(}`h@-fo^68J TzcF3w00000NkvXXu0mjfLAmf5 delta 534 zcmV+x0_pw31jqy-iBL{Q4GJ0x0000DNk~Le0000I0000I2nGNE09MY9SCJta3monM z037ZCvy>j1kwz$g#Ysd#R5*>Tl(9-9Q51&1JDEu&44A>7#ag;)wX?FZQ3UY~bVaOE zNZNgX1;NtoM8!gU0l~^g2-sdH6`$BvTAPe02ptVP*#R_!x6@ zlL)R$X>ASVx`V`l_VRXWXjQdJd1nWEb~e-g0Yr$-&j}h0==J(+>%XlL8#sC)KDF5X Y0k25?d;NCNQ~&?~07*qoM6N<$fxtkB|(~MK3|u z5-$-VZAaNl|3Y~0v}^;h2N{V@fe;v7x_J4Z@DhX;?7@Q!VuxK#$Jx5n?=<}0=X>CL znVHCHwL(O$1J8lmz!m3rWu*Yz;`KIi-1NyM_OcYw1lN~IF6 z>k^Ibv5d!K8jVJnJeV(gtFUc*BklEiv|24jqY(gwLV-jg5j^sh^H*;tdty!dUFC8) zQmGV~OeS=Gkwf4O@N>J20cYFAWHQ-2JC1|nY_`N-Y&K&)p9jT1lu{2xNj95B(=>ElXR%n|`#zrMv0U!ldJ233P)fZLk@vuB;Ko1yq(vkKJdXUY apU^KcRE0z2g6b3i0000CHLB=gA)Qlyrzn|hq z{Yy7Yci8oNXyhcOX>w=rBIjREa^cMpX20G-kp?(0e9U%63n=V~u*DbSZRH^^%X2i% z26{tdu8^UBsC{Dh&_SFI_xhk=&sG3(mB$uyuKEPGsNi>o)&~i~%Godti+NQO5G*;# zqO@W_-blzj+My}ZhF*3$wl?G%VS4*b{LWy{0)V2n$hG+?^oF)7b#5&loLGaD>Ur|D z1@g583fjkxQN!LSy8`=rkLGQ){!RP9m0YsJI5B#E8dVCQ%7euGaXgaRk+*$EzZ*4+ z_UQXP?tY#@Z)!FbJucfLTEE@CO-GR(ZY05FQ_%$~>jeNdd&f8)IY(J90^kxo#Dj-% zi^`h!XDinZ$^&Bn&r0_Rd!s~rJBg~}MAh*%qh>6l8Os37FFog7^=UgNFQl@GBya;z t_`j$o0cRv2!^%5K1A#sv6<`L)`~!YDoDX*%LJI%@002ovPDHLkV1hcl4h#SQ diff --git a/resources/images/impl/gui/buttons/sendFile.png b/resources/images/impl/gui/buttons/sendFile.png index e8c40d9c6c815738b190d60f20d855597963bdd1..bd08bd4d0b999d7a786afd73891db01673821580 100644 GIT binary patch literal 1307 zcmeAS@N?(olHy`uVBq!ia0vp^vLMXC1|-8Kr}G0T$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsVi-#o5x#*xA(5z|7dt(ACh%%+TD`+||(0(8$Qe z!o(b=*Cju>G&eP`1g19yq1OzjUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZnqfYG!Lpb z1-DyFaO%|uIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@ieqXivB?ALvzo(01NX4x; zVSD|W14N!pTedaowb!8oi$3z+nZ4r!gTwrTp~AJC@dquoaVKA9Nh_DU@#p0wf#!)q zJzXMy@``+~h@9$mUHsCMPrcyq&rfsT&tX z#<=3hBlX$lvR|8AbbT+|1d3c2Q&cK6li;!9saQC1k0tA6wkDS46Ln5}X8Qi%WBE+8 zlGyz#4|*AhN?Z=F+Rd}F%4aRf#wIw&-Lpzx_7O zB`~GWZLzS;qW8=8EO7M+UKZcn8_P9Gdey49ONSLW&N0+@G)}aC%9!hXncc(6|NEKG zdz3vV`F)*Zg!^c12e`chQaFyfF^~J7z$=6NJ+CHg&^7h_prDd#lZI~a}Wv}ou zjcs4XXS*f0`ug|UsMeNpzu6l1cjSC$%CPpFbo*pV5zm2-yIH25Td8w8cth^ab=Ch1 zJqymSOq2+AIka)&qV>|5GmE3{zI%Fc%l-G|&l*2vMcw>9Wlf!9_=0+|FTM?o3>K}A UwF|veH9*Ccr>mdKI;Vst0Huf6EC2ui literal 662 zcmV;H0%`q;P)4u*Y00004b3#c}2nYxW zdD zlS^n5K^(@v|IB8SCgjy@9@yBXL~Sj$dN3!CiWY=|h>w#9We;8~UIeA!MMT7d1*PbK z;L+eguoVSG!9x-3Ar%!{Y-6oW`Y@WT*}Qi>*!G}qP(S#?FfhOQzWErsI&$+}WYcCh zV+4s27$b1Tz!;$AzuDf-%o)p{raOfYWi*i#j6~h>uHH6@6KoQL#Mg(gvXnu#;)QH? zrd3sq3n7YDAlB>_B0@YGfIpT9w|DLSsH&>Z(or*z&*#V2+zet~K$l|y*(}`xaP*%+ zj+Pem_U-x^RU(XOOY;D5`ShXw4<+T95Tf!|(X14fwfzS?sidl^8|RxkvQn!Ow)fNI zK-rW9fI$GDJ9ozywr%hGt+jOOAzF=jaMJ`CHK0*NF_&GItA$06*ROPU_e8ZP7aGac z#FfEo&(B*ra!?tG_A)?Dpuqsc4s^IfFj)vB0mR|nd5jNC-WwVn+Lvt}t?~t^tpfEr zP;USY126!X1b_pw3&D;ar>~$Nwggpc4J_uWFiJ(3WgTX%0<&%yWSEA7>J+l+9Ndnl zv-J8+DSF%z6xneQ*~;FvH{*~b!sAEdx2IC6OMASt=S~Ku)EC;8>52T-BNs=L8O!>e zP8R}7aBUO>6a^lSCohDUbFkX?S6W+oqR@F__{RPBz<<`Csd)8F$#v@N^|6=hd(ujF wLF0@*|LOPhjWvODg0Aa20Gt_lF#Ie02gGc@oa8+TFaQ7m07*qoM6N<$f}c$-ApigX diff --git a/resources/images/impl/gui/buttons/showHideLocalVideo.png b/resources/images/impl/gui/buttons/showHideLocalVideo.png index 60ad55d99302a189d70a8763b27edf41ae179ae3..dc1f4b95eb86a9c47f76717e39e5cbf615960569 100644 GIT binary patch literal 1606 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 Kf-^BH`+orXB?sXE literal 1339 zcmV-B1;qM^P)mt?z@h1g$b1=z)5f>Tn!SDS9aeKE!n)=`RS5Ru- z0)wWt?A|w4IMwkSAP6p#Ac&uXNH7pX#LMmWrRwg|`z~g$0}bz=U#lb2x0lqdMZDp{v5dPO zojpFWa+i5CGldNLF8Or);j^r6oSNt;_Ub7lJBTs@IfcFqymNg<#;!CoZwupJE!0EA z<;UN%obUJ1xK!OWMkM3{E?>1OE)0!wvaOHpkG4YgGRhH9ptOLN)kQ(dNTZ3?BYr*` z7w{Rplx29>$I&jS%NHn(bR%9rhYqIc>b*);rG-aQUsdYrx0<2 zI(XR3I44j3%Fw`{tf}e6R%Ss9W24gnO<9=yae)?;CJ&qKovx@USvuTzZAOkXh&Kc# zOxAk%zDHOmSrI+T_oR7nl}~ld2MtOIJ2$5J_-L5t*N%cC43BDDU#Pmt4}b!S2H+Zy z8aXuQtTXqaTU98^XDuZ}oD|J<2T_s+#l+_Pmj}MQ|7cq|d%ldZds{ED$^vYuvoL*T zGDu^j9d8h9lC^jCGtk|EA`M1Rjzt-p8wU@8FYiB*P`tafhgj4L{4$1-&Z#xh%Gh@6 z^?^+hDY;1PjPvaKHk1o$1m#E&G!GDPa?m5KVMa5G+0}kdc}7sib~y7#uj?a?BW<`{ zh(CyUf77&ljAI=RpB^un00e=9KqzB5+*-=6{nOaGAvN(4js+ua#Z;$6gs~IVM|7y7 z852UX1B`j___j(K>Rn!YCQWokwospBTCwZEG)}aIdHt0n58N|WP@K||Ldz08*X=0^ z8gHFhgOZ<>QyPUa&_e$u&DQs(@mIfLer=XmrRB=7rn}!@jOC@L(mdQWf(72*H;b%= zb6sV}&;C~S3n0Ohx1qw{J98@bG)ng86jta7_8yFo=qzF2lA*Ffm^a5`)3Yg}L0>5i zZ@yo{p<_|8R;ePVmImIs=00*eDz~6yhtd+drV*7)k$JAC@@oXXS-F0R$+)U%3d9HY zB@&4j^<-~oS#qaxY$HZ~D#$q~@`M-y73O3H@2%2iPCsc=~ x0WG~s$!Rsq&)jHjJRV;Ld;l~j5{ZGl{~z_*qoLBWAyxnY002ovPDHLkV1h3pY4iX9 diff --git a/resources/images/impl/gui/buttons/transferCallButton.png b/resources/images/impl/gui/buttons/transferCallButton.png index 2367d463841eb95f74f77c4f85750a40e650a47b..1b5b56331d29b3ddf8e4cb4dc90708366f620f73 100644 GIT binary patch literal 2114 zcmbVNX;@Qd77i3DMG$2f7KakTRz;F~14+nbQL+Jn#5ANB22nzCkpNjpLK6a15Cz1d zOe>306pL6apom(lU;!DO%A!@4GQb1MBeDsKmZ2!Z+=$rz@ad1a_qq4m&ikHo-tTzZKdLq6W2CWF(fO({S*%JeP{61Fkt_yA2TKHd zU@j~Wr6k>keNm_nV#PeZiq8s#gfaylA%@b-9gk%wBt3TRT10e(wSS3JfB#BZbr18VN;f0XC zZW@O{zcEoI_+eIp;c)SN<;h{{CsstJj zsnThcfd(su3b9-zmPye%MnQ}$S>=a8B3(&AB4@GQ5lfYCg+e65X#{c{hy`#Gi7u}< z)=Cu@{v(X{S}S=eau~;jm9k`o5ZRAdr&Tbb-CsM>86wd@+ZAGDQv``LnJ`%bOI5)% zKMb;h6^TU<0D1!;Nb&+mc!1~)g5KT)G8LfHKra%A$Vp%2crTWQr;rE?0vTiwK#&fS zDV`JxolYZxbP@#*QdhCTQl&~D6~e22#X7$$Sg*gtLR1ATP{|ZLnJjU&0yuFpl}s5Y zlcT9&1T;$^6ianu-S(_xOM?~S&tVZmA(Nor=nIM8-E%jy(Tfx7Oy(nkjG4i79vPK*LM8qK*Ll_->fBA6Dy)AT># zM+Wf%Y^3MU&9}$@@W3#?fbLPiOyy5*Y9Scq?b>|)UWM4tz|d-LJ&zM%ZWY1p&l+j9 z%d~=0tr;LXyD57^tpe&adTL0X<)9$s!RFM_Wu zy0fm0I>bBHt-MXg2a8$e2SuHJR#sM1WVKyX{tTn|RO;l^ln{hYy*kl!yWTvfHOZvh z71+TsF*e?{aOJArKzFyutF+V2aB4#WcwJgo?(Z>)?JUjhRKbZ zZqFs-OWUQL1HFdSMwZ!7~p8XT}^gw10+BANB zV2d~Tik{x!1BJT%Svqr8pl$4;I+Nuqq)|46a$=?T?zXImSTb@@eldb-6R zRCWI5voG7iwspU%yl8K4|2Ipt*~25@OAzltP;BhutBZ?^wZ65PJTjOG9CiYh(ZYi#JBtv~$DNJCT8UfY>xMoS6neYtw_&$QZ? zqc?8cm_}`}aL&g3*1#$33JVL1-(6oeY#Yi+3z^eiCxYNCs95xWxNGO5x%>C;=NA6t;dN>No~ zny2pj>Wo9k`^KC!OEniR%o4xDv=~gysX0Gc7$=!#cjICsMrU-8Wfq>i}+Z`+{ zly>3>w=>TAzswvvb}aJ4tW2K5ljl+reJ!)Vv6B7WKxVUh-r>Xkdb@k`tVX@>`uq4q z{@T^`Lf`hzmz55@$9e8Wni-?ilo)05V|*;!lV_gp$G4ukpR4Pf`-u`wf&JJL9LE=bd4_q6wt^1e1wP`Ze~bmUZR8amRBk?tA1&|Bev&~pvMD9N@Yb4k7x&ssl8KmX@Yl9?pile|fCBFUK~ zOG%Q_ZU-?)w=4bw30V-9<2&l*hNYe_I&F%4mB*Iuk2 z?v^TMF;X$^#Wh^UWG%t5Mz1$p!JF|M@5&tBV+Lc*1i{6!D8F#4QTDmYkY8gFN86>| zz*?i73%H}s0`AoYa|tUQL2arDf+;*H?R4=H<2`h3U@yt}B&U*$CfQZi_fwL`NvJb0{002ovPDHLkV1mcq(dGaE diff --git a/resources/images/impl/gui/buttons/videoCallButton.png b/resources/images/impl/gui/buttons/videoCallButton.png index ba4923382d2b1e25a504a25a2091b8d545bbc1e4..e6fa719507163f8257f278b757f715257c870baa 100644 GIT binary patch literal 1502 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 literal 431 zcmV;g0Z{&lP)Z<$jk=M? zsnFlnfis{6>;mJttUf2tt6%2OL+YuMD5-LD7 zk`I7pk6;^Ug-}+;bi|bkun!yoqkVeO2G)QF;6AVhkO1`rI4np8cm$@xOM%rQXEp&w z3X%!pPk6=^cmqBX(x)o28PWzm0o}l!BfeBf-}nR=3vd(I`X_J-lu4U7K-w38ySy0~ zQg3@^psOZoQ(Xwoal}%;L7G$FdqkGiJ#`}X%Ne)mAFQgMA#kl;|6H_V+Po~;1Ffc1+hD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Keo`G(%fti7VnW3Jc zv5C34xsHO7fuVuEfswwUk*=Y+m9dePfq?=PC;@FNN=dT{a&d#&1?1T(Wt5Z@Sn2DR zmzV368|&p4rRy77T3Uk4Ff!5ws?aU2%qvN((9J7WhMC}!TAW;zSx}OhpQivaF)=B> zw8T~k=u(Imatq+b<`qMO2^e7d6^RAATTynX+5#3LY;r}To$o%UOm@1<7eICix%F?FH8H0t~}6nRc({b`r}C(b(g#7 z-MSOBPlM}g)!p8w3xpTBIy}t2_ABwsgPmy-$F>K%wm*|}>OAv#!};g8dtH?JM5gYR z;nRGhJ=JURv-Gtceixh$x4B#>{kthZ<4ToQ(?`BpXP>q1?2F>9SRJAz8B-Uua=D_a z=dHF?{Kb;Z`%b29mb$iA^x%ZU9*mpL=KJ?tTo8LAe$}c|KhAGoySZ@kA4BFGrs@h0 zmHQvIm8?;HB6O#AmBuN~f7|V=)v+LI z?Z276def!(S(wUa`m|}zIOrtU{mmc2{^RehUti4lGOI{Kq)7Op?zPP&O%dj2 z*A`fx`T4i*Xr3}pjH>1rRhh?;8uRp?6!G^_^aIt7X8QNuK(}T>FmYN??e88N<~jsKbLh*2~7ZtAr5^2 literal 780 zcmV+n1M~ceP)00004b3#c}2nYxW zd@jO;{~@K?RXS z)T*F1O}P!B7TLm0P`0)pgcjApg-8+9ss~CC(SyoN)0}apQRn5I=bd}!K3Z7{eyg)M zALks-PuRB20*Sog{TwSku}rIVCZpxU^X13gC+d0tlSPQd(!=+O581rB=l6_4GOH3w zYkZ37H`RMbZ!IgGe-b)q6|!&BsTA|cG_iz2Mzyfqs|?Fqy}oq+cyd8SpD5MZt5mDhn*rroBdRe~ssiSE7&Otzd7uiW83CU*rrK(exAvx5Tl{F2M>Gic1TQHOfOUR9$y5r%FaW*-ZA((Vm|!q?8t4Re0#V>O(B0S9r~U;)aYN47BAVj>0000< KMNUMnLSTZz(q!WR diff --git a/resources/images/impl/gui/common/addContactDialogIcon.png b/resources/images/impl/gui/common/addContactDialogIcon.png index bd9b284889142490e38153431847c478aa4c5596..5b1f4ed1377a0e905d36bf08424877a263aee1b3 100644 GIT binary patch literal 3074 zcmbVOdpwi-A0NsXqTDIXOw@6CwlTH{vrUU>X1Q0JZ8YuHHq1^*N#_)4r^wRfNSxd| zgd$2vR7XljC5o=+7?Mbc&U87y-yi39{`ftw=lNbf-_QH~xqLsL*Xubz3G~y0SU^A^ zkREA0o~oKRs6K+0rfMA7FDy_^<`P1fBv=q5No0uFARm?>nhhoK7_n?Bo54!j(ZTir zfi$*pXkn5tasZYo;5jiCbeyC-p$ZKGd3Z^M4CZ#W1RBkbSg0!* zAParj+c@iGB6hGWkj9j4XJS||uXRulDON?mV@nuNDUZt+W2K(3&%9XGdO_?AgML<# zZ1;qHaVm^Vf%*zWY^bXf%8>~m5KuJQ3E|?3Mk5@cNC1I!22?NF5#fS$MPrd}(60|n zWlhA2!BX+WueMY>PuMnzM2K~EPE1U6N<=vcM6u2Y3aOUwA;`*#D zmQdOMapNDg#k3?L+nLH13*tpg)qTX+d;_a;_wR-l6jk0}H;Oo_OJQ*F0%kmq&6kky zo-oyk6N|&b5(#cZ1j5Y)a6gV9iXGK0zCF9=pIT+o+z@oW(%fz2X{1U%^H3}ZR};DM_z2IWHVbwlF* zSL9!?tp6u#&MIe|7s}(m%H^9#Rf7x5zl&eB`MZ7Cd{xhgRLubi+_wk>(gH|$ADXmx zI4Y8Bw8`xBtw)beH5ND?+@A&F7#OO<(Q3vS(DJNWdAm(P;r62ShW{eE!#ayP`jpG-Uu{e#1; zt&5Cp&8VBKjdU%%`&;avqjywo{k6kDqf8Q^P$=jftZ`tT-|Q*qbk74m+|bBap`V7k zCUkcg2&QL{_Xd}3)WL%s!gRCVHeNo^YW3?dBy8&K1n8!od`y36a%s~6!r34VxK3W& zs=Xkcy=nQJ8~gCj?8Dw?|DwFupt<4My&`ydun~I`d>O*Ksx(~hwo%tHdUaumo+4$} zBt47PrNkJepo-L?>3Xd&yJ*VFAwM3@c=m2g!M0CZ)Lu#`^uv(ZsvbwV!AJK)uYqDpu?0~34m~d<9rI1^f-EacI=AbMf=G{Je2x=8<|C0G~OG<9)HPUnz%cRiO!mcJS#I`6N zFp47;cIV8Q3y&a7uLHZN*kAH`;>`ql{_thPb39O$r0jy&;{f)VB5%o9mY{xmyjA)Cn0!US6*EujBB% zF+lT&3M3X=zlW+<+}2l-ukG_u63gY<&dlyR(LGQm1B)MVOHI*`pQb@Gm(-`bLQDKk zuh;t_Cpe=8m5E%7iZ0&fP%GtfZyT{N}s5Ut|-W1;$r14j&dzN)z-ScXf>&eRZwCsKPHu zmzFBGi>P9CXa@*td(b6I0co{B+2h}v_3pG90YyuHF($Wk<9{qaQ~CBn#N#5O#fjX^ ztM%U}Hiy+zo|@7vinw*PwJ2w17Nwz~0d6jlW!jx6nsbb-T~4%*o=}!jf!`d;Tdqe} zDs@bqmWxUkMXisBjC{)H^XHHD%nyY?5^zs-tvsv_D@R5~Op(Vk=-H{8JKwdfy3CRdA9~<^LU&oXomN3Hu}{n#m9)8{XknE*r)L#!wcQT6tM{%1gTaS`DBH6|4OKxE z8U$RaO}`~ND%WlI{8Bgb8p)%o#DPr$L&}!($~qHaZ(2i;VB<#Fjm#A**Rx9dv;hJ4 zNyBt04Y`^UMj2kW)o65>evW?sqTp$=A%}Rc5dVQF5D4~qoO(6bY?sq~YOb9DjHMvW z#0u_sz76$C{VacdMo*0?gAOs@a@Xhj(Ow*|*6(@QmeZwASkE)cYlnIR zO&tfIxp|`WuA8c|%UX--QP&(v>z&lh54yq2y+xNqwZ8FNw9Mzyb6W}@e9}?zmf3Zo z6v=!HJ-Epv0ahPAzu1>~1iqs6&F+DZN`o4{TI``e{dHcL#mtpBkapM_(5ox6Z`S1d zTZ7AopaZuB3ihz|gxHMyDKmNN9{cV_*_c-<3uC3LdAy{gdh*6YUhGqwmu*C3@3

  • L)Fw+q_MS>Ebh;_-e&Fy|3iSs+j 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 Uk*+Y~v-96>iM7GpHuaAA4+fY(Y5)KL literal 3293 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 diff --git a/resources/images/impl/gui/common/admin.png b/resources/images/impl/gui/common/admin.png index 09ef1808fa8fcf6c9d6edc7cc3423456d324b989..030dc0b27cf2a5133ca6e7cde1fb0cf87e840ec9 100644 GIT binary patch literal 1698 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 E0MhaMB>(^b literal 741 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L00XlC00XlDihVA?00007bV*G`2igG| z4I~a@JycKt00L!6L_t(I%axQ(NK|1IhM)U0jm_B1WJzU`QC6sx7!=V~Xj39o0~!pI zX`7a_sAb?HS8Ylc5kc50BLrPo^k-5;kR^&1nW^|+InJ-mH*=laqVK}Z6s7}b^Kp1M z=Y7xl6mkzmraerVX#W9GfenBY(B)g!D$sI-XiW_bWwqz42hO%_zq~XjUQdri(!dH} z0H&G?C>RJ79X@uT&%D%8_^q&~=+u>pcAymS0S-V>bLhrVQ&V#%d$MnHl&F*>7NAZF z?gCV66fGDG)|FM3-qz}RTyw5|GD0JH??k&kwx_r8+L^0&7ef1%r*yglu5VTt9~Qj*uY+}P?$n2|rC3Z3$Lcff17>RacVbbk8y)Fz%pWASNV0+<65mQI#N zTE*#2?}yDuwFNPR#*lcUWK;bP^KD7=S<9D)^RqujC1er^18GYiOW-`9xcR}w=DdT8 zwQ(ZORC0ybm@Ynd#D-sWes~E?1LHDhfjE${gB0nK57;eNeU0pOKg0;HtXOA;#V`?DH^ZHIITwU#w2N66TA#$4-`*898^+vml404sh2 X*Q@L|o_WnM00000NkvXXu0mjf11w8J diff --git a/resources/images/impl/gui/common/callHistoryButtonNotification.png b/resources/images/impl/gui/common/callHistoryButtonNotification.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f29f855523dd0b00ef8b653b7cf264dd346d94 GIT binary patch literal 1726 zcmbVNX;2eq7>=R>DF}!Kp>|xNL93G8O+u25Mw-(E2}YoZc!p#lD@isa3keh~I@lSI zTD$?lih|16szB8u19E6B1*McqMNmf+)Oy3v5me}g!}f>ckM8X5_kHia&-321nX1s` zu2f$tg+g&v$R%Oq>OnqUPSeP@zs@Qm7au|zMTFzAgjH=uDMBqCg8~YJIt~p()!O8Q zMsz8K;-JGKqKGJE2w#I67;3u?!)7p%XbNR%kj+H zN=RuEqdH8UVn)MLLL)RO@ft)+3t9#&wed*;14^g?n?Y~1@NELxC@-Jf+r=Oa7*!$S z1++1zqLeB?jGIv)kiiPjKrjq&I1HE_$l<_?0VV`9L5RFL0Wg~%$l)`&!1zTYt(mp4 z{4j}Z+!lEf&~yZ0;)9^oYGqhi4BQ+C!U%%cIhf1`FiG+YgdO8+@!K75aBQ{#b6Gf&Bw5d%X%z!|H!5-JBwuJ~o|8?WN+Lnl9 z6AFf*7Ch0cA?p!4cLGf2?!$)ciljIEm1c}AidrwhHHik)NGK!%8u^8x#k72xge!w# zE*s)9Ar23Q5iXA>5+V|WDUv~mOgO>uJ}kmP*f1nxiNuHyhNUnf60=2YgoQ{rVjj$s zOkfp83!ye@&Yh2rWSNbwitQ08bQC+2zV)Dqe**n9rll ztx&c;{^<6u&*i(eKKpKEHa$GQ$9+>(Ih2{Xr+lcg{^^Z#nK99RWzWNHeY#pM_%gLF zDMXYtybf}1!@gpewgdBQM2Rj7N6FdPu*;8Kc&x9Crvv?sdsX_ zw&+&Fj_8~`o{Q*`b0B;>m;Tf`qu~4+M=z0AK0n)2ZbH|acw z$q}u(Lxs%)3y%4uK;Dll2iK zAnn1MkRL~?jiD9OZ}h5WY%`>Hbd=T2*&QhfY`wJ1`;NRbq2hHP$Jq63xG2cKsj=Kp zyMb;=oZnnqE-YeamAF&ev=lQ}O8Ixo($NCUo2?yU$}CE^})CV&q_CcER5V h=sp}>+6!>fG)iic^Pukr&yDs!ib5JHIVIY(?H_DSnJWMQ literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/common/callToolbarSeparator.png b/resources/images/impl/gui/common/callToolbarSeparator.png new file mode 100644 index 0000000000000000000000000000000000000000..268140dea2373a2eb9dd9c3efa8cc4488af94f33 GIT binary patch literal 972 zcmaJ=&ui0A91jfK7@K%>W9TCjabT0YY|WambTm!770eiI(Ow3=Ca-JUk{4fIZ8p3p zBJ3nG@U(*$ul@rbrZ9E z!x5QyFJvgmgz@}9!N##m{fPM_1gRowk`6OP9_eKYK{S*N<9?ZV!Q=!*GL)1wr2)`! z{tpd;Av$JNd=>9Mh2#2OgykxZNr$?;ajp5(Rb&(?MvTxpA-jVrZng;{ahpV-Sku5g z2f2Qj8WwsC$1y5l%uwj!ifxKqL-KvkP_wy`wp>)K+_D8>2^MtA%Gpp=^|D^j3*`aV zCT=IdAscYLD=r+#O@|?fxMv$v{~7kmlmwucwBe78#VU=|>vO%4u~_AiT$u+Wr>*^~ z)dLfspL9DMTz(jiJ`VZ3Q$E;RXRp5TOOdbGg?jR{`TOExb!d=5`P$Lc+oNOe>+>%s=zV@1d=`Fe-8hpzJb9PiuS#jd{%AdZ F`3F18Fj4>j literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/common/changeNickname16x16.png b/resources/images/impl/gui/common/changeNickname16x16.png index 4a1befe42a4c64c7f1ab556bc277a558783a437a..cf7c9f18c70ca08814d9e144bce8e6b1f43faf25 100644 GIT binary patch literal 1531 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 j2zKFU+|=)Bhr*!k5nnaC-}>NY@c)=% literal 744 zcmVP)S)mv)~jjN2bVNuX>{b4ct zheD4MVGxO44eG%nf-r&+K@vTP4@rBpmqian_SB0;frLXJG&QZrxtY4_Wt-cblkV+l z5Yj}?`}us&mve|^S=fo*J@4$U+Go3_XM~q$u0DB0b^>_c-`RVHs@x( z4s4m=@%@fczng?kA0UluON&@ribAUKf;zn$pU3B)p1ty*yCC4%!;ZavH+g-miuh8o z2-4az%Jx?yCm%_FoJe+GYU}9*0Mg#xP8CJDAMiUL4Bfh^1LdcANs9N>8#ilShTqXGa5cFm>J>8N2C%H-rE z7-JAc5%G8&x~_xgdH8%jq*AH*f&fj^Ud3XuYPZ|%6h#sFCi43j85#K=i9|w$0K~E^ zbai!A6crU+Zfa@@2!ddQ!{Lyw>tm*Au1BNM!C)|$+!6o)s;ZW|T&}l#0000l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8oy6KF3)ub~@Wy;jaesfi`|MIrh5Ij|HEkda@K zU!0L&px_*As^FWLoS6sWgQ5rGTbIX&lWitR1GjH_NnPK^7c`fZZnrFelx{>T;nH%koe z@ZZjRer?L@Iky)vi@!Vf&hB~j`TmDdYs(r1cDX!EJ8&yWw%3jM@b>l%wM~0HYda+r zTsS=0cW`gWd;a-n;m(+640AkwEs||9OiY}wKi6yNx=%mbCrF~~p*uNO1EaP)uaH~4(6jjyI? zZDGvz`&nC60@4mYUViUu?wycone*b}b_QmK?9Hb-H5Yf8f(l4aS3j3^ HP6@fZJ literal 861 zcmV-j1ETziP)#S}8@Tf{Il^ zu`4MST(}Z+QJvyKTXj(tq1`B0Dheu!BDxktH*N$gBKS*d6)SDjGBI_UG|6OsJL4iv z3~}Ls!{fbs?swmVN13Jx02n+!c9ylf4|tqxk~PIk1ILd}ph~ANT5opI30 zt$|~Q?*ae;fD=O(w#;U%=RT**&Wz^X&)9v#)y*8oS@;}%@e^-$^P+7V?Ffzx4W02- z0J_O;n@ttiuit-TAtORFNE^p-Y#BgUXIm<($3M>S_$B0_m~6PtTfemeAbR#r+)oKX zpA%LKfh=ZTjgOD3Wx&|w(GMY)_9hng!fv%dUgBr?`Q+mYKr<|nwNan3bAu0E%^pMo zo;r@>NYxXp^>q$f)EtCJ& zUVL}0@5`H~U6Vrapy_Pt3Hbepgc}fB6ZPu4+H&*8wTDbHx9XH;cXc}@6{4&{lr!%6fho$$%7Bs?hCv`0-a{nCh?ggqi>f1mlo1AC0?R7i&)XnM+RA{^x@?%R+3d}X zgEi6_Nll27TDgU^%8IE)uespZNLefaWHeg|zEUqrD)OR)Oh!o4yS8t7L_^oD#Ne&8 znj*`^>Dc^jriXswYY4jFkA~10r;WK^%Il>fHAzFB)#dC&nxDNt_3?E-RsPClJs8|| zq}TQ0x{YWw!p%Um9dHFOCs04{y`;N_N3QbKd4d`x*!g`nqR{{VO(_{btlo^aM~p+Y z`F{WoBDYmGnq2aVLT{CW@#_rX*F4p}3xrrH3L zN>&lz8AC0D98gOWN0&h_hWRUcz5ol^gQ8{`r0V&Qu2Ds34D0Q8tEx5%AYKGz-Ha1A z7B3OFUWyZsN3(RcDuarCVA2LdlLL8ea#RyaM1LRN>xziL08qtUW6X3!H%@HuifHbc zDFWYcfunJvA*zra#AV9{c$5r>G@4;>jw6{!l;fC3aF%9RibgjVVj^Oc6ImYLya*J{ zE{%veCA}F7t>Q!l!m3D7wOWm=g-OdUQ;Z-89tX>YkVnXwFrn&(OsBiapa4g+^(xdY z6ZaU^qBRcV1X9{a!Kh}lTg0ZbStwL8%2lfrL(-ICczJDjJ1__Sma(n3lb@&pDhC{E z+}6;3jC41_sCNGy$a6$$#6z}@Hbos%EN$EXCd?>t0(~J%dPz(xe41hS2+gxJ7h@QK zkHwObpa^U-O$%wM$*~=lW94*;i$;=sIK?n2CMiimEFv*sIwi=o5^Z8LrUO+|1I@TP ziYwE+K!8Zr(sPTK9o94OGX-*U~mLsC6cdtI-X2*o=H7(V&L@{1uXtZ9j7lHfMOh#NPSL|1Dc zJ;m`%RfpxMh~oy4m-2JxMH9cEc3d#$=aBYZLb-csnuHWO-3O3e?wDa}O**AlK weNHh*lkhicUG@L+p&!vaGI@^weoNiIb}stbI=66VUV@c;k- diff --git a/resources/images/impl/gui/common/delete16x16.png b/resources/images/impl/gui/common/delete16x16.png index 8086c8befbef3919107ef3be737debc648e2d98c..87a3d2a29e99f9580331cabdea8da9bca6ad84e1 100644 GIT binary patch literal 1404 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9a!3HF~Pw#sVq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1Ffc1+hD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Keo`G(%fti7VnW3Jc zv5C34xsHO7fuVuEfswwUk*=Y+m9dePfq?=PC;@FNN=dT{a&d#&1?1T(Wt5Z@Sn2DR zmzV368|&p4rRy77T3Uk4Ff!5ws?aU2%qvN((9J7WhMC}!TAW;zSx}OhpQivaF)=B> zw8T~k=u(Imatq+b<`qMO2^e7d6^RAATTyALtl;P{bldG)xGXdO%EgvITPB2|qOtnA(eg$$E>Q%pC>>#t)t@jv*Dd zriA!Ja$baBXXb;Fj{>-`iN-R`UodPH6hV z9>L<6(JCFj@bLtr$0h4*6D8(Z*;*8*-#fnZ`uUs0ZkqG)S%C+S^tIBzBA=XuJ0EN`U1q^|jrna^ z^tZ{2r9C#dsC?O=^ICEKd1>L!qMb2pv*)u+462*8Ec4!_sE&)3Oj|?i>XGj`>dH<+;*&_Wo|F;6?t!qE$z(h8*)5YJZ<-! zR`Cs-!d;hZr;(~4b0S4y!HT2+PA#7}!|S z8s1&lxi)B}h%wLNg_*Mi`;W7K5}3NS>4D6QkA)j^RjN!UdhGeI)AhmJ{l?S0mim+w zJIu0qleT%KyV684ndw1@R~00004b3#c}2nYxW zd+ zliy2IVI0Pv_x0>_bRq4mDGXv3awtM7iL9W=@FplDy6F$_qCX)2fV>c?cF|?LH-UFy z3StpPWWNZRrYPpfrmZ&hY{yOA+2--=yx*=SmR|U|em*?U_u|Wl2mla`MrRGf@N>?= z7=x4&QcC7HPHuE`^s*4bK@}nb5n*6pAW<%t$#q@wJdYg5p<=N}u~>|ThK9_puCC^4 zwkDlU>r+!xFB%#e&KriocQ<*ShfpX4P1F30vHK$(pzP%Pe0$mRR zO&VY?0tE}OT>uOKFuzPzDuxnu9g7qH>H!?i0HQNPPAZ4*8x>hNv3o>n(j zzU)Xsh|-fsefcx37ece~B(i1-PH7!pr50Q{hsH=VYV(thl=9V%1OQpfdN>h_J-yZ0 zS!0?Jn5MbY_G5m=GtHGAA%p|~R(%Zs=2TTZE1$l132tfx2H bSIzwe63Z!X0ZyJH00000NkvXXu0mjfsRuI! diff --git a/resources/images/impl/gui/common/desktopSharing16x16.png b/resources/images/impl/gui/common/desktopSharing16x16.png index ca336dd0e23b89646f1629e95ed33387fa579e00..9a037095cb3195c6cb7fbf71b8d4c1ae1e91e441 100644 GIT binary patch literal 1280 zcmeAS@N?(olHy`uVBq!ia0vp^f8U}fi7AzZCsS=07?_nZLn2Bde0{8v^Ko2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1?ON>1>eNv%sdbu ztlrnx$}_LHBrz{J)zigR321^|W@d_&tBH%bsiB#vg|nrbp`ojxg`2U3ql=NbnSqg$ znX8K*(J3ovn(~mttdZN0qkX~Ox$iU#%Uf@ zZwhX=nBdf_4|I$^C}NQ!8YToxJs>7L*#bH6grAxROzlO$WGyY4*1*8P2n+$okcwMN zrkwRVlSbR3S<6|>Z;{3fHx!$;5_4j*%HBE9Aco*K^uw{47!~Ibu zYjx#~PNvMhdGr36b8kXkeyw_ajPug_@1mhKCA;tTTP=TDSn#8IZCJOElSOjR^uJeDy@;H)@n(+L>}4zc)F!LX zsMvgS&*M3lwf=A3r06O1Xjh(v1WyrzTw;)m0mHow^WL|1d|~WxUmVzQrFKTf$?vka z*0lt9g+KmyV{@+c1|4lD!%CUsJkjQl$|mhU@rtqPBYV@U;~usLy)K!YU96F$u}mW& zuHi{fjK)OA`2y!ZdkC;-E-KypUXO@geCwCW7EC> literal 561 zcmV-10?z%3P)+0Zdi!P#X^ow`87F_rtQDp8IF%-9V_UD2gL|cv!ry!Vep6ND<$D zo#M(AAK`5NX7K7@cax`&Kd;Zv>@ol!6or0D#Fz3qJJ7bs+$xQtYopDFq<}0KjbQ)-oiD+mK~#kD#)-px8I{VhB;ZctE*&H zzowYjNgA+EL z%ako{{xUlkDU`rL#9$+5-3^o|$Mtv>x{t4Uj_sL{R*pMxYE@rmi`YkOCJ7QI$O1MC zlQ5MQMRA4|00cY`cqk;GsH6l10Ji^dRL!^QN=4QBTJ)6TnuK@?&xc`{3{y$$H+U$^ za?BwJ32KoDIxaDygd0o^7*rIPzU>hkyKKy8)Nq^RIO^#^2#%-gLt;1RCyJ(wj|`88 zNx(Z!99PdeAQkk_jU%mtYR5x-1qHb6o3tMFsR5Yg?s%ctkb0wB_ib7fV_n5&+d(cV zt2vJTNm{n0XsW0|D5ilZfUE?eEJ{)#FRQXp(15Jv2OLLX0hB;ml8RC>pN6mmB`qc8 zRYA-Gp^z=9Lu}a%h~b)OplegzKDKZyRw??(AlR>BygulF8vVbWHnoo1+I^^{wHTVb%u|d<505< zu4o6w+hOa|!*F{UJTtj??>BQ|l==8z UX12AndpaK2a%o9@URb;T7onU?%>V!Z literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg2?JUk71ECym(^Ktc8rPhVH|+bp6S)*6a+fzd#r9#0p?5RU7< zof|n11xT>H_ujI}TRERa`{(9{h~2Hu9Ab|ww(%+SO=u5wSW`Q<^+sfknBoId_VTU{ z)enq38C#azbh&i#o0rhG{RcvX4lHFVn|Xae zyCLY5@zO7BV%zvFpKCja3MM^Bsb-$Tcx#(%l}pGU!#?>-@3oV3#rbP0 Hl+XkK?DAMf diff --git a/resources/images/impl/gui/common/envelope.png b/resources/images/impl/gui/common/envelope.png index be012e9e2a757a03593e6285e70416d93e1bdc0a..ce802a503579ae78559ea67c45b1a98384508906 100644 GIT binary patch literal 1249 zcmbVMUu@KL94~6*oa`XN{D(8O;{nX>+TZoA*VY|NukEo5yK{Ft;%P>pYk%7{Tic`U zcD-o=4&ufGiIVuBnI;M$iU|)qh_Z+%N?g>ChzSfIh-k88Vg^|Panb3o+uihG;lZZu z@Av!m`}utT_i$HsM`Od24H$+sraPoOS|34AFz_IH6W2P=pydfyF1p=TpIcFEhzXk2 z3-Pp}^us(EoM4-)iT10uM_r+GD2fmTf0|Q)B)(?y|7<56U5x) z=LD{63F3uVhRT#hSkgO2Y}h@LEvO>{DyI?c+wnG!M+63R72GohO^5dq#1b!$_P&@T z@Ff*@AVDlURm^nZqGdxo7N$cg1pv-4VGxZm3~0q86o`-%x|tA&@-c>w#PQliAZxbP z$LFO~%@#T(h?47;d6KMDD&Yzpw(Ncqa2)4zL?R)i5pt@gt9T*PX{j?v&{1u@?CO?@ z`;1DjHRL7;_qEO06PbrfiOp%7+$F-#GxOw=m8>?zNg=!g+dFWU} zwuK*G%bXl#rKBh%0gwTg6r;%~M{^P*vVfK9*tF@mimAf7T^-r2 zVa0o5dC`W7YuN?M8mxCfSIKfMr(~6Jv75oSW)xL7eZe-rK+Ew;(AI~cma;7aU&=7A zui`-xa6pW(G@V+GoTXS=kXf3cXn_#{Mbxm`|H&GOoFV=8_)ojkMW_e;?Mm~b!^-$T z6U~f`hU3HF=Wp+brJovqX}|u!yMN3_pRUS*=?|`+^jd}&a$j6IKwZ3(+w}Y3*39LJ z8|

    9sVIJ&$2vzAp``4z} z<@Q&9?flu^-W`4WQ*O?9|N8CDCRv!fwDa88A5E9;Q{K9IVgI2s$H%bond;&@Tc*ao z-!d_OY$0%<_|wPV_1xU^CY*lGTL`_9e!2PlCk+(#;*sWO=d!zg@qapLIV+t??j8LH D@NlWe literal 410 zcmV;L0cHM)P)+ zkHJa;Q51&%d+#~--kEFZIAceRy+-?1ZQ8aBdV$`+hYEzu1~oLu7Fsc*b6Y5p zAms;VbKv7UM_gUsoX5@dKB!dpm~|kOA^|Cd5E1~q_oYW!`sH#_6#3`J?0q(!j4tV* zb$T1s>u0Uw6YM~gJ#|6a-H~%)8n_x}(=nQd>7Um4We8V|QRI0l4J*V+1Clh}CIdLj zTW9(@gdmN26vMEDG_2q(AxRpru8Qa01B@03140-Oj0UoP7uMC#ND?^9FiarL3ZZ2H zKxiXG)qV7Pj|dFIdylVtfumL%Qp%r`HA|3Th0xNkPY9Lv3CeN_Kx_yr#JZ>z+`72Q zw%rP&B}j>KzFGVqDatvG23bdwx?pCvi&PZFd^E^9-zm9JmdZ{xJpcdz07*qoM6N<$ Ef|q}%!Tl3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8oy6KF3~uQ^`5R?bDKi6!|(A^G_^uoMuGkzbNu zoRMFk;2dnK;G3A7nFr#7q6gwzm(-%nveXo}qWoM1aQIqfVzD3SSpxos=uIIf%=Ced z(FY|Cq{IRf0;WI^6Q1;e9C+qQ%>(9`B4E~-&v#)p0|S$|r;B4q#jPci&u2?HiX8tQ zKGio!XEkeULdT8{)g=Ag6TT`fEIsZYHC`@E&|g~b&TlL7i@!p^scOCY(hAMiu$N~g zPRa=}ZE9KLSr%Kq{QlINn>Oyw^k(0;$9!|X{pYlM(v2S_uV#g|+-%dEb@rL~Gkvz# z%r~1W`PT|Ll|;0r-jroH|DL(fE<1n0@d*qExYpRr^x;eRSC#JLR5dkD1n-e8&Qu6w$QSNm5}#k~J%x4*d`$h)ihW7@LJ z{DIY)g68E(y3@$G($t(R?ppc?`eo|*~`@1$hl8k ztL8aLl_BYut?2oU2bIk4=9P0#uUlUJ>u;UXOrNZ^Vci_{H9ZmxGjDv@6{9C#yVr*(f}@BJ6sC3{MbKFkT%ZrCAc&x#52OTqu21}f`bb4^ZaQ6r6h)1+aBpS<|+<;z#Zam+uFEXz6*hT&tKPG{iz{#&I|slxw6?BQy)x)6rp z`#}&8MG>}b(`YmvSXx^8?7whwZ>ZI3M-9Uuo6VxCDuqG;UDub-ZhECb5Vz(Jr{4v- z*TkOZ#iOI6Tj0w{iNZxeM!C_nA(YS3Vd#`Q_!_eEi0}?o~L7qIcprKDD>T z_l=m3FV+wIwPj;&IcyKaOiIh01m3&?udJ*jvf1pNmSvsPb^ReBM1J*?#(2{-4@o;) zNc|28MQ1nW!TmT9MUf~Liyuu-PoLH_?O3zfY?-F%_#wCcdf8JX&mpnXKsulhDcbAh zM@kp|ZO-TOj~a$?+_r6m5Q?U0bLn)Nhp!WC+G&3B(-cOE@sWv}zWLOY-@D>eYin!Y zs;YX2EX&BUOe&S4);BOIaJ@X>;Gl)y>+XJD_dfK)_=M%luWr6}^bA1K^E^EaLo`i8 zmSq~d8Jfu(NCB7H67A-YiEb@%>hS0ZP1o7j{OzU3pZ$8~V7GBR>ALP0x~|`*C<>A! zac*0uF9o>mF0EFJ+2A|wnVlx3C`?UFQLooAMCX_Xr;~9UKQ|l>fAM|)e+%-GP z!omX2FE0~C5x`ehVF3Asiz(6Hc}ns-Gk3>7+<&vM#*C2>CMPF3cm6y;1k7C%@6Y1m nVggtOo&atHszA9?shs^Aq6$XebngRV00000NkvXXu0mjfgzK4p diff --git a/resources/images/impl/gui/common/hdVideo.png b/resources/images/impl/gui/common/hdVideo.png new file mode 100644 index 0000000000000000000000000000000000000000..e3175f370c934b39aed72729cf4bc43581715722 GIT binary patch literal 1482 zcmeAS@N?(olHy`uVBq!ia0vp^(m*W1!3HF`9ol{aDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49ppsArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKW@b!fooL3ADC}5E3S0onb8|oS8=jMX^1y)^L5|oN?23FO@A(aKG`a!A1 z`K3k4!1zd0hG_F)=f9a? z$S+WE4mMNJ@J&q4%mWE%f+7gwUzgOP%(B!Jx1#)91#k#kWny!Iv6+FTp^1sHGt}n> z7RFA7#?G$hrcQEaktacfVgt^c6_k+<5qtW$ruK1$G<+^Oy7^N&&7On7cW$tU+0^#u+I z1%(%4+0)q6*oD;Ddzd@rS48OK&VN2L`cshh%EqF}%LU5ByGr=}mwCgo$;hTIdpii^2&krfubZ z8K&~E;7h6Bx!Q!gk?XJDKJ=O8!~avi{??rXxP>6t#yb_HmxY2TtQG*jS= zSAx}9%lAJ$ci+8NF0PfgZtk+_o3pmgGI%3mp#Sx_va`7DW~GUpx&qf31uLFR?B1QOxY~$(JzaS;T9e53k4ro-1)sKE##_^rnVrnygILq n@hz{pzm^|!QFBSJ=Qd#Y8Gk6dc+vx5Q0eOF>gTe~DWM4fWf2xI literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/common/history16x16.png b/resources/images/impl/gui/common/history16x16.png index 67ba572f506495503671a9eae2d63e981dd6c36a..30e70fe20f626d0d2150e30053a59c2bd50712f3 100644 GIT binary patch literal 1609 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsVi#*xbp{+{M7c+0oF@(AChw&Dg@x#mL;uz{ttW z)x{B}*Cju>G&eP`1g19yq1Od4wKQDi_@uhqHIC%Q!x$pblf3|&p-@SDA zUCs5^y{CIEHJX1ueYsl1+p^vFa?F-9H!>VoWRETxD#66tx;>VE{&#$YhbnHL;@WZK;O}DRReRW)X@j*wQ+>Qsb zeCH25Xgiw3c`RvT$Hj~g1D<3BuNRX#U6PLHZI6CZ^z&=f+HW>ey>%_C9KP(a>pK5D z`_bo?$2-d8*g56HA}qI>h9~-)>hN0UZp`=Q(uX2xk@P3dM*vhKlStzU(L4; zd)G<6fmaxHH{V<{YxeADaSoQ{0S&vACZ1?q!Zq{*jD|Gqf#wVLe^_$}spS-*gh zna!zX#?y}#JfFUZDM-%9;cx0;ef9N3zuaX#2kREwqEFoSg;w6#@Haxi;HL8pnW&~i z^OiI)FV+g|-6YSsBy6>6Lb2$fCQ0_piF;j?cJ_RmA@|goUw%i-I#rdQicf?l{TBXv z=*_!#p8~&$oO-`4YORpUe?J3>KX%h5UVdqFZqpih%bg8B4Huj?&oPVkS$}=G_Eax{ zbhj->Ew>zDH+kFXc)$76`Za4#e28tAxcu^qFN4$t^VKV^P5jru^h1#CxACm6w*Mwe zO#D1!>mNlok5{!8bI+z2>7Vp&h>3aAIH9Zb#AyYw?)6VT|8z5(UE6iRzxn55yJL3B z{l^clzy4ZP!*#NceNiZP`{B}m*>imvsBrgm^>bP0l+XkKy(4$j literal 971 zcmV;+12p`JP)JI9ORsQ6w#JU1_o1!gjW!*mo0DAPZVdyZ*J$Me+9u*S~4_w%uxC0$WU*4cSjiT z#9fFmv_^ELCk>G>)$?*vony(FM3!y`kz?TW&|8mss-_akD-XF(~25CTF7 zNQ5EUa}d`qodk6&P}LT^Jroay0xfSbN~C0WM;MBtVBZt3K+`n1t_#bu?g>oO1m_%2 z9(@m<=fN~hbajN`=kg)OC<)2b#mcz}sMLWLe;L8(0ob+;Aq1{3uH)U0zX7Eb1F_6AP?L>@IL&0KMccwZQG!fBAMvI{+=jgS%#{rP!t8KdIZ&K6)S}@8cwssgzIJJ z7fUfJs@PgM4SmmHbj1&Wa}EIDoP#k2&N*)W@e8awvv}~a*D!ypgoY!sq`XznWTtW@ zDz`w7K8-#5`tbY3Daf)6d;Jb7e_w&7X}Iy*Sv-<>3W3gNAW1%Cre;g4WivyHGvoQ< zhBf*1PdCiA&_lSMyMV^#5(puvUOfeA?hE++eo#@xitI~r tnS~@tg3}a*h9k18WixYo`gndj{|~Q#Z>rG9h#mj{002ovPDHLkV1gGb%3A;c diff --git a/resources/images/impl/gui/common/incomingCall.png b/resources/images/impl/gui/common/incomingCall.png index bbcc12cee8ed788ac51099fbf25a31a2b2fbc961..993bfca584cd3c8f4414d3a14a19ade47f68b086 100644 GIT binary patch literal 1706 zcmbVNX;2eq7*4}sK&es@1QFJS0Y%8}CLz}lAjy)7CCCvK7^`fu8bMu{bc#Aosv}KY%&x<=nJf&N#fpfsSukBDK?7PM!)TU)!xt`sfDxC0 zYs1yB+M*;3#ua%Kk(?K=(dA|8Bsdrq2}IbW41tNDF~DZZGFzoK892!+W%hP41Ok&P zbfyfPawnzqH9WT1hjEm8=|$;sj7@VO+F0U;8J#LmIvg)tgo)?71<*}}}$fEfmqu<9tI zg*K9Az|M$i$!uB%GM-L_V6v#yuZYdo=|nLpgKU@uLbxzwGTGyr)V9(|#J_I5R@B6&Y`&t0*H=6f6rRb=fAuOvj=!kom&Jjkr{Wic|<9 z62KxJEEFS%L?jj~b8xN>-^2B_;YASLuEauB&#C##lmkX5$3{GS5|C2R{ zaR#!t$A8*oM#S`>efz5UnZv8`AFtevTKB(eYG!Q`Y^nCDZp?RI zZW!>_4n!YPRNNP4AL@v@QJ+zEA%5t-YF6a44%zsDVcCO;iTyuYPf2|DOmKwo9qJr9 z!I7)_A5)=#JomD|{dsjm1t{pk87UF(TH@8W|JRPK>Va-4dM3i} zs-`w=ba7LVtb}Nm#yPDk{Hz$Q$gEAf&1zhn=<$StzD?A%>H5;)Q>#M?tBd#DczB{& zTkTZ^pxei4KCV9L+Jd_^Ew^mrUi`EZKiv%?&(+wzgiN&aKlr?QFd1MxP2aJv_yj9dvb^UH{Z|_4*$mmBsOE>9}5g*xG z1)XcVtF0XC?K}OhC{i3>@t~-vsL2*Otlv>5yIkGWjL_v>hx*ychuIAda7*B^vbKBr zEs^D31>OULk@AY}+}W7(3NQI0k7E}d9<{oDlHWEwK9R7=ds*tWdksR7c;)=)kZ6{4 z%wZrk=&M{mj-%&DiSCy%mjTk>QGRxrb>dNxbB#C3j(D6^*bg5WDtOUb(`E3jO$i-L zJF(HXNr@lnS??lJA5RJ8hC&box-8Nh2a7w04wqds2%fL0%tkA^-MV~k#s$6;%UQjz zJ!r(LT-ks*?#xK*oU4h`UPf*m-BH)^w7%xxi(}^J2?0TqB1&{}VF^wg zNJtboA`%U;L{H`afsz8#KtY8RHz`u2L89O!r*L7Mjwk}TNJQ`@v5kGcyS*Pf^HS{j zFR;4dj~O znvgV=KDWTdsQDB%t3rMSSjv}I|9t@*S4!gq+56G#^^3veoTY%q>EI-WZXLzXg=;?s ziihyv$n2M+OJBYfPJLv9^6)Tx`Vd4|ZVW8E2rM7=2ZuEc#;-1>(6b}3gv|KmAXAu3 z^UWYL0&p{~lokN2`P&Dh78M?5uYEU7lrxfs+X?key`+U z%PVO?w*kIe1uh4`e0br*Da%cqIor@07EP7SCf)}*lo=1z?YX49Xd+#7%g5)jDMupl}X zgs-Iu@?eIZ|AKpVPcGg+ei(`o78ZlT+a}-YtHQ(N6~diOllHNhFTh^u0Ra=*x17OW<-`nyBfA--<8`MVHMmhjmkULK>an+2@$vD>qr~+#y ziMUc)u>8!O?3Hgqd`HxOM{W;%%S>G)hnWXS>eNV*bLyLrYk_M?orCn`!Hs-*_3lx3 z`#F65lf`KEb35%wzu<1JmFn>}$gkwft6#yOjV-yYUmtZhe-cUkrHe@tOYsiKKL(Z# zH>>oWZhZV&IjhJOz{00000NkvXXu0mjfBK^7N diff --git a/resources/images/impl/gui/common/incomingCallBgLeft.png b/resources/images/impl/gui/common/incomingCallBgLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..494621c99564b4e09c28a780bd2ea991a6c32bc3 GIT binary patch literal 1102 zcmbVLOK8+U7!Foisg`;XtSH2YeW06Ul5BPpy4r0Xy5iQlU2t!jCevnWOJL#AX=n>Uf2k&Fo(hzv4vhTTw(GSm#OjQ6pap~x8(G?bxcohs#fNyQ5w znWXuI$pS!%A`OJ3D1wb7#{!OF@hc{PASXqcOOe%w!qx(7KrX0y)fPTws4_yn%rKQo zg|6_l7Ys5$lBAe};}TdS5stdZh!SqNuEwCk&uE)T-8W`tpVMDPZ_D0?j z*tjUhuYaH`ol_cQ! zq@L{7^lkt&Af?lyA}PEi@O(;5Yc*`n4UyrRux8iBcB@!nL9DC<&_G^L^t|C(2lSRb ztY|k5}?Z$$RxInYePn)!Su&=?eQUa|Jn1G6ZG+mT`PXqHyyio-~uRY+j;&ZT6y%^iHEno zKD{*AB5ogg^!>rvAM4BSu3Sf_-?v2{8g@6dtl@W@*?Y>p_2Bb1`-R=ScJ-^at{Ww7 mY8*_w{iWS(Rhr&RE?P!>t8cw~hp$8Ngy*y#^=9{;BYyxf9AlRN literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/common/incomingCallBgMiddle.png b/resources/images/impl/gui/common/incomingCallBgMiddle.png new file mode 100644 index 0000000000000000000000000000000000000000..5cfd842434d3d6f6ea1997ab67ca6a241192acbb GIT binary patch literal 1018 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 M07*qoM6N<$f(*vyuK)l5 diff --git a/resources/images/impl/gui/common/leaveold.png b/resources/images/impl/gui/common/leaveold.png new file mode 100644 index 0000000000000000000000000000000000000000..a61219d5937ca9e6f93445a4d794e9df3444c782 GIT binary patch literal 1609 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 HwFUnGME8RR literal 1108 zcmV-a1grarP)g z;w@jaAK2F)8|cO9?ZNJ9Cs?^nb?zG8^;_!YRtWON9Prw3W%=x;;A|qf1sHEXuo19Ej}y8sVW~vux&)7#*%G=kEh&6Ui+m-g186)syM1 zPd_DL*(E5sn}S2PjDLHT+RQZ#%hh=xvko^Kq95P+_NkqHFB}sw(lqZIEvot8hnSc{ z?2#1W*lA#Vec!C-wEM}S6TQzL{cj==7HiUz88S|1%4irN0(MUa!0~J%IRap^iDakU z-Sy?8pPYUusDHC4{m&ec-lHSze&ZBQYnLcsYzq^Q0i4MulAQ)PoH{zv7u(jiDOe+= zKDQ+4mtT?Yp&^XpV0Ct|`>i*{ZtXAt5_16hfx|X%sN>-N255C=4sYc)E$Kc0qPjpO)KrXl08#;_4KVFqxY+ob)X4gu+sV&@HRKRKQ;;0vsEzET1(1 z!-d(irO%op+(3W&coxbk-a;#xQP$&URtZVbe z(vIf7{r>9gJ0EFKXgU;{TCiHy+FT9|qj_L-ef=)@j*e#Xzx?{$UnfVS!nvtUtFJ*w z<yM|mOKe*TyQhnwP^7+i13$N-exV4FKHO;f7yN$> a(|-VnpYIV|ey{KV0000-0V*4WHqeMoY8q`pHim*A z4jtzQipZt|5#02cA454u{n$KZY?JB9&>^6wa>rD3o;|g=6sg-Eo_{Qt%AGKsu30QflFYre+~P zTGhfNxe+uvbcBsul*175Ii>_lPL@Sw6)u<$M7vRrz)r9@;I^-#oTytZ9OOm0yHkNguQmM=3lDMKIG?OWXR4SF9Lnae*8e(TQ#o}%;<(w5@zzC;> zAssA9Q-GflPp8+gY9Z(8s}SrCqwzH{BmoljvcSs=#D7D-DaSduaSu^pk8*kKh zCS*GZshM!nYZwbxkBnIXFqgZx8}ci1-k?huk}C?n3ZpG+>;%OcFtw2TBC(QI6qGBu zEGl47Ap;R51SuiCJO)NEnOub-dX+4|@g^)R*Jxmw0@lJx41)BKN~?!r^fE1|(`sN% zj4psRP)-)7EJVOA$=MykM!gk_>KFoNX(oZDR|Ps?sf}i7r;T<1x_AT-8F33q`33L$ z3-l^pj9|#Mgf)ht?Z9A$QSuEQ=s_KX=^zloh9U=*Q7Ww*fk6y`;V6Z02y6X6S(9?k zNd4{cpLPj|xE}OxUpGH@cs)J@#mx-E4aXy-se;EFmS?~;3GR-{51X?l;ZuJ2Kzpbx zVn?G5g12oJOyvt_q*V5FeRUoizuk07)PB;N)e!WJcbq6v5V4HeqdYG{i#+1}2gjq~ z<(@z0U2pL{%R3;8yo_g}3R#Bf)443EMjER{x@ewxbKrmTu7)&`9$sU6bm4@(`RNghapZ`vFW(b? zocFsqs75g4CR;9`s z@_SVKs@oU)T>Qq8(mB9^OYw7zaZfbG)ORNy4)9K|RD_n+?z&u_2s`WlSYM@`meR zlG`_S{=j8HUT}NY^ZPSNNTe#d5bMcU2;J?zQ&wWE?wO{)mzX!9DDzy-#F3&IsbwwC zHTuHkC$FwlSFewQC3SrB?)ykr+P3$0eRgKrrWeb;O>DYrI8#+u|12dgX!6#Qyejj{ z8I}k2;eBa83*zgptfprExTK!!s0cSyv+Iu3xIJxGdJ9d?xEJ~LA>I;XiF#k{9pf_QMwQ1}B0UW1pA^-pY literal 792 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 FV1m_*UjhIC diff --git a/resources/images/impl/gui/common/noSound.png b/resources/images/impl/gui/common/noSound.png new file mode 100644 index 0000000000000000000000000000000000000000..593ea2353057c482bebaa66143b1fcbf6d1b9c21 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz6!3HEJ^yqE{QjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sf9ZoS(2Hn02MGc_P9Zwg>5R21q zCt7nI3J`F8zh|Pm&=He5t4e_a&akE?UnVonprs{@VrJ_O)uwR2Q|e{p+`%GxiA8A3 zMvg@v#aWIr2cLOwbceBy@BHUiskI+_X1v~&s}wcmZKt}Pw1?(&7Zdh`d$U%@YX91I z-(!*sgTu7c6p3RI9ER){)RhXw?%3+gc>dGz`qxd(D~0&wAL{?G3*SFyS*AMAVLb+e z%>iD#zL)11758_%So)p$LDD0Ob1s*+%$!mr!qUi^P+k7ADcSIm#XXIs*UsGOS(L$= n5Z~#(EjOAWO8(|RxJ>r|{mJ0z>gTe~DWM4fk#v2( literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/common/openedGroup.png b/resources/images/impl/gui/common/openedGroup.png index cc7bda3d6405d0d7ba158dc62873e6cf849dba2e..37bec6a3dca6371542805a23f7b3288439ad1bff 100644 GIT binary patch literal 1232 zcmbVMZ)n_P7*D%y_S#K~jCLCcAr(>PUH;uAm)O|mE|>1W>$>aVDhRt=^0t?@$s3c@ zyOw=uWwNOhBIqgDwo)Q8aUd{$S=wQHNGU3v41~%Ry)i>*_8$nm!7Aya0wxTO#g! zG)Lg3ArVJo87ku>LD4)k>4JgDzMMWestX3u{RG}s77>93d<`#KW40%jC1QhDMDt*q zB=8Lre^erBq6RblcoMn*k44z9PSG^ZaS=Ki<2d>;oS|rjq|nWU>8KdvM25#VF9LaU zjUh3ssGGjfN+OEB?}#K>DwQH7HUiyYk`@FZ;9!_AvIu(fgw^O9(GN1DB73;^>GW>ep-PVj7krc-o6mW6m!rdcW_Bq=3U$EI!1*K8fs{hG+{ zCYHJ~l*fO{rM`t~Fqm!?KU!?H z53o_sxTrZA)z_k^vHngga<05w*xTOzLq4DH-*M|8{O04|7p8V8in4F|bVJ**LZwn+ z9_Z*ec6EOK)~8cDu`9RVK7anli?g$jzt96%)4$sWYRIj}y{SmtQO7H8v mM|aOZ)pNY@l(e{lHSWgXo9EiW%xa99&*73Zs^>h^=)B-Ei3caQxAo-Tl7r-S>Ikdp1`Q zwaUZI-;G2fdB`HfN@DdP9^ct6#Jd$f?N}Dz5;Y!!CE`}Zgpyz_mVg2>J(7efQAC@O zb`cFDk!B|ARBBu;kK}7GJr!~2P;Gi6fhLi{R@#h+CI!WT1T;x!5RivYoh1W0t$-ZM zmeb`%5t^)vu$#~rdz4CJPtowS)0D}%PXmsL+C?Jc^hWHE)Fm;g$YbI?X zUn!PO*&M7h5<)x6oWZrnn8@3H71=A z*I@?0!H6Va7F<9kJe>?dZjBH;}`+N2|jf~1NujYW?daG6*@CcaR$IxSx+=14)1 z!=iH-bchRrJPwyDgn42fLnx*5r0_Jy>#!miVnd*iD-;POASeNOLJ>>I;xTz*NW=xX z;%ThRV8#)H2A#I6BkWFLId8=BMJ5!%F_Q|zQl~pWk&NM(IT!tOFkkl?4}>5O6fw9=rgSoLE}hGSC0r&%XTp#Oq?4zx+W(U^ z8sQAh(H{S4muV5vgO2U1<|huX#s@VJGh-r#BOrKlA2D;YWMWul>)o@bGsPSBJ73rH z;Bp(QcTaJB#9GiJRJ}A#4#R_GK~Cq$2M%uzrv>?7_T5USU>~PKW#5)|(UT)PMaxu@ zWcORe^)61XRN=_CwJ(x|&?9DAcK>&~((e|PoUVKM_$B-MizlmI{BoE3Tg|w)xA#}Y zKhIdm{@Y2J^3n00hqIk#I7h~A373CptZZ*_&h;J{8F>&_9a^bR-?`K4{JN?nnA7Y` z+uL{SUeBD!g4T?N%pgx2Jvs+AlJ*Ds`~Own(lREJL>3G!Ztm^QGm-Am!w(uWvk=0oCRImTj6%@()9I1YpF%0`%6knZr{EgxP5PB;i6-Q z9@xvfB9L#cUE1xLshV5r=8{9}Fj*|4%=6sgkryt{>}Ss2OuwIGwQ_tuZ$H}I-Q7~S z`iM(yaD}X?ubS6(4T%cv+@U^jx9uBp`N^WrejPa8k=@pxGEaCV{8?pGg_*M{_hEGSjcv~}3KW;Gyp1OQQ29JK zjeYQHEX8+Cx1q_CjIX#8Kyuk3Rj*aW&n%tWs9XUvK8_g7zdUdWIQY=3aci&at^6OQ z^Me!H##e~vHx3_GjK_yw=_SQ$G#XCeoC|^-aV2No3IFV_ljoqs%ekpbx$JRXd!6gz zd+*J2Evu=CW|c%%_(d0dGS}#eU-Opk%kn#LRJv-F=E;c~vVZ0#1i4oT%>Luis6D$U zWP=5a@@mS@skl^E6?ng84TVCfZtH(~s&Msy+JZ+ z&cuLox%@mT5N!5Z?d!I+Jz~+x=7xq*gqB?`w3MyXdo|j^f;gs4#i`o59xXR;ERI?v z@sZp*zHu34){@Z1n;pACmt=okzYuN=ad$h{JKR5Bq0e%qlfo*ck5e#5Bi*&n*aa+ literal 1095 zcmV-N1i1T&P)VS!0l|fJQ&)we^-nOX>e8qIQ4uUyr65Ks1c@mTMcc&wNSY?oq)8^3_h#PA zd-om}Gm|FmG!;B>H|L)Fx%Yj~<9n2dP%DxHBP~E5a0p0O7QlFAjRB+iq5id6=T$9m za$w|e!qXoe=t*>SZ+Gcv(X=KNOMc9a#fbS8BblsWC9oObM1H9M+?L?vz(^Y~c%Y}@ z_&YClsKx~NVN9+NHT$zi-ScZX<`Jw)m`@qS8k+y`VFTMT3 z&YqW_Y*9fmCKpCqf^(r|**9FxSP6tBcyQ)xhRTw$ST4-xj0LPL8 zBZmQ0!y7-fv?krl7fv7OYD%DTVI+PSkqhrikqsi2{d)D*^Lq&+OIWfLBE!w4BHvHk zVRUN26eC#531LJA*sp=USDxzFxvR~4pa70mhy?P(#2pfzrZM5r(%@3>Y1Rq`w<2hr zs{p!yJ`Ef?*wgq>RToyZ>V2dc*HO4y;W-MWAT}1ID#!0q4!J=3V5;eXz}N`Wi(0*R zME61c(6a1%>VsEPXa&ZCXdx(C@?jYm z3sQrec4H$HB8#IpL+4i_n(CX?v6ng#z*s>LRs+MCFDF?EO7hw>-O9w9UtA3hjQ=s? zZ@TrbTSaLzTbs}oR|DzRDF9F!#J7XFc{r0z|`AgT!a&))V;pj-tPb?C}mT$%u_-T*n$PM`kbreyQw zPJ7P7ZEmd~GQDUqmKoq=HNOt7_-OjaKUY70^W*FGmn(klnN^9{2$OTMOwJo3!!R4X z7`7Nqz}e;o-L<#fQ@dJSwl{0CLCow@%das;T;*Y?l3qRNXWBSN`knjb<%jg*MM>4vA~Kdr#!LhwR70*J0J$F15=sKo zq$Jc6Aq>XYIGsvOsTB(loYb>1n-1HeH_~VZBV?|{h~aAp3Rp#Gbp{dZ#hG&~K&KJ0 zmhcsz!YCo)bYZC`Vo_>@3Qt{w3pK2{bAS*FLKEl-3IikKx5 zzpX$Y;zbFQE{V{{Or#zd&M>0;ga=Yk0-+KJgwT=5K|zpE%!hd(3iEhD!K@Li=Ko}k zLp#Hpl$oH`RT*Q@gWTK%$Vrm=&GnJU@+`@^zO;ERKC1$}KXpe66-Bl7vY z9(!Zr-t7&B>gdQ~Wp$a`4=hnw(Sm#HwL|IA7n?-v9-s3U>Tq^x{L{mwgW9>_(VkbJ zjY)9oQ2P5JbpTv-t8!vT*qcn*frQIjaAwamtMCNCOs#9rSypz}Yrg-^w>2d?mrGC7 zZH#n&exqG_l1?|hIIA%>KfARGl9tOn`s>sIXMeRCl5Su-U#)%Y(4`BX-=DU=eaDTA z0e1gHtYZSYf97mCwrky^jOBj_zE`Lck%#WyR;Qz2wf^Z5)ot#TM(P65>1N#ObFSRp zqjPtW-!D67De!d90ml%=oJ@6BTCn_7OMt(1Os#!{TXV&`n|l_%e96vxQdmxvw_lVV zF;t&X`!NSA3Y@MxHMmZiTC=?D?(}im?6fhpuP{+g&-iy+b0h9M7A&3&Y#hAy8=OX- z3J|V5-s~%w;XCAd>$s}zFW)c~-0WA{9Uk5JmBS(Y_n#}ni%(wNji_H;_bkc48MO&5 zlEUrV8Xojn|1<2#Ya<1T1>Ot`>sCdn;}@@^yZDJW^MVhvSURaaM)gGFpV$T5!TQt zc4`t8IV|0C0C-y;a<8sm5kBCTtu>~Mcg{OpXm6M4%ghl4GbiP@1_Vl%Iv$>~tJhw8 zsjGM2`v_g*pWJ$vYrNG0_x;`(=a@?Wmxijvf8%ID me(uoi$6FRWYW#8FoioUofG4$YK)TM`{wi{51bR#yll2cbXQ1Q& literal 763 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 literal 2826 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 diff --git a/resources/images/impl/gui/common/personPhoto.png b/resources/images/impl/gui/common/personPhoto.png index 37b38f1470acf6610ccf9b38a9814754cb4bafa8..c2b04bd5a1115ab61c190e6e8963e236f6cafc13 100644 GIT binary patch literal 10463 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 Yf8)M}Wrg0a|7Hq)$ literal 7055 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 diff --git a/resources/images/impl/gui/common/personPhotoFrame.png b/resources/images/impl/gui/common/personPhotoFrame.png index 265289dbe9e5737d2a68815961e2578702b8160a..fe9fcb55a9890ab65c58098184d84a3fcb6973d7 100644 GIT binary patch literal 1217 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 diff --git a/resources/images/impl/gui/common/personPhotoSmall.png b/resources/images/impl/gui/common/personPhotoSmall.png new file mode 100644 index 0000000000000000000000000000000000000000..0fcffe37e69b7b951077193c6337180b6d291e22 GIT binary patch literal 2117 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 gDF5K$(&oWDs`_2$g&U4z`S#vSn0Y@Hnv;Y7A literal 622 zcmV-!0+IcRP)h#Aazx(+GdA+l@(_G$qGnHdu zeg8=cIG+Fh_(A@*a({cebh%~#2qYQbSMEKNA6|E^JxS9`8vwx1(H{cCFidep8HQm> zR~o$_`FvqC8bMJMv|26n`+exTjzXb;cDs#Er-O32j7p_4|4$6VF!T9*dRC~_YS48Z ziA3VUshLa$@pv4)UT-Ysp`asU7T diff --git a/resources/images/impl/gui/common/rename16x16.png b/resources/images/impl/gui/common/rename16x16.png index b18cc5a42b052f23f8f4923b6587be9d0d7b1d68..c70be019f74237fffd756926fc297cdd5cc20208 100644 GIT binary patch literal 1455 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9S!3HE7rssMADajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yc06!V;*iRM zRQ;gT;{4L0WMIUlDTAykuyQU+O)SYT3dzsUfrVl~Mt(_taYlZDf^)E`f^TASW*&$S zR`2U;<(XGpl9-pA>gi&u1T;Y}Gc(1?(AeC`(cIbD!r9T#(9qS;!p+#i(Z$Hz%)rRW z%+ktn%`?F67Kq*yEN+47b;PMxALtl;P{bldG)xGXdO%EgvITPB2|qOtnA(eg$-4ia zLp}oold`9aV@SoVIU&B;Qh_3K`ArwQuDOvjB}LHS;N0$#K<;(Tku5<6YA=-nHl47F zOrPqjaN%F84wn$i)Ur?m0d7tXR`1z5n>?}|J}LI<9{HGkYvx7V`If-)nxZ z^7*~$dmV=wCVHqG6Hsf2e4sJYCyv9p&7|Q->j%aY!6`km#~*)Oo9MELlk;sYOVY9D zvzEPG9<^kbN3lZ_93Xz7*DW(PxmJzqwuhSczQr zu65>XwQiYS6YxrryK6T;Us;API;g~YiRF?Dfh$Ay94kND@ohqrS%XW))~NVXPm6Mw zC`sfmzx+~0>ifoU=Dbx`U#083-eP)b!X%Zwt*fjbn{m}nI{&=i;J^FCvqvW6P4JnN zTV-kJ)*2=tUAI5J&u#G)OZEq@Y}fne@G^Zm&a;6h=aK5fn!}f~67>}064xv!ju&-Z zxa`L3ufIafX8%oPW?WgtxrUkh&IBfP#s4Qft~zEpl!R$btz&0u+#h??Z~5mrR|HRL zKadqL(42l|w`x#rNT_Xxi_-ny#s?Wget2qq`^~6g8~o^eJy+|YS;rsWG@GzurjMFW zFlYDj!*={0&xN-CYd`&TQ*!0C^(`K=&Z}|g*JRQ-h+xzPgg&ebxsLQ03N>>BLDyZ literal 651 zcmV;60(AX}P)rKWQ5XmC|2^m4lbiR;#2C{i(O4m&4uxuU3aGnKT06K|+$5umO9w?45e0`pySWq* zhw35-Zi-0|TayT4+PrSwNs~0M=HXN^hBSU~w*U9zJ0It8Ymc5sOctA(QUdfsno+SgNj?+v-Q_WyUTN$2?UI%U;+gb2$(=2 z<0%5c08+XAb|w8|WzL*-Uh{Ad#AaSzO(*bc;CRDhLh02aPEMVd#rk`%uDiKDJID%E zDG8ZI3psQ%WDgKhiv9~a z**Kb|0u)9wnrcV?W4P;E_W3uCawEWCFhFs86IZQKG^Aa$DkUgQ7PK@j1j@6;W#8?M zzw;wNy(~d)aAK#@hPCmxbBVF!6sZ>D5=&{Wsz`XYcm_Q*2lOO0&{eN=Y1m%3H##1ge?mJV; lf#(T$LXe2Z>VS6$_zf%$xUoe_7PJ5W002ovPDHLkV1nEh9q#}D diff --git a/resources/images/impl/gui/common/renameDialogIcon.png b/resources/images/impl/gui/common/renameDialogIcon.png index 7de974e65054fafa2f62cd5ac4605888aeeb31f5..56f59640c1653b27524a7d6b841cd6bfa9c9ada2 100644 GIT binary patch literal 3873 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 MZElaMM*1fF2kIBA-2eap literal 16876 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 Z{}+3q{CjAWH=_Um002ovPDHLkV1kiN;#vRz diff --git a/resources/images/impl/gui/common/searchIcon.png b/resources/images/impl/gui/common/searchIcon.png index d81f01916b2ce050916545c89c581ddbae2c9b78..5d635cd0a863c37512edd8c2e3b0032ced92d3ab 100644 GIT binary patch literal 1533 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz6!3HEJ^yqE{Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^Ko2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>aHCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd9xw)9T z85)|K7?>Lwm{}MaTAEu}I5}FnSQ$IQ3dN7o{eau&IJ?Vsd64h!2V$h;Lm|i!#enQ{0O3a}~hhYn6$`esd#dV-pJ} zQ$u5@zm3eC++1CZTuh9N%?%CQl%RT3$O$ujpkwqwi32IIz=VJ)5X6KheIN&(c~bL$ zIi?7hH9jo~+rq%Wr0eP87*cU-%@ps|LWvT`&s#ix(XlL9)ovCs{&3%Oqv)m}nI@XWePY#uozq;bKC!kBbr@1ZD{rJi3|D59O0q!T*|Lrk8 zzvuJp?>o;puL)bd*m>5Y7YE#Oi+bZt@Kc=fPgN6TL3Eqlx_y#Ky`ON0*J`s=rO*qX)5cGud>^qKOrX5QJf z&DVlfrpWalU(fLNL|f10yIZ5y`W=w^SYg9|Jv`%x0gohCYu@dgZI4roR;~zJt^c52 zH(I3c@w^#6%id5X7o;NH0R^P<+y zQ#>vknP4IFZ^iZ3u5-Rf#_jve@8dY>N%0opw;wC^DPM1{z15~A!sTx~vuAmXUh#?R zmNlU#90ZPVb{%tQ&f9LCz5RCnMXRP9`9pbEUYEvO&D|#6eKdOU#g2smZQB^Oy0iP}qqAxn8xt)u7P4P{`9&=*B}D7$rH2K7{{H>-*KWRtirm{KA?szm zQ|@QKw%Zf)dkV+R>0V3wW}j8t&ABW4md?V1qBByAMV>h8i2ZJf`_nlubaBM;|JM7K z37JUs&hx(Dp>pYtd5UGQWB)?45Nno##eW487-GZzowUo;Jq{|6Jzf1=);T3K0RTKu BLC^pI literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^+(693!3HF^taP6Tq*#ibJVQ8upoSx*1IXtr@Q5r1 zQoSI|7^C0$11Kn2;u=vBoS#-wo>-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0F%PZ!4! zjfu4v47J@DMc5uZ|Kw_BDCrS-;@GFTL0*zPljIWuZs_dm`NL#*i-+r{Y@2bi;RMH1 z4vS7K$}V^rwCA+sxy#mjTqCC`EfStR!`c4ahS@XQvovR&O%wMs=&QbyAR>F?+?i|Q zd57It`!CF&nJjUP^_o)BroQJNd!C-DX+E>(SXOG<>k5wPGk-ox_gifpa9muXv*TWT z#iCu|rF;7IWL#b3U5+sEedv3vf9C+-GK1#Z9TiUHU+WLt{a$kQ9P6|{cYca$TO3bG zvlB~={G~0pu~kgya8U}fi7AzZCsS=07?_nZLn2Bde0{8v^Ko2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1?ON>1>eNv%sdbu ztlrnx$}_LHBrz{J)zigR321^|W@d_&xrvLpfuo^`g|nl9p`ojxg`2U3ql=NbnSqg$ znX8K*(J3ovn(~mttdZN0qkX~Ox$iU!f75< zZwhX=7~|Bd4|I$^C}NQ!8YToxJs>7L*#bH6grAxROzlO$Wc|L)e-SWCeDZX045_%4 z#KX`3|ImpOC(b%B{9$jJsvT~WI61lHQkO@L(*wCSMThBs7Y8KhAHgIKX*id&9a}+$EvPk$Qq6A}PQ`yPxf;8FOq1 zJNM-H0|tpl1r-w=c3!PGlglm@;%ZRVaBpw->6ZQV|L4W-t=h`TtvLNb=URIQW`|F2 zjx3ox-9e{MPHlJD+e>xd-`zD<_{_{Lxv}`|$;s-a4$SwOcoZzlcI@04dFRfZdF$i% z&yzn<+cYQXKjYz+i7g`BhyS1OQn&cbrXZwhXI50&dfSv?R`q162a5e K&t;ucLK6UpoP&`7 literal 548 zcmV+<0^9wGP)JCpst`XCB>;CmIPvtIKN-c6Pf=f?yH^6aRbaQbMU5OefQC z&mN8sKQ|JPQNwBx=n7n6%n^K+OfSzgEzqhGA)gZix7wM{?Tj@oxWHl-Fq2d->e&Y) zzNQ5AM6A2%rN`01T8Ks$f9!2Rs%3BnobGRW=bpqzrKZX25r4q8^FFnhh)zw+XFnJU zMBx*9+Xzrq+~}!B(AATHE&-b#=2}8k|yo!yY4yIO6J}DeqD#Z;V&RwDu_OzV0=Ju-j^BRszLdg4FOu(yqS-0r%bnYb=9qc8uyWdP3Pw!7`Z)Pd*u|s65+_3a mG7)DGMBv1rC`TIp7k>a|Acz0cTHv1m0000-G2co$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsVil$jIEtz|7gg+0w<((AChw&Dg@x#mL;uz{ttW z)x{B}*Cju>G&eP`1g19yq1OecUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZnrq%G!Lpb z1-DzAaO%|uIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@iwokkx1I!YyJY5_^DsCn9 zbaebU@4y(bF^N@KnE9zgC+kU<)Swck+5+)oX^xY3yY~gJcqkjaz@)shsk!-JVC9z=7ysnn-xqr%okMv_8r#Ok zxL>_0<=;81H{WjW+n1M@D@@igP)D zkG+c;K^%tPoteeiJ$8eFLjHln;tIEpos|*NnbK}S2!w022r2bX$P%)Bnsg}^8(Zxy z#A_8q&M*AHbLX6$G+DXhJUD&ffnnhH@;;hU3bk78i)C3=&iOk+2sBN50f6H>48!Ge zx%|~^Hh*Z!?&JFijJ-ZQrm&B5?%(lu{In#p6Um$jRx9vEvHEFs|6sS&Xqa`9Hgf zALlB(D7Zx7S;55$LWqY;6~ZulV7uLJAcVL!4C5??{eF+tYBeC6&Bp8Z`|DUCM%VR| z#0A}McfD9FJWVNudcEFECX?k%CS!5VX)c#bTb2b%DWsI>^?GX|L>NU;B&Cd|)9Ge1 znfz%q8s9ag6ac_=T>{`efRE*J`DZqpC8NlR9-QZOEmr^Dg!_k2G8=KKBuuY{fWyYF;5gY9<{9 M07*qoM6N<$g0egAhyVZp diff --git a/resources/images/impl/gui/common/separator.png b/resources/images/impl/gui/common/separator.png new file mode 100644 index 0000000000000000000000000000000000000000..8b9fa7dd11adf643cdb6c27f7230f19ba70cb1c2 GIT binary patch literal 1034 zcmbVLOKa3n6poA(Z7CEAK8lM=ieS-6a??y+G#!&k#txXaP6r%!%_O&-&?Yw~w@x}M zQ5W_<_#6BKE))^LtsB8rw<=Nu7w+oKbW&Xu7ltJFb-wSM^WAd})>rRLPtHv;3^UzY zvDY>!5*C1Zv!3)fXTHvdlrL zCd=>^5Ctgm0)6Ewl=PaciwYP&EcKQKTYB4Wj(yRU!S)GBbe^Zu6s%xXJetLWPI)=JmdsE zii*5O)){G|KVh6{optsT#J5p~_fntU$JTrarrQ16QDI1<(bv+DUW&JCV}CC~F=^Qb zOHa5U40HjiR7FJ+6j6{>2vxPFH3Y|ok^%)NI3>qfSVvNtl4>fJO67+RG&RdoZ77Ob zQ!_QQSz=ppM!eWZrQeYH9b@HxV)aIfJc82>#=B(&toJd&Ssy2$u_1#SuIGnwv9VBG z&`G{FO2bDeXr?#y@Vm2N!S7R%Q;b=ZEKK zpKrc@Yt3J|_u$xkSMOY!`*C^d+tiCUN6QnBnF@n$&wRhO<~}RBv*oPXFRjfdzX9GA BKS2Nh literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/common/showHideOffline.png b/resources/images/impl/gui/common/showHideOffline.png index d413945111524e77e31044289903e3a451e9033c..c98bfe6ce15d7194cfe7262123904c53e02bc35f 100644 GIT binary patch literal 1529 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2c=CsU^h>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v&`mZlGf*%y)H5_T zF*i5YQ7|$vG|)FN(l<2HH8i&}HnK7>P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OOP2xM!G;1y2X`wC5aWfdBw^w6I@b@lZ!G7N;32F6hI~>Cgqow z*eU^C3h_d2fv+#z;JjjJKmmhHzap_f-%!s$KQ|ZTFR<$3lAu(CGq9>I4yi0i)elN7 z&Mz%W2F6F4GE6ft?C@IzQV4X7m48ttFj5k8T=J7kb5rw5JY8&+fHHb1nJHEVrWOW< zhUO*)=0*l)7KVlvhOVY=CT1>1rj{;du9ikHGqCA3bTV*sGcj_qaCUYwG;}qza5J`W zbTKkFGca;8b9Hfq>GjMjE=kNwPKDW<3A7ig*AcH?E9aur#FG4?ko^1{SPBTp$S=t+ z&d4uNa1J(A@J&q4%meX3(F5_VOKMSOS!#+~QGTuhIDD-#vDgpvECGK*^rny#X8J(K z=z|gmQeuG#0aGA|2~YY!4m|Uu<^gj|5io1ms=jMuU|`bpba4!+xV2=8W5%rnk>ism zScy*8ZRa%${BU71m(d=PSADiQ3OVZjwo{y{BcdbtZQq8xD7{{JBa`Pyv~GmNWVxc! zdm{Q_K?|=XEuCt*F>vx&Me_1F6a#d5Bn{pO|1C1!?qthZ(KEU?Pjq+`F)cJVCPusJ4Aau*0XJYThH z+Nq~SaD zaxZ_We9)8Kch?E@ANQV+cK-S2y&JzQJ9zcu(aUL@D{o|&q&#WMi{2zT`((2<|~$?I*|YzK2=dq)2@-Ex7x zl@gaW2y`Ev7PL|%`K7_)>5FIjCVgDvx3}T%SL4cuW|RGX-DI18?U6hq8^a$z2J!!) RuQ!4UV^3EiP z)Y^LbP-arkrE>(mnv)qD8LV{Pzj;C2BVgL$wwo`;#$Sz;I<;7Gn+vZe^-J1)>Yc5z zklpUP*Ebp4Bhd1Aayh*qeyPZfy(EO_0AO}5@8hQx%Ub{#d0tjgr0(=@gv5beGh`a# z@m$tV^;A9`9V%_2ltPx};*E_B2c;AfzLO6>c&f<1ChqHOe^;Y@etv!;5D3UKGc(fI z*jQi3wHot&EDHdH5QY$9(7HNP+g1_|hifB|h-qtUOGu~FH;SvTlxTTEh=CBo001-e zp!#~5Ez)+>oGe`UWu6W!Te=m&U1PV~y9x>lV6j*rNfN^0aL>=LJ#S9rNADILlh6H@ z`Ow@__5edEMe|j+`G}CrU0x9u{C2yvz91b`f4unD>1cSjkm&-Ly2+`%| z#fzjkzv}gk${YZAeWNk}S!*#Ci+$VN+#Hl7scCU>kxivi6SK3kpIt5&{C{3P_SPzP7fOQWOO&%OWc)3r3?6q9{TT1Q-kk=ybZkfg=DwXJ@B9J3IT9 z)oQI0MX}IqHXC`KU!|0W6-DvI8U}fi7AzZCsS=07??9MLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}t-3#_`hBq$Z(46Le)Ln;eW^@CE2 z^Gl18f$@>14ATq@JNy=b6armiSE;PXkzYUV&P(F=xS)`zP+vl9-pA3bQv8XfIT+8D70s&PAz-CHX}m`T04p6cCV+Uy@&( zkzb(T9Bihb;hUJ8nFkWk1Vs?Uzb>gonPsUdZbkXI3g8g7%EaOVR|9857iU8QLl>ye z4J?c;olMP43|!1iOpMKypn6lt2{nD7WAs7E11Y({gn(%f#Dph)AP1g(QuBa$rU;lh z%B}9%GcYhkdb&7`@=;Odmylh@ z#fhEFvJZ|NVHa>}IWpPeD~D}>PHyJw?LM9i(T@t%t#iwF@Bh1g>%UN4-^-W&T`+n3 zVCU_(Qfuxe+WEwb!eF*aY~nGkjFo|DGW%AQ+q^{z(l3oTpVn03x-ZeOYDirm|uZC@1bOD>xIV_*E~ z;AjrltLdEP>ksVlKKWWioFzQSN`~)#zS->eId%b?Qd<&V=!+-XN%Xqi|D;tf^vc4o_3ZVR3dQ$t_y{junzngm#sm%X(&Ms6+tn<0dro{8 z{ILCP+3mI0U+>$aEc(O#+V$649qrCHp6`4n`}$svnfL#!;Dppa<_k8ZhkVmp*56Q- zRCaAqYzTvhL0~rXw#GPt-Uj=FUN1L=-2ZAR{hqPPOFXh6Mo09~RSo0)r??h*?%pK# z=&J5_#_zoU*v|*pFKEmE@of3LnLFJ&{7(dTzIOVvGyCk~5Y<^F4M7_ZJXLoN5oFSN zCwskA{==`e^Gf@homfj$kJ&xE+k7ZZSDWdGqM4s$!QTbxvY)zz^>0o|5%uFAKg8g6bSTeV^5N>^>6@L(C2H@A+kHw?M_Wr>mdKI;Vst0IRcAoB#j- literal 526 zcmV+p0`dKcP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00FxI00FxJI_%@(00007bV*G`2iXh( z3K<^gF?@~y00E9kL_t(I%Z-z+VHnN9wa z5ZKLbs{9>-dW9f&SY5z+t7{ZI0)hmDn|FoTCFGKLQ_X&S^LsPjdn@c&S(c%yhzMpz zRaHBEx-ATcLjY#889)rg?cqGn?*L>Mbvz!^G|ej!ITn#%W>FMHAB&<0+ujGe08P_8 ziK6IFS(abcmHQ!t=fF4av%L53+WlxWYPI+G$^bw_uDthsfTAc!)AUqTul@`0-nW3C zBGT_ns!u}*zcxKP0jmE#&FtlBwffNNbzPqU$zU)z+HPkDaL!SdCC<4QA%ye!e14N< z832>X1T*^-$MNff;pKV$(0l)8a~=TFG;NE#_1-_)`vfyP0saCcNz&=d<+9D@I)rd? zs0#+%04x@ZPVDu1EnuOl{k;GY2_ka34zAPN;6ez`fZqp4**TX0k42=tjhPv$dSqrl zs;atl&UFQJdj{&d{;sN@fv>Px# diff --git a/resources/images/impl/gui/common/soundMenu.png b/resources/images/impl/gui/common/soundMenu.png index dc7c68df4a3a708faaad4129755b472ff725ae42..ef1993889851fe9122d16e304527be5cca65e8be 100644 GIT binary patch literal 1672 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz6!3HEJ^yqE{Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^Ko2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>aHCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JJoa z7#fLwm{}MaS{S;Tx|x`{7@1nSn7LXS!OXy>*VV|;%-q$&z{1(t$Q#zd*q`*i^wcF*!32#0NzW#J4V~MVV!(DQ-pixeDO$waUa|KhU!T{0-5Y zLQa_J10ACeN*qXu1ttVcfgmP4=>s|N%#)f2%rQm4tP$_uHGzSFX@{qaV@SoVIl;ai zL4hLkz8n9#5_oY@r>E1bEmw7#1Uff*9=g!`phM!OQh_Lo-YuT3Sy%Nqx^B94t1M*^ zS5-+o)1 zw6TKqnf{5x2?i1O?=MzAuvkT?bK;^EvnTAH>-W6zY?^hYio^8Nrp8ZR&42&3YWCf{ z@3Lnyr={k1x+u-Rm@%b?rNlx;{XjzM2c8->6+?EWMwauRzaMG@6N$X3=WUNolboyyfMF3?Lge*lUv%3xfK58kFY*a6u2}<_rii$ z$BCz1CM2>;HZvG;CHz&JF#rDh|6LEJ8(4Fgok-c_{UT5LdEDXi%wKqfVkB0d=BR5- zt7#5%I5%mTgBgdyHJL3LcQ)R1dLZZe;ya1FD^+KU-EoV?Ku1qs`)XKnS;VJk74=rKo(DPwKe?j<2w zdpCSl`FbE{-r-MHi5&+j76#n7kYQp{6UNk`(ph7-|5%&T!uu&2-(7U2P5qi-B4s%Htk;>hxdwYWZawo_dMVi8Ou*u-w5?Ikl_#EvpK-KN z@wtxJ={-?vza9M6VA?!=n^gBvImMg)Wg-d(%og5QI5G1<=iH`!Zl~hbU!T9w=R9NB zv03T;7w&xfAj9;;_|@-KH*-FHtoT#7G2#zn{nR&s!ISHk{L?ZzzvNicykGhU7!)0K UwC~GC&H>d8p00i_>zopr0NBxob^rhX literal 703 zcmV;w0zmzVP)wt?ljYNUp7|rKFT^EX#TnhGD|0ren5Kz*J`cxn&}=q04-O89h(Z97VHihR>wC96SXfy2Fh4*4(y}ZF zAuu*JhA4_qtJR*Zudm+)5K1XOPfblV%jL4X^~QR={;FIq*MlH%g%AkC5X_8RE>~sd zqjtOfYj1DwuTcG=CYDO2Cv$UipJr!gj&4~s94&bR@Z{iVMS*w?G?^`+<84{iwv30 z56EQkVsjU7R6GIEQ$sdsbWxLFp_rf+FPDi z*(wQ!%ppuTL)pM_eKGQF{^cnCX5NViiYpYj7!lwqu>wtmCa|XeqZywIhVN~TH=4z_ z#dV-}`nvVG#p}yM*tr|Sa91O%zbFR){I;o;a-Hk;!?ZRkbajaNY)rta;3ogZrZ4sl zH8k)4VC#D8u}1u*UvR@!<-N{Bfx(gI-A|yv84EiS3j8!*hA8R|hCtCv%9q8gxPAa! zr|+PC`Po`~?#h|>ZK5($PETuV7u9nf6@HZ(*1UO6(?_klTR%_QQ;N@*6t~~Jl<|GV zNNr(nc1^zEo3O?QCc&s*mEh#i{iI-FCR0|!3z_a6#vnjr~#PMuC0Si5Nd=rT$Bk>$|d>7KhUOaE{ur13g7)m%+H zT7AV@JZW9GF`W!QwWN>v={az<_aETSlt;6SJJy{@c`&6D$diQ!)o&Z~bG3Bz7U9Ry zsKLhe`J;Jb>f_h@;cJm2A@LjY^e1)oMaM=8tO4@6?Thd1>`_hn(NT%^BjG_k9RtsJ zI};*)+YMC|Ll26Ye;>>ePx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igo5 z4gnZpsM=YTI+1D zZA;TKu#@BnSXR~VB)^g@fn#8&>pDr22jHHhXSVN1dSUw`VA~HR9Z32r>7=#xMM>ts zDexM&um6(d0q_PmU9Z=3CD{X3z~OYoB>$kQdJ3$PJP~l7q>_9{a?tnvY%KPD-;(Sn zc@GqDF5nWV0XhQ~lSwy$=i@u@vq`!osRnJ^Rkbk!wl^i+9?m6c(QIFgwj?2`CO}C_ zRgFf!wW@kKDg3bgXCkSS^nG%Fr6hNgyahf3kB8qzJ4*5h_yoL5vTHz+wyLU0x|+>q jHA1$P#J0C2QB|vJok{{k38F5A00000NkvXXu0mjfUpBQ% diff --git a/resources/images/impl/gui/common/soundlevel/Microphone.png b/resources/images/impl/gui/common/soundlevel/Microphone.png index 835354a7031ffac3c1df6e4183021806815fa7b5..24b55aa43ff5f80b9c9f231d65bccb14097f767a 100644 GIT binary patch literal 1696 zcmbVNc~BE~6wZK1L=+7k)S1QA3Kt<~0wSOSVd6$THi#Ee(5fEKYGDxwxIx@ zC%xfXoiIkGnD9leMD$dGz=UjeR#p}(i_1ds6gDIf2<#jj4wJNCn${W#wV7!&F&qps z#H7LX7@O{Mh)$lcw0f-& zgaSbbf&)O91M&kQC@_#Gkb-g<6aYh{oN@=p`>>=|Ak38q2sj`Yg5;1O0OpAy8CM|@ zh@}Eh=D>y-O@!L0K^%Vdq~8fF_k&oW6i3tqipQa7x}yW4Q&9pnrJ@)hjpYFlYE&b z?P}_XJEn0xZ8+P_@t*$di@letwVcvTqcfg+WgJM@uiGBs=3Y5x1{F)(fAiRi?`_=D zi;KNH4&06Lw$^TRu4vCqzIH2}|MKMF{se1FThs8E>YzoL`=k@F4ep5e35Z{KyQ-xB zv+i?8CUahCRX2T2B+3evVH`l`!4{4PZ*7tn4XUiTLz^h&FusdI~d^)WWQ zC~y7alpAn8yk=Oi@5=hjUlLB(9_EOzjp&ZqI?wk#vS4jd1FpG@I+xn~vv*xAcV5q% z-b8&~zs8c|gAcJDMJcIqzO#l)m9+=KB}GB)_wa_!d&5~y7mH{>&FJn&FJ6_DNB+re zP8?$FGgDe_`<>gs53O7(`8#j<$%vZY;1m3j>3g!bODKIp*Kc#E{WqLE(a=-5%iAq+ zpFi=g4e9cjGO)DBZIUXjrJFit>wP>rzdD>>cIT+=p@Ejv*p+c{YjODI>N1A;?%C$A zez?x@a&N$9F7*NO+9SpquV8}(-PaR}H;!4A=g+j)EZV7@+HCd@i8xM!JJ6DqdF}TT znW~&Uxn2t&uIz0H*<-UZ{?Z||Ca|OXa9)Y^H5H`DB;svBWhaL0|BNtsr0l39DgQr! C*_Fir literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^oIotV!3HFcc!W9wDVAa<&kznEsNqQI04XT&h%9Dc zP}vN^jC)fnw*v(wOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kpe2Z=jq}Y zqA{`eqP}-?qDb4v`*E_y5-~z9g3U=q9B$2_A9vq)qc(fN(WGzEH_kY-2pV=~I_gHT zsr|pxwpaSItgya?%)DZ~c?I&GQ%vVSu{aq$X|u}dzjGB|D(&C7(yQ3h&e%)4)2ZLo zM9;n{x;q&@p4-BGLb|1{%?iRb33Y5)H2^5koKeszxBhuCWkCpT^1(D3rp s-j>)sk5)}%S+_BQE51tc`h}yf_`CLQY5f+P3knVfPgg&ebxsLQ028H(`Tzg` diff --git a/resources/images/impl/gui/common/soundlevel/soundActiveLeft.png b/resources/images/impl/gui/common/soundlevel/soundActiveLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..01f4d90a2afe4878b2ded2de813b4f7fdddbd223 GIT binary patch literal 1276 zcmbVMZEO=|96wpWf#7CL#9^Z6&A-~)0@l~KhD<~JgnR%hI05|tKDV{g4+|f>+}-m$ z|NH-b|Mx3&c5Gd)c?&TA${6GY3FyeY|j5Ru)mSJi`5`RFl< zRFxq0gfGD)%m~b?Z9^7J4RxgDp+1>cs4cBzOJ2YP8blJA*ZOr^$Oox;UIFhNF-?*4 zDyT0=EjX1)bdnLnf~3#wamfq-B*(dd*T-?-QIcf%IDz$(m5ajGETuqw|tU12;o!niJQ&wvCeTUpJQ2w$pom~y*2;z=SaWRz6&mKqyx7CE|pF7-qBzH8|9X_SL5xz@Sf2*5HiQkXZmbm+F zE*pNnzIm#C>d4`_JG1cNuI+02k#k>tcBOHwy$wB7y!#?s{-)S^d_(Eyt$oq=wXV)o z?Y=_ot>xEWow;`9sRr}wpOQ@)$rI1MMwj;ej$1O z>{|yvA0Pc_;~AxRe!Q^f{iTJ7vL=q+-kIL){Ey<%4)Npg)1&_Yqg=e= literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/common/soundlevel/soundActiveLeftGradient.png b/resources/images/impl/gui/common/soundlevel/soundActiveLeftGradient.png new file mode 100644 index 0000000000000000000000000000000000000000..88117177a434b5833235d0c1ace28c128676fcb1 GIT binary patch literal 1641 zcmbVMdr;GM9FLFjP*HqM(L0S1IAyj?N?Y1cU~N+#uEnmv00kwq0b*%W(*Oa7c;Fr~ zsS{7Z=iE+_bsJNBu!(NEp@^d3P4pDYF;HPDj^l=pjloi+Zhv_Gv0Reh@Au93^ZCBB zSr;4SGilx=004YqqA@+U&f%UZULM?gb7S zlqlB1TC0l4BBKjvBCa4d-cVpN$c#`#I4EaPj=)SXILMl_EjE-5gGPB#ZtoHcAaGQL zF@-@doJ!K_Kovz3pqL-bGr$M}N+f(lB$h~!WuOp7gaVkmB|JogiY2Hp1RT2{&KhmZ zK=oMUm@V!U24yjf6%`2b^78n3!F-C&6d*F0%*7!T@;D8iE#Jc6EYD(F>}J3Sn}H^+ z3`to)7bBid&4h#HZKWQZzQs+6gfLZu7~ zc4K2KHU_sC2)A95vpa?jc`X)I(FD#=bUa06yE{OaMKP2ui?V{MI0?8!iyKIbOR&^c zpcnCC1Wo1=#z>kngQFQn$ya!whQ%^Wp->@`vB+U*uv7&LWg?{%Rw)r^3~T&9Src&1 z2wd&)pLTJJxE^$EUp7B?csV|Vg_{|g8;*m40m}hkd_@eVh-Yszaaz+Xh3_{H9`AED zI5F?d%b>_f5yqe05hkK44 zuD|@CNs}uetEwFJYdhArIZIl%M42AGb))j5j^~r#-p|hJxcyV|p889(Y8=8$?Rz^2 z%PmLkMa|CHfh_~Vw)~pzl&!hjOZN30Z(TPVPGFrygO3kY40NR7Up~0nJTKso0(@h? z|F-Rqrteh`*ehFQhAnkf#u-;SV|E3eie?Iq)O{5-l3QLzt-0`5`>IH1;oloRICaL; z_DN=6^AOpKZA)B^V#kZCXM7w`um)6K@F6-2$KOp~{Y$gxzCFEGa#CHh%l}H((eR?a z4~PHANa)@^I4#0C)OByTOW!uXd51no@~+oL4SWF5Ob54ldAAts;`T)?B?~<#KTKJ8 z>}JD>NeEAVK4|Becbw<^f-*ervK5=6($1eff6;Nv*6cOKW9a%imbDM=Et^oT6Ko3T zg|1aYpI@kL4-J4GN_i=OzkTD}%9Wjf@7easGB!48CeFjsdDRR2dZ5@PUFO!+(cRx& z^wfDc5^lcPWw__#Exxp>ZRUW-Ui)q==g`8w4Pr}D{DOnNgHhT=Cl1id^TDYb9k)t; zGn>vW4zHg2MPi+RpItb#V_K*)S?5q~X_@F{-ox9qTR%5#cI-)wX00;O_`LAU*4R5K z3u?kw*@qiYg*iy`eaZE6M~Si(cKHp{4@k&8S;eu4Bf!sImm7P~n()-&`Jat+gq|Mk z`nIaY`-$z-;of=rtEKv1m-h81VErr0Z}z74Bhon~;`e(}mz8FJ-F0n4QFr6;(>hbr z{rgpoPo8ELhd$b0o9a_X(vrsRgU=f76pix$_V||u9gRz#>H7J{sAI7jWm@q+W`lFh literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/common/soundlevel/soundActiveMiddle.png b/resources/images/impl/gui/common/soundlevel/soundActiveMiddle.png new file mode 100644 index 0000000000000000000000000000000000000000..0ae6202c226061a4fd609ab69b9fd5a504f20d17 GIT binary patch literal 1055 zcmbVL&ui0A91jdc#wLOXogNGsh=NVtOWQPwtEEX=S6Jp~3wF1q$y*!NSoRVkY!kIyKhOQ#+~Qc*$#b`|CNKjXwcY8}5Y<*^ z>-OrBtvFoaIy)7sl)yv8Vq>r4M{1ns`n)RLCt`tP`zmB9&mB0`Fy~kuhltJc>68s1 zWF?7*nXDwitE>p1C;<9ODVR~Sk}Brd!NXB&p|hw~jq<=2J>|JJA%Q9g-ENofrgKNEw z_K;61MxLWLyyH45fHKWuE(3BRkYosDIjiWPWWY=g0tiY&j-#+zRxFo`lA;x%1Yrrv z83pQTSyM`ys3}Hzh^_b$v3wg1?Yh+N04pDhRrL^A1c!BuJHrl`Yh!|=HV#<5Cb5@I z%Xa-la3v|wLA(YE-8;xBhuCBL8CKmRJSc&zVib!ylm?LlIW6lzR5F?jbPaL?tn)uv z6R0yn(jNb`%TPpnFxeh9KRq0d5Ax~EgmgHbb+#QkSZ2j2*5mKZnU|aUg^{Pslh@DH zk*{N|GwW|&?QAKr+uD0u=skM3bFl};K71)YKIbBNa-Q$)u0Q;^`}FF5i$sIaWblwh>u`NaF_QBhS<&r$l^UweH z`@d&*&WfdxGZJTrM50Jj7LhBgGleJO^)TVRd&&GUVVT7n^LY!qkuN1VN|a$|3n{?F zkVRB3McREO7b&es^hz;p&FAyY%W)ga$jE?>%*(h0v`C~)^SVfzgW`cgs)%;#z>$tl z5TNZkFi&NM%`O8~OlOsGl%;Hi)mG-PVRkSr70`Ndfq7E;8ASkzu zqg_1BI)MNqS;%^L9VmGEJOsvNHoqWtx~CE)qzv+sE(npq5W@uGn$&jlxzs;yyj0t5 z^|>f0mvXZn&L-4joGzR z#G0ILo^;x%pj}$9JB3yJCl)tw6v?xkm1Q>vJ0Pc+jDfG6j)#;ZL~8WNC_0^ zdAtP0(OW2cCdV?sWQKA2B_0@I6-H!a7!Y(Sa#*9#7+^W3)N5da9s#GY_WzSLNN@%U zw8y{NB`6YlFtB~m{KDbI_)tz^W;kIuu1UfHktmcj5gAtRjS7p|VabR)yhLF-^kH^v z%hfBWa%`2jpO;oGh?`jzS8{vcNW-GaZ4OV0eo?-d5J$)eDYy+~21YB^jr1&A9~&N( z^sxUE^-x{;P^5P2;}|-DXzYt_wkY#@Z&dBW92Gq+S7%AS%%n~);EwL;$@$Uee{*&2 zV97^K$_b|S*$+3%$7}ocJs9wW?Go)Rxv+0M3k*FN8?j10bOtVp!rFG!x82=~yvm&H zZeAEuJKt2M?U^<$Z7Ay8?`-QY{ih!dKly&$>dr6D?-Eb1?y9S4D15KJ{#eSwHH*G( zuS;r}7qj1cK4fmpuD-j`(;Ix+?D)KnroJ_|CMHIQm*t`A2LIYegXz=Gju#w>>zdzo zce|*0=DdW3mvT(=daUBG7;15&?}{AvZ%FNFKGxp%=-Bm+GiQ>QhAkUPmV}2=H3dmq zt8KTr8lZdAM2PsCI%3NSTYT$4*NwDu$J53~5@UaJ73=^A;QjIR5Jma=gbVEuem|sD zaw>jZ%h`r%`Rt3amiE^UN}?V%RqW{xCq3hSzG;)#)7U;Z>^Oe%R^0(z+MPr19!Q^I z(HCmp7#=7Yn{)gL3VEAU_xn5A5J_uU?_bG@qig+di`Rf#FJ;xOe5V{aTAvX0-Qxma zB-Q&>ifwIeJVE$KIQk&ia;tOyoe!u_VL5p9t)22;E9ulquCnpkgL5C7;>=y!=ERQn z68E|d9S*6@J{Vh$ImrRW`p+T_2h2#w>zVk t%Gsah2+`89DSr z1<%~X^wgl##FWaylc_cg49ppsArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKW@b!fooL3ADC}5E3S0onb8|oS8=jMX^1y)^L5|oN?23FO@A(aKG`a!A1 z`K3k4!1zd0hG_IHi|r=rI}{Q$?)(*r(Ri)dzK zWMnGu5;-6)!0B~l?*fh2ceB@D|5lLm{%(#?%hHQyDy}`BBf0+P*N^N6xs)=euymhP z{-$}1F)f(q=5C8Vv1dsi%4FEY|0FQ~c`@hfIji(rx!=<-uiHO=?)KU7eH*^~U4Fj9 zbw;O@QsyT1&Lpoc7n7w^I;FiX1@Ne7dT}WpIA&2L{r3WUx^;eT{w?m}f7Qw7?B=hl zudy_(`u|XoF(836L9==TiyG$#UF!sG2Zy z@pJuc^Y87AeO*|p-)zj6_SMx+LSgcv6s2b~I1?FjS+}qxeQKTI==DS(`iNLze?|3) zC-VDirj|%A(OTaS!ttu7;*;g{&K=hhR+Y`>->^t)&ADl(a|)j%u=|xJGX~fkK2_WC zNPDZ#nc#V|^|o^9xr%U_{!%)VHFG_KcxmxIhVw2)_v={a?$+C?71H%-*||S$S%36c zr--{`b)BvYvsoEC=Xp%D;ZfNiHlLqaT`;wR2y%`Ki2WSH!9##*TgS*Ub8McCqd1>g2KqJ;$%CxD*yR^|71hsg*&VCPls1 zx3urA?a7hvf5q_szb;>$%bR@u*xwJHn}7cLxca=hdU=C-o8I&bXI1~N{J+}l{a?`p ZhA-Zhhx>mYy$LFLJzf1=);T3K0RUkJFIoTq literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/common/soundlevel/soundInactiveLeft.png b/resources/images/impl/gui/common/soundlevel/soundInactiveLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..07adc081056bcbf794d449e1b5f2cfe235d123af GIT binary patch literal 1167 zcmbVMTWr%-7>} zOWIAEKmx%7;wBytLgMzche{KOmuZx&Fv@eb9mKVu?UN$<*NtVh{qmHHxFYiLq-W52 zRQo$%n!7g}3KXd~%5Kl1MbRfTY)sn7AvrC@(l1fdG8G<5G>geNpA>jef>4qYvdU*Q z7*9eT^4Si@a#&Foq?nozGxAUd!Yq{HGE`$yM$Tr0jI6~v*qq}N-7!$du0`#(v57Zg z71cvJ!Co2TiB1O;YM5ZZhFzeRM6e~V8vcPT+kl>X_tDQrSv!OrmXX_ty%|A?U z>zVI8^eVNk)$@F|Ft_#k?PjytJ#2-(<=0&g!MD55F+ZN&y!)1V;Pv^v%|qcoFE@Xf zPovwWW!+tSt+nUror80wQt8p9nd-Hh&%(VM27WoRNfp1@_j{}L^~v$aGn47Lizj~7 zdv9F&`~HRGg|+W1FFxq&Te0)6uL?iyT2<9vhECnIySo*5IRK8&9kZ Oei6Csh&Gcsc=#V1C40aC literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/common/soundlevel/soundInactiveMiddle.png b/resources/images/impl/gui/common/soundlevel/soundInactiveMiddle.png new file mode 100644 index 0000000000000000000000000000000000000000..ea879f44a1d8f9c40124591b02b1fe281b3757f2 GIT binary patch literal 1024 zcmbVLJ#W)M7xDghN=UW?Yn#LeV+IGcyr^){M_9+j^pNA>vo&1 zx7l}d_6GYOKfL#wEsNCY(k-%0hhB=gMnL))v?6Z@x3L$DUVX!>9CvLHcDl6dKGl5^ z30|Qi_RuO@E}}2Nb%OeM#n$c^|gRs zdjwWeIXWkFj1kq27m5U*WCmbNimRxYQ={L0Ywo|O;!~2 z07wu?B4n>pK{Z`gbg2%e56`Tn!M5JEn^RltWbgw@6I~RC!=W&&3MAbTk)~+{ha^>) zMkO1?)XOVzwp=pUIP=pmp&^Mu!RYnLJ~epe>3IlI;<^{aaW+j9OPQE^iHHO!Mo|&h zL_4Ex{MU_3wX@DB!D1U{WIy#;J+_xiFw5Q5h6+XIjs7eRSy8+_oA~`3ot+u8n%$X=uF0m$W})lbPG(NBV=@;01;G`CLh+#meTWDa`p^`FcqZA6J_H{+%*?sW z_kI86{QsOO3?1CGVcQ0VVK(IsX+=7IOrP$q4*EW`Z}%b{J|WpM8FoiWP4_XAHr){n za<)E(i&!_Oj{Syv8D?G8DwRn&Kd2b4&FLYAtJ@xBGfeM+x~CiCn1B&HW;rSL)i1YL zV3{fQt3)2=Jr!52L(@JUo*pV0)8mG0vIq8q-nv2sY)o`ewlTl7%$3C%SoZS0VomSX7_&a_MgB8g@(8HY&$iV{MSl#o@J)lfW% zAcEPp##-E@obE?yBxmG)6`?GW;xbZWQbx{Zgp91k+T5HI5Zy6w+pb0Jwzw4h99)-!UI}~SHr$_9Gm^VYlGzsE7lqwWMM+q z(rFcmt;nGilT;|k@r(r33}Rbc^Z#Uxr_S(UdAw6D?JZh^;dHh5>0-5gutR&sr_J%v z*kyq>*6o~@F4g}SF)NiW^V)WpS$Nnt^Uu=K(z(jqd`Y;n_4LoPW#;tNb2V(U?6H|V(Z@5aV4&ui+V*LEy!ZY<3%Zoa=K5{bP2ru#|f zVAH#Rzx(>H%BL6S=YM!~*DF*Z#@K4!t%%_K%-?^e`J2CPGjB9+j{mOAE<8PP^66hSguiuiX*(%P}d`8j<_y88#GNAt3M$$ukd~J|A_J(~$x~whf z$#7T2gDq+zvn^2z%()|OK{^>If54~ho>UzyURsV+x1X@E?9IswUb=Kh=3AByf(hnOv6BcVYwCQ82My?Vt@td8~0XAj6bQQEtG-VJV zxBYjpg_OwS!1@Qs(6N7gI*u;(wIOuz5e@fe-n1?Qc7o3 znq+<86$!SCdXGBX@fKr#!m;Ck#79vWmg&))Jz$1i0jXKvTwcilyo&9rutO&^6>9q# zmILe|6}&-3hAqrCSPeb*iVVBQG_MGJxhqNXJpVo3F##LBg6=9S_Pu$kwRg7o>IyU{ ze53xYVVlwwSiBj%XYRZiG`V+Lw&%SC_+4%PsCN4~R5Fi#keHJz1*zR_UnE`r0810( UF7QaS;s5{u07*qoM6N<$f~ZW)Y5)KL delta 549 zcmV+=0^0ri1HuF$iBL{Q4GJ0x0000DNk~Le0000I0000I2nGNE09MY9SCJtpe<~XQ z04f^+bXAIi00007bV*G`2igo54HOtcRm+|L00F{DL_t(I%dL~KY8ycihX2`}*s$Kb|NJU z!!*mc-^}dLo5Mpho6k>Q?eAX{e?`%A-cyPZDJ8@`EYqT~!8PN#TL6v*=&*4j<89$Th_ z)LJZ;OMG7}psKLOfW41;{ZjxCLO_fWRaJqV2to)u_bA2) zCju4`_z+->*%>4vo6e+JNZ&JBJ5ss_x}v!PWB00000NkvXXu0mjf^WgGx diff --git a/resources/images/impl/gui/common/soundlevel/volumeButtonPressed.png b/resources/images/impl/gui/common/soundlevel/volumeButtonPressed.png index 4b91193e6817cbd0f206b4da1f1c797358214b11..c75fe5afe4bb35a3729f8abe3f31483e60e5a62d 100644 GIT binary patch delta 462 zcmV;<0WtoP1?vMLiBL{Q4GJ0x0000DNk~Le0000M0000N2nGNE01xQDo{=Fbe+v@; z01FcV0GgZ_00007bV*G`2iyi74lFQ{ZF(L600C=BL_t(I%dJ(hPQyS9_4A!eqIT&B z1L^?k${!%UogYA~43zQ%9V!(9J~On3!qrLJl#`~k<4k3~ctn0XFBh{$Nz zf|-4$l%7|s)nlxx>Rv={>$-ktf97O1EG__2)wtPg?xxde6Gx-b-30}mv0{u( z2;ptLUSCHMX_#44N+EyQSw=+Y(Af@<5fMTN-y*^hfMzEE=Ai~aB}FYAS{&Qf1m&(k z9mvVcD(~C+=s1}dV5djBYr4)75wQozd2*`c=*n|G;+{UB4 zW6J@`TE)J?bjf9Bc*XV*|B>@P%cb3u-M}TvvXzd_h)MKgO*)j2bN94O$y z5)cto^&+M81R|o@Y<3euB)9?)&iG5SnKi1qTr3vLAA(Zv{YY{r-2eap07*qoM6N<$ Ef_90^fB*mh delta 630 zcmV-+0*U?W1Cj+HiBL{Q4GJ0x0000DNk~Le0000I0000I2nGNE09MY9SCJtpe<~XQ z04f^+bXAIi00007bV*G`2igo54HOchfFghZ00I(8L_t(I%iWa0Y8x>ShX0W?5@?-U zO!@)^KTaWsKo5BnpZpYoo&$zHL@*`v8hY_DCeAroJL}jhX{LwWbwdt?mYzB=3?rCN zGrtDWx5dKj4~GlSJXO_+s#3}sf2nPe`&xn8el*4nufk&6#! zXV-OI7Xaj#abhj3wXn{?4bi#o%vv~RSYxP^^6~3@e*OLS7S4M=U9DE7lwz4#**S8| z;NG2cU}h9%IA*XahzP{2J_Psa{5=1-yPLY4^W^#IiHJzO_r%O#@8Ow|f0*IDhloH# zpsK(CA|gYiJ_J{dMiVC@wB2rDj3H)52mwANWbffaI6_1fiq3ivjI}gCorqw&*}zzf z5JD$#&M2jzh(Jo|I(Y*z#=u$&DFq;ch`_an1J(}@I316>;vOQU{2GS{1b~b=LY%cI z%*Z*TZCkh^g4O*!9v>eue;$uYkL-U25s~)7>R;4r z_a3Sy#<=v%836quOo@ngO>=nN?Uu$`JNtZj>0*qTnQ8bgj4{XkOw#VwZV5{nwwX3{ z-F~^c3IJxbxVbSRa`C#`O}8&ElbjOeoRLz(+nC?wDJ9+1^>V-8&vGgApE~eP-Rs6I Q!2kdN07*qoM6N<$g2$B`g8%>k diff --git a/resources/images/impl/gui/common/standard.png b/resources/images/impl/gui/common/standard.png index 5135bac31cea905812f0a59bb20ec7ea68d08faa..2765b0ff82c05eb64c65f0de240ca23264baa83c 100644 GIT binary patch literal 1527 zcmeAS@N?(olHy`uVBq!ia0vp^qChOn!3HGj{oJ~Nlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6H#2Ih>+kcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`GuBNuFf>#!Gt)CP zF*P$Y)KM@pFf`IP03tJ8LlY}gGb`4?pZBPB7%B|o_|H#M)s)5TT^D5IB>nPO#NY5@#I za}xt|BLg!FLqiKgS5r3=GZ!OMOBXX&OCy*W*z`J?x)`}RnixBoShyG(x*A$Kxf;5; z8aWv_J2{#-x;ex2dgc|EB<3Zj!tBii+6&cdgjcVXb5UwyNq$jCetr%t1q5W|m*f{` zK@kM;uS;rCW?5>ATTy`HkXkmGdC;Y7$A0bz~UNrn>?=V%_C@#tI9{I|PL|L(~NxmmuAmH%$- z{4Za={1xDDYA8H6(~hf^NqhR~H4!?;KK^FA!J^l&eZ%h!{%=->XdRyEJ~3$xcrZu1Qp55CoPQk(1-2RHOlfde+}D0L?|bZ&SsOMkiu0A< z7@;%&^iwl2)xWCit^1@Oy+65AyQN}|kD8{9ePd|pVoAqef!(UAS0)tS`Cfbb^Pcm| zGVdL_GABG!`w;ua#`yKu`zL(NFVdaw{xUqLhClSztVE4pf9uX}duzRPO4CfQjUSjj z_P;KRxy@L&J!)<6pRyBMJQit`sS5nR{9R#M_|>ebvkpaS{C=UK^-H~BAAHN&>G=w*Gd1OV zuRF+Xm~z-QbYr3fPfOhT>z~=0532J0X6bX@#WRt6W#1AT_7yg987)3SeVe;y7#%O< z2{|C-vi5KZgS4jKYQv>+_t`fER!)``eesris`dfD<(DfxncS8{-DYTA{0E7{4jX?=gCO!7?`w!4Q)@5+B^T6uH1#j+_ATJ{Fi nboHkj&1AVL-P=~He}Lhwz=wtRXWxGaDvCW_{an^LB{Ts5fEYA+ literal 789 zcmV+w1M2*VP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00FxI00FxJI_%@(00007bV*G`2iXh( z3K%U;`YhQ100NasL_t(I%Y~CmXjBIjhQD)X#+gjslQ?Ncw1jFEm4G6O6pC57GZfUc zStTh-#E6d=6V#{~9WH!3YD-4qJl2rlBH)OWN==FaP8=FXkRJ?>P@ z1pnpX=i@&w0hr~YH_YsI2tOB2zEFmw|9eLR%Og@7^iy_{dNCHIqUPDQOzFJ$gg&)6 zR#GnXvV_h>FDHhpIASi3xbr>(L0^7F=Gq9y30>pYo%>%{y$qSNg^|MbJu zzN4oXAH=skM_@ygPigZvG4>Cfc>he5OkF*PSSa|!E`h2L^t;+rC0xIHd6D-mcjy}X TsXQbV00000NkvXXu0mjfgFJ7T diff --git a/resources/images/impl/gui/common/statusicons/away.png b/resources/images/impl/gui/common/statusicons/away.png index dda2596085bfcc3424550f8ca74e3d10521e3280..bf4747ea41141b0a7ff6548f57d599ddc0ff84dc 100644 GIT binary patch literal 1478 zcmeAS@N?(olHy`uVBq!ia0vp@K+MO%1|+}KPrC%9BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFsEgPM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWfo`&anSp|tp`M|! ziMhGCj)IYap@F`Ek-njkuA#Y=v5}R5fdUjL0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HT7t|lGSUUA&@HaaD@m--%_~-hnc$LIoLrPyP?DLSrvNfBF)6>a z#8wIDQivCF3w(Xy2Imz+0}2>q`W1-<`i6Q2`nkCve}PpOmjtCEoPkw!aY$uBs(w&v zaeir0GB7^Ulwq2IVTa!$kV2qqto(~IfsvA!X_c=cL27o{eau&IJ?Vsd64h!2V$h;Lm|i!#enQ{0O3a}~hhYn6$`egi`b17v>#{p{-MQrjQe6`as9%gAxZ)Vu1+(Qy_>5Px?R(JoBXH0dq_dFl)@a8+4h0f$^KC zi(^Q|t&&Op8N!Yt$M(-O$uz%h5-OCdqP4}W^_RGdev?8I$JJ)`)~-hj6~y*LX;pks z>grNos8BJXOSE5fA%|Rbrr`etO&htgR$M%mRW|u<+2pw&_g?J{{CF@wea6py-_y$G zU5HZdxp~`mcBX_HTSw^;_M|R}+l6o5UJg)q5|-3E&hz=qt9yrEoO$DR<;;Sxzb!?D zQb+&9R^)xi{-=3Y3Ju6c#%2L3H@8+~dH<|Zx@eQ%RDmr`8kDjS0 zuU~VvV&?5isUW7TogOe^d!-Zm{-`sYk(h4(wRljRU1(ct9NV`BSneR$3HH|_iW4|cC3gTe~DWM4fv(73G delta 598 zcmV-c0;&DR3*rQj7k>>11^@s6a_i)L00001b5ch_0Itp)=>Px#24YJ`L;(K){{a7> zy{D4^000SaNLh0L00F}Q00F}RI(wh600007bV*G`2iXf76e~KSeks2I00H7jL_t(2 z&ux-FYg1tu#eeU6Z~omRO*BlJ4L4V?=euF{=v7HM200sR3 zb#M?|EEZb97HMeGG`BY~O_RnZP44^N*TJMj@W9!g!}FZ;9KjIYS~g>}T*klr3LFrqmmtR<_*MML&D*)Wp?7SUGzD>+5=H!)G27^8!zkzP<(XMytQn`c7Ng@Qg>hGWa2s(y*3+L4Q@@If~ANglBuxr<~rwkW9wjW3ItMEW;rqY zD2JuMcfof#ZF-=q2wjE2Pf}Nd?2Gw{0+0lxO-RnjWCpa0(JhQ>QabQ3caAZt1C~NM z5Oc&dFa@03wiC$+^XspmyG_tJVrSRk({_L4n;X{xGJjE#0vy1y1OImeQ^}$B5u!{y z4No5QaNFWiG?6wWg*XE&K-j)-N=EO_VR?v{0$}l>VjM;bzJHE-fCh~Gx)bDE`zK`? z=^~@*zibr4?(=u;6`%`fxv*5PmCE{cW6!A&(ukP4Bq2@hhvTk)^j9~FgCoEL{L$f| zr}q=L^G}Z>g?K8M4o6I?e<9AAC(?UX=&WoO2Nj?S)W<~vu!nz`8l^P!&>e2*j2a>M k7ZM1KQUc6S=#O{r56n>AlVb^xGXMYp07*qoM6N<$f}N8NKL7v# diff --git a/resources/images/impl/gui/common/statusicons/dnd.png b/resources/images/impl/gui/common/statusicons/dnd.png index 1e24bc90c690010072187cf554ca3c278633277c..7f47cd2f81398b3f5d86797e455fdfa8d13f207e 100644 GIT binary patch literal 1416 zcmeAS@N?(olHy`uVBq!ia0vp@K+MO%1|+}KPrC%9BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFlS_jM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWv2L<~p`n7AnVzAE zshOFfj)IYap^?4;5Si&3npl~dSs9rtK!Fm_wxX0Ys~{IQs9ivwtx`rwNr9EVetCJh zUb(Seeo?xx^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal@=Hr> zm4GgVcpk{1iHq`zbF$JDTz5Q`N^fZsd*)yF1AWQ8NHOu6e~9ub2mdn za}xt|BLg!FLqkh*3kxSlOBYKcCpQC2H%FKm*z{Uh8oC%68JRdbIXN2|x*9r~yID9n znOImlnK&637&yc9dgc|EB<3Zj!tBii+6&cdj90Ifb5UwyNq$jCetr%t1q5W|m*f{` zK@kM;uS;rCW?5>ATTyi#^&Xq%?7Z*tN1BjB8pvIyNK) zn$sy>C(X;>?Y&?AuKe8INr@63M=NU!ZFv{B@Hr_y z?0cYmCR~P%KiEc7Rq0@ls($^Ut5>;q?qrqRsi!jkP{8-^0{3FvAAL-m)-pL>Nyz7P zsOeTqp*BeUQL^WBFo8Hs$aUT)N!a_&`^lx|u3{k!H23->Y}%yziG zU&ona!48pKSGx|}G7>sf-26Z)Moz!QNqx?IhAf_n&idx(Th8&tEKQx0cExFa+06xK zzK49i!}YIsW#I{f*Y6)p<}wmWd2QCPMUd;zlfdvu5ihr?{L(L#m8JndG#&!nwZo?t>p_VbKBmXG;*K!+3LM<|IbVP+nVBOx$=@VuDRaMV-e9z`Pr$M3k?R*z|#aT*wxeXY8x?H<{wnL`^ PR5p6L`njxgN@xNAQ`r3f delta 555 zcmV+`0@VG83%3N27k>>11^@s6a_i)L00001b5ch_0Itp)=>Px#24YJ`L;(K){{a7> zy{D4^000SaNLh0L00G$m00G$nC>unU00007bV*G`2iXf76eax00Fm2L_t(2 z&vlYLPZVJkg`an3*dYTXfDWM%3MpvZ#8}X1vyHI7fI<@rdw(iRO-xK|D2$E2LL$Kq zNeBjvrGTrAhE?~S&5mqlhs^AJzZNr5g7G9b=N9MWenN#9riQxyJX%;dN|u&_;oRJj zFT{)2Fbim0fBEKn5ti15;vg@!jb9 zx}7Hpnd_3eZhy(Xj~W}ZtZsL?pXXa2!2=5I93C61t9I1u5lP8VNgRM!J&cMvU^5Im%{!4iJp)~xUyi+bNe1=ioVW!$rt(xH+ t=vABpN+eurUjs$}y~>M9m{vIezX6xA%nBoWM5X`$002ovPDHLkV1mLR@PPmT diff --git a/resources/images/impl/gui/common/statusicons/freeForChat.png b/resources/images/impl/gui/common/statusicons/freeForChat.png index 41365b2f605e6c8a967827714e8c2d2c294e536e..2b68e71c6434b97c89166beebc960445eb19ad2b 100644 GIT binary patch literal 1552 zcmbVMeM}Q)7_S%%f;bp{ZOPo_aH5P}@2;gEXDjx4J?ONEP?aq>J+246KzrqS9R<`e zW+sRloEuX|MwsYiRM0tOso>|PFf{~S6frE!X`B*2qfD9E_78a6?uSUvbvS>>hl^I;YGdW@cct3c*_8eGVk<8grmXIeEGa@H5+J#&WvN)N1 zE|X*IB}LtwUM3sw;BDDbwsjG~3QmLx>L5O+8=z$}eTvV`umzk1<#PGF%K+awbOeTY zy8&LFY(=eZ6X)R5N<}WKG~LFQ7O*-yoH8HM`v^ebI3DRD`RPww)>hZrc%!-~9H z;sqBJWMpy$uVjFMr%yw0x~grF;o10bE-*797>+>onKGFyY`%pu+I;=C%!Q7)B~uK_?nQW&Y3Qfbfju>~kKXQc z$Sa~NGBkVP?`k$6{s?kGj>AzT&rTUQwW+dt!@!)k+M4~d0{fS}89?cVrrkWQv?grr zS@iL}&b~<_gB?BB>i#JC9k1mY4qWLeo6sE_KO-UHWq(}9?6fmqY*|j|cgMpOhrYa= z;*|#B*TAQMYh7y~uO51nBhZJWv{t+TpvFn#4>`^eQntID6KQm&_)!xDx*=z4g( zJHpq7f9QYGB)7ZtTPK$eoV(xDp!JSB+jWdQoxXis)RsHpNzktJn7_u?yg+%{_slj*1WHy!z;Qj9jyB^cG>C1i_p|-4+H(Diu8w{ zyh|^pyCr&Ws3FZOJYYvx9f5|eVd~sjFS2q8y1{Ucl zQ6#J{t_M}P^jDrx)+@}TUW=(oTykkP68Fix#+0y0vNriWv;CKY9|ix>7IQk)LawU# E8|>spTL1t6 delta 663 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 delta 607 zcmV-l0-*h&3+n`s7k>>11^@s6a_i)L00001b5ch_0Itp)=>Px#24YJ`L;(K){{a7> zy{D4^000SaNLh0L00F}Q00F}RI(wh600007bV*G`2iXf76eti<=(DN-00HYsL_t(2 z&ux-1OcP-Mg}=N1u9PFC)S6-p)JjAL2aSmgGB^<9WSmIUIDa}gx|^6d$-pEok~lju zF_2f@{%{cmwYczBi77ZE~^h|3un@!m-E@l z(TcrQZ!{0Ko16Z#^|yxyfaIj^yw2Twx^#PYtx;6Azptv^mfCVQ)N=Kmdi?%IW%@<- zAz%U;fS8%fWq-#D`K9M~7cW?5igxfjb{(Zl3S$$)n~g71y+-t*QwdvuG|UmTFgyLE z;6^rm>C%f_deWgUySQPC4W~%vS~Na+-=cuGKbFJA@+W^C zCgYw*g|2Z{M)M&`{Sl@44wUR|%PF7)2CcY_M>3#bFZaY*B6s8l?w6+=gW t2h;!u2mz)2!>q@55pj`NApurCDSr z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y) zTAW{6lnjiIG-a4(VA$ce2&53`8Y};zOkkuW=D6f1m*%GCm3X??DgkBmQZiGl3`{Ky z3=Pdq49txT%q$EIEeu^v-Av3}j7%+E%v>#vU}j*`>*i+UYHH%*Y~gBPW@zYYXlY?+ z?Br%)V(4UI4Akxf)9aa6T#}fVoC>oy6KF3~uM=LqR?bDKi6!|(A^G_^uoMuGkzbNu zoRMFk;2dnK;G3A7nFr#7q6gwzm(-%nveXo}qWoM1aQIqfVzJ-Al90b4dQ->=Gku_A z^g)RODY3wWfGH5fgeQF<2cCIS^ME;~2$(hQv#2*RFfhe=x;TbZ+?o>Vn<4BdGVibF z+H0+|zAVW-d3LhIQt__|eDf|j3pz`2EqdVjA#J@@l{UxMSB@Ll4fPnAk9vD@FZ&nc z?aF_!S+MECSu+LS*=jeBygzx{NN4x$H_iR#pN&4ho&8luc4uGT~O z`-__oKFCM>Qe*=b1Lw$zL&f z8>TjSr}UFVfrlEFkAJJU3f|58t}-n-kYhc=uHQ;^(+=-?YH=5 zJ|H7*#(8xfrw-%%hRZUKRqp>j`aJ4w+3&2CA-BSI=I4J>m@)kX3;RFa4`);-FHu{2 zyd*ZhtuHX>Sfls>%lQRD5B=Z04q$xvHO0u%v&FdMV8wx*di4Rq$GgS)k1y9Ot9Sgt z{7Wd5`&#YxhL@ZkrxYKYSQ7LmrBJH3?QPmjwa+Zsih}?2B?b1h?^6`rXRc|YZf>Za z|Jp_-v+7FoG0`WC8=iX3m@}npZCJHa)Wqev91BmRZ7!Brw|;|v#jAqr+uj~6+PSCi z?fiwDo|j&JnUW|`enD5f(xYZ|*y_~{t-7WM995jmXEXe5?ESEh`AxBKM?Dh{LyPj) UIJvh$A3!Czr>mdKI;Vst082JZB>(^b literal 839 zcmV-N1GxN&P)nu~K~y-6eUm$A6k!yF&;QSBXJ%(+H)?fUwS+}o&6U;|J{_v$Md;- zev9omaI;xBwhc|w&`eWMLQEk~fvZud)Zp|Z>ibayK?aua&j$3{Z47!d3%d#M(eDmYXnaf_K zvQuL$5DN=4vR4u-_l6DAw&V1##PM^+*aOFP4NE$?v0I^UESSpec#{8IfrbCwS9CHx!t=V=H?K+dxsU*72fOD z3BoYTKYjWszkc0C9oIdl8^+csijbx$l$4;9!ujw4`9cBm+czwAb|SiP0i?HABbt^4 z0AiW}D7`{8N>4}2%Sh7{TnK;=Xu1xsUI+C&q_eXK1_u$$%piF748%0SlB5i!0742h zNs{VH9HY@_KuQThDGbAaL01E!ZEeUrdIaO;OAy-z+qeN3H-$PB4%32N4)YL+=Ry%2h;R#|GM`XROi^atw002ovPDHLkV1gafb)f(N diff --git a/resources/images/impl/gui/common/videoCall16x16.png b/resources/images/impl/gui/common/videoCall16x16.png index 39d82d57ca81042e9ada9da76a7f777d033fb92a..55717856d4b2a7211d2283e76cb724be4711a420 100644 GIT binary patch literal 1078 zcmaJ=O-K|`9G@(|6Eu>nLp(;pqTTsg_rt+e*PS&N9g%gZ^^~(SPo38JXy)0DLJ1JUUHiw;?q^+sLopbflv@BjGye*fS9z5ko)?mAUb zcBG6Th>Cc-kic^l9{Wp*@PFdi>3KXIMzIv?G5S$fvLF#rj5GvsO&Wj+C@CZ77hxko z>?PG?3Z=wOUN$sJaxs*nnV3xwjm?fJ$r*@18V;y>m|T85PXbj5lV|)QBbre-sJ4$< zuxGR@DUW9428C>H0*wxj1vH2x;Alg-%{yUoU6;pecbg``Is|3H+Jp z&11p`Mmv&8vlQc&ln099|Dl?;g|<-wZu{L)*iMd^kWN6`7`9}5as9P!DwB^|P(p^4 zG>oDADRvJU$gl?u6GVIbK$K)vcjI-uDDrXLMv^YWxDY0>0;Q@7&#)n;J`@UuqLF%* zjj^FNUnnAQ!2rXx24X@a&lL=LSc5vsbCqpwXjiV=3Yv*C3(!(8K&8zxG_YPWukPT5 z^#xlaK_P(k*qyy>aFyM?xZIuVps^X+z1V*)I=_Xx$6ao6A~)Q<^mxote~XDr50DA zA!rI*x+Pj_ik7QEXsW3_2X&|^3@p*0p{XSyxJX3HG(F_BDT$`@yMI3#R# z@rAi0$g0GkiWHhep-L2*NFfueY}d?G<>l$XFpM7lB)n1o-m@~d>ER4sg~7`OP|l!m z2F4i_g~7|&xQ3Zv*J>01qya$Jbv_vgoC}}Cy$lD5Tw}hmsVIQ-apH6_vK~DdcJT>n zgSwpn03gbIC~wk0*;D3aW!2s*Kk$bqw z?3T^f_ddYTtvdxeR_iOiwPED5*U`sfz5oE!)2rV)np;h~YL=1!uoK_DyGmWI-sf^z zVYFL5>mNDuQw;#$$=1Kq1NIA{#CfHjxO4kVFI(F>Dq{$z`%g0>Yqz77Zd6 zD-I4752VVp9l(O9h*}3h1Vs^%84>ZC)&p#(f}(VTVEe=IM|XDj`@VPI=Xvkh{3ywa znbYS@ClClTMd7d%U+3e`0()EheJ0ug#1{`t5R1ulNm#nVfD(90T_OsIG>T+YiYk=m zO)Y2;fnbxOlE-4P;z%x{(@+#v9g0b#$I%2rP^d|-KvGc*NJNuW+FAVl97r)N^)oj5M<)w1R4}m049xEYvh`O$>Y3Sd~X#~$-uY@ zmKsd{=v1sY3JB8~P=G~Y_#-qB1lVi}$YinEpdUb|fpjVjzuEpElgnar=>fpRMaHce zlu2AEES#`~pMuFL7^de^sp;wIlyn9~XGo@k5CmB{=yZQv!{2DuVhWSL*0^|*0Y;68 zL8Zr3IxS#jR3z%suwXLo>BkT>da?KuvDP?|C_H6UlR{4gDKx4^V~uNE+lWcgf8F@3 zwoz`@qf{ws)TJ2^ydFu5C&75`zHG>1M%LIE5Op9jGZoiC(8Lf$0D=dcjO7ciM1n+Nd(ASeKN0W=&Nzk9?&2T-ar3F&Y^J_5KF+|^Q=M!ojie6{-3N- zac8L3_V`b`Op5Rxv~E8&KYsW$KByL-83R5XqXWCH;WL*if_ZY&y{edX;jYnh%RHLX zx@t>LIi)J80_WLq<6ld7PP~mywj-UgVu9EG<9iF;FwnBWVlVQoJbZX3r8CSqeBQPt zZm|dZpLq53be(V8kR<6_mHg*(ZXmmN;V{RT)IM@yWNa*O40>JP9q29Ubo8lX%NbDI zQ{`5^lC&kH$HygMV0cA-)V2d{(|oQUXPwDiqVaU-N*vwfQQZc`gf=*HoaWnQ`}}4wn52!*rsBH zcaUx=TQA~UW*#f6TP0T2@yjK1v#tyF-Pva$zT9~kdGz|p*pS1#;ok%?qD$t7Lritr z8Sboxhqn(+MQ*w5xYU zAphKDJLPdp`Kt%pyXO?#KkqXAeN)sL4}`I$&~IhL_b>P*FJuwrev68x((S$a8J6Z3 zTbt|!gw%p9d9@y#X;tAfj;k6qU9}s6ggHdfD2Y_qdUL@*>sg;2v#%2m5hX*_f7c1- zlCoX%vBtvY?Zxc7`P7JSMd&kbj>~d~!$WR4mMWWjIop^2SWjucJ4}jy)iBE;`y!1H znDKk*H(|olL$)`(-$ySn*Bsa#Iq)hy*;REi;X}Xa+#i*Fq42u>9SOJX;F{d$nQ5%N z6Qv}#uk9XtPAMKdx=d_S+b49+KP5IAJBA|7rI!kuKjaNAY*@PNB(GigF75r=n!d3; zM_OCR5x!aO{DMWtVpb=#Ru*w@bC!R_Yj2dg*;Md;-Ds|joxR6=-p)0yanB=pkD0hB za+GN~F=zWlyR3$gj?2L_sz<7l54w4>8{d>S->Mg_ezV_a<%0Fb84JBcdET-gc%8i! zs-vT_;_n1%rw+edk|^uMwQJq43}@40++Ee>-Aj=c0@4SJWG`%#*NX}+(1{Oo_p&or z=N)nFYFO_zqv9ZJLc`0V6OMQjZQUKO49q(>^H}Sh(0HfnS<*G_KW83y@3xhex4$WQ z`79(cti(4Sj`iDn#bn<7Sc)B3TwJ5E>wo*S^1b^;!qvixMGvOP9$0^9B7p?{iNA5% EKYjqia{vGU literal 1013 zcmV00004b3#c}2nYxW zd6~-+ zZTT=4OMP;~V(-Ob|Lb3C{VXLS0L0UUSAm1TE+EVQI}P9*FqNGso&ZoHLOfk~Q?1%` zBJAA(U8})65DVUb7{r^qe0zuAyu~%ZEF<>z(d#`hj50!!wfUo%huXPl(t& zq7i8_?64Bs^gD@d(?m)^e*4?OK;f+U{r%&p@O+@6p8aB$M_uX6Uc{SlaQBBQ(?2Wi zPu?^^TX!3*lQdlQb=SzD=fo%4{C4~_wzeO5F#>iV25~y?ZvC)NW%_5swU3`t^>shF z^7k(wwztW&#a2uU)K`Q2_G96?$)cHm?=8{gmzu3JAbzKci_b_ja;Q~at3;>(Y?(K{ia1gfvYBT~@|w>PbYL7}7LF`INB@OB^WFPzoYMTEn?> zSj}EdpRcfJwn8MKNmHCn>F1JqWzwTWbFyfdy*_}o4y_$$=5i$3a%i$a0MZ#sTUu>d zU9GIfdWEjvK*fKdwc)1T%=MDN8pFkfKH^ju%2ycftzfO?(p80Z5a5z4;?n=fN~anV z3rMWj-``6bJj=QD^1 zk38V2LBNsr5?Tu!1GSqVvjtGl+;2j1cbb>86UE9uJhx)waA!}x00000NkvXXu0mjfKF#9m diff --git a/resources/images/impl/gui/lookandfeel/blueBackground.png b/resources/images/impl/gui/lookandfeel/blueBackground.png new file mode 100644 index 0000000000000000000000000000000000000000..5e7f771a8a4f9604946d4dde8e8b18973d9abbc1 GIT binary patch literal 946 zcmaJ=J#W)M7`~PcQBfsE+UewU0EyT>H*sPsrgCG4TEbD3L?UAy`;u6xea60ECnFmZ zzX0(AkQf+P7y=`IfsGLf#9!c?#wi2AvhLn{^*qn}aqqqAcAgv^o*V)Ij;u?g2f*DG zv-e8-Y%Tlb9@~zoIi!6url}KSpnGJ5p%pk2+{2Eyc>WbP0l0JO4~BGTKUG~4@J^25 zvmjz@0Gj7nR)J)^nx+=4Cx4^+Qgw8bXCaIy_g)I_eSmVzsu80tnWgb;)vWy-+7h8tLF%91LJ=N5!vU!1&mf27cGLdey^+sJbtCC{YWwBjw4dTuN9MXd8 z-E#Gv+1*VhBz*lUan>h6mQzf=TE#W9iBayKe`;u6Redc^2PDVEP zG5i4rX8r;jI}#HNr~~ITP8kT6?Yn#RJkR@i@4KCsM~4p%B}qE+&YhlE55#xtU{CyK z!~C9D?sIp*FX)IbFe6ekq(cI{7>`Mh;Bfio3u#Ew{==w0-~;~^3TUk00;A+{D%g_L zILlKUObG`=GL8~U{_*Lv45HAIU)OxiPi-=Z&R2|FtUCQ*H4V&AK6?QgIT8Xf;TYuc zEXh!A$!lFC_JvuM!5YG+mV6!5!0!T^G6HJKNhQ!A1csr&YRxd@g(K8++8bZuWXTiGQ>3bk#X?z}D3py=XqslBq3acasAS88lEU2E1P7SGKqqzIZjomXhljT(D(ljjpHpk<2`Z{?>~jJ z{xT(Mk7RVt0@1k9ap5XOHY1o*)~9qi{6s3&1ekPNuy|YEUle-8*aEe7JDaG6~U-QYyWC>X%h2OY`23e4%^WuiI{gL w2K(yQ?GNHo-1VGhKmR(s`u+3iz9HSYlv>aCzO|ox7nezrJh$U~Y+b(l1I8H}*Z=?k literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/lookandfeel/blueCurves.png b/resources/images/impl/gui/lookandfeel/blueCurves.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc7185b129832cb9ddfb41d183f123369475db3 GIT binary patch literal 1484 zcmeAS@N?(olHy`uVBq!ia0y~y;NA~p%W<#)$+&J0P9P;&;u=vBoS#-wo>-L1;Fyx1 zl&avFo0y&&l$w}QS$HzlhJk@uB{L+VB*NFnDmgz_FA=0huOhbqsGEVo#=fE;F*!T6 zL?J0PJu}Z%>HY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBXRzL%C zQ%e#RDspr3imfVamB8j&0ofp7eI*63l9Fs&C5WRUd;=7m^NUgyO!bU)lMM_F70k@^ z3{6bU%nWrDj0_Bo^bLT>OxMuF%GAut$Xo#mlz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1?ONh1r6WC(sS486?E6f0LJb0=dnLuY4K3r9mkS3^e^H%AL|GglKM zOILF<12>pnm;B_?+|;}hnBEkGUKgBtL5U%^0BEyIYEfocYKmJ?ey#%8(^i?-+~R0r z=IUhV1~ktSyIUZ7Q?R)Otk=i@r(S)aWAs5$ixkx`Az=CeG2sap$bl#Q)I4B%F9IfP zxkmZP3=B+mo-U3d6}R5pIq1n8DAM}y%!H*aCW;$dc5K(s<_Jq>oV0hEz=lqV&(|K; zPGB#au=$6bg~8^%ujiX@y%q+}RS;rA&foXHH+~DNUYR=wlx3ly!Ftz~zOC19eJ`p0 zSsVU)RqkDOm=ps;gTnJ$b^HFxgdHkJ2r_*7a_z4{T;2bbxp!C)!VM1BKYrT%K^93Q zgnzR%g3B<$?++h>>tOTI8o^`uc;r12?}+ezW&~Hjf9Pn;Kk{CDIl}1-3Rg;xym#M@ zB69pn)N6VFt>zopr0LBcUVE_OC literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/lookandfeel/blueCurvesTop.png b/resources/images/impl/gui/lookandfeel/blueCurvesTop.png new file mode 100644 index 0000000000000000000000000000000000000000..db6cad3d8d8d035ec2aba19d337233a755d7773b GIT binary patch literal 698 zcmeAS@N?(olHy`uVBq!ia0y~y;NA~p%W<#)$+&J0P9Vit9OUlAui(P=vF21s-{Fws(XteHwcsvLNV3E=qQp5r zH#aq}gu%HeHL)Z$MWH;iBtya7(>EZzkx!g~fl1WU#WAGf*4tYfeUC5*xLn*=>f+X+ zCZKDvR9kBY*E$)l4H*w-F&sH|fzhRd^PYG4;?8;|pxH3+behV{ne8gmRs22k&LBw~ zu>bAxY0{I*+uL3n8TWg}O}=vz- zb&mUt2!R)6yKfodL27L?SgqfWD&fEs*$I0Ze6uS-(fFAATaz{ lS$n^J4=~VE)sRGI)iS%hmNYJpb*TV}db;|#taD0e0symmmV^KR literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/lookandfeel/blueIndicator.png b/resources/images/impl/gui/lookandfeel/blueIndicator.png new file mode 100644 index 0000000000000000000000000000000000000000..23fe03f9baab8e0c5769454323e220834ebbe7dd GIT binary patch literal 1046 zcmaJ=Pe>F|9G+0tR0Jak^$@SIAfw&cS>0K8bklWbRu>%E)}@v@3G_U=2_Pf>Lj zwR8q&q)}c$x=(g7K1VkRo1*#$98*>b5Q8ktX-0(p_WCUiG&Mrs3`%~5J3JB4A(nxoPa8JxMCe0Zp6p#SLxV#IE=1^~pfXYt#E=C+(AVu% z{45JN&d2ryIgY&w0)95Y_{qz8*&aT~@qrLHerV#&QYZP85I^=sP7ykfvB@(`u~_sK zyM4&YF>E*-b~OS4FF|P;m1>LO58uoFS zNWmCKHW}9EcT=hWCF%cAU9X~ToPsCu{!`da&zg`)K^x6j3TfPAr|Zh(V-}P#veF1m zSE`uIBaG}kGC^#d1D7RP(G1tnb;yt;K4I8cHWZi;A~ezPX`0H5L!qH=F5r)ey-}7G z*{BeY_J%mIClD4xoIhUS3P_pJp@A!0^@PjT}M<4H;ebKnN{iZy%*Ie!^IpN|=JZ&!j rDDAdCcW$+;TO9};cx6*cW-J!91~WDCg%SDljl@E literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/lookandfeel/box-bg.png b/resources/images/impl/gui/lookandfeel/box-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..48baa54932edb6d482e025b2928ea393e8101b7e GIT binary patch literal 3134 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 literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^AhrYt8<0G#lcNiy7>k44ofy`glX(f`uqAoByDx`7I;J!Gcd4+f-vJoCca-lLG}_)Usv{zO64!_l=ltB< z)VvY~=c3falGGH1^30M91$R&1fbd2>aiF5do-U3d8t1o8bo4vqAmVU;ew}x8kjBCn zr#SLFRF1K(vuwL}Uw%$1LUSqGzsho{UC)L>}@9Wk-;KnX_{WSX{$6v`F z#UY`k>@^G@-)8yR=~=Wgop*?t67I8HxXyX@^+Mx#0ryL~Qpp-_mP&UYrJBho9duq0 ztm19FExNkk;y(^n1GgVrrs;_sux#II+jZ}^^2YLwvF}yq)qk-Un_FD*{=b;N?vCDt d>d(dZGl+7N*fVe+^E!? zjTJ|Anc0isJCPS+4+V6}XgAOr&NC#^ehPkQS^LC6JSY??8JE~0 z2Uwo-{WPzhb&RX(I`6oetiLD-zG&t(guGG`V@CrpA> zBwf`-H7km;p_oH#If$_xIB@9KBYp>1`B1E;N6^M7sv*=KPQXG7VHCGeNb8FdecrMi zFGv*^(gyYOHDKi3gl;iHKHaOZ<{c0LFa!Yzd@iT=Ggo*;RCLvpWHVdL>IO5wy8lx( zjs(M{zBFpiy^x+3tEURo3YRUU=_qyYo3&%&!eEmLK zI(K=e`uTQ!^TpQa-V$4Rv;9={L_3qfT*nMCencDmEtb6}a{q4I?CmTz@cg}jZ du1`to(FyADllePK51;R*D_b@z#_rsWtv{_ROTPdB delta 223 zcmbQw@tbjiNGZx^prw85kJYlDyqr82*Fcg1yTp14TFsJR*x37}!HWm~kT$ z-!Gsbdx@v7EBj3rF+p>YcY0q=0fi(>Tq8=H^K)}k^GX<;i&7IyQd1PlGfOfQ+&z5* z!W;R-fr`RBT^vI+&L`j5n0&mRO^M<0P4@J>xR##3`30hyK_97g+w`{QUSG%#x80-^cIoF#dRbh0`uA6}_u`Yn&J)1+^CM TnmP9<&f@m$7`B5~Q9guX#qP0MWu39ce6GU%c)z$O~h{ysgns$P^@x@mZ zX&MP?B$j2ft_(|N|BMHRX9n~7%!Do)RNoV1Z&kts7DO6ZwI*#}swSvaUJ365F+-87 zDrh1>tvNNC9U^7NgJg`3gmo4GlILj+Vf8yjl-`Dqt2Ip{lOPsjBb z?`eW@?(S?TP{iIyPkSaViZ-b@df9?D$|wm6f1wT2kkZL`8i06|jdLt703Zs0Qw3Rx zE25lECb=fZM%b7vr=rP-oKlmx5-P?Dye!HQF&c@)6+vxcGq#U3TZc`%CbrwartXN9 zWDjb{@$!x{+3bL!l7k$-_*e@BkXGc@*&R{yZJb>h35yAD2f&(#keRKPc6Tg$@RS3dqo8guuI zth|1>?dIvtpAB>u&b4p;WJ}?+MW>9ton069v+Z)<*C%IJI&b~H)&H~h?WdDnTjtx2 ziOW>}*U0jhi&M`e$_xIXBk!Gj)bD)usQp`Nu~>g{CI9@7J=YG__gtm^ZfPfuT|Be6 T{PS%+_@`vlLFGj1x!HdJlx3Mq literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^AhrYt8<0G#lcNiy7>k44ofy`glX(f`uqAoByDx`7I;J!Gcd4+f-vJoCca-lLG}_)Usv{dU$-8jSjgKtfv$i8m>4O@GA?HBlRai30@C2>Q(JgrP8DS>tKGLDJ|uh0E` z*Q&iq=d;dCM*ah~1&g=VEo`l*nO%K9!e`@xbM_j~jrZj97_hC|dQHs1=brZcc_yjn zzI>HTw`0s}cmM~CNI-GJlXisLA?W(1*{6oxIZs0bPb*AGw8h^{+@~*!c zOb%B|xBsYpe1Fl_GUJPu+fxgFuik$DhRN9=lV!hKwN<1)^*<8-u&i!*X}oJTFu)i* MUHx3vIVCg!0AjYPp#T5? diff --git a/resources/images/impl/gui/lookandfeel/tabLeft.png b/resources/images/impl/gui/lookandfeel/tabLeft.png index c8e32f8869f87cb03df02a34fc1a3c69087d455c..9da0027168593c68ed6c0e740603e5d9f0eb81ef 100644 GIT binary patch literal 1088 zcmbVL&ui0A91m_2EesDjaPDBp@E6$pZ1aoN*(Ir~*gCqZ6&02yuWQ`$W67J%cCm98 z=g!{!14Ohq7${88i+J!T>cNZXapG-=t1taAJ&YX;N#1+k_x*gnzgH&m7y4tzVi<L@FdB_4Vqza zo+p_^lINMTI7>4uMWdIGGYL7#%dCKR9s*hO&5B%5GaXy#lp?ASdNM`TYBjRPk*+^Y zF_I)j94s408u4JkfqEEsg5fTM3IfBoJZQNN9x>`=cOIq)vxLVo)EP%gm?5Z6U7d$`}K;X{%2C7G8xC=(P+uKm2h`f<6`xYvSKC8OM zybT&|vNV4~_mH>kQEu1xay z>6~s@P9!)J6{sDr3ViDhFf+bu-|v2We}DXG@8R(i zLqkKaH|{p4D$7@XE*-@m(y!js`|5VH*&Nl=v9&`3+{%ai%Zqia2YY-&vcDc&htW)D LwY>UdZ0g=0BGp{J literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^AhrYt8<0G#lcNiy7>k44ofy`glX(f`uqAoByDx`7I;J!Gcd4+f-vJoCca-lLG}_)Usv{aiF3@o-U3d8t0!*Fw8pQAi$EnBvL=)X23bM zfUJU&uCF}5)!Ep;OSsmx)~lV3OOVeHw0m9fqOEh;i@Yc=%^cJ7pN&5-^&H@Q!C1nq z@quqn)r4g8_G zXL$q<-Ys8#K>Ndm@3sfdWlGz2aTvNyOI0k(X-}lY;^ZEYXTWc-N&fJ*cIBvGN zjN0rhVI$;G!q6NyzmO-MzlAC2;mt5M`EMUS@*oUM{%*~c+{D8DaCw;G^TWb1xC0Ac;{_ z7`m7%tb0wJ7?tDjuA&bUXO+(fcZyOPRC&DppB9mu- zgdhwIr%`txtSeGomQ)QwU4yc%S*VV5%V{*^lH*LQya*lHQWxz8>x9j)nri7*RadIj zI@0VC+l({n#Xc_mhRiQ=97mER`&_JHrP!k+?GUnEPQY59P?GgY0<3iv+;lxZj0?rB zqCw+)5l+L$IB-%Dfl-Bx@Qer`l4U4MwVE}~T$8k_X6d$Cw-raR5I?~N|5G)Q1tS*Y z@z1!FDmH_Kcsl&-a=Jb^W;>Iz<+y+Je2Og=Y@$XdKknUo|M2Q`eDvn@U6Cn-X6ietoJuIXE_7e4oAYfZN{}^GmPZUM$wKX}8e3#Rt#+06AqsZ~y=R delta 225 zcmZqX_{2CtvYw5Bf#I-DjxLa5EDmyaVpw-h<|UBBmgMd3!tfsi7wla=87RV8;1OBO zz`z~~!i*c4_b?HjAm58DSDTrdzJ zcre67#FNC6UN}fh{0tWp_2AJ9M?IKmj2JXAF@mpbLl1<5P22b0|NVcz|My%^_u2Zo z#yWx^>eHQa7O%DVYd8?Vf3}%l!pm`#>PNkH9u-v=5=q@2gdlCILof?fef-KB7$=B* z1tZsw`ZHakW}6|^*9nzO2croh-d1u{Z5Sdj2!{+SL4JL>?E2st7}6^q4C zF&whpA&L1KuP_WBp?Q|(Vhkh17&aA?WL_2|C7EQa9J^sg7O7M%4_<7o7GBRE}4Mt}zC6#kEbaong_~#REoWS%#&fQK=kxjE;q4l91x~ zR78nLGFidu|C2QeJ45;H@lU%{MYsq3?N0OK!_N3X3(t&;hvVtkiMM#LCev~-%_nVd2JrstS)Metfzx4?fHtZQk5h+pzij*Q@oP z-?W+4$*o4F=HSfTw#lhu^!moe^!=_=ffgeDaAjqBv8HuvYisrp%d%68_ncd=iRGJ1 n;M&^k^*b+zn=hSgzgk0lK78)Mi}%l;_(Psfb<4{g15k44ofy`glX(f`uqAoByDx`7I;J!Gcd4+f-vJoCca-lLG}_)Usv{wc6x=<11Hv2m#DR+LdAc};Xq>-0!O-hyfPm|H?&e5`2a~O= zeGueP38OhHy+GdW*Dm4;=s{ZC}X%;_ydDY)qBwcrLpO^&q^pCHV|-Ps9?+6`+e5Z zDL48$0zySy0~zixd}mmfdt1MgJI(F>_ahSa4av(^&6zz#C^eEPhOvB7&?9RX7D30* z_4-{5mGjOoS`{ba%JN{t>xsc|-Ye`ycI( Z!itk;Kg?XOxCrP|22WQ%mvv4FO#p4hl2-r# diff --git a/resources/images/impl/gui/lookandfeel/yellowBackground.png b/resources/images/impl/gui/lookandfeel/yellowBackground.png new file mode 100644 index 0000000000000000000000000000000000000000..5e7f771a8a4f9604946d4dde8e8b18973d9abbc1 GIT binary patch literal 946 zcmaJ=J#W)M7`~PcQBfsE+UewU0EyT>H*sPsrgCG4TEbD3L?UAy`;u6xea60ECnFmZ zzX0(AkQf+P7y=`IfsGLf#9!c?#wi2AvhLn{^*qn}aqqqAcAgv^o*V)Ij;u?g2f*DG zv-e8-Y%Tlb9@~zoIi!6url}KSpnGJ5p%pk2+{2Eyc>WbP0l0JO4~BGTKUG~4@J^25 zvmjz@0Gj7nR)J)^nx+=4Cx4^+Qgw8bXCaIy_g)I_eSmVzsu80tnWgb;)vWy-+7h8tLF%91LJ=N5!vU!1&mf27cGLdey^+sJbtCC{YWwBjw4dTuN9MXd8 z-E#Gv+1*VhBz*lUan>h6mQzf=TE#W9iBayKe`;u6Redc^2PDVEP zG5i4rX8r;jI}#HNr~~ITP8kT6?Yn#RJkR@i@4KCsM~4p%B}qE+&YhlE55#xtU{CyK z!~C9D?sIp*FX)IbFe6ekq(cI{7>`Mh;Bfio3u#Ew{==w0-~;~^3TUk00;A+{D%g_L zILlKUObG`=GL8~U{_*Lv45HAIU)OxiPi-=Z&R2|FtUCQ*H4V&AK6?QgIT8Xf;TYuc zEXh!A$!lFC_JvuM!5YG+mV6!5!0!T^G6HJKNhQ!A1csr&YRxd@g(K8++8bZuWXTiGQ>3bk#X?z}D3py=XqslBq3acasAS88lEU2E1P7SGKqqzIZjomXhljT(D(ljjpHpk<2`Z{?>~jJ z{xT(Mk7RVt0@1k9ap5XOHY1o*)~9qi{6s3&1ekPNuy|YEUle-8*aEe7JDaG6~U-QYyWC>X%h2OY`23e4%^WuiI{gL w2K(yQ?GNHo-1VGhKmR(s`u+3iz9HSYlv>aCzO|ox7nezrJh$U~Y+b(l1I8H}*Z=?k literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/lookandfeel/yellowCurves.png b/resources/images/impl/gui/lookandfeel/yellowCurves.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc7185b129832cb9ddfb41d183f123369475db3 GIT binary patch literal 1484 zcmeAS@N?(olHy`uVBq!ia0y~y;NA~p%W<#)$+&J0P9P;&;u=vBoS#-wo>-L1;Fyx1 zl&avFo0y&&l$w}QS$HzlhJk@uB{L+VB*NFnDmgz_FA=0huOhbqsGEVo#=fE;F*!T6 zL?J0PJu}Z%>HY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBXRzL%C zQ%e#RDspr3imfVamB8j&0ofp7eI*63l9Fs&C5WRUd;=7m^NUgyO!bU)lMM_F70k@^ z3{6bU%nWrDj0_Bo^bLT>OxMuF%GAut$Xo#mlz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1?ONh1r6WC(sS486?E6f0LJb0=dnLuY4K3r9mkS3^e^H%AL|GglKM zOILF<12>pnm;B_?+|;}hnBEkGUKgBtL5U%^0BEyIYEfocYKmJ?ey#%8(^i?-+~R0r z=IUhV1~ktSyIUZ7Q?R)Otk=i@r(S)aWAs5$ixkx`Az=CeG2sap$bl#Q)I4B%F9IfP zxkmZP3=B+mo-U3d6}R5pIq1n8DAM}y%!H*aCW;$dc5K(s<_Jq>oV0hEz=lqV&(|K; zPGB#au=$6bg~8^%ujiX@y%q+}RS;rA&foXHH+~DNUYR=wlx3ly!Ftz~zOC19eJ`p0 zSsVU)RqkDOm=ps;gTnJ$b^HFxgdHkJ2r_*7a_z4{T;2bbxp!C)!VM1BKYrT%K^93Q zgnzR%g3B<$?++h>>tOTI8o^`uc;r12?}+ezW&~Hjf9Pn;Kk{CDIl}1-3Rg;xym#M@ zB69pn)N6VFt>zopr0LBcUVE_OC literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/lookandfeel/yellowCurvesTop.png b/resources/images/impl/gui/lookandfeel/yellowCurvesTop.png new file mode 100644 index 0000000000000000000000000000000000000000..db6cad3d8d8d035ec2aba19d337233a755d7773b GIT binary patch literal 698 zcmeAS@N?(olHy`uVBq!ia0y~y;NA~p%W<#)$+&J0P9Vit9OUlAui(P=vF21s-{Fws(XteHwcsvLNV3E=qQp5r zH#aq}gu%HeHL)Z$MWH;iBtya7(>EZzkx!g~fl1WU#WAGf*4tYfeUC5*xLn*=>f+X+ zCZKDvR9kBY*E$)l4H*w-F&sH|fzhRd^PYG4;?8;|pxH3+behV{ne8gmRs22k&LBw~ zu>bAxY0{I*+uL3n8TWg}O}=vz- zb&mUt2!R)6yKfodL27L?SgqfWD&fEs*$I0Ze6uS-(fFAATaz{ lS$n^J4=~VE)sRGI)iS%hmNYJpb*TV}db;|#taD0e0symmmV^KR literal 0 HcmV?d00001 diff --git a/resources/images/impl/gui/lookandfeel/yellowIndicator.png b/resources/images/impl/gui/lookandfeel/yellowIndicator.png new file mode 100644 index 0000000000000000000000000000000000000000..96d2fd9f5d4bdb378bcaffcad5d5c799fab9788b GIT binary patch literal 1045 zcmaJ=&rj1(9Pa`mKO7GL}N@ma3E0+YSIfq{{fF2JZVf!yciF@j%|2wHf`T~-+Vrw@6Wd}HF??H z-q%hLggZUKXPgy(9jz_+zq5N%#7i$q<!pKSh~=0ts6Hh2X38^Mh99r`!lx)%K*-=Is#q-g ziUFT)&Qf$F5^*#b#)}bNYgt2L$*WoYH3c48lBpO-(KX;Gig|qzMM)g#Q3|S2m({Fl znQ+0Vl4wx0&+nvE0}8_bp{iO(TPOpMS=9I>< zFb(ypT)A;9freZP2SYin{j1eA6P_PuTOV9}sE@VuLNuyoA^?!r}=oc^f~|g z*UyVhTV?m1WO;aVt5rCRZFkzev7xr^_s{p6<-x9X7d^7u{Kj(?blx7^vti$rhXW5z z@3g({*?DnxqUY(z>V3~S@Xc*2v9F!>N4t>ta^PC%K6B9hvaRLulf7s0>mL&LJTf?8 qZ^X7w*>~-mYc3C1avf&NL=*9&Yp~YkvUJLrMhz literal 0 HcmV?d00001 diff --git a/resources/images/impl/media/audioConfig.png b/resources/images/impl/media/audioConfig.png index 79f1a27178e601c98acd6e6aa00b66d61becccf4..3eec96cf9afa9329e54ae937ba3764acea910d49 100644 GIT binary patch literal 1415 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZO!3HEHPU(jODajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y) zTAW{6lnjiIG-a4(VA$ce2&53`8Y};zOkkuW=D6f1m*%GCm3X??DgkBmQZiGlOiU~- zO)Q;_&5Vr<%q$EIEnFN;TpXP(oZO5YU7gHaU}j*`>tyNdVrk)KY-wR?U})%S=wxJK z?&f6S>S%6iXa+P2rq?sCxFj(zITdDaCeU7}UL(AEt(=Qe6HD@oLh|!-U@0IVBfliS zI3vG6!8zDe!8b8EGY`ZEMGwTcE~!PCWvMA{Mftf3;PAD|#A3gR6Cr;?^rny#X8J(K z=z|gmQeuG#0aGA|2~YY!4m|Uu<^gj|5in~!Nn2dPz`(fO)5S5Q;#Sh1|NrfoIVvhD z93*&ndU#qG{kB?{y>WPW_zY`T^VLlURAgjj4t)9d_c!OQXD?oO?1@^j(|}?7hx_~M z1(yH+?|(rc=*qP4kQbMaI+=%G-|KLS)3-wYtj?9IS4)Ki1RMl^e|Xp|eCN>q`u|Qm z%7>hiu6+9R>Cjch?t{8H896NNTPIHz4z1w`Zsv<j(TWxG?Bqk{sCdK$q<1h65b2vGo+@IfKU+$WD?o zJzzS%ed<)vgFn*J)9rt~y=^WcURYQtoBGqaiT~=AD{~w?r6p_r{ki$_+S+J|tlQRB zNsg9`zCVopxKet9^cZ&uwK&cyOyu)Bx7eW6fJewVtofny3ad?84=O)DOYF^0xa(fB z)^Sp+m6g?ZPSZszvJ`_lnU`&xYS5y?!ePK5z9({~@q>japrX;!)z4*}Q$iB}G^+Qf literal 1202 zcmV;j1Wo&iP)R<`m zmF3-?=^-njCL~r$9}GLg&ij4u&3nuUV+?O%*REa50-pdM8e=L_%8v_$LcJSb`wbvY z7>3`tuKUI5)2GFeBS(1j=+WEda``e)=te_!v#C%hq=3iSZ1&51J}+F?C6!8X=FAzS zl%I7Q@V>B#iHW$@dTw-d^mrzd!S{Xk_V$R!?{rYuc zu^3?(9_xS!Ddi~e5EyBJJkR^wo|>9^Cy_|}a^l2^-rn9`gb)ZJSX)~|YfTu2NGaPe zfO@^o^71m}av8^Q5JF@C4jee}_s-4^LWpF<=*#Ex@dpnc>;hwQdwcuGcs$;_zP`@N z$_mwLm1?!h-rgQsYqZwwj9TmM?QH-yHa2h^2ivv>0j8&?8-UST_q0k13`O%{nMfqw z1qgzGMx#Na(O`FX_a#VcZj51TYpV^DQexY-8)a^QMyou=n3!c*ZUh^VT5Dz7HkM@} zr9=qPE@(@<^9Wz;#3)-IKsX=$mhl)|=clv3^SssI3N`}r-G zN~Q39A0fnQ)CBzztP*XF3n8kW=UKqITv%B6Zhn3q-}hevc7i(th{a+6q|<4_FvPN~ zWdN=9VF1grRw7vQ{{8zqKn$qZ&1SPuDwXC-rP8NDh_{3gmJmWFlgW`wmo5z{rP>|Z z%2FxCg$oxL8yjP0W(LP`{)og61N8_1P>sGCSh0)6VgURUjke`-xsg(-^t=5 zN-4Q`@gk1n5QZViWb$cLqa;x2ka-9&J3G7UdEV43Z;)cKxG*<2_wDB9=1WKFI1W2I z&x6-mGdMW-CxDdlua0_=N~JEh=CiZ2<=5VgzVCm1=gys{jYi{Nz*sEC*47ryW)sV@ zP)e;wnJpS)zHj;8y?Zz8)D!!?)VW-4cxY(o*YWZ3bWcwYLI{j8)M_;b1_oGKTG~B# z?p)%vB9ZO;#1xCgguV<$;s(^ z_wG@v)fgTgMk&RUCr>83h3$KcFIp~_`v^EcFfeddDfRQ}>gss0SnNvVAC4Q^e8xH% Q;s5{u07*qoM6N<$g1j;{DF6Tf diff --git a/resources/images/impl/media/videoConfig.png b/resources/images/impl/media/videoConfig.png index 750e7b798e3194d274c6f4ab1584af176994677a..287ab1d12dad3369f19ccb0b72618c88bb467a97 100644 GIT binary patch literal 1553 zcmbVMeM}Q)7(d6S4EBfV9Oz(|)2UmecURggy;14MwNj+mm2Q+JPL8`PT;T5N^{|Ec zF^i3xfFfoJjt!zS2KSLU7ZoR{Od{x~OO|uV#WEwNk3?{a_0(JYtxMY{yz3=nB z&+qqq-@A_D1q0eR zvXXH!Bwe>=h{*$hI1lS`OKy7+P6?cnjOr)@oL5EzKwf^pOH$R01XeJWEU$;|e0356 zSy~U3YV3&JYi6q0f_jlDsV{a>_0^P)hVqwzc>!D|;24Pn16&R7!vlI~iWisn(PJ0_ zr&OeBJv8l<+wK6(g2;dxC6Y}c7y@Fb63tO-wc4ei3PBMVQNgGx8`a`DDjY$;nFo@s ziL?iI64n`8vZRNqB*}}zu;1@j`g4?mSP7##oi56uQf12;*}ghnA_LjHZ$XTKV0@Iw zdL>ri!6+kHA=FBGNcMC(1kP)>KO*LRGl`N@1_wwlj4BbB=)u7Nb^!Vlq_> zYvX+q$x}?sE-Txe!CIb(#myo^N`mMTgqm0fII09m@Kp(3&|IPc?IgwWQ8`+k>1YW? zWY;pZRTMaID!(}U82f6|f5knGrTa6*fu_`j!OU0Iwj2y?8ajRb!&#d%GoSAZFV3t1@I4K# z6=mUv5B{8Aa5y|Mw&mLOZ?`SHAl&G?f4u(o8~H8mw$}ZI^XYAEZKu*lf!3wNBO{fs zIh}>R+S=xLvB$7&c`N^8?_2)3*H=Ws56-5fE=rs`cURK)8cn!4E$unmA$L(xlg;gJ z>&zIfvRaAOz~pZ>RZBnL-QLZ{FPU}7=RF~c;&Gbd>|#Gq7RoB@H$Ye z>^ac6qfJd+-+hyCrfBdN!`PU`LhMl}6yxR3kP};O<~aI;?UyfKt1b+V7$!dG{^;2F zoWhRAt;H=nb{Nt3hi^n8sk!UUm2=$sP>X%}_N;;K7vjt3LXC&J76S`ATRTFR?o+=~ zM-@XBx@>FKD)*d4=QpYwB2dq*{ES^;%h;9GpDeR9mMA*+4!wHeK*T$)XiErB?hCG* z2-N-1yD_pX`Q(1b?oD^+JGOO|rlqDj#__9HmrM>04j!Bs8+m%;#NB}`e+Lw7u$7n_ zq|Utw2YNySw=b^lQ{4LL@Z!mzzusaoT>PB8S)vLm=9has8{$^XQ!16ao12?ESM}D{ zCL#CQ%EJ4~{@Py1z({=l@1vv0n>}IzeR{Rgc)AqBusf%W$zLck;y&&kHk4kE8_>My nb`{mUbScks?@U@hFe?!_*0A|*W~Bd*=ug^aDJDKMl?VR@HseBl literal 625 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 literal 11300 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 IvZg`*13KaU6#xJL diff --git a/resources/images/impl/systray/dock-chatty.png b/resources/images/impl/systray/dock-chatty.png index a4f87e26e8a6f060bd41c6bd9489e2a39e7a1133..c7b9334a24207751ed93b0c2b5ba8d399a537467 100644 GIT binary patch literal 13693 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 a2=M<|^qlKYY5va-QOfcfay2q$A^!(w8k3~} literal 11711 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 BW+DIp literal 10912 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 literal 11390 zcmWk!1z1!|6u!GGu=IkYbV&+GBaO6lhzJNsclQEIr*un-bT=q1A&s=sUDDle-?#V9 z>^=LPxo39%lQR)&DsniO&oKc2z)_Hw)K;(DeUrkg|(^K9Y#;s-P@`{udJ+1N8C^WnB>fXaEIi zNiEO62fkjOlsaCIKBMIxsg>W#MjDAZYhQXP*!K5D*8TbO=2KuMuLKH25i>Z2Sc>H> z$@A}Of2na}b-kkGK~+vqZS6x;IsyUzF8O&Fu| zw=Guy^XcKx&;Q8izXvt-yGQ| z?){z;Mt*sd2(;pw2=MYXL6AQ`dltWiiO|wcdHBN)GXMI>rZF(0Q-zB9bc}rbv{t^C z(C`*^?xUEIp;wAzuKNVg&Kt-7-Q%v;|Dp0M?#cAKLB0sql1GcT;F*q%L?E`^gY*<$GvG zHK$&qWhLO)g?zQ_?Q7t52W#r8W7H?@s}O6G{0hqwxSbMNX3)3p$k)wu1*Dp!N9-29#a2vk=(0- zJ*_*Zye8tywo#)Wm2paO&B4Rc9!D^=uxA8_*`i6eF|oPx%@H_fEAP<)GwNIeO!ElZ-D8z`=3jQFTQzvNB z)YM?VSqBjm59p8rmNx>~BmP7tITBXErmz%2inQD-K^nzL#(56!^;XEyD6ssGf9C&w zOnc~goT-Ra?f3b@*hw}KlDgQqRG;PV21zGrm@?%&{RQyZZ^vDoACL+r?bWeNq``LIciw%d;XQ_UA!)8+Ez)8*N{2vw7BYP zKw1Lsm$+@I!LcDQmz^|h%D@PrDKsUr6`L}*RTN|Hbqs$kwLy6f!5nF~Nq7)I8XS3ru*@wH3K zLg8kCQS~C*_9#8(N^G8FrI0)VrrloKLQ{+R)iSpft#mJrms0vS&4$uDUJ3WQIKJyF z$>3-esJSE*6t=g+tQ+<|7cJ%EH*7)yFpa;6fdf1R00?DT1~s+1O{=IAN+kyos(i>1 zx)`QWMc+b*q~5K%gsKyZL+!u7GP~5?I<}r-rY%jdOMc1=0ZIN+Rvvj-PzOmXj0n=- zX3L`2ltGQ>g9+sWWQ;~yA-@oKx~TD5!O~4Tu^zpEW?q+qtQLa6f;M;@Y9A*5a1}OsYRd)XSft(v(oCg$2Pt z;MrTNR&t`Ek7hEzX|2qxqT!A=)$ZCsIHD_@p;Vod{UwvX$IK>m&}gkt^Mk&#zA+Pn zO4%TdB2FUB#3u!HNo_ux2bD2e`F@Y;PfQ$*Q#lC^-|O*Q-V$Mo0z18kLv#@kuK=ti ze;G)1gDOyxP%unh{-R1P5$nYv&lx%-e}kj0Mw zLkaVdaJldPL|UVLcD~dEXaH{xV8~Df27GO8w%BqBnW-1ds5wh@Bo;bL>F|?oO?S9M zJ~4HwGz9E+<^L}d#AtOx0?*H374i6IpIup91YkrkfNHS?A#veYtxRzqwsWdAUJWrh z9qtmC$sU~?l|gcO$EAd&(z%0>%c!e2g@ldY4!)xKuGZ>_SbD*y z+ypSKU~?8)0k2H4G)5jKG#Q$QfpCR}{|sCqS!wR5aI@LVYJDPGCaceN>dn&O_#L&a z6#|m+sM`W*aprn~=ztWlbs-VfE@d_rU7evWJ98>wAtj2T6pUm5Drims0|!gc1`h_S z?Y$!jS7aW9(&7-FqZt$!esEvC-Sk!;8S>4#%dg{Dp_Fgj*sqDewhT}guR>qU5Q_&C z#P1Z!dBgF4h7_nTxac-LwSW0u`%KD?9<=%%fY3k)m48kov#D!$Kq(+PQ{UE}uKLf8 zdlsXdW~W_}9s?|+uX*i+GlPsgTI*lNd-Yro@Y4HY^Y+ z1`QF4hB^%;ipDEj;SXjgKpl>tEGAeYmpM8`_z~uR<{;jAw0z+u{S3`I=-uADP65~@ z%eOd1b^UT^do?Ua4@Eh?H8`&5OGXpiHU-eE00ypO43FOGaa=!QubA={qhQMay+%nt z2+T$i(NOPMvpSgr#j-b}&Y$xPLSGhW;Tbd7vtqS*H5daB; zuqnZ>v-=0X1Ae!gpNp}50L7=ek`}Wic2Hq0@$jEYlOp8`0ZIJ3+?W#3+|bkg zp_El{HcIP{=+!Si?}`W_cwZ5`IYyPbUJ!UB)3I$weesNo67-XJ=g@sStTM9*Wr?8k znR{J1xJ_7HkF00e-<%#~5m^yJg>+?vg{I4$xpsxunw*ql2&H~DKpW`Ip})yTSh&27 zO!XOxX1dA{8w$_!+r@dT1g=BFh~MgkLp?=aD*?ID+WK{T{Yo_0}g->t1W`z1U2H8k1Z~>O(?ms=- zd>WaQJgZ#hw+sfz^~3`4{7*PnB%A}9LWJALSGjBhv_w+S00%CT`-I^~WgpWxFyj0_$WlYY67$H+m%!YK)z)uH3`XpKiIoDnMXl zbO>+^&U-6>s&mgp!H5AgIl_5CDCE&rEA{(c>@-02iAAw&yQ>-%0&qZr=K;rA(61!~ z1ZY<)A%9mWq^q$|klYzraCXwZ*xACEP*0ItqSqxk)y}gs=n5F}WrXX5evPi~k``W$jNQ?PZ7nXA&Ks z+s0t*J;=3+I&_4V3;ddUpYF#;tvY$y;Bc{dRXV?%w_v)@fvQ9ZMMU{Jy@271w)#7! zE@UtpVppMuH$t$2ZKZp*rI$u?#l==LUZcd-9|}8!D^-byPYhZQXLUevhII1Uoydy6 znO0~(bJxc~r#-P9{j+@Tlb_jsa{NkJ`Bn*Aun@%=Ff z$m62Ou7R7f8*apPE{5*q_pTlvulryxIE^fP6+z7vVu&+k*KKv&xa2_LdW!(hs9^L^ z2D18NnJ3|!zk!03&vNVi@H03*#A=iCOI>)LmQREt9Iu(xV9aF(^7hSVQETMl_e_Oz zXW!lu-vN`3l1&qp|HxUsC0N0IW)pVSnY!CAs9Te#*!6ItFdVzi5TlhSEBYJv9TK_+ zQfDWrc>5l3BLg%?D~jtl(4Br>_Bzi z|E7-{zf`Z#;Np*->Bx52?lDF{_Aeq&o99tWaNn?*tT=UDDyn=S9qMZiU;TP(-P(RP zo)pa@;($?ozxGlGi&b1o5bIZMV4vHFW&7m|<_ug8ASmM1=@&fLM(1|`yP+v=<@J=# z&Q;T6nCEq}nBUo_phIE&-nYK^lgE_|Q4X!@pQktj0He82Qn?0F(N!o=(2jN#ude#P zB12JH|N4S<$07=k{y5&@oFIdP{&QV$^x)$*D(#ar?ao@%jLG8kQP?3~AWFWNXCS&b zZaID~_Xe==z-Wj+v+&3`QM1kGy!=JAOV1m$$N59$EIH*zWViI=N#bpX`h=4_bBO_O z{XzPyFST9Ef`DW>84NpWZ(A~j(JckwxLyX1-5h9w_r*_i3FS&@fHeBYdkTbDA{!}) zt=5!Ck)&#nN_?VK_}MsW0B0^N`^F|PEax_2X__Z|FY-9}0jIZ@7ABQMriwsfdLMwl z)Or_Sb9hbB+V!=(m*lc55#2k9V*Taos&}!O>r5Eu(j$^3&heGZkvBsm?$#a)&N855 zAsULbLJZjJI*f5-B88rJHB_s_ad(^**D6VJ-vpeS60RKp-W%|=V>qN;C<=}0ZhC)J z*uF*I!+#?^Q5&Ie$s zl0)qDi_gU~$|5yQGIvQiTu?E1l9yI+ohJoAhKsBP=l0XPE1`E!}E(;Aw7kF@js zC5q_oSr%v~-o{j)#>|D`WlZouT)iMG3ZFrTr{7hpu*1jvO?;pd+{^*+qykA3HbUFX zR?V=`5hheu$q>Oe6%WWMXWFbDx({y2n|G?1Rf-GXXqT6Y{e6s^S)7a=)L8aJt!7t~ z+0Che#4&oe^a@#WCFq=dvCi#pSnTbQuz0Bt{bm=FwE4m7JFtTIRUIA#jj6AiU>i{U z*P?@m=J3Or<&-r@E5z)>ik2{+2?h;JG?o+9 zeQ<-XhOsTwzBHn~ypUbwL6PF{1KvJ+AxhtIW0Xc*lyry`#0VGbE;0&x693kdO;mtd zgxJ#li&4$TYEwcwA#D2>au(MFdn$LAso+Nqs3^400L!E97psQxmNVkVyKGcmba;X$ zKgCD=i>)rE1}#>MD%Q;d2hx;hQ@cxK3P^wvbCO7fd}SPIk_cG+#BV>fW{_ZAIgqOeyn5*%h;3jT)CNjdqAex&36@v;upO8;whfJ(JV6{ah- zBSVU;rW4%LWB{Y3(wq5xVS#!f8I^E_EV*A1W+NT=K`q8Qky^5U`jMVa_ld=vv_y)Q9 z6MHCBC$i3}cA5=#Qztec*+*)|InP1=n6v15`SVFw5e-_X-ha__u@EmOlZz@zvhI}{8r&1suCb@a-7!Tn#s{d zH8)v$%=tim?Y@si(t2nSSnOlcdoAOfZRI>@r&7|(_{mApR;3{K(`3jaGx2Rcl;xfA z$~5-1*Zkpko!?H2)|9hts);`mSr7l1GZ@bOSk#%gdl4E*O#i%`yx|dp-JfATFi`Py zJbV33?{pU((AgE^xAT2QG#?|kWY4A~$thym1yXMPCs<6Jz-IdlZ^5Gc*lk`;Gq2sI zaak?Fyw=<+GAz;CD`|i#>}`fo?F)(UZyD-_J$vIQSq~q$4Z(NP-ODf|J zp^N?am005(k)oYe~>ms2XBjaaI1DSD&pt09AHRZl`zRUgz&V6}|O|N~KeF zt&V>r0Q6_N%pS12NYT2pTCul)7PE9aNA%!V?-dc3s3dHnRv{u6ib<~&^4XpTN^1~i z4*BrGpLcyOb88vKYlYK{w3$;UH=`z60w(K~0giH~XT|3cS5^{^98~tAeAjE5S5J#c z7j>C<5Sm~|$IByNg;LBfrMbpYe0tCp)(@#sMmF3+P3(Hvb;`ES92ZpEFt&_-2^d<( z>Q~%fwG*6OwLjYoig5XtvW?9}FgKCZL+?SVVUU(C`Gb0TH)#A|r`cvDMi|Cx#znEu zLtB>3@-V(}!z*wsCRw~rF2)^@EKC!_hiST%_dQqd5BB^ZQ=n)HbbYL=rE~vNi(lGU zZ&(MpS=%cytCe_CNP>NK)zxbJmso4P=V%nVbHzqk(7KOm^S?d@IodK4Wb*QgEYGCQ zv^^fFT4C+OB|EN6f2e=x@cx|r&q|(Xx=S5?Gm*`dAxpZ5tu2IzdpnKKxm2GewlU53mV<$~e;eX}#7(@RIr~(y_1rs2w*GLwST~fG z1o0WsXw6u7({D!B@$}P4JYRvqA85M9QL5O@LfN`6(E2w(w(LTYIS!s5?67ePOuJ#~ z&x&VEkoNhW)s}WwzVP6&ms3eDe-{m?H*_AhgbP7lnOxwMB93Yq-^3gW)5`w z)cJ%{uT~q-VB9`1{@1j1gb9sG*>Ikbs`spkbSwuS;4uZUAN=9-o6o+ z7&f%TFb~{R%V2~W7=FMl_m^kK^%2`TJvL9 zpI2In{%O2}{P49mZ#~R6Ui+Esbl+9qXRvq*O=O}g$l}!wJ1(oBV0;|*H0`?@ih;Ed z7=s~Kgi+d$Ckv=_Y{bjAp;@Zz2O5LZ*JJ@CfICj=asLnNTmMPD%>y3Snl6SYm{;W~MBk#4i!8^o#bHc&WtG$0U#TUwkHrR4duiKJwJEHU<2o z1L>R+;Ub(^Ueo;#!|$exEA~nuyfPHKfzDV0FXi(FkD@Q1hN$jGDrJIH5BVy+c2lp~ zUcW^|D8P)h>{6Sxxe3!^jr}Ph@?E$jgD)*rL=qFn-*aOL(sWA3T!QuJ^IGDYBo?MuE=d}x%tDjL%<3PbcUb)^#t27dvm^Ov)NLngYx|N->7_Rz>)X<@8f>V+010XU8KIMFj^@ z1o8+h;ejOizI8`&y{|zl{K$<-W3gVLAC3CgfN6aSVd^oYjRTVSS{=1n54JExg#AJn zEn+Vn?fU6JT4)?uaYTrF`op+EY2uM;_&XVFFad{}JN?^HLfVOFgr2ya%_8e)JfsLH zw|wvN^FS)iU#3}84hkB8|NasPXa(+;bvpiW?ujBXTYh@e%riQOHT2kH%{8;9FxvP@ z7GFb`V3>Wd=@NX37vS%e&yZYua)7KzAIyB+gqr(Qn_IJweA}TG)sEFW-&NV{gkzq0JbTUTZ z&=5W#C-#!Z#6@p^rrib8Mx!B64J66KYr{g=d(f-7MjY}z_IA5g?d{a}1 zv~8Y+SAJf8{;l`^R&oZ03xrK=i7Oo@c`M)9#ApAhy58sXucEBLMQ&eu}7K^pVLdfO_P2358zo-`v=dHUTSY+?i>RhAS=YPp&aiZQ>djeJ|KB_bL{EDT%j6V>H`s9TTm8qble8GI09 zMgI1RxyemVe#cqS=*>WDQaV^V@a0B%ur~wRw8A>p{$%#kP15LgidRByHNWF{;@b=d z(e)yo2nK^e)JP>p$Q!KK8e0qJA^mZtvgcp9O3pn=pn~s0ys^M|=5%IG@YCdr#@%t% z`UZPSzcKt=WCbpLI2sQmQ3d_^!g}V^CABe*8{$}e_eu5{R+R1SwFS8S$FgDkgefz@ zoGStk$7Vb`p zk60H?aA(fHk2%k)r+lvL{WpGllnIFyKvtx0*#HJqJdNX)9F36;eF8yUup@>RDg}DA zotpXj<<(7V$8D6^#6{WLNrGz`uwb?8L&_09Uy~`i7sq>#{V?rr0WxcRjSp66!x80K zo6+>lt?bzM>0<&Z6q~#Ga1-64S=7wfeZ1>BQJeKD?4*Oavw6A4<3;Sk0nOdJkQD*2 zggA=}h@__iCy0ipkc6RVhEk1EVg}T^?mTIX_zAmIyMO3U@v`rbU8y?s2|CyhUqoG* zL?*qlfILQZEJ~-5<146#tj%Vk?GKA43=l-N%IfRiM_szm$7_W&ew}4QudhZHKPtr_Ah{K^> z!pqBnNobK;MiD2Ub1n|WJRr?ys|o%o8r2b-mZpzV{I?&y^cm9+m=XmEapIDItqqpp zPF1FhwpS{g3%^^=uua5`Oa1(qob&PM&PTPeZg)I~PBs4CMoO@OZ5pF&nIX2kCm$ZGiDg!MWj#cK55|_js2S|D-;!NEsT{%wq}a{$U~|Ii`Jf zm>U0BvrQ0!BD)$OT21;;^+uS=ZxiN-^TYJaK%oBPnX+Q=f{mxxcaJ-Iy;q+nl3)^u za#|PzElKR{V<3Yg)1}$5oLL;m99!^~xBC1YiK|c;v^M6@nB3#xY<+Dd;^U_qR>uz& zA+W=h=zH8ub)%m2?p9P`-_rq!7lMAaS)DnDXlCYGDRV_~9IMke^n9iOfOY!+Spbqo z->Q<9O#uM+VDT}WZ_!(;C>V&z6&MJnXCbk8{#@kj7?V@MJhcDIuDAYsGn5E1qvbJ# zSrf|AMEUdk`vTnig9lEGA$RCY!(fhlX1T*LP^XgFQ6_5?sYNO<7TY7GyscIpq~b4Q6Znx_^pSSwh8>9HcqUnCk%w&-yvF6(3HJ1 zMe*yj`a{UNxfL3ag0kXSMr2X9<&yk>p%sJ~6PYI<(JV@Xf1;jgVO0u+)tegjJz<4o z&q))yqhPbX-t^WIVya#*&Rh0ueXn0j!|+j1DT0x3tXeBDSU;2Ov=_5+kqM1!d9WAa z>~~nYN}SyPmzKvQT&mp4X7Rb`GL(yP9hAbqOdv}6oL z4*qv~B6t7ljG`%lYWMj@yX}90g)eX=iZP@%PhJ79D#6UMduT$NZ#SMDEAoq7cfEYy z?6~@CzScsWI`LiA$Il4~1S03-Z*YJ|g3cV3L+3)dBM1`EjWgVU zd&cUJ#LvrXG@2v(%E;0Zs;#a4zLDKuEVR&y zOZnNw#RXC@q|YS*0aUT*Y&w+?;NM&g%I}?{8Q|K0(0;m9+tR@y6$B^fTs-olfifJr zpKmY&>1mMOl4s1y)aZzQDJuLaw+C+Bl-+q{AhtgdRh&3#b?0|JfS4>&4SE&Y;w(XWS{OHx$QbzCUo^!g)YcoI04LvCMm{4hG(s#If^E?Nr+mCF0)?c*aHLn)kc zbtjLNUsQzt!~I||Wh_VhHIyYw1-YH@ldIZpo*yRFIrn3^Mn_9ax(EjZmChN)_UIWS zlj@9LooAuYkIWVI%d^P85{U2LWRf5#-^^XkKIQa8XD@jH^nk{Y3bqP<>i%q zjt&M9l91&8_(AU1LA|-T8E1Co^s6>no*^(hn<}j^9sM{Q40HyfV$lq7Umj8WCi);3 z_WyN6I&UbgnyzkyJOg;X(Fr*yHZCr4YZww!NvWyygqU58cIW5kxn*TGQnOr*`Uwn1 z3uVVkeBfjIkb*^>%An}bK%QhVXpG}IEKn8?a$G=h3<9ES6rLHKto1fuuSMlq-MAGzUO6UfV^*LD03Mwk z_GkRrU3o%{GcWwDt*xt_)@5h6v2l!-+kO8;ex!kQ;s`7tsGqL;clP$WtNb5qrlzO! z+S{oB$Bke3u5NCt$E!b)z%8z->MzwU1CS}|gCP8x>+)zB?y6FO<3)n!(26JD3vn|1`flcmPI0HZ*T8^HJh55 z`Ly2m+4EmbUB`=Yr_9|q0H8h{>7vH^+3xIZG%a^Mc}!gPT*t$zgHq4d0COjiPBXQh z(u>6At0kX!c?JLw_Biax@>oi5sFb7jCFE>7CqUw-7UFr(Fza}{(q$WR+!=tP3q~%^ zTDnCxi>1M?>+|SW?`JG$+wJDpGs=Qt|C<*LsRvK_&qu9)pcYT$K%C&kP8a5_k4d-S(Q6X5V|MzX7=E>ymlS@}Ry)e|F*_wxOPbvqR1%ZRfKQf%UB~4ji6Ul$4YfIN{0y zUP+(P-^8Yi`S74vA{xuaz8{Bz(%*8&G!3*jm;7SEb zv`TZq(GO43bn!YVWia~SfzPb%NS#@yi%c=gtE=Own(+Ln1)l%VbXq`eKfkSTRVnW? zREHuF^ai~P^=A34%?&`bx3}9Saiju;R_%6} zYTIG?fCH{5;{#ce6_yEU&olpFMaRbg5rt_R6yiv!R61X6wSs~ z4TN;SWFIgYp#kavsl%>LB8p z+3zsp6sq=0mXt`}OL4hlM>F?dK3#Tfw(gSqBGB zfQBH#lbEl5wvDpn(G-r1uR>)JJ zAM*q87oUTfL&V)F5~>e#dYpWMVTsn0*f=<=Sccc&4|;k?zd;udMPBSf-8^F=K~?Zg zHZMFshIR*1*+z`CJ3wv?`orUB^v(_mP?*&JTJmRW2C4RON-vPSNbH_ozI2T->5rj( z{<+(U0_j>~m;PmoUZ19RLJkh~N=YFW3F}`EC@p<< zNl{uFSz5|U8XB;)w4~5<5CWrTy*NNd0E?n8p#TsyyL`$vN&Y8|*&tAU`^<{2`N@`3 ze5uvT1qHz`6)rL%o2_gS3&y0S0F<|1QyEzog<;)KnVkO=heM=RS_WEgUb~YLo{eFlXp3?D2UgsBf-*$2zN$W&4KWmq?w9il*3v zbJusht33ie%-lv~0VraC>i@aZAaa0fiM}RGZeecMo^34JS{}W^<>HlBkY<^@`{gS; ze+GDEzx`5cI$#NMWJJ6L*t@+Rz2}=y{98YtftTXzO&?NJNB$n1D?L$nD-!8tX!39% Q4+jGZGAh!QQbvLQ0nYzb)&Kwi diff --git a/resources/images/impl/systray/dock-online.png b/resources/images/impl/systray/dock-online.png index 086912dcc7101f34ad86e09806a78ff1d174c3e6..41dd760fcfb176467de104504d73af132166230b 100644 GIT binary patch literal 11247 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 literal 9880 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

    Z&m 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 EKWZe9f&c&j diff --git a/resources/images/impl/systray/envelope.png b/resources/images/impl/systray/envelope.png index 08dc32afd8812cd00e6cbb141892d443fa3efd88..04ffbf7e3dc7ca865cb94b544713490339d72ea2 100644 GIT binary patch literal 1748 zcmbVNX;2eq7!HVIS}rD*3^4>$IDb|nL{dL$tWzDG($K-3)W&u2oP?BbchClv>EFz zBTHzsX?jC+EE%i%SOQ~47G%+3r5jBYnnqg^m~MjL6odql5S;;)G6uf?fdLq_QbvqG z1*%MPL~jVo#F41X713~J3M|$#0+#|y(j^pu5g{QU-I$6Jl5{C!f>%QAEn+qUm{1{8 zq>R^2#j4bR9K#Vnz~V7ski!9lLKcTF5DGbq0WQelvO($=GC6#SKq%n`0FxJkvW9Du zB^pJ@q%Gm77i|#Nog>N43vb@nJD2k#h^e47&n+m z1BL1MSP`*C*tx#LKFcU zjw29>;n5hDI@JMcJw{@L9y0;*C?VjZf?xw`5%^jP z^g3Pzf*aN&+7KKw0uvdQ7~bIlC=gNo6Tk-p-bNlQ7s!=7u~Hxo5HKdO+W(U^HsuW4 z(jNb5mnjj|gO=@^=BEyC#s@*EnZc>yxF5>FsF|}4R|H3=ckSJEHNrX4CHLzZsO!sF zz|r>j?RDF%G$o;44Q}$S-(7IKW1UYwQW|(}o1Js){SXIqmz%70|H3OR(^Kg}H{YDx z)5{JspXluj4|mm<+GWX+7GiCE@nllam+=bZcTjOqmX z#UiI1+k*tX++<83&L0CeCfU?_x!%5~9tqQ(@%Tw??9x@Y7L_efJ4H4)^|rSkU(;6l z&#jV?$j67^?on1<{Gn?R*RtIl;i`n$Om2BWe9T-)|D}^*Z7nrt3)a~fUd?J5yghey z_1WwfksiTwDzd~Q%i=mq%jhrzT%8%=-1QZ0-g)nFS*y#+^=AlgM;H#e*iccXyyz`C z7SD9u5mzxZvf=7;<@`oE@?d;>;vae0{(gf6yZ3#bbhplrkmf)y`}}=p=aZ68QM7;G zwR^R9it!C%vmTW8t(t}JKK-o|2y(C|t~V@w}m~ zPPz5&j3y7-*w~mUsI<4@s#oueU_ABy*f-e^Hs3y^x?Yi=&8@blwf@@C(cPU883`SZ z?a4Bk9R1Xlm;bbJ?o|#R@5?8ety0<6+Hx6G9PT}sy`?(v(E~#Y7USb$iZjQ27!61r z>9tv#ayy6bxm+14C~x+!R5ldlnr-*|{t3vh)66_b_w~5c+}x~Vlx%9s^0_X*Fx_UE zcIkY0M)Kamd5>dymGGQ83sp5Xd)*I$Vk$kEC__o{;=~)7}1Oy-P^pT~V+jTKRCe&EUfV{Mnvo z)0&>ytBv1g^o(yA${pHKuM0i0v&UTY$|aFzXPYrChu#@s`OkzaS11}~iJSigGAEx~ delta 810 zcmV+_1J(T04Ymf58Gi-<006|aY&!q|00v@9M??Vs0RI60puMM)00009a7bBm0003) z0003)0Ut;cBLDyZ2XskIMF-al0u4GjY(lz^0008RNklB8I6vscm-@U)3 z%XDf?LrN{(LaQN?DuURzpdt}V#1au+`4_xd6Tt&fJcuPCnSVq?ctE3~O-O`@Oq&of zqekavXot@9w|KCO(W#~FH#x~o&bgm^a+a$cy716r5K5=K|m< zDhhC^Lq(PCNPpc#GxE{%e2l4{K|%4T4A_cx5N-?Mxh_Ut0savs_yZ+qx`C<+R8=5^ z!1KUyY+T32acufhy?jc<`IvZ5cRYd>2~*wBNT9Ux8#o$nMF@#BG}dq5M_xhUf0gHR zvYV^tj$+$3(Qqq)(#mf&?zW;-)YRiR4!1(*QLr&|@qbT-o95=Vv$(EHMQuIZRy4bL zz9K&hR&Ajx_Ll2c&LD6xb@@kA+&)5=PLZ(QvvBoRe7>UoQz3=QxQSIPUAv9W$ZIa2 zKTf*0XTVIqBokabdyIIjljZAnP&U3CDb(CxQx{ZJO`>trZW13Xnob_%UE~#}CbI0! z%XXSh9)BX4>|yQZJxnOC!q7z)SpEt&Gy%ZG@=CVs+DGVe6Q@rcrgq9ymaSZaZQI%bXVsU9w=|;=j(b zmMddTsF<2yDC*Zdq3OiCV*N_-zlwLo5SpF=2glaXa=#fVR01OdgMwOdi99*7Q8er!7J8SM#)^lX(r3DK07+QdzP-`jTLP o0wa+cGPEDK(C4GBb`ry(uYO?WL1o*EcK`qY07*qoM6N<$g7c(;tpET3 diff --git a/resources/images/impl/systray/envelopeMacOSX.png b/resources/images/impl/systray/envelopeMacOSX.png index 916cfcd963105727781a9e5fb99179e1bfeccbc9..f107507b3b7ad7a34bb4170158d1cbf090f1035d 100644 GIT binary patch literal 1507 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m@_g%B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`kBtHuNWFoz#!AFNG#Ad)HBe}%?0@jth%@)C>7xhtg4GcDhpEegHnt0 zON)|$@sXws(+mtd{1$-}0$pR}Uz7=ql*AmD{N&Qy)VvZ;7h5Huj9yA+ij}K@lclkX zv8ADjk%5_op`nF=g|U;ViLsf9v$Lgvn>ox3YQlbQ$2GeyA6;bqm? z%D})R=;`7ZQgLg`G+zyuK#}9=Jx^A5%+T1FkhnY}hl4wHp-xJsb7Z7;ivG#8tVtZb zN0Pk6#LQ0liB0Q}dJ-Mc(|_i{&-s6r$K}7PHqL)`c4ho}%XhZ*-{%ycuh#Ru9OK7y zd&{rtb*B}J4}Xwg`Wp7SNLEN#(7uA*dRn)!PrU36273jrX%2~DL0!R99~QEBy`06S zzd)j9#@o{;6(-w?R5K(iu%$WHZ_Cn9mt@QK2o+K1yZHWW6ff`BHH@nl$aw6sT~(T= zSN1CF#7c1o)g4TeJL;!@N;S|>{7Dz4^#AllN zo36b+WubO(`GFOO_GeFw>fJhzv44S;s$+z>`Fe>zam&tm8Jw8D;k-#O*TD&a0a*us zW~hGCl%2c9gzI26+l^-lA2vI#Ir8LP>5?nlT#mI11UJlg@mc1Xed=twqQ$z;CvQJ! zxvp^R`O2E88+BV}E-AVBlK+Xts(y{1=hb5(jix3jJluT1@wadSgKdYmeq?IUCQz~K M>FVdQ&MBb@01u8MEdT%j literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W~!2%@xCaT{9QcOwS?k)@rt9q4fxTZu<3$AD8c7OjQ$LO*pXC7ib5Ar>mdKI;Vst0J-i$Q2+n{ diff --git a/resources/images/impl/systray/envelopeMacOSXWhite.png b/resources/images/impl/systray/envelopeMacOSXWhite.png index 202b2699d51444f01f30855f5c1440491d319fd4..a6a9b1d6de7cc618eadf99b46f9e883c0e945e44 100644 GIT binary patch literal 1502 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m@_g%B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`kBtHuNWFoz#!AFNG#Ad)HBe}%?0@jth%@)C>7xhtg4GcDhpEegHnt0 zON)|$@sXws(+mtd{1$-}0$pR}Uz7=ql*AmD{N&Qy)VvZ;7h5Huj9yA+ij}K@lclkX zv8ADjk%5_op`nF=g|U;ViLsf9v$Lgvn>ox3YpKn^_nq~-zhOc5}1EMPyU z!@$7AbiePPtXY#>#;fGZ0;DzF8WHLM8n2qyVVo{IU9bh zJ?$OS6_kWTT=%dvE_mSjLQIxP-<0cG(k_!Z>~p6S@2joSwFQ4H^{?X(8>o;pxN0NO<`?GCow_T)CeICRGm`<6-oid>!a}bzz@kSMza`?YwY@P)T;0Pjmzpku568)6mwkr$=b;? zuBLtvaE<=Wc5Un0g)QF$x1A|W$(X#4_3yi#ZJSd6UfNaB89V22xcsun zr8@U)+x%VrTW9wtUb(O@X=nSDDw*gVQTd0Wt3Ga7yw`d8Io-6c0)Ca24eq?Tg=?-_ z*#A#(i8pqN<9lFtyHoCB`Ba%(G4FyeGVcs2mNw+ME$9DX;W3j_Y_*H;wV&607#ux& z4qJSwA$I`oqJb5(K@_y_F`Ku*QJYyPZl-!32j|MtVLK$BBRQgX@LnAZZWVDNPHb6Mw<&;$TM#XoZZ diff --git a/resources/images/impl/systray/envelopeWindows.png b/resources/images/impl/systray/envelopeWindows.png index b3f5de5a2f75c0d73dad7852f6137984f5a4074b..da200b1f1ab960d86a62d63957042c7ed8960f08 100644 GIT binary patch literal 2382 zcmbVOc{o&iA0L#9E^ixAsxgGI%*>g6<}tF&*asJBQmI+aFfogn!EhtA;FcEAf?nCC ztZ!M$(xSR4Nmo&1O}96SVs7dYy52LD?){_Z{_&pYob&trzUTY-eD~)$>Hfa%`g*JN zU@(}zrw2U%T20lDjyCj`>JMc>i;0}Uk_U?U@>sSMggNuX91!j)WQTzPAe$E#)e1Vm zU|QjVAeNlP^r3RaLKIuAgHi}35E=$^*r<@Oxe=fo&H=*&A{t_%={f=~;L#A92}}%A z;tGZfJmRHbV7zY-H$H+(;UP9U!W|S;h(HL+*>Ht0QY51)Xo%0eRA{djqY?1WD)I;# z;)_!(ra# zHGuB+)fRN3A;RTy2^Ecwjg3Xc;!t8~7#g5ZC~6KY)*jNZm&J+XY=yl@X1>5c2W4ET zKq422MQ}AEnN{@IXP5%PxWClx?NVMo%%+-M;vl6%r=2;6q;P@Wanc;>ZV~7kook#)z2H-*@;~8We z8H;msqmux}0@hO`le0x!aKWwsvilWF|3@sK#6voX%pGPGwz&fP)Bq)KmNZNid_srnWTTZiZFm>a!9Bk3$YymTl2)*kRo< zhCZFYhBbFO+~!Tl%ad!n&AT3ly)jeHX28=%QnKw>QCMg4*zvo=I=vG*UB3=YK0D6> z$Ycw@_rn!=lEhEnHg7!;wX7^pe)+fvz>Bv6y65LnN`<$~Uwa|J8 zr_++JKYAItLT3B&LUU8|FZAgvfggyG^LigOZ$v+!hu5J=vpdBf3-uMRN)IJ77>kQ( zL-QKU%r~^_gJ@mU%C0At8?#q8>89>UOBe5%)}27*cq@LsbiOVWn0-t6$Q>9k(P$gX zajeEnhCaR-Uscdxm^a9&m%TmMb$G8;60hdh!suE1;#TdVGVPxzwu4DC)!qZLY8+P3 z+SZn9V`LY1{lArKD~b_IFF5Rmr{H60C%0D{SS+?P`$=nyNAjVOB-M)I%Jn+_XJ@BX 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 SjmpKK+Q!q>&t;ucLK6VJ@S0Ts delta 810 zcmV+_1J(T64Ymf58Gi-<006|aY&!q|00DDSM?wIu&K&6g000JJOGiWi{{a60|De66 zlK=n!32;bRa{vGVLjV8)LjfO16C(fs00(qQO+^RT1`7~39P-#1NB{r=wn;=mR5;76 zlud6_M-+yi8DIM*PJHv>1lvGUluE@30s)nZ=n7S8R|u(#E`QoJVo9a`jxJdvTB(b& zK?0;olm!S79}Jh|2Nog*7>ejQ;6Ib%oe9Pb?7;1 zZ@$0BE0rreUMyh-3&_GQeqGYsYczS($Rbnlv=;KxwSU;Z!)LA^@bbzl7|J33-D_j< zsFB^!+s5WbWd{jcz)&CHDC$7Muy3qRG1pTCEoUtoyXv zgGlX>@k9I&w2lcktN7NP`&b>1?>~FO-Sq>cGLxv$NiYU5#HQ=ggfu84&?Eu1xsS`0 zRU$deKuU6K_bR*10={v&VjL42(6Im^FeK0>g?|uo>rbfJbRl8$#_Z(BKNN4QJz#YY zdXZ!z?ix=D5F!B^M%-eg1u+0gI?NpYioys;3qX`6_H2suS^xk507*qoM6N<$g0HK9EC2ui diff --git a/resources/images/impl/systray/systrayIconDND.png b/resources/images/impl/systray/systrayIconDND.png index 9e45b4c0e4901982a0362da0be3ff78a406f6bd8..82afd627553d7e4946f68e09da08a55d329081af 100644 GIT binary patch literal 1731 zcmbVNeM}Q)81FDJrxHXRh;DKg=SGC~uHUUx0=*&?iwLNVY?IO+w1M{O^^g`PRToiI zT%z+67^9oU#E7T~tPxwq4^S)W1W^Yf5CSq7RD|-?-mVC`Ka79ua(D0hKKJ~7&v&jM zA%3;*tVOdZ6pF7T7EUDB0M9eii+smD8P6h@AY3fNlhAZLM~)$sC?%SP01}Nn14%^W zO5@f$NCbs4L#0lZ;WFu3fdbXg@5YX21*6;LaM z)J<$DDAkD&l{z*TLy~gilNGs{3civWxeACd2uK1Ag3AGeCQGXq7=+YGUIDrHi0M>d zQU%WxQr|iylO_Nn6hi0Aqe1bXb_9d;Xq*k1B4iKki0qJ5KF-32pC*o>Y|d? zFlD+R5ssO%MV^FI6^`o!bb3xs4lRdCL$M4x#OL!p91KP{sS&O>YH_(CT&oY6W`GgB z0#oa7HL3+XjPf)z8y8YZPv3^1(MhH6h_(8uM3E_@8{|4VL<8v>jVG>2Z9Sfdym#Y+ z+WKUp4xuL^dNdnTko8CpnFf=&`?w*GBI%7_9i}FWBF}Bu}NIZ>|X!W>Ut3amhs!6+3Sm>izfe1t7IEp2sXx4NGB&bjv)vHh)AWGr@-$>;O zwbmmD^%UrByfA{Pw;{?H4AlUW85XEN-~q_yk^RGEf!z0zM~T=XF_SN5^SNy56ju3v zvPLJJp?linKkYItB74xYeb@Zt;obNkT5@JEayVYsTN5Z0FNXws>W;co%P= z?b(gsR;%Q!%3Q#N=K5NN)-m_u2VQHk9QZ9?co)U4DW3lJJ8?!z-cTkR$Q}(JQM73v@Fg)*F~5N_w03bUx(S}AE~d@ z^6Rda?Ri=_GBVWE7njqprL{5Fz1eKu=NP+1aLd67*KFz8{#FRX3Nm|CeW%9lHH)wK zUs{9t(M;@I2VD2$=&Qy-BJcq?Fwfts zYwviG<=fZpR_k5Hj<3$JP5bBlv8p=IR^fMR--e{+Ef#FB>5dU?u*2}r-fkjoZ0uy) z^)GuLxrdm8rNLkH|MKgy^R-p|pd-{fXltY8a-{HLNBFsit+mde7q%MhO($xK+%d6q z*^lk}BM%nai@h%UO~^2J{r#UV?R{$N{@!-e*;N}nTixsL9PC>0_sj($CwQYlCxfg9 zRLly9DKu5)OT&7GK3j6kCevS!^vQRcP6YGv%NAX)sd06rC#D3>2Ze12xs>C#SC!ogJ6a07pNz}eusV;k4cF#FB97`XAA`h4HqiQCtP zN_LF~-q^y)M~mn5TXv4EsQ5h|@%@|~lJsU`-sTZ|&FqCldzTZdHVumsdQO)OifSt! fT@O delta 918 zcmV;H18Mxj4WS2+8Gi-<006|aY&!q|00DDSM?wIu&K&6g000JJOGiWi{{a60|De66 zlK=n!32;bRa{vGVLjV8)LjfO16C(fs00(qQO+^RV3I_-+E?W7sX#fBNAxT6*R5;76 z)yr=iRTRMC-;Bq0{7&pRX)uaH(-hm05d=XWE08EGS|K69hJQuX6%rd3Y~YVz$r7mr z!~!HXMM^_aRY*xFl%k|bTvfq!JD;XFM~PMNriW2jRANcXf_F9i4l0uJp-Q zR|Su7EVF~pKd^6H<`GY~Q9{@CCl4P8HW{%0dUCL3nJllaGwju{q~N}JNxSmO2PqwMN!488sM zaMW+}!OShv!#W=x`4hX6=ckL`5h4UuY!Un^mIp7gY4^>EyI*dmRd|sJvmO~U@T5+BY z%l)+?=$F}bI+V>A%`KOvYVp20&udj5jtPbOF5lM=(;a`gKR6K!a=YT7844Yv#>vtm zfm3hb#D8KqTlbjQE_3GEH7?Bh;A9Sj07>dS6|J_x+G-x#w#j5Oc$@3kJ4>7@&NK1q zQQD?Ob8(U8@7JlXuAr+b)91g$Ddg{?Ju6@kQt%!yLP%d-qNQS{^lteuKK=e4J)F6RxKf~9mBLOZ@o62$b&C`sH zq#pXJ9)gp@aYDrn2BXp5%lpLJR1apcmlkmJHfB7DlbK;`Bt;+?+J7p-kqEiz^!|e_ s1d+)sOlEOi2gmLrT(MW_11P}XQixUSnhy#Ef&c&j07*qoM6N<$f`W3kg8%>k diff --git a/resources/images/impl/systray/systrayIconFFC.png b/resources/images/impl/systray/systrayIconFFC.png index 46a8200c5bceeb7ed8c60f575ad69124ab8bc55c..7f39e508f824ed43906b1b0a0db88f32208c9ed6 100644 GIT binary patch literal 1828 zcmbVNX;9N>7_Q3Ufh_CE>N>`ttW|oXZPKPn5!#{!T5CmtL3fO8pat60G*S*Pyb(Ec zR9r7y6 z;8PiletJW2C>5#<5^D(~8?)=MM_w_#w~IL-@KJ?| z_69#W6{=JNQi8+*n9XNtxex>(2pbZ>2m*NlJTAoJaOoRiK>{(1hvaNhJK}K>Q6h-YEJRXbIU|Hf#6c)!aSv-0fWVl638qAb| zFadT(Y$36j@&;*7KZRg4E0v##O_rWS(JAA^VP+1*=5mZidt4v2EtCfT;>K6CEy3|- zoTI@l#9~rQ*CWEC7fk2w+lK6lv^V0Jq=7C979%6Hi;cL6QpmhP`U_iU(23<-Ka?-y zqmY2dMMMxJ;)?iwuz-&Uq*9dYFYM*`8diXE{kVKCB9kFP2$Dm7h)5t8@kKnozrRcf z$$PO1lZC=eTD;e;fwtR&g};dvOGzA~2r`%;VtPA3ttTkLq9@FNbT$G^RAO3#$u3~p z3-l>o8BQ8vah*R&7=e!&78}0e0T&k0{Ua1`gs~j@_LszGxm(OJ$r+x<3VC)75bsAn~gTE+x>ou!|5DdjhA(A%hClGO0ve0%&f&}t{tyWJuY>b^#NUf-t;QX zMacq_0v*M#txKzX)mxa%0~=oaqJC5-v336B;egcaON_66({ees_^P^{BwfnEthMUj za#FKHu_v{wrd->$W_0qRvo9*{XEdu+R){ZYZTB6kaJ#wVL2jWkc3pR6S%q9u^XP3! z-3Rx*&CA{LeVv<^ku4PkOf`^pzO|Z}BiUVAa#j6u(6wp)nv6Y~Nl`v)7woS&IDh(| z*ruV5t}51tCQV@Z%;AngW_Hs3RVBx?x`VKyy``{1vVIzKyNf5>7JIX`;Gy_w)!IIi z0{4-JMyg%{615rVlng&C!@wzN@MG2uCPz(KlQnw{^TWj3riFees5Sc;cks~elk zJGPEN652dFN-XaVI;{sdn^*og*}-5wzd7fvFyNU1%!!iW5 zs{)d$oew%y*4_3`VFF4uwr08Wl8d$r9{Tz|wZ9`f#-?1~Tiv)b73e?MR&Q+*UO0vx zO-!J+yS^xD{q>?lITG5S(eB&PII*ndN(!2};h$N|$H(0Q1gDNz(&uri1M^s|jN4`7 zRX39O2V6VxJt2zp@k#4fggb1WmpdgdDvx#Yp*2BPyD2zv$oz1fNulXmQ5e;F_uSj! hN#%E!clz{kViY!+lTYV{ueSfU6mpd;-*3Une*t&;*?#~4 delta 883 zcmV-(1C0En4*v#_8Gi-<006|aY&!q|00DDSM?wIu&K&6g000JJOGiWi{{a60|De66 zlK=n!32;bRa{vGVLjV8)LjfO16C(fs00(qQO+^RT1`7~29tF)wB>(^d|4BqaR5;76 z)X8rfbrity?<}4fJN7i*;wFR;1*x^u#G>U8K@T9&R2+JM1AmuZxF94h9QYeJa^%b= zfdrQzKtc*gEDcIQlr{?uC3PITS)AAt@G|3>@hn_W5mFs++u!Y{_w@Naz2DOl-um!r z$bB5wu~Ag5Z(QU)Pp?_UG|h((pNzH8yu*hFyRO5^`X-r(fh)xN=E;MgrScBtT9d$O zvn)!SoX$OX#ebG%v9VpJ=Qvo6JFFYYWApzvY&ILbn6LBp{0%NXq0==xSZ3$JVO{lj z{oF0`8Iw2WZsRp>^4;R+Bx;{wcm5n4HX3!7zWs_X7q9TaFKO%^ytg`mkb9Ep{1mUA ztq|+14)%Gaa+O~kFVIfTFO zUMRC>r0>S1W6TOXaLxCeUL)VBpc*&J`=iy5)t`iWr%V+38GA?o#J#{9IO>F zRix|N)SMHv_5$i1nOBONymQIo>vEQb%}3d3t4vKK27}WlVr(^h3`@rF9n$9SeAH8k zs1lQ@8h_7C)Yxq%saVe=|5q#89gFJrHmCEaC`=c)^Th&P+d+)yc=KhA{eulgm1P1= z14%^m9IpRi@U#CKp&0EC|8VshvftsQ$8YjutB8`w(i_eKuxtFrsl+l%jX8!REgV~+ z>uQ`G`-c6>3_Ie*d(UyXx{oWy(G-zq$M+cz*MBiX{cc?H>x7C(-AQrera1IQICL`v zT7;~&)xQipa zI&78tR~7HBb$MY%p)kA3%A$?shs?~YpcOd?p6Oq4Hj`qgTwz$(?>TS}4 diff --git a/resources/images/impl/systray/systrayIconOffline.png b/resources/images/impl/systray/systrayIconOffline.png index 7db6479bed8880b38baefd86d25b3f72d5db755b..39e1c8f5ef544bbc2be93a25b4d03965fef067d8 100644 GIT binary patch literal 1623 zcmbVMYfuwc6pnz7LJ>6}wpz0dE$S$nY#y5jB&m5}MgvU1G^j1)v4PYi8+I2GkcVaJ zgQ}Ae+d*ekIyxQ3))ACZE4G7{L6nTIvDT?lYfQl^SWU2+nn1ciqW$6cqjz@q-h1x( zzVo=}Y*RsAZgS!~i4+PYS+zp0A?LZ#cX}N8UHMDMN=|PR3LR01nhB>KLnzBlr~v^~ zHhmeQLG-5TiVH{%g%V$GDbf)-^(vtewSoGm4(PHuNHm3#BXK$O#`OpR7?3iHT||F$ zx|GudwpARPuqaFYxq{n<@VjhKC`yjw=;q+-1bFNXUEZ`z^M3CZL=w(zHV$82o62+ z4GyNC>G6cZH#ecQ+dGG5&#jt?OclsvGAeawSMJQQE^Op!-=YIuTFr_2&v&?L?gy`{ zlLWT~C zTdmd)4=uVZ?(94^3vTpZG&1rpr!zhYkB^0Jw3o~=7#`jJG4$Bm)90o|Ix6svPAYu& zSv$>5lhluTeY9zrTCKLUt7dfQ;;no6x?z)as8&U~pk^ z_0+QYo((B9nz$k`?8#nN8xALAtX}bP#MhS}X^4dV4~GwC^PILdC(S*X+RSNn$;V3? zB4eecz4sGK@9ZndUMuY>xX|yr+FRJ-{!4E(rlqE)QmG;T;I-$;^QqK1-%m}DELr2_ z81fr>cdcyOzfTmDt6Ou|ZEk7V;&!LZo82%Tp3;8|$KupK1fJ~Me|*8EpZ^IAeE@th8vi$W%FU6Hk&z9~hy1$mpQlfvpFL%> zSkj!Jcl5@U+i8dQ4kQGo7o=Pl^!k>2?qm4q;CKoUG$)>` fdh7kTjg)vw8!!Em_5!#u`m0wd^5jRPrH%grgI|GY delta 426 zcmV;b0agCj47mf48Gi%-003^iq_6-000DDSM?wIu&K&6g0007FOGiWi|A&vvzW@LL z32;bRa{vGVLjV8)LjfO16C(fs00(qQO+^RT1`7-ZBni9xZ~y=SJxN4CR4C7l(@RTR zQ4|H>@7`RK)>kD7Q7c$zC!$42p|l;8{)+xU{Tt53i5-YRN`Jv%Rn$CMZZVdmd2|v( z-f_*&-ivki+Gm|$zhffmQUmAE6#P+pI(bp+Y2=1eNx?uZ8c!{{(eT68Y~=?^$;pZ#*6(zlTj<%)t^EqTYXHhpl^Q;&v?oq1+e!JV?CJF#`m z@nc+>7owvKI)92DCXLY$%38Bx&aqf1_HvTJl)zt?uB3hSMMm7GH>CVRSxw8WbMI}~ zb*|?5u=2fvrfv7i>XH(^Ikf3@kJ?8*axGA`C}*L2VOD7%cU|&NfuvVL?Ov;`?YH^S z=Z+528V+C)QCcLpAW%b4WX(eMlmJvj>8MFrGbmRbhOF)v!h@Zf8?EMp3FMHem5I8qKKT?d=64yj1B5wNT@wP&v;k zZ~&DEk}B0wP=PWk3gf{PH3JPt`aT7@GC267utN2rP;kkx8le)4$KbGXxiPPIXq7qw z_$!Q0qE&))C4h|pRA34ug7+iAd6o>!L8fy|Nv zHlK`g4Hk-|3ZuczxIyppy<6VY>7a5#UHvxPK@_9ObXfnQRi9OQ3N{ zGztm*fh+!hs)mJw!5Z7+f7)f%1oxnE`my=p#mD0VDBv>#!H2^zC8r}0bD9Du&8U&D77yqC6i`*!uzNRtsJk-8_KT<}uuy1QGBugdwhYAabUX{#u@?uGRjWGb_^eEsyw^ZdHup>`=su&#XX z4wBk$bTw}neo&<3HXcq;nGL?qkNdUn*dw!m5Yu7DJ*|J7 zw6i~sJDO4aIq?V{r`Z+|Opo~wyDiuz5Jy3RCxiky9_=}WQc za9(8=x{BFRZnA{atF^NJ_t>7xk0zRJ2d2?}RIiIZVI9q-_oH223`c&mov!2wP);_h zYa_e=5ZC6@Dib~vECe0$ciY?V?JXx}&K#IP-}NA@*oBl{+F?U!K}YJvuUv{FtcVyf zSYYvc=}6`Go8r9}EiYZef-2U(Y(Kd3pY2!5f1f|3E0X2kTX^Vmb6Ij~d_xqYcRFQo z!QDMNibaMij=>NnohSuJ+H`LD~9 zkKB{`Y>_p+ZqT!o?5@6nqF!y|n{~0gwwbMIzP!kz3yF|sW(3I?$iKlX+@HvX&=r%YurJEKsWvBXUdPICQot6F{?wL-tdcYIhXtJ#*W59 z7ncHeebLgD&dTcWhNY^gF(35;zX5vuvoOpOV$5{Ov!v(b8oRbry1_xLAL(15dz)jOH!hX!ICA?^PK%a)w`($~Dmd=&*3y-NeM23uhi>gH zJAMGX9iKeKWZ5it{@TH!8WU4p5{`VrF*kfQex}jOb$&ZLL*(lC%YwZnkG06I@u5{7 xx(0v9$8tYiQ+M+EHP-&GawBUTizPE&ZHO0I=4hc~+Jy1%AdnlvIl+qC{3qBden9{L delta 1281 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 bZo>KtT#GKCL$$sn00000NkvXXu0mjf{{o9~ diff --git a/resources/images/impl/systray/systrayIconWindowsDND.png b/resources/images/impl/systray/systrayIconWindowsDND.png index d7413981bf9e3234cd7ce011d0b341a430a974a1..5991993ed4d97e33b93c8d5cb5567ad2d4367b17 100644 GIT binary patch literal 2334 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 dCns$I2GY7*k)EwjduRG%;cSR7D)dzd3U* zd+qM_vb}8YwuQD>5L;TXMbL;C5DWyoAc1HM21zgm0!CC6B7Y+KLSi%;<-wpdL@ERc zl46S0QYd$6OKUG|>GrRE?)64+1M+cVMSxOnjM%_L*_vX2qpkYy0Z(53~OhV8z;Z zU205jGZXD5XkqB?YK|t(4)Kcjq1q$w^-q5f3IB>nLCe)+jjPDF?UFNJXXZ2mBizRE zj?t;|)|A9Qu`B-TN7og4G9N2-#dQa1Tf0}VXx+s-`mTk&7p&i^cNH+ z$6`hWU{A)bXGU{{!HZOn1{Wk7!#`~a|L~lJYYta7@*h?XmJC8N z0{{-5Ay@jOxnjVz*03R`vwQp8w)7b`?*~&JieW&VO+7^TqS-g- zh`HK*wSOn3yK11k%$dPM6gYH=`935W@ubGAd!_BY$x{MKk{BDGXn`nlkbe+C@^I}?_Q++AqUxeiqC!8P#WhC@ z(q-!mUeg(Lofw)1Or04vd1OjJk>>&yBSj?SSK|V81F5l*7D!IcDafX>)L>CkLXXrI z7}l#An{HnW&M}V&t^~Jk6N;Qc_mqGUd9>2k-?M|aIt^{sr&3xKmZIqlTA1NPOMl-s zV}D(!z@=qxcZD;XyZ`X+txmk<7PzEVGp(J{;CD3E4W;JID^sPoyod^fBN~*TABxWn z8VFia&UH9kzxU~^<}Ub}Mn02W3-c}!-(50pyWMhGp43~qbjvr1innvQ=qmpHmrtLQ z7p>c4RssVTl#s8$7~>?S_*5iV9C-WBV}HnAQUPL%f#&G}`g##*XuwTtp#JgN&iTw> zAS4`S<2qcteqVktaQ9X?tgb2(&p)42yi_`VXz#i7f`x^Kq*?Q%xD0TT70a5cQMw=> zVaA|bzm9Nw8|1FrPhr3>J=J zF!O04*mYs_#!yVLFJd5Dy(((s z0*Pc54Wa>28i$YSvMipVWUDV?B7c-B;He7AbKoh(4Mo7rQ>Wl{yJ5-6VR|G&h#Fi7B76vF}TlEkr-W=`Jelc|YPI_8iPoV4dM+m)k4Yj0<4 zEP#vv5CGOoNd1?L)$jnPPE=A^iTX`aBvB1?|6G4`_i_LzUjEj8j_3y%(|@3X1O%w( z15W#I9jdw^2G}hC3EWuih!?2)oUxAqbQ}ain3y^sEHdlSDHnyo!;MF0Q*07*qoM6N<$f>ni|C;$Ke diff --git a/resources/images/impl/systray/systrayIconWindowsFFC.png b/resources/images/impl/systray/systrayIconWindowsFFC.png index 97e9994c81d40a61b3801d30328b5e0638e00a90..60cb1bd343acff5675891f64528886bd621f174c 100644 GIT binary patch literal 2444 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 px^Gqw{{`kc@gV>J delta 1407 zcmV-_1%UdD6Os#%B!2;OQb$4nuFf3k00006VoOIv0RI600RN!9r;`8x010qNS#tmY z3ljhU3ljkVnw%H_000McNliru*aiy_I2xQIpt1k}1rkX_K~zY`y_H*RR7DuazjJ2J zoOAYm>vp@_mbR8sT4)i0HrNvJu0bFY2#Q1^A(+C04<$lCynmn)1z$)AL8A{El*UMf zz=MPs16U|`F{QR_X$#xSc6Zs`?sm^*&za)`8eg<*mf}3k!+++N|9sznJ_J*^o>;oE zWLkBDFxYc(;=eTPR04e#ZB}iWdDCQ?DFwPwYC&^_RPet57p-WmMHnx$3)DB64o^Yd z1kGIfR@PF!et)IoC_UV}x_vS|^B}OMHG8(|V&Q8Baa6nIZY7{x3x0m+yZVO$Y+m(F zK(kHnHi*Lnx(syi6pIS$Ggyf|a^~>P@YL6k!EX=*s7X80^)mBSAMc$>4ReWLFzmX? zj-h;cE9ZNj+~N7+u{E_rWsf%m+@TZ-_Qg1h9_!&tD}QI*LI{Tvu@Pg+96C`tTvJ=* zf*H*Kjw0Cc!o+kgaskn7YGIKm|Jc%G?qBuFo6QdlY^X~89%}2tAGAg0M}Rj2 z0KmSJ%#~4oE=dMf39nc7hqlZOmd>!p-p@N0%Qoz;VW|3p!)XtU=zihGFvA__jz^rf ztD&pIwtrCjSW}~S8V16#aGT7GgHME~bi=wUAK(*9H#%=7tnIoOs3Hj#2**N6Ap(Z8 z7JSxM20Vv~i+wB*4gpVC=u187(mWhkRBX@7p-vo|UH_TrT+Vi9Yf2^S z46IWFC}o5jW2XLTb}5|~kYF}x5fP}Fgyv3mj1{}o9^k#Kmy=A5#i=@9!7v|8j??z8 z8v_?obIfTjP%udCT%9*Hm={o$CfefR;kU8XD+I02_nqiYP`Ej)c|Bw2PKsNB|ZqUOf8+G z0cUFT&Tw|9N1q4{$d&BP35!6t8|w^S=FQ?{X=t$g9)W zPjo7oc#UZDGA2(k*gPdrp8grU76D=u`F{t+B4A8DM?7uu`)TsXFUJnXa{9a%uiZT} zBP&;RRpl4^ZU@8QKlt^*Pxmfd-nt(<%UU>-4G=aL!?K*AS^@_7f=;LhKjnZVoF60T;@o1PF>3IRw57qvd9e|ca&R( zqD9uYYGM#l03!_$X74#f2ozO^(|^HYc)IQ^Xb!Ak56Lh|1ukCl6OLiooPY>pgA;gQ zjVz2O*-JcY95=Jl*0_XBf7cEp225C^R5P&x){LX=1=J*`Spyi0EV`hgURB1Vg1(%l zg`{K?hOUB^44pXt{d)~pj_=uJCt0Uk%OO&$cZraC(ZfV-2Rh476L{X&HEZ^` zl(?%fBasYKQmv{c(cc?V>UZYUrFAPlxn{yz<@vVlmRxeWfB)`^O7XYtZfm#-7#3og z!rowN_D7pGZM&7zlTsylC#xAFxsI;CE?%FD_TPh_m5wo#UWbRU{saP|8WZkJK6U^A N002ovPDHLkV1l)NgNgtE diff --git a/resources/images/impl/systray/systrayIconWindowsOffline.png b/resources/images/impl/systray/systrayIconWindowsOffline.png index 8d3f8beeabe3ce63a3bb8c1130889a312b80bc50..2b7907e755adddb6536797697041f8360356edcf 100644 GIT binary patch literal 1994 zcmbVNYg7|w8V(47QoO#DEv1wWVV1jiQuP(PEKPyhOTc5nI9TM8WP4Pk-#3nfbo&o%ea( z`472cQG@H#vwK1s(x`syQ@pxVi1|tdANV1lhF||F(Y)zPB zfMBZz)mtzO!Oh6OeIFpM+qt$mLIo&DPmO;VGlp)fO6^3erp_Z(NVHt(Xe_ z!;NQZTXV}SFiizpkrGsc*P|$54vgpS&kcDMac}raRF4-$ZG;d_i3v7iGDtwizfiS$ zEnfnr@t6>kM`tlW4wp{nf?Q@Ao5kd?#9|&OO`hX;7B)F8jSaFu76jqxr%UK*94<@3 zWpWuzsT4}4OXjdLvlUaDHSnBWJ#Kdv%luO;UyQn!~{IfFkk-+4?s2-@1JBAnEXfNA~9PmVe%wwUNW0J zi`D)=S)<|3(7f&OKkYIn!h6uWecJr^;pzCmW_)H)d^ipg4WszXJ&-}7T>B;0-&SPg zsG}c!bFs8*_werHgNvM7g?@Fv$Jm)M6iIl@ikkTu1CsDfRnXMt?CL4mYEg3a)y!YkIKXGhb|FUImsVOk5w{R=QE5_gWXuNFC)J#ZJ$Uj~uOBIT3 zvT(`p^z`)Qk)b<@qDlgj$^7{Rm!fX*lJ-}ZDwVY_xV9-nyPs$5`Ve}>aWlm6?*Uzk z&-Ta@1?%ZT;fRpW|Lx9Ra5gyFKz{M)bBE25wuJmzB$Gf=cc(J*kp$Qg!Dt>0}~ z0$y+r4ptF#gy>t>ueT#cGwh%7;XRDt|V6%1bk4iQ_6CF9aj70nUme!Z?v|y2KB7$ zCj|#@xp?v7rM9-VH4i*c!A6I}q3r1Bn5c0$&fU6sGfyfd#>K|oJ=WPt7ll?#PEIbZ zAyyVgHd(So`n0sPl#7}# zH_0+HyGcafweQ~cmCj3_V5O5fT3eH(rws3d zyUsZ8a6}wwZa%y1>&DS~GKF&PdH++zot)!$!s_nDg>%xa`AVZq)s96)L~PCuT3gpp zdy*IsFau^048N6^mmlu?F0U0yeQjf2C=`j@nvhN_>C0-;V>#xa>$oy<>SGD`b1ds|kQ{(WolcZ>tI@N?WyRkH&1C z5Pb#vxO;LB=B7j+X=-ZHZd`f8<4F++1oCFl!VMd?9r#K#hMZa3nYw4^&Ih4Pp#R>D zh09$-2i##7g2C+*0aD7Fm6Zg6dt~Hre0==+DP;gSnK8Ddc|}8c)j>ZUi4#`+J_=1; znO-Ja@A}Il@w~tI+(@nW z|H9wD{V4G5uItM42^&ulE`*3+smY0q2rUtY~3g$#sd{^$GN vP-$`DU%Pq)Jtd+ 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 O0000(Q|~0afwOVcy}doyxVt^~mTqCJ z0}($MCNRx`!7M5rQ!5eFaWt^7!oZO~Og^kpMA8{jOl(9&={?}AKOCEBXLjGO=Xrh~ z@9(!;b1ZMpnmKPK1VOV**+ecF=YsdeC^7iXex*hVhIrm+<5#dw-cNEgWN@%{8aBDf z0y>u_9VP3|(5Vmlv=D*X%VG!NYdVbQw1CdxM`k*1-HxN!v(!$QWppF;5H(G zCn0>1UNYsB&71>gvK$SoWT=!v)hMjSWSBy!(P&a&If|hODn~H66w}}eIgX<6^dkY* zIENF@C9P0cqJ7p9 zFOB5VKDL;nzHwfP4X;fWm#9K0&)sjp7j;7UO01w3O17z;|Z>V*E1C@ zL37Nzv?GgS-SA|7apnp3l^OpP_Y~Lhe{zNZXOLiV{Hs_(Tc84i)5oO`7LS{U_JEGz zKx?c!OoKiZtuYY>tI%&BpO{Dsj}ipoP}rABI5y0_6n0YZtZ~tm!Ss{jEd@7vo5D{Q ztc_TCdEln(?CH}j#wAOBPPbZjl-JbMgmt`j=1ySZ5w`yRovj0Z4fn*H+pRwVU48IJ z@A1(^pEn#xPM9&{relsVB}t3oBkzQ@Uup})?|UZQxuMHBJ1$Nsu6$Vvb+{HVTLO&I9;X3hPUY~!iywhmEOTti!6!t#7{S-oE|_{)L(J$o%5mtF?c z{pXeQuiv`Z*Vh-@mEPV4MIVhm#$GylZ}eIX`cYNY#n#r=GkJM=J#!m>P$i?PedY$W zG}bl`53A_fI6psJaiL@_b8>NVa?xy5^_yts!%Zup4|sTv*#3Ubt?~#vMIoOhh?d2t z9XWF3Kxb#CpK2ORel`$s1zf_!MJpI3$XJR%z1SK74FwXYdzp MGFphQGuCeS8^cpf2LJ#7 literal 977 zcmV;?11|iDP)~5`2$*7Z$-$3|ALYwL!bx^{kRZi2`Y$Q6tf!%Nu{ljWm}AF_A6O- z&Zif3hS?++ec@%!IWzp`dES@v60J4jkz+qk*M(siP)bE9r9`LG!S?nxo;-f6 zSBk}!kaAvd{&m6kRRqoFagitJUz}-o3rb z*4Celv9W^hD+&O%ZQp$N+_|?dU%i^LZTnDAJUQp!oI?nKR4Ro}FI-5S$YkC$6N#Gu zKxVVqVb^tk|7w2TwJZxtDKwi+bUGbqts`aoe;|Yar4+VpLkNL-y^h;UOO0-~`=04I zPX6MhOKvimgp?9mYpfKDD3{C7S|hA^xQ^$*zyK!Cp9kk0mSy4XGiTh=>T2FhBoY%R zGMOIBA5Tr;qshqwwuKOpeIW#d5MYc&<#3N41*LStWQ?8a@9&T7DW$MhE~8ql9%xkj z8>JK+$HCCalM&Q$97rKfn;@j8c2Y`!5Ezt#03a{C1B3vCKobJ}|G82MjIl^9V+;V4 zX;8Y;ZnfMa>2zdsXlMwY=S7y|c0*O+Sr7yfc&Ao_VHoSCQtJEC>gwG4V`D}LUA}V% zYo$_8lMZXvtH+MvgYoe=R7oj|WHy`4q|@oO8@Fz`rfEjah%1XL44bpxcDvoi9}gea z1?MA1sa$T|zkBycrBWF^H9Tx-ts`I@8V7{WAPAz|SYK}j-R|{;#l@eZyFYjB+VbGw z;KV1>)BQ=yI#9nb<0=_rXt!F}+}LOa-R=+HEG%5?87Kg7C7=J&^StX*)6>p=t3eP% z`&O%k`pym-jmF+T&!2aslyeJ)$x%KLfa5@csIsqwn(U>}RhXKfdI79{KChqgK1!mV}TWgCO`0z)HdQ z_wbStj=nUdbltM7e;Mbur4SDazQ6ghkp1x=(mnC&$Pz}u00000NkvXXu0mjfHGR;V diff --git a/resources/images/plugin/contactinfo/userInfo16x16.png b/resources/images/plugin/contactinfo/userInfo16x16.png index 19210b3538dcddb40e5db218933a6c57b9f77089..7a2ef6670df843bb65eba697ee7231a1b40fc7c4 100644 GIT binary patch literal 1345 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsViq#l_sj(a_1l*~!(=(AChw&Dg@x#mL;uz{ttW z)x{B}*Cju>G&eP`1g19yq1PFwUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZns$CG!Lpb z1-Dxqaq86vIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@iPRWeyW?*34>gnPbQgLfa zh^_bG01@9ym(mI}x)x2zb6p($zr}m`0y9Se7W4GEEC=NmbZ=hJd?D(>Ble}TEU~-9 zZ!PN9(CShPQB~>kwB7EKak*xT__^KhRlm!hYGqDQ0b&&qHU)PFJxzw|TuLS2)xC}LeUK^m`~Ta!Gs}Wj zimWidz1(Bc7KV#`Y&ki>p`j~d^x_lOwY>0N8@8IeX@TRNn{}QhzR~((-QqLqFYH>K z7bx=7LuFI*8?`@2a?NH-FAaJrblQK?%IA`b-b;fvx+rZF>2bEAMi$8sm4R35oq!_QcBk52pb`wbBw*eNI6uP@(4O>gTe~ HDWM4f9Q)z) literal 465 zcmV;?0WSWDP)H><>6b#O$Bw+7Ne_U#HM*}S5~FJ=I171=8r54 zENl!6Ji-hgzA^k=caFI^xolb^vRWo=2B?bt3l#qQoQ2`lT?U5dw-^}SK4K8yVqjJj z`R|9WmIa3oSQ!5PW?=a8j)CFlR|W=Fb_NC>VFor99t?$8UGU&7)Ba!VLJSQ2;tUMD zq6`d7%nZMN|6{oKn&|*hE;x0csr>tI$44 zi-@vu@~GIFsGUB2^29TOfyltX!0_)M11}1nk)4@=ky(_eSRe%qYXcY={-E&x|6^eI z|L-@kd4WNY0Z&J diff --git a/resources/images/plugin/generalconfig/configureIcon.png b/resources/images/plugin/generalconfig/configureIcon.png index f28d5cf57d9e1d7f8f6a9a16bb402706daeff96a..06014b3e9a1b8d4a8225a6d13e8e894e6348bf81 100644 GIT binary patch literal 1301 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)u!3HEnufz)gDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y) zTAW{6lnjiIG-a4(VA$ce2&53`8Y};zOkkuW=D6f1m*%GCm3X??DgkBmQZiGlOiU~- zO)Q;_&5Vr<%q$EIEnFN;TpXP(oZO5YU7gHaU}j*`>tyNTZ0TfXU}<4$U})%S=wxJK z?&f6S>S%6iXa+P2rq?sCxFj(zITdDaCeU7pUQ;)`daay`QWHz^i$e1Ab6_bTAS1sd zzc?emK*2fKRKYhfIWrH$2SpFWw=StgnPsUdZbkXI3gGay%EV&7i4!4zL-eMQ6K48A z$LNC+2U22z2?0|ehzU>nKn^_fq~-y0Oc5|^lFzskoK&=l_3uX1fQ^ zpMSr9>lBx>%#!|z69v!M6+b&O{rr6U&y6h?ufDypQ`pDYP=H~Ym>AFhe}4}jQ0Pv` zsjaP*QOwSr-L1X59Mn^4AfKbEnSi={TeA zDt|-C*m!gIkqiS9gM=BD*}QuQd8KS=n30`*IM#EL>;D(iUU~2^ZPNYaZr=SuwB&z>&MQq;pQxy)sSdxm lx3O_--7slVkhVhuBZG6IXtR`TVP6J(WuVlP7ui3|Bi3g2~6}GV;lnM>4&~>M6Hjrdyn#_FP%y`*^ zw6xhQn+M**`+d(m&-*^`FGf81VKe z#Jfl&5{vzPd|_chEiW&R%%EDWHZK_Da=FgZ($dHbq?Gmker#mQ*Wi^5f*@djf1gI9 zaV;nQDh9=3kUTOo!ai~-(gkcE4`T04qSPaK;dYrwzy_=?KKIryZ zxmwcy z3n88W#HCVrLu_E3oZxjj*tXph&tx(z<@3~@J)>AG;`@G={*7sxcY&RFcY{GVs8-qD z-X<1{p_J+we02Xl*=&}%xj9ZOi=9fP`^n1lYR09M;foBUl)V`GWD?KjwyE0AQq2oSmH!1Ocw=^82GlOiWDRx^6$cErd7)h@~@`UxOg{@Qq9+ z8;0S92rk!OySp479U-N}_kE<4L{Ws4^71^NZES4(Q79A+<3fnGX__CmTCH!Vrl#H> zA0K~H)3hsJ_~Fq}#`paxK;6patf!WBqgJaK0F#rG4;{yO2>bv{0xp0SMbW@$`eB-8 zLesP_qbT}C2w|C~`4#Z}^XuC}h<{AeoCRJNLj3*G23Hs^0KWk>;I0s&eVOw=-(R~^ TCCWh!00000NkvXXu0mjf^!lZL diff --git a/resources/images/plugin/notificationconfiguration/folder.png b/resources/images/plugin/notificationconfiguration/folder.png index 35cf94fc700029c5d6461c6e110697137218b7a7..a8b10ff3e3439af8bf31a3878f6ecac814680ee2 100644 GIT binary patch literal 1306 zcmbVMZ)h837{9b@I{L?TY_O#YJ8zRYY;t$W<&s<*(K+AFpK)fj_ z3D9tc8w63nrAFWU8gwB@eOibov_#|;hL&IGBQLXNS7xkbNmp{&?FcXL^rm6 zr-Y$G%8i}0M~H~*2WcTRrhwR3Z=4?+;$11s^D^3%V<15WXdIf$42vq0b7Pyl4BYEt z978u%v>`XP@-bwpjLvk;sm^DGf6Ranz1_2>V-jT zN@{?Kvcak?cyeQDO_LcM&t|ihtj!`RgE;AOxpWSz)eJSv>Zqu3IkTu9t}(Dc?yOg%5IjSd4pm)|W2tFIXhX9io? zvxhw6U%vBfd40Kb|Jbctu`_FLv@8`$a(#YQZVHt?{bcrH<9B-whIVy~Z)~`mlJcYS z{KvO%Pv5vYHMMFxcj?mi#B4Fa0_(f zquy}cFtX1!*GkYKYyRTYD$(^qU1a6&p%MsGXK7Y literal 1305 zcmV+!1?KvRP)WFU8GbZ8({Xk{QrNlj4iWF>9@00ezWL_t(I%cYe`j1*-Q z$N%3_HPziSHC;V5JzEdc49vi=$OIuVam5%!4=xuIrF5(y%r0*T7L1(@y`rkCpO>gwuRzQuzf0SSqT@AiK0z5ns|fd5gaPX4m#%B9N_ z_cH#l<(k(i6$`_afAcecoqfso)7dZxE!%OQ=}XlF@W$Oa0f0))d-VE^o3~AaJx>YQ zog_)mGE9R}`aWUYPNjG*PNEHQ68bYUWtV1M&$Kc-L?Sm{y>j_V;IxLu;l>SMo#IS9m6qIs4~d=dSPCwX0bwmA;o!z6HwqxnU=}Vc6ZC2=zje z%Cu1r_O7gY==cG$7OIY&IX;-7`xdt>-nKZo1&xugxw40Rd*b&`oP7RicVzUmmC3#w zE4>`1>6Rdps5e8jJr6R8U=L8pb0-B0Aeu5F}XuH0Aj4xH| z&(3e$R%VoKt$87qYV|_3;X!i~L$-sl=@Q)hATmsYYrQ*(gi4_H6M_^JoB(kuh-*OJ z>ZNRwYmz%wS+4K3?J-=szKWa6t9WF`b}-JtsRV^aFGvt+1)?Pw0fk`{G$GK00#qXn z1-Ojnq>$jQn>${quDo5&x>)u5NR2G+_$dq~kRbwq2DAoe6qGW6XlN3F5CTOx7$p#4 zA2jYFOT}$IT`Hb9`Rm!LJF|W&P#Sl73E)RCxB){-P)b1v1*H^}5>U#(5Q7j2O&J(b z&|v}|b+Ov5f6aH!uc>~x@8BO^JDBS03~Id;y@o_8C5R^Al!7w?(=fo92IqiDCM!cG&WrujM%8NpQHVqn5K2I)27?CG3Y-#fMnIvUz#(7( zQos}~41_+)(=(eW0KE3)Jd0#XIU3h2cG-M&Jnm!Q>; zPz__O#1ic&Mi2xyC;-e)JKs@~wz%rUR51o*52gq~qyUtH)PR72P%!ujgBJtseuRE! z6|`G{Zd`*IR6u*)8Q$vp6afAB;L!u!PV*h686XriCD;F;%gTP~4Dk=rl@?;9L3IQ}wqb}K@+`vK zSO)Wxqm^}QrjAdHxrfT*&iUz__d2vbPqP1n-50pFR9MQh;OC+4t;a{yFb0hX<)YQx zx-efGFOD9L`q4*^ZJmqf#|HenH#)BG1EsYG1l#c&BM6)Rj@jZ5yyq8Z%InUpD~}%7 zJU98(L_QZkOu}Sf^v(n9-lkdi3T;0c%vq*AKINYCJ1qi$+rv)!U*E#t$JsaI%GcVC P00000NkvXXu0mjfABN8WXwpp3;-{uDc$# zfWyH=x9F5)$-;|HjN3Fz1hb7unTjSlrQ$|HmSyu3jxi(Z1YC3)sLw%*ejxkcS`8)GX*a=43Pm(Fjsrk&Fq!CZM4K&?w1v?AG}) z43$JXwwLx2-k1}FrCqHmsBNvT3$``|SrMyv94$|BkRS>)0Zm3Da-2)ru@znp?sYMa zp(`p{lO0=is^05Eor(%j+H5ri36ew^#!ON)!;qz@g&-|B0dK}cQXI{2mNGPZVbGc? zhB!a(&f0<}I~LZo7>DDDM8ce~niaJXCs~%&IV=_v)G)5qiVbs1huS5aE?za}>y$hqq(!i&>OJj-ptWVx3mTY9SaK zN!oY^#XFp~O1H(~s$}>a$9h=CZ6h6&n|82e5a}W-8Mn(#yU8-5%w}=Ywj9l7uD>i}O^(Uf>tiJ{I~1}*UlK}psHJM;pr#>)d$dI5-T zRf(c28Rn#QJm8&9l6R5>$!8-cY*x0CW+;MZD9T!fWwGM_$r=uw!S(j|PrKwqum|<+ zTJyuh+V}t&&Ws9&<23W85kU+|5AUc;UJJw$i6KMacqWsv8ei)zp1JX4Z*R|_fqsQB zZtOX6;$-jZM~(p3%UyfVr$&FhCqQ@hEiW&9`}xGg#K5Uj7Y0s#_{)Wh7u&CXbv3o+ z5WBDGufK5+Ztm=OI=#nmL$AB+1HRq6=K}zI8fgkn6@1yS-8wrv+a40dnJ;e6zm!=f zKS|DaPTyI)`Nx5u^Nv+KQQOg1kbk!4gOYGq;`H-P`$_y1i${P5U|`}bc$QbUeGVCZ^~F_o5xBYB&Uccw3=TMoG5`rpmts^$kP H8#@01u8--K literal 590 zcmV-U0WFU8GbZ8({Xk{QrNlj4iWF>9@00FW|L_t(2&$W>~Xj5Sn zhM$=8-S4}($-PbLy)o5IY_MRa$HSj4KJ zRw&eV5gbIQSj0bYQz-orsovDjA+~6tpos5uhVwkUoCE)otF@;K&tFa3Pjfc^S71x$ zSu3TgZQs@x4_q9&_2TX9;2(iIk6x+CrsGyhRZB~cl~UFAp1M3bGV$ipYRnn{Z9K28 zBI>D)h#LZM?BV!i8Gv{m0Es^~Hsa5q(j2aA zf6#wy@31lY=8p1)8Tlz_L-~zK`4G=hR~dd44UN9*o|qi&K6i50X`n*@d>3!2f}i#P z52KU6Ra^MF$QKLK^Kms8r3L~ZlKjwC3W`yaCh!!FqsZkH#jK1MLo?9R zwdKjms|tXUxt#jGIdmR{fm}PZf9t)~{wM(J*Xgc&px?LV-9b+$Mvhd< culZm30Req$kYc@eS^xk507*qoM6N<$g07SYAOHXW diff --git a/resources/images/plugin/notificationconfiguration/popupIcon.png b/resources/images/plugin/notificationconfiguration/popupIcon.png index aa38c9664da01137c074a6b6bb8112c0e142542f..541da246f3cd683f10341d52bb867937bde743c0 100644 GIT binary patch literal 1290 zcmbVMZ)h837{Ah4bY#-mQE8`g+#pm~bANKV1rBmK-qG=yiIP+-Nm~% zO&Zj89oC8)_(5ptlvUAvQo#?y>8$N)R~T0C!_-oRu@5@2!@^1@g|6|vHmQCn``~eR z@B2RY{C>~>d#kJS_<{Y+`!NhV5b2O&Xnh<#jz{azJ2rf787)mPlz`nvA1ufwzyc|w z7vK?1PJeZ5>xp%ONy|wH+(wWThWKyceWZ-A}Au zogr{FMIdWt zs!xbX;fgJE@)H>da{@^g3I$ie?J~?XN%K5!b1+OR(rC2?bto5Gb?Zo#K?0UysyV0{ zI&L${y+$7T3FPTc2wE;0-6htoN}^E8$fBGhX%|ImnjP1+wgqG0UpMyDw&H_1K*oS& zw)GL*aqbQqER1p4AisVRYFd7kA(H|J(3&PUTe zDZokr(H9Iefl!c>svLV^DX$m`^WIQ^_abD74szj8*b}C`l-I|I9$yt3(Jd(J3aHvu zk=+VbdMH*9O&~+Vj2lL_+5ue|0~%Jw$l+o)hqpv!Mb&M=vvz@Y;+24@4uDkHG&FoW z!-Bep2a+h#l1NjuREeDOx%r@nV=0MaS+|#{U{n7mYb0`pwAy6H*fx$t@&tT zvia~AKmYXOmuHvO^Z7f6FHAbl+#SkazC0fIv%T?}hoR}$uvky~UGmg7ufFm52lvL` zS#p%O9w^C;^_3?lYT?N6`Safo)xUJ2XS`;C^SVX(TbB7fl`g08gP7;_Grx3v7_JLX z9bbQB4?bMPIsgCw literal 429 zcmV;e0aE^nP)0dQB52|_|Z;VS0H*52EDyROYGhLLTAlYHV&&X@md)OAf5hF%Z^*Fg}R zHk-|Z)oSHgYtdSlNs@fVar|J6nMf(C#$Yhm55w?vI2`tu%Oy%Flu~G|Nz)XqHS_tL zIF6sKwV~JR^=_jm>StNDC9R9=vJm1JxbnK)?${XfN7%iMF#uyv2;nali!EWdR1^h2 z9D1|aY}#(OqyMH?=VD{; zCJvZLDK9+$A;i5>>O9M`qoODr@CGPg3A_W3QpzcS2axCaSy`4Z&bb@lNlN*(`(n*E XU%ct_KG*4~00000NkvXXu0mjfJ^Ztj diff --git a/resources/images/plugin/notificationconfiguration/progIcon.png b/resources/images/plugin/notificationconfiguration/progIcon.png index b18a858a91b969d77c04c8d2918c72f38bc54c1d..13ab51b9624730e9a2814e3a8dca97676a111eaf 100644 GIT binary patch literal 1510 zcmeAS@N?(olHy`uVBq!ia0vp@K+MCz1|)ZGH@^v_BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFlS_jM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWv2L<~p`n7AnVzAE zshOFfj)IYap^?4;5Si&3npl~dSs9rtK!Fm_wxX0Ys~{IQs9ivwtx`rwNr9EVetCJh zUb(Seeo?xx^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal@=Hr> zm4GgVcpk{1iHq`zbF$JDTz5Q`N^fZsd*)yF1AWQ8NHOu6e|-GOG^_= zXJa#CBLg!FLqiJ}M-vxEXA37cBS%*!GZ&Z{*z}sYSr|H+xVku6ngeyZ8akP|xw@IU z8JZiITNpW;TEO&r<`tJD<|U`X?9Bw)3)Sn4SFe?GQEFmIeo;t%ehw@J1Z3owXE5;fWu}foGr8JYb$F0%ndI z4n~(57??ynT^vIyZkYu7W(x<3)EZCrO#76%%Ts%!)S_Hdjf^yoz!d_DY&vTnC`E2l zQF!5WLd{$J-KLNH9=lHLcyX?G!nM{3P6u0Ebz68EO}H2LaC6R8@te%^c&DSjjNJQu z)#q*B$DAvaahrJh>9him0|GyoVp!}L%Ns2WvP`7xS4>;Hto`O2-F}s~A8p=m&W#SA zbh796+h@L)x7f?e@Bdu2_xl9%bGolT{yXS+-gWN70t@Nxqt{p*6CQv3A#}Vj$85Ht z=cJacSFfrcOqk%SHreC*moI9ks%=a)S5>h*6I3(Yf8RcThTrnf#v)vXN}McAYqPdi zSxhglul+mo{PWv>DngzRpqsuKs@J<2PJg zi{9wFDHVzoU+A6lIk7tZxhY4z+v32#8*b_(F5tsNG$2 z|NVWx<(HqR+`e_^%#6c{Gd`(^)=S4lM_NAOIlSXj*yU{{vFeg}r#D4xzx{T;znZN? z$@5R2Hu=;yeTkp&hw0Mn6w7c8kx!d+vK7QLm}WY>Ibmqj&UC4M@i)i4asR!hSvy~j z5vqt&IQIXcm}{Ezq`&X`mI*956=ENsxBG6~6_dA`GtPf_k+n5y{e0006>0e6yo3jhEB8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10m?~4K~yM_T~R%#(_j?6-)EYj2&Gs_A*G{W5rl_No=B1BlsGvE zMI5U`9o>b32o9ZGTsm}c_h)E2Iu(kAE`@?P)s#dUlBQ|C@AfCTE`9oZ2kvt2fx|fm zhzQPIx!3D`Z@1gOOw)XR;Ri$n9RA03RaGmxu9q2O4-cHuY&M@+mURaJfDzGOwdZ+9 zqtWPV5Cn$ny25qcVWm>p3L#D>lZm%nF7GPi@%YhTFla?l^s`#6o`hj&AR=g*cBND* zovv0ZKt#y0OaTC_i3?MyeFj$51M~NT^#N_EX(@B7%LOe8{4)& bpYeYHJ<%QnrOmVw00000NkvXXu0mjf(b4!3 diff --git a/resources/images/plugin/notificationconfiguration/soundIcon.png b/resources/images/plugin/notificationconfiguration/soundIcon.png index 1630ec861bae5324fd5e55f5dae1a3e2b8a95405..620173be58b32721388956ba6af015e85af73d82 100644 GIT binary patch literal 1254 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 KMNUMnLSTa8VSK0n diff --git a/resources/images/plugin/otr/finished22x22.png b/resources/images/plugin/otr/finished22x22.png index ce1ab26314a2997059408c7ed98a5b61d7c65dc1..e196297c057884bfa4b0b2f6c6b5c2cf35c3bccb 100644 GIT binary patch literal 1839 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 literal 708 zcmV;#0z3VQP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXW8 z3p6Z5NSnF<00KlwL_t(I%axNcNE=ZY$A9J|`0=vX(m zK%k3@lbh(Edowg^?a;Br;GmL8MUlEFEx`nb<_P7QSS9K;cdtXpHCmmFgcD7?_p4y}hHBWf24cg+k#@^lmMs6f-k3*tU)1 zIHR(srzZwrnkJKzlM$j2;s)~J;UTW;GB`LG&BM0snC!-qQr_vixVXsr`Z_`gwAM^a zOt8GX+|G2u_bD749I&&qLn@VGczBpQA!Sim$* zq-;mFwzim>nnK)G=#)|lrBr8FD5VI304XJo<6zr1hG8Im-@m-A(3yOr(V$!|b98jX z^z<}g7$T*_^E_g)7_RFEve|5Y_I>|}ZQGFofKrNFF2~u~832_^B_h>Y(`Yo<-`@|! z`T2SF`1trow?YTM*=$BMLWrm@MBBVptDTs8dwVCVtE=(T)6++u=l!hJYL|&bB4$|@ z+uPfeN+q<`XsrpukT49s)7{64+gzOf|f qboyB$k$87;aq%jf&3^gYQvCv!67P6+fYE~h0000l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8tL933rTW?<9nY+zw-VBuoy6KF3~uOVK&R?bDKi6!|(A^G_^uoMuGkzbNu zoRMFk;2dnK;G3A7nFr#7q6gwzm(-%nveXo}qWoM1aQIqfVzJ-Nf{?!=Gku_A z^g)RODY3wWfGH5fgeQF<2cCIS^ME;~2$(fAAAb4Hz`%IU)5S5Q;#Sh1|Nrfo_c96} zW@wn0tjVp%>E`B^VtU8n4C|3I7E_vqj_E7><2qvB@IyXAz`ZI_@lfKOYuBy?KYjXi z@ywZuW&eJE=YMA)0HpK}KR-WTK5l2x(ue>4{$9OsTCm8Tm`$5DT~z3<`~Q#kn1Z*% zkMr~G6YMi+hh+|t5gw?1N{6Vs`G48A5jTQ-S^+@Irc=J?^mi+_E7 ze*XM{AIXOkS852&mhZUV$iz0CS+YV`Jmj%2(Cd`Q^UU|NHY(Zo$p_ z9=>~RojN%u2 zcDA&%%t=a2OkA4w%2iLyQOxdO5X-;iWz!NJwA@`cdUQ72aS`@zjBHcX(t0Jc=8r4e zf<+V5rXAv{ib(Xo{7WQk@`a^#t=IY$=Kp14)0Ezp;M!ljWzFYqnfZ11w&l)NzA!y! zfdXr2@(+Vet=ZSsTx1WDFKm;Wmn0yvOvd3%xBlYC9EuZK?F(nw-eQs6T5=+aOCW(E XWa`PBr`m>_K_#ZAtDnm{r-UW|{GbFj literal 612 zcmV-q0-ODbP)B7lAHdfjueZ*MRm2cmjObcC!-T03U;(WxQVIYum!aGEYOalbRDfsVJpf zAiDu}VVRTvbBrpbGSO)Cg%F|~i^WV>leIPu;CbGSYPI^=7;{%j*;vZ{3MPbj?7HrL zE|-f&BBx$0hQr~dPN(w<*aMJKj+9a_fvHoeRE|rf(wRgev6|@j`;11Tsqg!~>$SwALol>GZ15?RFQfR;z7{c?#(9czl00n-%i;{K_qrN_krA zvui&C2ySJJF~B$A2+-Er_F}QP671RZjx|`JP)Gu|dcEFz&-0v2CKD?bi^+IAemYDD z@k?ucE_iCWT;2h8!Un9hOeT{U@cmycVy%7NXf$Ty@i^2i7+PzZ&880=Nhv#Pn|Yr1 yY%m!3wOZ|-F(w_t_~RUj%!Lqd=JWYMnEo3R7Qf%y1Nl3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8tL933rTW?<9nYUyHR>|$VSX<%+{Xy|I_WM*jY zYVK<2XlP{QVqszq)9aa6T#}fVoC>oy6KF3~uMu9oR?bDKi6!|(A^G_^uoMuGkzbNu zoRMFk;2dnK;G3A7nFr#7q6gwzm(-%nveXo}qWoM1aQIqfVzJ-Nf{?!=Gku_A z^g)RODY3wWfGH5fgeQF<2cCIS^ME;~2$(hESYLc#U|>Ar>EaktaVzQ1|Nr*Pdl`if zGc-(0*5uaXbaQh{F}>q(hV{r9iz&@Q$MhBcaUHR5_#q!5;9ixecqsACwQJXcpFVxM zc;-ySvVXt7^S?6?08;vgpP!#EAGfn;>BE12f3IFREm&kv%%)A7E-G}_{r|^%Ou^gX z$NBm833eWRvu8)&yK|?;F2I)m=D}{32adZ6A0K=0{{H^?jK3t7ytlvb=zf6a#g2}S z;s7&kQ=Pw@$qc$STub5@b$|O$ZfRk$TOYB}iRsio2454NEt^C{?$2>JbNuk(#lJp3 zKY#wfkL1IND>Z~>%Xi#wWMZ4nELo_Uov`XjSWu9cv9a-M<*VxK{BmFF|NZ$Xx8UY| z58u5uPa-&&zJ2>9{c&kh&B5-8Tr+3Pn83|z!H_Di)6hGqg@x_Sn>Re%;(8`bM)Aqr z!Ao?Ur(Wrf(P`4DaXNjaJ8FlM&>RiE%)nU@TxX1U0s{k|Cp^_RVi0XL*(efr;V@VA ztZU0R%xcm5s=1|(<>wo51CN^EKZ#p|K!J)&)afu%QWswVP@4_A$7QYqHfIQ zv|hUjzdDS+d=P0~VDOY7DXvCR)}5nK=TGP5Hy71jtXS%NEvSKknL#4=cwTn=({G@1 N($m$?Wt~$(696;80+Rp$ literal 717 zcmV;;0y6!HP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L08C#108C#2(6xrN00007bV*G`2iXW8 z2oVs0l8J)=00K=(L_t(I%iWbtYt&E_hM$`zleDIwjZkLB&Z1JJ1u>{}DK4t*4^R-? zxN+Bl!Ucao7rF?g3q^FJxDj{m{95<{r4$q#!BszCW>Jb$GKE^HlbI7YnQ>Y=Q#;^7 z4}|2NbI+5L_Z)8EUo+K7QV;|lFb!M)jsq1S4?F@MXsu(j185GI2Qp1=8yHQl^S~9= z0r&+l0Yt!E;1kddTm~*C+peh&sx2hTNv-w0rkDcW0q1~uI+&}r$t*tF5pU+|kM z#Qg^N0(>+948xcj8X9tXdwUy+B0?C3gkdPQZ5y8F;kv)yY1=jf0|R!UP?)TPwbo_e zRHNcrt#-7puMgX{0f^(6xw*L?o12^8MC6rW80p2u#WCOad$QSV1MYdAQ7jfuv~6B0 zm1=-DHZ~}i%MLKAwJs%nxVgN%JUuu#c&MIZSr)DOu_w5{zn^qEy0-}mkM9stuc_aC=rFu?fuc+dL!de7S0+9k(v$Ye4*G_He{QqmG^S=Q&()m49Z zcz8!Jo6XX!>250)i`&&|^<_(N6h(Iy78V`@PA-?D%^U+ztyWoDT9TEO6+=Ysw>{{C zAh>E-)~zUtPVW16P)bbGd>uv6ZLReO{tNpBQ3c5RJ;%HV00000NkvXXu0mjfwuCvh diff --git a/resources/images/plugin/securityconfig/security.png b/resources/images/plugin/securityconfig/security.png index d10c256ef5e39e11320afe89d0b9e79870200a74..11e8bbd5b1ede3275d34bfa5dd2dc814597ee8d7 100644 GIT binary patch literal 2510 zcmbVOdpwi-A73SjkvelC(i%S`>}qVeZgZJij9fy@_F%D#ZDM{Ek>Vi7B`KFegw9eT zMVG^hF`Eu9?#K*>yM7(fB2bU{=*U;zTH z31xWs@_k)h@H95lgetQ!iDh!6Xb{N4I+jDFMF4zg2oT0#S;FR;?!cf7x+ToV)D_{% zAp+qH$2czF8RzCji;JM)=rC(5s6{MZO27p8RA?+SlEuTvTEaf_;-zPq8V-YgHsMED z!oCFM>*@|Avbg}%)C6HnLtqh5EYbvt#+aFz89`A9Bm#~=!I3Cqq!}KK!XpsSuNO?} zjY|*3Q%Lq-eMu!tSU8{0!NcJ(F)=1FXcIO!435O%a54@Q%2;Y)%oDKq)L3H{PiKXJ z1n_8F28YjJv!F6YY6v@;ZwZq|`XvP>$JO;4F^l)LP|}jYW2qcC(gXo#GG%#vw&w9E zz<-!tzK12?NJJa~i@}+jB9KTs zBmspnvnQC_*_xRmu~MoPESbgQQ&}`%#Vxx;>Z8gnq6sp79<37{dR``wN!-|I`dF4F)b7 zj{h2#6_s=XWyf!$FBQHm55SUc3|G1um7BtFAkf-RWRk5{>`<<^vx}FHx>d}ixQIHE zBG;z;fM#v>jm?n%Gz-$ z8z>ig!U=nY2g=TrFaIE=UNTIidwh#Dj)TQG;l(n}Sg7WPx_+nf7B>-VbNQ#!TYUP)0=okB7goSik&)YPO^o*eI-TjD)DE?mso z6{C`t@Peq)IT)FzrlyAUfM`%E&f5h-hAC-@?GCpbz2wMp>wzI9n`zT68G0M*FN+F` z<6MqL8J8Z;>zOjq#sPY_KOV@GWO`)HKbx&t#jQ%hf(eJoaV?M+f~7GHl#Tv z2(CPp@)s(t)E=KJ_Ke=qW%G(&lcQ^!bjrg#tLpl~s;$+8Rax_IfBkf5w{1z6fZ;bd z+n<*w3SaVAGzvRDwJ_mGRRp?+lOGzj7Hih(XI*2B9^UHo{7A&_{ov!GM6lh1Cehf> zYwYY|b{ZO5k**e|i@S=B^?=sulw?%t4e0Rx)NM4YxZ*3^2o}>$CJCOrm}i(mv~KGMBIJG(_x{#(@c0BbEbM}jyY|xDXb=*IjN0P(KqTC~=|cM)(4FUv$aS^?gs#?ye40Y6??-4!7x~knw>o+D-82+UyESpO_ikHmvA0F=7y!Vt(^_wiTp(2{Y?g+K1*SFIF=sgR z{q4|?@8Hr2(%VxSu!+nn9~o_0TIYV(LB0CUyZ7%;miG7capDpw>b?mtl;u?#OZ>CT zyshQUBHz4OEZQZa2QlO8^;XAY>kF(cIl=xxL8DeKJOHYyTB)JB^`5aodS<5Qp-pc) z@`|c!YOF8Q?wz>UO}_Xb!n?-1*k|MYWt<0VsJOWJ>D&3KQIVQI8=>yfTAQz?(Hgf+ z6k8`0N?rsb9D57=DzD?Go((CPdtA!km#5S(~Xv5EzAneoVnCcS4TR#c{@KyA+@oxYWm)} i-1p`AhdtWj<YlX=&+sDvVNkZ+3R}k5Z`w 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 literal 604 zcmV-i0;BzjP)7pp8=u{kvi;Js+Q{DX!`~w7WaC3C((y0`O zIN6E;HH5~LQ0+$~rG~`x=A#Wa$<4j@acGD1BguiYocDJQ&v{-BlIWMf9O>VyTL+cO zw_N@saPtB)pm}2LPcdC;yE^uKS&pYvp|lA^d$|DpV7K}q~bx10N!NuHt?Vq z3Jn<0dgyxK0KPe?xB_VPLW2}!*eida-tlP(j=Hd4UIBibp@x|F4A_RuD)0&jooD(g zFvh$n)tgIJvpq{{>bh*NWVJ1cDmA*Bdu9Y2YBAgo6{zY`MgMW zb|Enxe;SESOpOKuv>liEYTZgqM&j|Y5j;e_dUX6`CiYlT>Wl)Cxv$h*C2T2SOEg@O zEhK>(ka&mH5w?_Q_+n%C`-Niy7AV=G;fsH5kxw@)iUd1<_YolW!{_L;BuHHj8^OEG}1&nFbZcWjARZDBv`Rr zT#I8y*Zb{wEQ>Wi&#cqadQFndKw7z&M~CaQ+88v86}!%9!wdyD4dmdtW2tnXC0X_utc@T3W99Sq5Au_%gn7cs6 z8f7%ev}oL%E#@Q#^Jv;8Ql1I{{J&&{jsx$;x zrNInl!Xt?B6lgYH6sOEvaAO=rT7j7i%gitEKn<&4R0TsYIvcqJk_e6f+zpc<^}^>!soZRH1YBT+nTZ z@4?vHk`{(dw}b^`TuD+3?7{_G4yRRY+_UtxiW2(KxqW-UEeE^_{K*iewWt`k8K?uYj~CC#@JJC_~~g)r2F)u zfZcv&Wo4ooeZ;BSQi0&eNY;%7Znyh>U0vPb%F3v=;W0t@fm7=z&rjBDFBzCtWuE>0 zURT%08C5#)NJqbKSdeeydcdjq#_!6?sU1$2Ya(Msh(cB#*K|7$Ft^|r$1}i&DPV4_nl<>`wXr=6mZAJ4h;=G zwk$h0*Kfpmi*mU>yL)D2bo4@>1-VvTU7fo6P0ug^xM_z=7VQb z&c54{-_X?LPFgwtDQq&C&ehlV{2878t?_*HJu0ljwCDtHX!9T?{l25)S@*45Q%TE@ zN~yY^k$f8fym!x#4-y>{Tpxf2)eojiBn?hfiNVe)@9sO1CV~dx9lFe!w6X zP%v-^NGNFNpTGY6{rB&~3SAcfCD(YmIEGZ*@;&D&*6bj_av^bp!r_)3yFuXIeWx`r}0F`U|H(Ga;nMbzWskBXGFg$3 z2deqi!P7RMp69K5bn4AT9hp;Prhnky5ux1U!LW3PYiwiM8ONuR6Mrq^_wg6ZbDOsC Q2+-XOp00i_>zopr033w>k^lez diff --git a/resources/images/protocol/aim/aim16x16-online.png b/resources/images/protocol/aim/aim16x16-online.png index 4530209db758f3735a3ceccd6062e4a229df227f..d85cbeb55cdab86f25cd2f85e963a94b33fd44f8 100644 GIT binary patch literal 1532 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 literal 0 HcmV?d00001 diff --git a/resources/images/protocol/facebook/facebook-idle.png b/resources/images/protocol/facebook/facebook-idle.png index 719698f39099a2b161c73bb639da187eef94cb59..42654a400d8be69c3627c0295e7ad689b2187074 100644 GIT binary patch literal 1706 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g!!3HGbRrPd%lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6H#2Ih>+kcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`GuBNuFf>#!Gt)CP zF*P$Y)KM@pFf`IP03tJ8LlY}gGb`4?pZBPB7%B|o_|H#M)s)5TT^D5IB>nPO#NVgU?A za}xt|BLg!FLqkh*M^h(rClg~AGglW^7bln**z}sX7@4|Qn7TR|S{NG|x*A%TyO=vW z8aukUSvonI8yms&dgc|EB<3Zj!tBii+6&d|f>*DVb5UwyNq$jCetr%t1q5W|m*f{` zK@kM;uS;rCW?5>ATTy5v7jp|kC8*vMazafX=oo!a@<2*1Fd<+X1To=>AIO1cpVT~Ho+$!m zj<)=!G6n{w8=fwXAr-f_O!4;+36wd$f3x+wH#c&Yvc0`D>-Dq!TkR)!&tO;7&{v9Z znYU?m1y{4zMsGPO(U3*W0n^WXTXe7Mg<2zP9hiCtS7eBXYja#)+ z>~sHZg{U(EMLs7UcAk;3JmaV?@5^kosx2j|c~a0sg{a=woOwhP{ zKflPT+lq<%H7ct%&ghJfI#%F3?`+et)2%CP%Y}}XaUT4@HLu@y!4`$CUAK=)$Vx^k z+`cEsdoL^N*F4{;tK+UoORr0Kb-YWlV!>9adzXZBY=4$=O}t>FWg}-H!xynOOrxtQ z!JuR2%giH>KgKcDdwic|rmxbUbu2*q&QG3OpC9Q?`p6rzdUf;Zr%ehR3uImQzs#?? zpSRs!LGVjT@IlAhQ@i@l=cQf0m?839_Q26qT5R6SFSlI`t=#*=z|QZX9ose2sg>KO zv!vJY3M=k5rMKGfyhy*In1Qcn8yYmQc@ z9FG;pJGb7DH}n@OaM|J@QZ$2woBv);)65RGg`rxi@SWj#IN^tpT}zYRIy^t&R-W}HoJ9g{d0czqv&lN?OzxD*FM1T$FZbP0l+XkK1KfOz@Z0f2-7z;ux~O9+4z06=<WDR*FRcSTFz- zW=q650N5=6FiBTtNC2?60Km==3$g$R3;-}uh=nNt1bYBr$Ri_o0EC$U6h`t_Jn<{8 z5a%iY0C<_QJh>z}MS)ugEpZ1|S1ukX&Pf+56gFW3VVXcL!g-k)GJ!M?;PcD?0HBc- z5#WRK{dmp}uFlRjj{U%*%WZ25jX z{P*?XzTzZ-GF^d31o+^>%=Ap99M6&ogks$0k4OBs3;+Bb(;~!4V!2o<6ys46agIcq zjPo+3B8fthDa9qy|77CdEc*jK-!%ZRYCZvbku9iQV*~a}ClFY4z~c7+0P?$U!PF=S z1Au6Q;m>#f??3%Vpd|o+W=WE9003S@Bra6Svp>fO002awfhw>;8}z{#EWidF!3EsG z3;bXU&9EIRU@z1_9W=mEXoiz;4lcq~xDGvV5BgyU zp1~-*fe8db$Osc*A=-!mVv1NJjtCc-h4>-CNCXm#Bp}I%6j35eku^v$Qi@a{RY)E3 zJ#qp$hg?Rwkvqr$GJ^buyhkyVfwECO)C{#lxu`c9ghrwZ&}4KmnvWKso6vH!8a<3Q zq36)6Xb;+tK10Vaz~~qUGsJ8#F2=(`u{bOVlVi)VBCHIn#u~6ztOL7=^<&SmcLWlF zMZgI*1b0FpVIDz9SWH+>*hr`#93(Um+6gxa1B6k+CnA%mOSC4s5&6UzVlpv@SV$}* z))J2sFA#f(L&P^E5{W}HC%KRUNwK6<(h|}}(r!{C=`5+6G)NjFlgZj-YqAG9lq?`C z$c5yc>d>VnA`E_*3F2Qp##d8RZb=H01_mm@+|Cqnc9PsG(F5HIG_C zt)aG3uTh7n6Et<2In9F>NlT@zqLtGcXcuVrX|L#Xx)I%#9!{6gSJKPrN9dR61N3(c z4Tcqi$B1Vr8Jidf7-t!G7_XR2rWwr)$3XQ?}=hpK0&Z&W{| zep&sA23f;Q!%st`QJ}G3cbou<7-yIK2z4nfCCCtN2-XOGSWo##{8Q{ATurxr~;I`ytDs%xbip}RzP zziy}Qn4Z2~fSycmr`~zJ=lUFdFa1>gZThG6M+{g7vkW8#+YHVaJjFF}Z#*3@$J_By zLtVo_L#1JrVVB{Ak-5=4qt!-@Mh}c>#$4kh<88)m#-k<%CLtzEP3leVno>={htGUuD;o7bD)w_sX$S}eAxwzy?UvgBH(S?;#HZiQMoS*2K2 zT3xe7t(~nU*1N5{rxB;QPLocnp4Ml>u<^FZwyC!nu;thW+pe~4wtZn|Vi#w(#jeBd zlf9FDx_yoPJqHbk*$%56S{;6Kv~mM9!g3B(KJ}#RZ#@)!hR|78Dq|Iq-afF%KE1Brn_fm;Im z_u$xr8UFki1L{Ox>G0o)(&RAZ;=|I=wN2l97;cLaHH6leTB-XXa*h%dBOEvi`+x zi?=Txl?TadvyiL>SuF~-LZ;|cS}4~l2eM~nS7yJ>iOM;atDY;(?aZ^v+mJV$@1Ote z62cPUlD4IWOIIx&SmwQ~YB{nzae3Pc;}r!fhE@iwJh+OsDs9zItL;~pu715HdQEGA zUct(O!LkCy1<%NCg+}G`0PgpNm-?d@-hMgNe6^V+j6x$b<6@S<$+<4_1hi}Ti zncS4LsjI}fWY1>OX6feMEuLErma3QLmkw?X+1j)X-&VBk_4Y;EFPF_I+q;9dL%E~B zJh;4Nr^(LEJ3myURP{Rblsw%57T)g973R8o)DE9*xN#~;4_o$q%o z4K@u`jhx2fBXC4{U8Qn{*%*B$Ge=nny$HAYq{=vy|sI0 z_vss+H_qMky?OB#|JK!>IX&II^LlUh#rO5!7TtbwC;iULyV-Xq?ybB}ykGP{?LpZ? z-G|jbTmIbG@7#ZCz;~eY(cDM(28Dyq{*m>M4?_iynUBkc4TkHUI6gT!;y-fz>HMcd z&t%Ugo)`Y2{>!cx7B7DI)$7;J(U{Spm-3gBzioV_{p!H$8L!*M!p0uH$#^p{Ui4P` z?ZJ24cOCDe-w#jZd?0@)|7iKK^;6KN`;!@ylm7$*nDhK&GcDTy000JJOGiWi{{a60 z|De66lK=n!32;bRa{vGh*8l(w*8xH(n|J^K00(qQO+^RV0uK%-4(+LUcmMzbHc3Q5 zR5;6(lTAoeQ5462=iT}6jiY8}jYNxSY`}?jK{ybEwGt}Af);_BS`~=YA~$Vq6SSyh zs}@D%re(h7WH(3u|FYCDRFcHpa4e6cYqju8dg#}W_m>sY#i<^2M$gekA` z`qO4D;%Tuh`!IZ;K>)QI|60;{8c!GP2!JCAVxBa=*>Z%Rxd+60FOzILfC1!L5=V6e zQUEk@Jl{0UFQ1>}U@8rO_6^DsJl~+L*53f4FkbTp_L8d;=itZ3#;MZ6}Gg#=aobPfI*mC%h7-F zD(Os?`T2Qrxg6h?7kT;gKG$zQL@CAUqhttV1+}rZItS>#aE){(3&8aBGyv&Lmi*u? z=H})C&0aXP7ihL(U45i8Cz=|V?#)sx7K7Hcgu->*Kti;oJv_E@nL?ou7?((3OfcTa z*~g7Lm3O09^=feLZkI!V;o)IQr4j(~c%1e1^~M`$jL?UuvlRfGjRjVg7CGJ7Pb@dT#X~*3z<7_OD+$T&L O0000k)!biKZcdSR>Csq=;OZ zxAqq#m_T@6rIsaQ$&wX(1*)OStvXbbMu(#bgy2w zYpsH1)&kAM3nO}UE~1RkqZ(j3!+iByJfL$q3_61?f|xUr^XNP#58{cqyl^JW8Es{p8*!D}SnNWX>uonMe`|gjxQx6sYH7i? zTN}ZT3K^GWoA-nMr|a+a4zCJo`qlF19tEXy*we16KXlOY!aT_BJLy>L_IEj0feO}D zoDZ^ZxbBlPucH{SA3`UhS6>>~;niGsBynuubgiHJ6V8X6T~Y3;44dMR?Y0Z*Y|VEH zx3jkFEiL%wu&5}8PxfBaEgik(_gPy_>ebjQWvMT(k&$sJY4;99=|tA~cem9N#~v4u z{q-L)*u{75Fb_QszEJx>?ewC#{X6-jtSW(`9N-=exZ1ya*SUk0MfQoNyw^i_*OEeV z6-oDPTFe)LAV<0C+JR>ypFF<)^7kA4OZtOLYSJ3+ozJq_Bi{DM5|=Z%2W%5Df`@Y| zc_cv?)%F#8(LMI-^xP!*2&trIITCO-sYBNiD)H*Z4fkW(#|)3!UJP2cotq-Nb3AP)b6MD z-8t&}YkrQbDeNt}y}G_5q~xw8PN=Gzc)3IypO|U~DOT72Sl`+)8SUFgmK69s*gCq> zXgk&5xqu~_$;AmL))lh(Np?YE zuX9)YdPl~Gb6ToEIL^XnlvPh&TCtNIRN^67yuTjvO5fKvWhySuZY{T47g}njZv4wd zTy!<%xxwU8=l;+k+v|20BN|rpU4L)K;^>6+nJ3ovcz89E!uF-@gv_B)UBM(@bT5!p z*I@BI%W`P*39xiJbqgxP)_1N?Y@;^Ee=%_QhH&g=*65ZKo+(+GNAsz~_UFaC4*M-i z_M=NF%vCb;!|Hf(3iH8Zfgj;e#;!9jOU`( O-;Fpt8a@)XrtlvsKA^z> literal 3203 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 literal 0 HcmV?d00001 diff --git a/resources/images/protocol/facebook/status16x16-dnd.png b/resources/images/protocol/facebook/status16x16-dnd.png index 0bef0c3690b571d2609efcd8eb6fea3f3949e92d..22976e6d17f299733494367b1ff26e1a6bdee1cb 100644 GIT binary patch literal 1720 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g!!3HGbRrPd%lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6H#2Ih>+kcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`GuBNuFf>#!Gt)CP zF*P$Y)KM@pFf`IP03tJ8LlY}gGb`4?pZBPB7%B|o_|H#M)s)5TT^D5IB>nPO#NVgU?A za}xt|BLg!FLqkh*M^h(rClg~AGglW^7bln**z}sX7`nL{x|lc`S{NG|x*A%TyO=vW z8aukUSvonI8yms&dgc|EB<3Zj!tBii+6&cdj90Ifb5UwyNq$jCetr%t1q5W|m*f{` zK@kM;uS;rCW?5>ATTy5v7jp|kC8*vMazafX=oo!a@<2*1Fd<+X1To=>AIO1cpVT~Ho+$!m z4$m2f{xC2wJ@a&N45_%aWlFq9aG=cb{ol`RcZ~B zTRmyh<~0*~n0(me*d}^BIFZ0-RcXTOu|g`TkT=k^)#ppCu8!~C*&hVmv^J>STr2eK zS#!15R+alrC6QfUQbjysqLfxPAI@^Q8z{c&^xT5yksHjcyO+=1{-DyhyYH;RAJMz< z9k&Gn{a=20^hG{lqWa5KCl6kqW%FUm(@nn~y`AmB!@pqPI>u+p(-l%I7p!CDR-XL$ z-h<6`>-R5O(0yQiUUTIVw(uz_n>TGg*)8?dI7asR!S(G8orVd;%t^~wxBYe9FyY(N z-{saEG9u>=$ZUxXHoR7wxLa=a?}k@D11+SZ51cqoxeZC^8 z!!k`{Pyh1TUCTCglxHnp``x~2@d;i#AEmGLNfVW{{)_!pdut->o@gjrG}CpC$D6j$ zt=~2l{fRSH%6ETo;w)nr(}BDDu0%gQCOYFFUyLsE@u?N3VjX>BV;d8;GkJ5r{QlsR zQcH_db|sHY=#(kl?!G5(vYX1ZX>h$fxarKF4ps>ZrQ;GizV1<9x&P;pOqVvcMB|wa zliM$CQr;+`8<*3#_yXsQIZKwD+twz=!d9KwdHg`}%7s!h?ku<`Xt598hlzP0&YeBGQgCkakEc_788OMq35 zNszbb(u20sneCsd82DVpUEO9uM5{EWKp2%%#?zo(T)T9O&8m@salHoxj?T^ybRGlh>=_zL=;a9vi;P jC3=JAqTYBvdlm_XG%mZa-R@g+L3N3ztDnm{r-UW|9}bl$ literal 710 zcmV;%0y+JOP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2igJ; z4k;Gr-qCLW00KryL_t(I%axPQOH@%9hM#lqozaU8S% zDujM)LO*&_Vcu5C?(C^A(OdZshtR*?qD@aNz(ub>Ix;@vV(gq6ezU=3RR3y~7On?*@RODWq2(aQ9jZEl2hNkjmHu13J=ksW8NUfX4QK<8`$F z^o_sg$L}?S0Hu7@MSwtVvGDQ9<&yi;J7)km)j#Pk>YFSG$EJ7Y6`hr9giXOpI*&KD zfHpLQFpLt=KcyNQ3Uukw_xwK5OI?Ui2$f6{P9#{Ln&Qi|Nlt(JgfI-+ZoMqcfs#Jx z=Fhi;yU$V(0xKRTx41|y9w(bh5n2Au+W0sCO1dTGNzVs#Rb{Xp2PYUrG&Vw06ErvD zMj~W#IT8~SMd_Q%aU9=*(jgO%Q#Ue#W|pQoF+ELgex7>Z#)T8be(cQ*dAr~PQmHi7 z!UBOUD%5$+S+Xu|03xpGMEDsKr&B1Fg%Czc%H&`TndiMYB~#GiRih}fnC|;SkLT>%Dve? sXi8!mCSN11Odah+Y5I2m$r3R97YmyUh}J4L4*&oF07*qoM6N<$f)))kYXATM diff --git a/resources/images/protocol/facebook/status16x16-ffc.png b/resources/images/protocol/facebook/status16x16-ffc.png index 7e081bdc5c6f8a01a077e4b5b34e64e39a1687f0..196856bcc3a18da45453deda0dc0872809a6d3b7 100644 GIT binary patch literal 1847 zcmbVNYfuws6pbhpDNtcVQNdXkK`7?2N!UCfV3G~WBM>1fqXiR^g`|*dOjZeKL7-Yt z5fPM8L>UB>M^OvvC@7#-d?0GYDj-Th)IkC9)nXO8QLz2t_@g_!`#tuabMHOhy|bB; zki|Auv#m%Zl1;!8B#anm5Rbj31@T_(N+A=&EL;?Uhhs5#f?SW1_)07q1p+kkSTqck zD-+jTMtw-6$ttxp0*?>}a}}6|A~)Gkj2az*CXsynj5@g@4#k0JG*+$UfkSl-AfQ(A zz!hF%nph`9Rq7>4dNe#KM5;)NQ*e}^pD*BJvbZC=9ZK20;J}Qy``n3_}Y6It`*zX~YeaAtu)g=F(Zf_yrQ) z^vW1+7~((fi&*hM6^`q;RBA#(0wsY#!Su0Ih{NHSIOudTVL>(|YH_)dtTnhyFd(Qw zp;zm0HKqkjjPht~EzSdpNI#~a(TT;Mh_!}sp$N&SM!Aj(QD{_+#+26wYXcsJ{u{<; ztqsyd9ZC&D4cJ<}f;f*DmkBVT-IpDi42fvCp?WoODDrp&Q>@jXT08*Zfy5VzQmy3D zm~28t7L&%J(_l6PaaepW0ZYJSAg~A#A%Y2x&taJeg!n^<7aw9XAV>tUSqMwWXYdh! zj)2c%&?m3~S_3ZED$ohPYQpb0mia|2SExtjIHs3kSo}lrkb?9@79H6y~Zw69J6{(`j@sA;kEYIh)32upzdP#TGFT78?S` zvC99W8kGo!YATQal*_~xQG=%Gr{X6TpV|l25rFEJ6m>CNuVGsD|LrV5q#8(Kij@y-t*KKyEkU0-jKX2 zc7v0TK`Z?nk7rK1FMy_1^sHL-twrgA^4p#dPv2SpbYNhhi^2%!36jX=nKdIrExs>( z8d`k3uj|UxJ!7hUDM5Fl%!Zg^;YtY*yOgut+lhN-tT6f|Y!z9PTqvb@&zrhDqu#te z>(Z4RnXOx*_2f%^HmcL9!SFY`+-C;`rau_F5#VS@wYl7vr+a$6++1^e^+4l>y4suh zGS{bcy~z2>KC=_Pk?A&}%g(LnTjZ{v+}z+ZshzRy(Fu3%+mI}~lQl>e#`0v%HS1ic ztQ+a+b~!S|uBuYjOHKCOQt+p5bEUZR*oB%ow#S@2$o)1Vi;f1HAKLEUd^`v~Pj9#M!)V5*z<#@-CvwK^x^Lv`sSPh}FTbHiyvFbQGa`3Cs z3WrO3J)GJN8SNc!ju#bgDFLCZKeJ!cItwDPrWLaqsfyJNt&OL?)6Ot3_xPQU4XKqdor4e;&Jl?KPN!txKZFSn8!m(^` zcKLa6k$Wz)q@c3vp89RQ)_wR@z3aPY7oYApli&R!Ll=}R&0|h~l-DvOY4gqyN%MwZ zA6UnXj4SnA-kYf|Z1-q!#C literal 756 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2igJ; z4k$D$rJ>3I00MMLL_t(I%axN$NK{cAhrcuT&Nu^VHf9f+fyOcsB8w@sGzfYam9~%; z5j`Q=6t;081g)ayCbC5Y5rm5 zC=^nHWlNGNNy4--Oq=MhIGt_nhOU(KEz0uo>TlJnjo0j5V>?0ES zf!Q0wz4|!9rKf@Zo4WXCpb5#@RnG~Q9t8ndaRPZERC1UPPY<)9vH{`JDLLJcJ_kxV zpxV+N0vq=tlRp`c_9G|zh(-EQ<{(A6o!CS504Qmt#g?`MI9Qf}N)FTAH$c;?ZsgcA zYA-(GW%E6RK8B1xo>HHgR4V0E@Ot7zMh6J!9Slr-L`}r0-l|g;Ht8MFD9r8w;8bPt zl>Y4}9VC*bW1!?utUv91?rLTCmOluuO+~rEyH6U~ISE8&$f=;@bZiU5NIC}nqhqXH zIY{eo#r;=qii=Fzy1XpSwOAQ6seh5j-8VO8&BvsXZ~$i-D-zA;?s%(q+Vl=-yzOwa zquijdAi>vIh`!hnwiRngrLb*9GG$?=ETX^00Spn^d#NVqk6ylY;-Pm;Yd~h diff --git a/resources/images/protocol/facebook/status16x16-invisible.png b/resources/images/protocol/facebook/status16x16-invisible.png new file mode 100644 index 0000000000000000000000000000000000000000..2571abc60b534b4763462050cd0e32f1783af8e4 GIT binary patch literal 1756 zcmbVNX;2eq7*0JRP(VP6pi;I`0b5D3n~)144cR~fBr1m@R%J;R$dF`1vPeV=qST5h zQp670fRY6nC>)X^EmZa8dzIR5C)?tb6*?)yCNJ)6Hw z7VhLQ$ALs5IZ4EDG_iURkDDEtc&}SX4ImaTTojMTV99tUqC-gn1(t*Y5;c;7Mx%&g zL;58&m_(YIs*H`t?hT9Y84xWEq|#|>wJokOZ9N{1{_Dm& zwe_(Zv?wha)ngetIZ=<~`IBHGckef3QzX3ME!8QBq97_5lV_+=4K9KC6ygh2p;Ykb zOb(GnHj~bV=qwHha@m5wP1JI1_+8k4jX0*1q=Zk z#tjv)8PFtFqS51sMvhL}RT6e5u=Mw0c|skE;FvBJ!&H+Uuq+kBF?}kg1%xpyz+Z~U zl^UC1k*z@E@xrK1xgJ%7=`b}gmSLXq9UjoxEQk&T3PHwr2WAxONbgA`Ki_gV{Q7X`XmZCg#*3nxcALdqv+tWKr#Db1n)7DkbD38x7 zwoD1wowanGg2qn>Jp_Y&)@~wx8qd`l$Ad^OV7k z4C#`qp@Qz&)5_Ccwruswe?%r{l~+Z}g4DUH-H8!yMGD}%X$gxzuMF?poEjzcHw&CD z)Gs|baJ%?n@~vkstpdyUn|`Cn?-mb=%Wu>q&+|B#d-@x@Xq?2}Px)j&X5!hYj`gkitazU*UHO_td@U5e2uJ?HjuHwF)-wKLh)F zTDoo|^!D~z6i{xQ``qgxrj_pZKM}Rhtqk4#eC9_OdCtAt*-bv^iaVP`(`OiAiv58j zTFy|GZdYz$dg2=6aHscz%aM`({-2ur+FhK#?yy=5y1L@F#|Cz!x;qsVXit36-S|Vj zi(apr3Zw?2fgZ ztLWoiDAMM|6p8m9DtAfx$@6jMdh_ug^ZeQ#j+EEbIGIeQ`i_eGDB9ijO6=}jeO2Nd z@o}*t!X;>6=%O72L4d@qZrkW+c3x`C3U3u7IVF3++K(f(AiwB-K=~5?dY`zr8Ll7)ox5$y(1eEUHzNf{bHc@g-g?CJNwOVs20*$zkJEV SM60Xqe*(b2fp__hMVB>i0-M?gG!^`E@%L8MU@7C z`Xr$V1b`6jX#EV7B1l$D4Attj{t7mtNVs6=;0Z~EXap%OPpCqq8R%#OXcA>7HZy(} zL&c~Q+imree$@?P;;y6yg2~EIB-tEsM6vQRv^2p&0tx5>nvh!LIGb={i@Yq{8)5=O z7gh9TC${8Nt-l&|D;hwpxWyD9DGFs6oT9A^LzSRrk}?w{ycrWkvsQ*R+tB3;gVwZY zBOBno%eLUjiN$nXWeK9ay&Z42;EL8nP!5N~;4qs_P{S1OkaZzplH*%43_OTOG*Q(> zMMe!qp+RZWof!0VDFjLN`&WqN_;R9P%7}!Z5)@7nl4QiSs2$e>;9oaZ)sBZcR6qnk zTxruHupW(DGGLgyI~y_-p*L)mCc>f!ExZzGlYp%IcqazG;88KklC&LW(MFRtGs)N~ z%3*U^IU7e?c*etfcrL@S8kYB1%(R{c_^>P%#m)+MZ3K24Av*dbwQ4R zj9n4hUB+^E#IkM;2)d$$6s0B80o5@@SK={6McqLL-R2h}qHGAZ8wFa5mj{~o9Ef@~ zMM4)d%!;dc;Gx_U@1{tKUy9sL+AR*w%Fraw(6q&dEn}nqCu;{hYvl?hz8&rzAMD(bzjvQHWvXZyVU7=voE|Mcer9O& zwd%qjgTW_z{=B=at7>!AjuJHS;)e@co4a=ozI?bOFP;AM;_OTeguk>^)TL_ba?8(e zPD)=7SFE4W+4)ea@CAHh9<}M9NERFtk46h}Zj5zbN{1fIcD`LT_T5bHb;niN_Cycg zH+jA5sln_6Q!)O?=cjfLe08Ju=n$>C^j8Kh%uao;`F@$}D>|GD!rt+#-InH|hYQ}X zxsseHnjW3Iot)?a;q-Lwy&q&vHd@~LJ)W~CEoS$N7Ya{q`%8T<+21Ki6(v-v!g{2*7~ F`44dM;<*3- literal 567 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=d3- zBeEE1(KQfeoRD8R2Ph~};u=vBoS#-wo>-L15RjOeSEA?V8lq5UtY>U$@NV;bpaW_= zT^vI!{HIR#?mFZk&~~=y-BLLR7D1Io9sDLK$rm{GO$uNR+HYxe$MMHT4f*ZsJvtOQ4)r%nbskL$+kN*~j#=}%*Ee#^ zZoDnCkm0kC>+ktn*Z;Px`)gJ2)1uCoC0wDQj$0>Yn4F69m?YBmv4Uq+DpSJT2tmg7vdRd|n^PoR_)-z5KS4XX>hkn-lYv7Jco?<=I z$HsAOn6uH$BQHySfrW0r|8DDOH{V@pB8ThdnuTMYB%mP4*FfmEp0%?H{Yi!ib=6jGmxm!QkoY=d#Wzp$Pyg C1mqt8 diff --git a/resources/images/protocol/facebook/status16x16-online.png b/resources/images/protocol/facebook/status16x16-online.png index bc42cf9b0b3251a61786d99628207d2978969cb2..4bc93a21ecd3366dba580e9f605426d679f46665 100644 GIT binary patch literal 1426 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g!!3HGbRrPd%lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6H#2Ih>+kcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`GuBNuFf>#!Gt)CP zF*P$Y)KM@pFf`IP03tJ8LlY}gGb`4?pZBPB7%B|o_|H#M)s)5TT^D5IB>nPO#NVgU?A za}xt|BLg!FLqkh*M^h(rClg~AGglW^7bln**z~%%8XK87n^`!SSQ;4`x*A$Kxf;5; z8aWv_J2{#-x;ex2dgc|EB<3Zj!tBii+6&bSv2&Fm=9kpBK;Qj;1-R$}4-zbza>t}OKp`Wu9-9fLYU zyBZQCFL>!3Id;y^af7(Dpy)=?gKld+8}#qKlYIT=WES6|$lx8v@4UNrre?eG8NP>e z4%hQcinw#%v7)cot-461%a!BgzSvYg>zAgCbLaV9{NW(7Vqw!t?FHEyT8`;VGV;e5 zZ00-OO--=2i_rL)G}F%B=Gg>6wzMtwUJsw{y%4;jb0SAccaX5Y^U-3%^@|;KvJRX& zqjAQc=irS37OidUr>n0!e0^uncVJf2!(Vd`?tbm*(Z|pB+G!_W+d8&w%iNwMupT-% zxwFC`U+&I<*Y2F3`4qT3T{KyR6LMGXu#Nh?)&8sw%jY}aj&5K4t39OPS^K;lr6zA& zrUY$xUYYwKW4o-0ewY^CbPSmi?k!Zp(A_Wjqha=-0h2 kv~OYV*Zop|r!z1!s3~8WbmHEML!eU9)78&qol`;+0MuvuR{#J2 literal 552 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 diff --git a/resources/images/protocol/facebook/status16x16-xa.png b/resources/images/protocol/facebook/status16x16-xa.png index 719698f39099a2b161c73bb639da187eef94cb59..ba5adb85778c47471db7884881e8720f973f4ad3 100644 GIT binary patch literal 1726 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6K!3HEZJa-iaQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07??9MLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}t-3#_`hBq$Z(46Le)Ln;eW^@CE2 z^Gl18f$@>14ATq@JNy=b6armig;H0W@usHWM~T0>zP+vl9-pA3bQv8XfIT+1zx>Y&PAz-CHX}m`T04p6cCV+Uy@&( zkzb(T9Bihb;hUJ8nFkWk1Vs?Uzb>gonPsUdZbkXI3g8g7%EaOVa|;6lQxhXI6BCHf zEetG-fo?ZU+aN_1!STnJ)_E%bf z{-a=tkgmN?oQ<7Tt3H?-$6wj5&?KjG!K3*IhiHkg_U)i6J9oalx3fC`xy;>yEva@t z_WyZj`Tc|a{?GqyrU!?L{#KoH_F`eX%!827*87*;{DhxbtULPk*S*alR#sj$-(oE1 zS6*O=Ti>ea+iW7+I8B*FCghU_m%vm}kJ(&DI(iHauF^l?-&0>E)K@=IyQZ!4_?hop zZFlBu=D2Y-TDJD()+2VRvqBE$Tw1(MNqnk$-vWi`18ovV*Q&n{$eI>VXv^Qs%q$f6 zS!j>qi=Bbt-%aJLvU`KqmWDh${l+Wk)4O9uQ)I2rJj-U}e0MXmqW*8o-W?KR-K=hl z1s7=?di*gVtx9TPz=~#>4+?oZ+m40$f~`B{l5my6$Pu()PS~d-Tzxq)G3dzIc%O zWZ{M*C#3bJFI6#LlCI#Cv^r<<?mZgo95!oyG0jh1*wh#@@YqA!p+LyK3SK zg^Df}YMyjGcVyD6+4Ij&`n6)MuHi#H@$SEW{@B#%=v-JT7uLmE*}h?u+^wxo_2tYT zdOZ!CW)Q_vztvjvVy^>3-1_OJLR)S2yyO3rcCdkYkK7)`-h&ISJ1)QK;O#JX$wQ7) zT5kI*3yjY5&pyjGv88jGqOPZM_RooOu8M literal 3332 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 O0000mltsn}{r1`|UvF`1YEB5G+1 zqM~wHXv=a@tW^{cC}mwhko5)&y#Ph9fGlzm#8yN(qOubOcYk>LW9Q7w_kHiY&-32T zq=g1=wy|1mMIaDt0tK)LUsvLfy~R8DdxtB@6JH!LeiRml#$pDE79ntCXbb`bswBG* z5h9Vr@41Qi5(tas3UL$`B@ALoQ58vI(jggD8XQd^`1%_)5~&iwfEZ+#Ld_;Vyxc$p z6f!n3(o0AYYIulTAxO|7VF|%vX@XMfEhGB-0lr2SPM|_C31C#ksdX$PoA`>Ch3`#b zG7)&Cf+^X=*G@$VLjfMDMF1}n%~MJNL4d&^fpjkh1KbEuDIk?h!Ec5qNN0I5SX3r3 ze-UwOT3IYh1P9F9!cT0X9K$p$GTC4-kPI{us@+8fy}i9n98{_&uHmVRS7Q>Rr&{N{ zzyKpUsaB!E6sQ_7F-l@kJ;o;Dp1ux2r4b6>5UX|biNaGxHcB*PkVGM?RHnFIY3nc% z@?SUJs;v{pYY?&s(V=>+6t73D^8y&p-JcsWDdOI+LbM9JD3UlBmFiW98ViKkMEna$ zrjW5HbO_HPlTKk$DGUe%y_p;@E|W{A!3;jkhq((JZ^JSIs2m;?0CGTx27-JLV!})w zhsJ>eyty1EjkK_T8b>#Rp55#v6Mf>vUplVf}vV5ipDK;K&TwWP@Npr0K6~; z;3kwv6>5{f-Bh60@xq8!u@{jAXi*jLD#I+rTRfmJ8B_|@iwDwPM-EXS8U#W-Cd8+~ zOb8^-V`cwO*2uUsWK(@bV%DMbTsA^Zg$D zvoAW9bscsvk1h%QE>+mO$=^c7_Y6NN7l>B0{_-znW|GVhyEj(-FmCtRs*;i)4}LJx zmX|oEgGTP~pphB>_s3dRlo5q3kM&g}g4{D*GsveQjy6551yy;BZ0^{=bXSTpqc;hw2Y|MBxYPJ`7LCnfYQIEx4pk+P}?T9%sf4I_GGD| zbCy;7a!imHJKiPiCPtYQKVh|KGeT)^*aFHVD&Omb6)2 z(C0k5mebplGwQO(wYqTT-ksFOo*ye_J>gOf~tuTcFXdS)H54d=Uz_9 z)B57y)v{Du0P9A87d>Vdb8GFH%GHM4c73VO-9!H2VGUz{$$|~3ar~WYXw`Y&o!@+B zY1`Vd`b~ZggV%i}J=Nu2GN_~G{KP6Rw>BjuI@8xxd_Oi{42IuAwV^fd99S93mt|6x<~$QCd|iu$ ztN!Tv=<3ZugD|YFJ@IsTTd-Q0WB6n|+whH3_ZQLW@e`#^oFq4QtM2rVKRk9I%iMYW z4|^KicK0RO)=x(cD4*@Ct@GUh)-+EC9bu8$n{SP69={)N2-?xy&9xhOr=Tgj;zF_9 zdb+2)T+%%p1ePrW6IeO?x@lg+sC|3(@x#fLns}b`_PLZK`ia(RA76J@k?SbEr<^J) zUf+HAS%*`~RU~7(*}o&E3P=Hr{Ku_^iL?ialGNwDwoXT~PlZg~UU%w1uF7Z82CGb( z`?bpRKfcfYa%Y;gSw-I0$!X(5Cj>47f1lja(iC&!%AT?2TNZO0>@PjaiYkihv)z_c z;!?Rt6yCU%Q^t#|m3xjabE-%g&ov&m`{~)Q+oKxL`yI|rDfTn6--G_vS87qaDl$dL z3$t!et$9>kbp4*uRl0wC{krnTW^Afd6@5b{bcxj#-aU5l`rdxXMI;GKX2QYs$$;k( zLwfK(W*c{1Nb^?qXRK&PtEcmiRt)`9W5En}oa$ItWEROh7Fo0QIk5{Ht?Djtw=J5Z ujOrWLbB+SQ4a;lhHFZ7gJCDC6EG7)aJzv@;J{fBIaR>5);fvgzhyDYa6I^cq literal 1008 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 literal 1124 zcmV-q1e^PbP)R2tEt7*E2!>v8E?dILwb`RU#fB(nc6j?Fa7ryVleBOMCWm!0X z;)t)12HucaB1_^7AK?VDNFBi>bxutgD?4t-%Puw_*=t}KA(va4%F1!)Og2B^w>Zht zc-hi98I49grrrj+ff@COEHtx+AUH&#$_IC4;z3NgRCs|2f(iEK^jcqG#`_)rB7F?7W zQ(+Th7#B_Qj!;bSPDbsynbOSb=RbM>)g{3T!CF3|Iq1Q{A5fiVLUy{~bgh8LDS%K0 z${5(6)eMd)i^QFn*FW5M_>0!#C(nuh2AOB|?w76%uF7ffjiNRyj7cjWaWfr3B@;>B z3%@G@Su{a79R(H|?pBP|Lg&}hI`r&RE9FJ6Q1XucYLL(x)j%k`B2i#M!d@lun&p&87TU|m9=4GlQx~@Uf zR7^!BTpg{!jj<}MlKMe-113lDIL2XQE(fY8A{>)27RiCZGh#Bvd+gzC`qw)jx4iPr znjF2cJTKl!&A6Uem`6Mwg|5zErEM6R#lxaNP00}ID!Kp%#k%q#Y$)x9K^VX&1hSY$ zEX(@G?Z;1^BcWLwn2vD!A5PfUg7ECvrcc3JLohgshMF)8iNUn-fMJ3rb+mn#jq0qR z64vXl{|9^mW}#W@z+8-MZpgj6qteqR-yFzBhVmGe`S;Eec}q*R8|!jI$==AG&z1zA z%<0qbZQY!4sa4m5Xoki`gg34(nk;jn@$gHQ~Cga={VMcfF8191iM zF?S&c6iO{p=obVBd3nCQi#BTkU?$Z13xnFi2U zRGJGJq|yNF3Rdv{WQ~A0Lr}HH|Fp}h2O5?Q`7U+V=D;?Z9qYKzldFi?)Gl81 z>6fPH&=-{>+NA33H;Z+4lop9K+Jp!Co@GE=52f**J@_Vh?fI~>^PR7U|Hg_)un13R z+%ev*t=L#tdrxQR{J`@LO>)njISZB(gcAZP*0}IYysdIXl%Jl#7;as=n z@|uA3z^_ei$m|~H@Bgr#SCFrX(Q?|}^a85dl5K_wosk{6)p2Inv@O1d?`T5TNe4&b zYW9@{3``BxP-*hfmassR%;22YeU0xpht4;A@AK%|NY@STOPj!%pqYgSMi#$|g2AFI zTAg}rwbxUOPFX#^xw!aa>!|eB{!HN?;^cvsPo(p0eYfO$MPZf}2ONE_PG^Tc5f)mD z2YUkwS`O=kYMeW$9-uDM5v*6JE%x;fXnO4QeE1=-@fVBZHJX|OR+g6d>wnB9Y9IHu zYX#l0i{G67J+h9f(?LI2?`^KeMByVL{_%Ys;Qp zxUK1_z9}}|U!TQR{+ydsBr9Kd)A4ZrV991PgQmt;?h`keXN;vg7acN~>oN-WJhau) z*1r89_IPII(|5V#`KJ@X`)?gI+OXLSp7CHE@j66BTTc{CjyGS??@aThR*f!>8N|ph zqhpe{?H(wZ2IsZ+7d{~-B`OU=qaM*)p3CgD&}j1uY@G24-ePqud$>O03KN}W&~)Nm z(|uZlS-`!VuJ^=*D69Is-@7w$|Qth{%mPeQcBd{x1c=x{P0F@|RFb`vzW^%|B zwTrspd;fC3*zpAaTBr83j1V3-IjxUA9&mRy!SwX($-UX9JS|UkhC3VfH7s8bZDw(T zMs?Su;l3+8S+*vSlajxE`d^)S-D*pm`be?g;Ew)Z@L-5>?r%0*3a-7)2pP>f?WSF~ m)ZZSsl&Ak}A9}%gogqq)wbZSye!EEZgLijfgV&g0hyMe#J!bO& literal 1014 zcmVNr^H1fZjm6AN2#DHh?WtQB||5KKtc$K0SOis z5FHq4nUJ6?Ffh;}gh(JEq@ig-qSmdG+OeJ3@qPH**SQQRl~4X`HU@d%+wfdoko@z^D5%jJ~4P1aZXDjb~ubY>=i{|S$iYIl)cdF2qgI-11IgiZ`8 zMl2!DThSh|)itPAhw^xDVs3sB4;7A={|n=;eo&kq=N5-I$w>2O^!UQ9PJhZr*opAS zd@!;x^hA6yi-^cvq{7@@es%d~@7L$vJ?GpHBWl>z@35ZC`T7gmcWddyjWX2{0uXox zFFurdfIHMLM-^nmHP)K!S{D${g#hryeQ%z6toUrb6&An!Gpk%#5gpg(fPny`IY^!v zSnjobf#0=7ZQD>%H5$ulaxn1Y+)6Efga?FqFg;29@|TPhNBrRO>cY}gal!`xz=dO{AO7Yy zSu}-QQ0Us$iBjKDlUSL4pFK=GzCY(N(caerc!YLnL?!k{%9frAmRz|O~nFaI)zFn z($Fgx2DYY>CesBR-ij^w#KfdRPzD{3*Jw024GE`IrQm_Uz(5NJk%)ygu3wceI0^4BO>Aru|mC)C^%(!ttbNz;0SoR+!EI- zZ8anS|KrA6wbjDI86aK&s+CzP30#k4k5w?7yFWK%QG~srN2z3RQAFt+r6fxZDxfe9 z69a$2No7(xfgAv5kwzxahy-c?00h!l6gG`bCUK}-4wu7T<#-#G!{xC9C^RmMNag|n z7htggfWzVeR9*m&!wCsk#fB-=kVqi`SMADRyDM1EpJM4DDo_L|RYIjQeYFGlsY*zx zPE}^0L!znZ9T6glOkolDSPJwyUJj^|9Rj61l~Rs=m0`NT(44gU%-BpRt=HgO)Z|Dgs((>d z;c&~(ZI2?+y*rrx`Op#{GR-(9J;;eknEK1s#E{?JFa3R=`#Ee?iQdm#?&uZnaG_kF zh_4_v`uId`_dWljJ5&9z_Tb#Y%!oS^@Ayvc;l=~r1->)7^ET1UnAH9raLcwwEv8z# z{tejD_=wvced}B=oOdmE&Sd@#TPz*G>_5UG)K#sC8Jb_xTZgNDr?fM2PMls^XWovg zoIHDJZZxhyWkiY%N$b$-Ydd?d|AHdRtfO1MoVrxTkkyw?o&WU|<>LN)p|4f^NyD$Y z$7ZuR*HG+YPaeFtcIwC-?+a7PhBoMU;fQaJeO=yr4nC&QIZU~e!RHqO|~*`DU!J>#X!t<}QZ`DlAdWGHKo(?16WCZ6Xb*Lu&~M$=MmH z(I97!)>NCk@A{ZGJ{@dpZvD2(+I(@_a+4!-9!#&lkq7y=TW#Gn7@u4A%h~}?)VtR+ z=R6bXI`XXDEgRHz)pT61?fByTmqvd3!eoQ*i^-9Op)Y*qH?AhZImTMw#7T4Tk@3>|62WXsVNs83tf`XpbfP2StJdFCrU&U( z-4DA$Th|Afau^jAn`i)?e(mRRJu>L0#rw~m6^?yZ<3^7XGoZLSQxaL)4z1J68IF(i zJ2pFQu-aHx+jdzq9vmJOg=`2Z&qXd%jXmL9pjC=4&6q5&{{v+Isg1+5!21B>SggKd{aRlE%rhS zuB2&f_q{^*N@)1otjkLChRzyHzZfhJ_nMfyJ>gxZtqu)1arrXvK-E;?cJ}P?e7~d3 zLmgRRELv!67Ye#)ysGy~`G>c$t8wwjQ~6iPU30_2tc}GTC`bQMzf`g@GlJnB^qtSm^e%WE%NRE-6l=p8jfL9{` literal 1121 zcmV-n1fKheP)2{ow_cc7E1>)dWJ{#bq*W?b5Q3HdZCjyqccC+9=KOepGzM+-O}^Xb)8_4C-N+VM~Q9{re!7^EtD9Q_qCl#mACHLx{~96gdEtp=HYUj`yk&K zcu-MG`i8AIwV_c%S^**y4ah!G(0|b>`mBD<+p+%yFTV3g^BnD$MZeRzJ*U*NZ?7bC zid|`>EGi}z&bU0ker8vxW?F)2nc|0Z$?@*-f;ZM}*f22_NG&xHbz~saaBbO~*7MUB z^d;Pot}|o=2*Py~WkH*pmdOl@x{pooU9L3B0lYR9sQt=ItfUtRrT-W!=pFPzM5CZa z5H+P7&lYyW^>vzbjLgxLnLUsU7DY3zzZ~1Qd()KQmx%@Dm><&C%{q-oizMt&1fg&Q zIbjND6q>F>|7*CU`h=@TxWnFE`D*hg+uv)>ycg87idQ^;(bH?r4hC(MMO`c@yo^93jHg$xg&nluG9QdFc%BEw7+mJVaT%EFfq5Q? z@;m~5LG1QY-Td>-46g9lpRI1F4!69BZkWj5}7v9+{NtSFzAI<3jH&s+xp zV245|n^%tSj-P;3ckdoZDWL#JrSQ$cuTlF{Jr>v0;&j_dMRkn<0KNB)c5Gd#0DS!Zhb;q8 zI07gV35Qhu(xs%ewFOXsloBUT97A6IB^*0?NDU44tD&KO4|@2Y;N3{2q^1!C0F-Lp zOKVo6y1Lq|sF<(1I?u|=sw!;Rym>+h&f41A=;6bMGwPNdn z$8i(@Ij5vp=(;9^04gghJ=?a$zkYc#M0s65T^Y8lpx<%+vf`X8DWNzw6z4+8+nyS{ nKB|NeigTf?NUpk>bhSSL?|RrV=HByH00000NkvXXu0mjf&X)(_ diff --git a/resources/images/protocol/gibberish/gibberish-occupied.png b/resources/images/protocol/gibberish/gibberish-occupied.png index 5e1b736fb8cd022d74cf8cfd632fce3f2e191f3c..f3de24de5502fe1faa38312041238a0dec0e9059 100644 GIT binary patch literal 2061 zcmbVNc~}!?8jnzHYoT&j5W#H>E{98w$(?}+A;TpG!eInUfshO&g=9i9NI;ZARxB1R zr4)Brs3K=UTSC}Uu!xnTf)+(Z@z||wl!77%R(V7;ohZ2bhfn|5d1mJOzIWc=@4cTX z5{3uctXj7Uhr`)~hCor+>WDq|Z>_}MiGL;$vBen;j76i76f{e$hH*S8k__WR72;Gl z3KmPVGX`K^9L`cEkBLQN1zSN0q9BRQIwY+^g`sgcUq7u%EJ=e=d@`IWS8@q6C%OrE zxs*%T&Ja)pDn2ZehvcZ?=$!BvNlu!CBPIB4#`|hPj6eaSV!T$7uGD~9F5v|)i0#c{ zG6DZW1x@1;UOE*k5aRiW8pbn7G@^t80C*;o1kf2wCg6>yQUEHMg569aKnEF2kjla@ zT?EXUTABhzK|xEluoIUcLs1n-CTC@3k+NtcM4d_oI2?|dgGwc08bnRD5*2HSN{!nx z0|aX%YPkxPBTBrPQJjoqqFe&z>B|rlDuLh?u~M^?C@f`Utyo0{NEEU{VUFvCwg!!Y z|LewUwKXx>DwrGvYmiK}1gl4i+cFr--5(n=D`MV&5o$SB6mdF)NHP_$5)Fm81ndh* zDwl#3IvdL(i%wxtDNHs1a9BJ>04sn_gP4I(AQZ67@j5Ish(@Jyf`WJen+5=Z0GkD| z_&gd93gQItSTyP~HdLuW#YzdhY*&uiUBU+bAr|DTVKIuRV-O^LxdVhU1VuD5M1|)^ zGx44Ru|%#k3%tw)dKoVStK~akX^{y$kGW6qGx?eRbDvMj=S(7b)s{Mg~u_`phRX4Kelgg>IK$Kl@a359qu z+UspGVIlFUYo0$hZT?|s{Y-H<`lngON4f9L3TXP_?~d$cuF#L9?~ol4%2~wTor>yr z44xmZ+0p4$CYsQ>le~#P9~D|N_9j&((f`)#Tys#ATA5MVp*h?|E8ReRuX7;3Cy%W< zX?jpKXv3sONCn3ur5Xy7;pD^+VrgpANPa<*-!rImSlNuAi>!FS;eHfB-Pqw?Y{@d<5jx9 zC@*lT+v~OSi>>jdU0cY{3vkV*W@C;UeK-K|Yqs}tIQk=UWsTpVAxDQoIO}Hav8J;p z(IMhg*`cDjuzQ08(GO?q&ojPwe%isJ9LR9};@H`n@2Z5gGo}2wsi0eZeH7!_P3{d9 z#n-n?W7UB3R8bMjgj4L)|T9#`p3$ZK@E zVJa>gO-1s<+!>C4&EE)25W7~d?%r2bCcC@!bGs3+GDBa})ZAs2@U2q;-oO0L-Q&lP z&)zwa^^@hu_sQZtC6+07PbBVUo!XmgvF%BsTjp>6WWA^3a6*moz<0Kb2Y1(^KG!_& z);78x`E}uGq)4=~9R3V6Bs5$q+R^=f5p;BBeDMd2@;=yewR_JbUb0Z=8`i6IQYFg$ z%e^eOOM^RVYlfWP{2=|OdW~&r0Z+I^ymn=OP%xmmzplQa0iaS#O}!F3Lx+C2y`@F< z<<}f;uG~E)vTxSc`M2N;|JgrQlJg+sv0IbKOzZ*E8*twpAtWJ{aL*zwSdXdb!6~tIMe9S?o|-O&6)Ce0(8y zOmb^vWLu0#G;Z|A3(pu__l2}tA%@^SW4fDPv@1np8zG!Ti{;wb#t4Z%ZQPgR#tKgQ6Z&%dc@p__C z+q1^U=LRRHC%vqZ`(ymZriGLhqagKyP3IVqmFJ!1>AYo4@TQtjN2^?Fo$V!I$S$d7MX-zC-&7eFcN^wil1@Kv z8c4b5)o(mw+kWG~LnqP^gTdjMrDX~2?~B3u*eRp_QzwtPPc=6)sn(@s25D2PMf8D@ zkG7)`*|6sP#Ny+e&el5ju}2+_>n$Q;x6x>m$2!hvZqLoR!OE#w+rw9?O&@%`0yj86 VWeP}ae9QcU4h;;4z6nSw_#Nl!PRRfO literal 1125 zcmV-r1e*JaP);_lwOGI+RUnk z-O=JHrrtLd7F#b1riTa;Nl>RhPF-_zX7<2^aQVr$mVGAf;Yd&Wf$|CreUvNCzAFGLL)Wmd$nCw`%PDm}e?nnQ zgWU$C?h>%st{9RmB_x@tHK|jL77-Hw+SUT;xKZQ?YBpDJF_1SoqbY=n5JU%_DAVz5 z-c_hN6M}Kkxe$`lW`m9mIr8$M?$6(QX-)7Of1S9hJL$pVv#2Sspt#&{xs#CMl0YZ} zWen{0>!!fe1WArXj89%}KJmqoV_mlYf-Gg@o)=D!ugl-zxrw^&e$YsDm5XgQU z4X=NQThm@7#V^tvb2KG}Z;6P_hDLGh>qfHrx z4qewU7nIR^b1TmHs*$04A;}sAKa z3(QAr%R+CIh|b~c_wOUT;sY#zF>WzxY8sIj3FrKO z2YTdK7h4GMS64#hv8}GFyBlby!dw7za|DD8_=RoA<`>`*ZkaS@szyXq`;4aUHNiWt z<7mguht!_VJlmBt(amwmzE^tcwd3scmxqj6?bDzcB^XHT9UZZ6-_2TETki_iZLho0 zcWz4HmXM#NPs&^mnZws7Xxi$}szZ&MgL>oGA}c-oR&&$nJth1%XzZO r>TZ=d7J@v>H_0jwx4+#O0)W2&j}^W5DDcUZ00000NkvXXu0mjf@T?Id diff --git a/resources/images/protocol/gibberish/gibberish-offline.png b/resources/images/protocol/gibberish/gibberish-offline.png index fc892fa6a830719531170f606a954bdec597ef2c..085cad25f8164ffa02b462aed3ac290f1603467b 100644 GIT binary patch literal 1823 zcmbVNX;2eq7!Cp!5iEyz7vplMMUpJJNCs4rO(4>6-=`s2VS!|0vY3E6FhP!13s@NI z0SW@9ZBRi0Er)_sQxRost0EpFil|IcgnEEdy5X?>;rOFFyZe3LyYKV7_w3gJe%_Ym z%ghM`f~CL*3c}Y#_+w)>7k|e)kzDa*DaMPyg3&FQN~C}ZUJ^6`CJLmYL^uc*Nz%7o zhCK)b<0K>`0*erS#TKJdlE|P#QcLAHnn3W_pq7ioDKJJ%fD;j!C-9>AJU~Pwoal z#S@rzDnb}Q&8d5 zl_BYJm>dKv(KLk^ug4aLSumcvPa85Q;@+_R6$oAwQ7VLr)19815j*VtUazOb(3-F?bLU;>>b<49lfaKt78`+&C02 z$BX90=gwjUG9@OGiQ!qh2yS-z_s^wG+!>4a|_sQShXlrZJo;RAG)k|A;Rb1wGt0w42%xunn zhrIM<-68CB1Z0;;o5^-Xj^UWzo^mH$%RxzV=vwxNb>b?OH3d;ky>rw+L?<8XD~S zItvOGFiY-c-CA&@d$kJ;I~NNUH0J5s+l_dYffwMloS&C1I(_Dh);n}@cv#qg$k%6X zbIgf99zIMkd3;OM7b*Cz|7uN9MNR3IC(j?WC$o%nPv|*q_O>@unwpyKcgD7_w6(Q8 znUb7rUlG5!oY8TZ4_J?=J?iV~+J~IcEjfRZKbzFohMH1L=J}`_dSp45-@bjj{Lt0c zR?^otgPIsX$2qWTH`je<@BRDxR#^-Vl`}X~K&3v(1-IM?Ao9lLG%EwpKfX2Uu$GU6g zTjc(>E+Zy6HFZbc{It)%=d-Qf4=q`~yxHQFs;J*)VH6?UxTf8IY3bz*1bMdom(zRq i?(L}yd#`&Lnq@>tu^2lJoai`W_+<%re$WZdX3ak~tI+!Z literal 941 zcmV;e15*5nP)12b6moZWFP*?FVi-=`1=mxsMTGOp**Cg*Hd4GO?JU9cxs$cl>y?yu^T5G(2 z{7iAY;vGucX3aEtjZ(^$Mng!|*w_kwx^QXb^P?{wOz=N3KKktJuKH;4gG$N0i&Clx zrJ4|;2%(yBrU)T=t=Vo|Yiyo6@W=zl{}cP_>vJb-Rd0674_AI$**tx-t8Ree7F4jABPV;b0F9bV=0qWg^=mRrDbpR+SQk%?#(I;0|udB z@*cH&d{{8fW6Lyq`zGr9DWe*|bK7C09rVp8j$IkGclX+BRcHa*VyITCc<}zcL~CU# zkz~TKKiq2jJI6CpMbR+OB#H#bOCz6eE|-z~T)381M>t zSSJ4qyj86=-@JZxDi&(y-1+6RbJG(c01(QpUSstN7JvQ)nT&&dlap`@C3s!|=@h~0 z^&4ocZ=oM0ptoKsrBTS|FyzQtrn~d6zV%5R0O;()k6)w)9);{@+MNy*D9XcSFrI>K zr%)~x;T2rOiNyNG7MhzabXqMyOGqgJ(XB)YCKnbjpP)a?e|h8k#fxLyNG8*^NjNhA zEy1`2p(!Y3$Y!(1yID{IXqiBW2yq-Ej$=eoggEqfB#Qcm)*1kC!&dP~Z>}h!TNpnu9>V_kDCa9kko+!G=0}et-eM(YHT-!Lj5^rF^RFI1U`g zfn{0XoI`1iP7ovLh7d^zm2~0z{s0y(;MM~Ih)^s`NV2l9(q?Cx` z7-1Nq*XyC%?IH*Q1VMmQzV^*Ou)p)#u}^21Ar5n@_N15?rG_??Qb>~IHn7+0!_JQ` z*=~9NzhZ-@@0@b9j2?rG9?~kgQ%RYUQdmMt27_K<++Jdq^WN*PJk|UY;c<>$MYeNf P00000NkvXXu0mjfpM<-* diff --git a/resources/images/protocol/gibberish/gibberish-online.png b/resources/images/protocol/gibberish/gibberish-online.png index fdbb6339500354a68deffba2b3a6434b6440f1c4..98b845c74b71b73e1441c4afc4aa2cf9c785c1a9 100644 GIT binary patch literal 2055 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 O0000v=eV3c+ANuTrXYJiQ0$EiVt>8^u%-@Kyzj z_aMzWCGi&n0#u6tObVSW10e`tu_zFO$znkp02&Cxu91UABjXxmU6LAu^<=fqb)G?p=ww=j z22-GFz{m(o(FDwcgnK$0f=c7>|BhI#n@bd)GO8ZdP$3FPRjG_|z17xXLCC*uyjNQn zlB7YXL5L1b(8}<7#JJ9b@!WmbkWmr$hPPF#z>5Mag{Uk+g{Uz5J$k~i0DE#2O`a3 z<^LyZRNNV=u|59NF7qP12aVfz&5s}6jSr&6XGV(;$HdTgHu%gX`3du{H@)vhn+`V2Ub$ggjA z!c3opDgpzv5`*E+u2 z^RUe=b>*Ah>6As)Bc^>dM~WPqw2omRAvq0+kqv!2bKOLN>Dl#`mX_V2p`on4YLQKj zD3WNna^=dDbByBwpL};>=7#ktF6phx zf@Pb{>eZ`n9B*upUKo$92jp;1afE4AhHbm^_kd@oeP-iYAP~ps)xFT|{x(KU_00;0 z_P$-!mR7za=3ARvnttfaIJv)}uDsMtB3;7Z7JgQ--9j7_{K{6}m@#MqK31-|v2a1P z!C**6!k_4q7Hro~W;Aj-x*YU~<(_2ck#jDj(tOee^wL826%Kjb7hms_+#9?TH-0Al z^~cvcpOf9(n%7gQUbMsu*%Zf|fWpS?Emc36GY=B%?OSK2JXcr@J=u7Me5p)-!O=CC zezYsXC&LG<+f`m(-tK%m#BJN^(elPq0d+epYYm=DR~{NIr2MW*qU;`&WB>3ff7Q#a_NZ`J?&8N1mW_*v!tcv8kv!I#(ULxzOcW z(O=_?^k;*EZ^|nwBBgMc`&jSKJTI!t2;=5V(g^07e>bq1HNY<0dw`Mt33y*w@y%zz zSH~yE;P9)`qXkU{$s;qD`svGgMPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOM< z5Dy9om}ZUu00FW|L_t(I%e9ifj#5z&#y`&e0}&}`V69dkfs!Zi9kjAv*O)aX2NExs znA2#2mqLqeEGR9upfg)g5*tI-ibNwQS&|jPg>dH_?inj_U9+pV@Jl9{Oy>8^Bs0Jj zl2T@+l$on~G8cdXfOamIyKSv4X|09hIPg5rF!OgJIs&k-l%hWjq?FHn-+x%GRz;;! zL9tkb=Xqde5D}s%La*23!C+vu)-RP(2iwW@dc6~dAupFpPLhOay=EffIF31vV;M1&07*qoM6N<$f|z6R A#sB~S diff --git a/resources/images/protocol/googletalk/status16x16-connecting.png b/resources/images/protocol/googletalk/status16x16-connecting.png new file mode 100644 index 0000000000000000000000000000000000000000..88dc3f13af7c9425b6ea2468a8026f45e776b0c9 GIT binary patch literal 1777 zcmbVNX;2eq7>*W7p*SL?j)KTG2#AtnlaNiK5kodH96<~j4Mo8vSx5?-&9NZ?6-UJi zRq;TyhzR0Q9UK&7+Np|Ik3m3GR7&MAhOg+DxlK{ zsjEWeOu0dfYIU+K6B?Hlqf}?5srede*b-o|O+XT0D1iVrEM0FF*o4$~yaICX5HqO2 zI~5{LNS$y>C65KfxCsS9>1>*s34#EZO9wfjTrL;_u$Ul=!6a`k4de(yxdIjhyuYZV zHIpVqpn#?CZILG-RZ9>C0fS++TIp6c9XF*iKt7-E;9#+6qz28LsV5K{O>g#}WPnk# z+N3iOI$RGp7?EV$LI|m(rxPJy2D$tLvEKYXQDn*(HpIXH=}ZQOIpTV!Z6*}xzixa~ z+pNqqpbQ0S#w{i_S&tO|NidnaPaAS5lHLfGn{;GRkaQSVTQF2lM8HBS`Gv00X#`9T zkIW*(VL~h>mj{A;NE8|lg>%?2R{~4m@JWu3VOe}0pU35MMIet2f)bDi!H`(Q7Qs?} zxCmmiCb1EEGlA&U=%ig8X_v%8d^TV7NvuF@LJ5%)$a*9-{(|L?dTn`sA))!+;X9v+y=}VP2OQx z=;4wP%<(476U(=N0ls{LEXkt^Zb z-LLNJDT9^%ksdumD?MjOay%-2y#F+5hX0YNE<0Pa>4U?=btfbX8H_XgW%I7rl*;D4 z$jHdptmjm;zIJ|7*Hi5?eblm}=-7?Mmh!g2(&U@#7ZfIs7;Uy2-2>m@l*8NTEkSWrAXV#`1P=CwC!s^cOuZ}gdd zINy9Ap}09^osZkryBAMHMMd#9*cZ(?eY?N6tVPQ^#9dZWFjfk+b#(llrPa=3t-5^73-(2p&}6+#k<}ipBzSEVdQ&14+KVz8Hq%xVV3$N)??SzjO^o z`_oc(>C)kmH3BPfF;;8vDn(JY lytdoFXWHKE-Z$A_GAUp--qGB*c(dat6d{R$E5p}r{s+e8w4?w4 literal 0 HcmV?d00001 diff --git a/resources/images/protocol/googletalk/status16x16-dnd.png b/resources/images/protocol/googletalk/status16x16-dnd.png index e3b0e750299123a162df88f8e49a1084b633688a..fb9f6027926d8c636c1db5a6533eeab3de29e3d3 100644 GIT binary patch literal 1843 zcmbVNX;2eq7>7Xr&)?;K46-2ElinNL-DpRY~Dkv3gt8&;4g6$8-AKlsA@B7|;pXa@2Er9{P zRJ#Rs6bgkZ_k)7Tbq@K=nmUDiN3LLakjs3+TSbK6(L^F_L?}`%9)-~47#xEHBd|6p z{t_alP$ub6rHW7~{6!iZW58A&h8Z)EXbMHV#%zE!u?RtnLSj(8gx=rSM5m!z3H=MM z0#F!ahz|8jHXFbb)5b13Y0apO z76n5-W46eXgsvk9gNVsYOiW}XvKhEBh6xIVLMsQ04L#c|%^~93R87gaW>hEo4hU0UHFpK>;7)%cN{6Pce#8TS&tm~Bt_);|sjm5MKb&$FSP} zlQkyk4Aa^k|7n+T5!r**?T6+k4fA-RedzJ(cW>GgzYOR~7%Bj+aW2Jg zU{QrOtCw0F=Dw+M7|L2_!*}}gx5GIWpnS`Pnwpv(uWu&#Idr zzf4MTD=jNq5;VdteZH4EB^{0qh90WIRVwq&o8m5xqS7ujlu78W`#zj1GERq_%aU*8?2r6T!Tp=AEvp$)fYES}Qu%1&KKnHc$1masV^E^F7$ z`w3iW^5COW-FGGDcHbZnQh68x{VZl1MfT4cGsR^M$ma@AekF-g~bKL5Ew!*mBs>bE}oXG)sVFZM`_l@D&9soJM# zSlI2*Z9esPBrE`+R6PEvvopKBJ>cX#=i@Kp*V+wLsCK&!Y=-q4XIEd|v%QWO3KC#`;Z@I~V3=-@#p} zZ%X`1&PPvEwx3VE+kWBcMJNs_&zHRMvrSnyB95`&>YlxQx;v(>UceDmL0O({ao>q? zvAt%viI+@|JezuXmD7{1h!#l;m;Nm0QQBNJ#Uh;O1$LEKe~A>icK~$AOP%o#NCMI( literal 748 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOM< z5ECDQGT%4=00L}DL_t(I%Y~CqNRx3G$3O48?VZ9V+F^?h27!TE;bMpjp@LWk4|*xs zArI0)M5JL+?@UM%Um`&_FB4=`)F}{xlG-Uu$U}!hZ3s#c8YunIZO-?7x4pj(p=pXf z=kMqF^L?HN4hU6MovNxz2Wh1L05>pFQc`l+vMi5jnzGGi!{Kn`g%H0C!*~I7X_{v2 zNua9gprR<@Kp-Idd_F2FDsVU)2q7>GgG?sFEyxEEW^l zY*rMDMPY1i3d1mjuIobAbzvBWFilffmL)beHpKAou!uw=V*oZ)RXbfS*X{Ey*HE8- zB5*TyPtyBf9EzKqK5`0|!^Ob4ehQ+< z+}AmPZ&J9uN$dyjjKo@y?z^J^xLhurPAAc5l=b!XF8h|C<|KU2)N?0P_78mXmd51? z07^?sal75*ayjDhIO%kHOw+Ux`$v7hRiTEvdZ4UHE_j1~aM<#HsGNm8j)F`v(G zAJX;+)1KhI?Ki9@Nvs7a^ZHjz(;NqGXqsm3I^~0WNUQ}JiocQ$eWv}A90u?C#&CPn eP74l&0sa78aUgrxr*@hE0000q diff --git a/resources/images/protocol/googletalk/status16x16-ffc.png b/resources/images/protocol/googletalk/status16x16-ffc.png index 0c734e7797efd752ca71385e7e12ef0b5365c0cc..8ac108a6b3907fa452678bcc106e9c7b9431bdc5 100644 GIT binary patch literal 1951 zcmbVNX;2eq7>-I26eudFBwE*?h{YV6kj>G64M}KH4aEQwZ52YY32TlG*#!cK*s5ia zq9`iWa#)W+Yb|87%28lEgHmV}Ee`5v!IqW+Rs|Gjq#Fg>A5MRCXLrBvd-r{w_nys* zj(X2~8hILtMDmu)BuZkPO*}I_+=+L>Vmggj0&uAck3n^Ky4nhpL|QZn2IMBS9#+C? zZAQu!SV$sGNk(E-xJt27pg~P^wM&O?Gg$~Ui6mTZv#2!&7zdJIJz@@{KCEk`0*E$@ z8qZNM6&5j^jL0&ra7<=YtR~Z-;cKbO!vUd9KoFQC>&s8!DZ`Fy^MgTLfH352F&Ez6`-+Q7B#!o3Zgk5h-KX)D{LvXEIDCS6nZ&FX zvDgd?%uvD@nrhV$_0R=QfQj7ww;`7z;f>$}D?$`SZIqyzR1<8*<&rQe@rABMv;t-* zkH{i7l*wf=Asz_wxgt&kHzJfRfus_tBw~W&by$!shWK0_M+EZNASeZSTnSe!Vv8h^ z{0I@3&6>c<%^0pWYv2jH2w`^|8~UGEf!GSGanu@%qQ;31h)zav6iY@efH(#Mf)#2F zVs;6Zx(f6%UI}bP(qL_*6*U1bGAuw|;{lTkv6w857-YYUoX6y`c_2^Bs|nV$BBc;oZ~xAmul(RyJbtSlaaiVj%V?SlWUO;eZT*XJnZYs{xyXh z7Z;a0JO5H^L-&(mBXyUmv;u^nw1T0rcYn zA!@%cl*oLhiH|QXZ_VWL;q{&)H=3H7);yN&f!7o*LRKKNe(XLlqv-O`_Cudj$mEei z{t$3W)_%ONzkgFhW8;|Ct_qFY8I|O0X{8m-?DDR*w(S(t(!Rqork>evI7ws7vt1|_ z0=|Fvh~fvUc9(sze}BNBO*q;U?z3mo&kb9S9sByPSp%H|$ep#N=fiitS$4qbb}}+@ zyC%i?_BXULN8h%l?(&8*VXbF)$;u$d(odm^HqX&N^-T>~e%F%y=*1_z>Ic4>f3CeF z#qt#K3!Q;1o-Azl@Xy@RKQ(C-SjL>tovdRN$Egr#6r&q3S5nR&nYLLu9&XiJI* zm-5KD%Uw8nOTFlbbnB@$*_CwQtCVb=L8rghw{OGPhcT^py}l#+R9@>h_jqUX!iyS_Ms6UwPJk z_;Am)Q|Vh1F>iIQ-I)JCchEmIw}-zPbJJB- zOm%nnnO|}4$wu#+r~5f|mmWN1X!LD|ecjlP0|JIiKD*jsdRj);AJSg^Wl_lXt>roO z_V0_=FQD98^<_C~FuddM;noVX_EUUv18E+U-?E<#+&3*SK?dxN>b!bm+4<&>k&*rm zR>QO3C~i4xueTc)6jWB{)=~IBY&uiKSy=wV*&K_-!dp1?=Je?fum1UT)n~VN)wXo~ zk>6HmCA+b6cl6gEGtMlGX`kUKT@`#RtNLU|kTdbkjOXh$8coRJrx9mTlj7?g1Mf=< z0-_A;kM{jES_w98{=9nYgIW)H?4aQJlB$AKfzot*i!*X?coMqxUMKLu(qZA<0{`7q zW%mj!c=kc@;FGa$ugxm)@9|u%Ji4hR^8$RG|4FO4e^k7A5{X^GB%dm)P`Q4Ya%q(0 Jn~20u{sviI4wwJ{ literal 947 zcmV;k15EshP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOM< z5EvlWpexP*00T2gL_t(I%YBnyXj^q0#n1hJ^RI2BB&*bB(RH$h{>ey7>xO%%xCe!~ z!HSdlU|$3ogV~|pmVw|ya1K`MtH=~GoO`KS2I9l8EeKt~#-#t!wCQGxHp!Z{Nt*k+ z$^CtOQ>oDNe9q^*oC6#p!!R_%FoeTA!hwJXz!$o%pXHqUEXxulNrIv%RU+DEjC~K_ zYBU;U{{t9?aZ6RzYkhrvVmKUz*XxC%C?Fy*#!xI4F*!L&i9~{1mi2iw8Xfwld1PcH zHa0d!rBaD(+a^}25Mzu?(wZ^ge`!5LYd$6{d!L5a_aQ*f75s$}D$V7C+ z=kwuQR|zYB?cwXe2)4id0mWnj>g7Mt?Ysxet%BJS2n5avK6(r0egOaiBIjHXMG>!t z{HSv%m`>$ToA?>@W)>~=^VnBhFf|RfO96K(fG(l4?k@7n-+&-Mlx4Y?&1RvhDp<|N z#BUpzc`b-z-UMo@jQgpJNESLkP8C0MJjxSzmyl*x<5={GN5&%q1O?}tf+dCJJ$1ebo z*48q3lB;1gSC8%!8OT}{B#UUQ%R$FJ#vcZuiZ!;&TN4MTd?^qJ+!fh6+THi?aIpn` zGY{hbdPq~K+UT^qgIks4&cGeW_3lRG-7y&J3^W8s~E>wDHpdD#=w| zap={{r;?>D>vZxlJAOkx00^ej=}NU)oy|RSYAMpBoj&*Sqh}v9bm&dCBs6+WyFZjN zC)dv}ZIq4=e|+to-9xW>`}WOFzhiT#!SS?76|MS8&9#*`{p(A+Cr3X0XkZTj{sx=8 Ve}WPT%sBu6002ovPDHLkV1g0XxA6b~ diff --git a/resources/images/protocol/googletalk/status16x16-offline.png b/resources/images/protocol/googletalk/status16x16-offline.png index 6071549a1e23148a7e035d27563e9aeeb1e73df5..8f5325e92b83ecabb50f12ece6437ff7b6da49bf 100644 GIT binary patch literal 1636 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 literal 815 zcmV+~1JL}5P)MyG-E4Lh{3_U7;W{+{>n zJ}=xQp6BH}&ok~eV;m_Q2j0r(^G{}3))&XIGEEcPwzY^fqA2M8^T~Oh8F-rhNBX(?{nbZDMn;;-ah!#zsVUz4^asAac9WTR zHZULRN1ZHjW4=PFHCYmJ+;rHF_W9!HfOA)7n4Fx%ahwa5h}_%P*T>nR1Ah8#pG(h= z(7yaJ;g=g^-7XT|0t329N|GfkeYM2O<5fzf5*6x%^eMEu z2hu|Zix1=4E=!MHB$1S@U$y{t4bSt=6^q5UXJ==*@kfVtyUmGX7Lula-Ptt%A&%?1 z)oL`G z&6@A~FW)KBS=+WRkB^T#6B83O8Vw4C0!k^m-7c+Giy#Qt-ri2N*0)7Es`6yHTz+qQ zdYWdl$?EDVySuwsmZgD49LFC3FZjM6|J||f1em5d-_z5>+S(fRdYvRmE&}7al~xDkF+WO})@cEyZpGY=1cZ=+5qb$3D;V9^d=Umc+$I zI6F>sq|s>3QIW8e8r`U8oWn=dd;V00A2qm>VM$~HkwNC5I-Dk!6X`e*rA8IF6i4N` zS!eM;8qH3rN=zb?kQgCGs2QjY!!W9~6q`m13^r;}Y#~kp>9|6r5rK~znn6G%7lCsF z5Eh~h#g(c^lMYWX#U^5=g_uAN1_uFwMj<7j#z_<~sxviup-}|B(G^m2+cpyf-ayEO zB5=s5BqR<9C3H9tz~J~{EC>R)Tn6MHz~w@|0GkD|nJnt&`a%A}0IrbD1BNesI>_4R#>ASP85|grV-ULAqI=7R@>rwgVvK${9iZTiPk6P zYH_9%*Av+~j5?1D&k-_}yZ0Ni0V!{Uvvn%!P|!@6z_Qi2hKzzmAoYbISILDee?FB( zoarLk>H zw;j+>yfCg)8E|>Hj!*+{GAvZR!vhwN%Vx0yLLtsjRCCA#JlKHI1*92WHiq9&EcB`-CjoJ}^ridpqZYvr8G(%D}*6wD}gm6#yv*~|$ z*Ta!@mDX9GU?I+#Q>F*l2PmTpebwvD!Rrb(_dQ(?%<5to%Dk)dJN26%4>U%UdX0Jg z&F)~*$KiyVbm|gN@|n0sHgyan`Rd8KqGbhi$TcN0*~8`Zpv7Xb8}F5I=vZX+Rrmg& zHIcpyU*G;)UUqhNAD~5em(=Y{?7UT=MGG zE5oxRirhJW(y#1&^yty!>D!Gn)|Zu?y;oeS39;DUnpmQ~`?UT>TiXkd(RJlXNH3ks zlJg54mEHyQ6+GH03JTL+Nt>WCQ z{&b!0d-L(*18MQEAI$jr<#X3esOt8VeE%Sq=FZj2ZZ)8_Ng+piemL3Fhjw%q<(Xdb z6sf5Rmcb;iamh|gCF7PiJ)Dp{da+owf8gdduUidybHVLx8_f1w`u=Xcu(46*INr7A z2^rUTk9p|eyp)ubKba2St}9P})Sq?3YB*M~s3Huop1f2z|Cbfl?ep-dPNw|7p0u|1 z#8_XN8fRCQo;|byZExDtu)OLHYTdh=_9E@YDlzhN_ZlKAd%JU^XKd?^w2HPCx_8wL z5ueZBds*pakhkmaHcej1{j5Xe<%P*<@(ae|0n2N1u>a6D`5gJX?mCKj! z%oJ~z?s0Ue+_0hSYES26#9%&d@(77>!fI;A76uJ^Y_ZmMmG=6Sm3TGJ<5tc6+`L+J z>cJDFu&}wNx>_+mJNw1pz`(#IIR1S1b15AuK7U`r>Aw>@35+gKa>6TXuGA+Ai%2*` zxM|6PrTwc87BsjDt~XXz#6?G++jjBd#pUa|p6xrmwojD>?OKHOM+GiL4vU_bxhq}{ zI_OF72lg#h7es}t!r~9_2|hTpe(~&HyIsY_#rd^KD>lwdoHu7q*~W^O$QSJ>{Zq4N zx#PALa#Ts~2bY!f1xF@ASKyB85416klYYlQOW!U}`ix0d_X`U1Pie}d?U`xjGytfG zsBTL)7~HxXdvn`gH#1CN=Q(|g=T7Uw+s=iq2V8rDlN*kH=tOIYkp;%Ju77U(2}Xs* K!UrU2MgIT-yZZS6 literal 890 zcmV-=1BLvFP)Px#24YJ`L;!&Rf&hgIrkWf8000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipb~ z6e|cVo5ffF00R0+L_t(I%YBnyNLyzZ#-DROPm(riR%IN!+M*Xr2)MafLXeTm;uwe* zvQ)g07E2xCl763ZyN&I0X4sRflGT3bfc)sQ())ST~} zobTO5Te02N-}Uo8?*s4q0PjK5G`FT{()%>hI|F9`-12xlUkV{q%d%v~7!*aZiRdrR z`67TmUDx?r2CAz18X6j&D2noNe}BK!*w~25%1S7T0wMzE9K~W0nM{V3mzRZQSxH^j z2ah*5H#cuBEiF+xou*VOMZ8oZ&N-Q;Nv3HM=bS9dA|V7F9v)I6k)Yw>;aLD+u~_Vf za5(%`dwV-Vp%CugUBJ1L1uLF{yRjY>(oo3I@lL?eN!R>Y*Y#VBF_yD!yEPVzdDH1M<#IVG8jZrXZA?u~VRUp9RaI4( zn3%xk<|Z;2GYPz?+zAiZDG&D3s@pzmT78Yn=V1VAhIj6R^wqht0 z`s`nYP*wG8G#Y)pva&)%MA>YX=H}+evMf4@VHgyNM4tU;t5j7z)zZ>pjf{+ld_GU_ zQYw{bdV2crNFx~%h2k6<0?Wy9Hu=n)Y)`%uz3DV^m`g}wi6}go$U^ieMXbh^C=jYaQcyXH zsMlp&M*S(2k5Vy3ED$++ zfU7w&rc5V6Q?Zb2JsOoAu25yCsRU{;Pz3m!gd~9mB@n=*N!J>LrU38_uaKNu#S9R5 zqe7$wfN!0Ol|=#)T#o`AI-90qLJ+{^(jh+%mkap`=@IRPef_hCa;MbaB#gdQUg1xbf-l~IFgiBLEIBzNd)Of6*k z@yRUm{Fpozlgo!70Z+^c;syD!VXhRG!a)-p@58bLd;y;;5Q`x`8-k<|p9k|KVzw9# z76gfTY}N!eRBIp*tqPs6i;;H6v4Rg`g%UlA5V&4}5SfY-xFHqS0g@;#utbKa zFs)VKV?Cg^@xrJc%S6?|dRzm%$*>T6j|WU1m&IgpBoO;;6B9$(6ad3*>Q z$EyEN))=HS3~PD(r(7mPWDQ!U?~0#XylWp+OZJSOY!2jVT?g57s!&+0Fm;?z#D^3i zuA=U^&XU(X5wq6R?GKE1ZMjebcs(iC?mIQgzA!&)M$Df5$l-jgdkN+)227stUsKiY ztq148>OAhG`1Dsvf8T~_#!as_92|P8DNep6by(Ok+V!mA`uZ+IOBTQELC>b`BUyzD znw!eQBwn7%>2hS*=8;_^JBrUAw!CzMW-g6H`-Y!yIMQko&G#0GL~E!;(wmmx03pzP_5@)5pwd-KJ^oPM8J2M6)eA`cp!ZmF-S(N8*U0V+z5x@BM+HZ;Wl z7?T+Cs3zZW_CVa{?Way9hOAf-e6BxJk{Ld2iL2AO-=ew@40Ak2U3^}|8Lp|Vs$$(s zwA9wto^EKkT6F2N1ZMwZ)5sZR)lxWQf%tCjsFGK- zr>mpm`RKKb>V0L?hTPotRJK-+wRYv)sG~Am!25&QD>uEyz)S|6oAbap3+AYY(2X>=*8wQal&Ynm0asJ*xA{Q zIyyQoK9hj^1u(XI+1QxPW@P!3Yxa&E_qGk@cLv_wb08rjFF!Imx~-|Vw>QSWn%%F1 zNXCn{rP1?l_t;B! zZ(Oe{DQK!bZka~^rZWE9JAos!jvt_UfT6`n=JrDx{lloQ!|ZYvIqyxItIW=x$JBhW z_u%V0;@$UBzKf_hx@Dcr+{5`p@Kuh}=*#Iz6i!%-yH8|vr1eJ@Dh-FLf|Bz70n0qf ABme*a literal 618 zcmV-w0+s!VP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOM< z5E>FKK^V*c00HVrL_t(I%e7KHY*JAa{@#1M2NfAe6R1;l@4_ZS7ncr>Zgz5TveuXy zlM9ItOyn(^;OpSh#evNjo0Or6VSuF}T?i=?i9di?lF9&tckhLJToippi5>isliYLe zIp6ms=Ku@97z;ASv_(DIxq%3P-B2jBp_GaVA#}qqV49{RqHmn@eE{2z+qOUGM6?o%#b(S)%WJ4LI;b@|v-i^S+ANN1p8x>ycpLy$b)}T1 z>$=b0_4SQ8%au~mm&>UH5kU_G0)t+!=leXW9L`9joB#mUZ`}0toP0b1fX_PT{BfaB zm{UBe94>TF+Al#$`9k}##y850-^$tdP-}F2%74P!cL&hK*S%aWclXyJWn8+*8lB9x z1^~LRz`M6sS1dexvV}+YH*xh!5V|~tMQ75Yvs3WyEAVdc=P&>SerGidV<#LAqgX7W zTCHL-nY;#YC!5Xw)!li5Yt3eJETudqqNk4IyvP5>cT>L|8ELkwSpWb407*qoM6N<$ Eg2#stG5`Po diff --git a/resources/images/protocol/icq/cr16-action-icq_connecting-1.png b/resources/images/protocol/icq/cr16-action-icq_connecting-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b89179ca51acb5675ac3d6ea9cdeba323de5dc69 GIT binary patch literal 1885 zcmbVNX;9N>7_KX#I0B-s76&mFQLHv?dZdR`wvZwWwqjcqMTOD^iPEN|ffhX0Yf(X6 z1#biq6hTG7#RCzqRasqNJ(1NB>j_>^ZxDq|RowmI_+v9kzVCbUKF@nkR)#CbyY?R3 zn?|F#hK3+2Y8^;D{dzf5??Kfr3z>gJ*(5QEOfj8aBR#YqN$>7|UR0tH85 z3PR(skQ4${rzkbLl({;wo)It(@V81R0s~5F0jnY2XqH%|j8D80YVQ!U8NeqMa;}u| z*{KLcI1q#rC?EiNEFA}e02l@#z5s@yF#wkXaoHT|hFK6_B7h}aA@Jp5P}T^2tVD$b zf3ZcKq>MO{G)dTOi^T$3cpy&9W%>(d3Ma`$~h4n@iv$wUI9ilU82a9yGSHIku-ltFy~^_X75;fts&3i%u% zmjjC+NGy~I0)>Hm9sg@wg@9{gRbB#1z@Bu;2>Jie;~!sBofH^<>7AV>`ZehRG)GdcvL z90mFuFM<+S5~>d-a0Bou!xHQp9&m&(m%|kVLA=kAi#Q^l2oePeMRFb@6hVwHSpEOW z8k=&4?P!nxv`d$W>Osf$Yx7fwuj7LnshJ_D;i$g+j7`m4dMF~(SZ|hTX2y9<9?;QT z-TW*zY2+58rQ&v6LVxIalFu-3^O9Q;nR!Kdesh}Km(&HMEwIZ+H)XY|PH!rB6nc%} z$5_D{;JR^-Ot))<0GsgM=XvncN4RBn#>ec$#*}7$*^cu~VeVed>Ldg6WP(|PBaVD#m&3E7L9dA2swe200W0OXarn-x3GE&nc zj(J#pPbmA{d*ahjzWZd$UH2hRZ7;#tH~J^7ZejP>bi<5W#j&NHEn&B>Oxrg;pwfQ8 zdA{_=)uPtw%g+y#oE1MPU-{yI9?1}MJPWrlQyUIls;}_~8k?7Cxexl5Hoa?;z9zP| ziV`|AD=YIms}tz${f9nXKDdP!eZy}HmO6i+Ihgdh{JSaPJYgtUg?Gu&}Rfc&_u}zh9loe`)kT zA9c2_R_XLZx1%$_#-fPCnd8ffTney;S67SFbNszKr(2K1C1GKe^II3*@q9dX!nT@I z4}bG;t+3negZ(snbmNB18`L0cJZ!i@o0>PhI2E6mgY1Zi?>}8pQ@r}b!NxoJ|Xhwj;6(tJ?jp2UqE=b zyeU4ne0vX?+t3PY$lU8Ud@?Tp zSv8Vj>51j>bZ0Q?7*acVd&SMFfvLUoAAYEgZeR{+9G^SvqK*&EAMnU4@q$PGdE>gB zQ>1Q3@>VQ&t0!VtX;1Ul{rT|h$hMGK%mT%J*UL`r>sR&ZC!8vlFnR0O$V?v=9jQ|O zI@1O&tV*>x`+B*J#XOt`aCg>S*QTjToKm6>l|J4T&^G4D+MitV3-5N9L;_RX-@P%o w{Sr7&9wuH&+dK^(y|5e}ZLG`fj9k=>#k literal 0 HcmV?d00001 diff --git a/resources/images/protocol/icq/googletalk3_157.png b/resources/images/protocol/icq/googletalk3_157.png new file mode 100644 index 0000000000000000000000000000000000000000..de4e733e095591ee7edeb5380ba20f860dae5070 GIT binary patch literal 1987 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 P+WwkiQ54z`7L)TgYa$Td literal 438 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 literal 870 zcmV-s1DX7ZP)He%Vp$%1wkG>pTvkp z-*y{92f)~cXoIFtFE4V?SSwY1*>v%oesX8tX6UE^C~!>(G`78>gJ-b#*)08gIzT97 z1jsXDq$*?@_e=W%cb=7tRZPod%ajFDfYiX($z5nryuLs*9;2n(qu9X32feVH{t4fD zrhA7$@8cGgp96BI>v$z7eedz>7d22i+n((r+GkRjTjTg$b;b!;FlIxDZ|{{dPp$T( z!(qX|{t$9p;^qUC6r?8Y%@;~gtCX3^1ey5|ml2%P*~MV4JK=9V=L{tuZi$8r6M=yl zF$uMXHbD)l8|z&9Xx({rn3>876+U53XAeuuP-sgGm zXG$a+>)^UgrzP>~R z)JhI2(G*7M;Ub$o#VPAS+ZQxxPX*h*qdG!SKhFaj-%$^na3qccJl4)HlJgzX(- z3K4j&g649FFPusfO8`D%fPqLdour_GAi!Xd!H7r(0}KafRFFoYVmE^XMnI7ah{gmK zE+S^lpj1IpfoQ=NcH$6oP*e|5C}y*nY^IYDLpB9uv)K*~8jXZ$kc{~{RBj>Zj6sVG z0@$c9sP(8C(E$!dc@|&7d!jk0__Op(Gy#AHxl^-u*Zg0bBFu_1>d<_+|YL5&qft`Q&#lNQ#Y2?7og`$AT# zl@K+8g=LW$L1ogY3>FBoncPSolNUi3FoXi3fVar;DlCgmXEB745nPZ(2SFjoVhWgi zE}bh7v3Xo3owkTg&>2y=P6034RbzG+u=GE~LVN=(M-hVzK{SgUAjv^c#F&HV0e%Vt z2ocK_YMnz6>L}2Qcm=RQy%ko942TwZo?%G+3J<7E28~LK?C|7n*+5!Qo_?aSuJ4ll9oznEOIexynL*Pbf3io^v?I=|IO?G9*nzYxDtoup`L#^t^|NOJ z->Um}^U%acKdOq}Jtc&Wihxzt{_%AcUE_I6W6ndsP-1iIDbk9?)aoS3scS!^&gMq=-TLBhym0TYpY1W;6I5M!RD8qkl2R`} z|KvN}sBqptDHG3c++dX_-#PyJiB&nWdXs2P>80Y6zmE*!5O{WbKz46UMy9@yt?cXT8)L6%OJA{V zWaOuTfs?xjHNzjZw6ySP)0J1Y^mP0EA^cmLyU-vXCV@%CdT>*V9w+A~t$zgDtTGwnU~ zQh?xIcrSl0`mGJ8YUQam57DO1zLK$cUgB(ZIiCI5r;Lxw?zYB;*@X{p9F5wNi*kcp z@t0-@UORn!eBLOxbtDJc(~`=%%Ez6qncTb&d>f)|F8}hfYrg65anN%eB(hGgy;;MG z$=mWOt^N5Et;^r}t{oqd;o& x_Zmjvq2LqYOM!niW!U?MPhZH`H;*iF!Ns3w1-++wD;)pS1mQ-(Y2Kd;{{!IY5_|vv literal 1009 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ#1_o94e+&ZrToMdSK-U5RKmb7u_{VVb>eY7)zkdRm{}>p6&S&`a z0%E||cR;b<3=Hy?K*NCaPsU#i90H6WJ^Uc800G3r(9fU`q~pGQWMDYD3h1V<5RLp| z3=A)BF)-Xd#K0h-3(*Y1pB^(Xyt)fi^o!vk$N+! z85m5Rm>FjMkYzA(_@C0*ZwlRy$rPA4N%t~U?5IlILOe)zyJ_HOv*x1 zV9g*~rF9q>)EpQXO!f#f*c-iNko0@NV5;+;L2RiY!}s?L4D1pN47{2Q49px13Jh5c zVIUU(1Q5%`dv||)J;cDlFUi305$NyNKxf;3XJBCA2D z4u<=j?-|(Dfl(*R!0=%^PzN(G0zQCa4xE?(0*DD{l7x=BEIgDyKL^G;Ft9ib|1rGQ z{>Je6%|D32K*j8KKz+d2`u~&RA_F7CDv$vH0mKAMwjb}F{Kmlam51RY(9HX*feJ+# z82$pI`u8tjScm}A!gUB6301#jR4gxJcubo^O00000NkvXXu0mjf;-0GV diff --git a/resources/images/protocol/icq/icq16x16-na.png b/resources/images/protocol/icq/icq16x16-na.png index 2e0b0d347070bd604886752e63e4510e5552b46c..524714108e41deab6037fd52ee9b86b7e3e9f19f 100644 GIT binary patch literal 1946 zcmbVNYg7|w8cwTFh;kKCDJ`=DMN`dXLNX*H5tB?((h~FpP^uIH3&<+im701)ccS3-ho?U}XJ)?dd*^+g z_kL!>;*>W6*b!_Nixr?rLUqg<&OD)hzRWxOH6E8)X3?q)I+e_!i!mF{k{d}q4rt6+ zF0R8dV@bhfJb}fUlt-jx&>7lf#6X&Pm{*5qH(MDri@!=Il8 z0m3K)mx{FltyPKV5lN*sJhe0>%}|9=FAuWMCdmTM<6LxVV^C9LFPVxqL_}m3ldZLN24hrAjO`X6IU{=m`cC zrwlg2N)x07@G@e0vXGX6jHgdSFk7|SXT%n2JW))__;$?7hj;?M+3bz$i8e*+@c+B< zTx}|?#ESEEI7JrP3`{+8q9?#i?*7=2SCR1sS!5%aqF^SJG!&X~3#~zAAoGQ1B#eka zBw?}`FA~HH1+WByr15gGB3>biLtz!FLKPDn&%>fBwL&6}m&=7B6$GguxdMVvxf+7i z5;ck{B@iW= z_-C@lXPn`C+v9ibG9hAm(7S!s{LJCm_}~_1W^BxGs0`B_%*?fEPW^lRM~;EMdRhxFI^E-umhFW8A-W$7j_Pt?(jQWkNaS!;f{7KSV4p!(Zs%K$IS1C#PLgRM1PFj?cb?(;-3p#%r z8?h${K5WlewoDNd>dcUAG{I$i+k$$|0Dt+(p5?zMu$}wk+^_QA-;!QEXIk&fzkm8d z4*B9I>n45Io_*d>Q)5MH1raq5mNX%efu6&MwFQ%;S8~59_-|UT>q*`{xDH2TEPvb*6!*>cZGQ5AB1Y!t18ft-XhDX|t|0 zj|CaG&q)|nS=n6+n%T9BzUe(!Kl7upxHUIUBL5-sE9(iQsKv4KUU}L5TfrBOzYJH+ zTtE44&CrZ5XMdsO#N?`E6+gz@6u9a#Lrfdbo7m@89N%AG?<;e=k+)TYlhEKnyxWmk>`;)S*k)po51F*&!sm z1syUh=uniqNJ(g*4hMh4FWZ*vTGn4CqEti$y9JCfeK6f@XPm8($-xUY({)0-HK+llg-O z3HrUh8&@v0lXoxj>V?k1C>&`6%Y=mlEKh=`2HeU^Va>=lN|IQgX_Y?0OcUSIe2gKNLg$FpgD{Bufg2s!ns`IH{2bL#G}&>amze>nX?2e3EE zFu=IhQs3y^#ts*Bbwm**fyZs5ToSj-W@zLi$_5j=TIZ#i>s-{5%S$`EGq>R7#2n|^ zk0XR)OWG(CE}c1naDo(7yss0mh-#QT|L0R~cs7%ySa7hp0VP9Ya4dmchKf42&ph}hNBRXQ|3-M$V`3d(OlS>(`&paBL3FvKu9$1Z%5 wHC5n%oTpYU0D>fsc}k3ROtL6mGt4@`FD7mSUDKZexc~qF07*qoM6N<$g35h3-v9sr diff --git a/resources/images/protocol/icq/icq16x16-occupied.png b/resources/images/protocol/icq/icq16x16-occupied.png index 4b08b579be5f26e544aef98475e54e62d263ece3..a6f3ea27bef816a62d38d430b68b4d1b1746226f 100644 GIT binary patch literal 1916 zcmbVNeOME99G@7b<3*A;MTKLaBD$B`vE4SEx;JFzfab{g0`1rinCy0QJKP`yAr-Jf zlN1$v7mfJ_LPDabz@w&S32A^>6opuVCOl3Gt($`NhfjZW&)xlgzwdoNpYQu~1+mc! zJ*WXx3Wee!kCH0M)sK88j2%P1-qBaZb>&1h>dQvgp4pqQH$2B zHxYW=2sjy$L_CcU(nwEVhJcwAidV!&%W$H|lre3Hi3u`TObm0z^+MZ1DA9l1c&)ZY zm2N_rO4Nd2!WebIBpo}fY=nAz%41b36Lz|0$~b7t2a6Y zGo1x`8Lt#I>(`*VNHdNBFET99zs3U=%w@CK90>@$jGV{fK|GKrfq61W3iCkPFjn_} zvc@ExVLIF6U+pp?B74xeebxNr;nnz{MsjA%m_p^%IE>^>y^}|{4029lYjPvwW6-Kg9dUEgE&o6 z+t$77HMt_7>|)A?8=4<4Z4GZLyVKi;IkM}lJHFsx^_0j_1UX>FNbD&>+Sm;{@xu&w*u4m9h3JAofsQ4T1L6n*_%CyxvWupD&DW{ ztBEbp;yW-5JBDg5^_zg9qKwx5<C44>(7ro*z@o=3AY48JNHIsdKFU*6B@TaE2vb)ZFny)F7d77?iE2>x?LnS>pTu) ztx=A|wD_r|(KD_mRjuB3(r#~95$~aBNf>-~)pw>3b$8dKuU8x6XhBoc8?)kS^Xq>b zx1(2Zw*R{N2hQYopTr&M4PR53^}!iV>hw`7P8)Kd5lUta5z!=UZh+pBo?EC!{ntu3Lr7aGm1H>aP6^{GNsyXzuFp8 zb8S;YaSiX0y0508uDCvbcmD&wmuIzsk9lBsRxVS6?!$gsv?=Dqd0w{seCBE5;q`|Xeo`sAW YL-8-zuJL3jQ=I=pxhz_GLafRC8=IZ&7ytkO literal 912 zcmV;B18@9^P)26mg=`frlxYp`FmN#??((RyD0OOPflQek@J%v3$Ij_dLYGey9KC$DjY< zZ{vT`Z=hOzFQ)&^SJe0~Q!l;q3Rb(aqaO>_w(>cuT;yG9JcRHd{G>3Z?CMevzx@G? zuCDhLAN?oCy}bOoMrd!lhDek%D7;7Dfnx{YJj#uN^>jCt0vHD92IMo~>xKO%pm)SXRoof^ zBQ4ovA-j4Xhh#@~IdQoqin*3t$%Cnbe;9Nf>b3^5Y6BBR;2izHc%urUC;%3^-b8sE za{qwxHJY}+CF(j9S71F=fd&>tnxN=jjEJ7ysJ)X>(`uUH+(>prD>izXJ zAFd?MB{s~$y*a3D0tQQb!nF9*xc{gg{*zOeJH~n=$5d~dNdLj896UTG?+S)V%+3(` zTOPFkQSf+N7#kr9%_6GRN4q_7H&v@#LzWA&Cb<;E4wZ#Fb1Ynmvysb^YIyl*;%9m4 zwd2Dlm5$-tp{r-u38ffM3K(2kyax71{W4M;byH&U%Sk%ByLn;s7}&##5}9i_=4X>qAce(%DYS3mffA! z2P4lNMG(Mgw-MPFU^L=qG#X~0$H&c?wD*>~c%3pi?(mn$bqszbaWBc`t)-;u^e98U zPjn$z2F+?2w=5!}BbW^)Vz-TXsW=6E#~fw*!xxL^IPJRd@y_k^+$ozwqOR-I8wPc~ mfo|x`+})g|oAZ3ty5@gw^h=os47}X{0000#%eH diff --git a/resources/images/protocol/icq/icq16x16-offline.png b/resources/images/protocol/icq/icq16x16-offline.png index a9d110316b011394f924c39e5f8f728a40c852e2..1a6fdeffd1059d0ec7eeca203ed8840c6cab9e16 100644 GIT binary patch literal 1793 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 Ly2@9lEd&1nnz=8P diff --git a/resources/images/protocol/icq/icq16x16-online.png b/resources/images/protocol/icq/icq16x16-online.png index 900ee440a83f167da676680d0e652445a7673c53..ea66631cee5d59fdf5ce1579c85010c193367f08 100644 GIT binary patch literal 1774 zcmbVNX;2eq7>);mD9WLDp%a2IP)M>Hl7(alNUjngzyuTq{!EFsyLED&x5p)gpd z;>jT@q9Q1Cv_g?lv?C%#K>>^C$S9yi1V!6QIi_~QVf(}JM|XDj`@VPI=Xvkhyx_pE zEzH-NlSm{Bv7bOnthU5sZMKMb?{uV5iDeBg497z-C7vkLAtYY~CP&C(wJaKuA~HqN zt`@|LL|PDohKA$ek^l~jscAB!4$Yv}5@-_1%g3OV!72nN%aLeQ!==1!Xrz!)1(y=W zk^mAdABjQzl66Q(a$qQ&tb*AJijOzh%fKNB)Cevk8`NDKR*%<zxpNKX3*+da3qZ?#eI!FWPYPB)0X>C0&MgDc;v)cO5 zBrQUhB6=)d2NU&BI?REI+O<42EO+7)(p%hd^X!i3~WdL7BxW z{!iBEgfnzwd;F(e=0rpf8n>UCpE!IPA4EgUjE)!%>`$dTF>`iefp4hc@sEchVnV}K z@<>P`m5|j+J}km#~&xUrQ21# z&8Kx!mxFKYs(cifn~^)3H7vQFGT7*NHk`laobwC+U&dqm*)?wr9T(PJt&QDMlYZD{ zE7-r|S@!S<9Q<3{-F2#KohQd4dn&2auX-%ox=%P-JoSFjnQeO9rmF)@jr~K~!hYv` z$0Y8!Y4yP19;_~<%gKkf{yD$u$&uQivJSv9gZH@D?Okoec5bctqUyG;>~>LSfL6XN zj`r)rqmOh|d&&oe9r}aNn4IOO|q$nM*7^Q=N9)W3 zjbz4BP4SfYSVj7G)VP8$lkuo|)mB9bxwq4pEqV9q*WG&N@OoM6l^4wy6UK5D*78Od zzDM6A$crD8)JX21gB5$>R#VFi`^b-!slVHxQ+>U>8`!{EsG=q@{c^AOmEIsmAywM$ zSF$H(8zp^SgiH4-`|_Qe?djsC(t@&YUHgXGh1sXLe>HI+Jr>4!Z}vS2>)J+)8pAN%#FwCJzK(`74jE hEgnjXLZ+7vaYu@}6c9!yBe0Zq6_Og#3| zThl~CduSy+=#e6cG--@U8v`C_71>a&1eV~|gJfcF*?qa7oU}Fha;sY+=ZsA{xvBMP3+!PG2v^U1Lkm|feD~RLt!EM1*O0KG zhuR7VLata~b;%AUE~`)4kL_tH$JM9iycNadm;Ve54(ew%Pw8#z*q((L7O&Fak3#w{ zhx)@Fp;ntpVH^E#5l&*kaNLJWbwP zNkw`;NSG~wr~#B%7Jie7TtUy=a?v z8Li32af*i$U9+z=o8!-M&eLL&d^3g8`<>;7{00000NkvXXu0mjfNLp+u diff --git a/resources/images/protocol/ippi/sip16x16-away.png b/resources/images/protocol/ippi/sip16x16-away.png index 24ef080a034580cda42e79e4bb645e81b0686bd7..9189f18c61c5e8f08759851051ee79f829bc5190 100644 GIT binary patch literal 1963 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g!!3HGbRrPd%lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6H#2Ih>+kcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`GuBNuFf>#!Gt)CP zF*P$Y)KM@pFf`IP03tJ8LlY}gGb`4?pZBPB7%B|o_|H#M)s)5TT^D5IB>nPO#NVgU?A za}xt|BLg!FLqkh*M^h(rClg~AGglW^7bln**z}s4yBL|d8Jjs8I-46Bx*A%TyO=vW z8aukUSvonI8yms&dgc|EB<3Zj!tBii+6&cdidV0db5UwyNq$jCetr%t1q5W|m*f{` zK@kM;uS;rCW?5>ATTy^2lw4p!z%&SA!V^D`1J6FGdB8kV1k4EA*GyMat!5nFdPd`k2nj5*FUL(IZ=1V@j+;gjmG4WAjeW>%MO}_1KIVVZzU! z%s0M&rsnfm^ZRE!*1i5zKSAq3-Ts2Mm0P(rCcWa;UEZf+H~)ygo8v^$`1L2WR`oB~ zKdm)pT1vgY1Lr1lTQ6^u);}+=820(^a}10=yoGm5)m8IP6^E~Fl;sv@f1lR(`p1Tr zGna3#dwN>6u*9P?AxbU&+?*vjA`{NX*}B^7=xzK`%X9bFf*Tr~$(OIgLU@buT{B6%kRvV`I7(OWS z>h2%t)>`9MbNF+2y5)_(7M|skqn_D*nY!Lndi9OQv}=d0cZO88cr7^Ezbhcxb?tS> z$-HH1Wt#(LEp>E};yv>7$EDp%q^vWzwr|+}mtp21o`q*5mfp$S_TAQZ&wGok9irax zOE-Pu{rR#yqVHXrmYt7M&f+MskU3JF9;-X7w2NMSIQ(aOin)=Js?n~@jww%WgvzQX z_-sy2;kmi?;jHk2EmB=Vsu#DlFS{bKP(FUil>aiu-*i^xuAFjqQ^g)7x4R++0ZRp@ z-cl>RCbRh*Px;YV9P4Wxk6+MU@V_lrud}G|&mzJ1?8lUXHq7n&x7^@Z{Ilnu)>z!( z3R)#4Vt!g_wbsv5T)%g_y%emx#@lRtn{7hza*umO{F8zeFVuA;TwlFNO}pNaGkmt# zFQb#+YPU?==iJ9SDd(C_-Tf1ZGlarFcc*YiwpqP@{&S-8o!h2|yq+mbEfOsJtJ?EY z{jW!}t$X3yP5k}*W&7X0mX=a7$($Y-t(0jJ`|QaN^@wd}3(nVhZRKjeXYW%TJd1bj zf!8ZHX{a)Xpa0?4d%9on)>lczj}6gJPTB;iurG~sk$Y?Hu`glLNzs|{y2W{~l%96E z`3BFNbAD6E12n48Gl`lD(GvWWm zbAn4}&5eJyjs2YR{WD8$eQx{5MbDd;V(Tkp&yCT3)J`_+r@T*vQwo!ofGeF~MoUuGBB>49pDk XLVvESeRxkBRDF87`njxgN@xNA=Cl~M literal 730 zcmV<00ww*4P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00FxI00FxJI_%@(00007bV*G`2igJ{ z6c{U|l+#QA00LS`L_t(I%k7d+PZLo9#OLjsBOrbd0?wHOz~Y=+9L(mNTP@evusrjz zv|U<%rpTe2*N5&RSKkHz2t)+q-J?ap-v9v4MJBLcPhTlCc84Xe%dbg-0^KZPCUGBr zNrCE*pl(&LoL|D_*c4>RkFftVXvfBK{w)rS96DWwlVb3yL@77Vo*4@ahKAAWkK$wQ z9ljl=k&Il#WNZeKcmmXO@M7yJB1#m~iCf6kc2I4Xpc|#OWIMdvXq$ab&;{dN-RVmfJ%1APbfY!S(yFS;?SoRe`<^jJ96u}&)vbPKp6e;eq0(I!{%BB8>P<~F*Y+aryI3#!!pqqis8+dC6t?W zyj*>SmGA2~&n{s4#x!JEMtUm^%d?^Os)!E^ptM~h(qXgn8t6RuS^J8;autFgpinLT zo!|B-+MWZ`wcznCJg)=Wbpb&{Ozo#)`9nVKO~#ETWlGU7nm-ziR+BQ?q>MEw6DQP! zFgh~IL4+ zU6=gvT-PObgF^u&_}01--mBTjnlBWdHyG M07*qoM6N<$g0B`wmjD0& diff --git a/resources/images/protocol/ippi/sip16x16-busy.png b/resources/images/protocol/ippi/sip16x16-busy.png index 27a0dde0406b66a3e5e5b305c273d63b8b80b36d..fcc61813e5915220f67ce0e4ca3aaf80e70d4007 100644 GIT binary patch literal 1916 zcmbVNX;c$e6i$!TqD8UL7Fnu85H&)U$)1sjArnl1D3U}FMG47}1V|<%LldZ=fE%b( z>Jk@JL~C6Tw6Z9&*n$hSiYr(QTI)tdTnZK!ES)IWo*s`sI%j6ydw1^l-Th2%#Ej`9 zM|h4P5C|hBVmK0CKgSPXu&oJ~4_V zrAduKM5`00n-E$047n;jNySqWgQfz3RtP81BbXAf>XQv-$jT?a=7sRRLrf(CuT`)l zKJkrH(b5P&h?)?9MPZOtG!O*XYzoL^vDsh%K&OFpDhP~>#0K*~qVSYatx6*mq|m5(y(6yI+GZ>g`NxfSYMbS0 zMuZxPn9)>|3a>|k?;se@-TMtW6mf5$nI;`x6lF4us#5ic0h7RdBL0P<)~O*HlZ$7O z!=!QOG&UCmc^m;Nm=nxoz-$pLf`bP+-i76GU>1`_=LtX|2LweRmjiQz0)_w%;ROpg z4Ei8eVlZP$g9;h6tHbRMV7c$bLP8Uw#88tQMUw|RAVP~`s9B2|0ilcyOp+>9I)g(% zaun!Iyf9+YeTk?;OsF1sonc7#4iEktIhV#|1heTv0h~@E&w*-!?yfcso9b0iPKYJ{-FBlVkCj+b4kqa%)@py0B!0;?rgI-5nVz=(SFA zPi1*!MO*=~GF&VK6svM3oP6eVZsABt;h0-uH;K1)6_=O~B+3(4Yn^?vhZhxpuq9${ z_}*O=UHX-^8TQ_8d$)0`>U?e>Gi7TZ@2j#`+cR2T^tOeicrWj7z_QFKHC5YDD;o-i=P)ic+}=mJY_89cG+Nv<$S<$9 z|G8q}9;Z1z@~D}CcAtWwlg12vuFTDwQ;;&BebMQqXYKQJ((n3(sI1Jaf`}#EknQa8Lf)yoPRg+5`4Yi`&JJJ z9yeuL$Caw{o;#yAF`t~ViR;q}8;{SPFt&EP_INNydit7Q@eiwApVnv-yJf%4y?e<_ z%nd!UCvW_jp6xZE#y-!pWi|Pm&-~co5)n{@I>~Od2%`Jyc1}ONdS1~V*<$S`i03sP9EsseHe^)js{#b-Qj{Si0FJ)|93dM3VYP zS}2*EwH@tS%eRday0o%p1^7jWQp5O@OVsY0zHUBz?3Q3z`u5@kkCLq!TlD(agVoN{ zr`A0`!0n;?kj`DDGCB^$eS9bHr^nw?X@0f*xx-Fx_@lW!#ztD7deW_X-b}^mXRMNiW8vPpF-IRf zDc>!fWHJ}FhFrh%xJmU*C8?@uf~%8^z5hroJnOSjetF&jdoRCyRn_$gk7v7oe(m*> zResG6?Dp^cS5Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00FxI00FxJI_%@(00007bV*G`2igJ{ z6dW$GlH$hz00KctL_t(I%k7fSOB8Vc#XsMfad*ev)z-z(uwQF>h@}#-phN_dpi5Dw z=-5Fzb&^1dx^(RlLeM3ovqVu*(4jz)#0+v0MReC(*H!n&?5yj~% z)&p%JGdmXaHC*gFew9Ri0RTm)NU!#LQRo)|I1xR~YToExD=c+rZp}NdDM2=^b^2r1 z(X}9rdX#*5o5|#B&b0R8({v(wGj?^4$>dv7W`b%>;#WiGG~4#9V~67PM;bb4(p#8H zyk~jGpgnq$uGW4uPoO_~f@>@gsrk9ADx^CPV%)gErkUAQ_A1_1Vb`MKI!LcZGP{ad zF0pNG6TnaC)-VTxtuzc=L3Z~b+m6y~Y!bgShGmwrYWtC>3pK7i}qfma=}`+7r^Y5kg?6 zQrM{!=JYg)@p0U0ZC>p6vI$ik(L$kzu4(?uGO};LGtht!K;K{FPr!h>U%(5H1Mu8| niUSb`!Vb(k@YsQ&A*lWY{EiJ)hH@th00000NkvXXu0mjfwf{o% diff --git a/resources/images/protocol/ippi/sip16x16-offline.png b/resources/images/protocol/ippi/sip16x16-offline.png index 9502b87466bc145982963bef7e8452146935737d..fc888ad1f152e9fb06e69b001ac482fff5373e31 100644 GIT binary patch literal 1573 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g!!3HGbRrPd%lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6H#2Ih>+kcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`GuBNuFf>#!Gt)CP zF*P$Y)KM@pFf`IP03tJ8LlY}gGb`4?pZBPB7%B|o_|H#M)s)5TT^D5IB>nPO#NVgU?A za}xt|BLg!FLqkh*M^h(rClg~AGglW^7bln**z}s4yBL|d85=noI-46Bx*A%TyO=vW z8aukUSvonI8yms&dgc|EB<3Zj!tBii+6&cdh*z(bb5UwyNq$jCetr%t1q5W|m*f{` zK@kM;uS;rCW?5>ATTy^2lw4p!z%&SA!V^D`1J6FGdB8kV1k4=G1xxZ77?^@R zT^vIyZe0o4*`?(uviI(`$8E-X8ao;u7-;A#wK!Ef>~5WXyE_MRUjR zzv~_`G4Bjpz4Y``r>j|0zx}p7xizY{$4z9F!&|IN3ZevRudWdiPyD_4?{+W!84dQ(jAjX3O`w?QANsI{S~aJ3;cq#Tz+h zr&k5a8l0)EtJ~!Ipy9cfj@V+Sg$E{Qh%uZ|H10U!+x)3&?>TiATSpF_Cl*Np9NdM6 zmdI~%SDUk44ofy`glX(f`FeQ1ryD21s-(r#wk>#8G{IefW=)I?lV~EE2qZjw; zIWsaiJbeGHeU(tBhg4_F(FTFZN7O#DsC7=?5NX?_ZZKQNZL)%)$E=7eY7-|^ufCP_ zK6mxns9hC|=VqQS`BC3=`soLat#*c@Po6Z-={&GOSyJuR;U&SZc>q^izjqD)*$g2)z+Lv?BJxv$2sS4hr^7i!JOl_t4c8@~LvtIrb z>oiUI8ls}bCDCy|*fZk#wGGJ!+a~P`b)9`G>3m$g(b^B5mv>m#ZqJ$)D_#8j;GO{c zGbVa6A$vVL9ZvR|tvKv@;NL=9<4?+-ZrA3{pZn)vw|w8;IIqg)OFclZGkCiCxvXtqlw1|b&lm79@o)kSf++x#W~J7^Gx147ygYnw5rZUPNCk`I zlRh{VAq@pYs2%~B6gpW+g&=^%qCgBLiv@WBG%7>`srbzzLku31#iOx-;fsV@)2m{5 zGFUup3qSEmu^6V~fuPZ7q!{TGRKEg*xLmGF8{|nk z1e75LG(oS#>k;ER0>*Rqc|#UO+#B9Jy&5lyVkL|!6EuhxlfZlu{)M7at9Vof2hSp# zL1ojZEDi*5*#f4JEo9JPRsb9T3r9FUg=Mp08cR$I5I`a}1O-4GHp~_Y=mJ>G6$;pN z+6Y#nHDC&@5*e|p#_bMc;m=}uB0ZwOP`w;QSB`W*Xe^4MhFDYwh!(H_PpLww)>;I! zECu=yFO2BbiHJ(9M>W7uhI#5wc<|rIIaCf^$fAh^EG7hT1XR*6R`q|f2I9_umiG8p zyNrnN9<*#fHa~v&I6jCLpBX(q9QtPB34G?{5?CNN{rWsB7+tb(;)Rqx#f8M@441O6 z3*GXhu-rd%RFOQ-Gt|Z<4Ct{Mu&z-!+uR0R9NntsEc<@T?QYLe8#atubo9vVOY6@` zTRo~4WZX{cdK3TPHL^O(oIb;Vm9^yTq4(~8pKUlo9nZD7#&zMApFY^s9o7@B-?3`y z-r_95t-#DYxD#PhG0`3S_H%N2$-9JWoqNk(!&^P+cetAzT%YneZ&p+Wa{B zE%}eOCABj)hp>U4gUwFuhY!U7HMw;TV}i_*XTGj!PNu=CqyF`!KY_jjx$;*w6jfx$ zqfE3>EX`(4-fkt%a9HOhz8ohJ+RfCd+Ozz}G(J5r;CEz#{9$1$SYn&p`QuCeT(Dar z-gLVZtz5XMqrb^3v;KW1eRkJjw+67<`W^T9<(t3p==r<2Ia43YBNvAT9Ix(SR==ce91tz{ z?e&0M8{Rx*2nvH+C(T|zA!ed~WgPUSAGxUata{fe+msA**En}xT8FLs+qs326SIiN z>{3F%eI9(+E%4@~Ma5Aoqk=Lfk6Hb?dFPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L00FxI00FxJI_%@(00007bV*G`2igJ{ z6c#5kp|a@!00HMoL_t(I%k7iPY7=1qg};9?jhRfFHby0pQZ;E^h-gJ;8!)m+F3fi7VG&nzMDCEeUDSV!D+SAk=DiYSA%1r2~KNKHga$HT1}IP zT;WD6iRv4mOq^?F<5yULQ=`srnN4<8y=la6F<%3Ho(r60=xNlbOUUZ+BOTg+`ei zox*4uOkYT{U(R569JUHu?Ec)}RvS&P^zk5#VYSf)hFRWzh1+*YZN8>>RAg!_$QQe6dXIk?UpOe&P!xqi?eKX1cbN^AKCjU1*vDDf z%>1z{0w6qpdmfkrMu6Z60GtyvfK+{9ec>PY!Y@_j->XyA0!RP=002ovPDHLkV1k8C B6bJwS diff --git a/resources/images/protocol/ippi/sip16x16-phone.png b/resources/images/protocol/ippi/sip16x16-phone.png index 321ce8a35043a0c6075bf9fb8f1f15bf6750a390..1db411fbb6fbf51c20f7d848c55086d6fb118502 100644 GIT binary patch literal 1967 zcmbVNX;2eq7><>xfFia6ing$g2Z)knb0;NW$cCdDzz|C6QA{=qM3ZdT-9W$s0~NF= zWq?X63Z_JnP^AMEDkudx;-I4_6s<+5#a3EGv6r@r*o}hi52ru6v%BB-z571Td(VCl z6BX{}y2O=2p}0jxKyq^RBA-{CUnbuPD`}0J%NhoFOg)pk8sT?{qv))LeDU_fPvrz?aM+iWTBxwyI>cpuwDxlSf zsPP;bLuQm9$=Zkv42jK%QotG8VS$Dk5)1^Hg(QIVc;j7HVJM0fWb7GMF3*$a)qzpTTGGLB52?m$D!pAEZuW zHUB4TbkZ5RqdorBE;Ays2OZnz%}*Ylj}KxXX9gpOW2|S@_vFkCMM7eQ`P&m8oky3( zdDydAJ|QFF3wcLUsH30Sf7npVj(Weg#49&c8N;tIEddh7rxty`8_5x36%>qbV z<&>i^l{T!sVQC5gUbRKZ{c^fKTo_`nPqN?iuA}SozKQV?S*^`Qc-x~2yjM_gyCrD; z<((}d`pvK)du~xxk95#x-5p)%2b> z{OBEg3eQsq77Z|L1FQRL1l*-ByPdUnfBN(On?kw1{>pXqWYgyOu7RxRxn=qkk!anu z>yjQ#eWXx^;`Q=7>&6*q7FRp}$lSaJkIS>Gs~;w$71< z4>Yb1pa{jh^B!+pyJc+jeQn>O>Z6xWwD~rBC$xPRosi)Bi}_%;q5%79r)Qm&qbqEP z^D2t(I<_fP#_le9cPQz?yKr|TYk?rj`cuil*GjkkQGMXS5zAwqx^Za%k8a;CK;s#WC*s!Lrzu)i7 z)T+9O*4g1f#B#-ZjSbh`!>MLB-;F!g`Eeu&*W|hBI=`4NwbkNNd*%|2sq&gTza&nY zda7+t$~3wX#a+Dec4k}#K=+uamd%d>aoDF-t}C16_GnRc<-zKW{U>A3S<+7{)SRAM z;=d-w1m^}s^Yh(*8@lk$Ncf!n$#3q`e&XM8JF&^XH0szi>uP@gBR7h)gQgJV*jA$mZOcw3yX`3!{=mCd|dNrD@r51t1C7~<@*5z z8k1??-AW&qfCE*O;m0AFO)>uFxBGr>zkk0eUXv3L(ECc|*N+yuEL&0-yngAADV&FG aPKznm+$Up8PG=N5exZ@lD5x%UYwq9JIuPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L00FxI00FxJI_%@(00007bV*G`2igJ{ z6c{)mDw2`_00LS`L_t(I%k7d+PZLo9#OLjsBOrbd0?wHOz~Y=+9L(mNTP@evusrjz zv|U<%rpTe2*N5&RSKkHz2t)+q-J?ap-v9v4MJBLcPhTlCc84Xe%dbg-0^KZPCUGBr zNrCE*pl(&LoL|D_*c4>RkFftVXvfBK{w)rS96DWwlVb3yL@77Vo*4@ahKAAWkK$wQ z9ljl=k&Il#WNZeKcmmXO@M7yJB1#m~iCf6kc2I4Xpc|#OWIMdvXq$ab&;{dN-RVmfJ%1APbfY!S(yFS;?SoRe`<^jJ96u}&)vbPKp6e;eq0(I!{%BB8>P<~F*Y+aryI3#!!pqqis8+dC6t?W zyj*>SmGA2~&n{s4#x!JEMtUm^%d?^Os)!E^ptM~h(qXgn8t6RuS^J8;autFgpinLT zo!|B-+MWZ`wcznCJg)=Wbpb&{Ozo#)`9nVKO~#ETWlGU7nm-ziR+BQ?q>MEw6DQP! zFgh~IL4+ zU6=gvT-PObgF^u&_}01--mBTjnlBWdHyG M07*qoM6N<$f|0jIy8r+H diff --git a/resources/images/protocol/iptel/sip-connecting.png b/resources/images/protocol/iptel/sip-connecting.png new file mode 100644 index 0000000000000000000000000000000000000000..23f16ff8fbd519d44ab2a04f4a1f8fac6521300b GIT binary patch literal 1901 zcmbVNdsGa29A6aDDUs_L#-^j#*X-8r>}ol?I~z+|sl6($vh7UmsNLDeRJ(N6O;@&1 zm%ZpJg(D=o*E32F&$`GZC$AnJAw=>P(w(K;`-kI?J7;Eozu$MhpU?MwCL<(hmdlW_ zLnsuAi)=O=O0FZxXZYZOx-o0*FE5Fs+dKth|Z}V2F?!?k8u- zbrMvK&0cCi!Mke1tl42HSIADnz`H z`o*aTc?clE4JhEp;Luep5Cphf2I%X@<$^ST%>vm>7I|~&ps&D>D`4}0-iu0FGa#{o zP&lC17I_j<)dZmvFqz58$&6$U12@DmK|Y^v=U}txqz2t+))Gn+U2F90V}Mbk%7Ezz z4A%m7Mr911NC>H?)!%9iljG!U;{=LMVSEOszeQ{C1kLWN`7G=7$RW#LSz^`haYb2Cf720PPBklHLCEvvgBnDJT;06VbC-ikdh#DtwqZ-!%k}xjdEmx{AtzF<_ zFVL5GVbp*np-6xM*8rb0EWp0u0gK0Fv)FzTkn<&Shy`&V5R&j9DF^03Ahj2Z{GY5b zNoSb$_V`b`^ohtGv~RyQKY92%KB$(Q83Q>S@AqXkku#SogGCC{%|nVs>V@cN%f(=0 z{k_TZ#>tu~?Pa?o_mrF=Tz2mhltIIG1~m_jveu>tb&B08+?W-egDTuc47|HmTT_AV=m}40VH?K!`W)%oLntGZpuj>@1Eo+*9TaVl? zLpN-C{ZVnZI4t^j&x2z3L&;gSb#+$9$}O_-nZ~!Xc2$~FfTSK}QDNc1C7WNQ>|e8_ z4$h@|-hO^b`I~JNGsS}3l1zzD*I#Wp{rYU9S7b|fOWdxSfVUmX>V`X<`Ev>Mve9?r zCc`UvYE(F@=}Km5$l$}`mYh%b6GGX={bcJQ#P|#DRNw)bI^odoo1~*GJT!Txa(t_PK8f9si7%@{j(}7 zXLx7!&vM8<{-C>~qvKj|c6QalpeAWX=IZSaZ(AGMtGQJ}ivnH450A+U-uY{O!(z1O zY{g}D+TQua%?>Tut}Z8@8o(}!dwJ8IU7H|Bn}sGWFCE{Ax1W4oz-V2yCN;x(rl&{7 zrNYF~>H8 z5pk~mUh~dBs=asMVd4$9g&rI~}Nb*;-)9^M3e#;(?=&_0GqZ zYmx>|Oz9Fbu(|J^XAVsJbipA5-k!SlK}yz>=^2GxPdLG`6_s!57o}a!p<6r3fS9>k z-S4-GDeBNKAl%1T=QXuo!BPF8I(c(_g05IxHIe1l|G zwE4!<_Uk_U5&V(OUWy^o(=`)*PQvQ1zBH%WRGWFFPLUgBMRUDNG7+(QW4UDB$Nht9 z0tzgj&TQ*!PCHc@v^?it%L4i)W;g&{LPE)KR}r@ K2rdyXUhxm;JO)7k literal 0 HcmV?d00001 diff --git a/resources/images/protocol/iptel/sip16x16-away.png b/resources/images/protocol/iptel/sip16x16-away.png index 826ccf5c5feceb8d13ab35278f1375d9ba42221b..9c7e93c0f13fcc70051ea86b4885d53c9cef5412 100644 GIT binary patch literal 2007 zcmbVNYg7|w8jg!1;EHG!<<=bote}!)637h#CYgX-f)D~`3!;-`AR{Cbl8FQqw?&Yu zp*;$#A_x=<94mqg?x9qVpsvL`Dxx3)i#Mt$s9YBWcB10$4^MyWoSFH)@15s;-usz7 z5#d1#Z5(Y#B+|m*^^k;E?TKfJl_l}s>`w6_76)7;!=tbSJQdad%O&<^F_jFw zhu}#(@&~76;s`*9=@7t&!theiKoDRuDWJCxlL@W`=roW{r4cvN3-sptFu8OV@bMxO z)^y4Qt^^AFXp1=U$SNGya;enR)Kp3;gM#T2sUU~LF>}!AUIfBRpQgcKqnAeSI?Dhd zdW8z1t~PDT5XQ&Jz9@TkpH^z zS+ri7rbVa{M2{JC3ZfnfuCvNS?tb5p8Ay1;-JnB>qQJ=zrZA`x4IT{f$ix?l5>;|( z-fSX^EN>c%PGhn`ki+8p2v`Dd2E-IWB1kaH@i|=~7)TS+1WZ22W`LjwWV0Zakk8;l zfgAy!#h}mX25a;T-oT1jaF)6vL8dJ0L=Z;h0{9X#rsr z6Yvnj3RGhjc$y3JAzld4q1zB;pbk?5?=#FrKjQ(7#iY~dK0=W3A#yg2&0vFUA&V_y zKrA*${-~?`f3ij;oS~ZAJfbyxyIVCmxkYId;Y|5B>QsVMmsh2gfdXk$X4B%Tpx%G4iY5b^#;& ze@+08=1r8Y_;%48boKf9d!%dR?xG#1Bu;tW>admfLTl@lg9S&sIviRG5-yfWhR<8{ z6me!aJNkTQa#!sBW=3K4bb-LCuxja-Hh;>_EAZUA6y1yL{jG7aYySQv-}R00hQ}j& zdMk6r=03=@ubcJ*=S-Ls7);iksPtNU8-j(WM@9|#O~i*r_+r*3`?B#&xtsC& zVb4_uZJobNf7w=d3~Mja?K;1B?e4OlIRQD%e`)!=cb*Auc2jEoRqQEv}9fI+>yw-5Kk7hY`0eSCdBkawf>-r%mW?m#Ht??Iu3 zDk31uce{1&_U3<$&OhJR_d_%F2qTtprnS>BQ91PF75Q!A!4wwr_A%6`#V7N6__(j5;TiL$G2v{pT*yTKj{@PK(6Zcw(hS`U1; z^#Ul!aQ)SBS!>rrlYPm8{ZH+<&U$UTx;^&B#_zn)`~U!6O-yuXJv=3?vAxif2V z&6@s#p0tq7S6wdNf^Ql2)!0-!M<1`rT(#QtkXpeVnJ7&Q-^xwQT$rGk^t)2`lxJdZ zo4nWJ-8* z-M!=7$n6eP5q$*U)`%;&fd$mXTzIr@|KXyd(*tO%Z|yJa zJ0+nv>-#Sm3Ld{glSKW=hR0VzqYW*l+xkZJw)z>i?E7=y%bnIx4puuU@5@*oE)!8- a&mkdyyie>xXmhM?J$FQ zA&gNdtyd}|-iQ{dx88Jw;OM0wy%@c4s33%?=|nddSYZyCi2HM0v2oonYh9LRG5wmK z@9)j`d6gIkp3Cz*=kRbI4zX<;op^VCe$?&p%~9DKk{nJy0BCBXsMmJ4_LRz*<)x*K z&VAA{NTpJoqUsC5(L=K@zxF!icpDmQ0-Hb*h)tMDu3!32+sfU^cpUU}GMTj62B}nv zt2L2{%_O3|gG0za%5|;Rx~V0}Fib|&n!+9Ni|TWOL9O&xo?JWsMNZ~1n@lDx4geHY zUx>{lqCLSOoA4^u${gi(?qaxl*NEzyhO8B>o#JDGF@y95hV0l(BC4qR0s!!Za(Q(B zp(Ce;$74JISkSqf>-QYv&xX{<@bgBGe~?A?d5u1o%p}=s5klZ}dr|%S$;fACm#=Vc zk8f`L_$+OQ0t;Gwm-Gw{H18J+T~}|e$<*ny&z_Sf1Mb?J)6*3}5Ziy398N!HHyN!yxHFJ=>kTm+ z4kMjTLs1kQK6sFP_)da5VLzlNC&$YB!w2*)S1$PQ6gUTA&rDC95C|av0G{W;7y|%M zN--Uek+8EVPQLg;Ns<5n6B83C?L6uF_>)gVv7=*qt-b4)GWwoUIV0$r zwr!f`0Z|kI0P%Pn@p!y_K|Y_ymCe;I%1C|w?UN+{C~yBswsXH_mY0?`gle^VDx1xI zGc`5U_jEwEZR6YTf3QAyZ|;7#&&OKgpH@E4c^vdK0Pw4;s}Hl;Y+tEV8i_R diff --git a/resources/images/protocol/iptel/sip16x16-busy.png b/resources/images/protocol/iptel/sip16x16-busy.png index 4847c4486218cb25ee0800108fe963ef92115779..3b8431ff86e999709229c41b6fdfb8d28ece2c32 100644 GIT binary patch literal 1977 zcmbVNeOME99G~(MP$+7e;tSUVMTqTg@0$$Wc0(p_bIc%>@Yrtdg6-CJxWP0%azA0 z@%HldqEIN_vItl~uG7e8vWGkQP70ufkjo50nn1+i8p4biQHn^7C!>H&hpa&rD56e( z_d7I{LUGYz$^;@II!d6zbu`4OL$l}%B$`4AU1TvJsuYv}lF>DoUPyHutEU2(T1bs& zM}yG@397{+GK^?kMvPLGk)qX;h(4hnZSahj+lfWXRKIIjVd#9LA1)i!9 zDMIQqrxK#&fCM+90Gq}PQGpNya5yxG#pZCJHvk3*G3X$9b3!1NfXxvwxWMQ|C9N6N z8i4{1AGJlEgj6j-7zA{>*=(knnKazEh7R%hd?yEk5khK&n9}tGVhPck=8iGIs7YnS z3#4ShP@w;~@j`8r zGTngE6{rbMGpfjXXy%TA$=v<7A*UkgjUd*DkwrmLVO*7_L-m9V7E;MCG&QCcfGi%F zMJ@~EGC&Rwg7{n!Tg(-+m@r2QOJVUC$BVEMC>)f4Vvz{qF(F6_@whNoB4Uc*aK2c? zWirOFGQEjF^eS}BE=JlN#q$3XE07pbgusnT98VqV0J#PycvA-FHi}CNjK2cvnkC^|+ZS?*K7d)rAw^u18C!FPKy-E&8G08 z?hjQC-}Ad4u__vdR{8AX=3G?tZoHV>h~EzE-%Gig{o#&Bk5)S@6PkW~325z+QxX3| zNz&H#oa@7Wev^mgb5=dMRu`F5GAFhB7q_>Qm-&|UXT}EnT=iMjg+(s$%LBgYdnoUJ zAT2!6A2jrvZnehi13G119{%SFn|*3#$Bl@s`Lr`LYVX?V*Ha2~F~;dd`@3oMtfbDr?1Me0y!B{ZcR*$9;|Oazlir8F`xCdOEibQJ+4nxdm{Bru zD5qTLz`+rg9KYa??00eXvWt&K`hW+yi#u-)pXhi{9eQwz(L6Zmr+lrQe(ubrJ>SfF z?S94yx0PT0SfRa@JJ@q4A**ERilOn6sQB*TEBDfG??pQ+=CpAi$D1GJXAS%|PvI6! kn^ujs0@&;IU9scbDYnRudp9G^Hs{Y&CXIm)iC1s>8`EbdtN;K2 literal 960 zcmV;x13&zUP)SOr-wU9qXENR+TB5QHG8Nu?_z*L}a-xi5=Sn8|xO+*WwW<7qLZgvWSMR=X)L zc+50NW&WyU&R>yx9m?Gm;l>AF)eGgCP^(vIP?lM%0p$fxl+|wDACRKe#cP4}_fK{1 zTPp~0%Od*$JpJL@wi}57_S=aM?B6ebCm-z!Ro@;OD)YRs^X~qD6y@nw$+!CPNLT0D ziVy_A0SEvXsBF{T+Y8ijT+;E;xmA|{Uthiw9)0VLtzDb=zxq7xUt19@07m1Ojjp;b zl7HRhj>v+2^vKKgpBHZ{tztv37kN_N;%xvpd>G2HW8fM?-7sLz%pjp@c)D;k=*C~r zta_a`#mupZS=}!1sMjh6&>kBa!r+-RyT0`w`8>q=dE~EOm!~&rDD~PamFDc$+^kvA z$`^Rzx*G;?@bRTfs22*L4GzRK!EWBf2JgePAq7Q8uZ^D^*#Lmj%0FZ!cW-uTa`F*R z2>FCj+P}H9q}G;}AT=OL0Q>;*k$vvDPtPxls=}J$UoU@|Qv%{y0HE*M_B17A&Y@Im z!ZQKX0Q}tog_?t2S0000gRxjVNvVfPzG^H62BcbL94v>G z>f~)V;58(Yg$4ve$R3=452SI?tp@J+nhXZ;73_8f5(TSTw0a<)DhtJ>wGZ&fg zrdP-E<&b2?7qJqMH8`&0(`ZRaNz^1J71PJjKpu~0=3p==gayTrjN(cY1vNO&GC;6F zrAKr)f}wz!Q5l07aRHf7Ivs*mCzHJ;Mh!EGB2q>(DRnfEN~dYH=D4P;4Y(ZsSH?T7 z4I#-om?nn}m{G4H&Lh@&7EI*s{f^9rgc|-vJwhCcG7-X5MlFouQb<51zEIVOnonnW z5n1H2=v)S!;{}2|t}k226|$HRM+}J};Vj3yup*(DEo5_u0USg+bKJ6Y5Q$mX?&TJ8s_0SDgC!+0anD^A$Pu;D(aY(vj+#ni@|} z&ot3*HkX+%wuh#9XNQG`7Bohkj^h*$XO_FM2XVz*hof@$6V=r&B?0ZP?{{@|tyr~c z)mAZi@5XV)1Mx_FeF|z}9dwbt>bOcnnNEsj4+1l=WlqEpw71lYzkf0!6%PhU0U;EYZ@no)j`tFE7 zJfe?RRkc6Wd5r*@ow$3P{EuC@P^3^O+?MVRN=@~yZ)lj{xk!fw2M4RNv$GrI`L4^) z6!}*+Ma9MLknG)3Q?(9QmztXTd@N<~`STsEyH0%k<>5$OhoWw=OeV7`kT~;$=k-e* z3nYrj$O<(>nwy*Zpu1a^o}S)2wUw%gdK_ z5d;1G*GFINyFa-2;F+=uEj>M3wz@|rBZ&K_wz+U)vsKvgm0?!iT-$r)d3hgR*||F- zP-?|U6Rcf3G3UD*s~xW{vaqlit!;Vq8QQKu`z|eG+o>4McV30Nz3^85>6mJG*n&=WQcUTs35|9+e960@?kEP)Px#0%A)?L;(MXkIcUS000SaNLh0L00Juj00JukWo6rc00007bV*G`2igP|2{0Uk zsSP{;00F8=L_t(2&rOlPYZGA@$G^|}n!DyMF`Okm8xs*Mrb7x=#K}Q~PC~%^2OTrJ zD8$WOTLyQb3v_0AH{(R9k05Mj@wQjvSj~~{^wxB2y z<#Blu(B{`cqiqCGY}KnJCLGyAXhmvj!b_S;T(1^efD9Lxo-a#)#a{O2ctQEPs0!LO zggi#K-h32ZbHz^2iRfw)SUWk_cu7iDY_BQYievx~>?Pl3vOLU0;`A{{b}Pd1)5Y-p zzx&zE`J>CP%bhElQtJ5UYC^_58Xb#2^k8`7r0bn=5r-EN+h`ro-RO4wxsb9r6j47( z?Z}WpEjETQp;!PwLQ!AV4#tlcBmgkIEFD;d>2KNbYsYtDU`u^}DtCUpovSS60Wdk{ z!)$Er<#X!EArR1~&Z~FlQJ0u7rCq0&e-_#d1oZwa>b4m)Hr9JeljM8jIc;-7J+-ku oXq=XHQFrco)<2=-@c+910dbDG8V17l7ytkO07*qoM6N<$f?AmFv;Y7A diff --git a/resources/images/protocol/iptel/sip16x16-online.png b/resources/images/protocol/iptel/sip16x16-online.png index b361b7f602876c26663cdda17c248dede1e1e078..68b460b698889604479e991135439a0a53155222 100644 GIT binary patch literal 1823 zcmbVNX;2eq7!HCK1qH#Q#8#K62qHgB%73|L5?t`o`ht92+4-cLIO%DUVxwl z?}`dS#o}0$qD%#%MG(cS;0ck#C?cRxryd}3bc0~~!|_LVcK7?fci-oE@7eSK|8J&F zAx2vfy=P!PV(!XF3gN%(vHLb3^d(GD;~8#X==3IC4ZqmYH?PdX)x869_)OdW}pT4P!t!9H~@uNq<#bBmqhVm-H<| zLX~I)aFo(75ru;j{iX86XgOO!@?8q}=s7rn3dUrBUKOL(a`ar%C@%-!o5d6oFsgz@ zb4eeZ3Y7!^0tAHt2ASp|r-C5BWRgKTgUJM!0G?FPlS0LBrUyvpFqj-q7BF^^aBHX{ zf)fOZ#%$pyE-4DbG#m;=r_+&jG%|ulQb0DFZRYUw^uRSdvyRveiq9Sps)->P$`1MjCVjl6oMhzC`1DYf|-D;L?&0N z%>p-bfj-0w!KgAGR)|nU1&n5xqx^&iLQnug0+0$qA0qdndePW;ICLt+q|<3E(im3p zf3ilwouQc9<3H^(F2Z}zy#3hx_~GODz-oMEP<%L2Z#=HSXHFu9cv8Lbtn@iz8#rU6 z#kP&uHtBbUyC%1skZP|3R=4W!&)jYta(cRLOSZ}>?QJhLv%RQ$ z;2`8Ea)@2D0GxCA9$*Iv+gXn}OJ6gW% zAQms0&{drwdf44l!D`rWwQa`pnsB!UgE#1|YoYMQV#k|w4e`IEpSGajtJPBXL zaJ1^`Lxt{u zm?=ZAZ_{TI4L_nCmyC0&tRDpYZe!EXIM}<<%lhQ*%!b9;>0b2%y;Ema9t!i#+zYJ- ztdsL>CN>dw*R8wDqRX;c4!PVHT3LQQwVikkYECfKl$85X`&YHM?VMzMccI5|+R=)X zXBX^e^%_&-bM2O&jBw@=&!4POuRE_#U*kKnGqnD6$2B;k{8ZWDqYcL$4a6rd`(kb5 z+pCVao7^w!d-50Gy_I8G%Fgj)96w%UdR=_Z-T!v$u1v$`uQ)}Gr)xp`)f@hrT#=!Mc&8Go2<<&1BxC*@mPI iL!CJ27YIkk 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 Q?EKBjq;b#*@#@_F1IEKCLI3~& literal 1006 zcmVApigX8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H118Ye{K~y-6U6WmCTXh)5-~Y!sImyXKo1`{9U7MyKwhirOw+`w= zI~ihrAvAQ&%t!=Zk+d9{Lv}v;B zeCM3=|9df_(f9Uw`MnR%%Y!)Q&^aehor(vD_?RTi$0UD9A)+XIt(Idnp`08&_~5iMI!Qdlk;?%nLLdNx;zr&rEd8>)S1w-o;Jq_f z0D!jv=(RWBc{;iO&7S;USDlc`}_860-{<8fE%ia1@NkSF*8 zT$KFa+GfnLER}|Q@?m8xJ(n1npa8%TaPS-xs7Sbl5W2Ck>F)|gyj1@_yEE*>$ON@b zeGW^ZNEl%n#)RGr12D*v%v9UPyM|6xm*d@rL7Y|#bpkM<9AO%!l3xyD48gWQzhCH{ z`R$9Y+EZUvzRBjhi=HGBwZR8}y=EVuoo*gXr_J^;j3J0SsmQ2f|KexS-iRPPT)r%( z`+6*=Sx1xcusJ`KR*RLY@cY_z=|4^^Q`Z;+4FEv;`la5)K85=G$8q52Ph$~VW29Q< zJtB4HW~L0?u<`YqfBges3^Z)1jV5Pq6N-O|^6gAe7<>Ss$rF$qQs|>A=R?V;)DpSP zJ;uN^Ozb)i0svs1i#T(eShe+Q#lq^M`1v!5R1cwTdN>wCk)0K}tF%UHl@k5v;-&j; zRd#);A;ks&C~vO2#lq?$$!0Rf_9xFB8bf!E_r$`~8t_lbMQqu=;{qlEV z!+m4-&gPm|$Yqvm4F&|`XdD)X zp}M5a-(kxcjLCXKL=+XJUMtlSI2(27u&ua>Ml%@81Fa@h8;?#YcM)C zmN*XRX}kz#HY8%YATxmjPckeuJjVk_B;-O|ffD9Dja&?gd16?s6p2+lL?nj6ajfqD zWQ{{R!*P_yzshA|i>^V(@>%iI!n5|ljC9YK>E?)GmG7l{t}YmnM_8|)$&A*|jht0$ zwBxI^_`-f-PPvoU;}m;dQ&W@6k4GAg+m5-i>jpJ^k7Y9JaKAjS zYuR_Trw*6|#kYHVdsBiAe(ISGt=Vljv8Z|J`jgj>kX>mNQ~Rp(Z6o_qjl0VJv|iu6 zKi_(((~QrFT)}IbR>vKE_^_(IvMlhyNMr5&L%t2?AIm?llz$sb#<9<{S%H za?3q%fn>;&FBx-7zYy*5u%&hA{j^lLd3)}G6QzIb>DaSk?V`rJmV&d#J=hiL4Y%BG zvcDg|D?6set%h1(X*lQqXy!7G4zb^SUW;TT66vkh!>A?nm z-7$GTYfbiswJ{fcbN991(EoCIuws?}%n$63yvB9|Z|23e+>kJTnzzmG_yu45tm43H zf)~G)bTem+9G?(I=Dow5b^uVi(Hur1yQ{2 z&)xc~AD_g%fKjK;jc)JbF^%W)UtTud`_KXP50C2Y`S8n$MHvB?ca>E7bPTo?#SP7O z=MCOXo0>A>K9qPbV6=o^yRE3LlN=Zf&#DqaB0-@!zODG<==x6QKz6DJI1)BV1HTni zws{4ousd%07k=UEij8M_vXTPU6wf*n`LoOF^XrADr>k5)L{gI1eea{HzdCD8l6bb~ zjBKZ(+)B?Y&Rct;j+`ayHSW7?z1|zMHk?QuTYBTL-FMm5)5OcdG=M zU7IAOt2 z=jsQuN07@k_G697d!pMGtj899y0^U#Nx5`q{tHtXU;hMbUsV=%&GEMkR)rv?inn+E E4bBA=3IG5A literal 703 zcmV;w0zmzVP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;HAzH4RCwBA{Qv(y10y3N13KuK@=4(D-~ao+eEP%i z?)5LnnUf?xpsNAt1qdJ}1}vbl`@O)oFMsxbeE<8xtLHy1yn6OyzqREJ0c>gk0*Dda z1(nTj!8ZT+_V>c1F7ZT=n7Qe-`EQ>6GI;aim*dC3W*?AU01!YZ1{7Ak68Q7`|Nfsp z{$7|hSt=3PCSlf7^Z)!~FaR>)hJf?}1Q6T{IVCR*zI^<%|HIo~7@9%g?Qb)X*a0Bk z&(C}c?j3*t0-KVO{nQ{X<;nYyhzIi-2mqkw1Ry>SG6bX-Ab`MLaC5)&{>76Y4<23n zzL9}A;LpI!!0_RZsUbiBv4D6izkdqMo-1$g59r6ge;F7+`1c%AkEGN(FzbiV3L`I8KU_Y#AXot50Y&#gTStU%5ieDf(-x&AaFY1 z;9>fFaVLGS^Qxgoo4_5002ovPDHLkV1oKDF5mzF diff --git a/resources/images/protocol/irc/cr16-action-irc_connecting-1.png b/resources/images/protocol/irc/cr16-action-irc_connecting-1.png new file mode 100644 index 0000000000000000000000000000000000000000..0df64873f7e19903ddf206194a86eccc916cd806 GIT binary patch literal 1818 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 diff --git a/resources/images/protocol/irc/cr16-action-irc_online.png b/resources/images/protocol/irc/cr16-action-irc_online.png index c5678d1ef0541fe1c9c584ac6b70b539db4a6c02..147ad6f3aa86f373d5d707da3db7f497082669aa 100644 GIT binary patch literal 1703 zcmbVNc~BE)6psNbO0@zWRoZk3(WaJcc5{-Hz~q$F1i259;*u<6g=EuYF#$%bpac~U zL`M#f0SZ>Eh*d!a&+(vDiw;_#BE?#TfvJus3MYF=aG-M$9v>Ec@fAWmj#3}o`}Lz2^(TTDN;S2f&ywIl7>d2 zh(7DkYFIlE+zqtD1iWWV}{8pwoB+^xMFhe60_;R zmp%F`2t}J8~(KY{bhg7+Dk~LxJluji`xGDLt4gd9i^2*V@5tGupCy%VF*@?M;-_Taz!$}fCniAJRVm_ zpRm>cpRBP-GHh3S{HI+eMPv`Uwr`rBJiHkn)I`pVg&dA5ZP7Feg?d-5kVe~oJ+Uh> zbPh7-THDIb?k$O>U`1;GX0MGA1l&qg)94;|_Ry-DXkQl6o>xv|QMb$G z*7;mvzPwjccerT?5G>J@Fm@YleL3@$l-LzFJvSX^ZQ?+cK!D2s<-QGjTP~F(fVSoO z+zi@jN`k^IB(0a2m|84nL#xG`Lc$e z+6$US2GT1kcINR4G`pq)9(@mf;HKgHQCi{77XNu4ZSZN{*V|P#t7MrGsDry5cgmZ3 zianT{HTy??Nv4f@+1F>H{>WO#oaf6gpIMQZeSf2afn-5P`zboK#ILl^DZQ=V!J{!^ z9Bv8A@~A<^%v-OXd=TPXoo-q+Uqg_Ya z2F?k=!$`2715uYd-NHQO&cO$chii|~BwKyU<{mo8?2KDI6x-9vw53K|!#s<@Ele-~ zlN+~pKJF2AFO5<851y=e2KVoNov@Pjyz^w-Fh2iDVq(Uz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;qDe$SRCwBA{Qv(y10?_;fM7^q)v8tf$4{KNfA;+O z|1aOZ|G#O^{{Nd#TwEVr+TegsBR~K#gocJ1oH=vm{a>I{KK}my|KYd)|F3`k|NrcV z|NpN6>GMzD|98)sIUkpPfB<4xv2xY^pa1^U#h)03d)E51u~%pH0Pp;qxB`F#ZnI`~#@@{hJRA+|MsC zcpAww$ScS){P_El;qU)%41XDZFzh}$|G~^T6AJe%`M&`mfS5I{ogIW#v=!d{MA!<# zx__=Sgu0n9FmgX)c=mG>!;_!u7#@6I%y9qPdRFEPCQwVUD1uj63+?$>38&p$sheEIR8 z;S11`r=M;!d}Dnk01!Ydu)w%>Wc!4(yEnxHnFjB!ZF}(U_g{s#K#iaO+-3Ow`xC>D z-~SnYfWikD$RHXNR&QT3d;ka_M)U*)Ob#F947>`mTJO{=8a@#C@%uMKBUJPEUkC$E zEMRB^2p~qB2}FU}psek0znme11G23k`r|u>59il0Ogy`Up#dO(7zw5Ez-os1dVUNE zFYYruczA(f;k#!H4^Ay&*Z>MUkUT&D5tUB@+8EAR diff --git a/resources/images/protocol/irc/cr16-action-irc_op.png b/resources/images/protocol/irc/cr16-action-irc_op.png index 6b14cf14a6192dbe12ab48e93a12c251096b7d1a..dbdaf1af112bdbd91ea260e9dbe038aded67aa5b 100644 GIT binary patch literal 1946 zcmbVNeOME993M#t@ggFUfZ{b@5QOb+ugCGa?S>2)!kCj1!M&U?*>-a~*nkX)e5FuG zr$~`fWSB2O%1a9P0+p4eu0}{fT0BY0Feya{?51M<;nN@8b9cYr?|a|R=llNL_LSsh zp3en5N1;$WMG2^cT>Z$$$JK>=XDyo^ z*kVwu7hpN+ghB(BR+ubR7Un7=RMglQAj*u81X_%c17@v8XGF}=)Q7wXxp#=^RN$cs zksD2YDVmx?5PF18HIz$j4r{9c%DH?)??j*DKMG4|2E`MB)vga7}R7@*m&fLF`79>N5u!qrKgIDhtdPrKbK@C29t1NXNC?4Plq=vdd1!nD zpT}h~rm!NNk&x?@*pyv0X_v$@`2wNvKe33wfXNBmAjNUbR0pKw-~?{W!S#S3jRPzZ z%av-KLlEL9(4%-!%%IN4RPhE}3p~s)qJD}8AeX}c8EgT>d=xnh!b})~1zcFjM7c0T zeT-H8pRCbIXXuXh_*c73iO3#wY@akgd3Z8Dn2wwo134U-@4R!EoVm|MC{Jp>dSdqq zO`y>C)7aj?2d3Ii`?^`Xi?{G4SG+&);U10)nYq$=@7=gXus$whM`!))x!(M?O<#Dr zZ9lMNx>tnvt`?T3gg1Ln=w;XaCpP3H`po*Qfm=SWH?XKJcerpbcXhLG1wR73a;T@r zf8y@Yy}rO|_5RV=Ekh;Qks;`Hk$tQN^$~S#b(#zTU0m-(#j+wJ$5Zo7ruKzjRyWpa z>d+1LTdl@yxI7Zg&X_T6IGA&~BHi!DFOw(<6;Q|9R4`5ArRRBG`n4SPlBx|z&gRu*;R=?tr_U9Oke$V9G$Iz zeVi7J;3AdN#jK92)=ALi# zzjcg#?Z)TZu;o!fTlowmUylLUHEBg;qs1wX}>LEsc?hwMPbyXTDYSyjM_t zXkDHCd}-~W1Mh#7*6#M>rCnw0>lbR|=C;gl*Rzw7lWUusyLV(*u%x7ew~R(lyT0`0d79GFTrl^O#rLb{*-M}Y+s^K(_C2a9(O%#s9++>nT4j|U&$MLF z!otGN{5o=WkWhpKbp7zdTqH8Gsy}F1TL3TR<_mje?we0{{`m&SqyDA(l9IRYJ9*46 z2;%21m91LE8`!cI+-9-(Ef3l`y>j8Tt_H}%%S*uwT7ldhl;kZ44es_cny!xLc_r6< z_u|iMPLHcuvpU7zeh1??ukYL`NcGiwO@C?d-HC~bC9}&C4q3B$?%php%q~4xogAYn zwx4vbSyAyyB62xzvabBtvGJLWV;5Bn*Ufy{IhOcio7>?ztr@RadS@i1aMTAsx?GiB zaeNXkP;&14-gh)Err7e`Qfpg9V%?Fdm9Ay7_TGhMO~tLUKvB>Y+MgZCLq#Qt_8;}I z$4Loqb7$p^#a)Vqj{Lsjwi|Af9^&lZOv0rh6KB?J80l+`b)G|^Ixh~JF|e8E_*;sE L$>=fu+E@Pu*c<-L literal 651 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx-l>?F?zZ}bYQzd$o?e@KGbN~POb>3;g1NH^SY7+U_nz!3ah%vATJXT|VR@Z;` zGxxv0f{8zBQuzuff6H-4~H!Y=cS)+Zv#J~SH4u5zreL+3GfvH}w@drx=KeO>+Hvwsdh6AVS|0YE2SU;8V zg##P2f|$V6*qwycmQ5 Z!!NbH|98!}tpZFq44$rjF6*2UngIQ11^)m5 diff --git a/resources/images/protocol/irc/cr16-action-irc_server.png b/resources/images/protocol/irc/cr16-action-irc_server.png index b7a3cc24cbfe557564fc11435966d3feb607e188..7a19deaf0169668f89d6dc050e2375dba9a97bb3 100644 GIT binary patch literal 1903 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 literal 919 zcmV;I18Dq-P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<4M{{nRCwBA{Qv(y10?_;fLK5TBO@b<;QSr`6@XOz ztLJwE{{8(Uz|6wRz{M?afty!oVxkA*0+>3GeeX0|yr$7;{4L z*U#@5-oAX0Fn8OZ`7k{I0mOvt>>uAg&)>18o8i~bZwwrqybKc3Y7DAc)(nCoGGGHh zhVk=qGB7gyO#rHQ0O zC(qwA96WrUfs>n$K}%JLft8Jw;nov|c%aq;009Jc!H2hx`neci3A}oCn*kJHBH{`R zHV!Tf+RCg9>T(^S0s{ODzkUE+#?ApWl#zjjnIQnA7a)MZE&ytD`1ePe;pNlY zK&SICD5;q-aIpPk`1GBV;rS~Dh9|H8GyMI}$?)m@O9pl}W(J@G7&zG(1VDNL0tjrt zlZQ7M{xh;Nu(5N2!-J8DiQ)OPmkggi@i4r6^N->4$9D`*A6{kP;o%2sW@QGdVF0Bc zMh1WY0vqu9<%0vvENl+E{GtqBzq|*A_FIO#cOEeO{`rC7#q*a8-@knVN2#ZOA_E%> zB+$Qq|M3Cn4hDb#0&{J1^*%xGTyi=$z-|=2rkk89O^CgSMdy!|z`| z82AMQ8650^(aFQWzzhubOE+JEEL{lF3lKo?bO1Eu!_S}J5>w#&Gt+?FCh-S_eS-00IalC9YdgbKuvHuZhndU1RwC=`GL@UItEJ zaC5K$z4`MO!|p?u7`E>@xuCtoE)k{&Ab>FP0tk4AS117eUC+$S5+EU?BEb0nAH$a~ tpD(bnb55MspMsK^00M}S((DWnU;w8c7Ys#;AG-hm002ovPDHLkV1iwJie3N! diff --git a/resources/images/protocol/irc/googletalk3_131.png b/resources/images/protocol/irc/googletalk3_131.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed26c489d43a11360b8165ca8ee231e80d9370c GIT binary patch literal 1895 zcmbVNX;2eq7|w_WJdm><;IYPA$+0;$hXf4Spb>(|p%E>xCMyKlY)FTv49q}RzwWlh}iyc{L!7={l4$r_j%rXHX}T2nrlCw zeiRDDRX!b#AlE_Ur-*ICZbaEL=$dp7RzK}2>dXyqj;|owgjv)zX1d6EBQfg3t z3dJc=6Qv}SicpaX#~6r1hhfHaB$`6;4>ao#)gqJt7N7|lt(f*_c_j_dsKvB7JOxXk zlcI^5=@va2X$gx`Sr(~;YFc0b;BOX@1Q<#nfEi2H8boF>?Gvwv+&jcf8t_SlSR|%( zJEc^F15#X%0z3wXu3~{806`3p%Yz`$4`8!EHj_o(5FO--c#w$A2R>gk(wbhqP!s_N zf3`)Q#I!_$(21B#lgY#|aTvHhfe8wQLI($%O(!+zhBPgKnCV)>=pF_bHK_C&9ihRs zfP)cPfTt2-8tG|w2$)Wx_(H5Td`=XZGNu{PF+m24iD8boK4}|>2=re!zN&4AO4Fgt z2-JY5>Q!Vt7LM)#lezo0A%`OAjcBG`Lly-|hH+IYhH42pET)lP7;24L#NrCbEb_T5 zKAQyzKv2k+@Phb3Tn-G$U>O|L!|^q&jKs(|0+s|6a6nK73ivQzD&a`rU}2Di&tdmq zcPqi{UArvt(haRN6a;yOSY2>}xnh)Sb%2qroT z)EzI3>NQ4G9jwPO;8TW0ny+}k;zMi}nU6d$A8+TM@06ZWBaA~$-|fNLAB(}=*i&_I~h-rGq*_&OQOt;$8xd6dC^0vyWXMl zoMW2ueOTF&*Uu<}kchW6|wzT-soOREgC0loTLGbtqVX~;h zzE%6y+zn6hZE3a@f!K9!T{gr#QO2)1T~^(+=jQA!QSSb2Pb&P~x(xYEd2d`Y!OoEi zB{V2wc9rY~z0n5eg(vkrOt2VNf76$BSgqE$kh&{&|AJqqz1{}#hHofHOVPE>ox8cb zraC6%q)){iXDZcr;9!R@z1UWxJW#7l@py10|HI20mSqXd_m@joy>vI;xP`l9b=i4? zFL@6QNrI6KZ)D?(OV^sL?V~O(_CI}o%K0&~=C{7DFqIYit7CA)l0L#Y*+_kQ+jsTH%Ukc+YYpxO zqA)UN>e77cfP19__my~Lm>#aSOjddfZp~Vq@5anLeY4pZSR3iJAvk=7tk}@vwEx81 zoj#G_+RimW@h)dRS^*#LL0G0f?GNhMzHJ@xMK+-0l`|`Me!(7J%P8+*bph?q&(;Z} z@k{%v%=^pxVDxd?rvc|)R2^Z3rLTY*R-L*y4)CO|m5pfh6k(g?(qiSPY=vT+xoy)i zOT~`wmssNh%Bm;byPXzq-8*!jE2o*cvG?Q{xBS(W_ucM1rDmOu`!HvKYn4lE_3zK8 z!_Q{UazC$35_v9rTSMpbu~$hOS{s*ew>Q{do31Hi6ouQeiaPImg46w@m(Pnmp6rRp zY6{#Gt416u2{~gs+IIErxS^pe@}@XH>n zsY|vD$(!9$*|28VQ^A3x@dtj`c{fe^(EIfBG(#AkK0n~PK*^y43!kFJG5f% zB-*U&Y0sw}?7MxpU+sf|Eu+tdyg!=yvE$>9k2^1{KTvcsH|+iJ3%xR0#{6XprJe0v zTwWf~+-`47IT|B)7NmVUyRr=OsqNDJt$5LX{_)^}#rC>{-Pzxj+4}wf#rG+_{ze$r zWPI4v+kcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`GuBNuFf>#!Gt)CP zF*P$Y)KM@pFf`IP03tJ8LlY}gGb`4?pZBPB7%B|o_|H#M)s)5TT^D5IB>nPO#NVgU?A za}xt|BLg!FLqkh*M^h(rClg~AGglW^7bln**z_72I~$oBI=ea=S{NG|x*A%TyO=vW z8aukUSvonI8yms&dgc|EB<3Zj!tBii+G}X+J4M zS?G21drN}Tk^ds|gwK8azl_s=#e?eRBd>eeD(t7cs8!nL=p!||F3j@nrl_#rQisas zFZ}I#?rJfUwa%aUx*hU@)%)(Q3EO45XoANPmWZTaA+BCm|J5HY^tI1MY)n1D+x;Op z=~DCBw}}rmdF@sju}&=z7RbLfg+;aPBlE^tdN;LhhH5MiEY#{?Y5vgo`{}Vmk$;=c z+?&a_I6>}HlirMHhc}zbMA&j~&zN)HWzDv2=Y-GxnxI^w^jc+temYBGNDQx>Kzi`& zPS%$lX=?3{V)Yj*ezeF~5Gjye`1}wH+cH19$#T+iFKv#*ub-oEQgS!bQguYaMz@$kXbozhxM z8eZf+h&dQ<&wF@l@!T#C-wWCSo#kzky7^~T)t-C0TFz#>&ZIClS4*9ZMF#ioF(2}} za4W90?t8S;gQZsSZ0mhE_jFW5d%ZJRapk3KSMaYL3GZe0ZP;@BpLKbt$c)ks-*}-H zjM^F3j7pcyTVJ~_zh3^1{qll({bZ%WiqQI$ZC9darp!!EG?w<< zvPE7nAV`&Ohi&Zdb301}j-6Yd@a9KO?b;sCV9&KKp1VXkx{3-pZZ@v4+Hvv#_rK20 zn~g`6j`e?g-73q!%JF*frUkd$yl;zF3%>YKSi3JR?&`$DHnwIzpKU$2H!eGE_l5|` zRqyBiDtGB#FS$P~!BbC8?S!;1 z|Fna0eirL3S?Sf6{_I)*7BwfQKTpzv&P|Mr5VU>J+oiVC!Q%Oj(8-UkYe;srY3c-f zgs6Tv`o47Qp$#El9#qwoto@wV{lltq`IVJZru-@8nx6hYN-loFvg@K{yN_(o`p;>= YuymdKI;Vst07udf;Q#;t literal 752 zcmV5r00004b3#c}2nYxW zd&N*|m(`!%c4ic+1K@(w@xC z({?Mh1GrO{|4>^SluvKD5L)5unQ+Wm5Izb3K9&=u7n~?Tjc;ODV>A=MO#m6|gjoPr z?d+2C7fj$J37jMivYaSB=0tI6K}*L%L{0ef)|osTfN4bof*V9|qNH-7^p1^OulUJ{ zQo{^eg3#hp!koWOK_LKW%Y*^vA#kE}G15}5GDHLbuy#+~_plF6mDqp4o@$ZDdn1J= z%~5PJnVjE(!8eyJ@1GhpE$=hAQ0aZrp;Tqo0YI`q=$TI85cBWXE|qwg?bzw?F7C=L zuxvD&F*7x#eHrRZv5vpOnc~}@X3ValxvH(p001IN9>F(iKi775F&d2$5z*M#82SBv zN}%_7w|1b>SFF#l`bVCe9Vj?{u$1L_9sr=KDilRY>gAP33>Eg@=k=LY1y-A_G{^1c z6Wm}hARdn=b%tS(?s9F@XAF8`Hk(uRoacG;_xEFBVgdk=mX?N`tgO`9ni^wAXJ_oM z9o%SczM{oqq{saHJjt?5vMiILDAd!{HTusTghHYA;h~{P{hiHbgCGbH1OWizlYzjn zUSBl<5#d%#OYMh|ky%=UIa!XiwYK&htFC7B{^UQ<<7|EXjvTl9n&fa~7>!0tI2;a6 i1_FbPO-=XKdj9~Qg+MtaPe79Z0000D$? diff --git a/resources/images/protocol/jabber/status16x16-connecting.png b/resources/images/protocol/jabber/status16x16-connecting.png new file mode 100644 index 0000000000000000000000000000000000000000..4fc0929937ca0ff5d61e90b6d059ec7334c600ef GIT binary patch literal 1937 zcmbVNYgE%_7_NdiIbH!3!C`C_MCc{GrL9zKn>y;&u0lDo4TaJMDUznP!4`BX^@1om zZkx(HC>PnJC-0i$chgZapwkM; z3pjFy+#o?xbWxc`Bqmd#(qt~t@U`T~*+7IvKoFn^t_Cb2a`!9G^nNwJ+8J;^(M+71B{q7 zMx6oIVS2#Ls7}JtaUq%T^mPcRK`wtotTzoLibxsVqBhV$8iS6a?zmoQoA7AlUpL;W zZBk_z5PCFX!qSZzq8`bVK`@cKcN=mm65a?tHtL9?sMBCfla3;KTm}ot#21=Yrxh^R zJR*w_n*lKyTpkGWArVImiPTOoS8H^7 zw;sbwd{p4D9Gw$Sw%}--}cFnT}6sW3(PFveBao5a=)5Z>;b8J|f_nzTxz9V*I4mmz9 zuZq035%39UBM*B{DZ8!Q{q5jPB*Z z+ODuEBewSY>&<6#o%F4JIMkCj`bOr^ibJ!#s0+LqPalkQd`i*>W|al54h%cvYEHuJ znC%Y{=xTv)6@})Xu3b>x?P;|a=JvF%Jr?>nK^#u;OhaeG8?BDrzUCQ~8|N#N#_a0m zf;quwV~z*0io+^6#$PqIl=PY*NXUqO~V(?k{9- z_p7|%x#TOn{lwjs0nq2QM}%2-pJaV7dEXq)4pLMwcY0~woEsrNAI8@XeV}CaD-YQ2 zR__!}J9luZ{#3z`nh~c%Wv7Fk9@B$LuK6EJ5iA5|--;P>TqB(|4EiMke(c}i71Vri ze(vvqkxx5&D8l^qu;upBk-Q(qwoM-1m$~PUo#VSYf|JVbIYga}6VLn^_UPI-6R?$| z_Kpjj5z`cLw%k7^&2wka4*yH({mRN!V=7v8%GmMYcIyu-7Bw~2KD@jjMA6|ok>!z% zgmV^Uj`5Q~IYIG8D|$}ZYt5g(b!x@B!uSo>`LW4sc5@mXea_)jDm6QMS@(KN#OU1p zPtF)N&n-7}Z+XAAu8wJN{`tv~`ug5!?Io+4_Q}>2*yGWehd9h6M}4?&^Gen#n=Oxi z_sM>Reo5ySmOp+z+rvm)(AURyyjMVq-je`R&oiHz>SOo2%Dn zXW#d1ZEd~kL}DH1w^QyHZaPpHYO;BGL0Os3p4}W*P30%gFQ5mWYa1TzY0=gx60i1s z_4j8rGiyUkg-`CZxAgp!A5nEE(bMup=Op^Xu2||fo%LH#^R9V`si{?pJbPzDN5aDR zBKu#rv)3$i(F#T5E$98JAw~5%!{=-*(s~ yU9suK{P;y%3kqB<8v-|UkDWrfw}RrthIo&pXdG)K^KS`NX0q+whTK@rBjS9&C literal 0 HcmV?d00001 diff --git a/resources/images/protocol/jabber/status16x16-dnd.png b/resources/images/protocol/jabber/status16x16-dnd.png index 2655057794ac711330bc3222c92c484a73406b0a..b9c18d108648e063c05ac49861458cf5ef69c5a4 100644 GIT binary patch literal 1938 zcmbVNc~BE)6px}Hv7#U<;I)lL3rLd9N!CP6vI(RRM2I#PsfJ`BF(ex|3q%x=2r}YT zs(3&ZEuhw;T2V)g0xGQ+ht?{fpjJiE3QBPVL9rVJ+s-)t(VgAzc;EZ|-toORyE-B~ zco^A-Od^qn$wS~sVjfL=9z&doaRHSUKuq4aRE0;Oad@&CLr5Ym8jApOqdFdmMAX_P zi!UMq63I!YSE_K8A`H@?Mw;58L$eyq1e!z=1X;~$jRC=dSR`I=5>lSo%PD|fE2MnI zQ7{x{38K@7q+m!?O1M&!V$krll%N@azzPurMg&&_R%3$60$GKWcf1g>c8KW|;GGI? z5K`VdrBXxy5)?xK4viI{VSpgO<}Si`VvK?jBZt%=^%|kHyRyrz0Iu7jSji``kOV{2IEpDzG@-u&B6KK@T6CxxkVJ8TFBEEx-sBMY zIxgsayfA|4lMt;8Lyf?@3`6>lc)(!&H}XJ6APbgq*(@=O%K+JYN*`AHf3ij=oS{3) z<6q^{FCuEtvHVc{#O6c$ASR+`Frqo~au;qOdagnaiGu5X z2}vdLkXRju(>qs@owlyHm$T{X!Dq@{MD1tpOr@4}MfCg*7i9m?vJ!x85l88<5uu)u z-75p!iDrao5gS3W~o`$+4$^xi?_Ywm(E=JdaB)T zs`JY+9d^{Pc^FtR+*8~>Y2d-MYR#jot|xYvh)hb%n z6uSIj@MFYIx$Da9Cww)Y%3d{rw&Lzf&=am*NSl)fUwY914Ewl5b-}!^ayA5&Cs&+}} zHW&K#pM4|LPRYyh3?6Z;RoLy`X1bG<$Mw(u_9(cKN`nYLY18 zQPxOJ>-KLmKvp;Zb*y?iuV9(xSkqvap*B`qc609drSY-?j|NzBaw4NE4`e(>UM>><_>q;P}^3ntf)^PAWXY|8Xi5o zq9jDuGJ#<|^iG7FHHJP3S7LT<)%2zj2~3l``EH>n?s?ogPZf zSUkDo-XB9X*M}C9!#7NRF1r@o`0eRtpw}k!=B%;J;=gLVF?l=LZffwn<@(B{Y?Oaa zWm;-`c4f)>N!@v>SB>BKm$hJmT>qZ)BX>mSUrNmMlGYrmxfUGen`y{79HjB{O8DHZ zF27@hNz`KYn&_7GATQl;SA6M=vN*%bSdm*~2w5pv!Eeeqq(67;V$Xt#w>ET7bME2d qv(x!un_lEU?-~TnThkM~VgPA={4&%vE%LtOFDaLX!#{}^+WrP$*92_< literal 650 zcmV;50(Jd~P)5r00004b3#c}2nYxW zdBb8Vv7l;6w0(k7*P3E`?_pa@q%3&9qFibWLBV7bv+g-8&s2AqWyMbHoA4-|!FG}FwejpJ!GGRl{9 z;4CiZeO}&kxFQF;o&)3ly{V_uj~{*IKWeb0VSngL@F;Lb@=srX2{fH;eyxZ6<(*VEnO&CchL9-pN+@_z}s`T)K7axj8 zXS`W%-9S|-8JgS^ZaR|u4(is^JGN)qx^4z@8Bx{sB|nSQ0aJi%@eKy5RYTcFUhX6T z#{kJME2Ffp4=E^EpQWNv7W(@Ej&HEbjT3=^2wnSv;Y7A diff --git a/resources/images/protocol/jabber/status16x16-ffc.png b/resources/images/protocol/jabber/status16x16-ffc.png index 3e553ba963e2f35734bbab9f8e1a9d19cf439b83..cbe204ef80fe6adaa181b4a5394a1ac49105b9f5 100644 GIT binary patch literal 2047 zcmbVNYg7|w8V*tc(W)R3RKOTuMGm=4NG2C<=7z*g5JM2eqYx$&5=}BO2@t>w#iD?% z(iXZaa*<#?LWQEOC{&9Wnjk8dQgKPG;ug9JOVtWp5ehp|u=~T)A3JAezVCbIeV+Gz zrZ6^U)4Q&#T`?HUyMkz*7+qJQkGqQ#`c4iY63}IpfuCrIL*#}`sSd`lWk@QF6R4$W zuo#xgvi9D9!!Q^}g;J7eNE8WK5TYhZ?K(uGT8pAFn6OBrRtoKb4Y*V|O{odTKl!>9 zk5kIR@d-2$S)}E{3T1S*4vx!?kwDpdAf^l-8G#EkvQPpwY>?uNYL!OMGKS+{@v_jp zT};B`Ua1)NgyUa3l_-kEaStLG!O)WaTGE@A(7D=Bmh(v4P;U1 zxVa0DTGPqoEHN)?&K7zK$14m5EsI3T%*-Tah7b{58VO)BnRX5eg@9@h^jR8%)JV|i z{pJ~XupZJWwFV`k!Pyz5sYtpZ9FKbXIs~;=Bzi-v(a$9cO&Q53)sg@rnWR?R<9em7 zH;Cas+<2?DUXrDSNn%)!r0XEG9&*2VFq*qRH)K~tyq@&Zcqb9BK#;Ho%|&03Tq` zd2}v2gw2a$a@h0`$~;z}(Ho>12%fjAMD5OD>3@o4adoiNfaoL$qMGl3SOsE0^a@0a z$uYV3jy_5!_*mj~;V8L%u$hp2I{GR#uG#RD=Oq>w2zE)eoMat4_Z!T=at zI)fj=qcZ^f99H)KWQ~M6L$bHW|Fp}z2<<`p_D%Dnhd1K`YtWg|p~F!<9H_xy-XREh zY>ClUBH1bQj`x`P`C!_teAd(BG?i~lI&@jWFDkm2cY520z}DnCi!*KHuUKfj?fZ6* zq~zF|UT0{D%@d+V@!G$SDp3Tv$CZj79sex$@OJsEJToIhe&x&2mAn0G*Xwmp%Jsiw zc9%b|s6N|oT{;l(+m3_Wy{5D+QDZIO?#X)_Z+!JIx)9o`&vpxqSaXEvnuvAP39jXP z+>A_bs+Y6IvU@7C(@u@RN`Xze`c_2S=N~kloABX3bUEL>Jifs80(n?qS@jQkbFDb7 z2mVj)(p@6e=hq~-=@974yIHBtnyS_w!c)1e>BORc=Hxx9P0tPOsBo?kMzn3E1_T4gT^Cu1%Q9Ge)Ho7CRIIz?~ClzF57K7l(mz-3cy$_pb~ zkz4nyV>Bx@cnS=iNzWaPzLByD?CNp5l}~?f>7=#asZppN!+)D~|KdZRk_pDgwgvu~ z#a}t?=(q&yN2SF>nUyg=om=zO~#+`>b~#7aU)q?G7Rbv`K3?W zS3OnY8ANNSUAW?C=eZ$fanZeRsP(iI=2Z^mOq2WU)%c!-oTJVoX2SkumzJ3#TChdW zLSxQ+L;RvEXCP+!ohz+E%V5uKMvBqpxJZW+BfTSDJ z%Tn)xhwhWkzj@9G`n^e6KACWK6|`P{X&!yk$7#P5*% zYK}irqq_8@Rh3^B!kODs_c5yEHL{ zRS&$17euEm5$=mP)buroGvu!s!1_RIWBhveV@JvyWBckHr?Dr0x-wfCw59htx6IO% zfA;#?4Hdt4cpPmqbwobZP@>!-HJ8@2a#5@^>!tU#=KBwTj{a540IidURWc z3(Q;CvX`gN<~Ck-b4z&6uM#sH0uH*?l^?03JD0C(Rt*L*ZkxJ?{Z15>HYL8_73CW! z3rq}HB3b|Bpu?==ea@%reKs>^WhT#p1CRGbI8@YGekWYRcwIQ_xx30|-2O`z@MCxl IoRqx(0_;&Zp#T5? literal 800 zcmV+*1K<3KP)^ds4LAmT z_@3~eKGx$cMM4Qoj=Z%Up`O(fib&=Yuo=Ao=j7mtl*I~Rcfre zSpXce!Fw37Nq%kF)*oceR{-L@2VmB@!KSSL^Jd4y{?zh@nRML0(VKAPd7|AcQSSca zL;p!(K;*lYJ(W}Q*0v3G)%O9YYSPf>X5jf?dTXLIgU)+bNJ?>;3Zq5|Z9)=uVNE^~ zSsdd`X335!44|i$9FTSANBbjsr2}dU7i6x?{L35=q zlbW`I3au+U&!sytzTI3#v;*xpzHfx5ql$}tAn!?-ofbyFbLMe5^pZentW*|}M|n^ZV<_xIE(YiwXg+4f zPk=e67cx+E#^QlA`&A42{3tqv^CP6 zhnUscNn7+u4i-?93*qrR9uLNjI>1ywP=vdHZ~>|;F|fdZ+Hhw;urN@d ziFnl*iI-w_ElD_l@eCvQYdp|EDoCw@_>g)caw%Ublqp4Gn6DPYuuuX{V(tGYYdqQ+ zUZ6ex(=JmYx(5T>SIti!UX2gtq-Tbthhy+0`wWA@Y|yI}7Vp&~mL=PEEsJY^Nwhza zRU&JmA|abrE0|#cIaMi*nj_m*+>V?6%a1$tg11HP8AwFQLWeRek9Azo@Rm?v%B)+i z?u3uT>k_guyGI)yhx>kdo*3&Ma#i%VjxMSnl#L4Z89#c^liNFoll{$Q-X9dQ<4SSb zjc4T<+}kc`NJ=fvjF0yCM)k?N++Sr6S6bN>J-0@(XKe2dZ+onl9qq%ng;(t((rx_xXHxP4=4p-)E1Eu}IIF^spGwvh@c{(qNbNfGH;C zKCAQRJ5MA!Dt>FyrNU2qw_E;fsa3^EgX?+{!ZwD4Zp%y=W_4B#tqVETQA@V^Ll0_N zYLaVv6?^73uG@1qrTOyk=KZ0*YiT#Usr!S57bM@W`gC#AYGd@RwfElJSl4JgudlVEA!mRp@9kjk=wktWd7aWN^ zb8JTsxG*lQf9P|aoGGq*IH$3!kRKmcc(j~V-=E|6`}Z=s;yZlH{#szh3#m|IH3FBu+rfmhqd&_&@6Y(w`e2~t(7DKU*B_LQ?KU^ByjXbjdLQ#H zwDGFnIr@0R$)w=Q57P!C{bv_9k+Z6we_?L+jYPkLGC#kkqADt0T-J3&L`1}9c8Ln4 z5r$JtZ&byqzo5mfj8g2=p4G K`fKHys(%1F`(`Ns literal 433 zcmV;i0Z#sjP)Px#0%A)?L;(MXkIcUS000SaNLh0L00Bq<00Bq=mU}uY00007bV*G`2ipu54K6az zr)cp200A{gL_t(2&#jP8D8pd@hM(_aSc~#4?IKf(VX_N1Ev+0}cR(q%i;E?5;2?(` zBo~U57;#q0#ZGe560(ECBL7zGAdx>ae!tIw{dREVJwDIddwAimDQbzk9QEhd+25+C zM)tat3-+bjRcKk}BSy8Q1#|XhEfi``sx@Wicn0uV z>u$;oz^R?fGIpaDO`ZT+tb!ME*icI=7ZTK{;~+;Cf_bm|H6J)n)CdTG1-DG<3J-J# zb|C8E^hH!=9j)OMNPwZM`@T2*h%pVIXFi3=dnlZOp9O$OXHC4eM8*zp^~CF^5uDxr z=Av-SfNDHyaHl!Dd+=>!@>CWIPJ1SuFbuQ#vZJ^_t%bp1(Vp8}-I}zCnbI~RQ8GUE b!N24SU*=>wQhIwr00000NkvXXu0mjfD2B8^ diff --git a/resources/images/protocol/jabber/status16x16-online.png b/resources/images/protocol/jabber/status16x16-online.png index 918cd6e768a36c9f53953ef6135f783027ce4225..81b2cf6fbb0ed5d188e2210a1644a056aaa43b82 100644 GIT binary patch literal 1867 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 G&iD`d7))pY literal 800 zcmV+*1K<3KP)5r00004b3#c}2nYxW zd z3@6b=LDGd~Nq7q?4}ro5e>a@gM=*>lT+G;jcp#?=G#p> zpzWgf`u+Xh?|XPS?nw7L0B&(#@>THJ(0$I{!uGkT8KBx(SR01$J)DgZ+Q zpR9^O3!Vw!nebM{Ghu>ff*eUzB9d6k?l7GMX>8-NMl)<|Jt=DUe$E?7s$TsLpCnlyB@(`JBSDa0|WLzAeh+5Y|!5KwbVP=OVLP#wofXRB8S8ABFiZP zm&^5qh$s?^5T><+X)VnK=Kc{75lNDi?CI%gCnBf-z-F`6n9b%o04UZKqe!KPMc06Q zy(U+WAPB+^Q525@fEoY{27_2uR#pH29LM26vJTg3uVQ~`Jpf>Ha}ylLf#WzuqSNV$ z6hSBy`sDZfmkb6&1ptg$9-`fU4n|!KcB=(k@%5rbZibDWhPloRB0@ME4r~c=czAd+ zlgTLmoSL1Y`ZpFbdg_%-F1x#lh{)}B`#L*24O>ENZEe+!kB`sDvaCqri8wiC?$e#m zcge9ZLO<7*$>Z^S@9*#L%yLQ(0HCd{O>MPW2TdkZOJQN5$n(55TO?VQB}tMNy000071Rp|KB}QDf>0GjaS5ncg;H*#QH+#cse;u@?nJ@%hpRvCteH9I?AhP9-)lBU zgn#bpJl&Z@BDqRKVL7pqiRWV{N8)|zk;Ic&rs0xkJQ7R5)0BFYBt)=y6p(6^iKrY^ zBIzkD=zJ2%AxW)>#-n9nd=;jlD(yN{qee%dNu>D;j5?(%8O4EkG*PV;PzLHQPyjU| zphU4{beT?!CaFU+^k`&8xI&eYtl}Y*1tGwEBcCA9ptuq+YF29ve4~K!hL=z5?P3}Q zc%yD2Z zs6nMy>u@!u1?-H{OWbcTzhS5Y3DWe&cIvPl&(=-};TyL}uxE%e< zjrVFB6zMvYCPxies$NCZBf)PBOyusL4cQe5Z}^M#YN9C0)i9Dg z_;ePR$Rfm|Lkv2H3xYgI$QD5&78B-3UHyNhVvig%&s`F#grCuMf$Rx5>tzbI)r3 z*U3QHa-U2vpwqPXP(2*!J%>GRqa$J!)m=yT-aAli&UQ4(^UFtyX@fU;woDuEmzO($ z+vi7SGan8%$?h!*UTf))?QDL!e%#)v4(_)C{6dN@?HF*38=gN5jV}*#*CrxEUA0fl z*{vB}KlPI9KXnGS9&TfP6`pa$T-sNN*2Q}03Yu;HtsY(@^I~!-6P`|x&}aCq>>LNm zg{q;#iT}>2`na&RV#d^c4#N6-W>dnnLTY>W^4t<@K6bpJ^iug{{vN>jaK8Jgt(|k> z-DL#^xzhL6B`-^A$nJ?9zYp$a#r@Z~C1M~a0MSg^+BELaskj>=xXJud`px8+yMmJZ z&hBW|RCQZ%)vtrr{GiZ~pLm;6PJ5Jn_|T)Q$tQ~3B2P(?>ndUy!;8zeQM%iYdB`bv zj4}7c>?PalpXJ4RFNh)Uo7u%C&k}Y{`HWg}nOc>UlHt1+b^X3K^0DG_VbKL7?OILt zZ=DCQ0;g&D$iUR=ri+TgYviGU$NfttAN}@0OWNBIH!C?)S~lDr{SE99MwgW|A=MrO>=W|+JYTd%qzCf zOQTHRE-HF>^iKP{Pu$FhZ)Py`raw|Zlz@a(mJug-pvqh^o>qeQ0TSu5D*&c$u>-E+PA1D})CRStJjJKRjaHaPedNL0UB&#uh+W+=&2cBInz)lk2`}@A}%oZSHlE1Pw^EHm-u&9ODwI4{pX) zcN=dQEhodicoxcq6MyI$7%Dq)!X?km8+Y>DoIAMg+xnTuZ|+ZNG-Lyf6)SQ7I_vhf z3oeM%Y1fR_#0^KQJ;^~YUJJH1xG(GO`{KTzxoXSh_~EC+Dd+G0-2Y&ck}KQc%{%j8 z@wN1sl5Ss{uJ`wj;MmTdPD6yobr*VY|Nb;vrMeGm&FyK7YH0}!3i?m`Y1QNYzLbUy zO#r{H$mPc?#+i~1-|RK#F{!R+y?4p<+^j&w&K1X(KS{0-p2WH#_CEGDd3ZC(;cUu0 zXtOjKD$RXMKezbYH=TIVFlVz-qS9w6+VT=yo U%dVJL!}g!8R1yx?h~jeo2d{!O^8f$< literal 787 zcmV+u1MK{XP)5r00004b3#c}2nYxW zd9DZ1_eUna=oWO)bWkB#F_ccd zhTEaTf;4A2n_7JMKz#p93K2YA=kv1YjGwI8P_V z)`W17?g5y-(tE%3C%AT9bg89AS55YNdvC@G0B`h65F$(vuv6ZzWA)pe0PX+~_ki^P z#yQKkXVCyAa4>;C*E50pnZUJlu?^|%LZ!cZkDprrG?t4%vVnsMe1{4Afj&2G-(Uj2 zk<|5JEt{`2_v|6C0zgqCJZn7DKjHZFBs27s#I(350+&-(nwk;A!m$u@-M=H^|`mr5ll z^D?||m91A_HS>qt*V6cH2NA*J@z~?>#5Vn-ip3&LOiVnka8*G#9DYwkBuNrQqfsIv zvfJ%MM6|lPN@lZ}78VwWh)7k{{OIWD5D`HS0Foqic6D_f1Ayh_Wq3RuWV2Z)iUI)e z`F!Z_@5j{C6aav8zE2dzGXQ=GOeT|PG#VQ#^Sa$`xLmI4h5vqI5biB8tP|Fzs66z`%gP>-E0YH0`ffh{a-` z-EOy|!c}ts0E2^rH8z`V%wn;eZfa^08DkBVAZePWs;asq%knLs&-baq`~;;jlC@Yq Ri+BJ4002ovPDHLkV1hKeUGD$@ diff --git a/resources/images/protocol/msn/msn16x16-away.png b/resources/images/protocol/msn/msn16x16-away.png index 67e3468f6d488a7ffb122bd78e30c7c4f5c69c8e..77887afa792deb78a2f85877564be8a746ff46c2 100644 GIT binary patch literal 2015 zcmbVNc~}!?8czjVi%7ttAc!4o3mTplL zq^^)%k66(K#0yYYT@kCU2tuThYD;kut99#z1q7iJ5qJOa=^s1K%zWSX&inhl_cH~{ zmVPqHE69sLAWV`if@1M?D*jBK@IL-d4x>`=Wf~T(!W8Ig%&IZN1hEcHfdLt!Nrhu! zjV?RmDl8-rJoE;o3RB6K2(&0d)wp%2HpGOZ2?SxJ&7{$$!5EMNry7hR(&IDdNq|8o zBE_-gbh$|a>kW%?%&;P7sZyJhrseBMkr9BhHUC0_Z^h&!&=+7>Jp{;wPF z)V3(IO)xDMwxF42Enbh+p<`e?cYkcit%!Rgh%p=RqG-|~RGW#wMob2YNcb13&Y%;} zSv)+8To#?npmTU2$mfdLQQRmN6XHZe(NNSF$2+kME|Wv&aK#{x1%lBaj|*`nVx}09 z@}tCDCSwdMGg>f>Q45dRHMs4LVmW_^6-dmm21CtC6ipxNfMt3VLoIsL1V|JdV6I%F zH5lE3dF}#@#tXq_Ll&%)no$IJone9DT^?{b3_61?0hyzb^XNP#59CR>yl5uG<$=&D|dV(=KBoya(Oex6O|q-i{A!#An8g4@bj!th9Z9q9k6Q z5FL1V#6n%uoOGt=wCp%?xExD>UbYeGbCt%KJrX@bFV@^2*xjXCF~|O_ zf8B@Hb!ozFyUJ}(H(aMQoxAx=-Cfifv_RSizKoYGES)*G{L(dPR@KDu@W%%>n+w}e zee7Lp%(0FaweKhY){%1?%UEAa^s{=(j(C6Jy3jMNWXYWR?Z+KQA544ou!`N?cI3+l zzf#}AiXElS{pYR^E!Hm|#7qnM&#zmnZ{?%*-tV&Wwz5%q3GejSpSt(cYd6}-6Vg16Di?-wnusCNoXji!so%`L+DclGJoiZV z%zBk$R>;$@+IOx@X|Y5P1%yqx-FdPYLKdrkdU2l6jV_eG`ml;lOf1+{1#*UxM#N82 zo`y?Rw-T#D6sIc(s)$8`l|bbcz8~3>UM>tfTziRP{M6YKJ3KD#smD1;ay+3?_WEsQV#SA8>ZX`_l|71cAN<`ct7GS za2#@7-+c7udgx*i3w+t5DsVpW)YQcn&KnG5-q^C_-sV$Fv)|jO{55ZP23b-`mNeTh zdRfPB3iB!T-*Z28dH>)%MMA}3TO-|ha8^?vdAs-5`KRnN$PczQJBaad_DENK?Y+ao z8CSOQzN^>hyvp|YuYBP1@7V)?N9q)8RU3pO#b3-p+LJO+*`a2i?D1S@cqq{>$WU#*}eb&-v?>YZ9VY4 zo$ou}Ih+rzHEV%s9q&x3*%VX7jn|N{_)B)tuC)dhaFr(%qV% z0hvsOaB~aCGt2Bdl4IA>csW!_zHmpfby0erVN@=B(u2!qMudh#+N+n$^7WEIA zf)?AS^c$PwX>l8ST1U19*|Wpe2*C3^q?7cjz{E2Qxoptb&=fRqv`C7$Q8vo*w_mQKtK8%_F8mF*h^6${rAd+rb6)LVk3 zr3$4|iJ_sPRdXu>j^l7wt;hOCKV~Y;v5xk2@#)JhS92~ociFCVSXh>Y-|wfpyL)x& z3WC8P>uM}2o`bkHZ}f;|6T8X8ZZwJ9kR;|@6d;6H-TS}xg%JF5-5_vf4$=Fz$Yf_^ zPlF|}!zSU-0;fmMayBm!LSPsMQcB9@@~Q)0poX^w9bRt#?N0%4;LX6hi^Yj?@3n1nKM9+-;xu{^#EfC&P)@w?B^}uSqsv zeH|~oo+lqnu)$s=`qWJ}KHxy3kMZy8N6cFVW@oZTwsbbcrbQL6MPfYiG21R4WdH8p z5vBmCz%^0Jin7}_<-1kj!q`ZrW7|Vf`@TXXP*cDPl_njswkq&RMWtpgbMD8E*3&1O#ujH?ByIef-8!=G=%L9q)3|$Q z!d~d?8FufViTck!b8PVN;41*}=LaHM$%s;Vvj1e<`3L((rF}_!R`vh@002ovPDHLk FV1mkDv_k*@ diff --git a/resources/images/protocol/msn/msn16x16-brb.png b/resources/images/protocol/msn/msn16x16-brb.png index 3853ab692000c17c1b97523a686c1fe3a23bca4b..f59d99b344d2e56301e8b78433691a9b0d595e8f 100644 GIT binary patch literal 2024 zcmbVNYg7~07EYlc3raz;NUPN`JPON_Wb#gGph+eHyabVeMxkCpG6@lq3CSQ)^h!+{ zr4^yz5=AVCidG&KP!xkiD$hbi9%|8xEqVpIgmP_>hlNWgDz-md{c&f_nRCuQdw+ZH z@9e!MGcqE?)%iVV91iCi779gSvnMu|I5}e9fBF&vvFTk@AVI~50!@?ZU>sMDB)~wJ zTB?MjV5xjZN;|w3hqF&qMN3eLD4Z=r)C8$bhhR`^F>4%dZLmQrl_kL_kN_)H8V-Kk zV#Nb0IS0RqCL)Qnd^k}Rx>E;>cSc0Zb|%SKa(r+Qu-3rF0Msxl1q|wBjh=1b;Gg5N zv9(Q1!~@S&&?FB2MNkq^B)~^>FhCz&igNH+q%TrXYek}0z#9EaqA<#c2C0?^5=ca~+LqUI zZ9N(V{~5+>we`_Ev@kIW)+4Dp8Fn8E?*(IwyT5m2Q^cZSuh*%tOOYl+h%8kNYtS%= zgU3z?a+RD-qB1cS8B`L3OrkSEkj3EAcnltu0?`GK0OBoRyw;Y?;88#(m5U7!6o5ak4iN%c)_pA=9kQ1fmAN@Z*AFp9V|r=T{MCuFH}HeB7!3N zL_`bl#dN@5B$cT&HbH>xf?nhc!8+A;ST58dYT!A;Y}M-`V9?1VGK~*XUS!TBF)2)t z$!9PH6o|nD@h@%V{|{?KEEuA#JpNKH3nHurZOd21k8NJH53Ip@Mu#=W08QJ3!@cPl z263YecP~UE;juAG=LhcGX$YCmId>uZqww)ic8w_}t!%-OeaP_wlpeE_s z5XaR8SzUX2d?oqOv&UEAN~Kz1HkpMXS9W^-cupNW-TQviJk364L%E~3r6YDjoK-Wn z+aWpaqsDl5&+ZYI78m=1j>Ge!!kF-(IL)uA^TwL-Z#puE2Y1zMukguf&*-Qw#a|zl zt@(<_zi4)J&8Nln-K<<)HCpVS(O;?|OqFgWP_l==U;n>@U@JX5{WhQ4-B@#7QS%qy zbT%4~9aj6VA?~|3=GgU{yI}F4)@zecn6vKmWYT}09y*fg8@lRxUT4W$y@i0~%0AQQ zH^cpkdFsCEr$3C2I%ZR91NQPdEk%vBWA_H17_OzP7|AXvxQh-v(v96BBe#kkJoB1q z+a#Uc;t#Z(AM!fhmEpviY#!|^tKD^S&qa%gLK;Xq6Zp~j=J8e+8jal_?0Y=o;dG|Q zblpi~?keSHOK(7aeZ7b6hU#|ZcQ-9wUTOMQbIy~ta}K4Kx5^BMw1D zZoj*&kZ|iSRlZ&Q;mK1Mmd?%1A><1qnarTLf*afK=?zCyZvX{*oEJ|895{C-MXIw4 z2wJwW?44Yn!MxiWkNd35ewa02NfoKDL`+rCmvhb(bgv0*OHEnlB-fNExtINjo3H=m zQs}O8fcoD!FBEi{w=&+#dhqbDXZ}nADqjfn|exz2%)$5=xvtv~KRi)eAx8LXaFYTdS%%3`2( zALRL%-e~Ia4$YN99w!3!i6@4pH8Z_s-xfA5Hh1nf#J4XxHgNFClaz_4liv<%NA~n5 zR2A3Mh=Yqus+Z(>cx>S-w#Ih%lz$1JF|+sOKF2tM+1s}wR_4yw?PYvdL;qczECw-|HD z?~;lcGwH)~kKOTcSHyK&W+K)VJfnW%RZcd2!Cz+7{dRDfxFVnE+E8}Zyv_V6U!Rrn o(}7a!&Co?i>yKsJ`F%Kh+#%;jbJKY)k+y$tm>>eGMc{ zK~y-)g_Cb+m1P*lfA90Y?s%p<9=7Impv|VsvxK54(LU56EcQWTr-%%tPJIfZK>82} zL1QpXg=rEKf+lPbe({W8b*3|wRCJ0QgZXC#TTD^=b2hh~_j#W8dH?j`z|hor!~Nyv zzODlp3idN+~}1_#+Fz;t4gFAC8pNNU7NV-dh0d>+Yc~ zHZ`3;QOr0Cf`1;4q$_zlv*m%gl8Wape3Lv|Z0r^b5x9>4hhc=&3V_v4@deS_ucOhc z{#5?B&UJOk?ETA9$_K!KA7Z=!tu;3L~cl?9*|49S5 zQq8Lx6QH$^R0hv8AYfh7D#VT7Ih<-*L_8t*^RIxRGo^-jB09PCjnS->iog%?yZ|W; zt}>Kd56_edtg33n?ORrdP!7pDhh(io;whV3vop+Ajr1xdQJ#-d2B{3PRBqq+AVO}> z`H0Rh#l+-T&{4fakX-Iy*WBe&)eZ`a4wUci`nayaEqRn&kCN17Kg=vVvvI-!*!6kr ztIoaCuO^ye={wbf1jb<5F_hLw*F$?gTKjY#+%s>em3kiPpDoPipt7VgcP_fQczs3M zu7N0w@Mg-Y`}Xe!;M?XNtkPoaWgDPzJ##nDCLc=T-XBint}oBG5B+wGH^Xr5BWPPzA7B8}-a)v2$9eL@s>E<=p7TbZ3r9I|!Gx?t?cRo7G zKfar>uhbQmYJnYu$oS2Pa~D!;P7l|e`g`0Eu$Dh2UmE!0(C)%xzwy&;`Q+W!j+|LF ymaaIz`S6jik9-J_ZR>A{!k{4xqe94 zR8YX(Q@L6xP%BVTEMmM=OSu$lO92bWq6LAfxKOpyg=4c55xYM;{jqaq=KH>P-sgGm zXY#_swm8_k+mlEn2gz2kj96WW$7%U1#5>NLLM9eBJa`8lfhFRpumK?nR9FH6NOW)# zB12$RT1poZKq4(sYveod9nw&q64Oy&n-0aS(-UYCDIn0Shn2|)4kRE+8k7%CTP}fs zM#TrC{iQUiUWBMMThk3lM0%K9nVziVs=&a%0Rd(nL7+o$7%=O!sF7#pgHL&R#NH;R zg1}Q1JedzJIJH9>4u~)V0{BxHWF-xP02Ye^G5uLA$Pb{?AUc&s+$=K0(r(CK7CgKSJgao9{ojb4ik zV#KI4X!N)SLjfBjoPe2dK1g`F5Q0uGl|Cm%jn5KAq>O5Y^;C#Lqv~|FxSnboaT)Tb z8!yy0%G2}+RfZTblR-(;BhhOSOyusb4cQb4Z+P1c8lot$R*Wf4It0ZfVm?TGp{O(} z9*xN%vdCuA*mN3;13_H2z+cD~G8tl4usB#OT;zBmmd<9dXe^-s;xHj77~-(SY>|K= z5O3xR1#AX=5i3EBIE*ThMY|fC-36@RFR?t40fBMMAjdH6Vh4n)F&s0hF+CuPU;(~T zSgAp6f;VjiT8LMS7&N;O)n)^x1Dr+JYFY!;nH_ZLBog~&NH4ub=6L~KqlL(Jwt z;4`f1|H&GaaE5AYkN;_xMG?`1w(axgCl1fY2SJIMF%ZMC{$SS(F>`Ygu|RGfYL@G? z5s|KY{=Fq*dgw-@aq4RmqIetaYifGQseP@p)sZ0#eYC$vT#(nZ$z4<)2gB!F*Ljz& z{h;7buw#$shns$H3e8zLbZ%Yys^!L$gJ%?$hFHtvk;i+|(I+1-_iJk_3z!|AuQXOY z9GMK5-sYB@Z5>O;|d#T<8A2_m*AaG4~w7`ke)+d7sx01H6+pmiWp0hrKck zd;9x`?&vQ94s7k781<<_V;R=cOTO>rXL~$QXoBAT>Ue$s*H^Jt zfql-#mt$WJbT0Sju5huob|$jFZ1^qzAZwuUpWj|4$vhns%CmhG0!CI@O#BtTO1Q8LD74Ce zx{=K2n|G3b3@rRK67~VTJfeamcB4h=yVvNZsmleBgSWTIQdEFh3C557E z{g=6eS%saew8_I?4g2YDl_)X{)966B@7ayGK%HOO8C-*UAGlS_Y()0C%|wnLdf#bu zDs9H#e&9$X^Zcnnr6a9Y9_0O`h3~o(NFhH=?O= zoBFn`_)!Nh{_#1x9(dJ*Hplzp_htuM2X?(%krQIgH=g+XmZChjWGw6cY<(xWbZ$vp zQ&A}O(0>>q526!~|J?q%sl8X*%+jCt`uRw^o5f+xhGM`s?T5Ywi3!AH{oi#Q{AGPe zkI>V=oh>jIxgST&!?D-AEGbUaH_pd|MjcJc+rZ9tV^3=0p1`AH4|2M4RJJ_KpI&8xfX_T60SO7gk;eZ4*NLAmY!DhUn~ JHwxo({tG^=D_8&k literal 893 zcmV-@1A_dCP)bfA8CNTf262A6?7Xq$5ki8VQRo0hb`vk?4txgUZ3gaxmG2#E*l< zXkgKx#u!3kq8CzBqT!%xG>$=sR=1$6bC!?6tmxXcvmIk??Z?`;ec$)*O%o7&&QE@q z=l4iL2<{c}<8w#r+YcVeU;Pk(+rP}Q{%fAnnnrnD=l8gZ#C@WF*6oWWO@YM)&8^mS zw38OgJS{0--)tUPO0M4B}|3Z6uPQ?q>LXsR`K5nSh{@5*KE8=CbfYiNeCgB{bCw# z<}3}>b)*Z^nh0Ilpq$m|w1R7sDLxb4IP~!+9btgrTTd_T-+9{|p6_SN@FKBl1*DM?A~+4-L;K@TtSdoRav;9*f&}6Z?^jruRs6Lz=Muyzf>$^9C#JaP#-R* znNXyHr*@5sy&E~bB8|yaBX*||yTeFJhk=!1fue0T(9t&%DBY4tG>zhUY!?(_IDUSL zy}c96Xgf)lROC0`kmJdiHrCcGWA8L#XkTT{_AF7;2_|MEgwvz+?%fZf2Bl>%7}#ph z5HmVp+hAM@|k>P0?fyQj}V0+hDt_@&fA9BG&hXk&9gRM2 zCU*s2`RJYKJmvH;lt2GBV*Xt2 T27-K_00000NkvXXu0mjfWUa51 diff --git a/resources/images/protocol/msn/msn16x16-connecting.png b/resources/images/protocol/msn/msn16x16-connecting.png new file mode 100644 index 0000000000000000000000000000000000000000..58e5502e303ab8b0b901461e95eb281730097e59 GIT binary patch literal 1931 zcmbVNX;c$e6pn%-AlMcK1c5P$h)R}8LN*DS6(S8FM8ORW$p8Z+6OxGun{`8l*1hd1 z2t}fzJy;b*BDftXv?$<)E2xx3#k$pnMMUUC#P)~BADuHZ@4Y+s`|f@wCn7A^$-%<` zhr>BZLqw6->WV#IjT?)-mro;;uw^nTjzOc4c+{xSK{&n&iGu*CT9E)nLJCz{>Uk&- zhqFn9}#$PQIi!`9kNNS#n3oh;2e`yp-hHQAP!1^H9Y+DlV|Y&tm5IL17uX0 zRtP1+A?Z3ODm_fDOixyFRQNeTK%j|>5vUy2Q2r!vskP*OSg8l%F3eqT4>}HZc1~-7orLlky7ap^wQ^j*5 zMUoG;uoDlTh@x69g<>=s$woRE(Irqo4u@mqpwUQ}21%c$K@}#FMo$=F5J7sS4%VVD zq5-Uoia5l8^6;3a!y%}(GTBFBjs8QTu#{0u3M~aBQz>e-HLmyCdNdOH*NsnV>*Z-$ zh!P3u5ra;N)gzuT0>*Opc|%r3%o}dF4#tY2ND(1QgBsGHQV|c2eIcu06_?6jV_9S| zs4N_+G-4OF+8xG%pT%;8I!J*cIyr)*jC4RmB7!3NL_`Y+qnLo7OreA|R>2Hw zfrjH1K{|LPq>|_mHSj*eT=-KSu$VL|EkFp;ha+cG*>pC@7P8o4x`@RF@gK0N|C2Qe z<_yK!9{*{V5fRpd*6qjU#||II2hw0Oqr--ypuZhbChYDU5QHEZ9(ZqN`{qgTw zu~XT8+XMM)UKAPFyt&Lh1aAu=(V5UW;8Atix%kmEHqkEiX=d-<>rJ!WbNgabZ*z8> z;moFcx2}5l?uz40A7JpX_fH$zI!V>LiVszsyBIvd%hfm7zGR2i??>&?PM;FrOG8L| zzT$XBO|2!vr={;e)54_c<6nB*aE5a-`*{0tc4m_Jp{MR(Ye>1=2zM&S1s;)aCP6I=u1DJP95^9>{m7xG$#9L zy7H&)s*NaxNS36`H;+|M&4qhIgKeTmd!4BX32*7~9AjJ7-W5#r5Qm035~XX+es%H3 z`m*B3{xI*p%eRL*t*`9% zOIm+;k%a2L-Y<8BS1qySn7-&z@6_&rK*EEJEk*T~{z|v;v&t^y=R`_3E>7LFudzEs zNav&-T=%$l@k4W|6UE`u>+Urj?0j$Kgj?pCy1h-)qkg$&$y}b&wPjHNSG{$cb1d-` z@x-?I9U+=5-$y;y3Es)ZS<~kUUe~1Fdb+Z!Y84P;>(8rPy5&gw^$XK7pL8aT>Ydth zY|?Y?*^*_F*fZm0@Wu>qZO>}Eu>CIiCGV2$ILpYsV^5@yv9H{t>TLVVp}n`0ll4bl zHhRnPHbE&1;U94~Y?Ut%`@5EQ0EM^94nFAt+s+?vudYzMstOwSwk7<0WOK#tM)PiB zapGMAvgkl#W1}HMQc*M*Ew8j2TeJGjI(bJ$+&!h+l(<3pzKZo8tgR>S8vx-K_U>B`;zXI+>( z+2WZk7*!ir=1trA&CUAzG*>s*uDJ_a+k3tW8Vpm4C1xYrepg0 zs*IIkEh)yA&I9W=9T-&IdA7=8hJqHnJMUhk4h<)EZ>Jw#aIv)t?EYEt(gt1V@eAy2 o+Zy$TGp(>WYv@Q&{~TL)+|r8!gGfMbl=b&06^Drq30AEA2UUIs5C8xG literal 0 HcmV?d00001 diff --git a/resources/images/protocol/msn/msn16x16-invisible.png b/resources/images/protocol/msn/msn16x16-invisible.png index 5997618e29e4465eb7cde54f019b4bebbb2129c1..7c803b6fc5ce131b6e06440746b6d4b18d101f4e 100644 GIT binary patch literal 2035 zcmbVNX;c&E8cwBvBA~!+S*kK7>P40$lWmefuz`f7BrE|G&U6Ct#5N#>62NguHR*}txqTbfJ6oexNmn++~a3><(`@_>8ch1aw-}lb@Jnw#H zM|5PUgPn&Rfk1Ew4--i6^<(^To^OM{lUI`c@WmYyCSb8>8kQ~9!vww@O@)DQwKN@; zz*2dR?kXHWAXq7oxCAUgEaJ*gHCbxWAsf|N98DkutTAe(G8K#gsc<@?;SopAT_6I8 zoJU;86jR08U|4~Kne=e1DKbuGQpq@S;+jApz{tf3)G#ImjOq-HfotRu-|%wry+uqR z0&i3>6^}UURDw7f2uAfVz$DZCWK<9YSS&KgV6s@CFF>P$Gzt~JS$-gc%VcqB5b*XQ z;@0%?G_FJt^41o9;t>@XrsYy7+1c6TY&sd$r&B-2qe<8~e zIhV>{<5`3lRES1pu|bdn@tHwT5Q8pY2?aty&>Y8mu{4MSGWZ}LWHUfe2(lpo6wIgd z1tFXuK18R@VZ${BOsbK=b9NDn-B~R4FR|QUJuJmgeH@Br%ymGt0>w~+0@VV+u`Iw# zER`V|i(s{-K(p}*U_Fur%R}_28hDdoF7iGPAQp{EV+Mot*~r;cHk}Q!gCVw%E`Zn| z@hw*V|74AVJ43Ow$N#j;oCxnh%l2LKYr-fbw4 z5N(Ke`*~)(`(RUhKwf#4+t6-$UWaI5!;u)LQu2xTpxlo>snb1ZEA(ykAT9h-J>OS( zmRgyTaf5tYp)3|yA&oJyPFAa}%2^Hee(kbKTWWhNwZwn?0q4hjq*vhj=Uxi**#Gy* z-$rvw+P!w>7cKv_aN`G!QM#~&wC!8IO6jnkcg;B@)IsaL)Qh#*YKPCfigEAVCX(#l z)Pn_|YvMP3cg^%`MvD8)t%>Rt2@ZPva z_we!bma{8{nb>i5-*tIdqlZ18uAWe^X97tfW zS_iU@9XUcUH7`3EXSelJ!jCmIWnn7z&tL01gf3|jF9c`&y zIekS^4d)x5>?GpX%Wp6CF*-Pemb49H`HypY_f#dHJ)TwDH|4bBwXe0x`*48ET~wC5 zFLO6}wO4V-%4(O8K#%phfe~2gSW)lr@xlJ)@|SkwqD*GOzLmpe*{eUAce(!eWI6~w zUs@qb0T?y8sIUB+@x(^%A@I=;GmAtBWiX?D&)wlh*NbNVd|E|>_5A$2?(WFWuCA@H zTX9wKqpmK6QYm>*Qn4>JH}^F!DL}{D86`fY=;`h;v80LDw-s*Lw)fA)65*Axrf7Lj z;Z?chXkA^M7f|+UY%Kqg8S4ADT0Jy68X6U~NR&orGV7Jr?t>a7=T2GTrJ=MNKI;AR zdR>!BJH^CKao)|2(iICl4{!_X3vBz^gvVkU8XABlj_qmRAFVpS;kTMC44;w6O^V9e zvZjf@C;AK?{;Yo2UY2wG<%T`X?t=2x6W6z7P6xbr`SR#>#VyT{*&M<>xb|GZ^lo$P z8sbG;8^QJ$-*1#dO248W_sQtZK?jPibU(Z|Wp`*5;c!n86m{s*{rf-*&}$4hef&gA z%d#F%|KsMH=UtjQCm*@yO(e^mzgTr;17#Pjf263~+w}|-IucR2$Ns)~g!HZdl4qvo z6ScL$YH?RqV4r8S|I^B!CUcZi`u;FOlFhXLNzcrr&~uX&Rk!N?vqhV#PrKd=JJ6gXs~4|j weEG-Vref86dz+zG3o!lT*X^dEnZKnFs-kY}OG)T*xBP~~g^_~OK`HtF0i9_yrvLx| literal 910 zcmV;919AL`P))`429em-%t*vWC7P%SGb9^{hsuGQaSI6& zJ-A&KiG;I>i7af1;b7QIwxG;VJEAipwg;x*umfpFp^wo)-&_B@S5LdR@x6aOm+$v0 zRjXAFN;n*jghHXuT3T8nTU%RXvsspwmJ-0Zg@uI}fOHTX3WcIWLqijNeSK(}hG7^8 zA;{%&jE;`-YGZ?LY&5(r9RNoL2M6Z{1_sbH4PDofWf@tP5kg=X1|uUQwA^36E1o9s zdc7Y#h6{xPvMi%03W}m&v)ORF-3$*8vs^A76BAd8)ulU?2Q#z9>5CVQC_pe6?A0`l zbUIBe7GrU75m}a5Utec(a*|9YLu+d*t`jdHnx0d*JZHGC-+t63vwySr&>YQpRF z($mv}s;acNx8riT=qiGuXd>#St$&mg0_FqPoxQfTVZ5|gyX@C~|AV!)HBzY*E|&|R&xa&Ql*?r@nGE@S z9?P_4Fw9`4eD1;a-{JN&$tsD^aBMqO#^e}x|2=v2<1ar?9Qei$&&;^9FJG80A6bdi+rM7#x6o@pjz35Ex6T4pryK4yL2Mr?hj9Y?3|hTzVDs) zdEWb(3VBk(;)THrNhH!@X(Fs7)*%K`uiz~#Uk zv5+Z*<9Q+>hY8MOr6vomF=>%`yLyk^IV}4(v3xOxXmAu$p{QZL1LQdYs=A|lmYWd)@@Wf{nB ziGQ?9eg2@K>0sirqsr3CRC)C3+~&i2U+Gt0fLlT@_YO%Pt*E(uu}yDm4Tw}vOB1XU zMee^^$2)$e9l6U7>)zbSr)vK}s;X-qxpF+(JE-<81;Epb6O+j?ACz7xC^HJY&UGj8 zuKfMMna@TKjT}WUX%2mS)pg<9_j?C!y0@1U%se+b+q8C&RXQ>>c=6=+{`Pb2_gt5_ z<@+LCOM|3=UcOp~Wwu`3pJt%F_EXljzK1^-eOjKnF_c-Hx9I5L`Bx0NGrRos|3ZTe_HjlY=5p5`77eA%WCxiKocf3qc9 zOJ6A{Z1+$2#VqX)!oW-UDbA*|%ZuMjPk+nV(E&AlU{~xDp_8H$H#uzQprSDU`G`mQ zaQJkiPjP2>VAbz-Mn=?sIa>2MPZj-s^5P#9qV-jh+)BIrr=691s+;cA@BQ=(aHdf7 z=i&?U5RCiHaBYIi5%IQcma*W)FgPl}tM5nhGD*x-Z(HB(qCR=?Kx9XI;vYxt7#n@n zXSjEBx>FI8zJK+R$>6)=9p8NK=AXYdaqE-&;(t|LmYoV(5)KWdmvrr%v6aNRppb}~ z{_6|>c6-mX+Z9VaGsE?^ey&*h5yMe^Pko^8_g9UsZ{sqGh6k2a2hTXk4$!N#D=sZ1 zrT_XZnRlmzmb@l#a>v?NgpGp_@$OyO&hIQeDSg5{{E_vN{uQ{;&zrgTJ-Z#+R(xl- zG%;o>B(LnE@M`UwrU1#UJ*iE;N%oiQ#xqNHm&a)J4-Q19o=mM<;OJh@_SSLtC+%tm zewc~PZN2f!_3=aXW9Q{T-A4v|oNfPX{7Xwq@Z^j7}aQ0wr_Eiq%M2sr!!ZFNyiMZilRMzXTg7vUB zGBzxkDLV`**R4CO96k_USQ%P=wQX8EX3dShq`o$Ga_yo=@9L&bZRst~Lj3%?t5Go7 z>9B_PvRd5xf@Yn@sL5lm*KIPT57-^I&YlSU`g?F7Z`AO~P?2=-PWz_gL3IriJ(CQG z!_l;)?MP}=LpLZ$f2vfH1RoP^F8dX~93iFv literal 876 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 literal 723 zcmV;^0xbQBP)oO2g~i+D(5Knp*mHk#Qh>WRBRYMc-Bx$3p($5+0XT<&k;ike|Lrw& zw%rDi2tXO2s$fwDhpWaSZUjub1{GsnMZK=TFQ;Yrk(C)jK%GJ4O+&D<jbvURo4#-8RI}*OyR%~iB4vnV%qcHl8%rh}de_1i6%;%1(YtT(;ytVTuglcd zGNzk9V0oe%X6sX59kvhL7&r|8rlWl_XH;g4yL%m`;7{#d{T5k!xYGat002ovPDHLk FV1f*@Jo^9u diff --git a/resources/images/protocol/msn/msn16x16-offline.png b/resources/images/protocol/msn/msn16x16-offline.png index 1662d652cd852b2474395c2ce0adea6b38153c38..b16e848dff6b9ae61255b061a5ef3b74c5c8fdef 100644 GIT binary patch literal 1753 zcmbVNX;2eq7)}wns(>Je!ss>#qC&D8!sZwvCfOh$L9Sx3pe)HkA|xA<#e@h^sLEJq zZBeWU3Q9o{)S~gA7O#$jS`SbWm7+|k6fFoA3$0#G34q>K2A1PDGgRD)6YGCTzX!jxzl7K5R( z?98iJ5QQ>Lu85Nm5^)4qiYsZTS%;=qs!2435)`agqtbMY08+3tg^EWVID4K7C}ce9 zsz5O)Rtqt?BGjP4VhxdTQbW3wBclc{1%mWkl0bvTGrE`Ww>(&!L}!!dI(82+S&zcyP%pn89m)@zCZ!L(A1 zLQN=e6<}sWQ}8T;Ml_0FEFKW`YRJWCpOPlUUjR z$r_z>hHh?;|Fp}Li0nc0_HFZ%hqvQ{smPhpki+5b$%`dt&N>X?$LSxMcCHNFk?G#N zaRB~xtTFi6>>66<{JrtaQ@$1rcY+9$)Y7GwugNdSkK*3Hc&D?mHI%*Y@sg{@{l*FuH@iKzA>TAL zHC48)%kBHafP2iaT2vD5?dIybwW_tZV58H%@^WT^-!5w&kJs&Za^a4!29s$)cy+PE z$H4_ZmS{gL_yHAe*f1(Q-N92aN{hB3f?tNRqif@k#>8ER+n!<5KPxRQ{UmQ$*VES4 zR!z{nH5%{#nar@PUZ_}mGp`L>K_+a<1DOFwjt;3o0f8^ z$nNz0QOTK2Yi=E|FZi?}`OzF}Z_0~nkI%UbfG1Gdpxsbz9;5T&!<3!{MN4kn@J25Q zS4M0uvO8D)#B1lWdjn9r?yHhLspS@q(j4_}`cYP4@keqOmz#U<25ouu_n2Gn%d|Zf zmdViI&e74)fIrvdBqb%ebaZt1*$-y}IoUp_q`s~$-E{i&h%*-PK=9fl^)FlG`DVd> zPl;P}f~zrl-8n&CSH}_xDdoNC2`kGc!v{O8or% z0s;a;LqlU@V}WW~TU)!kyZ7(k-`w2X-`}5{oD5|2_4RGty4B0eD>@<#2=epu)6>&4 zGBSV)jvYI8=FAyyZ|~C5(z3F$zU~@~D{E?MYHMp78ylON znt(28YisN1=;-Y1?CI(0?d=6R4Csal6D9yHoiu6EHhqD6}qFJ8Q4$&zKumMvelX8H2vD^{#nxpL*IRjXF7UcF|` znhhH^Y}&L5=-KVtx9`}oW9QDDd-v`IhQ@&d2M!%NbolV$qeqXPJbCiesZ*y&uf#5y}yaxepyQcj>T{k^l9780gCMP&B#64wFRa4m);hS2uK%hxKCU(|T8Aayj zo5e$)q#j|FHoS6WMaL#4R+ZIV#X*ai)<|sH#HD@8MMA;nb2imr2e^d2{+V z+qg6=R?xKz3RAwOAHwjeVBQRYd^<5tQ&+bc;XAJ8-Z;R+aOtJ~a|M%rQ2J-^boFyt I=akR{0ExL?Q2+n{ diff --git a/resources/images/protocol/msn/msn16x16-online.png b/resources/images/protocol/msn/msn16x16-online.png index a6dcfe9b5d5e7201c2e9358418cbce1fcb1d3534..61c08c884d4cf7680735806cba0d3ef2ea2f21dd 100644 GIT binary patch literal 1926 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 F{{^sFM?3%k literal 814 zcmV+}1JV46P) zK~y-)os(ZoQ+F7KpVJ;%{tRe=Njsrdq>YQo#@IBAx};3D7?WjU;-4!ia3KltLh)iD zTM%8gnCOMxEha+LW${Lx(S>BwqFay%0gaXjsIAt9cGS{Z+r#PMoZl{t*~~O?d#=Ct zxp?z_k`RLb%AT&v?vFlph5ooYjVwvh8-==e2W(E$)K|-EtgY)-mOBdURsh~8{q?@F zPZIO7Yy4k2J1&aMQ&r5TRFTOF@gyxoEFnZ^$3-FcpH{`1Msq3>)rZDMjh}mZiU$4} zKDKMCe{vCm;Rp#WLF`cuHD@3xRREY=%VbUk6x*edh0S_VzW?}%T&Q(t!uLYps+D>H z7Rr)@oTHqrJIoKBy-aIC0OY9|2Hy1+_=A%g4`Uj)Zs*-qWdy$XJlMAN)9ZLD2i$`p zn2<*}Fx!i=s9*?#=CbGY$+J43(Bj#40YKJ2a$fD?w$LtWgI*D*23THc#lmpM=9nQtABP z0)XP|LQ8CPeyB*ZV6FtYQgGL}g2h@0fTl}mx*0{uv#5hCn_m`m?{}oW|Ms1x)%I2A zH+h?|ma0&aW>WtZfRYjmPDe2=_Yzjr+0k^<%Yqk#rXxo`tgoP^L1k&9N_zc|00?2? zekjLWQgG$>IC4SZ>!-Z$Y**lE-Iy<#jUsD041IPUY}xSBx%a$}eHAqxZr$^pU-M;0%WI!$_l`kZd~M%3t#;aH8EGCk sbLdPPfPdp@w=i_KVThZje)FgP0+kcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`GuBNuFf>#!Gt)CP zF*P$Y)KM@pFf`IP03tJ8LlY}gGb`4?pZBPB7%B|o_|H#M)s)5TT^D5IB>nPO#NVgU?A za}xt|BLg!FLqkh*M^h(rClg~AGglW^7bln**z_8^fb^L-I~rP;7#g}7T9~_-J3AUX zy0}?7Ihq?A!Ss6O6_+IDC8xsd%>>#D)$4>;ua$FAYGO%#QAmD%4lD%(WaO9R7iZ)b zC^!e3DQNg6CTHe>1T;Yr1o5v+YEfocYKmJ?ey##Igsn2MxWK^N%*epV)Y;G&;&TfF z3u6mI3uki+SD@o843(gIQ^*N5eV}9XLCFItxxj>gX%NJOCw?FYo_$jDfO)0}m^rF_ z_MT&4V4CUa;uunKYs(b-oJ)ZM$N7&m*k?3&O;JnIbY9rK)KgqpFr&*&eDSfi6&rV% zyj--_*|%haY2k$<_C9lSqJ$T(G+fy&CFUg~b8w}fZ>I2SXJ*5P=lQvQ?7i;ZeM3vO z>STNM`*(H6|K7X%K6BMot+%Z&ejKlQJ6HIW_Q{5wUru*>Upj8a?cwz{=fp(EoK1!s zj}`qiwYT6u!@IBV%jyr4zMhi)_R~>-<-p%uE*aN1pR1a;MTNOHNS=wN1gETeF} zx8O`mP22bLIu9jJ%ex20p1*$0^mu9K1grfMl%Lg#ybJ7^=lnZAA^ZFj?bj#YtKN;; zR>Syv<=P`lZNkks&UprX%5ZaebSdo7?0?OFk6TBdynOZQ?Q7TE*qR%;TA9ACU3Y1F zYpZyEdivezY;5m37XSEKSF$qdRA~c;M`M`*$1^jb=PZxYbDWn~&sG2BtXO0muyj{nw)VjBPYLUsceNbO?)mxpJ@zTo@ z>%NGcG0Q4++-}CKo88|e{B!Dq+;^`^{#rau@;BZPJpZ`gTsi(wEm1A8?*DV{`)!{s z)Op0fJU=F^!aHcP$J)x{GHFILeg6BNO3KPiEDf9e-^SAab(VmOgN#qZ=MCM@5^Zx0 zU!DFlYt^br=bsC|+49U{o>*bRPyOJ}MMD3Cek{8mdKI;Vst E0RCir)&Kwi literal 0 HcmV?d00001 diff --git a/resources/images/protocol/sip/sip16x16-away.png b/resources/images/protocol/sip/sip16x16-away.png index 94539c3f61212ba0e2e5ad5be5f79a584badb8e6..7872056758a129a768df5c0c6c6a9054c259d9bd 100644 GIT binary patch literal 1715 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 delta 483 zcmV<90UZ8}4gLcmiBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVUZyxe*vIL zL_t(|+O(3*OTu6r$A8b9dNr|BdSw|+?wl#xp$2m z!cP&8NSlUNWM0>G3fDODY?>lte~Hgcul1e8aCEcTbYdVq7z|d2!y(gdw~sTK43AL# zet%BWGzOm;64mSV?s2(5?f z6_6z9q*kku*)^m~&dE_I6rO^?;I`ZCeh7!dKFr>&*Xxg>D86tU7wdF7B#^9002ovPDHLkV1jVb-B17k diff --git a/resources/images/protocol/sip/sip16x16-offline.png b/resources/images/protocol/sip/sip16x16-offline.png index ab47e5a55316b23d338710e18916724decd27d01..ecb6d4cac0e562ad7bb06ece3eee29d448e55d9f 100644 GIT binary patch literal 1323 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g!!3HGbRrPd%lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6H#2Ih>+kcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`GuBNuFf>#!Gt)CP zF*P$Y)KM@pFf`IP03tJ8LlY}gGb`4?pZBPB7%B|o_|H#M)s)5TT^D5IB>nPO#NVgU?A za}xt|BLg!FLqkh*M^h(rClg~AGglW^7bln**z`KOnHdK@kM;uS;rCW?5>ATTy4Nv<@IFJu_r8w>KvAi zbEF?|E0pVP)_f_T+H1~gE8EfbXCoUo$2RRQ56PDsPoF!JK2ugAG;}F%V)-qHZ{J&v zmv~+dIbLu+CBc67S&`ovxm-$eU;EtJZmiI@v6AbbqH%D^!E+ z#gF7gFV#4GiB)(5v-by9lLvte=XVF3k$!&RZ}lXV%VC;bi&i|}dN|SV+6QxAskXwZ z0-57q#ESJ6+i*Xx^kbC%aG<8R!JF~Jcg}7D9@}-_=Uk5}m7Be6<&r7fVpUHL@Tzxm z9})|`Jy}30n^T^Ty=qg$+ORKPdhas-EO9xrTzpq1d(AxUC#&M$w#iPMAj)!ZTJ!n0 zTjJImuldfY{o~11yJHV4_8d-Mwyj^gz5F-x#@y&%`}RNibxmE`vTyVAvd@*irhc*a jgyjDIzsn~6PcVUj$8Bw?{hQ-WpyJEZ)z4*}Q$iB}kw(to delta 463 zcmV;=0Wkin3hDzPiBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVUZyxe*uh1 zL_t(|+G4D!sbK&DB_IxEfPnWvyc$ZoK;>ouaXAAj0I9jh1XXYbhz0-u|IY}d!+>}< zRFN@~!5vVwFmaF`C8l@p-mw8SGX4JjTkG%Nzsw&$eynS0X|Vxf#-Bfbvj6+{j~U2j z2I>0t?b}8m)d^JF4YCl(*8thbe`I50V=pf+AI8tmZ_L5Lp$;_YBGBMqW@hFpZfde|{;8t*vbw6BAS9sZ*!gZ{NP%CMhZDq@$y=0BC?a zP@IR0i;E4Yhwaj(OAPn#-*3Ki=MKp4|A6=lD4bXhA3nTGSy?%Nlaq6^f3B`B576{4 zckkZacJJQ3qe@CjPM<%2289#zix)2#zJC4s1E}UQa!4{lX?Y-40NDh@KY;i?5I+TC zWsnzv_%RSGLgntE7yz`9ffB$nY0@N$OkhG6$ji$EV{CkMISd0pl0X-MF|tAs9~&F1 z3$Oun7m;iLJ{Pc{D}>pAC9V(`V4OH{B1N%4aXJ79FaUr5tW{l+!kz#C002ovPDHLk FV1iHz$f*DT diff --git a/resources/images/protocol/sip/sip16x16-online.png b/resources/images/protocol/sip/sip16x16-online.png index cc8e0d4763ba45a54ccc031f1ce8906cf8d9c37f..b6801b64c34d8815098864c735ee2d2f35023a44 100644 GIT binary patch literal 1342 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 diff --git a/resources/images/protocol/sip2sip/sip16x16-away.png b/resources/images/protocol/sip2sip/sip16x16-away.png index 2212efdd1d54a6e6c3cdf1bb90dbb75e04a0c48b..cc2d146e70b3d3bf2a1e1572064528b44c437304 100644 GIT binary patch literal 2081 zcmbVNc~}!?8czh|SfDLcN(%0WTH% z5I&}bkV8})NFohNQA1HFp?pz_OvDlse7EAgb!?PC0U<)XP9axn*g7A=OI|j*H;73D z{7V%?=0kYplprJ=&wi5q;zK|^eHDU26%z8ASgBb_6q+)UPN*UQL^4UCFvRszTZ2SG z|8wJw+8Tbc3L-^98aPocLhBLlyb4Bh_xpwnil{g2Ftrpdick*1qC^FxM0lVN0sTT0 zOT}!m7Zc4Q!;8$Ikm*bSU@`n@0gM1IDoE#oTrgmj<4ssP&7TT_6ox;*^a21bz+`|7 zjz85O3}glPGpLkREKjLHgh~;#YFCQdUBS|S7t7|TAt3^*`7kVB?SOCzjKCTRtip4m z=yB~Plds#c?!S{gE;~wt^3(D@^)PW$II$!e+}R1!)KZ0 zUTZ}o&IJHg6!78*Sn!OKWB0CkuFFS$yWi=HtUJ>@a8Ehkn-;8%*N&#dZ;u%90H$3Y z4{ezrTAb9jr`{BPt$BgFdh0noe5a8>p5cFhS*HzJbnUR+E4MD1$Y{VSO^ZIt=zS0m zjy_(@$=rLv$abbl;uO1lJKtOxc&W^EL!(p9Cq;dZg4`bN({m4!s{Ew9MPJ~{8HL2+ z*6oh-ww=>~c4OR4QAV`Ji>{fM5(p7Ha-gT?f_6*mVrkUj~G`WMlyx@kg|zl$eIp&vMIAOFKP@zq(( zpTeR?hI02DIrFrY+CDl`yFVsEFxKX3PVx2n)g6e;srxa_X{5{N9i|v(lVk1D$Gc?q zndjqRb!G&DnmC(7qT`0v6nVbX*mhO+0A)Z)4@)f3oy(^dR{};x-4I zwPT#!LYc+erTM*6T$@Cae8?xrt>kj<-vq&aga)S%$k%7P-U@S^J`r0F59C?6Fd=MB z=i#Rto^Xv$fqzeLn-b6c@(s?}{d3F0$)k-f!*+K{@)9l?Yn|syl%j7Nt;K`m zeY~;O2RHQkyWOb+e|h+D+tcQUHw&`#XH9yGn^WzH>woZGE}g$IId3+bvh~=noN8_H qeeN!9sEPe`tCM-7_dMaHkPIv)fPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igY= z2?Zu6EWCCA000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}00095Nkl#^&u&E2K3JR_thHlalANWDr`ly|ix~|jM5>qs}$-PZ;lYM9#EqXqk^XL4} zIsd~s@G?7g<3+6H@-x3Cu;QgWn!9Gkhpv?KZP&&b*q+mWvGs?G)1eH&&g0;6!oK$> z(I2n0F>b9PmblJrSCqy-Mo}I0c$FO_(qJZ!%q(EUAlLw(g+8L>^>c_qoX7f6v{`W+ zvPseGwLDIYqgn$vY~>Vq@)||fHN(*cs6V&{ML9=-4GOdYauYgb{vJN9Xh9MBc*T(> zVGbezvij##d$-KleE<@&@H?UacJFcfwz35R{4)Uy#rHOUm)Y5Thv*PULIIN9g zJpNM@`b6>OB^>?X>NF%srJhtxVBFsH{m*sWd!v4_^TRr~;atw>yqZ<3)FPj+>t=u7 z)DmN30#D-;NEt~AMq>QiQ;ysHao8m_H`oT*zoizJsuB)|`6LjqC3StziBPEGT5oU7 zE-=(T7C@rm=T4L2tT?eL0gJ=^f%c` zUs_h%@fA=uO^QS!baZq8pePE8q7;j~vkThy23cKWq6kW6Y3+E<=UHz+;qZUM^7B{R z)YOEgX=s{;*XzYFj1hrs7Q{&o>*E%b2#LuG1C_ z9uyHpXgoFbJe&Q}YbAB!60Icr?#jwDhNJlFmct}<{RQ%gP^hz~yE`D{Z(`{ZtXqBg zq{AQ|0#8g;9gVwpHOw)WcbpQU3zukG!b{{dB-7?u!ZGwlEX002ov JPDHLkV1nLsw6g#J diff --git a/resources/images/protocol/sip2sip/sip16x16-busy.png b/resources/images/protocol/sip2sip/sip16x16-busy.png index 257c307f619c323921f8fc83961790f3277f59cd..b3e14e2a57553f37b2aebfee68402bfdaf5f67d3 100644 GIT binary patch literal 2041 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 diff --git a/resources/images/protocol/sip2sip/sip16x16-offline.png b/resources/images/protocol/sip2sip/sip16x16-offline.png index 8506462fc1734d50bbd2ae2eb94fdde01e11c02c..ca74f6485a0242edfc2979a9e05c5a068b02ba52 100644 GIT binary patch literal 1775 zcmbVNX;2eq7!F0{P_Y6A5v@Cmw!n~N7m|=fqL6HmfFM^3bxI*53t1r9kSq|67C{k_ zDyVp%Llu-Db~tpzfu6{*O*c$l;vViB!FD0q|?a7nh=E$fp{d5C{d#ncNrdm0%Ctx6(|K?xuNjlz_C@OfP$2w*Zk z7|im4d{jbIj(H}l(ZFQiAZc=plq&qmqy|lsq$DI-no?uCz<{6{ zsTxxe7_J2LjFJdEp5TL|r*k1FR6ag$iItl9M3E_DXeBBJOotc>g+8uXZ4D8C{_Dm& zwKYLWDwGj`YVdfql&nXj?E;w0-TMvc6-jS++tnCZ6iF2JCz! zQcS5A*y{^47cYXUu>@4+p~e-!Y=(K*J3J7Fff| zV`cv*YYfsEhQ2-i(=H1lvIq6sx6Mx;-i{BdBxgoV4u{V4N*OtG>%@qAkoLz*`QDy3 z{+4^5KQ0n?1VVS*0&*%BDOURDFUfq=EDCKIGq=C7zj{@MX9*y%T0HFKD2N&Dp`X1n z?6uqYf`hq@V^OteNmje;;?stP25Ks`2EG?veK`jy zz7S9*J9qv(=y2rxao^IXG^+P^f}+(;b!I;gq^BDUHSfC}IceEfKR7vEuhZ#_Ph+m7 zxw*OP4RuYCx3iIqzW#pmLf@$du%@yyH~rS#oj!xUBhQ}YP@1c>B*2=_;q2YC_CR=WuvMU)Wl-%Gbo&pD z^OGB9YOqpSzTS-Cx_Z(t)mI;IX54z&26bOw27{&P1R@)a|%0O z_xFF61UYI4$F;_8XUofJj3ZuQC${N0LHCcfKVc_tt%G+iotl~|+hI1czxAsy>ax6% ziHSp3g=^{u1_ly6E6OS=l&8@%se-!=Uox=RSXozBmo%g?G;ZS34#l#p>jt+L?{YWD zcR7RG6nERDw`?%a&g<g`)YL)T@oBM!D^Hc2w}S6n$$ zTAJl|$FA^)Uw;~Xbs)s?WA_7Onj0I_;t7H&RJgS{_NnDFVYarmryhq`SH8 zjT>6AVnvjZknbL?v3lOr!jO+Pp01Bi)J*{wjY6i7!SYPBi?N> jZuro{FJhqcHSH>8&Aozd>f)y+`d^S(>;Suo literal 612 zcmV-q0-ODbP)Px#0%A)?L;(MXkIcUS000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igY=2stgn z&vrHd000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0005QNklL3UmR73|ib+Ajt z%}I1>QFL(ehg!rRBs3WOw=roGlbF1`^g0;gS-ua>*$%XGv2AAn*tzR}$5@MJ6Q_p% z+32IervM64Slj^4O*qNYjGa67(|0I%yh{CMYf$4ZhxbILMX7i@RPxrA4;JfCK?Ih}&P`w6?!|R;;0mDsM7R*1TUJuHccD)wwXMZCfV4ypGYoxuNz{|k zg)6qb`TTrdJK3nV6fVjmp0NWs`r*@t+?#yW_52P7y^GbxMgW^Kz$gHz)Ih#p_v$U$ yU+1KE$Xc~RwZB}~;u>W}=r$tWkl%~}oxop=g`UKjhd@>U0000slccT5$i|& z=#)|>2Ve|G02YnmqozX;z-H4RCX3C6ya8W2KE`A{p)&dCjjrPiBE+c1Q3HWu zdce%6T8$+TepJ%ak0Iy`GTA3$y>Tp2WXeF3$^b$%I;hi`;~LdA5(?yBH$JOv3{5s5 zpaL;s3Amc9N3`oWn9SXm4Ve{5Z}>}blq`xWPK2owbcmjiiu|bL7n%mu@aar0nMDqh z&he$Qxe&zT1hRx2A(J6ui$!9QaGc|FSP8`Dz+yT}$mFpgNDT3WVn`zP71Cj0ATv+` zk7K2JBcal(k#V~yX?G0E{34bQ_d0iA>$=E5Q)H-1*`^mY?I?Lzkc=b1;`4-63tUajg+-@$SV%Bl&A zw4L@$l-yKztzvdo%AI=|8ILgLfl8TlFYvrSE{BoPcydvs>tlH1o2SM8y}jxCw`MrB z%u}qi+@4Sv^rEA8Q~6_7_pyM)L1bI8{&2hfN`cEg#=GnL)k4K~ou^%tV7McoV@Z0> znH-M%aAgR0=}#;B#Sz@1&NWuH8+S)>G=as9w%c;`gJpYut-Q6CK77_~=+X&;uGjgc z)-C>~O$9Bw?07_LW7>k)!vnVoL7BwENt+Sm<^bx#=Z8tV&XlhE#y5Dx%eFoS_-4dH z(L%kPb?jZ#h&2|V+7rECc4>?G Ow;D0CUe}NS literal 905 zcmV;419tq0P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igY= z2sk=e2g0xb000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0008yNkl=~&YaAx88xwJ5FMj7PvS#qX)2|q#aa=hQBnKgixCx~P$`;1 znch(>N*mgjS`nHSN@-t2O{ql`AB-2GQlhORCTf_OOfr*X=FFT+AErqe>V8`P&)WZ5 z|5_|~+WYS2|G6WV{)^WgTKm+0q%Sn$qnA^Ba$!>g_wG*vyz|AyS*QWfeG0-s=zY1) z9>4qzw!5BuX^>br%fT~aSb?o1%w3eKP?`R+QJ|cMz8=_j`ZX3VK8qAZa#JTsMvDZr z3iD!bkt^9)?l1v8MJPV!QL-ToCwpM)=j$=evxIaAC5Q2AQ!H)2&Ym?#FvV?}0#!b={saIphO5|RQTxm3;>RB z>lW7T{TAPYaGcE5Spm-#cpk|5 zGB|MhPlj(TXS6gV$8OAc)u>KkEJD1+5QV`R-+8=Zu6oRZi7DzsJoqDg_I6!#_lYjQ zl>f@Bk-#n^p8O3%166;ju%Dndiqfu diff --git a/resources/images/protocol/sip2sip/sip16x16-phone.png b/resources/images/protocol/sip2sip/sip16x16-phone.png index 914d2e78c3dfdb945825d8e8572d44b9f9122576..0babcebe800b1c453f4e9af8845b2e5d7bff1151 100644 GIT binary patch literal 2075 zcmbVNYgiLk8V)6un|R}5h^uCUf`}xUgj@&-m@o+h3GzUI=oTd;1Ei2l$P6al5Tq=i zKwW7q7ZEGq4HXb6R6v13wM9^TShN)stpcShNJXu3aVIKvfB5vr&NDOToNwOu{VwM_ z&t!)L``cO*t#LSp#YRW$SzVO@3C~QZtOt~XL>7^q3`jB`=E+(LXPzA}TNz@`-BcJ?6my69! zW-6KV27)H=$!~*_OG8M0upS~YDGU!K4FE_i76tHRvRJ@65}gLnsWj|nc>tbVCW}jF zlipoq%$r^n%MAs^?|fk^J~oC)+@37h;^PLW3~HhMFDNtB1gW<%v4hV^dQ5cDb zbtJzq7HN%Cp;T*41~=0Nz0DVd^y+PpO00)9q&F4jsy`3`jm@Id=uAI=@iub~jl>8&W^}0xFa-L1yrW?;L7b=Vm^9c6^%AnwXRPs zO&NFrw_NOBH)3_WdfLV2NY`G#okJv97axrcl6MCkpBbo@2bZ0^F|#$Nqo2n%Tay&C z#r$Nyxvh6~!5QJ&lGMbUn~WZ@bIF+Nb7{5Xx*J`{YidWGVsMC5JyT+?yS-pZ*vCDS zx2gje(VO?mf41s3OTQ5@w5WJRx^HhuRl8IAep;;Cr3%jZvsLgz>frK~X7%3_R4-{o z>@fiV5hT-Bggtk{b&Ufw!u$Z2{DQ*5){%c# z2CP~F+x?Mt_~IIES*i2otOs?OA@Vc8_?P3KZQPn$ja<sCvczRkOXpcgSA0Ia(@bU*)}4z4oWi}{(~HPwtoZP{X2ewvWa{ieObf9sP(7U+FCApu#x@7Nh|?U!v+<`xqZ zk7kSsgOG~uB)iqCvir&HU_f{l=ymOBPK9G8z1uJ(iRoboMy7+T?>{wjDj~HgYKK zde%t86!AZO*8yV^^;pd&mo9+iqdz3$#*|(ciF;%`iP~3z|J2ReM0uV@OjzQ zAdie?HB~PO?bWu~72vrTmn&ClTm137J@yTiFL{Ua0#E+9yT4&`+JQL5r+U6Mku_n7 zh*F+*fX9nQD+Aj{nYK@47mnV&n;p0IUaF7$z}b6;@xbQq?(6zixe^xa7TIR)+da8= z{jsr(hsJFDDjQdjEBYwY9^6GNZvNw^nvFh#l&=yZ6B69de|mjt#%ufhgZQdjQ|w`2 zlD}crd64$(i_YOz)Nx_GqedbA_Ry&RP@3B8>r)@AdKDwjl-{Mk`5T5`oqgC~@#|D# oRYBv~$mxqW-N$5QucK1Ua8ll#2;k)pd8XgBL=+636Grd-FS33?YybcN literal 956 zcmV;t14I0YP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igY= z2?z*IRL}GP000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0009QNklY$7JrL}G*o zvsR6P#7j)ogouQMYGNY15VRs{!Mp#KmAys-C? z8v5bs&nVj)$rXPi9LTWy_!L3UHX8gdQmlYE`|;8Or5p?mz{`gpqxqH-NKqhr{UFi$ z0v^pI7Jia!u}sh&$D_C7i!9D4*_48V1F-GAjrjd1@af=-j^kR_X-$msQgR=DagI7q zg`zou0<_?F^X)?#NB06KG;s_mz-TyR>}Rig6%h*za(Tf_!9rD)8k)>; zX|$bC=!qYLdJ0W|(y6y99QY<_y`Xc!c4)C}(m28q07O>Lu{=IaM~hVii*9lMTKDXZ@JMZm$}4$j7Yy$iV#9h9zwlQ(`^xT3k?yu&bXL~~3+`L7uj5a$xyG&G^~GD>ri eI(PAug9|=U^~GNR1GkNll=}5Vg*KjzNg& z${yE@wvI@^{&C}t z+B%6zgMkT{4%chtWIa;-=fGs{-fqaQNP2_BX_aJA&`cpN*Q+o!AreMV$uBg8Qi0H! z95Rb+CY{Zo!yE|WvUw~%o6igt!coE~A%BkJO;`b)&wv?hHV+c8ASepru!U>^FO(;Y z=JI*$P{tfqq}CCrT8_=xRg!jRvG7~5h(L>>1g@3fc;;LO#HZr~u1m)?fFKbD0>!9Y zskRG(>;-xiuMpEJvoJ-p7FPi?8AgVd3|-n-LOJ$fT~j1yVL(r zvs-D}=if{Y?{Mr7b}C$P_(9i`r+Dt2%WHzX3JCAoJbq34(2&%_Qu=XydTy>c%V1bw zeN0p^$`^Y3`W8IQ4fHAQGU@gDwx*`v%B+tv+DeRaxy5UrFb24WRXw|V_p99&i@>2U z;D87^+tef<9T_>hWfaQU(9qBj9GG8g>*=|1?;iE^nKQShreLfo*)I%tdT+cpQup-| z*F5Ug{(*tIbml4_Z*T7fLCl+|)A5}?dj0yGoL1R|{;|(0sy>xhgM}xSO2^`=lFH5I zMbH15&e2K-|)WrcxyrbFVj`^1QePjiEO2CT(9&t^ z@`riHN?#7DN8%=f@^>|UZfr@sIy~OtlCiwrXdU`bf9F>o^&Bb%>&3g^m2J GU;GUqw3ade delta 1315 zcmV+;1>E|l4XFx{7k?HA1^@s6#I$TX00006VoOIv0RI600RN!9r;`8x010qNS#tmY z07w7;07w8v$!k6U00f&!L_t(I%bk@=Y*bYkfWLFjokyqAmT3`-GHp60>X1O95;U0T zir~rx!AIP%a4CD1EL^g6g}BfSE20VFhQt`bXRssNVFJ2xR8u~Hnr*2Ffr>@-=W~O%%L{L#g1rbF>5a}l} zzi^Lhv#T^)9%~)OMi}EL6mqgKp1rtR04&37HjlzFhCqD^^Fu& z*|zJ@*PzNjcbeQ;OK_PyXh2PhNMLx#^5z>;WHO3A23F{FA!r|_+n^!=RbhUiMdBUK zW&1ld4ou1`FF(ul)C3}TpRi+Nh(_ppM^NRpJ5I||AA?2A}JJ|QqB+a&` zFl3&rqJP^nbbE>_h$s?t%WtFUX>|Bq%|%SZ7fUU;?>3G~0$|E1(1- z%b*G$JI4Xk(~UjOMHuV0%2iDU7a6P!z#8zW;C&dZg+ksCMUOZZQL-7~qYp+{T4~}# zK*VEAN)%;qQAFgjIA{9}C-tOhN}BpXq+}zZI2NO_4Xmo|R;%&-%#?=7r(I~ZV*aVs z@P9rbm&@7l@$u)2#o~@^HcP7&`+N7+s+~?8d+*KI=%^Nk3nV>nd%dWZ$z)al%w`|% zcDuRTi;IQX*;)JbS6@X}u3X7m=O(5~rI${eIPuAW1N*0}byTa>?)mfQKbf1G`)+-G z{qD@nOy~IVYhA# zGCg|qXutWKJ9iG}ToxDup4-2F|A)W-erBG(s@-~DwRr|W5)c zIaXEb^*Rd+3*5YU(_O!QJ$Lo$)qg#`UT?ZsEIw*VAlQPe-dX8R@j=sj1f)tH-`V}5?#EG#To@4eZxXOEQ2W!blHALVkH zTrT&-_5T8DYZ49GLteT7001I-R9JLVZ)S9NVRB^v0C?IfFE7{2%*!rLP8=*q)ypqR Z2LLwM23QbN%3J^d002ovPDHLkV1hJgd!7IQ diff --git a/resources/images/protocol/ssh/ssh-connecting.png b/resources/images/protocol/ssh/ssh-connecting.png index 47f61aeb5b7b5ba810ed6bdeeecc885cbef024a0..5ae7f03de9e8afb7b6d28e5e97bdb74b28079783 100644 GIT binary patch literal 1657 zcmbVNX;2eq7!D|wLphX6Q0lA^0goJ;W0NezkYtk*Y@&oz1Eb=SEFnO$akGIyp;(Xt zR@AECiK5_vjCQnmfJ_;xsFcB@)S;l38E2}_XuW6!FQywHwm+Qy=+5qb-}mnOJnubQ zxm^3{H2+!tG#YK1Isws9>rCpI?mLBgr_EawH8Y>WibF|)-cVLZLi&HyYX z31g)|!_n9kSf(YRfWVRqw0dJfwoz z`g}Xa)?p6ZNf@bmWX$t`soedyA-5vs4ZMu7P(?v=5ZvgrVm4BZNEp-?mdRp*IeZb7 zMIoOfVp2#SR=fm|r(^AJdhC=t1b<3m`GFH}HWkxB-N_#mhRMM6ZVknv=QN-UQN zd0Y=xZF7*Q&4_vIS}3~{Sml3WVFiJqBu?mYJjc@k%QJBjcVyyrK#>dqF&flpvAG2c z+yxqs7r_WiE@n~@xD^=7Fl_mN2OJ^9e zn6|7l{;vx6FKTUVz1PsJgO7Z*fOh>QB&yYB@MonJO2u7suLoV~3tID(y?d8WX-98D z2uln{b#M%b$`h3?HaP}|flla5Bb>`0W5G|X;#d6gV5sAE?I(uR)RM9?pSmxaf5zc+hQ;Odjxg=ME|coHE8=wj;^NRmFIjGU zVo%hJLget~9*tHd{=p9(yfaV|J!{&xctu!PSa6jpKLM@{oGjZFvva7m{oF@Q(CjT6 z_x*-7WoHL}(;0{y*7?=ntXS!V)`%bH-pD#LyltB$DPkZtL{qtQ|(6A)fzicFhwR3NaR2p0Vdo+(ewQfaI_*p2(SyL3d%*Z= z<>>mMO>;&gYRT5sGxBa5rLy{bd+g&&F&ESkPO<+-7BbPH_~ZRv@Z0hbq^ QtaJYi)JiRKQogq2Z=Ts_mjD0& delta 1047 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 XgzHruI<-&f{Gq5~;*l?8y3)S@vKorO delta 1051 zcmV+$1myd@4WkH<7k?HA1^@s6#I$TX00004XF*Lt007q5)K6G400006VoOIv00000 z008+zyMF)x010qNS#tmY07w7;07w8v$!k6U00V_dL_t(I%hi<6OPog-$3OG_aMyKp zV_Y?hHc*3$r9pyda}feLGmo~)0!ZI&kE@t}s2flS2 z*9D9aAVjnv3O>z&_#{5oYPDLWt*x!U6N!ZHtgik!dG+e-Zxa*Q8P~NtmY*U3m{Uzw ztJV7Y`uflF^MAkpPjq z1c4$94NefWQFxwYZ?DC{fzP8y8>CW~X*NSfMtbml#p~Ax6bel&i%85O9=D0b>?7eI zh!X^wFn`o-$6B{h6pKx|x@`9M4@sx~Z_{I5%&8O*VUurKNwl zetncDPd3@u@JOe9hKJ)w8IMqCPF!BG*o=;5MSmQdIF4X{|B(ClS6E)&<=(x^+`an^ zjYdc=H^zepE9CPYN-2UMdCXWTO%Q}M8j^Zl(rj7?@$q6fx*QNxDn6T=9{v3>ve|Qt zjrDQk##cOixQ=Z@5DXlnFb2XfMCYLM~q6mxSE zJb!;)V10cb-w%;8LSc*{2m+K+pX&ipUXagM$mh#|pr~eSS`#$&le$RJq zhe94Z-_6er0D$?@II)smed)(*?i~8PaT$wAFN-OOno1;6s4NYM0jQqPVxZKhNyU_y zMxVXuIu-!{P6k}1rqr?ofsQb;G!7k>)o7;C01y#vHEVQf7zJvvRNNHF_`RW#0pj{d z##*inl9@%A0guZevBVs?N|%$S3)3^AqreEOfF>|vlm@gK(@hqEHIgyKE1>rdF`EHS zsZeQ=j8{&nWeQM4kQm5iahN&?hCv>W1&45XJorNpfnbCU(Kn9?hX}Yl0m28TF9vOm z)TaoP;+Sb$^eK{IpeVC|&CbfoVr6ky1ewZ)!@|NG90qRv^Rp)Bu*DalP)H78Ai-RNyU*2`U^{s>jh9q zD4j)q2*gJqUMLKQ@lmdjFAU*`c@nWiES%wZ6IKKX5gx*iL17UWh9z()U(6Sw98??= zCPeuhWCklWStyN3ht1f1k5s7Iif>aSi`b-BX3BBRG{|0saOL{u_BH6v`3u5E06wg9$|;#xz#{f3n7=onbrL z<6rGEBcglIv3=eA^x^gRU?zHINP0Mq9&p(P0JHn0VpL_l`-3VzJ_+@S@+P1Y*#}g9 z=+2WJbFVhJ#%*df44p`>J6;#PYSGo&g)7x=8RZK5q^obhytNhKgHd06>qGTcd%-{2 zm&5NCjpn)%ac4`;Ke^m|Bs^;%yl^~46?Lq#3u5}Xxya>mzs1Yy)Vt)XR}YSj9lZZR zk@TYqW$|^rzK`p(L)^DTB9WZCcyaP!XXn9(XRb6fG?a97ba;7cZF2v@=6P}Nd(C$4 z>gg#3Vq;^M8I8t0X`F$YVO|-tvKVP^Z*LhMMvMf}*4rCc(S`>$_&YCr(zxZB;zmE2 zU2M18V|&eNL=YbCt=wgZh3j2LYivcIBqbgAxz`Fs^Pd-FUqYgukLN~H+Ozfb^}jx! z2#EP+jnnr|ixo#I_LO#a_l=BS>uv#OB`hy;?z(fQd|_>I^&#!>0?#G&$HG?RaVkef zEQ2=r2KT)l?(QukwXCYDs;_U|QvMXRYpm(QjefrYx8?a(oi1pJ`yAY2N%U}G0;9mS z(W7nB$s>58#kRM+xpdq3K#A{p9WU=ftJ!Q`wQbd^t$9gFNktnhX>(s5_d0VsKEuR+ z`t+Ia?8Zlf!DDA8CS2~MmppnjwC~B1yjDZ;J13LV(&72^X)_3y?gKX_xF$DIfw7<-m|kXGw|}nADh;> z1`Kts_bc_!6nvGnJMKMXjoS;=)hoGoGjHAm7=}L|Tyd7krd^vF*J=PNJ;hNJ(=5u#zb31bj`uCqKizoy6 zHhFb*b#Qj;ob{gGy3Ly>3(G1^FP3t~b-(%S*Zz_!F1WW-(R;f7^p}6x0Vm+7dgay; S#;5xozY?iLF0K_OZ~q%lq?n)p delta 1080 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 JLyxiUU zzRx|s-}8Nk?N#NO+jF-=5R_@DpdDb%0Z(>%8hH1%tsDZ&OOn|oRr5Znl@VFU=;hrk zYzZ=rtb=8|ZEsy;iy>&6pL4n-mu)ZU;e!e$p`(Zd1%QU2Vnak=JONgM-E1Ql(jyBa zR}q-=>XA1!Hq<6ite>lhifnbX%IS#)JUTC8D1nP3Bp?W~5(7tqO`$Lu(IacTB-kg! zN(5e0kpg;T-6@yN4pY3y!WxBI?m;mOCI|(FYX|}>gjFb}Qlj7{dV0w+D((;Q?&l7-eI;ETe`c}Wy60$J4J zs8)p%MHr^j8Z{=Z30KpEnKsj=B*#`*6^&Au%B(TrIt_-IF`dbbm6=s0lrkA{V;Pmi zT0&uo33=G0T@KjYz~axul9b3Y5-&P=zA4!Oc0VuiVLvaxR5bzT+ZYcQN(go*3bYn#)cAiS1glH0-qGe%)Fg`pU|9(fU3q}G`<1dh@Kj;poE2G;w3vZe&iC=>1R zpLR)#Ko2Iio6Qdno8!ZVz|4qXIBp`cVF*g;x6npsS@QAd*DLtV2mF7s$j@j@R7_EAWqH{J(uww z_3`+uK=$uwX-lu^2%p*Cx9|Be=d@RqGXAIQ=k}|O`Q6^w!mIh(aw~u2^SQEk`rdf@ z7aiAAk3IhT?UHS8EH4k18uB_n6Q}8tJx|zz;S-^;1~ff**LToS+0~O7haSkUj6Coh z{pNN?;g4?NQk`$1_mQ=pzZ~mgN_TY4tJ&lBsnazblh#q()}7n;LgkG;$0|?R^M9Zh z{rID^lkpzo1SVu(lW`5#YX@@%Z0!@|zQUY)_CM6AulzRuOV*`2Md@VyO8e@{S$Eyy yz+Ci2LvV?-&P4rq?uX;E*#{4;uAYCNPf3IJ8`y7ax_mbizd(z*iXJjGbp8X&oce13 delta 1208 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 literal 671 zcmV;Q0$}}#P)JHx{dwh_rBk6hh^5BWFL4hFW=|k`9ALp0ayjF zK>*tF0bs#u#H~w3D(xRO7DqS67veyy%c5_ata?){C-tFcb*8wPFJTU!U3~Nw={b4#NPBN58n*vkN4>~ zQ(;H2JFw~L+gic86&~c`NQriK@u-srL;A#hFJ3T^>Yxe3-TZTd)?F z%W!vU5BTeDaE${kzsnL39Xs&)k_-KR&TH8Q(FFQi2(2?FmcAJnDlW3STANBvIGt44 z;7EF(45r^`F~cqu8#xm+6d?Sr798;+b>n2^?S+ZMaUwSp*_p_~l(6%&&dr0aBFzT? zVp+IVLt$Gv?o3{I-i&oJKC`&8LPEhDSj2ES(A*vlt;?Y0+M^YNG$Z+77H#K&ivaNI zOZ@L?1{5=-BA80SR1B=~WpkpyP>LamAQeMOTE78tMr@LTRFp9x%KePlFfkMplwv4i zn2KO3f>i3?377%NoQX^XsWL`V5lqT-AhJcr+j|-R!B3<01tRp26G{L8002ovPDHLk FV1hH6Ftz{y diff --git a/resources/images/protocol/yahoo/yahoo16x16-busy.png b/resources/images/protocol/yahoo/yahoo16x16-busy.png index 760da06f71c010d6b2583b54402a3861b8477d16..22d2a0262e54f842a58e336164d1dbb77cdac7f5 100644 GIT binary patch literal 1736 zcmbVNX;2eq7)~uhK(I7;p{Pp~X{ODwxf235WJ40#AadgrAtnonklnCZNWf|90TmB~ zqEMxX7A=Pd9wRDVSn7zjK#PEi-~lR%T18N_14uUS8}YVigkvMi|!sR$~%k7F&I(qr75bZxb`Az^DqI z=t~`QDoPy;$WROhcnl6*%K|}w&u4&K9-j|>2C!Kmo5><>J{{zWd3-Tj0E}N$!WyQF z7l%Lr40gnu7aM2~WpDFq+irx5S8fJW)i-m{yI62{KqrqtO=EsJ0mof&X>mo!aKG zG!x7Wfz4I?8;w6}YD2gTtLbWMI7{OJLFO~Sh&>3`M7FS4Q zQNU#h*et#f1VsWV&tKrr!)SSQTQ%HHa3TuxlXfj$`HT#foJZtie$%3`LVBIv`k&;;31VngCfSANWMA(Han& zfMzSuSiBI78B$?g0EQZY(F}_X@9=;n;Imn5o($xSMJ{9sIYLk<6A0xTNFW5M<5=DQ z$r_VzhG}b$|Fp}5i0DDv_HFYMhqvPcBgD*L#Bh{&I`c`SNdqcK8fLw5Y+H;nR5Pn? z#K)(-D6vs3|MZ8AvkcMhKS@(UgI`Fcam%3!e0ppCK#x4NGrL6{m%DJ~_oex9!AfyLxBbGP|h#wnVTik z8gvYbcUBBk+p&LX$@)ph#lQJf?d}5oBFTnbb%5D2x4A9TOMc84Gic zaKBaPP*dI93l-ZazwUx-hhLSp=xSWoU-w^DVQ8yy2#nd-8YR5c=y&Pt%iOuKG~`Ni zp&i+cm-};FMa-7U$({2pMStrOyJzChCH10@4|`;tua9#bcz`I^wB6m9vubTmxBd1% ziWT?Hd6e&IAgk52gJT2I_a(%x@wQ=ja(+7?vbp4V1Z*(>$z-MYvjGBE8=$IU4xcN+(tzesYv zvp1yDdL%u&gIOvL?@P`rd$=;fEnZd^7a<+JqUr6?CUNSjNawqNOjat85U3I6z47sJv#sgA6*TKlXB}L^IruNJ!!B3_5 zT%?mt>0jqhq2II~$gjd3mwMc~lHT;)&ATTw_eG|Ct#Yrtqnjv@d-T5E_JdEAQ%+|@ zHG6ooH#B7AB38PWGta%N$GLjCS*oZ{^ely2qJLb*SnW8nAVASs{YvKJri(08O)Y&0 z)1u3w2I{Z2t?I5D3ZHW(=V0-PLryU+Rf=`%hIi!MPPj*XF;D$y00~|G#{2G$uOi3; vUe~(q?O(EvURQKuojctgFD!kq^NkaW)LE%thtdL$+x{&oc@R|TAGh`&cH5;= literal 805 zcmV+=1KRwFP)XcC%;@GrP|%IQhkD3*>ZzL` zL_$FiQ4$eiNkpKS4}yjlVwogfmuO9$c-z(OumAr}4{K34{lJd{=luBaJKu9a0EPf^ z0~=W^)5u3I0D_D zK1wOXETi6fC{0tgvu84AD2R3dVB4p?y>n3)bFw(2EVnSvJl5T{^us5NIt*M@bG73Y zmgi-Pi3#o98Pt0hSHj-lEXG50WW#(JYEn9PsW9Zen7^LK%PQ<@QWCykr;qdbPy2XW zvno;Al&|Xix`$AnfgOoBox)!CpEc3Ga^C$W3!mTT%EmY#6|qoAqaD4?IhbdFq`w*b zD|qJ-8+P~26kSfm`4k?eQ^V171I#XmAd?CNnF#mtV(O?oFeM@C#bzAU(Bi-(sg;nUc=38rq}M)7O0R&3ONY=Mth2Lt!~gdu!yGPinJu)DPY>1sw)*g(CClU(Y3afp^ z5wBHJvIVA$te8Np1{4bXT$sTJXPeYEw|ZqLgf4`zV>v1I9Q?anR00000NkvXXu0mjftPN(= diff --git a/resources/images/protocol/yahoo/yahoo16x16-connecting.png b/resources/images/protocol/yahoo/yahoo16x16-connecting.png new file mode 100644 index 0000000000000000000000000000000000000000..ff2e1d0ba4f1dc88b2a394d2bde34b2002be69c4 GIT binary patch literal 1654 zcmbVNdrT8|9It>58;PrPiU`}~kWB}D+_k-H3x%}37K^l&hf*IXM|(h#_DXxD4-vNc z2uO&*5RB0|=UX(W0SEYqf*=?`kvRs4^OXoQ_+;@ho$LzK?GNK0yWHLH_xs-W^ZCAW zr8;eV5Hp0yU@(Hzi?L*SokKsf0;kdMwGkXPz09MOdMbs?qMW#mV91PQCIP6;cs7wt z;6``;6(WYg@Xs-&>M6Y@QDPv?9NeqJaha_&n!$*Pb6Ii2I)VZ+iENWa3O+e|0R&7& zDVQeI@HAEhkz-oyu@NaAZK}bu&LB2|aj`&*OF|Qv2?_^X<~)mC;*x^nyb^lv6>~vg zT!mUE1t*-+Yjl8uv=M-i!)F_K5Ck9y2NDPo1d0M+9t3lF^o_6~fkcQ%U=*0VK-!wk zm?cTZRFk&olN8LMD653abvm6KC!a&wvbm60EcSB1Fq_t3+uarlcd;$@a32Fk*bO$5 zl`@eQz{`kdk`77=(wwuOjV@WU0+W7X{D5NQ1*nSSU3n1?evwqsb`Y2}E=j zQ2`Hyd58#t#HdUtN96)OhA1&5CiiiC2n%BZ1XaO^3=#<-NC}Bh3{}YZGE60w%TPY- z!>TQI3bz;tpIsAecM>c7C|07d5jaKKQb{t;*8#d5k|OOnq!m!4AizQmZZKKAf<@i} zO~i{4Hd6s%RM|)~FrHzF=>s0{Pz2_|LIuR1h+M=I@kNkGfr^xT3>87(B-Z$Uvc{#I z;d|o-~82(I329+*jp2||6Kcg?)Ee6KrnovzB^qt_mG=4tT`Qf zTy?C`8b5cqF3cHQFydaC+fW;^(Q|p*&|UHRu_5=hH!Qkj;Y$trbOte`92evbj+!gY$nF9xW)#U4Hk(hUsYQ(vk-nXU=*(`{)SpxL?7Mkm zinXEtdjCBA=S9Whf~{{aCdi{c(+y_EtB-}1azntEL->&kaXX3%nH5*mH&DUF`_C>~ z>ce*?f+6Mi?zaROS3Lgu*^)y~kJTJadcM9lZ=?UYFixc)npM0Ddv!N73)uoZzHxo9 z$4_>0x0p(Ad({`bKn=Gxp0eNWlZm1p-Mf=yzZ{gd(Z8wbNnpr{Q}ySi`-it4OkQ*@ z_zRW1YL{!-_3Z&Y6+^QN&xGT#4J8e$=bio5X7h>qBZ0^;}?$DH!E+>Gwx z$jHd9)uPa=!LWu`SSJOzwOp$I~|VG z?!6;7x9$s!W-&MSYS+}fgi6s@OL$@--Q$S=cg>ub7-%@+cK8ShM5$*r+>kGy{Z MwNi`K$TPnG2bI)#`Tzg` literal 0 HcmV?d00001 diff --git a/resources/images/protocol/yahoo/yahoo16x16-idle.png b/resources/images/protocol/yahoo/yahoo16x16-idle.png index 155544bc8740b77bb754aa68593cee9123b5c698..9965aec3c1e9a56c85066442f616b74bbd3041d5 100644 GIT binary patch literal 1741 zcmbVNX;2eq7>;O_V;B`w2p-)oXh2Cen>&%{B-tQ{K_-CG0@h8kkO0YsWPt#-RZ{&+EiPA*hJ9zlfSF+>V#!YC3AuEKyoJsOKCF;tV9 z_#@^=p-k24!Xk(W#Tt7bEs^c*NP+_q;gBW~t_InV}X~f`q zu7asB$}p`iAkBn@rUi$o)8f@a4Y+az;Aat$1bU1>0gFDtU=~@#;25un+}p$u2#l!^ z@nUe?sR%^~Aj3@30vez3~C9&D1xArloUn^n}M5RAy_CB+BjG&I;lZ7ry2;G(%wR%#y)CXWZ8M?7{&nN6+UBrS zBL*okGoEBpll6%4oCK4(d$%E*BI%82tw~1~1x-M3b&?)45P^soB)>2;I*o|Q5s+Er zbC`S-Az#9k@}(R$!jmI%L^{dwHY^L_NCi9uk-!2D49j5wAK}X+Yzg8oluGz) z)+9F2U?xz58k@AMBkfLLW$(m_WF`zHa8nqLCroxgh!!Vsvlcf3vQQr2tw7Z}gH7OL zE6{kn2xihHV;X-Gt_Q|4EYiKj116uxVzRh0m^~i3fGJ=LV1bM;kh2lK00t+pn*WnE zh;#!h0uf1=<+s|s(E*{Td&}$C zf`{i1nA=7v)k3?KE>7TkL0;wkH*37?N9uCz?=`JhGX&ymzPyrE0&eA;blUfjl@YMa z{z0K>$e!@NgHmq3=JMMzq%t#FM8chhoGCAeXkE&qvC-B z(#458uLU2e+)y)HZ4ElKY^WxocWqNtohm*HDr!pVTUt6CB=Jiu&|W;T+iAXIq=)!; z?dISI-M8FwX03Yi)S>6_HX1&s5++_rCy~ zn_t=~OI;T{TvS=k^xxKU|KKs7tZn(nWv| z&7@MPA>MNa(i-xLi(BqwIt=*rNc*l{Yq)%(@80rr8@&rCGUJRJMFZdlPr0(xF44!u zch}>pyNy8ZMK%5*we};rre;!ecPc;Sayhic9zoa z{Pi%e+dinri|L{LQ`_3wJu|A;G2N{N=Oh+OExa+*3rN6)blgu94CUBNhj@jYaY_|u`Qp&2{bYrCtxsmQPb)6wRuG3fow_=M!mB$qJHv$wwDI~29c4=r-&Y@P z@2BTz%`pv@)t`dNQCDPTdzv_2ZeKeT9IrSvuP{0~udpziH@zj3G1qzUL4SHouA8+Y zFMPjm$w1ze((v9L3m2*gQK9kdpV~M>^U-^8wcnnWNt^r+KbBZ8H_Yf}1zmMrf5^A6 zZ^!U0mztWBvmHO*$aMcTidWE~x}>W9K_u=dQ_)VpBGT(0aSLX}PDMsJRul!XuZJ0&R(it@7eE(GNHAXS2~kPH`}zrQ-*2)3#T z;{MDr#vpG?N=PqFjV(6y+p@>K=mY@1^SgUsUYSxI+MZdQlb>t+)YrQ(?GZl~tW{S$ zttxnk#b2D}%NKp)EUvqqu7KM+htEDX8I>BhuQVb*3}`qs1me8$)*i$6jD1T}egDTp`&0b}PH*WXw+$rYH)t*=)?~53uG57fU)b$#`O| zUJF%rSVf0^{9$x z-~h<73`!{gKv5J>O0hMT;?ji;U@7Xl2q2M1!mSLn7v^qhIH+S#lRw@41)!9IQi@P0 zgrlZaKxWJVJ`7l*kopCTzu8p0t|&+oz1{!>K|otuTO?f=;C8#QS}!AIz53r400368 z{;o-7Ib|e}BnhG@f>H`umLrxV30gxO%(b)8PnI~uo{kv_3ILAdB727|%Q85Q!Yb)7d0K2tW*8g^p}WI_ zoL`R?hla0}|MZ~$zksmxnzL1D$=cHf9oeAMINYA4(XNrN!?$Gxb^!Pd*~odge)W?o P00000NkvXXu0mjf=&EqK diff --git a/resources/images/protocol/yahoo/yahoo16x16-invisible.png b/resources/images/protocol/yahoo/yahoo16x16-invisible.png index 076f22e05fda94da6bb8928e420045c7301d3e69..6141e8925092382762c6e1f930d797e47adca1b9 100644 GIT binary patch literal 1759 zcmbVNX;2eq7!H*Jm7;(|Kt$GX3@SM`*M>--Nj7MN2!yDN7D-4p5Fpu*ED(?~^{D9J zP!R;8wTg;orJ{H+h)^M;R8SCG(Q0eO15~66MG$Gb;jsPT_@g_!`+eWL@AJI(?AGYz zOPr?9nNA=OoWx6EDZb9eA6ExE{GH%WA>)fDCW^yiQ8kvOFdziJ3Qa@+u~w0UND+l9 zJG})7ArPh|Yh-a)oFtN~M70!!Rfl5I>TxuI5E5q6E0n1S1|%X$8Xb?+U)MkaG%6lx z6-z>s=!HnKW@(NAiOpFqQ|6>9gH@!kP$0y_#R;?srT|RZG@X%a;*rLAx%l2Hrjmeh z6)crUns6#k5)BAZ0|Kxp46>32f&iOM0huf|8w>*IG>}fE;WwKMGPx`^mkt4w7YVm! zP^r06IDFC;e&UgmF-*^;QnRwMC|L{&YDl7j!NI{+4mzETYmklEI!s|A>x{lr3@~C; z8Z>%LgX#b)qaqQ_z<4Cw(}@tYdWqy6vCcS|C_H6UlR{4gDKx59YmIAM+lWb#f8BVm zwo#U?N2pT7h-Mg+cs!4${)uymLy;ILs9ALKAWPy})y7!vXsd^kK< zz=s(0DXds$#1uLuGG$kT+nvNRKZxZD4Tu6m4Kfr>o9ck*WE4Y<$*3L>#82g z%MEqAwby#}TYpgnr1ZjNZWSBMt_Ni|A{O%DLAPbeYR^Z)&>o?5=7`)6R!7U7FV^(< zM+CLIU;Qgiyr#2VYiF!Iaj!0HXfYJutDb+;(N zq4vM?;SRf~knp*!X%WM7{NKL3v7zL7Y$CL~>*uP%oOQ?Uk?(Mv?Dwi%uGxCseL3Ku z4>?%D2@NE^0r*kc_OYPTZH-e8h`)X!vCfmi-R9Cy??3pn(Hs;bF z1+f%*y)%!;i}nvVb#&U??7K_kyi0=v0~buKjJCGGE7#p;Ju%d_x3?1xcYd<*hcEjA ziqBsgsy_7KO2L|Dg(H6&TL;+naIMjvNj(6`qWdo zkMdcX&ogN?f1a#C?(}L)7jco_@2>8VtlJKqzi!+1X?dGE#K&{}#&OSr=8O$r4eXJ6)-^YF9-Rt+G>yZN<)S~#p!^1ZDO*VzyG~ojo zaj{=2daiEW-jfkqSQ4UwG-yjD|7mw)=xA}d$8pFr%RclrmESjsF3{J5afpZ1*V7%gvhY`J-Q2dQS$M%t`f;=vU+&y0M3d8UmWL0y_& T*s)0NX#M4gMa$tTfqcV19K@;z literal 874 zcmV-w1C{)VP)Ef^E;yyHS+ zT+|Drgv>jy=0^;Jd5Jg3g<8o*91w|Z+KZpBDoI1EQ;|>mq>T{{|kJz+;WxMDeu`85$a5YikSBG;uf_D2jrrs`U2uvaqo5 zVqIO`_xsMZSH=3SzMbLWVRT)mR4Ub)6-B}6bkfk!z{to5z&ka9fI{O3$GF<>=X~zD zi%qduj7%oO+}s?6LV;i~$ol#^Q&Up}0s-3F+gV&(Y^@PIu&G=xa_h?+*DTAzFbv#o zH@00%P5M1ZQDqaglU>J z1FzS6@CYp}Etl5T)<~z*sH#eHb2E}8QK?kOX0sTELA6@N1#SqPL-N1ONa407*qoM6N<$g2HO6 AbpQYW diff --git a/resources/images/protocol/yahoo/yahoo16x16-lunch.png b/resources/images/protocol/yahoo/yahoo16x16-lunch.png index 534cf418b88c041c196ac60af4e9de417a20e29a..3ebf9853acdeb129fbcc3ac92c834a64b46ba232 100644 GIT binary patch literal 1708 zcmbVNX;2eq7*6q`4A_iXPqga-3f5$^NytS4CfPuu5KfU&JeFibB1twRiwP+sty4!p zsR#<5;7MEQP!2^D>Vd5wFs4|~pk+)M2Tv3Q)Y{q&hwTr?AKlsA@B7|;pXa@2^J0_{ zK3=oEC=`m1LXO0d>vZy&;yICguMVKo$YmBGOCsWN4Piyi7)7kcQ!zkcK+~`|3{_`k zT*QPF$~dhqA&E$eiWI1D108ki&}{}2iKbA5VKx)0O2-Hw6-(0@MPOg!84%E^Mc|6y zC`Ob?ifMInyBUkOD-%@qbQNC>hJ^w`n}8%RU<3--40@wQU=xAEyaICX7DFH~tU{!V zz!9gCqGA9kZpMIMI*X=az%an!&|!8khXXGLm<*T+G02-kgV};$j)2JpMlX=GW>#wi zaY*>6E%GD+wFF@jK#F(c(A8fM6DtS!W`2 zxDjwOqN#W$Ap%KHM?x@|qN3gs8!e-WB2xz0P!j~x8IZx?j%!%kLd0SJy75kJOG1_j zgW@m?o@rK*_0af@fyvyx-;i68^hOYE){#X)^$4!YG+;(Tfrvoz3tg>K3m9x3nME#} z!DTWyJQ(J4#laG;gv~-YGDL<*#yH-EWg=`2H=HRJ!#p+&%U~WC;Y!6UF%r&~h`B80 z7*=7l5U5dwjoHrxEeLWK zXe3?)Gwar2>Tok|0EROx(7nS02A9KRFoUHqYb0_WgU8~*JSmqaVpGn278__x5e`lZUtCgBi)0F_XgqQ{^fO#lxvU#0fU%vF)qn@v*)wXZF;s zOjAyKb0Lzbm|CmNU%IyM$a88?0OAl~^6-KE<3s(i=W$ddeE*ux_&4QX;IE}?u|!Md z_a{Tr9&P1W-#o19K51_ul063+vtR7{Gh`^+(Rb@vNW_e-ElS z7vv{4+FX85_ck;h>Y~0Vu2#0&G)r!TKlaEdVf+uI#VjcSJ^?Ph45xa;2Jl zH)+{kKVIMLC@#)Lz;XWTl^?I~5)I{Nx9`S!zbqQm_gvdUeMQ}v=AZl0gS%zjtN|Y% z#>}`u-`d5hY`wS8QR%YBQXhEw`ysOIoF`KcT*TDZO|9CJ`H8QaLmTJnqn*j0&sSWY z?Qjh`lhwN;MMDu0Lxt7T0;=wL2Uw$IpqE7iJAs4Hz74sgDc4s-5GE+__5< zoj|>!pV`r&sasUBtGjR0l5YRcwv}m4Nt-mR1;xuzq&;&^+vFK%wd|uXXJ^K#%4G#L zAMQ-+OYUBKx5>U_Uj0w#q@JMI6X>;q53cwgmncrHSh{Q(%oJ|r1-_E#BYB%oGWRL5Tfl1JBNa<-#t^`?cq)NuI!ic60e(A P-Tx1TOo>!U)@=9(jeeG} literal 855 zcmV-d1E~CoP)Hj14l)1$0^~_V zK~y-)eUe>FQwJ2sf499P^Lqjwjxl4D%!#=^nUDt(QKjFNzThZC%>HY zKYs+U3Xmg!xYmG$^(AyQdB5*Ju=Uo?0--O88Cj@3s)GfX|UXxa2OLIk@ zuv2NM&CSix(a|CN$E+V?T36@Y=}W$qM2S$c)$8^k)9KYWt_>84xLQl;^+_nV$pN6Jrw4$(zCHjv z9#00SX&RDED73B#hKZPOWye^8N3ZN|!H{I1!{NZ`bP|n585|ts*WX7teCRL$;cyr! z`OC`;K!cTuC2l@cxvr+)-fazyp1eNrvsnMp33@M_qOm$gL9R}C^fe6)4UCVEv&k5k z&lXukK^J|FIFYCu0K5HTipsyn>HeI^^C$qZSPTKfB4z_jz1E*jJWwCo<%j|>dGR|U z?PqXeVcM@`vVHHqen0C5X%qE}ww3d0diBEG;>{>N4@CtVDBQT3y<{@UwGsVtRsg__ zaW21Ks(%hpx~CM{9C*KVu%&kO|Dq_8(wGwYpL(}wL=%Zb*&ol07hg?2xVNMVsgW74 h64LeBs;Vjg{swH`7)$5L4jTXf002ovPDHLkV1n=Oj7
      IlqqdU9%ec!v!^SsCRezPSB z@iCqgr%t5NXr8KAL_>}K)Z^zqo_eQ-vY6CBCzU!fkw_!+P%B2083{cGsLW_Orom97 zW5p>+>fq(_^_yPeG0dUw52V_&XfC=$nz5wP3fsu)ULGrt%Ob4lAS4!xT^bw?lR_|U4xB{oOxzYSs(@fNgVkgq zO#}|O6j42qLq;;FNQYA}Th!_|!nkduP*ll4J8A(T78^91U3m?mZKMYKH;lKUZCZx~ z12ve9$gvuz{YVQLB~!I~w<8yjiU$73YN9p;%|-}Ajv2#A6%xsyzOalYBh2QBs45D1 zY$1m&5J8YwDC5h8avm2EC=n$hAJuppmxJ)+A^{?nK_VUmDIt*%5h`R{84@j)%Y08*YwkAM8cfcD{s?lB`;(19&H?Go{=#j~R(^f6j0u9*3n%q<9nmgkm$%ce zxz}&K^z_c=E%q2m@V(HBvs+%PbYYmJ<1`U`cHWY({e`OH5Zvd&Ik>ED$Af@caNA%E zaxW}Jf=rLgDt+Z2Jb2I%FMCR_uW;imn&kVs;ecH^ZOY6EGZ!Br9|s<;qL2GiGI_@= z=`J4_IQIPyj~)rpo@Y8EmI-%I-3uilY)ytlSz-vsuG!VltpKAr0}r-ltlz2b5O zrO_ehGWmm_L@i+jNH>{z~aVCItMt=zN&Ev^DyyuV1a1;Eo6fB z(3-Yie_5-cuejkper@2?>Fc`h`k%no^5b)Ts*0^0Z73Yzt!NnEaAj{D)66|&UkxENi zvj5AIO2?`IsgKV4YCA)sSZ0^7`bfBPe%Lu}%BTA9@bK#9gruT9_i*1Ecl7$o2Ma>6 zR zzken^Oukc70)_F!;*zZ7+CYP?dD*7g8STp{bk4Vr5a+f8=fjFno@0K0IVZ>4S$%)7 z|HBKF63+&lL|cFE^~UVKc9^_H1tdigy42 literal 737 zcmV<70v`Q|P)-oqd)>YF>!D^gmG*=0;s0^?aX9CI04xEv z5r7Lm01P%l?l_Vf+K!}lXBtRR@RO@^nC|CiXB=J-WVfiOq8V2JX2)Vk^RCcE4`h?w;$kf zHbsm4rmXFqZ}t$%v#??_N{!rk?{O3DbMR9SZFt#|$&6}%UHCl|(qM(NIRmpS5QVL{ znv4fC`#`_!1gbJ$byC}kBa?blV#BqqOO+`y}eHRUv@|sqRrpke5L*o-shHn+kcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`GuBNuFf>#!Gt)CP zF*P$Y)KM@pFf`IP03tJ8LlY}gGb`4?pZBPB7%B|o_|H#M)s)5TT^D5IB>nPO#NVgU?A za}xt|BLg!FLqkh*M^h(rClg~AGglW^7bln**z{Uh7`Zu_ni)HpSehCdx*A$Kxf;5; z8aWv_J2{#-x;ex2dgc|EB<3Zj!tBii+6&cdgjcVXb5UwyNq$jCetr%t1q5W|m*f{` zK@kM;uS;rCW?5>ATTy$)A8~#3rNU-^Sj*#&JKFwD*(1Om zx4t~JTxsHjJ#p)gmsquWxGlbzU?9=)l&SJ$?c`Reez(Q4ks%RQbK8z4P0ZMS`^3{C ziT>k3J*BZf5=^9yUX5E=xZ{GT$UWr=FH5X6M7UO5e{CSaQ(z$z)TSiXee}Zn?-#SS z3Us;{Y|qbMs=ecf&&rCQHF8#S`P3$J?v3*oGMRmL#nmj0sa~houg}QgYd^gI3;#6c z73=O@tB|M-494to~ zWVHXbNWWpP6y{;uy-NA*_uof7-cSCX-Sb8MQ)>-htJC4^_gpt??B?%ixi>NViDsqF ttd@>7dQZGHWcb#XbKaf#`^S6+W`;{*_sTvbS9}2#u%51dF6*2UngBjjAASG; literal 538 zcmV+#0_FXQP)nZd?EW0jo(wK~yNu zRglk1lW`o!U*Binz-jIWik3V=VUadQQB*n-A|eTj9V9Bl4kL`9h^SMCx8C@}VPAF_baKpc1UmOMM|0Vf8NBu^Z+zVvdzf3D z<69CyC;Aipqk-FD!(G!@$ZWVK!c#Bv@tubhg)i8&-nc8F^r?5jk46(H)iri{S$U|W z<7uCSq@f4EP{*T3B7bweDJ(_WE)}d_6Lsd9i`#aYt?y$Ws@97Y4b7om3I4wPIF((L z1(}x_c{E<{0|nspwhy@c)h#AB`OYiO^O^=a7@h7rrU6Q8i-~m7p?a@N%?d&Z3yVAl z_O@S8_DEyfo5{5*CtfUIl{78}hV1vE^tzg47K2*cIQh&^FtjaXW>TNL{(IC>O_>~i z4wHyGY(dJiKdyA|W|<}gA3a3p25<2{C+>`tA~GUj8J7psp1{8|EAi|}pItyq51hV=T==6_ee|WjO_kEvx ze!u7YjuzzYTA92)89|Vh)?CsK*EIO7S&<0e&dp*GTrzlb5nsrb@l_PZAO;s(%3xLx zwU4ngl&gAwACrwBXt~=_#249~($cI)Oht9X0gn%&5hPn5@KJOH!(*k)KDSqghpz{5 z%0A%TbCDJE0jvG1CtU!Dk0#l6al$bq0~xM*z$!# zYn-c0YbPzsw%|#Jm-D<&E0I)HRf(%)VwT${0UC`a$|04CpoYj_?d7R}$m`FFF_4U( z=G;Es&3dsYBUQ>C;B`3kbSVUn&t|(%?Da1v3Z_gFpnMV_CL|tDG_FN$KW}ILb>o5B zen+*Bk=PkOdw`>1J<76TV3@my8;UAIZ?yTG8y1DCBw6}^hw<`OQisDYVwc;cCFE+D zMU|XTNeQJI0FBC^Fsh7l8L2drX3`krco0@$Fq=uag)quB3INPNV>APcS!yIqMuXg7 zF~zV}ub-#9G!wJyhIW^*X3ImdS`)`mJj*#)wldZM1?4Qy`pa1#W-3%-+iVo=_C^Iy zL<_VOFUfH3gN)0(PJTL2azJ^s@!F%j&+==Of|!^8dYVZ3l=I5-@}^Uuv8NPN1LG&lmIr3;aW9u*;}=xa#I zwOb$ms6UdkJ*`PsUzF6exy3H2n@tvm6DAt$pYI4yW%RE|Io7*Z|9zcft?*PlSQnR6 zgHCL~yl;x=NW<4-^Ov0Fx<4-ER9ae3e7ThVDMPI?LUa)nf-_)ZYT%9{PZtU|XZmQ`^e}7_l(79zKKHPP>Q_z3oRl&lw zw*~m1I^(83GJsXy9+-yFwRb8c%;f*<`Q}<2`=O;Fv@jHp~w%tUodK$b` zGktP=O4*VxuGuVpEOKw|_w~)6^lX`%SD@Wr7H-U#b!ak*&qhL%)AFy{UW_|)eBGEd zJ>edxqu(7L>#3$LS>#lqe3AXoOqGs7hf1>fx4I+1+t@xl#gLOPOP WJ<7i|8s8rM`&!L;Unz0` literal 878 zcmV-!1CjiRP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;?^3?6I zdnO(3pH2^RY9ad;KI^y);DICx{`d=50d9jnAZmA{))?J17z@AzFVyta()^PRh&c%x zjd44+MSN;7Pkx?ueM||G_V=CKbstl|1WkXx?$Qrjw@mzYSY}4hXXm|GfIj+SD*;fl zStq8NbI0m@IrGer3I*bv1){{8dI*`qV_ykjjY>8G}$*JmdfIv@ zjJKrw4p$k_SQ96FQUjs$cLG2vHlw*Z7QaMbwNitn%eokedm|~}LrLHXTI4BlNzatHRF|tUpt9F7kH9@im6vL?5SGB}&UiP|Wbh zvA2ofCIjq6`5W#`45#+|z@Kcal zweE2bTyzI83s__gtTF|>vBWgKb#Jmdm(0Jul&BDCOK+S0jqKD(L`;KkkQSJs06g&6 zT(A!HAVA-ZYi0IIiWQ*5Lp8FMylgN6fdw!oZGx!MKoEgR=M2mrtC8>i3<8_5VuSBv zo`LT7j=r$aSKBHJoWkSU|J%hRPSahVzM$YsM4pSl~&M-38Z z$x(bN+J_J1XgOmbhNcdWhsJ%2doW@GU32c~hf8YRWG^8f$<07*qoM6N<$ Eg7z$h)&Kwi diff --git a/resources/images/protocol/yahoo/yahoo16x16-phone.png b/resources/images/protocol/yahoo/yahoo16x16-phone.png index 01fa92b3c9343f8822d31b9e9abb9f87a0f8bbe7..0ef5cf84756360051fe825b8ce241cf8f1233f60 100644 GIT binary patch literal 1766 zcmbVNX;2eq7)})_GHL*WMMYf0VJqa=+zCk;$OZ|>5k$pWg(X?Y3dzP~kpQKwCt|IF zW$?fQ4-OHKLkmbX%27%!7DS*HwW3(WK`VlYrIl_tY=1cZ=+5qb-}mnOJnuc578104 zw)FyQ5{Wch?gxbu>pbGIv$7=K5w3I^vCPM1;rL1{8c%@r2+3Q8MInG(1IHkt2&_un z)P#shr0HrjEF2FHTp?0o8aiy&p&KNvLbM zfy_Xi6j7soNqS^uQc##ODOM>|QN2C}#6}T8ph0jLFlyqo29Z%h9p@Dhd$X891;$nI zSP6B)sqnxMK#J)RfJqHDjLP7#PflbHsF$_>B6q-3$EE=IfGbCzp*hteFoTnHd#Gurp zIvmBcfSD1F!s2lWmGE>T1dT2*@C~unFqtSKWeg*%V}NufL!&XrHLh*ILy>>oc&oM{ zEK!FrLJpnWd}J=rM7$89M>iuXUp=M)#xpEJ-{Jw2&toxJTq($&h+M!Fumzw%$`{Dk5MKaN zC$XyklQjn648z(GoMGCx*lIHRTs#<|uN=JIwg&`ONix z6a}Smtito#vo#kt=GC0skuqYNHb3u1^jd{tm|}kkdf{+0;84a4xs8G{q_XkzjZ}nK zrFad!2q^+OhVK+2J4d^-MqBr?D=I3EdLp+kTlIru$?V?f5mH;?#k3@NzY%VHN-^)edUT)o^>sFl^M6lfv*oE)D+Q%{bIrh??e11vbw}!7qP3Fbolg7DjXrd645@0}+W(kiaXihT z%H~T(<>H+)tP5i|UKx}p%#kTt9_p?<7*O9oqU=rHYCf_-x24BYt~!!;2Lzlb zT&7z4dW(x((4J^hEcsf{QN6G%d{%?2Yk#umNP&y#^p=#9?)&CUzgq%)H(yIx!Dy-f zex104s?2jrtcX9zT5zMIxvwt{r3JTM7z;Xh$bX+-Mw!|nZ8ch)TGzQHm)#M&bVR%Q z*kyf|WtUw;{`J7dzt+p{wGHX+@YSt*?A!87$xFJ~<;~SqcT;R<7y=@HzD<&6KDsX~ z_P;Q#y8NlFdwMq1zFpC|H|MiDkAk76IVSQ_j7zn7QJZr(V^!|GN4tYgTa=&wsU@Sd ztxtSPxv(>0UC$a-Ly)7J#k2>C2#40ruCtoIIQ}$cHz}`}0+4t{t{E@tHCd(!)tuZo@yky9g?1-ab^bR#iN z!Fieum+`)XO{$HBMMV}}-2Oq-)Tn0Wm`r1xKW4{yxeZun<$L7r64wUYj%-}onlIN3 eMs%%t&yqA`w>@hEYE0E)_(wDUa?vL literal 830 zcmV-E1Ht@>P)zhb}Aw8`@3qwkx(d2_so25W;4oQw1D ze}0_*IsbzItAHW_%BuxfSX|=QhIjwy_-b|62k(gOubRrmhLu+~t*_k{(K1uInbn;b zOTKTtd!~Cvzh)D-Uh1TjWU4*xs;yqh?s$gIm_7amnJ!k*Mj>Fo!NGejgs@_`QmnUZ!A~Fco275Z z$F@CrfF?;c&2SRHTW+f<^+ms>8S2)o#p76x6gJ#0g}^f-HxRK=?=$L^LNB2RQ?VOy z0T7EONu}nQ4#!a4#l+N?IhZIxkgycWJY!*VFz`?t05D8}VOr6&c`_y_iZv&y()q97 z>@Nr~B-(dB&z}WwI&CbkaNw;fXZ8DT3^O<4zm*(m?=_nW0suN6(3JZ{7KTRVn2Aa{ zZ%?BX73WfWLf@xn7*lvl&8pE|r%zn}XJI!$C^C61q~Zs70p!aq_WPezb^rhX07*qo IM6N<$f(;CU?EnA( diff --git a/resources/images/protocol/yahoo/yahoo16x16-vacation.png b/resources/images/protocol/yahoo/yahoo16x16-vacation.png index de0f7e718f8769cb797a71cc15cf9219a05e0fe1..5ebb3dc5a5be7698bdac81dd5ff14953a623c1bb 100644 GIT binary patch literal 1723 zcmbVNX;2eq7*4SRil_+4CE^l+LQAsQoSR6nNtQr>ASM)oD3W850LkW9NT3c@+6t6{ zwNmjaDmvCx-C-GJEsaQxAo-Tl7r-S>Ikd$v3& zF=mddzblDEnj?utWW?%CJRUQhiT9ciDur15@Mr}t$FgvX(u9%(8cc-(5}k4_Dnpf; zLSqLSNg~b2)+Q@(g*1Vu#&lGrLx*bB83;6q6uHc5P^xoL98jTawR%4JLCaY(pw;ln zsVpf?Y7n8>+Sno!DlbY*Ru|=}xf=4aC?L|xBM5XTt^};QJiVD`<&!6QdBol!2Fbvr z3ZBa+PdTNKCIKSMgaRxogQBKE5Wr?rAtsB>h9Uqu4WffI;$~AICXdDD(K*1Yi%eKE zX|i}SMEuGYapIG+aooTIL5sygwJ@ldX)OqGxm*VaolYS%DCR;vuC!A0<|We%2x?ZF zv<6&@=>Z3$QibK?d@|wbR0ukQRQj4&Z+?|1B4waeX#gQA4bLFa&Wq0+x^?WHJzTG!l&nr#aq)r6bH}1Yyzy5X^+2Xb9#Y9Fc$_K*U_3 zfWx3qV>9UU-7as7i1#N4`oBY^U-6DlP$QfEq zYM;K8#EFlKeS{o^YhZxtJnQ}XY^L#`ej3NW2$=ZkHD!O1udU!vef?=xoBScmkS0DCyc!)Zn~l0 zb@;IDc5Us=mTwj;Xu8yM@!6oCpKoAbgZJY_3kxN;ZI^8g)D&gHBme7W^Qn_}a&q>h z92xf?-CEeS;|En+Wlu_RFo-uB2aL~F+KP*I1)n>SwkFl3KBc0!S3&i6&kFN$ow)Qt zSJ%)nE2O(0n4cKov#Cd{>b#m<)=&0z4t_q9=|ATw`)0r08^-<$JR-{g_@x<*PK9wp zitc+QX`017Ksa~%rlm`HNh{L)R;`K58a#OA9_A9?+@ffYYu*4ami^ithy;vp*kA1x z_~F2*?rb-z%SGW{ch4+F=NI)Q{U_7gYoiKgHP&5?(Rj{^NURgKyl4DgHh;cf#|*Ep zYrT3OjE=4!vGT7B>>D0FVmj3tMWIx>Fx?}=mGtdfQ~oG=p!WDBNG=Tk>}4PV8Y_@L gH?G?GviXHqCQ0keZ7t~-Q#pPolITRFL6}+c4_y$Aq5uE@ literal 886 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 literal 755 zcmVX`5D$~y6}zO$oeJKLNy!;zqsv_Vmpt%5LA@XArq-^{WMR7ePof!%}^v~H5s zuphIoW0loKFsVRvAPD_wrXg!OXLd+eW3HMz+c{_5v@z$;O)q@#emvjvyg$ze{AZBV zOYnSaH3UJ~7+rYOeg9rK6|=P4wkhQD!tpPjPtQ7TPAw8Rbgm_%-aoRhD*JaYXbL@< z`u54a2MdOVN6r}Z`b#=$BSRfG_Tk|+g!25xcRIE$^-B2fTfEZNaIQ+3J|(-BWh zN4U_sg8n$63XR5{4iIuW7z$l+dnPtcc&FNC=lsZ2$XjxCc?|$S0|2X1o`hUsXeRrs z%MAwS39~tJwX>^7nUiB@l?rY1k;8BQb!@$K!|ti{az$T-KYjq906>aE9u;D;ERANc z#%zuNfKsci5Mx4zAc$f6)91SqGq*Xf<(KeptOwjrt|vQ)^89N;$k|MWVFAGQ&_Ro$ zSgLwZKLp@?w6wPIZn;WD;!=D%PaWK#@Wx3#@g$en*4ed&RjK|tHfu~awaYKngaGO})~13r75V{9&IKZg#)8S-SK4lOPC7YNgs-5S)AO-fDjlRkv&UB> z13($igXxn@0JhWVpg8~Idm^V-5D^$AnJ*E@a}Ru8?%_(YWCWffgK`t=cdbHB>;S;9 zEFFB|jYM{@rQT^b)5X4NO1EAVmvzA#j9qSWg~w&fRWKFO!N7v}QK6@m+>C6CkEW40 l;WDb*Hy^VC7h5y~%gN943QYrV(K(A_hw)tZE#kh_zS}3Pc#xDQGmR z)@Hohj0RIEujuqj6`_*L5DjKvsy#YPo54h)DU@K5&7{_(q6CnHrs$1An!Bcs2I#dy zS{zr-mYYIRoqlO1j>cq0DK(j?8iAH3S_}l+5R$-v5^BI^NHdxdn~?U57a{i^F^dK~ zQz24?wC7H#zTHhh(`Z*G{vA1=&F4s9C{zq{L69$I(}uCy|C2Qq=?u%$ z9{*^U5fRygp6!d~Cl4>i2Q`v2gOkIN74rU6a^^ZCq++G*dWCYmY|Y9kBIo+Mr|eh# zr(RDgZ%k%Xzk2O!$HaLuZGb{PxEIp4w*p_=oS$%_FUDt5xx3azs^~b9j zv95$8SjF8(I`2r^;N%9s$<5m>mJ_!(wia4lF42&t=g|G0v_4ai|5oZ8^8w}2pQ}?A zL`7w8h=DFF>uNdu_Kw1ZECgA^S+eBZf%4C^dmVS2UD$?4_wc@wc{vHG)Y8S3VuSy* zo>$Y_G`WfU&Ok}-UmhOS(%-MYQ&k)P>Gy-uklbVCRkktvUGX!UO18FasIdsDB9_+H zB*MMUD_5Nr9cej_^YW+;=jAKCF^84B+Jb^t0_#tvJ@)n9Nc|{wazks!yW3n(Ttzi+ zWa;SeS=WGkRuO;8TwyWmyDP7!*Iv6Z!Ozbxq`l&Dh@-jq+M~?%T@W7$hAPF4r6pd) zL)@7Y-EblAbg^vi?ERJpr({&`IzdTHf9-=~`3_DC52l8#7+MuqG%5b$;+#gJI^6NY zyo4RCWvknFUqnCf8`pSoy4}*OJs$lF)VC?Iwg1VU;uEW9or|R2bGx^8bgbH?K4h9X zrYa!utB!yK`gE`TExhWUb6H1QR^{#gxT<>bYdf0;T5jAZn!2+oY-__?kKaTB4z=sS zJr^U|+B+H7AEY-gzh&x>96xa<)MwND;0mXE_S(+Cg|xcdQQgg#3O^|;o8X%}`r*Te zA$0%j{(k)PFH7_P49F`-efrvxkjp(ay>Ir^XRIr*&#hd)ByVN6VlyWjbj~1dWqht@jk2^r?PL!$??9{(MJ75v9z?N%WXY6>a_WH&Dn6)+f!7(A0AH( z=-QNjc=ej>7qoe*Ws!NpZDKDmP(huX8hgb4?e6i8Dt%SAX?*r=PHe^L6X@FCWwRIbZ+)0+dNa zK~y-)wNqV4Q(+i>&pF>Yb7z}#bmp9f(uAcjhZdIQ#4-rAvMv-uBP8rv2)qn}yof>y zC5RxpD#fgeexz1vMNp*qlR~LeH)Y$II{!A$IorzmV(TAo^LSdQgt+h-p^miYB~;P!nL);_O9+dX{n}uPM?Siw0m#txDs>V<&&hKY`KT8k>9TW5Um{H4llOs!@ZWS}UjilOPY zh$wLcLYXOAHWN{lEi8)OB$|0W$MX-*mN?`cjq!1G%sM{n`H;x>4vn054tz5v^5hQI zDrFdC{4_L-w$q3rtr#ngT?NDq(Ua!&-#@I?HAf#`R{;PF{+P&P)ofFWPRAtHqeP-~ z^34~94)+k&LQ2X#7@J#IsEJ`*zz0|4NJQ%2wF8`C4Pia$lwsNLB{?=G%ZIS6U@lpE zx$Ho}!e5_h6X9@}7@l+?R-5BJ3&yd(es002ovPDHLk FV1h?LV8;Le diff --git a/resources/images/protocol/zeroconf/zeroconf-offline.png b/resources/images/protocol/zeroconf/zeroconf-offline.png index 35609ffd2807ccdac4baddbd3afe8cdc83a0b282..de37240bdc7dffbbbcd636fdcde889b0937785a7 100644 GIT binary patch literal 1673 zcmbVNeNfY87%%FW;?RK#s7zy=J9dLMDQ((j6m6RpiWF<(1bGjjLI|m00w)1w%Z7Cmae|Y|}T$1;FpFF?c z^L=q^6Jq@Rmiciw9Dj8zreoJ2_6eNp%f3_Aa3k1dDWgnc5~(!Ci8~06%uE>xKyAa* z2_1o(b3W`OqBxw{7OOsqNz%llCd$Uey*gZ%&Ca4ZoT#-fJ8sG#7{ExRTS+N6a<&}= ztY#@_5NaTeT|ro^vAGT+F*iYP%FQrI%;4H+Aj*ZZ1U7=f0hcY4q*0d?oa9B>y;sZw zfk_o6Lkdngm88)E3d%tMLT+S)34&n&LAbC$h#+t{z=vQy4`Od50v4b`1m%l>=?i47 zIm~IO4pU9rVoy@g!Z3D}$8$QJTxTSga-{QMiA3V%;PWF`jR-o2WN=pmNw1z^zzEvp zu-X|bMFL(%+(>0HQjqm@Dg>Kdqj^D0($k4zQ^s@Qb{@=ycs83iu1Rg0(GmZ;@ltJC zpJOL@I)bLM9459NX{%?zZ0=rd$g9YDgKltG*`nZ?7-h<`5hSC=q#*l+YqpwENFZjj zC=x&-K7@#2SR#@M5e{oMVOBXP8!(w+)cO(+l&}KE6fgv1Q;~}yail~pLM+*cB8*Ok(|7+TN^x7SUjG$a^z{-NKVz$ym?no-Psskj@DcnqQ0rC zoNH2Lj%{FdgnzFO-F zJ9u>i29}gmR#x_bC6-2yXJFQfz3OiY|w2iTWgyu~l;@;#ekH}5EP8^4Vm`|Ekxna8+0AYw-${CQ=^!~K{0T8ppD z7DsM9aj@yxg7_l&DxMD8^?mR9Ecb&44?f#n`swAq6g&5NR~OXK&|o;Mdy;p!w?P}$ zh6;sBao_MTdGX07?ThZNSrHO4x{A{C%i7+Lj!sbI&EMJo!|3wS^JYG=E}zWKzE>IN zDJm{1N^0r}J^sOxE2iaO{>nWn`a-HbAv`F>a8!R|k-K9dHx_gGEvb&l-;9OJJolFt z^^PSrc6Md0xcNqs)_>9X__%fG+WEPVZ4^-zi zT}%6D&v;_$tdnGBCKePFwAJ``$dS-9o{d{%zd()HYMOA@obbYADcz<^RPyQ0$^_tnWgbF<&&Cjat6ePW@qlN cUG~TJIU$@7?sjc0kumvqP%9I#MtN$%Ka~)LUH||9 literal 494 zcmVX@CmHfW7F_@U0e?wEK~yNu zV_+Zvm?6~ka8Gmbn-_jVcrAKfW(vQ~eqdl=U|?imNMYr%mEX(6@Tpr-?m~hZ8~<`H zFGhyH|K3f0T2%9onSmj-LRz0ql;a2EWG+8xkKcShmp*U*_~w@*mnGY?&1YE{7`UT3 z)X#?-Y)$$xaht#dF2U&23=9k{op=5ze|gQoz{J4tpW_cR|MBo23=I5^eGW?^W+_=Qc(L2EJ!Z{{`IL>T1$$}#9L zKK;4l%lzCwNC7fOZSFxBdw#@ZQ5c&E#$dGnFIvC?WvemTU?}+Z@XIXC(j;~UhH72r z{Qqn)aTXZk%?a*pY|P@n*M|Nx{PO4Xehd?IKMU;QelE@R$L!0$PpMU};8r7?d7p7B k%g+=RmhYP@9xxCO0J#u@UKnnrivR!s07*qoM6N<$f-Gy>`2YX_ diff --git a/resources/images/protocol/zeroconf/zeroconf-online.png b/resources/images/protocol/zeroconf/zeroconf-online.png index 3bde6f69bdbe2bb2d1974be389468f2dff473358..be66b1b8f5709a2489b3bcec2671874343f466d8 100644 GIT binary patch literal 1648 zcmbVNdrT8|96#2H6QbEf2aHW`WwN>0_O4G_D6H+3*IHnJJPZm)d(sN+mFr;(0^LwC zbIy@%4DbOR$u=R1@v$LuqeEnXWMG)iL=&qLMRZag%PJPQU3s|uVfFTtcTlT5|8lNOY~0GSrg!@zh0 znvbPmsJ5i24~qlNFK1rE6k~B#;9E-)mw(!_EkNx{r`F`=RBu|0GNOy}90W*^Eh?GfxVQckT z3B(Vlvnb+2A}%BhhhecuCXkEdd>$fHB1%NQ#PKYwEJg^y0x?(47Ykrm35(@QI7Z2p zLkhW!FN;wuVdITv5;bbDCA)gs?jja`E>@x-FqFiJG#oEn>VRY&PU2=AZUPmlLhv0m zs?i(0f{oq+EyRmpgnlQcjUjLYIG606 zWs_&V8{Ge4DRq0LUqEQr(A(Qi-E?dSasd-(l2VA}b3AU};kqDBey;X_XM8lZ>qLa5 zX6&Xd*)w^yz*m@fuhmE@a<*&%i zUDFRXyPQtP(N8>Km7&wSk6-5b4tS{GZ-QMftJZ%1d%mA}VtkBpyInQ;gALusT3V3u zna2~#@`Ryv)svJguFBJq1%EPKWNG#VtA8PMtKVjy+LA?VFR14h(el2Tne` zmLyA0PmhjT*ATB#shIC=Yp$nFkKDm_Y<)lD zbtKT0)xm8-|H%G83s-kOhIR~S^3GCjs!^AcwakBiTTt-Tp!&MP-hm;fqhigp9~~ho_qpA|7+J-=eOrbcBP7dz*3;NI zK2>|t7G<0Jsj)DSDjJ`eiLKIHODd`wi9OMEu3~mJ|L@WMT3cgOdBP*sC7Uw+%@-N& zb&WdP)X@FcTLPd({8{0-8xg zK~y-)wNpt<6JZp7|8%-cSBembXh~FBgG&OU2gQiXMTi==B8x_`7!OKGO^pcwi9({( zVnq!?G#(U+qFxL{P=g+fMh_75V6c=DWt0*K-P@UeX1oZ2YUE)2Ztr_9U*7UPfPVy< z8%$SP3jt$AITPvVY`qnpo3q&LYblv5{qq;s$Hz@qJ@W+io-&J%PYiC(PYAvQl7McB z-sax8N7p|vc+{ZROEd`@r<|hl5kkQ696vQVb)6ogEq1GgCjbC)va_t;@(&lVsmR5q zBHF)L_ewxSdQQ$dCm?iW+V8I&at$vV9`RIGE|^l zg?R=;SFzC;z1ZB+tw>CC$Q6{fV*kDmzdEj~X>_=DjL^%!;?M*D0098N3m{`KD^hDT zZ;On^C;)&$tKG`6xCvt}?0EEK{mjhOUG-_%vG;YmhaNV}3NW!)FUA~5q*6HmfW6I0 zavYayEiH17d%bp!Ww)PcyoLY(rk5ttK#d3}4Y_8QSl!&RNUl`%@f`Pwrs>j*j1|Q` zpYO+cQ`rju0Nefclu$UbQlnPoVxBLNO}Q_vQV1Q}j#V+UXRNx}ELE!12N))%6^q5Y z)k++3IEX;m+!Uf8`?Tv$MaX54-VC~-bs$< ziQg0mw1pS=ChatConversationPanel is the panel, where all sent and received + * messages appear. All data is stored in an HTML document. An external CSS file + * is applied to the document to provide the look&feel. All smileys and link + * strings are processed and finally replaced by corresponding images and HTML + * links. + * + * @author Yana Stamcheva + * @author Lubomir Marinov + * @author Adam Netocny + */ +public class ChatConversationPanel + extends SCScrollPane + implements HyperlinkListener, + MouseListener, + ClipboardOwner, + Skinnable +{ + /** + * The Logger used by the ChatConversationPanel class and + * its instances for logging output. + */ + private static final Logger logger + = Logger.getLogger(ChatConversationPanel.class); + + /** + * The closing tag of the PLAINTEXT HTML element. + */ + private static final String END_PLAINTEXT_TAG = ""; + + /** + * The opening tag of the PLAINTEXT HTML element. + */ + private static final String START_PLAINTEXT_TAG = ""; + + /** + * The regular expression (in the form of compiled <tt>Pattern</tt>) which + * matches URLs for the purposed of turning them into links. + */ + private static final Pattern URL_PATTERN + = Pattern.compile( + "(" + + "(\\bwww\\.[^\\s<>\"]+\\.[^\\s<>\"]+/*[?#]*(\\w+[&=;?]\\w+)*\\b)" // wwwURL + + "|" + + "(\\bjitsi\\:[^\\s<>\"]+\\.[^\\s<>\"]*\\b)" // internalURL + + "|" + + "(\\b\\w+://[^\\s<>\"]+/*[?#]*(\\w+[&=;?]\\w+)*\\b)" // protocolURL + + ")"); + + /** + * List for observing text messages. + */ + private Set<ChatLinkClickedListener> chatLinkClickedListeners = + new HashSet<ChatLinkClickedListener>(); + + /** + * The component rendering chat conversation panel text. + */ + private final JTextPane chatTextPane = new MyTextPane(); + + /** + * The editor kit used by the text component. + */ + private final HTMLEditorKit editorKit; + + /** + * The document used by the text component. + */ + private HTMLDocument document; + + /** + * The parent container. + */ + private final ChatConversationContainer chatContainer; + + /** + * The menu shown on right button mouse click. + */ + private final ChatRightButtonMenu rightButtonMenu; + + /** + * The currently shown href. + */ + private String currentHref; + + /** + * The copy link item, contained in the right mouse click menu. + */ + private final JMenuItem copyLinkItem; + + /** + * The open link item, contained in the right mouse click menu. + */ + private final JMenuItem openLinkItem; + + /** + * The right mouse click menu separator. + */ + private final JSeparator copyLinkSeparator = new JSeparator(); + + /** + * The timestamp of the last incoming message. + */ + private long lastIncomingMsgTimestamp; + + /** + * Indicates if this component is rendering a history conversation. + */ + private final boolean isHistory; + + /** + * The html text content type. + */ + public static final String HTML_CONTENT_TYPE = "text/html"; + + /** + * The plain text content type. + */ + public static final String TEXT_CONTENT_TYPE = "text/plain"; + + /** + * The indicator which determines whether an automatic scroll to the bottom + * of {@link #chatTextPane} is to be performed. + */ + private boolean scrollToBottomIsPending = false; + + private final static String INCOMING_MESSAGE_IMAGE_PATH + = GuiActivator.getResources().getImageURL( + "service.gui.lookandfeel.INCOMING_MESSAGE_BACKGROUND").toString(); + + /** + * The implementation of the routine which scrolls {@link #chatTextPane} to its + * bottom. + */ + private final Runnable scrollToBottomRunnable = new Runnable() + { + /* + * Implements Runnable#run(). + */ + public void run() + { + JScrollBar verticalScrollBar = getVerticalScrollBar(); + + if (verticalScrollBar != null) + { + // We need to call both methods in order to be sure to scroll + // to the bottom of the text even when the user has selected + // something (changed the caret) or when a new tab has been + // added or the window has been resized. + verticalScrollBar.setValue(verticalScrollBar.getMaximum()); + chatTextPane.setCaretPosition(document.getLength()); + } + } + }; + + /** + * Creates an instance of <tt>ChatConversationPanel</tt>. + * + * @param chatContainer The parent <tt>ChatConversationContainer</tt>. + */ + public ChatConversationPanel(ChatConversationContainer chatContainer) + { + editorKit = new SIPCommHTMLEditorKit(this); + + this.chatContainer = chatContainer; + + isHistory = (chatContainer instanceof HistoryWindow); + + this.rightButtonMenu = new ChatRightButtonMenu(this); + + this.document = (HTMLDocument) editorKit.createDefaultDocument(); + + this.chatTextPane.setEditorKitForContentType("text/html", editorKit); + this.chatTextPane.setEditorKit(editorKit); + this.chatTextPane.setEditable(false); + this.chatTextPane.setDocument(document); + this.chatTextPane.setDragEnabled(true); + + chatTextPane.putClientProperty( + JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE); + Constants.loadSimpleStyle( + document.getStyleSheet(), chatTextPane.getFont()); + + this.chatTextPane.addHyperlinkListener(this); + this.chatTextPane.addMouseListener(this); + this.chatTextPane.setCursor( + Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR)); + + this.setWheelScrollingEnabled(true); + + this.setViewportView(chatTextPane); + + this.setBorder(null); + + this.setHorizontalScrollBarPolicy( + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + + ToolTipManager.sharedInstance().registerComponent(chatTextPane); + + String copyLinkString + = GuiActivator.getResources().getI18NString("service.gui.COPY_LINK"); + + copyLinkItem + = new JMenuItem(copyLinkString, + new ImageIcon(ImageLoader.getImage(ImageLoader.COPY_ICON))); + + copyLinkItem.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + StringSelection stringSelection = new StringSelection( + currentHref); + Clipboard clipboard = Toolkit.getDefaultToolkit() + .getSystemClipboard(); + clipboard.setContents(stringSelection, + ChatConversationPanel.this); + } + }); + + String openLinkString + = GuiActivator.getResources().getI18NString( + "service.gui.OPEN_IN_BROWSER"); + + openLinkItem = + new JMenuItem( + openLinkString, + new ImageIcon(ImageLoader.getImage(ImageLoader.BROWSER_ICON))); + + openLinkItem.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + GuiActivator.getBrowserLauncher().openURL(currentHref); + + // after opening the link remove the currentHref to avoid + // clicking on the window to gain focus to open the link again + ChatConversationPanel.this.currentHref = ""; + } + }); + + openLinkItem.setMnemonic( + GuiActivator.getResources().getI18nMnemonic( + "service.gui.OPEN_IN_BROWSER")); + + copyLinkItem.setMnemonic( + GuiActivator.getResources().getI18nMnemonic( + "service.gui.COPY_LINK")); + + /* + * When we append a new message (regardless of whether it is a string or + * an UI component), we want to make it visible in the viewport of this + * JScrollPane so that the user can see it. + */ + ComponentListener componentListener = new ComponentAdapter() + { + @Override + public void componentResized(ComponentEvent e) + { + synchronized (scrollToBottomRunnable) + { + if (!scrollToBottomIsPending) + return; + scrollToBottomIsPending = false; + + /* + * Yana Stamcheva, pointed out that Java 5 (on Linux only?) + * needs invokeLater for JScrollBar. + */ + SwingUtilities.invokeLater(scrollToBottomRunnable); + } + } + }; + + chatTextPane.addComponentListener(componentListener); + getViewport().addComponentListener(componentListener); + } + + /** + * Overrides Component#setBounds(int, int, int, int) in order to determine + * whether an automatic scroll of #chatTextPane to its bottom will be + * necessary at a later time in order to keep its vertical scroll bar to its + * bottom after the realization of the resize if it is at its bottom before + * the resize. + */ + @Override + public void setBounds(int x, int y, int width, int height) + { + synchronized (scrollToBottomRunnable) + { + JScrollBar verticalScrollBar = getVerticalScrollBar(); + + if (verticalScrollBar != null) + { + BoundedRangeModel verticalScrollBarModel + = verticalScrollBar.getModel(); + + if ((verticalScrollBarModel.getValue() + + verticalScrollBarModel.getExtent() + >= verticalScrollBarModel.getMaximum()) + || !verticalScrollBar.isVisible()) + scrollToBottomIsPending = true; + } + } + + super.setBounds(x, y, width, height); + } + + /** + * Initializes the editor by adding a header containing the date. + * TODO: remove if not used anymore + */ +// private void initEditor() +// { +// Element root = this.document.getDefaultRootElement(); +// +// Date date = new Date(System.currentTimeMillis()); +// +// String chatHeader = "<h1>" + GuiUtils.formatDate(date) + " " + "</h1>"; +// +// try +// { +// this.document.insertAfterStart(root, chatHeader); +// } +// catch (BadLocationException e) +// { +// logger.error("Insert in the HTMLDocument failed.", e); +// } +// catch (IOException e) +// { +// logger.error("Insert in the HTMLDocument failed.", e); +// } +// } + + /** + * Retrieves the contents of the sent message with the given ID. + * + * @param messageUID The ID of the message to retrieve. + * @return The contents of the message, or null if the message is not found. + */ + public String getMessageContents(String messageUID) + { + Element root = document.getDefaultRootElement(); + Element e = document.getElement(root, Attribute.ID, messageUID); + if (e == null) + { + logger.warn("Could not find message with ID" + messageUID); + return null; + } + + int elemLen = e.getEndOffset() - e.getStartOffset(); + String res = null; + try + { + res = document.getText(e.getStartOffset(), elemLen); + } + catch (BadLocationException exc) + { + logger.warn("Could not get message contents for message " + + "with ID" + messageUID, exc); + } + return res; + } + + /** + * Creates a tag that shows the last edit time of a message, in the format + * (Edited at ...). + * If <tt>date < 0</tt>, returns an empty tag that serves as a placeholder + * for future corrections of this message. + * + * @param messageUID The ID of the edited message. + * @param date The date when the message was last edited, or -1 to generate + * an empty tag. + * @return The string representation of the tag. + */ + private String generateEditedAtTag(String messageUID, long date) + { + StringBuilder res = new StringBuilder(); + // Use a <cite /> tag here as most of the other inline tags (e.g. h1-7, + // b, i) cause different problems when used in setOuterHTML. + res.append("<cite id='"); + res.append(messageUID); + res.append("-editedAt'> "); + if (date > 0) + { + res.append("&nbsp;"); + String contents = GuiActivator.getResources().getI18NString( + "service.gui.EDITED_AT", + new String[] { GuiUtils.formatTime(date) } + ); + res.append(contents); + } + res.append("</cite>"); + return res.toString(); + } + + /** + * Processes the message given by the parameters. + * + * @param chatMessage the message + * @param keyword a substring of <tt>chatMessage</tt> to be highlighted upon + * display of <tt>chatMessage</tt> in the UI + * @return the processed message + */ + public String processMessage(ChatMessage chatMessage, String keyword) + { + String contactName = chatMessage.getContactName(); + String contactDisplayName = chatMessage.getContactDisplayName(); + if (contactDisplayName == null + || contactDisplayName.trim().length() <= 0) + contactDisplayName = contactName; + + String contentType = chatMessage.getContentType(); + long date = chatMessage.getDate(); + String messageType = chatMessage.getMessageType(); + String messageTitle = chatMessage.getMessageTitle(); + String message = chatMessage.getMessage(); + String messageUID = chatMessage.getMessageUID(); + + String msgID = "message"; + String msgHeaderID = "messageHeader"; + String chatString = ""; + String endHeaderTag = ""; + String dateString = getDateString(date); + String idAttr = messageUID == null ? "" : " id='" + messageUID + "'"; + String dateAttr = " date='" + date + "'"; + String editedAtTag = generateEditedAtTag(messageUID, -1); + + String startHistoryDivTag + = "<DIV identifier=\"" + msgID + "\" style=\"color:#707070;\">"; + String startSystemDivTag + = "<DIV identifier=\"systemMessage\" style=\"color:#627EB7;\">"; + String endDivTag = "</DIV>"; + + String startPlainTextTag; + String endPlainTextTag; + + if (HTML_CONTENT_TYPE.equals(contentType)) + { + startPlainTextTag = ""; + endPlainTextTag = ""; + } + else + { + startPlainTextTag = START_PLAINTEXT_TAG; + endPlainTextTag = END_PLAINTEXT_TAG; + } + + if (messageType.equals(Chat.INCOMING_MESSAGE)) + { + this.lastIncomingMsgTimestamp = System.currentTimeMillis(); + + StringBuffer headerBuffer = new StringBuffer(); + + headerBuffer.append("<h2 identifier=\"" + msgHeaderID + "\""); + headerBuffer.append(dateAttr + ">"); + headerBuffer.append("<a style=\"color:#488fe7;"); + headerBuffer.append("font-weight:bold;"); + headerBuffer.append("text-decoration:none;\" "); + headerBuffer.append("href=\"" + contactName + "\">"); + headerBuffer.append(dateString + contactDisplayName + " at " + + GuiUtils.formatTime(date) + editedAtTag); + headerBuffer.append("</a></h2>"); + + chatString = createIncomingMessageTag(msgID + "\"" + idAttr, + headerBuffer.toString(), + startPlainTextTag + + formatMessage(message, contentType, keyword) + + endPlainTextTag); +System.out.println("CHAT STRING OSHTE TUUUUUK=======" + chatString); +// chatString = "<h2 identifier=\"" + msgHeaderID + "\"" +// + " date=\"" + date + "\">" +// + "<a style=\"color:#488fe7;" +// + "font-weight:bold;" +// + "text-decoration:none;\" " +// + "href=\"" + contactName + "\">"; +// +// endHeaderTag = "</a></h2>"; + +// String startDivTag = "<DIV identifier=\"" + msgID +// + "\" style=\""+ createIncomingMessageStyle()+"\">"; +// +// chatString +// += dateString + contactDisplayName + " at " +// + GuiUtils.formatTime(date) +// + endHeaderTag + startDivTag + startPlainTextTag +// + formatMessage(message, contentType, keyword) +// + endPlainTextTag + endDivTag; + + } + else if (messageType.equals(Chat.SMS_MESSAGE)) + { + chatString = "<h2 identifier=\"" + + msgHeaderID + + "\" date=\"" + + date + "\">"; + + endHeaderTag = "</h2>"; + + String startDivTag = "<DIV identifier=\"" + msgID + + "\" style=\""+ createSmsMessageStyle()+"\">"; + + chatString + += "SMS: " + dateString + contactName + " at " + + GuiUtils.formatTime(date) + endHeaderTag + startDivTag + + startPlainTextTag + + formatMessage(message, contentType, keyword) + + endPlainTextTag + endDivTag; + } + else if (messageType.equals(Chat.OUTGOING_MESSAGE)) + { + chatString = "<h3 identifier=\"" + msgHeaderID + "\"" + + dateAttr + ">" + + "<a style=\"color:#6a6868;" + + "font-weight:bold;" + + "text-decoration:none;\" " + + "href=\"" + contactName + "\">"; + + endHeaderTag = "</a></h3>"; + + String startDivTag = "<DIV identifier=\"" + msgID + + "\" style=\""+ createOutgoingMessageStyle()+"\">"; + + chatString + += dateString + contactDisplayName + " at " + + GuiUtils.formatTime(date) + editedAtTag + endHeaderTag + + startDivTag + startPlainTextTag + + formatMessage(message, contentType, keyword) + + endPlainTextTag + endDivTag; + } + else if (messageType.equals(Chat.STATUS_MESSAGE)) + { + chatString = "<h4 identifier=\"statusMessage\" date=\"" + + date + "\">"; + endHeaderTag = "</h4>"; + + chatString + += GuiUtils.formatTime(date) + " " + contactName + " " + message + + endHeaderTag; + } + else if (messageType.equals(Chat.ACTION_MESSAGE)) + { + chatString = "<p identifier=\"actionMessage\" date=\"" + + date + "\">"; + endHeaderTag = "</p>"; + + chatString += "* " + GuiUtils.formatTime(date) + + " " + contactName + " " + + message + + endHeaderTag; + } + else if (messageType.equals(Chat.SYSTEM_MESSAGE)) + { + chatString + += startSystemDivTag + startPlainTextTag + + formatMessage(message, contentType, keyword) + + endPlainTextTag + endDivTag; + } + else if (messageType.equals(Chat.ERROR_MESSAGE)) + { + chatString = "<h6 identifier=\"" + + msgHeaderID + + "\" date=\"" + + date + "\">"; + + endHeaderTag = "</h6>"; + + String errorIcon = "<IMG SRC='" + + ImageLoader.getImageUri(ImageLoader.EXCLAMATION_MARK) + + "' </IMG>"; + + chatString += errorIcon + + messageTitle + + endHeaderTag + "<h5>" + message + "</h5>"; + } + else if (messageType.equals(Chat.HISTORY_INCOMING_MESSAGE)) + { + chatString = "<h2 identifier=\"" + msgHeaderID + "\"" + + dateAttr + ">" + + "<a style=\"color:#488fe7;" + + "font-weight:bold;" + + "text-decoration:none;\" " + + "href=\"" + contactName + "\">"; + + endHeaderTag = "</a></h2>"; + + chatString + += dateString + contactDisplayName + + " at " + GuiUtils.formatTime(date) + endHeaderTag + + editedAtTag + startHistoryDivTag + startPlainTextTag + + formatMessage(message, contentType, keyword) + + endPlainTextTag + endDivTag; + } + else if (messageType.equals(Chat.HISTORY_OUTGOING_MESSAGE)) + { + chatString = "<h3 identifier=\"" + msgHeaderID + "\"" + + dateAttr + ">" + + "<a style=\"color:#6a6868;" + + "font-weight:bold;" + + "text-decoration:none;\" " + + "href=\"" + contactName + "\">"; + + endHeaderTag = "</h3>"; + + chatString + += dateString + + contactDisplayName + " at " + GuiUtils.formatTime(date) + + editedAtTag + endHeaderTag + + startHistoryDivTag + startPlainTextTag + + formatMessage(message, contentType, keyword) + + endPlainTextTag + endDivTag; + } + + return chatString; + } + + /** + * Processes the message given by the parameters. + * + * @param chatMessage the message. + * @return the formatted message + */ + public String processMessage(ChatMessage chatMessage) + { + return processMessage(chatMessage, null); + } + + /** + * Replaces the contents of the message with ID of the corrected message + * specified in chatMessage, with this message. + * + * @param chatMessage A <tt>ChatMessage</tt> that contains all the required + * information to correct the old message. + */ + public void correctMessage(ChatMessage chatMessage) + { + String correctedUID = chatMessage.getCorrectedMessageUID(); + Element root = document.getDefaultRootElement(); + Element e = document.getElement(root, Attribute.ID, correctedUID); + if (e == null) + { + logger.warn("Could not find message with ID " + correctedUID); + return; + } + int len = e.getEndOffset() - e.getStartOffset(); + + StringBuilder newContents = new StringBuilder(); + String bgColor = GuiActivator.getResources().getColorString( + "service.gui.CHAT_EDIT_MESSAGE_BACKGROUND"); + newContents.append("<div identifier='message' id='"); + newContents.append(chatMessage.getMessageUID()); + newContents.append("' bgcolor='"); + newContents.append(bgColor); + newContents.append("'>"); + if (chatMessage.getContentType().equals(TEXT_CONTENT_TYPE)) + { + newContents.append(START_PLAINTEXT_TAG); + newContents.append(chatMessage.getMessage()); + newContents.append(END_PLAINTEXT_TAG); + } + else + { + newContents.append(chatMessage.getMessage()); + } + newContents.append("</div>"); + + Element header = document.getElement(root, Attribute.ID, + correctedUID + "-editedAt"); + + try + { + if (header != null) + { + String newHeaderContents = generateEditedAtTag( + chatMessage.getMessageUID(), chatMessage.getDate()); + document.setOuterHTML(header, newHeaderContents); + } + document.setOuterHTML(e, newContents.toString()); + } + catch (BadLocationException ex) + { + logger.error("Could not replace chat message", ex); + } + catch (IOException ex) + { + logger.error("Could not replace chat message", ex); + } + } + + /** + * Appends the given string at the end of the contained in this panel + * document. + * + * @param chatString the string to append + */ + public void appendMessageToEnd(String chatString, String contentType) + { + synchronized (scrollToBottomRunnable) + { + Element root = document.getDefaultRootElement(); + +// Need to call explicitly scrollToBottom, because for some +// reason the componentResized event isn't fired every time we +// add text. +// Replaced by the code on line: 573. +// +// scrollToBottomIsPending = true; +System.out.println("CHAT STRING+=========" + chatString); + try + { + document + .insertAfterEnd( + root.getElement(root.getElementCount() - 1), + chatString); + + // Need to call explicitly scrollToBottom, because for some + // reason the componentResized event isn't fired every time we + // add text. + SwingUtilities.invokeLater(scrollToBottomRunnable); + } + catch (BadLocationException e) + { + logger.error("Insert in the HTMLDocument failed.", e); + } + catch (IOException e) + { + logger.error("Insert in the HTMLDocument failed.", e); + } + if (!isHistory) + ensureDocumentSize(); + + // Process replacements. + final Element elem; + /* + * Check to make sure element isn't the first element in the HTML + * document. + */ + if (!(root.getElementCount() < 2)) + { + elem = root.getElement(root.getElementCount() - 2); + } + else + elem = root.getElement(1); + + /* + * Replacements will be processed only if it is enabled in the + * property + */ + if (GuiActivator.getConfigurationService().getBoolean( + ReplacementProperty.REPLACEMENT_ENABLE, true) + || GuiActivator.getConfigurationService().getBoolean( + ReplacementProperty.getPropertyName("SMILEY"), true)) + { + processReplacement(elem, chatString, contentType); + } + } + } + + /** + * Formats the given message. Processes the messages and replaces links to + * video/image sources with their previews or any other substitution. Spawns + * a separate thread for replacement. + * + * @param elem the element in the HTML Document. + * @param chatString the message. + */ + private void processReplacement(final Element elem, + final String chatString, + final String contentType) + { + final String chatFinal = chatString; + + SwingWorker worker = new SwingWorker() + { + public Object construct() throws Exception + { + String temp = "", msgStore = chatFinal; + + boolean isEnabled + = GuiActivator.getConfigurationService().getBoolean( + ReplacementProperty.REPLACEMENT_ENABLE, true); + + Map<String, ReplacementService> listSources + = GuiActivator.getReplacementSources(); + + Iterator<Entry<String, ReplacementService>> entrySetIter + = listSources.entrySet().iterator(); + + for (int i = 0; i < listSources.size(); i++) + { + Map.Entry<String, ReplacementService> entry + = entrySetIter.next(); + + ReplacementService source = entry.getValue(); + + boolean isSmiley + = source instanceof SmiliesReplacementService; + + if (!(GuiActivator.getConfigurationService().getBoolean( + ReplacementProperty.getPropertyName(source + .getSourceName()), true) && (isEnabled || isSmiley))) + continue; + + String sourcePattern = source.getPattern(); + Pattern p = Pattern.compile(sourcePattern, + Pattern.CASE_INSENSITIVE | Pattern.DOTALL); + + Matcher m = p.matcher(msgStore); + + String startPlainTextTag = ""; + String endPlainTextTag = ""; + + if (!HTML_CONTENT_TYPE.equals(contentType)) + { + startPlainTextTag = START_PLAINTEXT_TAG; + endPlainTextTag = END_PLAINTEXT_TAG; + } + + int count = 0, startPos = 0; + StringBuffer msgBuff = new StringBuffer(); + + while (m.find()) + { + count++; + msgBuff.append(msgStore.substring(startPos, m.start())); + startPos = m.end(); + + temp = source.getReplacement(m.group()); + + if(!temp.equals(m.group(0)) || source.getSourceName() + .equals("DIRECTIMAGE")) + { + if(isSmiley) + { + msgBuff.append(endPlainTextTag); + msgBuff.append("<IMG SRC=\""); + } + else + { + msgBuff.append( + "<IMG HEIGHT=\"90\" WIDTH=\"120\" SRC=\""); + } + + msgBuff.append(temp); + msgBuff.append("\" BORDER=\"0\" ALT=\""); + msgBuff.append(m.group(0)); + msgBuff.append("\"></IMG>"); + + if(isSmiley) + msgBuff.append(startPlainTextTag); + } + else + { + msgBuff.append( + msgStore.substring(m.start(), m.end())); + } + } + + msgBuff.append(msgStore.substring(startPos)); + + /* + * replace the msgStore variable with the current replaced + * message before next iteration + */ + if (!msgBuff.toString().equals(msgStore)) + { + msgStore = msgBuff.toString(); + } + } + + if (!msgStore.equals(chatFinal)) + { + synchronized (scrollToBottomRunnable) + { + scrollToBottomIsPending = true; + document.setOuterHTML(elem, msgStore.toString() + .substring(msgStore.indexOf("<DIV"))); + } + } + return ""; + } + }; + worker.start(); + } + + /** + * Ensures that the document won't become too big. When the document reaches + * a certain size the first message in the page is removed. + */ + private void ensureDocumentSize() + { + if (document.getLength() > Chat.CHAT_BUFFER_SIZE) + { + int msgElementCount = 0; + + Element firstMsgElement = null; + + int firstMsgIndex = 0; + + Element rootElement = this.document.getDefaultRootElement(); + // Count how many messages we have in the document. + for (int i = 0; i < rootElement.getElementCount(); i++) + { + String idAttr = (String) rootElement.getElement(i) + .getAttributes().getAttribute("identifier"); + + if(idAttr != null + && (idAttr.equals("message") + || idAttr.equals("statusMessage") + || idAttr.equals("systemMessage"))) + { + if(firstMsgElement == null) + { + firstMsgElement = rootElement.getElement(i); + firstMsgIndex = i; + } + + msgElementCount++; + } + } + + // If we doesn't have any known elements in the document or if we + // have only one long message we don't want to remove it. + if(firstMsgElement == null || msgElementCount < 2) + return; + + try + { + // Remove the header of the message if such exists. + if(firstMsgIndex > 0) + { + Element headerElement = rootElement.getElement(firstMsgIndex - 1); + + String idAttr = (String) headerElement + .getAttributes().getAttribute("identifier"); + + if(idAttr != null && idAttr.equals("messageHeader")) + { + this.document.remove(headerElement.getStartOffset(), + headerElement.getEndOffset() + - headerElement.getStartOffset()); + } + } + + // Remove the message itself. + this.document.remove(firstMsgElement.getStartOffset(), + firstMsgElement.getEndOffset() + - firstMsgElement.getStartOffset()); + } + catch (BadLocationException e) + { + logger.error("Error removing messages from chat: ", e); + } + } + } + + /** + * Highlights keywords searched in the history. + * + * @param message the source message + * @param contentType the content type + * @param keyword the searched keyword + * @return the formatted message + */ + private String processKeyword( String message, + String contentType, + String keyword) + { + String startPlainTextTag; + String endPlainTextTag; + + if (HTML_CONTENT_TYPE.equals(contentType)) + { + startPlainTextTag = ""; + endPlainTextTag = ""; + } + else + { + startPlainTextTag = START_PLAINTEXT_TAG; + endPlainTextTag = END_PLAINTEXT_TAG; + } + + Matcher m + = Pattern.compile(Pattern.quote(keyword), Pattern.CASE_INSENSITIVE) + .matcher(message); + StringBuffer msgBuffer = new StringBuffer(); + int prevEnd = 0; + + while (m.find()) + { + msgBuffer.append(message.substring(prevEnd, m.start())); + prevEnd = m.end(); + + String keywordMatch = m.group().trim(); + + msgBuffer.append(endPlainTextTag); + msgBuffer.append("<b>"); + msgBuffer.append(keywordMatch); + msgBuffer.append("</b>"); + msgBuffer.append(startPlainTextTag); + } + + /* + * If the keyword didn't match, let the outside world be able to + * discover it. + */ + if (prevEnd == 0) + return message; + + msgBuffer.append(message.substring(prevEnd)); + return msgBuffer.toString(); + } + + /** + * Formats the given message. Processes all smiley chars, new lines and + * links. + * + * @param message the message to be formatted + * @param contentType the content type of the message to be formatted + * @param keyword the word to be highlighted + * @return the formatted message + */ + private String formatMessage(String message, + String contentType, + String keyword) + { + // If the message content type is HTML we won't process links and + // new lines, but only the smileys. + if (!HTML_CONTENT_TYPE.equals(contentType)) + { + + /* + * We disallow HTML in plain-text messages. But processKeyword + * introduces HTML. So we'll allow HTML if processKeyword has + * introduced it in order to not break highlighting. + */ + boolean processHTMLChars; + + if ((keyword != null) && (keyword.length() != 0)) + { + String messageWithProcessedKeyword + = processKeyword(message, contentType, keyword); + + /* + * The same String instance will be returned if there was no + * keyword match. Calling #equals() is expensive so == is + * intentional. + */ + processHTMLChars = (messageWithProcessedKeyword == message); + message = messageWithProcessedKeyword; + } + else + processHTMLChars = true; + + message + = processNewLines( + processLinksAndHTMLChars(message, processHTMLChars)); + } + // If the message content is HTML, we process br and img tags. + else + { + if ((keyword != null) && (keyword.length() != 0)) + message = processKeyword(message, contentType, keyword); + message = processImgTags(processBrTags(message)); + } + + return message; + } + + /** + * Formats all links in a given message and optionally escapes special HTML + * characters such as &lt;, &gt;, &amp; and &quot; in order to prevent HTML + * injection in plain-text messages such as writing + * <code>&lt;/PLAINTEXT&gt;</code>, HTML which is going to be rendered as + * such and <code>&lt;PLAINTEXT&gt;</code>. The two procedures are carried + * out in one call in order to not break URLs which contain special HTML + * characters such as &amp;. + * + * @param message The source message string. + * @param processHTMLChars <tt>true</tt> to escape the special HTML chars; + * otherwise, <tt>false</tt> + * @return The message string with properly formatted links. + */ + private String processLinksAndHTMLChars(String message, + boolean processHTMLChars) + { + Matcher m = URL_PATTERN.matcher(message); + StringBuffer msgBuffer = new StringBuffer(); + int prevEnd = 0; + + while (m.find()) + { + String fromPrevEndToStart = message.substring(prevEnd, m.start()); + + if (processHTMLChars) + fromPrevEndToStart = processHTMLChars(fromPrevEndToStart); + msgBuffer.append(fromPrevEndToStart); + prevEnd = m.end(); + + String url = m.group().trim(); + + msgBuffer.append(END_PLAINTEXT_TAG); + msgBuffer.append("<A href=\""); + if (url.startsWith("www")) + msgBuffer.append("http://"); + msgBuffer.append(url); + msgBuffer.append("\">"); + msgBuffer.append(url); + msgBuffer.append("</A>"); + msgBuffer.append(START_PLAINTEXT_TAG); + } + + String fromPrevEndToEnd = message.substring(prevEnd); + + if (processHTMLChars) + fromPrevEndToEnd = processHTMLChars(fromPrevEndToEnd); + msgBuffer.append(fromPrevEndToEnd); + + return msgBuffer.toString(); + } + + /** + * Escapes special HTML characters such as &lt;, &gt;, &amp; and &quot; in + * the specified message. + * + * @param message the message to be processed + * @return the processed message with escaped special HTML characters + */ + private String processHTMLChars(String message) + { + return + message + .replace("&", "&amp;") + .replace("<", "&lt;") + .replace(">", "&gt;") + .replace("\"", "&quot;"); + } + + /** + * Formats message new lines. + * + * @param message The source message string. + * @return The message string with properly formatted new lines. + */ + private String processNewLines(String message) + { + + /* + * <br> tags are needed to visualize a new line in the html format, but + * when copied to the clipboard they are exported to the plain text + * format as ' ' and not as '\n'. + * + * See bug N4988885: + * http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4988885 + * + * To fix this we need "&#10;" - the HTML-Code for ASCII-Character No.10 + * (Line feed). + */ + return + message + .replaceAll( + "\n", + END_PLAINTEXT_TAG + "<BR/>&#10;" + START_PLAINTEXT_TAG); + } + + /** + * Opens a link in the default browser when clicked and shows link url in a + * popup on mouseover. + * + * @param e The HyperlinkEvent. + */ + public void hyperlinkUpdate(HyperlinkEvent e) + { + if (e.getEventType() == HyperlinkEvent.EventType.ENTERED) + { + String href = e.getDescription(); + + this.currentHref = href; + } + else if (e.getEventType() == HyperlinkEvent.EventType.EXITED) + { + this.currentHref = ""; + } + } + + /** + * Returns the text pane of this conversation panel. + * + * @return The text pane of this conversation panel. + */ + public JTextPane getChatTextPane() + { + return chatTextPane; + } + + /** + * Returns the time of the last received message. + * + * @return The time of the last received message. + */ + public long getLastIncomingMsgTimestamp() + { + return lastIncomingMsgTimestamp; + } + + /** + * When a right button click is performed in the editor pane, a popup menu + * is opened. + * In case of the Scheme being internal, it won't open the Browser but + * instead it will trigger the forwarded action. + * + * @param e The MouseEvent. + */ + public void mouseClicked(MouseEvent e) + { + Point p = e.getPoint(); + SwingUtilities.convertPointToScreen(p, e.getComponent()); + + if ((e.getModifiers() & InputEvent.BUTTON3_MASK) != 0 + || (e.isControlDown() && !e.isMetaDown())) + { + openContextMenu(p); + } + else if ((e.getModifiers() & InputEvent.BUTTON1_MASK) != 0 + && currentHref != null && currentHref.length() != 0) + { + URI uri; + try + { + uri = new URI(currentHref); + } + catch (URISyntaxException e1) + { + logger.error("Invalid URL", e1); + return; + } + if(uri.getScheme().equals("jitsi")) + { + for(ChatLinkClickedListener l:chatLinkClickedListeners) + { + l.chatLinkClicked(uri); + } + } + else + GuiActivator.getBrowserLauncher().openURL(currentHref); + + // after opening the link remove the currentHref to avoid + // clicking on the window to gain focus to open the link again + this.currentHref = ""; + } + } + + /** + * Opens this panel context menu at the given point. + * + * @param p the point where to position the left-top cornet of the context + * menu + */ + private void openContextMenu(Point p) + { + if (currentHref != null && currentHref.length() != 0 + && !currentHref.startsWith("jitsi://")) + { + rightButtonMenu.insert(openLinkItem, 0); + rightButtonMenu.insert(copyLinkItem, 1); + rightButtonMenu.insert(copyLinkSeparator, 2); + } + else + { + rightButtonMenu.remove(openLinkItem); + rightButtonMenu.remove(copyLinkItem); + rightButtonMenu.remove(copyLinkSeparator); + } + + if (chatTextPane.getSelectedText() != null) + { + rightButtonMenu.enableCopy(); + } + else + { + rightButtonMenu.disableCopy(); + } + rightButtonMenu.setInvoker(chatTextPane); + rightButtonMenu.setLocation(p.x, p.y); + rightButtonMenu.setVisible(true); + } + + public void mousePressed(MouseEvent e) {} + + public void mouseReleased(MouseEvent e) {} + + public void mouseEntered(MouseEvent e) {} + + public void mouseExited(MouseEvent e) {} + + public void lostOwnership(Clipboard clipboard, Transferable contents) {} + + /** + * Returns the chat container. + * + * @return the chat container + */ + public ChatConversationContainer getChatContainer() + { + return chatContainer; + } + + /** + * Copies the selected conversation panel content to the clipboard. + */ + public void copyConversation() + { + this.chatTextPane.copy(); + } + + /** + * Creates new document and all the messages that will be processed in the + * future will be appended in it. + */ + public void clear() + { + this.document = (HTMLDocument) editorKit.createDefaultDocument(); + Constants.loadSimpleStyle( + document.getStyleSheet(), chatTextPane.getFont()); + } + + /** + * Sets the given document to the editor pane in this panel. + * + * @param document the document to set + */ + public void setContent(HTMLDocument document) + { + synchronized (scrollToBottomRunnable) + { + scrollToBottomIsPending = true; + + this.document = document; + chatTextPane.setDocument(this.document); + } + } + + /** + * Sets the default document contained in this panel, created on init or + * when clear is invoked. + */ + public void setDefaultContent() + { + setContent(document); + } + + /** + * Returns the document contained in this panel. + * + * @return the document contained in this panel + */ + public HTMLDocument getContent() + { + return (HTMLDocument) this.chatTextPane.getDocument(); + } + + /** + * Returns the right button popup menu. + * + * @return the right button popup menu + */ + public ChatRightButtonMenu getRightButtonMenu() + { + return rightButtonMenu; + } + + /** + * Returns the date of the first message in the current page. + * + * @return the date of the first message in the current page + */ + public Date getPageFirstMsgTimestamp() + { + Element rootElement = this.document.getDefaultRootElement(); + + Element firstMessageElement = null; + + for(int i = 0; i < rootElement.getElementCount(); i ++) + { + String idAttr = (String) rootElement.getElement(i) + .getAttributes().getAttribute("identifier"); + + if (idAttr != null && idAttr.equals("messageHeader")) + { + firstMessageElement = rootElement.getElement(i); + break; + } + } + + if(firstMessageElement == null) + return new Date(Long.MAX_VALUE); + + String dateObject = firstMessageElement + .getAttributes().getAttribute("date").toString(); + + return new Date(Long.parseLong(dateObject)); + } + + /** + * Returns the date of the last message in the current page. + * + * @return the date of the last message in the current page + */ + public Date getPageLastMsgTimestamp() + { + Element rootElement = this.document.getDefaultRootElement(); + + Element lastMessageElement = null; + + for(int i = rootElement.getElementCount() - 1; i >= 0; i --) + { + String idAttr = (String) rootElement.getElement(i) + .getAttributes().getAttribute("identifier"); + + if (idAttr != null && idAttr.equals("messageHeader")) + { + lastMessageElement = rootElement.getElement(i); + break; + } + } + + if(lastMessageElement == null) + return new Date(0); + + String dateObject = lastMessageElement + .getAttributes().getAttribute("date").toString(); + + return new Date(Long.parseLong(dateObject)); + } + + /** + * Formats HTML tags &lt;br/&gt; to &lt;br&gt; or &lt;BR/&gt; to &lt;BR&gt;. + * The reason of this function is that the ChatPanel does not support + * &lt;br /&gt; closing tags (XHTML syntax), thus we have to remove every + * slash from each &lt;br /&gt; tags. + * @param message The source message string. + * @return The message string with properly formatted &lt;br&gt; tags. + */ + private String processBrTags(String message) + { + // The resulting message after being processed by this function. + StringBuffer processedMessage = new StringBuffer(); + + // Compile the regex to match something like <br .. /> or <BR .. />. + // This regex is case sensitive and keeps the style or other + // attributes of the <br> tag. + Matcher m + = Pattern.compile("<\\s*[bB][rR](.*?)(/\\s*>)").matcher(message); + int start = 0; + + // while we find some <br /> closing tags with a slash inside. + while(m.find()) + { + // First, we have to copy all the message preceding the <br> tag. + processedMessage.append(message.substring(start, m.start())); + // Then, we find the position of the slash inside the tag. + int slash_index = m.group().lastIndexOf("/"); + // We copy the <br> tag till the slash exclude. + processedMessage.append(m.group().substring(0, slash_index)); + // We copy all the end of the tag following the slash exclude. + processedMessage.append(m.group().substring(slash_index+1)); + start = m.end(); + } + // Finally, we have to add the end of the message following the last + // <br> tag, or the whole message if there is no <br> tag. + processedMessage.append(message.substring(start)); + + return processedMessage.toString(); + } + + /** + * Formats HTML tags &lt;img ... /&gt; to &lt; img ... &gt;&lt;/img&gt; or + * &lt;IMG ... /&gt; to &lt;IMG&gt;&lt;/IMG&gt;. + * The reason of this function is that the ChatPanel does not support + * &lt;img /&gt; tags (XHTML syntax). + * Thus, we remove every slash from each &lt;img /&gt; and close it with a + * separate closing tag. + * @param message The source message string. + * @return The message string with properly formatted &lt;img&gt; tags. + */ + private String processImgTags(String message) + { + // The resulting message after being processed by this function. + StringBuffer processedMessage = new StringBuffer(); + + // Compile the regex to match something like <img ... /> or + // <IMG ... />. This regex is case sensitive and keeps the style, + // src or other attributes of the <img> tag. + Pattern p = Pattern.compile("<\\s*[iI][mM][gG](.*?)(/\\s*>)"); + Matcher m = p.matcher(message); + int slash_index; + int start = 0; + + // while we find some <img /> self-closing tags with a slash inside. + while(m.find()){ + // First, we have to copy all the message preceding the <img> tag. + processedMessage.append(message.substring(start, m.start())); + // Then, we find the position of the slash inside the tag. + slash_index = m.group().lastIndexOf("/"); + // We copy the <img> tag till the slash exclude. + processedMessage.append(m.group().substring(0, slash_index)); + // We copy all the end of the tag following the slash exclude. + processedMessage.append(m.group().substring(slash_index+1)); + // We close the tag with a separate closing tag. + processedMessage.append("</img>"); + start = m.end(); + } + // Finally, we have to add the end of the message following the last + // <img> tag, or the whole message if there is no <img> tag. + processedMessage.append(message.substring(start)); + + return processedMessage.toString(); + } + + /** + * Extend Editor pane to add URL tooltips. + */ + private class MyTextPane + extends JTextPane + { + /** + * Returns the string to be used as the tooltip for <i>event</i>. + * + * @param event the <tt>MouseEvent</tt> + * @return the string to be used as the tooltip for <i>event</i>. + */ + @Override + public String getToolTipText(MouseEvent event) + { + return + ((currentHref != null) && (currentHref.length() != 0)) + ? currentHref + : null; + } + } + + /** + * Adds a custom component at the end of the conversation. + * + * @param component the component to add at the end of the conversation. + */ + public void addComponent(ChatConversationComponent component) + { + synchronized (scrollToBottomRunnable) + { + StyleSheet styleSheet = document.getStyleSheet(); + Style style + = styleSheet + .addStyle( + StyleConstants.ComponentElementName, + styleSheet.getStyle("body")); + + // The image must first be wrapped in a style + style + .addAttribute( + AbstractDocument.ElementNameAttribute, + StyleConstants.ComponentElementName); + + TransparentPanel wrapPanel + = new TransparentPanel(new BorderLayout()); + + wrapPanel.add(component, BorderLayout.NORTH); + + style + .addAttribute(StyleConstants.ComponentAttribute, wrapPanel); + style.addAttribute("identifier", "messageHeader"); + style.addAttribute("date", component.getDate().getTime()); + + scrollToBottomIsPending = true; + + // Insert the component style at the end of the text + try + { + document + .insertString(document.getLength(), "ignored text", style); + } + catch (BadLocationException e) + { + logger.error("Insert in the HTMLDocument failed.", e); + } + } + } + + /** + * Registers a new link click listener. + * + * @param listener the object that should be notified when an internal + * link was clicked. + */ + public void addChatLinkClickedListener(ChatLinkClickedListener listener) + { + if(!chatLinkClickedListeners.contains(listener)) + chatLinkClickedListeners.add(listener); + } + + /** + * Remove a registered link click listener. + * + * @param listener a registered click listener to remove + */ + public void removeChatLinkClickedListener(ChatLinkClickedListener listener) + { + chatLinkClickedListeners.remove(listener); + } + + /** + * Returns the date string to show for the given date. + * + * @param date the date to format + * @return the date string to show for the given date + */ + public static String getDateString(long date) + { + if (GuiUtils.compareDatesOnly(date, System.currentTimeMillis()) < 0) + { + StringBuffer dateStrBuf = new StringBuffer(); + + GuiUtils.formatDate(date, dateStrBuf); + dateStrBuf.append(" "); + return dateStrBuf.toString(); + } + + return ""; + } + + /** + * Reloads images. + */ + public void loadSkin() + { + openLinkItem.setIcon( + new ImageIcon(ImageLoader.getImage(ImageLoader.BROWSER_ICON))); + copyLinkItem.setIcon( + new ImageIcon(ImageLoader.getImage(ImageLoader.COPY_ICON))); + + getRightButtonMenu().loadSkin(); + } + + /** + * Highlights the string in multi user chat. + * + * @param message the message to process + * @param contentType the content type of the message + * @param keyWord the keyword to highlight + * @return the message string with the keyword highlighted + */ + public String processChatRoomHighlight(String message, String contentType, + String keyWord) + { + return processKeyword(message, contentType, keyWord); + } + + public String processMeCommand(ChatMessage chatMessage) + { + String contentType = chatMessage.getContentType(); + String message = chatMessage.getMessage(); + + String msgID = "message"; + String chatString = ""; + String endHeaderTag = ""; + + String startDivTag = "<DIV identifier=\"" + msgID + "\">"; + String endDivTag = "</DIV>"; + + String startPlainTextTag; + String endPlainTextTag; + + if (HTML_CONTENT_TYPE.equals(contentType)) + { + startPlainTextTag = ""; + endPlainTextTag = ""; + } + else + { + startPlainTextTag = START_PLAINTEXT_TAG; + endPlainTextTag = END_PLAINTEXT_TAG; + } + + if (message.length() > 4 && message.substring(0, 4).equals("/me ")) + { + chatString = startDivTag + "<B><I>"; + + endHeaderTag = "</I></B>" + endDivTag; + + chatString += + + processHTMLChars("*** " + chatMessage.getContactName() + " " + + message.substring(4)) + + endHeaderTag; + + Map<String, ReplacementService> listSources = + GuiActivator.getReplacementSources(); + + Iterator<Entry<String, ReplacementService>> entrySetIter = + listSources.entrySet().iterator(); + StringBuffer msgStore = new StringBuffer(chatString); + + for (int i = 0; i < listSources.size(); i++) + { + Map.Entry<String, ReplacementService> entry = + entrySetIter.next(); + + ReplacementService source = entry.getValue(); + + boolean isSmiley = source instanceof SmiliesReplacementService; + if (isSmiley) + { + String sourcePattern = source.getPattern(); + Pattern p = + Pattern.compile(sourcePattern, Pattern.CASE_INSENSITIVE + | Pattern.DOTALL); + Matcher m = p.matcher(msgStore); + + StringBuffer msgTemp = new StringBuffer(chatString); + + while (m.find()) + { + msgTemp.insert(m.start(), startPlainTextTag); + msgTemp.insert(m.end() + startPlainTextTag.length(), + endPlainTextTag); + + } + if (msgTemp.length() != msgStore.length()) + msgStore = msgTemp; + } + } + + return msgStore.toString(); + } + else + return ""; + } + + private static String createIncomingMessageTag( + String messageID, + String incomingMessageHeader, + String incomingMessageParagraph) + { + StringBuffer messageBuff = new StringBuffer(); + +// <div class="box"> +// <div class="topleft"> +// <div class="topright"> +// <div class="messageDiv"> +// <h3>Header</h3> +// <p>Text</p> +// </div> +// </div> +// </div> +// <div class="bottomleft"> +// <div class="bottomright"> +// </div> +// </div> +// </div> + + messageBuff.append("<div " + createBoxStyle() + ">"); + messageBuff.append("<div " + createTopLeftStyle() + ">"); + messageBuff.append("<div " + createTopRightStyle() + ">"); + messageBuff.append("<div identifier=\"" + messageID + + "\" " + createMessageDivStyle() + ">"); + messageBuff.append(incomingMessageHeader); + messageBuff.append(incomingMessageParagraph); + messageBuff.append("</div>"); + messageBuff.append("</div>"); + messageBuff.append("</div>"); + messageBuff.append("<div " + createBottomLeftStyle() + ">"); + messageBuff.append("<div " + createBottomRightStyle() + ">"); + messageBuff.append("</div>"); + messageBuff.append("</div>"); + messageBuff.append("</div>"); + + return messageBuff.toString(); + } + + private static String createOutgoingMessageStyle() + { + StringBuffer styleBuff = new StringBuffer(); + + styleBuff.append("background-image:"); + styleBuff.append("url('bundle://30.0:1/resources/images/impl/gui/lookandfeel/selectedTabMiddle.png');"); + styleBuff.append("background-repeat:"); + styleBuff.append("repeat-x;"); + + return styleBuff.toString(); + } + + private static String createSmsMessageStyle() + { + StringBuffer styleBuff = new StringBuffer(); + + styleBuff.append("background-image:"); + styleBuff.append("url('bundle://30.0:1/resources/images/impl/gui/lookandfeel/tabRight.png');"); + styleBuff.append("background-repeat:"); + styleBuff.append("repeat-x;"); + + return styleBuff.toString(); + } + +// .box { +// width: 100%; +// margin: 0px auto; +// } + private static String createBoxStyle() + { + return "style=\"width: 100%;" + + " margin-top: 0px;" + + " margin-bottom: 0px;" + + " margin-left: auto;" + + " margin-right: auto;\""; + } + +// .box div.topleft { +// display: block; +// background: url("i/box-bg.png") top left no-repeat white; +// padding: 0em 0em 0em 1.0em; +// } + private static String createTopLeftStyle() + { + return "style=\"display: block;" + + " background-image: url('"+INCOMING_MESSAGE_IMAGE_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: top left;" + + " background-color: #FFFFFF;" + + " padding-top: 0em;" + + " padding-right: 0em;" + + " padding-bottom: 0em;" + + " padding-left: 0em;" + + "\""; + } + +// .box div.topright { +// display: block; +// background: url("i/box-bg.png") top right no-repeat white; +// padding: 1.0em; +// margin: -1.0em 0 0 1.0em; +// } + private static String createTopRightStyle() + { + return "style=\"display: block;" + + " background-image: url('"+INCOMING_MESSAGE_IMAGE_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: top right;" + + " background-color: #FFFFFF;" + + " padding-top: 1em;" + + " padding-right: 1em;" + + " padding-bottom: 1em;" + + " padding-left: 1em;" + + " margin-top: -1.0em;" + + " margin-right: 0em;" + + " margin-bottom: 0em;" + + " margin-left: 1.0em;" + + "\""; + } + +// .box div.bottomleft { +// display: block; +// height: 55px; +// margin-top: -1.0em; +// background: url("i/box-bg.png") bottom left no-repeat white; +// } + private static String createBottomLeftStyle() + { + return "style=\"display: block;" + + " height: 25px;" + + " margin-top: -1.0em;" + + " background-image: url('"+INCOMING_MESSAGE_IMAGE_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: bottom left;" + + " background-color: #FFFFFF;" + + "\""; + } + +// .box div.bottomright { +// display: block; +// background: url("i/box-bg.png") bottom right no-repeat white; +// height: 55px; +// margin-left: 3.0em; +// } + private static String createBottomRightStyle() + { + return "style=\"display: block;" + + " height: 25px;" + + " margin-left: 3.0em;" + + " background-image: url('"+INCOMING_MESSAGE_IMAGE_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: bottom right;" + + " background-color: #FFFFFF;" + + "\""; + } + +// .box div.topright div { +// margin-right: 1.5em; +// } + private static String createMessageDivStyle() + { + return "style=\"margin-right: 1.5em;\""; + } + +// .box h4 { +// margin-bottom: 0.4em; +// background-image: none; +// background-repeat: no-repeat; +// margin:0; +// padding:0; +// text-align:center; +// padding-bottom:15px; +// } +} \ No newline at end of file diff --git a/src/net/java/sip/communicator/impl/contactlist/MetaContactImpl.java b/src/net/java/sip/communicator/impl/contactlist/MetaContactImpl.java index 8b1573d13..81528e486 100644 --- a/src/net/java/sip/communicator/impl/contactlist/MetaContactImpl.java +++ b/src/net/java/sip/communicator/impl/contactlist/MetaContactImpl.java @@ -6,7 +6,6 @@ */ package net.java.sip.communicator.impl.contactlist; -import java.io.*; import java.util.*; import net.java.sip.communicator.service.contactlist.*; @@ -14,8 +13,6 @@ import net.java.sip.communicator.service.protocol.*; import net.java.sip.communicator.util.*; -import org.jitsi.service.fileaccess.*; - /** * A default implementation of the <code>MetaContact</code> interface. * @@ -93,34 +90,11 @@ public class MetaContactImpl */ private Map<String, List<String>> details; - /** - * The name (i.e. not the whole path) of the directory in which the avatar - * files are to be cached for later reuse. - */ - private final static String AVATAR_DIR = "avatarcache"; - /** * Whether user has renamed this meta contact. */ private boolean isDisplayNameUserDefined = false; - /** - * Characters and their replacement in created folder names - */ - private final static String[][] ESCAPE_SEQUENCES = new String[][] - { - {"&", "&_amp"}, - {"/", "&_sl"}, - {"\\\\", "&_bs"}, // the char \ - {":", "&_co"}, - {"\\*", "&_as"}, // the char * - {"\\?", "&_qm"}, // the char ? - {"\"", "&_pa"}, // the char " - {"<", "&_lt"}, - {">", "&_gt"}, - {"\\|", "&_pp"} // the char | - }; - /** * Creates new meta contact with a newly generated meta contact UID. */ @@ -636,16 +610,8 @@ public byte[] getAvatar(boolean isLazy) while (iter.hasNext()) { Contact protoContact = iter.next(); - String avatarPath = AVATAR_DIR - + File.separator - + escapeSpecialCharacters( - protoContact - .getProtocolProvider() - .getAccountID().getAccountUniqueID()) - + File.separator - + escapeSpecialCharacters(protoContact.getAddress()); - - cachedAvatar = getLocallyStoredAvatar(avatarPath); + + cachedAvatar = AvatarCacheUtils.getCachedAvatar(protoContact); /* * Caching a zero-length avatar happens but such an avatar isn't * very useful. @@ -1103,136 +1069,7 @@ public void cacheAvatar( Contact protoContact, this.cachedAvatar = avatarBytes; this.avatarFileCacheAlreadyQueried = true; - String avatarDirPath - = AVATAR_DIR - + File.separator - + escapeSpecialCharacters( - protoContact - .getProtocolProvider() - .getAccountID().getAccountUniqueID()); - String avatarFileName - = escapeSpecialCharacters(protoContact.getAddress()); - - File avatarDir = null; - File avatarFile = null; - try - { - FileAccessService fileAccessService - = ContactlistActivator.getFileAccessService(); - - avatarDir - = fileAccessService.getPrivatePersistentDirectory( - avatarDirPath); - avatarFile - = fileAccessService.getPrivatePersistentFile( - avatarDirPath + File.separator + avatarFileName); - - if(!avatarFile.exists()) - { - if (!avatarDir.exists() && !avatarDir.mkdirs()) - { - throw - new IOException( - "Failed to create directory: " - + avatarDir.getAbsolutePath()); - } - - if (!avatarFile.createNewFile()) - { - throw - new IOException( - "Failed to create file" - + avatarFile.getAbsolutePath()); - } - } - - FileOutputStream fileOutStream = new FileOutputStream(avatarFile); - - try - { - fileOutStream.write(avatarBytes); - fileOutStream.flush(); - } - finally - { - fileOutStream.close(); - } - } - catch (Exception ex) - { - logger.error( - "Failed to store avatar. dir =" + avatarDir - + " file=" + avatarFile, - ex); - } - } - - /** - * Returns the avatar image corresponding to the given avatar path. - * - * @param avatarPath The path to the lovally stored avatar. - * @return the avatar image corresponding to the given avatar path. - */ - private byte[] getLocallyStoredAvatar(String avatarPath) - { - try - { - File avatarFile - = ContactlistActivator - .getFileAccessService() - .getPrivatePersistentFile(avatarPath); - - if(avatarFile.exists()) - { - FileInputStream avatarInputStream - = new FileInputStream(avatarFile); - byte[] bs = null; - - try - { - int available = avatarInputStream.available(); - - if (available > 0) - { - bs = new byte[available]; - avatarInputStream.read(bs); - } - } - finally - { - avatarInputStream.close(); - } - if (bs != null) - return bs; - } - } - catch (Exception ex) - { - logger.error( - "Could not read avatar image from file " + avatarPath, - ex); - } - return null; - } - - /** - * Replaces the characters that we must escape used for the created - * filename. - * - * @param id the <tt>String</tt> which is to have its characters escaped - * @return a <tt>String</tt> derived from the specified <tt>id</tt> by - * escaping characters - */ - private String escapeSpecialCharacters(String id) - { - String resultId = id; - - for (int j = 0; j < ESCAPE_SEQUENCES.length; j++) - { - resultId = resultId. - replaceAll(ESCAPE_SEQUENCES[j][0], ESCAPE_SEQUENCES[j][1]); - } - return resultId; + AvatarCacheUtils.cacheAvatar(protoContact, avatarBytes); } /** diff --git a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java index a0f2eb9db..7bc1ea72a 100644 --- a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java +++ b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java @@ -276,7 +276,7 @@ private void init() this.setJMenuBar(menu); TransparentPanel searchPanel - = new TransparentPanel(new BorderLayout(2, 0)); + = new TransparentPanel(new BorderLayout(5, 0)); searchPanel.add(searchField); searchPanel.add(new DialPadButton(), BorderLayout.WEST); diff --git a/src/net/java/sip/communicator/impl/gui/main/call/AbstractCallToggleButton.java b/src/net/java/sip/communicator/impl/gui/main/call/AbstractCallToggleButton.java index 7958d68db..0c67e0b72 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/AbstractCallToggleButton.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/AbstractCallToggleButton.java @@ -37,17 +37,17 @@ public abstract class AbstractCallToggleButton /** * The background image. */ - protected ImageID bgImage; + protected ImageID bgImageID; /** * The rollover image */ - protected ImageID bgRolloverImage; + protected ImageID bgRolloverImageID; /** * The pressed image. */ - protected ImageID pressedImage; + protected ImageID pressedImageID; /** * The icon image. @@ -136,27 +136,17 @@ public AbstractCallToggleButton( this.fullScreen = fullScreen; this.settingsPanel = settingsPanel; - if (fullScreen) + if(settingsPanel) { - bgImage = ImageLoader.FULL_SCREEN_BUTTON_BG; - bgRolloverImage = ImageLoader.FULL_SCREEN_BUTTON_BG; - pressedImage = ImageLoader.FULL_SCREEN_BUTTON_BG_PRESSED; + bgRolloverImageID = ImageLoader.CALL_SETTING_BUTTON_BG; + pressedImageID = ImageLoader.CALL_SETTING_BUTTON_PRESSED_BG; } else { - if(settingsPanel) - { - bgImage = ImageLoader.CALL_SETTING_BUTTON_BG; - bgRolloverImage = ImageLoader.CALL_SETTING_BUTTON_BG; - pressedImage = ImageLoader.CALL_SETTING_BUTTON_PRESSED_BG; - } - else - { - bgImage = ImageLoader.SOUND_SETTING_BUTTON_BG; - bgRolloverImage = ImageLoader.SOUND_SETTING_BUTTON_BG; - pressedImage = ImageLoader.SOUND_SETTING_BUTTON_PRESSED; + bgImageID = ImageLoader.SOUND_SETTING_BUTTON_BG; + bgRolloverImageID = ImageLoader.SOUND_SETTING_BUTTON_BG; + pressedImageID = ImageLoader.SOUND_SETTING_BUTTON_PRESSED; - } } if (toolTipTextKey != null) @@ -171,13 +161,6 @@ public AbstractCallToggleButton( // All items are now instantiated and could safely load the skin. loadSkin(); - - int width = getBgImage().getWidth(null); - int height = getBgImage().getHeight(null); - - this.setPreferredSize(new Dimension(width, height)); - this.setMaximumSize(new Dimension(width, height)); - this.setMinimumSize(new Dimension(width, height)); } /** @@ -256,15 +239,30 @@ private void doRun() */ public void loadSkin() { - setBgImage(ImageLoader.getImage(bgImage)); - setBgRolloverImage(ImageLoader.getImage(bgRolloverImage)); - setPressedImage(ImageLoader.getImage(pressedImage)); + int width = CallToolBarButton.DEFAULT_WIDTH; + int height = CallToolBarButton.DEFAULT_HEIGHT; + + if (bgImageID != null) + { + Image bgImage = ImageLoader.getImage(bgImageID); + setBgImage(bgImage); + + width = bgImage.getWidth(this); + height = bgImage.getHeight(this); + } + + setPreferredSize(new Dimension(width, height)); + setMaximumSize(new Dimension(width, height)); + setMinimumSize(new Dimension(width, height)); + + setBgRolloverImage(ImageLoader.getImage(bgRolloverImageID)); + setPressedImage(ImageLoader.getImage(pressedImageID)); if (iconImageID != null) { if (!fullScreen && !settingsPanel) setIconImage(ImageUtils.scaleImageWithinBounds( - ImageLoader.getImage(iconImageID), 12, 12)); + ImageLoader.getImage(iconImageID), 18, 18)); else setIconImage(ImageLoader.getImage(iconImageID)); } @@ -273,7 +271,7 @@ public void loadSkin() { if (!fullScreen && !settingsPanel) setPressedIconImage(ImageUtils.scaleImageWithinBounds( - ImageLoader.getImage(pressedIconImageID), 12, 12)); + ImageLoader.getImage(pressedIconImageID), 18, 18)); else setPressedIconImage(ImageLoader.getImage(pressedIconImageID)); } @@ -290,7 +288,7 @@ public void setIconImageID(ImageID iconImageID) if (!fullScreen && !settingsPanel) setIconImage(ImageUtils.scaleImageWithinBounds( - ImageLoader.getImage(iconImageID), 12, 12)); + ImageLoader.getImage(iconImageID), 18, 18)); else setIconImage(ImageLoader.getImage(iconImageID)); } diff --git a/src/net/java/sip/communicator/impl/gui/main/call/CallHistoryButton.java b/src/net/java/sip/communicator/impl/gui/main/call/CallHistoryButton.java index 476ad524f..d00d60d06 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/CallHistoryButton.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/CallHistoryButton.java @@ -41,6 +41,11 @@ public class CallHistoryButton */ private Image pressedImage; + /** + * The notification image. + */ + private Image notificationImage; + /** * Indicates if the history is visible. */ @@ -142,7 +147,10 @@ public void notificationReceived(UINotification notification) */ private void setHistoryView() { - isNotificationsView = false; + if (isNotificationsView) + isNotificationsView = false; + else + setIcon(null); if (isHistoryVisible) { @@ -167,7 +175,6 @@ private void setNotificationView( { int notificationCount = 0; isNotificationsView = true; - this.setBgImage(null); Iterator<UINotificationGroup> groupsIter = notificationGroups.iterator(); @@ -204,7 +211,29 @@ private void setNotificationView( this.setToolTipText(tooltipText + "</html>"); this.setBackground(new Color(200, 0, 0)); - this.setText(new Integer(notificationCount).toString()); + this.setVerticalTextPosition(SwingConstants.TOP); + + Image iconImage = ImageLoader.getImage(notificationImage, + new Integer(notificationCount).toString(), this); + + if (isHistoryVisible) + { + setBgImage(ImageLoader.getImage( + pressedImage, + iconImage, + pressedImage.getWidth(null)/2 + - notificationImage.getWidth(null)/2, + 0)); + } + else + { + setBgImage(ImageLoader.getImage( + historyImage, + iconImage, + pressedImage.getWidth(null)/2 + - notificationImage.getWidth(null)/2, + 0)); + } } /** @@ -218,6 +247,10 @@ public void loadSkin() pressedImage = ImageLoader.getImage(ImageLoader.CALL_HISTORY_BUTTON_PRESSED); + notificationImage + = ImageLoader.getImage( + ImageLoader.CALL_HISTORY_BUTTON_NOTIFICATION); + this.setPreferredSize(new Dimension(historyImage.getWidth(this), historyImage.getHeight(this))); diff --git a/src/net/java/sip/communicator/impl/gui/main/call/CallPanel.java b/src/net/java/sip/communicator/impl/gui/main/call/CallPanel.java index 966a7a2fb..e8a5c2a26 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/CallPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/CallPanel.java @@ -14,7 +14,6 @@ import javax.swing.*; import javax.swing.Timer; -import javax.swing.border.*; import javax.swing.event.*; import net.java.sip.communicator.impl.gui.*; @@ -29,7 +28,6 @@ import net.java.sip.communicator.util.Logger; import net.java.sip.communicator.util.skin.*; import net.java.sip.communicator.util.swing.*; -import net.java.sip.communicator.util.swing.border.*; import org.jitsi.service.neomedia.*; import org.jitsi.service.neomedia.device.*; @@ -105,11 +103,6 @@ public class CallPanel */ private static final String INFO_BUTTON = "INFO_BUTTON"; - /** - * The hang up button name. - */ - private static final String HANGUP_BUTTON = "HANGUP_BUTTON"; - /** * The hang up button name. */ @@ -128,7 +121,7 @@ public class CallPanel /** * The panel containing call settings. */ - private final TransparentPanel settingsPanel = new OrderedTransparentPanel(); + private JComponent settingsPanel; /** * The panel representing the call. For conference calls this would be an @@ -181,17 +174,20 @@ public class CallPanel /** * The dial button, which opens a keypad dialog. */ - private SIPCommButton dialButton = new SIPCommButton( - ImageLoader.getImage(ImageLoader.CALL_SETTING_BUTTON_BG), - ImageLoader.getImage(ImageLoader.DIAL_BUTTON)); + private CallToolBarButton dialButton = new CallToolBarButton( + ImageLoader.getImage(ImageLoader.DIAL_BUTTON), + DIAL_BUTTON, + GuiActivator.getResources().getI18NString("service.gui.DIALPAD")); /** * The conference button. */ - private SIPCommButton conferenceButton - = new SIPCommButton( - ImageLoader.getImage(ImageLoader.CALL_SETTING_BUTTON_BG), - ImageLoader.getImage(ImageLoader.ADD_TO_CALL_BUTTON)); + private CallToolBarButton conferenceButton + = new CallToolBarButton( + ImageLoader.getImage(ImageLoader.ADD_TO_CALL_BUTTON), + CONFERENCE_BUTTON, + GuiActivator.getResources().getI18NString( + "service.gui.CREATE_CONFERENCE_CALL")); /** * Chat button. @@ -216,10 +212,12 @@ public class CallPanel /** * Merge button. */ - private SIPCommButton mergeButton = - new SIPCommButton( - ImageLoader.getImage(ImageLoader.CALL_SETTING_BUTTON_BG), - ImageLoader.getImage(ImageLoader.MERGE_CALL_BUTTON)); + private CallToolBarButton mergeButton = + new CallToolBarButton( + ImageLoader.getImage(ImageLoader.MERGE_CALL_BUTTON), + MERGE_BUTTON, + GuiActivator.getResources().getI18NString( + "service.gui.MERGE_TO_CALL")); /** * The call represented in this dialog. @@ -264,7 +262,7 @@ public class CallPanel /** * Sound remote level label. */ - private OutputVolumeControlButton remoteLevel; + private Component remoteLevel; /** * A collection of listeners, registered for call title change events. @@ -290,23 +288,28 @@ public CallPanel(Call call, CallContainer callWindow) this.call = call; this.callWindow = callWindow; + settingsPanel + = CallPeerRendererUtils.createButtonBar(false, null); + holdButton = new HoldButton(call); recordButton = new RecordButton(call); videoButton = new LocalVideoButton(call); showHideVideoButton = new ShowHideVideoButton(call); desktopSharingButton = new DesktopSharingButton(call); transferCallButton = new TransferCallButton(call); - fullScreenButton = new FullScreenButton(this); - chatButton = new SIPCommButton( - ImageLoader.getImage(ImageLoader.CALL_SETTING_BUTTON_BG), - ImageLoader.getImage(ImageLoader.CHAT_BUTTON_SMALL_WHITE)); + fullScreenButton = new FullScreenButton(this, false); + chatButton = new CallToolBarButton( + ImageLoader.getImage(ImageLoader.CHAT_BUTTON_SMALL_WHITE), + CHAT_BUTTON, + GuiActivator.getResources().getI18NString("service.gui.CHAT")); + localLevel = new InputVolumeControlButton( call, ImageLoader.MICROPHONE, ImageLoader.MUTE_BUTTON, false, true, false); remoteLevel = new OutputVolumeControlButton( - ImageLoader.VOLUME_CONTROL_BUTTON, false, true); + ImageLoader.VOLUME_CONTROL_BUTTON, false, true).getComponent(); this.callDurationTimer = new Timer(1000, new CallTimerListener()); this.callDurationTimer.setRepeats(true); @@ -345,7 +348,7 @@ public CallPanel(Call call, CallContainer callWindow) callPeers.next().addCallPeerConferenceListener(this); // Initializes all buttons and common panels. - init(); + initToolBar(); initPluginComponents(); } @@ -353,15 +356,12 @@ public CallPanel(Call call, CallContainer callWindow) /** * Initializes all buttons and common panels */ - private void init() + private void initToolBar() { - hangupButton = new SIPCommButton( - ImageLoader.getImage(ImageLoader.HANGUP_BUTTON_BG)); + hangupButton = new HangupButton(this); - holdButton.setIndex(2); - recordButton.setIndex(3); - videoButton.setIndex(11); - showHideVideoButton.setIndex(12); + // Initializes the order of buttons in the call tool bar. + initButtonIndexes(); showHideVideoButton.setPeerRenderer(((CallRenderer) callPanel) .getCallPeerRenderer(call.getCallPeers().next())); @@ -388,42 +388,9 @@ public void stateChanged(ChangeEvent e) } }); - desktopSharingButton.setIndex(8); - transferCallButton.setIndex(5); - fullScreenButton.setIndex(10); - - chatButton.setName(CHAT_BUTTON); - chatButton.setToolTipText( - GuiActivator.getResources().getI18NString("service.gui.CHAT")); chatButton.addActionListener(this); - chatButton.setIndex(19); - - localLevel.setIndex(6); - remoteLevel.setIndex(7); - - dialButton.setIndex(0); - dialButton.setName(DIAL_BUTTON); - dialButton.setToolTipText( - GuiActivator.getResources().getI18NString("service.gui.DIALPAD")); dialButton.addActionListener(this); - - conferenceButton.setIndex(1); - conferenceButton.setName(CONFERENCE_BUTTON); - conferenceButton.setToolTipText( - GuiActivator.getResources().getI18NString( - "service.gui.CREATE_CONFERENCE_CALL")); conferenceButton.addActionListener(this); - - hangupButton.setName(HANGUP_BUTTON); - hangupButton.setToolTipText( - GuiActivator.getResources().getI18NString("service.gui.HANG_UP")); - hangupButton.addActionListener(this); - - mergeButton.setIndex(4); - mergeButton.setName(MERGE_BUTTON); - mergeButton.setToolTipText( - GuiActivator.getResources().getI18NString( - "service.gui.MERGE_TO_CALL")); mergeButton.addActionListener(this); /* @@ -474,24 +441,50 @@ public void stateChanged(ChangeEvent e) if(GuiActivator.getConfigurationService() .getBoolean(SHOW_CALL_INFO_BUTON_PROP, true)) { - infoButton = new SIPCommButton( - ImageLoader.getImage(ImageLoader.CALL_SETTING_BUTTON_BG), - ImageLoader.getImage(ImageLoader.CALL_INFO)); - infoButton.setName(INFO_BUTTON); - infoButton.setToolTipText( - GuiActivator.getResources().getI18NString( - "service.gui.PRESS_FOR_CALL_INFO")); + infoButton = new CallToolBarButton( + ImageLoader.getImage(ImageLoader.CALL_INFO), + INFO_BUTTON, + GuiActivator.getResources().getI18NString( + "service.gui.PRESS_FOR_CALL_INFO")); + infoButton.addActionListener(this); - infoButton.setIndex(20); settingsPanel.add(infoButton); } - dtmfHandler = new DTMFHandler(this); + settingsPanel.add(hangupButton); - JComponent bottomBar = createBottomBar(); + dtmfHandler = new DTMFHandler(this); add(callPanel, BorderLayout.CENTER); - add(bottomBar, BorderLayout.SOUTH); + add(createBottomBar(), BorderLayout.SOUTH); + } + + /** + * Initializes buttons order in the call tool bar. + */ + private void initButtonIndexes() + { + dialButton.setIndex(0); + conferenceButton.setIndex(1); + holdButton.setIndex(2); + recordButton.setIndex(3); + mergeButton.setIndex(4); + transferCallButton.setIndex(5); + localLevel.setIndex(6); + + if (remoteLevel instanceof OrderedComponent) + ((OrderedComponent) remoteLevel).setIndex(7); + + desktopSharingButton.setIndex(8); + fullScreenButton.setIndex(10); + videoButton.setIndex(11); + showHideVideoButton.setIndex(12); + chatButton.setIndex(19); + + if (infoButton != null) + infoButton.setIndex(20); + + hangupButton.setIndex(100); } /** @@ -503,11 +496,7 @@ public void actionPerformed(ActionEvent evt) JButton button = (JButton) evt.getSource(); String buttonName = button.getName(); - if (buttonName.equals(HANGUP_BUTTON)) - { - actionPerformedOnHangupButton(false); - } - else if (buttonName.equals(MERGE_BUTTON)) + if (buttonName.equals(MERGE_BUTTON)) { Collection<Call> calls = CallManager.getActiveCalls(); @@ -1612,10 +1601,10 @@ public boolean isRecordingStarted() */ private JComponent createBottomBar() { - JComponent bottomBar = new TransparentPanel(); + JComponent bottomBar + = new TransparentPanel(new FlowLayout(FlowLayout.CENTER, 0, 0)); - bottomBar.setBorder( - new ExtendedEtchedBorder(EtchedBorder.LOWERED, 1, 0, 0, 0)); + bottomBar.setBorder(BorderFactory.createEmptyBorder(0, 30, 2, 30)); if (OSUtils.IS_MAC) { @@ -1625,9 +1614,7 @@ private JComponent createBottomBar() .getColor("service.gui.MAC_PANEL_BACKGROUND"))); } - bottomBar.setLayout(new BorderLayout()); - bottomBar.add(settingsPanel, BorderLayout.WEST); - bottomBar.add(hangupButton, BorderLayout.EAST); + bottomBar.add(settingsPanel); return bottomBar; } diff --git a/src/net/java/sip/communicator/impl/gui/main/call/CallPeerRendererUtils.java b/src/net/java/sip/communicator/impl/gui/main/call/CallPeerRendererUtils.java index f6a4656bc..543af5dac 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/CallPeerRendererUtils.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/CallPeerRendererUtils.java @@ -13,7 +13,6 @@ import net.java.sip.communicator.impl.gui.*; import net.java.sip.communicator.impl.gui.utils.*; -import net.java.sip.communicator.util.skin.*; import net.java.sip.communicator.util.swing.*; /** @@ -26,30 +25,6 @@ */ public class CallPeerRendererUtils { - /** - * Creates a new <tt>Component</tt> through which the user would be able to - * exit the full screen mode. - * - * @param renderer the renderer through which we exit the full screen mode - * @return the newly created component - */ - public static Component createExitFullScreenButton( - final CallRenderer renderer) - { - JButton button = new ExitFullScreenButton(); - - button.setToolTipText(GuiActivator.getResources().getI18NString( - "service.gui.EXIT_FULL_SCREEN_TOOL_TIP")); - button.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent event) - { - renderer.exitFullScreen(); - } - }); - return button; - } - /** * Sets the given <tt>background</tt> color to the given <tt>component</tt>. * @@ -87,24 +62,27 @@ public static void addKeyListener(Component component, KeyListener l) /** * Creates a buttons bar from the given list of button components. * - * @param heavyweight indicates if the created button bar should be heavy - * weight component (useful in full screen mode) + * @param fullScreen indicates if the created button bar would be shown in + * full screen mode * @param buttons the list of buttons to add in the created button bar * @return the created button bar */ - public static Component createButtonBar(boolean heavyweight, + public static JComponent createButtonBar(boolean fullScreen, Component[] buttons) { - Container buttonBar - = heavyweight ? new Container() : new TransparentPanel(); + JComponent buttonBar = fullScreen + ? new CallToolBarPanel(true) + : new CallToolBarPanel(false); - buttonBar.setLayout(new FlowLayout(FlowLayout.CENTER, 3, 3)); - - for (Component button : buttons) + if (buttons != null) { - if (button != null) - buttonBar.add(button); + for (Component button : buttons) + { + if (button != null) + ((Container) buttonBar).add(button); + } } + return buttonBar; } @@ -137,32 +115,74 @@ public static Frame getFrame(Component component) } /** - * Full screen exit button. Implements <tt>Skinnable</tt>. + * The tool bar container shown in the call window. */ - public static class ExitFullScreenButton - extends SIPCommButton - implements Skinnable + private static class CallToolBarPanel + extends OrderedTransparentPanel { - /** - * Creates an instance of SIPCommButton. - */ - public ExitFullScreenButton() + final Color settingsColor + = new Color(GuiActivator.getResources().getColor( + "service.gui.CALL_TOOL_BAR")); + + final Color settingsFullScreenColor + = new Color(GuiActivator.getResources().getColor( + "service.gui.CALL_TOOL_BAR_FULL_SCREEN")); + + final Image buttonSeparatorImage + = ImageLoader.getImage(ImageLoader.CALL_TOOLBAR_SEPARATOR); + + private final boolean isFullScreen; + + private final int TOOL_BAR_BORDER = 2; + + private final int TOOL_BAR_X_GAP = 3; + + public CallToolBarPanel(boolean isFullScreen) { - super( - ImageLoader.getImage(ImageLoader.FULL_SCREEN_BUTTON_BG), - ImageLoader.getImage(ImageLoader.EXIT_FULL_SCREEN_BUTTON)); + this.isFullScreen = isFullScreen; + + setLayout(new FlowLayout(FlowLayout.CENTER, 3, 0)); + setBorder(BorderFactory.createEmptyBorder( + TOOL_BAR_BORDER, + TOOL_BAR_BORDER, + TOOL_BAR_BORDER, + TOOL_BAR_BORDER)); } - /** - * Reloads icons. - */ - public void loadSkin() + public void paintComponent(Graphics g) { - setBackgroundImage( - ImageLoader.getImage(ImageLoader.FULL_SCREEN_BUTTON_BG)); - setIconImage( - ImageLoader.getImage(ImageLoader.EXIT_FULL_SCREEN_BUTTON)); - } + super.paintComponent(g); + + g = g.create(); + + AntialiasingManager.activateAntialiasing(g); + + try + { + if (isFullScreen) + g.setColor(settingsFullScreenColor); + else + g.setColor(settingsColor); + + g.fillRoundRect(0, 0, getWidth(), getHeight(), 8, 8); + + // We add the border. + int x = CallToolBarButton.DEFAULT_WIDTH + + TOOL_BAR_BORDER + TOOL_BAR_X_GAP; + + while (x < getWidth() - TOOL_BAR_BORDER - TOOL_BAR_X_GAP) + { + g.drawImage(buttonSeparatorImage, x + 1, + (getHeight() - buttonSeparatorImage.getHeight(this))/2, + this); + x += CallToolBarButton.DEFAULT_WIDTH + TOOL_BAR_X_GAP; + } + } + finally + { + g.dispose(); + } + } } } diff --git a/src/net/java/sip/communicator/impl/gui/main/call/CallToolBarButton.java b/src/net/java/sip/communicator/impl/gui/main/call/CallToolBarButton.java new file mode 100644 index 000000000..c63e63131 --- /dev/null +++ b/src/net/java/sip/communicator/impl/gui/main/call/CallToolBarButton.java @@ -0,0 +1,72 @@ +/* + * Jitsi, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.impl.gui.main.call; + +import java.awt.*; + +import net.java.sip.communicator.util.swing.*; + +/** + * The <tt>CallBarButton</tt> is a button shown in the call window tool bar. + * + * @author Yana Stamcheva + */ +public class CallToolBarButton + extends SIPCommButton +{ + /** + * The default width of a button in the call tool bar. + */ + public static final int DEFAULT_WIDTH = 44; + + /** + * The default height of a button in the call tool bar. + */ + public static final int DEFAULT_HEIGHT = 38; + + /** + * Creates an instance of <tt>CallToolBarButton</tt>. + */ + public CallToolBarButton() + { + this(null, null); + } + + /** + * Creates an instance of <tt>CallToolBarButton</tt> by specifying the icon + * image and the tool tip text. + * + * @param iconImage the icon of this button + * @param tooltipText the text to show in the button tooltip + */ + public CallToolBarButton( Image iconImage, + String tooltipText) + { + this(iconImage, null, tooltipText); + } + + /** + * Creates an instance of <tt>CallToolBarButton</tt> by specifying the icon + * image, the name of the button and the tool tip text. + * + * @param iconImage the icon of this button + * @param buttonName the name of this button + * @param tooltipText the text to show in the button tooltip + */ + public CallToolBarButton( Image iconImage, + String buttonName, + String tooltipText) + { + super(null, iconImage); + + setIconImage(iconImage); + + setPreferredSize(new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT)); + setName(buttonName); + setToolTipText(tooltipText); + } +} diff --git a/src/net/java/sip/communicator/impl/gui/main/call/FullScreenButton.java b/src/net/java/sip/communicator/impl/gui/main/call/FullScreenButton.java index 216bde863..714b0fc97 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/FullScreenButton.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/FullScreenButton.java @@ -6,6 +6,7 @@ */ package net.java.sip.communicator.impl.gui.main.call; +import java.awt.*; import java.awt.event.*; import net.java.sip.communicator.impl.gui.*; @@ -23,6 +24,11 @@ public class FullScreenButton extends SIPCommButton implements Skinnable { + /** + * Indicates if this buttons is shown in full screen view or normal window. + */ + private boolean isFullScreen = false; + /** * Initializes a new <tt>FullScreenButton</tt> instance which is to * enter the full screen mode. @@ -30,13 +36,19 @@ public class FullScreenButton * @param callContainer the parent <tt>CallContainer</tt>, where this button * is contained */ - public FullScreenButton(final CallPanel callContainer) + public FullScreenButton(final CallPanel callContainer, + final boolean isFullScreen) { - super( ImageLoader.getImage(ImageLoader.CALL_SETTING_BUTTON_BG), - ImageLoader.getImage(ImageLoader.ENTER_FULL_SCREEN_BUTTON)); + this.isFullScreen = isFullScreen; + + if (isFullScreen) + setToolTipText(GuiActivator.getResources().getI18NString( + "service.gui.EXIT_FULL_SCREEN_TOOL_TIP")); + else + setToolTipText(GuiActivator.getResources().getI18NString( + "service.gui.ENTER_FULL_SCREEN_TOOL_TIP")); - setToolTipText(GuiActivator.getResources().getI18NString( - "service.gui.ENTER_FULL_SCREEN_TOOL_TIP")); + loadSkin(); addActionListener(new ActionListener() { @@ -49,7 +61,10 @@ public FullScreenButton(final CallPanel callContainer) */ public void actionPerformed(ActionEvent evt) { - callContainer.getCurrentCallRenderer().enterFullScreen(); + if (isFullScreen) + callContainer.getCurrentCallRenderer().exitFullScreen(); + else + callContainer.getCurrentCallRenderer().enterFullScreen(); } }); } @@ -59,10 +74,13 @@ public void actionPerformed(ActionEvent evt) */ public void loadSkin() { - setBackgroundImage(ImageLoader.getImage( - ImageLoader.CALL_SETTING_BUTTON_BG)); + setPreferredSize(new Dimension(44, 38)); - setIconImage(ImageLoader.getImage( + if (isFullScreen) + setIconImage(ImageLoader.getImage( + ImageLoader.EXIT_FULL_SCREEN_BUTTON)); + else + setIconImage(ImageLoader.getImage( ImageLoader.ENTER_FULL_SCREEN_BUTTON)); } } diff --git a/src/net/java/sip/communicator/impl/gui/main/call/FullScreenLayout.java b/src/net/java/sip/communicator/impl/gui/main/call/FullScreenLayout.java index 34032b306..6d1e86165 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/FullScreenLayout.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/FullScreenLayout.java @@ -33,18 +33,31 @@ public class FullScreenLayout private Component south; + /** + * The vertical gap between the center and the south components. + */ + private int yGap = 0; + /** * Initializes a new <tt>FullScreenLayout</tt> instance. * * @param overlay <tt>true</tt> to lay out the <tt>Component</tt> at * {@link #SOUTH} on top of the <tt>Component</tt> at {@link #CENTER} i.e as * an overlay; otherwise, <tt>false</tt> + * @oaram yGap the gap betwen the center and the south component */ - public FullScreenLayout(boolean overlay) + public FullScreenLayout(boolean overlay, int yGap) { this.overlay = overlay; + this.yGap = yGap; } + /** + * Adds the given component to this layout. + * + * @param name the name of the constraint (CENTER or SOUTH) + * @param comp the component to add to this layout + */ public void addLayoutComponent(String name, Component comp) { if (CENTER.equals(name)) @@ -72,6 +85,11 @@ private List<Component> getLayoutComponents() return layoutComponents; } + /** + * Lays out the components added in the given parent container + * + * @param parent the parent container to lay out + */ public void layoutContainer(Container parent) { int southWidth; @@ -97,7 +115,7 @@ public void layoutContainer(Container parent) * If the Component at the SOUTH is not to be shown as an overlay, * make room for it bellow the Component at the CENTER. */ - int yOffset = overlay ? 0 : southHeight; + int yOffset = overlay ? 0 : southHeight + yGap; center.setBounds( 0, diff --git a/src/net/java/sip/communicator/impl/gui/main/call/HangupButton.java b/src/net/java/sip/communicator/impl/gui/main/call/HangupButton.java new file mode 100644 index 000000000..645df7537 --- /dev/null +++ b/src/net/java/sip/communicator/impl/gui/main/call/HangupButton.java @@ -0,0 +1,42 @@ +/* + * Jitsi, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.impl.gui.main.call; + +import java.awt.event.*; + +import net.java.sip.communicator.impl.gui.*; +import net.java.sip.communicator.impl.gui.utils.*; + +/** + * The hangup button shown in the call window. + * + * @author Yana Stamcheva + */ +public class HangupButton + extends CallToolBarButton +{ + /** + * Creates an instance of <tt>HangupButton</tt>, by specifying the parent + * call panel. + * + * @param callPanel the parent call panel + */ + public HangupButton(final CallPanel callPanel) + { + super( ImageLoader.getImage(ImageLoader.HANGUP_BUTTON_BG), + GuiActivator.getResources() + .getI18NString("service.gui.HANG_UP")); + + addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + callPanel.actionPerformedOnHangupButton(false); + } + }); + } +} diff --git a/src/net/java/sip/communicator/impl/gui/main/call/InputVolumeControlButton.java b/src/net/java/sip/communicator/impl/gui/main/call/InputVolumeControlButton.java index f318667ac..d16154817 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/InputVolumeControlButton.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/InputVolumeControlButton.java @@ -51,8 +51,14 @@ public class InputVolumeControlButton */ private final VolumeControl volumeControl; - private final VolumeControlSlider sliderMenu; + /** + * The slider popup menu. + */ + private final JPopupMenu sliderMenu; + /** + * Indicates if this component is shown in full screen mode. + */ private final boolean fullScreen; /** @@ -135,7 +141,9 @@ public InputVolumeControlButton(Call call, volumeControl = getVolumeControl(); // Creates the menu that would contain the volume control component. - sliderMenu = new VolumeControlSlider(volumeControl); + sliderMenu + = new VolumeControlSlider(volumeControl, JSlider.VERTICAL) + .getPopupMenu(); sliderMenu.setInvoker(this); addMouseListener(new MouseAdapter() diff --git a/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPanel.java b/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPanel.java index 476d08968..f3558bb50 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPanel.java @@ -209,7 +209,7 @@ public void enterFullScreen() // Lay out the main Components of the UI. final Container contentPane = frame.getContentPane(); - contentPane.setLayout(new FullScreenLayout(false)); + contentPane.setLayout(new FullScreenLayout(false, 10)); if (buttonBar != null) contentPane.add(buttonBar, FullScreenLayout.SOUTH); if (center != null) @@ -331,7 +331,7 @@ public void exitFullScreen() * * @return the buttons bar <tt>Component</tt> */ - private Component createFullScreenButtonBar() + private JComponent createFullScreenButtonBar() { ShowHideVideoButton showHideButton = new ShowHideVideoButton( call, true, callContainer.isShowHideVideoButtonSelected()); @@ -341,16 +341,17 @@ private Component createFullScreenButtonBar() Component[] buttons = new Component[] { + new OutputVolumeControlButton(true).getComponent(), new InputVolumeControlButton(call, true, callPeer.isMute()), - new OutputVolumeControlButton(true), new HoldButton(call, true, CallPeerState.isOnHold(callPeer.getState())), new RecordButton(call, true, callContainer.isRecordingStarted()), + new FullScreenButton(callContainer, true), new LocalVideoButton( call, true, callContainer.isVideoButtonSelected()), showHideButton, - CallPeerRendererUtils.createExitFullScreenButton(this) + new HangupButton(callContainer) }; return CallPeerRendererUtils.createButtonBar(true, buttons); diff --git a/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java b/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java index 7242a2296..f60cafd27 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java @@ -142,7 +142,7 @@ public class OneToOneCallPeerPanel /** * Sound remote level label. */ - private OutputVolumeControlButton remoteLevel; + private Component remoteLevel; /** * The center component. @@ -356,7 +356,7 @@ private void createSoundLevelIndicators() ImageLoader.MUTE_BUTTON, false, false, false); remoteLevel = new OutputVolumeControlButton( - ImageLoader.HEADPHONE, false, false); + ImageLoader.HEADPHONE, false, false).getComponent(); final SoundLevelIndicator localLevelIndicator = new SoundLevelIndicator( @@ -831,9 +831,8 @@ public void loadSkin() localLevel.setIcon(new ImageIcon( ImageLoader.getImage(ImageLoader.MICROPHONE))); - if(remoteLevel != null) - remoteLevel.setIcon(new ImageIcon( - ImageLoader.getImage(ImageLoader.HEADPHONE))); + if(remoteLevel != null && remoteLevel instanceof Skinnable) + ((Skinnable) remoteLevel).loadSkin(); if(muteStatusLabel.getIcon() != null) muteStatusLabel.setIcon(new ImageIcon( diff --git a/src/net/java/sip/communicator/impl/gui/main/call/OutputVolumeControlButton.java b/src/net/java/sip/communicator/impl/gui/main/call/OutputVolumeControlButton.java index 78a157d50..13b67718f 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/OutputVolumeControlButton.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/OutputVolumeControlButton.java @@ -14,6 +14,7 @@ import net.java.sip.communicator.impl.gui.*; import net.java.sip.communicator.impl.gui.utils.*; import net.java.sip.communicator.service.resources.*; +import net.java.sip.communicator.util.*; import net.java.sip.communicator.util.swing.*; import org.jitsi.service.neomedia.*; @@ -26,7 +27,6 @@ * @author Damian Minkov */ public class OutputVolumeControlButton - extends SIPCommButton { /** * The background image. @@ -43,6 +43,16 @@ public class OutputVolumeControlButton */ private ImageID iconImageID; + /** + * Indicates if we're in full screen mode. + */ + private final boolean fullScreen; + + /** + * + */ + private final boolean inButtonToolBar; + /** * Creates not full screen button. */ @@ -53,68 +63,122 @@ public OutputVolumeControlButton() /** * Creates volume control button. + * * @param fullScreen is full screen. */ public OutputVolumeControlButton(boolean fullScreen) { - this(ImageLoader.VOLUME_CONTROL_BUTTON, fullScreen, false); + this(ImageLoader.VOLUME_CONTROL_BUTTON, fullScreen, true); } /** * Creates volume control button. + * * @param iconImageID the image. * @param fullScreen is full screen. + * @param inButtonToolBar indicates if this button is shown in the button + * tool bar */ public OutputVolumeControlButton(ImageID iconImageID, boolean fullScreen, - boolean inSettingsPanel) + boolean inButtonToolBar) { - super( ImageLoader.getImage(ImageLoader.SOUND_SETTING_BUTTON_PRESSED), - ImageLoader.getImage(iconImageID)); + this.fullScreen = fullScreen; + this.inButtonToolBar = inButtonToolBar; - initVolumeControlButton(fullScreen, inSettingsPanel, iconImageID, - "service.gui.VOLUME_CONTROL_TOOL_TIP"); + this.iconImageID = iconImageID; } /** - * - * @param fullScreen - * @param inSettingsPanel - * @param iconImageID - * @param toolTipTextKey + * Returns the component associated with this output volume control button. + * + * @return the component associated with this output volume control button */ - public void initVolumeControlButton(final boolean fullScreen, - boolean inSettingsPanel, - ImageID iconImageID, - String toolTipTextKey) + public Component getComponent() { - this.iconImageID = iconImageID; - - if (fullScreen) - { - bgImage = ImageLoader.FULL_SCREEN_BUTTON_BG; - pressedImage = ImageLoader.FULL_SCREEN_BUTTON_BG_PRESSED; - } + if (!fullScreen) + return createVolumeControlButton( + inButtonToolBar, + iconImageID, + "service.gui.VOLUME_CONTROL_TOOL_TIP"); else + return createSliderComponent(); + } + + /** + * Creates the slider component for the full screen interface. + * + * @return the created component + */ + public Component createSliderComponent() + { + final Color bgColor + = new Color(GuiActivator.getResources().getColor( + "service.gui.CALL_TOOL_BAR_SOUND_BG")); + + @SuppressWarnings("serial") + TransparentPanel soundPanel = new TransparentPanel( + new FlowLayout(FlowLayout.LEFT, 0, 0)) { - if(inSettingsPanel) + public void paintComponent(Graphics g) { - bgImage = ImageLoader.CALL_SETTING_BUTTON_BG; - pressedImage = ImageLoader.CALL_SETTING_BUTTON_PRESSED_BG; - } - else - { - bgImage = ImageLoader.SOUND_SETTING_BUTTON_BG; - pressedImage = ImageLoader.SOUND_SETTING_BUTTON_PRESSED; + super.paintComponent(g); + + g = g.create(); + + AntialiasingManager.activateAntialiasing(g); + + try + { + g.setColor(bgColor); + + g.fillRoundRect(0, 0, getWidth()-1, getHeight()-1, 8, 8); + } + finally + { + g.dispose(); + } } - } + }; + + soundPanel.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3)); + final VolumeControl volumeControl + = GuiActivator.getMediaService().getOutputVolumeControl(); + + // Creates the menu that would contain the volume control component. + VolumeControlSlider slider + = new VolumeControlSlider(volumeControl, JSlider.HORIZONTAL); + + soundPanel.add(new JLabel(GuiActivator.getResources() + .getImage("service.gui.icons.NO_SOUND_ICON"))); + soundPanel.add(slider); + soundPanel.add(new JLabel(GuiActivator.getResources() + .getImage("service.gui.icons.SOUND_MENU_ICON"))); + + return soundPanel; + } + + /** + * Initializes the volume control button. + * + * @param fullScreen indicates if we're in fullscreen mode + * @param isButtonBar indicates if this button is shown in the button + * toolbar + * @param iconImageID the identifier of the button icon + * @param toolTipTextKey the key of the tool tip text + */ + public Component createVolumeControlButton( boolean isButtonBar, + ImageID iconImageID, + String toolTipTextKey) + { + this.iconImageID = iconImageID; - // Loads the skin of this button. - loadSkin(); + final SIPCommButton volumeControlButton + = new VolumeControlButton(isButtonBar); if (toolTipTextKey != null) { - setToolTipText( + volumeControlButton.setToolTipText( GuiActivator.getResources().getI18NString(toolTipTextKey)); } @@ -122,40 +186,78 @@ public void initVolumeControlButton(final boolean fullScreen, = GuiActivator.getMediaService().getOutputVolumeControl(); // Creates the menu that would contain the volume control component. - final VolumeControlSlider sliderMenu - = new VolumeControlSlider(volumeControl); + final JPopupMenu sliderMenu + = new VolumeControlSlider(volumeControl, JSlider.VERTICAL) + .getPopupMenu(); - sliderMenu.setInvoker(this); + sliderMenu.setInvoker(volumeControlButton); - this.addActionListener(new ActionListener() + volumeControlButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { - Point location = new Point(getX(), getY() + getHeight()); + Point location = new Point( + volumeControlButton.getX(), + volumeControlButton.getY() + + volumeControlButton.getHeight()); - SwingUtilities.convertPointToScreen(location, - OutputVolumeControlButton.this.getParent()); - - if(fullScreen) - location.setLocation(location.getX(), - location.getY() - - sliderMenu.getPreferredSize().getHeight() - - getHeight()); + SwingUtilities.convertPointToScreen( + location, + volumeControlButton.getParent()); sliderMenu.setLocation(location); sliderMenu.setVisible(!sliderMenu.isVisible()); } }); + + return volumeControlButton; } /** - * Loads images. + * The <tt>VolumeControlButton</tt> */ - public void loadSkin() + @SuppressWarnings("serial") + private class VolumeControlButton + extends SIPCommButton { - setBackgroundImage(ImageLoader.getImage(bgImage)); - setPressedImage(ImageLoader.getImage(pressedImage)); - setIconImage(ImageLoader.getImage(iconImageID)); + public VolumeControlButton(boolean inSettingsPanel) + { + super( + ImageLoader.getImage(ImageLoader.SOUND_SETTING_BUTTON_PRESSED), + ImageLoader.getImage(iconImageID)); + + if(inSettingsPanel) + { + bgImage = ImageLoader.CALL_SETTING_BUTTON_BG; + pressedImage = ImageLoader.CALL_SETTING_BUTTON_PRESSED_BG; + } + else + { + bgImage = ImageLoader.SOUND_SETTING_BUTTON_BG; + pressedImage = ImageLoader.SOUND_SETTING_BUTTON_PRESSED; + } + + // Loads the skin of this button. + loadSkin(); + } + + /** + * Loads images. + */ + public void loadSkin() + { + setBackgroundImage(ImageLoader.getImage(bgImage)); + setPressedImage(ImageLoader.getImage(pressedImage)); + + if (iconImageID != null) + { + if (!fullScreen && !inButtonToolBar) + setIconImage(ImageUtils.scaleImageWithinBounds( + ImageLoader.getImage(iconImageID), 18, 18)); + else + setIconImage(ImageLoader.getImage(iconImageID)); + } + } } } diff --git a/src/net/java/sip/communicator/impl/gui/main/call/TransferCallButton.java b/src/net/java/sip/communicator/impl/gui/main/call/TransferCallButton.java index 127a19334..6f31bec20 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/TransferCallButton.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/TransferCallButton.java @@ -12,8 +12,6 @@ import net.java.sip.communicator.impl.gui.*; import net.java.sip.communicator.impl.gui.utils.*; import net.java.sip.communicator.service.protocol.*; -import net.java.sip.communicator.util.skin.*; -import net.java.sip.communicator.util.swing.*; /** * Represents an UI means to transfer (the <tt>Call</tt> of) an associated @@ -24,8 +22,7 @@ * @author Adam Netocny */ public class TransferCallButton - extends SIPCommButton - implements Skinnable + extends CallToolBarButton { /** * The <tt>Call</tt> to be transfered. @@ -42,14 +39,12 @@ public class TransferCallButton */ public TransferCallButton(Call c) { - super( ImageLoader.getImage(ImageLoader.CALL_SETTING_BUTTON_BG), - ImageLoader.getImage(ImageLoader.TRANSFER_CALL_BUTTON)); + super( ImageLoader.getImage(ImageLoader.TRANSFER_CALL_BUTTON), + GuiActivator.getResources().getI18NString( + "service.gui.TRANSFER_BUTTON_TOOL_TIP")); this.call = c; - setToolTipText(GuiActivator.getResources().getI18NString( - "service.gui.TRANSFER_BUTTON_TOOL_TIP")); - OperationSetAdvancedTelephony<?> telephony = call.getProtocolProvider() .getOperationSet(OperationSetAdvancedTelephony.class); @@ -131,16 +126,4 @@ private Collection<CallPeer> getTransferCallPeers() } return transferCalls; } - - /** - * Reloads icons. - */ - public void loadSkin() - { - this.setBackgroundImage(ImageLoader.getImage( - ImageLoader.CALL_SETTING_BUTTON_BG)); - - this.setIconImage(ImageLoader.getImage( - ImageLoader.TRANSFER_CALL_BUTTON)); - } } diff --git a/src/net/java/sip/communicator/impl/gui/main/call/VolumeControlSlider.java b/src/net/java/sip/communicator/impl/gui/main/call/VolumeControlSlider.java index 9f8d2f271..e6e19d0b6 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/VolumeControlSlider.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/VolumeControlSlider.java @@ -22,7 +22,7 @@ * @author Yana Stamcheva */ public class VolumeControlSlider - extends SIPCommPopupMenu + extends TransparentPanel implements VolumeChangeListener { private final JSlider volumeSlider; @@ -41,12 +41,19 @@ public class VolumeControlSlider * @param volumeControl the <tt>VolumeControl</tt> that do the actual volume * adjusting. */ - public VolumeControlSlider(final VolumeControl volumeControl) + public VolumeControlSlider( final VolumeControl volumeControl, + int orientation) { + super(new BorderLayout()); + volumeControl.addVolumeChangeListener(this); - volumeSlider = new JSlider(JSlider.VERTICAL, 0, 100, 50); - volumeSlider.setPreferredSize(new Dimension(20, 100)); + volumeSlider = new JSlider(orientation, 0, 100, 50); + + if (orientation == JSlider.VERTICAL) + volumeSlider.setPreferredSize(new Dimension(20, 100)); + else + volumeSlider.setPreferredSize(new Dimension(100, 20)); // Sets the minimum, maximum and default volume values for the volume // slider. @@ -83,4 +90,18 @@ public void volumeChange(VolumeChangeEvent volumeChangeEvent) if (volumeSlider.getValue() != newValue) volumeSlider.setValue(newValue); } + + /** + * Returns this slider in a popup menu. + * + * @return this slider in a popup menu + */ + public JPopupMenu getPopupMenu() + { + SIPCommPopupMenu popupMenu = new SIPCommPopupMenu(); + + popupMenu.add(this); + + return popupMenu; + } } diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationComponent.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationComponent.java index e25a9afb1..219169742 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationComponent.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationComponent.java @@ -296,7 +296,7 @@ protected void openFile(File downloadFile) */ public String getDateString(Date date) { - return ChatConversationPanel.getDateString(date.getTime()) + return ChatHtmlUtils.getDateString(date.getTime()) + GuiUtils.formatTime(date) + " "; } diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java index fba0eee16..3ec57faa2 100755 --- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java @@ -23,11 +23,11 @@ import javax.swing.text.html.HTML.*; import net.java.sip.communicator.impl.gui.*; -import net.java.sip.communicator.impl.gui.customcontrols.*; import net.java.sip.communicator.impl.gui.main.chat.history.*; import net.java.sip.communicator.impl.gui.main.chat.menus.*; import net.java.sip.communicator.impl.gui.utils.*; import net.java.sip.communicator.service.gui.*; +import net.java.sip.communicator.service.protocol.*; import net.java.sip.communicator.service.replacement.*; import net.java.sip.communicator.service.replacement.smilies.*; import net.java.sip.communicator.util.*; @@ -60,16 +60,6 @@ public class ChatConversationPanel private static final Logger logger = Logger.getLogger(ChatConversationPanel.class); - /** - * The closing tag of the <code>PLAINTEXT</code> HTML element. - */ - private static final String END_PLAINTEXT_TAG = "</PLAINTEXT>"; - - /** - * The opening tag of the <code>PLAINTEXT</code> HTML element. - */ - private static final String START_PLAINTEXT_TAG = "<PLAINTEXT>"; - /** * The regular expression (in the form of compiled <tt>Pattern</tt>) which * matches URLs for the purposed of turning them into links. @@ -141,19 +131,14 @@ public class ChatConversationPanel private long lastIncomingMsgTimestamp; /** - * Indicates if this component is rendering a history conversation. + * The timestamp of the last message. */ - private final boolean isHistory; + private long lastMessageTimestamp; /** - * The html text content type. - */ - public static final String HTML_CONTENT_TYPE = "text/html"; - - /** - * The plain text content type. + * Indicates if this component is rendering a history conversation. */ - public static final String TEXT_CONTENT_TYPE = "text/plain"; + private final boolean isHistory; /** * The indicator which determines whether an automatic scroll to the bottom @@ -161,6 +146,8 @@ public class ChatConversationPanel */ private boolean scrollToBottomIsPending = false; + private String lastMessageUID = null; + /** * The implementation of the routine which scrolls {@link #chatTextPane} to its * bottom. @@ -338,32 +325,6 @@ public void setBounds(int x, int y, int width, int height) super.setBounds(x, y, width, height); } - /** - * Initializes the editor by adding a header containing the date. - * TODO: remove if not used anymore - */ -// private void initEditor() -// { -// Element root = this.document.getDefaultRootElement(); -// -// Date date = new Date(System.currentTimeMillis()); -// -// String chatHeader = "<h1>" + GuiUtils.formatDate(date) + " " + "</h1>"; -// -// try -// { -// this.document.insertAfterStart(root, chatHeader); -// } -// catch (BadLocationException e) -// { -// logger.error("Insert in the HTMLDocument failed.", e); -// } -// catch (IOException e) -// { -// logger.error("Insert in the HTMLDocument failed.", e); -// } -// } - /** * Retrieves the contents of the sent message with the given ID. * @@ -373,7 +334,11 @@ public void setBounds(int x, int y, int width, int height) public String getMessageContents(String messageUID) { Element root = document.getDefaultRootElement(); - Element e = document.getElement(root, Attribute.ID, messageUID); + Element e = document.getElement( + root, + Attribute.ID, + ChatHtmlUtils.MESSAGE_TEXT_ID + messageUID); + if (e == null) { logger.warn("Could not find message with ID" + messageUID); @@ -394,38 +359,6 @@ public String getMessageContents(String messageUID) return res; } - /** - * Creates a tag that shows the last edit time of a message, in the format - * (Edited at ...). - * If <tt>date < 0</tt>, returns an empty tag that serves as a placeholder - * for future corrections of this message. - * - * @param messageUID The ID of the edited message. - * @param date The date when the message was last edited, or -1 to generate - * an empty tag. - * @return The string representation of the tag. - */ - private String generateEditedAtTag(String messageUID, long date) - { - StringBuilder res = new StringBuilder(); - // Use a <cite /> tag here as most of the other inline tags (e.g. h1-7, - // b, i) cause different problems when used in setOuterHTML. - res.append("<cite id='"); - res.append(messageUID); - res.append("-editedAt'> "); - if (date > 0) - { - res.append("&nbsp;"); - String contents = GuiActivator.getResources().getI18NString( - "service.gui.EDITED_AT", - new String[] { GuiUtils.formatTime(date) } - ); - res.append(contents); - } - res.append("</cite>"); - return res.toString(); - } - /** * Processes the message given by the parameters. * @@ -434,8 +367,20 @@ private String generateEditedAtTag(String messageUID, long date) * display of <tt>chatMessage</tt> in the UI * @return the processed message */ - public String processMessage(ChatMessage chatMessage, String keyword) + public String processMessage( ChatMessage chatMessage, + String keyword, + ProtocolProviderService protocolProvider, + String contactAddress) { + String contentType = chatMessage.getContentType(); + + // If this is a consecutive message don't go through the initiation + // and just append it. + if (appendConsecutiveMessage(chatMessage, keyword, contentType)) + return null; + + lastMessageTimestamp = chatMessage.getDate(); + String contactName = chatMessage.getContactName(); String contactDisplayName = chatMessage.getContactDisplayName(); if (contactDisplayName == null @@ -445,99 +390,88 @@ public String processMessage(ChatMessage chatMessage, String keyword) { // for some reason &apos; is not rendered correctly from our ui, // lets use its equivalent. Other similar chars(< > & ") seem ok. - contactDisplayName = contactDisplayName.replaceAll("&apos;", "&#39;"); + contactDisplayName + = contactDisplayName.replaceAll("&apos;", "&#39;"); } - String contentType = chatMessage.getContentType(); long date = chatMessage.getDate(); String messageType = chatMessage.getMessageType(); String messageTitle = chatMessage.getMessageTitle(); - String message = chatMessage.getMessage(); String messageUID = chatMessage.getMessageUID(); - - String msgID = "message"; - String msgHeaderID = "messageHeader"; + String message = chatMessage.getMessage(); + String msgID = ChatHtmlUtils.MESSAGE_TEXT_ID + messageUID; String chatString = ""; String endHeaderTag = ""; - String dateString = getDateString(date); - String idAttr = messageUID == null ? "" : " id='" + messageUID + "'"; - String dateAttr = " date='" + date + "'"; - String editedAtTag = generateEditedAtTag(messageUID, -1); - - String startDivTag = "<DIV identifier=\"" + msgID + "\"" + idAttr + ">"; - String startHistoryDivTag - = "<DIV identifier=\"" + msgID + "\" style=\"color:#707070;\">"; + String startSystemDivTag = "<DIV identifier=\"systemMessage\" style=\"color:#627EB7;\">"; String endDivTag = "</DIV>"; - String startPlainTextTag; - String endPlainTextTag; + lastMessageUID = messageUID; - if (HTML_CONTENT_TYPE.equals(contentType)) + String startPlainTextTag + = ChatHtmlUtils.createStartPlainTextTag(contentType); + String endPlainTextTag + = ChatHtmlUtils.createEndPlainTextTag(contentType); + + if (messageType.equals(Chat.INCOMING_MESSAGE)) { - startPlainTextTag = ""; - endPlainTextTag = ""; + this.lastIncomingMsgTimestamp = System.currentTimeMillis(); + + chatString = ChatHtmlUtils.createIncomingMessageTag( + msgID, + contactName, + contactDisplayName, + getContactAvatar(protocolProvider, contactAddress), + date, + formatMessage(message, contentType, keyword), + contentType); } - else + else if (messageType.equals(Chat.OUTGOING_MESSAGE)) { - startPlainTextTag = START_PLAINTEXT_TAG; - endPlainTextTag = END_PLAINTEXT_TAG; + chatString = ChatHtmlUtils.createOutgoingMessageTag( + msgID, + contactName, + contactDisplayName, + getContactAvatar(protocolProvider), + date, + formatMessage(message, contentType, keyword), + contentType); } - - if (messageType.equals(Chat.INCOMING_MESSAGE)) + else if (messageType.equals(Chat.HISTORY_INCOMING_MESSAGE)) { this.lastIncomingMsgTimestamp = System.currentTimeMillis(); - chatString = "<h2 identifier=\"" + msgHeaderID + "\"" - + dateAttr + ">" - + "<a style=\"color:#ef7b1e;" - + "font-weight:bold;" - + "text-decoration:none;\" " - + "href=\"" + contactName + "\">"; - - endHeaderTag = "</a></h2>"; - - chatString - += dateString + contactDisplayName + " at " - + GuiUtils.formatTime(date) + editedAtTag + endHeaderTag - + startDivTag + startPlainTextTag - + formatMessage(message, contentType, keyword) - + endPlainTextTag + endDivTag; + chatString = ChatHtmlUtils.createIncomingMessageTag( + msgID, + contactName, + contactDisplayName, + getContactAvatar(protocolProvider, contactAddress), + date, + formatMessage(message, contentType, keyword), + contentType); } - else if (messageType.equals(Chat.SMS_MESSAGE)) + else if (messageType.equals(Chat.HISTORY_OUTGOING_MESSAGE)) { - chatString = "<h2 identifier=\"" - + msgHeaderID - + "\" date=\"" - + date + "\">"; - - endHeaderTag = "</h2>"; - - chatString - += "SMS: " + dateString + contactName + " at " - + GuiUtils.formatTime(date) + endHeaderTag + startDivTag - + startPlainTextTag - + formatMessage(message, contentType, keyword) - + endPlainTextTag + endDivTag; + chatString = ChatHtmlUtils.createOutgoingMessageTag( + msgID, + contactName, + contactDisplayName, + getContactAvatar(protocolProvider), + date, + formatMessage(message, contentType, keyword), + contentType); } - else if (messageType.equals(Chat.OUTGOING_MESSAGE)) + else if (messageType.equals(Chat.SMS_MESSAGE)) { - chatString = "<h3 identifier=\"" + msgHeaderID + "\"" - + dateAttr + ">" - + "<a style=\"color:#2e538b;" - + "font-weight:bold;" - + "text-decoration:none;\" " - + "href=\"" + contactName + "\">"; - - endHeaderTag = "</a></h3>"; - - chatString - += dateString + contactDisplayName + " at " - + GuiUtils.formatTime(date) + editedAtTag + endHeaderTag - + startDivTag + startPlainTextTag - + formatMessage(message, contentType, keyword) - + endPlainTextTag + endDivTag; + chatString = ChatHtmlUtils.createIncomingMessageTag( + msgID, + contactName, + contactDisplayName, + getContactAvatar(protocolProvider, contactAddress), + date, + formatMessage("SMS: " + message, contentType, keyword), + contentType); } else if (messageType.equals(Chat.STATUS_MESSAGE)) { @@ -570,7 +504,7 @@ else if (messageType.equals(Chat.SYSTEM_MESSAGE)) else if (messageType.equals(Chat.ERROR_MESSAGE)) { chatString = "<h6 identifier=\"" - + msgHeaderID + + ChatHtmlUtils.MESSAGE_HEADER_ID + "\" date=\"" + date + "\">"; @@ -584,43 +518,6 @@ else if (messageType.equals(Chat.ERROR_MESSAGE)) + messageTitle + endHeaderTag + "<h5>" + message + "</h5>"; } - else if (messageType.equals(Chat.HISTORY_INCOMING_MESSAGE)) - { - chatString = "<h2 identifier=\"" + msgHeaderID + "\"" - + dateAttr + ">" - + "<a style=\"color:#ef7b1e;" - + "font-weight:bold;" - + "text-decoration:none;\" " - + "href=\"" + contactName + "\">"; - - endHeaderTag = "</a></h2>"; - - chatString - += dateString + contactDisplayName - + " at " + GuiUtils.formatTime(date) + endHeaderTag - + editedAtTag + startHistoryDivTag + startPlainTextTag - + formatMessage(message, contentType, keyword) - + endPlainTextTag + endDivTag; - } - else if (messageType.equals(Chat.HISTORY_OUTGOING_MESSAGE)) - { - chatString = "<h3 identifier=\"" + msgHeaderID + "\"" - + dateAttr + ">" - + "<a style=\"color:#2e538b;" - + "font-weight:bold;" - + "text-decoration:none;\" " - + "href=\"" + contactName + "\">"; - - endHeaderTag = "</h3>"; - - chatString - += dateString - + contactDisplayName + " at " + GuiUtils.formatTime(date) - + editedAtTag + endHeaderTag - + startHistoryDivTag + startPlainTextTag - + formatMessage(message, contentType, keyword) - + endPlainTextTag + endDivTag; - } return chatString; } @@ -631,9 +528,91 @@ else if (messageType.equals(Chat.HISTORY_OUTGOING_MESSAGE)) * @param chatMessage the message. * @return the formatted message */ - public String processMessage(ChatMessage chatMessage) + public String processMessage( ChatMessage chatMessage, + ProtocolProviderService protocolProvider, + String contactAddress) + { + return processMessage( chatMessage, + null, + protocolProvider, + contactAddress); + } + + /** + * Appends a consecutive message to the document. + * + * @param chatMessage the message to append + * @return <tt>true</tt> if the append succeeded, <tt>false</tt> - otherwise + */ + public boolean appendConsecutiveMessage(ChatMessage chatMessage, + String keyword, + String contentType) { - return processMessage(chatMessage, null); + if (lastMessageUID == null) + return false; + + Element root = document.getDefaultRootElement(); + Element lastMsgElement = document.getElement(root, Attribute.ID, + ChatHtmlUtils.MESSAGE_TEXT_ID + lastMessageUID); + + if (lastMsgElement == null) + { + logger.warn("Could not find message with ID " + lastMessageUID); + return false; + } + + String contactAddress + = (String) lastMsgElement.getAttributes() + .getAttribute(Attribute.NAME); + + if (contactAddress != null + && contactAddress.equals(chatMessage.getContactName()) + // And if the new message is within a minute from the last one. + && (chatMessage.getDate() - lastMessageTimestamp + < 60000)) + { + String newMessage = ChatHtmlUtils.createMessageTag( + ChatHtmlUtils.MESSAGE_TEXT_ID + + chatMessage.getMessageUID(), + contactAddress, + formatMessage(chatMessage.getMessage(), + contentType, + keyword), + contentType, + chatMessage.getDate(), + false); + + synchronized (scrollToBottomRunnable) + { + try + { + Element parentElement = lastMsgElement.getParentElement(); + + document.insertBeforeEnd(parentElement, newMessage); + + lastMessageUID = chatMessage.getMessageUID(); + + // Need to call explicitly scrollToBottom, because for some + // reason the componentResized event isn't fired every time + // we add text. + SwingUtilities.invokeLater(scrollToBottomRunnable); + } + catch (BadLocationException ex) + { + logger.error("Could not replace chat message", ex); + } + catch (IOException ex) + { + logger.error("Could not replace chat message", ex); + } + } + + finishMessageAdd(newMessage, contentType); + + return true; + } + + return false; } /** @@ -647,82 +626,78 @@ public void correctMessage(ChatMessage chatMessage) { String correctedUID = chatMessage.getCorrectedMessageUID(); Element root = document.getDefaultRootElement(); - Element e = document.getElement(root, Attribute.ID, correctedUID); - if (e == null) + Element correctedMsgElement + = document.getElement(root, + Attribute.ID, + ChatHtmlUtils.MESSAGE_TEXT_ID + correctedUID); + + if (correctedMsgElement == null) { logger.warn("Could not find message with ID " + correctedUID); return; } - int len = e.getEndOffset() - e.getStartOffset(); - - StringBuilder newContents = new StringBuilder(); - String bgColor = GuiActivator.getResources().getColorString( - "service.gui.CHAT_EDIT_MESSAGE_BACKGROUND"); - newContents.append("<div identifier='message' id='"); - newContents.append(chatMessage.getMessageUID()); - newContents.append("' bgcolor='"); - newContents.append(bgColor); - newContents.append("'>"); - if (chatMessage.getContentType().equals(TEXT_CONTENT_TYPE)) - { - newContents.append(START_PLAINTEXT_TAG); - newContents.append(chatMessage.getMessage()); - newContents.append(END_PLAINTEXT_TAG); - } - else - { - newContents.append(chatMessage.getMessage()); - } - newContents.append("</div>"); - - Element header = document.getElement(root, Attribute.ID, - correctedUID + "-editedAt"); - - try + + String contactAddress + = (String) correctedMsgElement.getAttributes() + .getAttribute(Attribute.NAME); + + String newMessage = ChatHtmlUtils.createMessageTag( + ChatHtmlUtils.MESSAGE_TEXT_ID + + chatMessage.getMessageUID(), + contactAddress, + formatMessage( chatMessage.getMessage(), + chatMessage.getContentType(), + ""), + chatMessage.getContentType(), + chatMessage.getDate(), + true); + + synchronized (scrollToBottomRunnable) { - if (header != null) + try { - String newHeaderContents = generateEditedAtTag( - chatMessage.getMessageUID(), chatMessage.getDate()); - document.setOuterHTML(header, newHeaderContents); + document.setOuterHTML(correctedMsgElement, newMessage); + + lastMessageUID = chatMessage.getMessageUID(); + + // Need to call explicitly scrollToBottom, because for some + // reason the componentResized event isn't fired every time + // we add text. + SwingUtilities.invokeLater(scrollToBottomRunnable); + } + catch (BadLocationException ex) + { + logger.error("Could not replace chat message", ex); + } + catch (IOException ex) + { + logger.error("Could not replace chat message", ex); } - document.setOuterHTML(e, newContents.toString()); - } - catch (BadLocationException ex) - { - logger.error("Could not replace chat message", ex); - } - catch (IOException ex) - { - logger.error("Could not replace chat message", ex); } + + finishMessageAdd(newMessage, chatMessage.getContentType()); } /** * Appends the given string at the end of the contained in this panel * document. * - * @param chatString the string to append + * @param message the message string to append */ - public void appendMessageToEnd(String chatString, String contentType) + public void appendMessageToEnd(String message, String contentType) { + if (message == null) + return; + synchronized (scrollToBottomRunnable) { Element root = document.getDefaultRootElement(); -// Need to call explicitly scrollToBottom, because for some -// reason the componentResized event isn't fired every time we -// add text. -// Replaced by the code on line: 573. -// -// scrollToBottomIsPending = true; - try { - document - .insertAfterEnd( - root.getElement(root.getElementCount() - 1), - chatString); + document.insertAfterEnd( + root.getElement(root.getElementCount() - 1), + message); // Need to call explicitly scrollToBottom, because for some // reason the componentResized event isn't fired every time we @@ -737,33 +712,44 @@ public void appendMessageToEnd(String chatString, String contentType) { logger.error("Insert in the HTMLDocument failed.", e); } - if (!isHistory) - ensureDocumentSize(); + } - // Process replacements. - final Element elem; - /* - * Check to make sure element isn't the first element in the HTML - * document. - */ - if (!(root.getElementCount() < 2)) - { - elem = root.getElement(root.getElementCount() - 2); - } - else - elem = root.getElement(1); + finishMessageAdd(message, contentType); + } - /* - * Replacements will be processed only if it is enabled in the - * property - */ - if (GuiActivator.getConfigurationService().getBoolean( - ReplacementProperty.REPLACEMENT_ENABLE, true) - || GuiActivator.getConfigurationService().getBoolean( - ReplacementProperty.getPropertyName("SMILEY"), true)) - { - processReplacement(elem, chatString, contentType); - } + /** + * Performs all operations needed in order to finish the adding of the + * message to the document. + * + * @param message the message string + * @param contentType + */ + private void finishMessageAdd(String message, String contentType) + { + Element root = document.getDefaultRootElement(); + + // If we're not in chat history case we need to be sure the document + // has not exceeded the required size (number of messages). + if (!isHistory) + ensureDocumentSize(); + + /* + * Check to make sure element isn't the first element in the HTML + * document. + */ + Element elem = document.getElement(root, Attribute.ID, + ChatHtmlUtils.MESSAGE_TEXT_ID + lastMessageUID); + + /* + * Replacements will be processed only if it is enabled in the + * property. + */ + if (GuiActivator.getConfigurationService().getBoolean( + ReplacementProperty.REPLACEMENT_ENABLE, true) + || GuiActivator.getConfigurationService().getBoolean( + ReplacementProperty.getPropertyName("SMILEY"), true)) + { + processReplacement(elem, message, contentType); } } @@ -818,15 +804,6 @@ public Object construct() throws Exception Matcher m = p.matcher(msgStore); - String startPlainTextTag = ""; - String endPlainTextTag = ""; - - if (!HTML_CONTENT_TYPE.equals(contentType)) - { - startPlainTextTag = START_PLAINTEXT_TAG; - endPlainTextTag = END_PLAINTEXT_TAG; - } - int count = 0, startPos = 0; StringBuffer msgBuff = new StringBuffer(); @@ -843,7 +820,9 @@ public Object construct() throws Exception { if(isSmiley) { - msgBuff.append(endPlainTextTag); + msgBuff.append( + ChatHtmlUtils.createEndPlainTextTag( + contentType)); msgBuff.append("<IMG SRC=\""); } else @@ -858,7 +837,9 @@ public Object construct() throws Exception msgBuff.append("\"></IMG>"); if(isSmiley) - msgBuff.append(startPlainTextTag); + msgBuff.append( + ChatHtmlUtils.createStartPlainTextTag( + contentType)); } else { @@ -884,8 +865,12 @@ public Object construct() throws Exception synchronized (scrollToBottomRunnable) { scrollToBottomIsPending = true; + + int msgStartIndex = msgStore.indexOf("<div id"); document.setOuterHTML(elem, msgStore.toString() - .substring(msgStore.indexOf("<DIV"))); + .substring( + msgStartIndex, + msgStore.indexOf("</div>", msgStartIndex))); } } return ""; @@ -916,7 +901,7 @@ private void ensureDocumentSize() .getAttributes().getAttribute("identifier"); if(idAttr != null - && (idAttr.equals("message") + && (idAttr.startsWith(ChatHtmlUtils.MESSAGE_TEXT_ID) || idAttr.equals("statusMessage") || idAttr.equals("systemMessage"))) { @@ -940,7 +925,8 @@ private void ensureDocumentSize() // Remove the header of the message if such exists. if(firstMsgIndex > 0) { - Element headerElement = rootElement.getElement(firstMsgIndex - 1); + Element headerElement + = rootElement.getElement(firstMsgIndex - 1); String idAttr = (String) headerElement .getAttributes().getAttribute("identifier"); @@ -977,20 +963,6 @@ private String processKeyword( String message, String contentType, String keyword) { - String startPlainTextTag; - String endPlainTextTag; - - if (HTML_CONTENT_TYPE.equals(contentType)) - { - startPlainTextTag = ""; - endPlainTextTag = ""; - } - else - { - startPlainTextTag = START_PLAINTEXT_TAG; - endPlainTextTag = END_PLAINTEXT_TAG; - } - Matcher m = Pattern.compile(Pattern.quote(keyword), Pattern.CASE_INSENSITIVE) .matcher(message); @@ -1004,11 +976,11 @@ private String processKeyword( String message, String keywordMatch = m.group().trim(); - msgBuffer.append(endPlainTextTag); + msgBuffer.append(ChatHtmlUtils.createEndPlainTextTag(contentType)); msgBuffer.append("<b>"); msgBuffer.append(keywordMatch); msgBuffer.append("</b>"); - msgBuffer.append(startPlainTextTag); + msgBuffer.append(ChatHtmlUtils.createStartPlainTextTag(contentType)); } /* @@ -1037,7 +1009,7 @@ private String formatMessage(String message, { // If the message content type is HTML we won't process links and // new lines, but only the smileys. - if (!HTML_CONTENT_TYPE.equals(contentType)) + if (!ChatHtmlUtils.HTML_CONTENT_TYPE.equals(contentType)) { /* @@ -1065,7 +1037,8 @@ private String formatMessage(String message, message = processNewLines( - processLinksAndHTMLChars(message, processHTMLChars)); + processLinksAndHTMLChars( + message, processHTMLChars, contentType), contentType); } // If the message content is HTML, we process br and img tags. else @@ -1090,10 +1063,12 @@ private String formatMessage(String message, * @param message The source message string. * @param processHTMLChars <tt>true</tt> to escape the special HTML chars; * otherwise, <tt>false</tt> + * @param contentType the message content type (html or plain text) * @return The message string with properly formatted links. */ private String processLinksAndHTMLChars(String message, - boolean processHTMLChars) + boolean processHTMLChars, + String contentType) { Matcher m = URL_PATTERN.matcher(message); StringBuffer msgBuffer = new StringBuffer(); @@ -1110,7 +1085,7 @@ private String processLinksAndHTMLChars(String message, String url = m.group().trim(); - msgBuffer.append(END_PLAINTEXT_TAG); + msgBuffer.append(ChatHtmlUtils.createEndPlainTextTag(contentType)); msgBuffer.append("<A href=\""); if (url.startsWith("www")) msgBuffer.append("http://"); @@ -1118,7 +1093,7 @@ private String processLinksAndHTMLChars(String message, msgBuffer.append("\">"); msgBuffer.append(url); msgBuffer.append("</A>"); - msgBuffer.append(START_PLAINTEXT_TAG); + msgBuffer.append(ChatHtmlUtils.createStartPlainTextTag(contentType)); } String fromPrevEndToEnd = message.substring(prevEnd); @@ -1151,9 +1126,10 @@ private String processHTMLChars(String message) * Formats message new lines. * * @param message The source message string. + * @param contentType message contentType (html or plain text) * @return The message string with properly formatted new lines. */ - private String processNewLines(String message) + private String processNewLines(String message, String contentType) { /* @@ -1171,7 +1147,9 @@ private String processNewLines(String message) message .replaceAll( "\n", - END_PLAINTEXT_TAG + "<BR/>&#10;" + START_PLAINTEXT_TAG); + ChatHtmlUtils.createEndPlainTextTag(contentType) + + "<BR/>&#10;" + + ChatHtmlUtils.createStartPlainTextTag(contentType)); } /** @@ -1508,7 +1486,8 @@ private String processImgTags(String message) int start = 0; // while we find some <img /> self-closing tags with a slash inside. - while(m.find()){ + while(m.find()) + { // First, we have to copy all the message preceding the <img> tag. processedMessage.append(message.substring(start, m.start())); // Then, we find the position of the slash inside the tag. @@ -1577,13 +1556,16 @@ public void addComponent(ChatConversationComponent component) wrapPanel.add(component, BorderLayout.NORTH); - style - .addAttribute(StyleConstants.ComponentAttribute, wrapPanel); + style.addAttribute(StyleConstants.ComponentAttribute, wrapPanel); style.addAttribute("identifier", "messageHeader"); style.addAttribute("date", component.getDate().getTime()); scrollToBottomIsPending = true; + // We need to reinitialize the last message ID, because we don't + // want components to be taken into account. + lastMessageUID = null; + // Insert the component style at the end of the text try { @@ -1619,26 +1601,6 @@ public void removeChatLinkClickedListener(ChatLinkClickedListener listener) chatLinkClickedListeners.remove(listener); } - /** - * Returns the date string to show for the given date. - * - * @param date the date to format - * @return the date string to show for the given date - */ - public static String getDateString(long date) - { - if (GuiUtils.compareDatesOnly(date, System.currentTimeMillis()) < 0) - { - StringBuffer dateStrBuf = new StringBuffer(); - - GuiUtils.formatDate(date, dateStrBuf); - dateStrBuf.append(" "); - return dateStrBuf.toString(); - } - - return ""; - } - /** * Reloads images. */ @@ -1665,33 +1627,26 @@ public String processChatRoomHighlight(String message, String contentType, { return processKeyword(message, contentType, keyWord); } - + + /** + * Processes /me command in group chats. + * + * @param chatMessage the chat message + * @return the newly processed message string + */ public String processMeCommand(ChatMessage chatMessage) { String contentType = chatMessage.getContentType(); String message = chatMessage.getMessage(); - String msgID = "message"; + String msgID + = ChatHtmlUtils.MESSAGE_TEXT_ID + chatMessage.getMessageUID(); String chatString = ""; String endHeaderTag = ""; - String startDivTag = "<DIV identifier=\"" + msgID + "\">"; + String startDivTag = "<DIV id=\"" + msgID + "\">"; String endDivTag = "</DIV>"; - String startPlainTextTag; - String endPlainTextTag; - - if (HTML_CONTENT_TYPE.equals(contentType)) - { - startPlainTextTag = ""; - endPlainTextTag = ""; - } - else - { - startPlainTextTag = START_PLAINTEXT_TAG; - endPlainTextTag = END_PLAINTEXT_TAG; - } - if (message.length() > 4 && message.substring(0, 4).equals("/me ")) { chatString = startDivTag + "<B><I>"; @@ -1699,7 +1654,6 @@ public String processMeCommand(ChatMessage chatMessage) endHeaderTag = "</I></B>" + endDivTag; chatString += - processHTMLChars("*** " + chatMessage.getContactName() + " " + message.substring(4)) + endHeaderTag; @@ -1731,9 +1685,13 @@ public String processMeCommand(ChatMessage chatMessage) while (m.find()) { - msgTemp.insert(m.start(), startPlainTextTag); - msgTemp.insert(m.end() + startPlainTextTag.length(), - endPlainTextTag); + msgTemp.insert(m.start(), + ChatHtmlUtils.createStartPlainTextTag(contentType)); + msgTemp.insert( + m.end() + + ChatHtmlUtils + .createStartPlainTextTag(contentType).length(), + ChatHtmlUtils.createEndPlainTextTag(contentType)); } if (msgTemp.length() != msgStore.length()) @@ -1746,4 +1704,72 @@ public String processMeCommand(ChatMessage chatMessage) else return ""; } -} + + /** + * Returns the avatar corresponding to the account of the given + * <tt>protocolProvider</tt>. + * + * @param protocolProvider the protocol provider service, which account + * avatar we're looking for + * @return the avatar corresponding to the account of the given + * <tt>protocolProvider</tt> + */ + private static String getContactAvatar( + ProtocolProviderService protocolProvider, + String contactAddress) + { + String avatarPath + = AvatarCacheUtils.getCachedAvatarPath( protocolProvider, + contactAddress); + + File avatarFile; + try + { + avatarFile = GuiActivator.getFileAccessService() + .getPrivatePersistentFile(avatarPath); + } + catch (Exception e) + { + return null; + } + + if(avatarFile.exists() && avatarFile.length() > 0) + return "file:" + avatarFile.getAbsolutePath(); + else + return GuiActivator.getResources().getImageURL( + "service.gui.DEFAULT_USER_PHOTO_SMALL").toString(); + } + + /** + * Returns the avatar corresponding to the account of the given + * <tt>protocolProvider</tt>. + * + * @param protocolProvider the protocol provider service, which account + * avatar we're looking for + * @return the avatar corresponding to the account of the given + * <tt>protocolProvider</tt> + */ + private static String getContactAvatar( + ProtocolProviderService protocolProvider) + { + String avatarPath + = AvatarCacheUtils.getCachedAvatarPath(protocolProvider); + + File avatarFile; + try + { + avatarFile = GuiActivator.getFileAccessService() + .getPrivatePersistentFile(avatarPath); + } + catch (Exception e) + { + return null; + } + + if(avatarFile.exists() && avatarFile.length() > 0) + return "file:" + avatarFile.getAbsolutePath(); + else + return GuiActivator.getResources().getImageURL( + "service.gui.DEFAULT_USER_PHOTO_SMALL").toString(); + } +} \ No newline at end of file diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatHtmlUtils.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatHtmlUtils.java new file mode 100644 index 000000000..98293f3b4 --- /dev/null +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatHtmlUtils.java @@ -0,0 +1,412 @@ +/* + * Jitsi, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. See terms of license at gnu.org. + */ +package net.java.sip.communicator.impl.gui.main.chat; + +import net.java.sip.communicator.impl.gui.*; +import net.java.sip.communicator.util.*; + +/** + * + * @author Yana Stamcheva + */ +public class ChatHtmlUtils +{ + /** + * The name attribute. + */ + public final static String NAME_ATTRIBUTE = "name"; + + /** + * The date attribute. + */ + public final static String DATE_ATTRIBUTE = "date"; + + /** + * The message header identifier attribute. + */ + public final static String MESSAGE_HEADER_ID = "messageHeader"; + + /** + * The message identifier attribute. + */ + public final static String MESSAGE_TEXT_ID = "message"; + + /** + * The closing tag of the <code>PLAINTEXT</code> HTML element. + */ + private static final String END_PLAINTEXT_TAG = "</PLAINTEXT>"; + + /** + * The opening tag of the <code>PLAINTEXT</code> HTML element. + */ + private static final String START_PLAINTEXT_TAG = "<PLAINTEXT>"; + + /** + * The html text content type. + */ + public static final String HTML_CONTENT_TYPE = "text/html"; + + /** + * The plain text content type. + */ + public static final String TEXT_CONTENT_TYPE = "text/plain"; + + /** + * Creates an incoming message tag. + * + * @param messageID the identifier + * @param contactName the name of the contact sending the message + * @param contactDisplayName the display name of the contact sending the + * message + * @param avatarPath the path to the avatar file + * @param date the date, when the message was sent + * @param message the message content + * @param contentType the content type HTML or PLAIN_TEXT + * @return the created incoming message tag + */ + public static String createIncomingMessageTag( + String messageID, + String contactName, + String contactDisplayName, + String avatarPath, + long date, + String message, + String contentType) + { + StringBuffer headerBuffer = new StringBuffer(); + + headerBuffer.append("<h2 identifier=\"" + MESSAGE_HEADER_ID + "\" "); + headerBuffer.append(DATE_ATTRIBUTE + "='" + date + "'" + ">"); + headerBuffer.append("<a style=\"color:#488fe7;"); + headerBuffer.append("font-weight:bold;"); + headerBuffer.append("text-decoration:none;\" "); + headerBuffer.append("href=\"" + contactName + "\">"); + headerBuffer.append( + contactDisplayName + createEditedAtTag(messageID, -1)); + headerBuffer.append("</a></h2>"); + + StringBuffer messageBuff = new StringBuffer(); + + messageBuff.append("<div " + + IncomingMessageStyle.createMessageStyle() + ">"); + messageBuff.append("<table width=\"100%\">"); + messageBuff.append("<tr>"); + messageBuff.append("<td valign=\"top\">"); + messageBuff.append( + "<table " + IncomingMessageStyle.createTableBubbleStyle() + + " cellspacing=\"0px\" cellpadding=\"0px\">"); + messageBuff.append("<tr>"); + messageBuff.append("<td style=\"width:26px;\"></td>"); + messageBuff.append("<td style=\"width:9px;\"></td>"); + messageBuff.append("<td " + + IncomingMessageStyle.createTableBubbleTlStyle() + ">"); + messageBuff.append( + createMessageTableTag(headerBuffer.toString(), date)); + messageBuff.append("</td>"); + messageBuff.append("<td " + + IncomingMessageStyle.createTableBubbleTrStyle() + "></td>"); + messageBuff.append("</tr>"); + + // Third row. + messageBuff.append("<tr>"); + messageBuff.append("<td><img src=\"" + avatarPath + + "\" width=\"26px\" height=\"26px\"/> </td>"); + messageBuff.append("<td " + + IncomingMessageStyle.createIndicatorStyle() +"></td>"); + messageBuff.append("<td " + + IncomingMessageStyle.createTableBubbleMessageStyle() + ">"); + + messageBuff.append( + createMessageTag( messageID, + contactName, + message, + contentType, + date, + false)); + + messageBuff.append("</td>"); + messageBuff.append("<td " + + IncomingMessageStyle.createTableBubbleMessageRightStyle() + + "></td>"); + messageBuff.append("</tr>"); + + //Forth row. + messageBuff.append("<tr>"); + messageBuff.append("<td style=\"width:26px;\"></td>"); + messageBuff.append("<td style=\"width:9px;\"></td>"); + messageBuff.append("<td " + + IncomingMessageStyle.createTableBubbleBlStyle() + "></td>"); + messageBuff.append("<td " + + IncomingMessageStyle.createTableBubbleBrStyle() + "></td>"); + messageBuff.append("</tr>"); + + messageBuff.append("</table>"); + messageBuff.append("</td>"); + messageBuff.append("</tr>"); + messageBuff.append("</table>"); + messageBuff.append("</div>"); + + return messageBuff.toString(); + } + + /** + * Create an outgoing message tag. + * + * @param messageID the identifier of the message + * @param contactName the name of the account sending the message + * @param contactDisplayName the display name of the account sending the + * message + * @param avatarPath the path to the avatar image + * @param date the date, when the message was sent + * @param message the content of the message + * @param contentType the content type HTML or PLAIN_TEXT + * @return the created outgoing message tag + */ + public static String createOutgoingMessageTag( String messageID, + String contactName, + String contactDisplayName, + String avatarPath, + long date, + String message, + String contentType) + { + StringBuffer headerBuffer = new StringBuffer(); + + headerBuffer.append("<h3 identifier=\"" + MESSAGE_HEADER_ID + "\""); + headerBuffer.append(DATE_ATTRIBUTE + "='" + date + "'" + ">"); + headerBuffer.append("<a style=\"color:#6a6868;"); + headerBuffer.append("font-weight:bold;"); + headerBuffer.append("float:left;"); + headerBuffer.append("text-decoration:none;\" "); + headerBuffer.append("href=\"" + contactName + "\">"); + headerBuffer.append(contactDisplayName + + createEditedAtTag(messageID, -1)); + headerBuffer.append("</a></h3>"); + + StringBuffer messageBuff = new StringBuffer(); + + messageBuff.append("<div " + + OutgoingMessageStyle.createMessageStyle() + ">"); + messageBuff.append("<table width=\"100%\">"); + messageBuff.append("<tr>"); + messageBuff.append("<td valign=\"top\">"); + messageBuff.append( + "<table " + OutgoingMessageStyle.createTableBubbleStyle() + + " cellspacing=\"0px\" cellpadding=\"0px\">"); + + // First row. + messageBuff.append("<tr>"); + messageBuff.append("<td " + + OutgoingMessageStyle.createTableBubbleTlStyle() + ">"); + messageBuff.append( + createMessageTableTag(headerBuffer.toString(), date)); + messageBuff.append("</td>"); + messageBuff.append("<td " + + OutgoingMessageStyle.createTableBubbleTrStyle() + "></td>"); + messageBuff.append("<td style=\"width:9px;\"></td>"); + messageBuff.append("<td style=\"width:26px;\"></td>"); + messageBuff.append("</tr>"); + + // Third row. + messageBuff.append("<tr>"); + messageBuff.append("<td " + + OutgoingMessageStyle.createTableBubbleMessageStyle() + ">"); + + messageBuff.append( + createMessageTag( messageID, + contactName, + message, + contentType, + date, + false)); + + messageBuff.append("</td>"); + messageBuff.append("<td " + + OutgoingMessageStyle.createTableBubbleMessageRightStyle() + + "></td>"); + messageBuff.append("<td " + + OutgoingMessageStyle.createIndicatorStyle() +"></td>"); + messageBuff.append("<td><div width=\"26px\" height=\"26px\"><img src=\"" + + avatarPath + + "\" width=\"26px\" height=\"26px\"/></div></td>"); + messageBuff.append("</tr>"); + + // Forth row. + messageBuff.append("<tr>"); + messageBuff.append("<td " + + OutgoingMessageStyle.createTableBubbleBlStyle() + "></td>"); + messageBuff.append("<td " + + OutgoingMessageStyle.createTableBubbleBrStyle() + "></td>"); + messageBuff.append("<td style=\"width:9px;\"></td>"); + messageBuff.append("<td style=\"width:26px;\"></td>"); + messageBuff.append("</tr>"); + messageBuff.append("</table>"); + messageBuff.append("</td>"); + messageBuff.append("</tr>"); + messageBuff.append("</table>"); + messageBuff.append("</div>"); + + return messageBuff.toString(); + } + + /** + * Creates a message table tag, representing the message header. + * + * @param nameHeader the name of the header. + * @param date the date, when the message was sent or received + * @return the message header tag + */ + public static String createMessageTableTag( String nameHeader, + long date) + { + StringBuffer messageHeader = new StringBuffer(); + + messageHeader.append("<table width=\"100%\">"); + messageHeader.append("<tr>"); + messageHeader.append("<td nowrap=\"nowrap\">"); + messageHeader.append(nameHeader); + messageHeader.append("</td>"); + messageHeader.append("<td nowrap=\"nowrap\" " + + OutgoingMessageStyle.createDateStyle() + ">"); + messageHeader.append(getDateString(date)); + messageHeader.append(GuiUtils.formatTime(date)); + messageHeader.append("</td>"); + messageHeader.append("</tr>"); + messageHeader.append("</table>"); + + return messageHeader.toString(); + } + + /** + * Creates the start tag, which indicates that the next text would be plain + * text. + * + * @param contentType the current content type + * @return the start plaintext tag + */ + public static String createStartPlainTextTag(String contentType) + { + if (HTML_CONTENT_TYPE.equals(contentType)) + { + return ""; + } + else + { + return START_PLAINTEXT_TAG; + } + } + + /** + * Creates the end tag, which indicates that the next text would be plain + * text. + * + * @param contentType the current content type + * @return the end plaintext tag + */ + public static String createEndPlainTextTag(String contentType) + { + if (HTML_CONTENT_TYPE.equals(contentType)) + { + return ""; + } + else + { + return END_PLAINTEXT_TAG; + } + } + + /** + * Creates a tag that shows the last edit time of a message, in the format + * (Edited at ...). + * If <tt>date < 0</tt>, returns an empty tag that serves as a placeholder + * for future corrections of this message. + * + * @param messageUID The ID of the edited message. + * @param date The date when the message was last edited, or -1 to generate + * an empty tag. + * @return The string representation of the tag. + */ + public static String createEditedAtTag(String messageUID, long date) + { + StringBuilder res = new StringBuilder(); + // Use a <cite /> tag here as most of the other inline tags (e.g. h1-7, + // b, i) cause different problems when used in setOuterHTML. + res.append("<cite id='"); + res.append(messageUID); + res.append("-editedAt'> "); + if (date > 0) + { + res.append("&nbsp;"); + String contents = GuiActivator.getResources().getI18NString( + "service.gui.EDITED_AT", + new String[] { GuiUtils.formatTime(date) } + ); + res.append(contents); + } + res.append("</cite>"); + return res.toString(); + } + + /** + * Creates the message tag. + * + * @param messageID the identifier of the message + * @param contactName the name of the sender + * @param message the message content + * @param contentType the content type (html or plain text) + * @param date the date on which the message was sent + * @param isEdited indicates if the given message has been edited + * @return the newly constructed message tag + */ + public static String createMessageTag( String messageID, + String contactName, + String message, + String contentType, + long date, + boolean isEdited) + { + StringBuffer messageTag = new StringBuffer(); + + messageTag.append("<div id=\""); + messageTag.append(messageID); + messageTag.append("\" "); + messageTag.append(NAME_ATTRIBUTE + "=\"" + contactName); + messageTag.append("\" style=\"padding-left:10px;"); + if (isEdited) + messageTag.append("font-style:italic;\">"); + else + messageTag.append("\">"); + messageTag.append(createStartPlainTextTag(contentType)); + messageTag.append(message); + if (isEdited) + messageTag.append(" (edited at " + + GuiUtils.formatTime(date) + ")"); + messageTag.append(createEndPlainTextTag(contentType)); + messageTag.append("</div>"); + + return messageTag.toString(); + } + + /** + * Returns the date string to show for the given date. + * + * @param date the date to format + * @return the date string to show for the given date + */ + public static String getDateString(long date) + { + if (GuiUtils.compareDatesOnly(date, System.currentTimeMillis()) <= 0) + { + StringBuffer dateStrBuf = new StringBuffer(); + + GuiUtils.formatDate(date, dateStrBuf); + dateStrBuf.append(" "); + return dateStrBuf.toString(); + } + + return ""; + } +} diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatPanel.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatPanel.java index 9cf6f6275..d39b7a0f1 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatPanel.java @@ -130,8 +130,6 @@ public class ChatPanel private boolean isHistoryLoaded; - private int autoDividerLocation = 0; - /** * Stores all active file transfer requests and effective transfers with * the identifier of the transfer. @@ -482,7 +480,7 @@ public void memberRoleChanged(ChatRoomMemberRoleChangeEvent evt) new String[]{evt.getSourceMember().getName(), getRoleDescription(evt.getNewRole())}) +"</DIV>", - ChatConversationPanel.HTML_CONTENT_TYPE); + ChatHtmlUtils.HTML_CONTENT_TYPE); } /** @@ -497,7 +495,7 @@ public void localUserRoleChanged(ChatRoomLocalUserRoleChangeEvent evt) +GuiActivator.getResources().getI18NString("service.gui.ARE_NOW", new String[]{ getRoleDescription(evt.getNewRole())}) +"</DIV>", - ChatConversationPanel.HTML_CONTENT_TYPE); + ChatHtmlUtils.HTML_CONTENT_TYPE); } /** @@ -687,7 +685,7 @@ else if (o instanceof FileRecord) if (historyString != null) conversationPanel.appendMessageToEnd( - historyString, ChatConversationPanel.TEXT_CONTENT_TYPE); + historyString, ChatHtmlUtils.TEXT_CONTENT_TYPE); } fireChatHistoryChange(); @@ -839,6 +837,11 @@ public void addErrorMessage(String contactName, message, "text"); } + /** + * Displays the given chat message. + * + * @param chatMessage the chat message to display + */ private void displayChatMessage(ChatMessage chatMessage) { if (chatMessage.getCorrectedMessageUID() != null @@ -863,7 +866,9 @@ private void displayChatMessage(ChatMessage chatMessage) private void appendChatMessage(ChatMessage chatMessage) { String processedMessage - = this.conversationPanel.processMessage(chatMessage); + = this.conversationPanel.processMessage(chatMessage, + chatSession.getCurrentChatTransport().getProtocolProvider(), + chatSession.getCurrentChatTransport().getName()); if (chatSession instanceof ConferenceChatSession) { @@ -963,7 +968,10 @@ private String processHistoryMessage(String contactName, messageType, null, message, contentType, messageId, null); String processedMessage = - this.conversationPanel.processMessage(chatMessage); + this.conversationPanel.processMessage(chatMessage, + chatSession.getCurrentChatTransport().getProtocolProvider(), + chatSession.getCurrentChatTransport().getName()); + if (chatSession instanceof ConferenceChatSession) { String tempMessage = @@ -1004,7 +1012,7 @@ public void addTextInWriteArea(String text){ public String getTextFromWriteArea(String mimeType) { if (mimeType.equals( - OperationSetBasicInstantMessaging.DEFAULT_MIME_TYPE)) + OperationSetBasicInstantMessaging.DEFAULT_MIME_TYPE)) { return writeMessagePanel.getText(); } @@ -2062,7 +2070,7 @@ public void updateChatContactStatus(ChatContact<?> chatContact, System.currentTimeMillis(), Chat.STATUS_MESSAGE, statusMessage, - ChatConversationPanel.TEXT_CONTENT_TYPE); + ChatHtmlUtils.TEXT_CONTENT_TYPE); } /** @@ -2094,7 +2102,7 @@ else if (subject.equals(oldSubject)) "service.gui.CHAT_ROOM_SUBJECT_CHANGED", new String []{ chatSession.getChatName(), subject}), - ChatConversationPanel.TEXT_CONTENT_TYPE); + ChatHtmlUtils.TEXT_CONTENT_TYPE); } } @@ -2461,8 +2469,6 @@ public void setDividerLocation(int location) { int dividerLocation = messagePane.getHeight() - location; - autoDividerLocation = dividerLocation; - messagePane.setDividerLocation(dividerLocation); messagePane.revalidate(); messagePane.repaint(); @@ -2760,8 +2766,7 @@ public void chatRoomPropertyChanged(ChatRoomMemberPropertyChangeEvent event) + event.getOldValue() + " is now known as " + event.getNewValue() + "</DIV>", - ChatConversationPanel.HTML_CONTENT_TYPE); - + ChatHtmlUtils.HTML_CONTENT_TYPE); } /** diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatTransport.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatTransport.java index 12aeeddd0..fc6561b8b 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatTransport.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatTransport.java @@ -35,7 +35,7 @@ public interface ChatTransport * messaging, otherwise returns <code>false</code> */ public boolean allowsInstantMessage(); - + /** * Returns <tt>true</tt> if this chat transport supports message * corrections and false otherwise. diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatWritePanel.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatWritePanel.java index 7cdb61f5d..160515b69 100755 --- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatWritePanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatWritePanel.java @@ -18,7 +18,6 @@ import javax.swing.undo.*; import net.java.sip.communicator.impl.gui.*; -import net.java.sip.communicator.impl.gui.customcontrols.*; import net.java.sip.communicator.impl.gui.main.chat.conference.*; import net.java.sip.communicator.impl.gui.main.chat.menus.*; import net.java.sip.communicator.impl.gui.utils.*; @@ -654,7 +653,7 @@ else if(e.getKeyCode() == KeyEvent.VK_TAB) chatPanel.getChatConversationPanel() .appendMessageToEnd(contactList, - ChatConversationPanel.HTML_CONTENT_TYPE); + ChatHtmlUtils.HTML_CONTENT_TYPE); } else if(contacts.size() == 1) { @@ -963,7 +962,7 @@ public void setTransportSelectorBoxVisible(boolean isVisible) GuiActivator.getResources(). getI18NString("service.gui.MSG_NOT_POSSIBLE") + "</h5>", - ChatConversationPanel.HTML_CONTENT_TYPE); + ChatHtmlUtils.HTML_CONTENT_TYPE); } else { diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/IncomingMessageStyle.java b/src/net/java/sip/communicator/impl/gui/main/chat/IncomingMessageStyle.java new file mode 100644 index 000000000..e6e5b4e08 --- /dev/null +++ b/src/net/java/sip/communicator/impl/gui/main/chat/IncomingMessageStyle.java @@ -0,0 +1,203 @@ +/* + * Jitsi, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.impl.gui.main.chat; + +import net.java.sip.communicator.impl.gui.*; + +/** + * Defines the CSS style of an incoming chat message elements. + * + * @author Yana Stamcheva + */ +public class IncomingMessageStyle +{ + /** + * The incoming message background image path. + */ + private final static String INCOMING_MESSAGE_IMAGE_PATH + = GuiActivator.getResources().getImageURL( + "service.gui.lookandfeel.INCOMING_MESSAGE_BACKGROUND").toString(); + + /** + * The incoming message right image path. + */ + private final static String INCOMING_MESSAGE_IMAGE_RIGHT_PATH + = GuiActivator.getResources().getImageURL( + "service.gui.lookandfeel.INCOMING_MESSAGE_BACKGROUND_RIGHT") + .toString(); + + /** + * The incoming message indicator image path. + */ + private final static String INCOMING_MESSAGE_INDICATOR_PATH + = GuiActivator.getResources().getImageURL( + "service.gui.lookandfeel.INCOMING_MESSAGE_INDICATOR").toString(); + + /** + * The incoming message round border image path. + */ + private final static String INCOMING_MESSAGE_CURVES_PATH + = GuiActivator.getResources().getImageURL( + "service.gui.lookandfeel.INCOMING_MESSAGE_CURVES").toString(); + + /** + * The incoming message top image path. + */ + private final static String INCOMING_MESSAGE_CURVES_TOP_PATH + = GuiActivator.getResources().getImageURL( + "service.gui.lookandfeel.INCOMING_MESSAGE_CURVES_TOP").toString(); + + /** + * Creates the global message style. + * + * @return the style attribute defining the global message style. + */ + public static String createMessageStyle() + { + return "style=\"" + + "width:100%;" + + "opacity:0.96;" + + "\""; + } + + /** + * Creates the style of the table bubble right element. + * + * @return the style of the table bubble right element + */ + public static String createTableBubbleMessageRightStyle() + { + return "style=\"" + + "width:8px;" + + " background-image: url('" + +INCOMING_MESSAGE_IMAGE_RIGHT_PATH+"');" + + " background-repeat: repeat-y;" + + " background-position: top left;" + + "\""; + } + + /** + * Creates the style of the table bubble (wrapping the message table). + * + * @return the style of the table bubble + */ + public static String createTableBubbleStyle() + { + return "style=\"" + + "width:100%;" + + " position:relative;" + + "\""; + } + + /** + * Creates the style of the message table bubble. + * + * @return the style of the message table bubble + */ + public static String createTableBubbleMessageStyle() + { + return "style=\"" + + "font-size:10px;" + + " background-image: url('"+INCOMING_MESSAGE_IMAGE_PATH+"');" + + " background-repeat: repeat-y;" + + " background-position: top left;" + + "\""; + } + + /** + * Creates the style of the table buuble bottom left corner. + * + * @return the style of the table buuble bottom left corner + */ + public static String createTableBubbleBlStyle() + { + return "style=\"" + + "height:10px;" + + " background-image: url('"+INCOMING_MESSAGE_CURVES_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: 0px -20px;" + + "\""; + } + + /** + * Creates the style of the table buuble bottom right corner. + * + * @return the style of the table buuble bottom right corner + */ + public static String createTableBubbleBrStyle() + { + return "style=\"" + + "width:8px;" + + " height:10px;" + + " background-image: url('"+INCOMING_MESSAGE_CURVES_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: -2999px -20px;" + + "\""; + } + + /** + * Creates the style of the table buuble top left corner. + * + * @return the style of the table buuble top left corner + */ + public static String createTableBubbleTlStyle() + { + return "style=\"" + + "height:23px;" + + " background-image: url('" + +INCOMING_MESSAGE_CURVES_TOP_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: top left;" + + "\""; + } + + /** + * Creates the style of the table buuble top right corner. + * + * @return the style of the table buuble top right corner + */ + public static String createTableBubbleTrStyle() + { + return "style=\"" + + "width:6px;" + + " height:23px;" + + " background-image: url('" + +INCOMING_MESSAGE_CURVES_TOP_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: -2999px 0px;" + + "\""; + } + + /** + * Creates the style of the indicator pointing to the avatar image. + * + * @return the style of the indicator pointing to the avatar image + */ + public static String createIndicatorStyle() + { + return "style =\"" + + "width:9px;" + + " height:19px;" + + " background-image: url('" + + INCOMING_MESSAGE_INDICATOR_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: top right;" + + "\""; + } + + /** + * Creates the style of the avatar image. + * + * @return the style of the avatar image + */ + public static String createAvatarStyle() + { + return "style=\"width:26px;" + + " height:26px;" + + " float:left;\""; + } +} diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/OutgoingMessageStyle.java b/src/net/java/sip/communicator/impl/gui/main/chat/OutgoingMessageStyle.java new file mode 100644 index 000000000..b64f28730 --- /dev/null +++ b/src/net/java/sip/communicator/impl/gui/main/chat/OutgoingMessageStyle.java @@ -0,0 +1,206 @@ +/* + * Jitsi, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.impl.gui.main.chat; + +import net.java.sip.communicator.impl.gui.*; + +/** + * Defines the CSS style of an outgoing chat message elements. + * + * @author Yana Stamcheva + */ +public class OutgoingMessageStyle + extends IncomingMessageStyle +{ + /** + * The outgoing message background image path. + */ + private final static String OUTGOING_MESSAGE_IMAGE_PATH + = GuiActivator.getResources().getImageURL( + "service.gui.lookandfeel.OUTGOING_MESSAGE_BACKGROUND").toString(); + + /** + * The outgoing message right image path. + */ + private final static String OUTGOING_MESSAGE_IMAGE_RIGHT_PATH + = GuiActivator.getResources().getImageURL( + "service.gui.lookandfeel.OUTGOING_MESSAGE_BACKGROUND_RIGHT") + .toString(); + + /** + * The outgoing message indicator image path. + */ + private final static String OUTGOING_MESSAGE_INDICATOR_PATH + = GuiActivator.getResources().getImageURL( + "service.gui.lookandfeel.OUTGOING_MESSAGE_INDICATOR").toString(); + + /** + * The outgoing message round border image path. + */ + private final static String OUTGOING_MESSAGE_CURVES_PATH + = GuiActivator.getResources().getImageURL( + "service.gui.lookandfeel.OUTGOING_MESSAGE_CURVES").toString(); + + /** + * The outgoing message top image path. + */ + private final static String OUTGOING_MESSAGE_CURVES_TOP_PATH + = GuiActivator.getResources().getImageURL( + "service.gui.lookandfeel.OUTGOING_MESSAGE_CURVES_TOP").toString(); + + /** + * Creates the style of the table bubble (wrapping the message table). + * + * @return the style of the table bubble + */ + public static String createTableBubbleStyle() + { + return "style=\"" + + "width:100%;" + + " position:relative;" + + "\""; + } + + /** + * Creates the style of the table bubble right element. + * + * @return the style of the table bubble right element + */ + public static String createTableBubbleMessageRightStyle() + { + return "style=\"" + + "width:6px;" + + " background-image: url('" + + OUTGOING_MESSAGE_IMAGE_RIGHT_PATH+"');" + + " background-repeat: repeat-y;" + + " background-position: top left;" + + "\""; + } + + /** + * Creates the style of the message table bubble. + * + * @return the style of the message table bubble + */ + public static String createTableBubbleMessageStyle() + { + return "style=\"" + + "font-size:10px;" + + " background-image: url('"+OUTGOING_MESSAGE_IMAGE_PATH+"');" + + " background-repeat: repeat-y;" + + " background-position: top left;" + + "\""; + } + + /** + * Creates the style of the table buuble bottom left corner. + * + * @return the style of the table buuble bottom left corner + */ + public static String createTableBubbleBlStyle() + { + return "style=\"" + + "height:10px;" + + " background-image: url('"+OUTGOING_MESSAGE_CURVES_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: 0px -20px;" + + "\""; + } + + /** + * Creates the style of the table buuble bottom right corner. + * + * @return the style of the table buuble bottom right corner + */ + public static String createTableBubbleBrStyle() + { + return "style=\"" + + "width:6px;" + + " height:10px;" + + " background-image: url('"+OUTGOING_MESSAGE_CURVES_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: -2999px -20px;" + + "\""; + } + + /** + * Creates the style of the table buuble top left corner. + * + * @return the style of the table buuble top left corner + */ + public static String createTableBubbleTlStyle() + { + return "style=\"" + + "height:23px;" + + " background-image: url('" + +OUTGOING_MESSAGE_CURVES_TOP_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: top left;" + + "\""; + } + + /** + * Creates the style of the table buuble top right corner. + * + * @return the style of the table buuble top right corner + */ + public static String createTableBubbleTrStyle() + { + return "style=\"" + + "width:6px;" + + " height:23px;" + + " background-image: url('" + +OUTGOING_MESSAGE_CURVES_TOP_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: -2999px 0px;" + + "\""; + } + + /** + * Creates the style of the indicator pointing to the avatar image. + * + * @return the style of the indicator pointing to the avatar image + */ + public static String createIndicatorStyle() + { + return "style =\"" + + "width:9px;" + + " height:19px;" + + " background-image: url('" + +OUTGOING_MESSAGE_INDICATOR_PATH+"');" + + " background-repeat: no-repeat;" + + " background-position: top left;" + + "\""; + } + + /** + * Creates the style of the avatar image. + * + * @return the style of the avatar image + */ + public static String createAvatarStyle() + { + return "style=\"width:26px;" + + " height:26px;" + + " float:right;\""; + } + + /** + * Creates the style of the date. + * + * @return the style of the date + */ + public static String createDateStyle() + { + return "style =\"" + + "color:#6a6868;" + + " font-size:10px;" + + " padding-top:4px;" + + " text-align:right;" + + "\""; + } +} diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/history/HistoryWindow.java b/src/net/java/sip/communicator/impl/gui/main/chat/history/HistoryWindow.java index 2c2b216b0..78dd4f7dd 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/history/HistoryWindow.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/history/HistoryWindow.java @@ -263,13 +263,14 @@ private HTMLDocument createHistory(Collection<Object> historyRecords) Object o = i.next(); ChatMessage chatMessage = null; + ProtocolProviderService protocolProvider = null; if(o instanceof MessageDeliveredEvent) { MessageDeliveredEvent evt = (MessageDeliveredEvent) o; - ProtocolProviderService protocolProvider = evt - .getDestinationContact().getProtocolProvider(); + protocolProvider + = evt.getDestinationContact().getProtocolProvider(); chatMessage = new ChatMessage( GuiActivator.getUIService().getMainFrame() @@ -288,6 +289,9 @@ else if(o instanceof MessageReceivedEvent) { MessageReceivedEvent evt = (MessageReceivedEvent) o; + protocolProvider + = evt.getSourceContact().getProtocolProvider(); + chatMessage = new ChatMessage( evt.getSourceContact().getAddress(), evt.getSourceContact().getDisplayName(), @@ -304,6 +308,9 @@ else if(o instanceof ChatRoomMessageReceivedEvent) ChatRoomMessageReceivedEvent evt = (ChatRoomMessageReceivedEvent) o; + protocolProvider + = evt.getSourceChatRoom().getParentProvider(); + chatMessage = new ChatMessage( evt.getSourceChatRoomMember().getName(), evt.getTimestamp(), Chat.INCOMING_MESSAGE, @@ -315,6 +322,9 @@ else if(o instanceof ChatRoomMessageDeliveredEvent) ChatRoomMessageDeliveredEvent evt = (ChatRoomMessageDeliveredEvent) o; + protocolProvider + = evt.getSourceChatRoom().getParentProvider(); + chatMessage = new ChatMessage( evt.getSourceChatRoom().getParentProvider() .getAccountID().getUserID(), @@ -326,6 +336,9 @@ else if (o instanceof FileRecord) { FileRecord fileRecord = (FileRecord) o; + protocolProvider + = fileRecord.getContact().getProtocolProvider(); + FileHistoryConversationComponent component = new FileHistoryConversationComponent( this, fileRecord); @@ -336,10 +349,13 @@ else if (o instanceof FileRecord) if (chatMessage != null) { processedMessage = chatConvPanel.processMessage( - chatMessage, searchKeyword); + chatMessage, + searchKeyword, + protocolProvider, + chatMessage.getContactName()); chatConvPanel.appendMessageToEnd(processedMessage, - ChatConversationPanel.TEXT_CONTENT_TYPE); + ChatHtmlUtils.TEXT_CONTENT_TYPE); } } } @@ -875,7 +891,9 @@ private void processMessage(Contact contact, messageContentType); String processedMessage = chatConvPanel.processMessage( - chatMessage, searchKeyword); + chatMessage, searchKeyword, + contact.getProtocolProvider(), + contact.getAddress()); this.appendMessageToDocument(document, processedMessage); } diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/menus/ChatRightButtonMenu.java b/src/net/java/sip/communicator/impl/gui/main/chat/menus/ChatRightButtonMenu.java index c619a3433..93939091a 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/menus/ChatRightButtonMenu.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/menus/ChatRightButtonMenu.java @@ -36,14 +36,6 @@ public class ChatRightButtonMenu GuiActivator.getResources().getI18NString("service.gui.COPY"), new ImageIcon(ImageLoader.getImage(ImageLoader.COPY_ICON))); - private JMenuItem saveMenuItem = new JMenuItem( - GuiActivator.getResources().getI18NString("service.gui.SAVE"), - new ImageIcon(ImageLoader.getImage(ImageLoader.SAVE_ICON))); - - private JMenuItem printMenuItem = new JMenuItem( - GuiActivator.getResources().getI18NString("service.gui.PRINT"), - new ImageIcon(ImageLoader.getImage(ImageLoader.PRINT_ICON))); - private JMenuItem closeMenuItem = new JMenuItem( GuiActivator.getResources().getI18NString("service.gui.CLOSE"), new ImageIcon(ImageLoader.getImage(ImageLoader.CLOSE_ICON))); @@ -71,47 +63,23 @@ private void init() this.addSeparator(); - this.add(saveMenuItem); - this.add(printMenuItem); - - this.addSeparator(); - this.add(closeMenuItem); this.copyMenuItem.setName("copy"); - this.saveMenuItem.setName("save"); - this.printMenuItem.setName("print"); this.closeMenuItem.setName("service.gui.CLOSE"); this.copyMenuItem.addActionListener(this); - this.saveMenuItem.addActionListener(this); - this.printMenuItem.addActionListener(this); this.closeMenuItem.addActionListener(this); this.copyMenuItem.setMnemonic( GuiActivator.getResources().getI18nMnemonic("service.gui.COPY")); - this.saveMenuItem.setMnemonic( - GuiActivator.getResources().getI18nMnemonic("service.gui.SAVE")); - this.printMenuItem.setMnemonic( - GuiActivator.getResources().getI18nMnemonic("service.gui.PRINT")); + this.closeMenuItem.setMnemonic( GuiActivator.getResources().getI18nMnemonic("service.gui.CLOSE")); this.copyMenuItem.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK)); - - this.saveMenuItem.setAccelerator( - KeyStroke.getKeyStroke(KeyEvent.VK_S, - KeyEvent.CTRL_MASK)); - - this.printMenuItem.setAccelerator( - KeyStroke.getKeyStroke(KeyEvent.VK_R, - KeyEvent.CTRL_MASK)); - - // Disable all menu items that do nothing. - this.saveMenuItem.setEnabled(false); - this.printMenuItem.setEnabled(false); } /** @@ -168,12 +136,6 @@ public void loadSkin() copyMenuItem.setIcon(new ImageIcon( ImageLoader.getImage(ImageLoader.COPY_ICON))); - saveMenuItem.setIcon(new ImageIcon( - ImageLoader.getImage(ImageLoader.SAVE_ICON))); - - printMenuItem.setIcon(new ImageIcon( - ImageLoader.getImage(ImageLoader.PRINT_ICON))); - closeMenuItem.setIcon(new ImageIcon( ImageLoader.getImage(ImageLoader.CLOSE_ICON))); } diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/menus/FileMenu.java b/src/net/java/sip/communicator/impl/gui/main/chat/menus/FileMenu.java index df0a7f5b4..f188fc012 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/menus/FileMenu.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/menus/FileMenu.java @@ -20,7 +20,7 @@ /** * The <tt>FileMenu</tt> is the menu in the chat window menu bar that contains - * save, print and close. + * my chat rooms, history and close. * * @author Yana Stamcheva * @author Adam Netocny diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java b/src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java index 14faa61af..1c63daf85 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java @@ -21,7 +21,6 @@ import net.java.sip.communicator.impl.gui.main.chat.conference.*; import net.java.sip.communicator.impl.gui.main.chat.history.*; import net.java.sip.communicator.impl.gui.main.configforms.*; -import net.java.sip.communicator.impl.gui.main.contactlist.*; import net.java.sip.communicator.impl.gui.utils.*; import net.java.sip.communicator.service.contactlist.*; import net.java.sip.communicator.service.gui.*; @@ -29,10 +28,8 @@ import net.java.sip.communicator.service.protocol.*; import net.java.sip.communicator.service.protocol.ServerStoredDetails.FaxDetail; import net.java.sip.communicator.service.protocol.ServerStoredDetails.GenericDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.MobilePhoneDetail; import net.java.sip.communicator.service.protocol.ServerStoredDetails.PagerDetail; import net.java.sip.communicator.service.protocol.ServerStoredDetails.PhoneNumberDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.WorkPhoneDetail; import net.java.sip.communicator.util.skin.*; import net.java.sip.communicator.util.swing.*; @@ -108,6 +105,13 @@ public class MainToolBar = new ChatToolbarButton( ImageLoader.getImage(ImageLoader.CHAT_CALL)); + /** + * The call button. + */ + private final ChatToolbarButton callVideoButton + = new ChatToolbarButton( + ImageLoader.getImage(ImageLoader.CHAT_VIDEO_CALL)); + /** * The options button. */ @@ -181,6 +185,7 @@ protected void init() this.add(leaveChatRoomButton); this.add(callButton); +// this.add(callVideoButton); this.add(desktopSharingButton); this.add(sendFileButton); @@ -235,6 +240,11 @@ protected void init() GuiActivator.getResources().getI18NString( "service.gui.CALL_CONTACT")); + this.callVideoButton.setName("callVideo"); + this.callVideoButton.setToolTipText( + GuiActivator.getResources().getI18NString( + "service.gui.CALL_CONTACT")); + this.desktopSharingButton.setName("desktop"); this.desktopSharingButton.setToolTipText( GuiActivator.getResources().getI18NString( @@ -264,6 +274,7 @@ protected void init() inviteButton.addActionListener(this); leaveChatRoomButton.addActionListener(this); callButton.addActionListener(this); + callVideoButton.addActionListener(this); desktopSharingButton.addActionListener(this); historyButton.addActionListener(this); optionsButton.addActionListener(this); @@ -377,7 +388,7 @@ public void chatChanged(ChatPanel chatPanel) } } } - + callButton.setEnabled(hasTelephony || hasPhone); desktopSharingButton.setEnabled(!getOperationSetForCapabilities( chatPanel.chatSession.getTransportsForOperationSet( @@ -550,84 +561,13 @@ else if (buttonText.equals("call")) List<ChatTransport> contactOpSetSupported = getOperationSetForCapabilities(telTransports, OperationSetBasicTelephony.class); - + MetaContact metaContact = GuiActivator.getUIService().getChatContact(chatPanel); - Iterator<Contact> contacts = metaContact.getContacts(); - List<UIContactDetail> phones = new ArrayList<UIContactDetail>(); - - while(contacts.hasNext()) - { - Contact contact = contacts.next(); - - OperationSetServerStoredContactInfo infoOpSet = - contact.getProtocolProvider().getOperationSet( - OperationSetServerStoredContactInfo.class); - Iterator<GenericDetail> details = null; - - if(infoOpSet != null) - { - details = infoOpSet.getAllDetailsForContact(contact); + + List<UIContactDetail> phones + = CallManager.getAdditionalNumbers(metaContact); - while(details.hasNext()) - { - GenericDetail d = details.next(); - if(d instanceof PhoneNumberDetail && - !(d instanceof PagerDetail) && - !(d instanceof FaxDetail)) - { - PhoneNumberDetail pnd = (PhoneNumberDetail)d; - if(pnd.getNumber() != null && - pnd.getNumber().length() > 0) - { - String localizedType = null; - - if(d instanceof WorkPhoneDetail) - { - localizedType = - GuiActivator.getResources(). - getI18NString( - "service.gui.WORK_PHONE"); - } - else if(d instanceof MobilePhoneDetail) - { - localizedType = - GuiActivator.getResources(). - getI18NString( - "service.gui.MOBILE_PHONE"); - } - else - { - localizedType = - GuiActivator.getResources(). - getI18NString( - "service.gui.PHONE"); - } - - UIContactDetail cd = - new UIContactDetailImpl( - pnd.getNumber(), - pnd.getNumber() + - " (" + localizedType + ")", - null, - new ArrayList<String>(), - null, - null, - null, - pnd) - { - public PresenceStatus getPresenceStatus() - { - return null; - } - }; - phones.add(cd); - } - } - } - } - } - if (telTransports != null || phones.size() > 0) { if (contactOpSetSupported.size() == 1 && phones.size() == 0) @@ -638,7 +578,7 @@ public PresenceStatus getPresenceStatus() transport.getName()); } else if (contactOpSetSupported.size() == 0 - && phones.size() == 1) + && phones.size() == 1) { UIContactDetail detail = phones.get(0); diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListCellRenderer.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListCellRenderer.java index 09ad46f8d..d856041da 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListCellRenderer.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListCellRenderer.java @@ -61,13 +61,13 @@ public class ContactListCellRenderer * The icon indicating an open group. */ private ImageIcon openedGroupIcon = - new ImageIcon(ImageLoader.getImage(ImageLoader.DOWN_ARROW_ICON)); + new ImageIcon(ImageLoader.getImage(ImageLoader.OPENED_GROUP_ICON)); /** * The icon indicating a closed group. */ private ImageIcon closedGroupIcon = - new ImageIcon(ImageLoader.getImage(ImageLoader.RIGHT_ARROW_ICON)); + new ImageIcon(ImageLoader.getImage(ImageLoader.CLOSED_GROUP_ICON)); /** * The foreground color for groups. @@ -494,7 +494,7 @@ public void loadSkin() = new ImageIcon(ImageLoader.getImage(ImageLoader.DOWN_ARROW_ICON)); closedGroupIcon - = new ImageIcon(ImageLoader.getImage(ImageLoader.RIGHT_ARROW_ICON)); + = new ImageIcon(ImageLoader.getImage(ImageLoader.CLOSED_GROUP_ICON)); int groupForegroundProperty = GuiActivator.getResources() .getColor("service.gui.CONTACT_LIST_GROUP_FOREGROUND"); diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java index b6a5f75e1..ad6b3dae4 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java @@ -16,6 +16,8 @@ import javax.swing.JPopupMenu.Separator; import javax.swing.tree.*; +import org.jitsi.util.*; + import net.java.sip.communicator.impl.gui.*; import net.java.sip.communicator.impl.gui.main.call.*; import net.java.sip.communicator.impl.gui.main.contactlist.contactsource.*; @@ -73,6 +75,16 @@ public class ContactListTreeCellRenderer */ private static final int EXTENDED_AVATAR_WIDTH = 45; + /** + * The default width of the button. + */ + private static final int BUTTON_WIDTH = 26; + + /** + * The default height of the button. + */ + private static final int BUTTON_HEIGHT = 27; + /** * Left border value. */ @@ -84,14 +96,30 @@ public class ContactListTreeCellRenderer private static final int TOP_BORDER = 2; /** - * Status label right border. + * Bottom border value. + */ + private static final int BOTTOM_BORDER = 2; + + /** + * Right border value. */ - private static final int STATUS_RIGHT_BORDER = 2; + private static final int RIGHT_BORDER = 2; /** - * Status label top border. + * The horizontal gap between columns in pixels; */ - private static final int STATUS_TOP_BORDER = 2; + private static final int H_GAP = 2; + + /** + * The vertical gap between rows in pixels; + */ + private static final int V_GAP = 3; + + /** + * The separator image for the button toolbar. + */ + private static final Image BUTTON_SEPARATOR_IMG + = ImageLoader.getImage(ImageLoader.CONTACT_LIST_BUTTON_SEPARATOR); /** * The icon used for opened groups. @@ -131,18 +159,12 @@ public class ContactListTreeCellRenderer /** * The call video button. */ - private final SIPCommButton callVideoButton = new SIPCommButton( - ImageLoader.getImage(ImageLoader.CALL_VIDEO_BUTTON_SMALL), - ImageLoader.getImage(ImageLoader.CALL_VIDEO_BUTTON_SMALL_PRESSED), - null); + private final SIPCommButton callVideoButton = new SIPCommButton(); /** * The desktop sharing button. */ - private final SIPCommButton desktopSharingButton = new SIPCommButton( - ImageLoader.getImage(ImageLoader.DESKTOP_BUTTON_SMALL), - ImageLoader.getImage(ImageLoader.DESKTOP_BUTTON_SMALL_PRESSED), - null); + private final SIPCommButton desktopSharingButton = new SIPCommButton(); /** * The chat button. @@ -152,10 +174,7 @@ public class ContactListTreeCellRenderer /** * The add contact button. */ - private final SIPCommButton addContactButton = new SIPCommButton( - ImageLoader.getImage(ImageLoader.ADD_CONTACT_BUTTON_SMALL), - ImageLoader.getImage(ImageLoader.ADD_CONTACT_BUTTON_SMALL_PRESSED), - null); + private final SIPCommButton addContactButton = new SIPCommButton(); /** * The constraints used to align components in the <tt>centerPanel</tt>. @@ -208,6 +227,11 @@ public class ContactListTreeCellRenderer */ private List<JButton> customActionButtons; + /** + * The last added button. + */ + private SIPCommButton lastAddedButton; + /** * Initializes the panel containing the node. */ @@ -222,11 +246,11 @@ public ContactListTreeCellRenderer() * correctly calculated problems may occur when clicking buttons! */ this.setBorder(BorderFactory - .createEmptyBorder(TOP_BORDER, LEFT_BORDER, 2, 2)); + .createEmptyBorder( TOP_BORDER, + LEFT_BORDER, + BOTTOM_BORDER, + RIGHT_BORDER)); - statusLabel.setBorder( - BorderFactory.createEmptyBorder(STATUS_TOP_BORDER, - 0, 0, STATUS_RIGHT_BORDER)); loadSkin(); this.setOpaque(true); @@ -237,6 +261,10 @@ public ContactListTreeCellRenderer() this.rightLabel.setHorizontalAlignment(JLabel.RIGHT); + // !! IMPORTANT: General insets used for all components if not + // overwritten! + constraints.insets = new Insets(0, 0, V_GAP, H_GAP); + constraints.anchor = GridBagConstraints.WEST; constraints.fill = GridBagConstraints.NONE; constraints.gridx = 0; @@ -595,11 +623,11 @@ public Dimension getPreferredSize() if (preferredHeight > 0) preferredSize.height = preferredHeight; else if (contact instanceof ShowMoreContact) - preferredSize.height = 18; + preferredSize.height = 20; else if (isSelected && treeContactList.isContactButtonsVisible()) preferredSize.height = 70; else - preferredSize.height = 30; + preferredSize.height = 35; } else if (treeNode instanceof GroupNode) { @@ -611,7 +639,7 @@ else if (treeNode instanceof GroupNode) if (preferredHeight > 0) preferredSize.height = preferredHeight; else - preferredSize.height = 18; + preferredSize.height = 20; } return preferredSize; @@ -639,8 +667,6 @@ private void addLabels(int nameLabelGridWidth) constraints.gridwidth = nameLabelGridWidth; this.add(nameLabel, constraints); - rightLabel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 2)); - constraints.anchor = GridBagConstraints.NORTHEAST; constraints.fill = GridBagConstraints.VERTICAL; constraints.gridx = nameLabelGridWidth + 1; @@ -719,15 +745,6 @@ private void initButtonsPanel(UIContact uiContact) if (!isSelected) return; - int statusMessageLabelHeight = 0; - if (displayDetailsLabel.getText().length() > 0) - statusMessageLabelHeight = 20; - else - statusMessageLabelHeight = 15; - - int y = TOP_BORDER + STATUS_TOP_BORDER - + nameLabel.getHeight() + statusMessageLabelHeight; - UIContactDetail imContact = null; // For now we support instance messaging only for contacts in our // contact list until it's implemented for external source contacts. @@ -736,9 +753,8 @@ private void initButtonsPanel(UIContact uiContact) OperationSetBasicInstantMessaging.class); int x = (statusIcon == null ? 0 : statusIcon.getIconWidth()) - + (statusLabel == null ? 0 : statusLabel.getIconTextGap()) + LEFT_BORDER - + STATUS_RIGHT_BORDER; + + H_GAP; // Re-initialize the x grid. constraints.gridx = 0; @@ -746,20 +762,7 @@ private void initButtonsPanel(UIContact uiContact) if (imContact != null) { - constraints.anchor = GridBagConstraints.WEST; - constraints.fill = GridBagConstraints.NONE; - constraints.gridx = ++gridX; - constraints.gridy = 2; - constraints.gridwidth = 1; - constraints.gridheight = 1; - constraints.weightx = 0f; - constraints.weighty = 0f; - this.chatButton.setBorder(null); - this.add(chatButton, constraints); - - chatButton.setBounds(x, y, 28, 28); - - x += chatButton.getWidth(); + x += addButton(chatButton, ++gridX, x, false); } UIContactDetail telephonyContact @@ -833,22 +836,7 @@ private void initButtonsPanel(UIContact uiContact) || uiContact.getDescriptor() instanceof SourceContact || (hasPhone && providers.size() > 0)) { - constraints.anchor = GridBagConstraints.WEST; - constraints.fill = GridBagConstraints.NONE; - constraints.gridx = ++gridX; - constraints.gridy = 2; - constraints.gridwidth = 1; - constraints.gridheight = 1; - constraints.weightx = 0f; - constraints.weighty = 0f; - this.callButton.setBorder(null); - this.add(callButton, constraints); - - callButton.setBounds(x, y, 28, 28); - - callButton.setEnabled(telephonyContact != null || hasPhone); - - x += callButton.getWidth(); + x += addButton(callButton, ++gridX, x, false); } UIContactDetail videoContact @@ -864,20 +852,7 @@ private void initButtonsPanel(UIContact uiContact) null, null).size() > 0)) { - constraints.anchor = GridBagConstraints.WEST; - constraints.fill = GridBagConstraints.NONE; - constraints.gridx = ++gridX; - constraints.gridy = 2; - constraints.gridwidth = 1; - constraints.gridheight = 1; - constraints.weightx = 0f; - constraints.weighty = 0f; - this.callVideoButton.setBorder(null); - this.add(callVideoButton, constraints); - - callVideoButton.setBounds(x, y, 28, 28); - - x += callVideoButton.getWidth(); + x += addButton(callVideoButton, ++gridX, x, false); } UIContactDetail desktopContact @@ -893,39 +868,13 @@ private void initButtonsPanel(UIContact uiContact) null, null).size() > 0)) { - constraints.anchor = GridBagConstraints.WEST; - constraints.fill = GridBagConstraints.NONE; - constraints.gridx = ++gridX; - constraints.gridy = 2; - constraints.gridwidth = 1; - constraints.gridheight = 1; - constraints.weightx = 0f; - constraints.weighty = 0f; - this.desktopSharingButton.setBorder(null); - this.add(desktopSharingButton, constraints); - - desktopSharingButton.setBounds(x, y, 28, 28); - - x += desktopSharingButton.getWidth(); + x += addButton(desktopSharingButton, ++gridX, x, false); } if (uiContact.getDescriptor() instanceof SourceContact && !ConfigurationManager.isAddContactDisabled()) { - constraints.anchor = GridBagConstraints.WEST; - constraints.fill = GridBagConstraints.NONE; - constraints.gridx = ++gridX; - constraints.gridy = 2; - constraints.gridwidth = 1; - constraints.gridheight = 1; - constraints.weightx = 0f; - constraints.weighty = 0f; - this.addContactButton.setBorder(null); - this.add(addContactButton, constraints); - - addContactButton.setBounds(x, y, 28, 28); - - x += addContactButton.getWidth(); + x += addButton(addContactButton, ++gridX, x, false); } // The list of the contact actions @@ -933,16 +882,20 @@ private void initButtonsPanel(UIContact uiContact) Collection<SIPCommButton> contactActions = uiContact.getContactCustomActionButtons(); - if (contactActions != null) + if (contactActions != null && contactActions.size() > 0) { - initContactActionButtons(contactActions, gridX, x); + initContactActionButtons(contactActions, ++gridX, x); } else { addLabels(gridX); } - this.setBounds(0, 0, treeContactList.getWidth(), getPreferredSize().height); + if (lastAddedButton != null) + setButtonBg(lastAddedButton, gridX, true); + + this.setBounds(0, 0, treeContactList.getWidth(), + getPreferredSize().height); } /** @@ -970,28 +923,8 @@ private void initContactActionButtons( customActionButtons.add(actionButton); - constraints.anchor = GridBagConstraints.WEST; - constraints.fill = GridBagConstraints.NONE; - constraints.gridx = ++gridX; - constraints.gridy = 2; - constraints.gridwidth = 1; - constraints.gridheight = 1; - constraints.weightx = 0f; - constraints.weighty = 0f; - actionButton.setBorder(null); - this.add(actionButton, constraints); - - int statusMessageLabelHeight = 0; - if (displayDetailsLabel.getText().length() > 0) - statusMessageLabelHeight = 20; - else - statusMessageLabelHeight = 15; - - actionButton.setBounds(xBounds, - nameLabel.getHeight() + statusMessageLabelHeight - + TOP_BORDER + STATUS_TOP_BORDER, 28, 28); - - xBounds += actionButton.getWidth(); + xBounds + += addButton(actionButton, ++gridX, xBounds, false); } } @@ -1035,6 +968,15 @@ public void paintIcon(Component c, Graphics g, int x, int y) } } + /** + * Returns the call button contained in the current cell. + * @return the call button contained in the current cell + */ + public JButton getChatButton() + { + return chatButton; + } + /** * Returns the call button contained in the current cell. * @return the call button contained in the current cell @@ -1365,7 +1307,9 @@ else if (providersCount > 1) else if (desktopContacts.size() > 1) { chooseAccountDialog - = new ChooseCallAccountPopupMenu(treeContactList, desktopContacts, + = new ChooseCallAccountPopupMenu( + treeContactList, + desktopContacts, OperationSetDesktopSharingServer.class); } @@ -1378,7 +1322,8 @@ else if (desktopContacts.size() > 1) SwingUtilities.convertPointToScreen(location, treeContactList); location.y = location.y - + treeContactList.getPathBounds(treeContactList.getSelectionPath()).y; + + treeContactList.getPathBounds( + treeContactList.getSelectionPath()).y; chooseAccountDialog.showPopupMenu(location.x + 8, location.y - 8); } @@ -1487,14 +1432,14 @@ public Icon getDragIcon(JTree tree, Object dragObject, int index) tree.getWidth() - imageWidth, 0, imageWidth, imageHeight); } - statusLabel.setBounds( 0, 0, + dragC.statusLabel.setBounds( 0, 0, statusLabel.getWidth(), statusLabel.getHeight()); - nameLabel.setBounds(statusLabel.getWidth(), 0, + dragC.nameLabel.setBounds(statusLabel.getWidth(), 0, tree.getWidth() - imageWidth - 5, nameLabel.getHeight()); - displayDetailsLabel.setBounds( + dragC.displayDetailsLabel.setBounds( displayDetailsLabel.getX(), nameLabel.getHeight(), displayDetailsLabel.getWidth(), @@ -1509,20 +1454,24 @@ public Icon getDragIcon(JTree tree, Object dragObject, int index) public void loadSkin() { openedGroupIcon - = new ImageIcon(ImageLoader.getImage(ImageLoader.DOWN_ARROW_ICON)); + = new ImageIcon(ImageLoader.getImage(ImageLoader.OPENED_GROUP_ICON)); closedGroupIcon - = new ImageIcon(ImageLoader.getImage(ImageLoader.RIGHT_ARROW_ICON)); + = new ImageIcon(ImageLoader.getImage(ImageLoader.CLOSED_GROUP_ICON)); - callButton.setBackgroundImage(ImageLoader.getImage( + callButton.setIconImage(ImageLoader.getImage( ImageLoader.CALL_BUTTON_SMALL)); + callButton.setRolloverImage(ImageLoader.getImage( + ImageLoader.CALL_BUTTON_SMALL_PRESSED)); callButton.setPressedImage(ImageLoader.getImage( ImageLoader.CALL_BUTTON_SMALL_PRESSED)); - chatButton.setBackgroundImage(ImageLoader.getImage( + chatButton.setIconImage(ImageLoader.getImage( ImageLoader.CHAT_BUTTON_SMALL)); chatButton.setPressedImage(ImageLoader.getImage( ImageLoader.CHAT_BUTTON_SMALL_PRESSED)); + chatButton.setRolloverImage(ImageLoader.getImage( + ImageLoader.CHAT_BUTTON_SMALL_PRESSED)); msgReceivedImage = ImageLoader.getImage(ImageLoader.MESSAGE_RECEIVED_ICON); @@ -1539,17 +1488,40 @@ public void loadSkin() if (contactForegroundProperty > -1) contactForegroundColor = new Color(contactForegroundProperty); - callVideoButton.setBackgroundImage(ImageLoader.getImage( + callVideoButton.setIconImage(ImageLoader.getImage( ImageLoader.CALL_VIDEO_BUTTON_SMALL)); - + callVideoButton.setRolloverImage(ImageLoader.getImage( + ImageLoader.CALL_VIDEO_BUTTON_SMALL_PRESSED)); callVideoButton.setPressedImage(ImageLoader.getImage( ImageLoader.CALL_VIDEO_BUTTON_SMALL_PRESSED)); - desktopSharingButton.setBackgroundImage(ImageLoader.getImage( + desktopSharingButton.setIconImage(ImageLoader.getImage( ImageLoader.DESKTOP_BUTTON_SMALL)); - + desktopSharingButton.setRolloverImage(ImageLoader.getImage( + ImageLoader.DESKTOP_BUTTON_SMALL_PRESSED)); desktopSharingButton.setPressedImage(ImageLoader.getImage( ImageLoader.DESKTOP_BUTTON_SMALL_PRESSED)); + + callVideoButton.setIconImage( + ImageLoader.getImage(ImageLoader.CALL_VIDEO_BUTTON_SMALL)); + callVideoButton.setRolloverImage( + ImageLoader.getImage(ImageLoader.CALL_VIDEO_BUTTON_SMALL_PRESSED)); + callVideoButton.setPressedImage( + ImageLoader.getImage(ImageLoader.CALL_VIDEO_BUTTON_SMALL_PRESSED)); + + desktopSharingButton.setIconImage( + ImageLoader.getImage(ImageLoader.DESKTOP_BUTTON_SMALL)); + desktopSharingButton.setRolloverImage( + ImageLoader.getImage(ImageLoader.DESKTOP_BUTTON_SMALL_PRESSED)); + desktopSharingButton.setPressedImage( + ImageLoader.getImage(ImageLoader.DESKTOP_BUTTON_SMALL_PRESSED)); + + addContactButton.setIconImage( + ImageLoader.getImage(ImageLoader.ADD_CONTACT_BUTTON_SMALL)); + addContactButton.setRolloverImage( + ImageLoader.getImage(ImageLoader.ADD_CONTACT_BUTTON_SMALL_PRESSED)); + addContactButton.setPressedImage( + ImageLoader.getImage(ImageLoader.ADD_CONTACT_BUTTON_SMALL_PRESSED)); } /** @@ -1628,4 +1600,78 @@ public void run() } } } + + private int addButton( SIPCommButton button, + int gridX, + int xBounds, + boolean isLast) + { + lastAddedButton = button; + + constraints.insets = new Insets(0, 0, V_GAP, 0); + constraints.anchor = GridBagConstraints.WEST; + constraints.fill = GridBagConstraints.NONE; + constraints.gridx = gridX; + constraints.gridy = 2; + constraints.gridwidth = 1; + constraints.gridheight = 1; + constraints.weightx = 0f; + constraints.weighty = 0f; + this.add(button, constraints); + +// addButtonSeparator(gridX); + + int yBounds = TOP_BORDER + BOTTOM_BORDER + 2*V_GAP + + GuiUtils.getStringSize( + nameLabel, nameLabel.getText()).height + + GuiUtils.getStringSize( + displayDetailsLabel, displayDetailsLabel.getText()).height; + + button.setBounds(xBounds, yBounds, BUTTON_WIDTH, BUTTON_HEIGHT); + + button.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); + + setButtonBg(button, gridX, isLast); + + return button.getWidth();// + BUTTON_SEPARATOR_IMG.getWidth(this); + } + + private void setButtonBg(SIPCommButton button, + int gridX, + boolean isLast) + { + if (!isLast) + { + if (gridX == 1) + button.setBackgroundImage(ImageLoader.getImage( + ImageLoader.CONTACT_LIST_BUTTON_BG_LEFT)); + else if (gridX > 1) + button.setBackgroundImage(ImageLoader.getImage( + ImageLoader.CONTACT_LIST_BUTTON_BG_MIDDLE)); + } + else + { + if (gridX == 1) // We have only one button shown. + button.setBackgroundImage(ImageLoader.getImage( + ImageLoader.CONTACT_LIST_ONE_BUTTON_BG)); + else // We set the background of the last button in the toolbar + button.setBackgroundImage(ImageLoader.getImage( + ImageLoader.CONTACT_LIST_BUTTON_BG_RIGHT)); + } + } + + private void addButtonSeparator(int buttonGridX) + { + JLabel separatorLabel = new JLabel(new ImageIcon(BUTTON_SEPARATOR_IMG)); + + constraints.anchor = GridBagConstraints.WEST; + constraints.fill = GridBagConstraints.NONE; + constraints.gridx = ++buttonGridX; + constraints.gridy = 2; + constraints.gridwidth = 1; + constraints.gridheight = 1; + constraints.weightx = 0f; + constraints.weighty = 0f; + this.add(separatorLabel, constraints); + } } diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java index f703aaa0f..37d8c9adb 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java @@ -1224,25 +1224,25 @@ else if (lastComponent instanceof GroupNode) /** * Forwards the given mouse <tt>event</tt> to the list of original * <tt>MouseListener</tt>-s. - * @param event the <tt>MouseEvent</tt> that notified us + * @param e the <tt>MouseEvent</tt> that notified us */ - public void mouseEntered(MouseEvent event) + public void mouseEntered(MouseEvent e) { // forward the event to the original listeners for (MouseListener listener : originalMouseListeners) - listener.mouseEntered(event); + listener.mouseEntered(e); } /** * Forwards the given mouse <tt>event</tt> to the list of original * <tt>MouseListener</tt>-s. - * @param event the <tt>MouseEvent</tt> that notified us + * @param e the <tt>MouseEvent</tt> that notified us */ - public void mouseExited(MouseEvent event) + public void mouseExited(MouseEvent e) { // forward the event to the original listeners for (MouseListener listener : originalMouseListeners) - listener.mouseExited(event); + listener.mouseExited(e); } /** @@ -1278,7 +1278,14 @@ private void openRightButtonMenu(Point contactListPoint) rightButtonMenu.setVisible(true); } - public void mouseMoved(MouseEvent e) {} + public void mouseMoved(MouseEvent e) + { + dispatchEventToButtons(e); + + // forward the event to the original listeners + for (MouseListener listener : originalMouseListeners) + listener.mouseReleased(e); + } public void mouseDragged(MouseEvent e) {} @@ -1335,18 +1342,29 @@ private void dispatchEventToButtons(MouseEvent event) TreePath mousePath = this.getPathForLocation(event.getX(), event.getY()); + ContactListTreeCellRenderer renderer + = (ContactListTreeCellRenderer) getCellRenderer() + .getTreeCellRendererComponent( this, + mousePath.getLastPathComponent(), + true, + true, + true, + this.getRowForPath(mousePath), + true); + // If this is not the selection path we have nothing to do here. if (mousePath == null || !mousePath.equals(this.getSelectionPath())) - return; + { + renderer.getChatButton().getModel().setRollover(false); + renderer.getCallButton().getModel().setRollover(false); + renderer.getCallVideoButton().getModel().setRollover(false); + renderer.getDesktopSharingButton().getModel().setRollover(false); + renderer.getAddContactButton().getModel().setRollover(false); - JPanel renderer = (JPanel) getCellRenderer() - .getTreeCellRendererComponent( this, - mousePath.getLastPathComponent(), - true, - true, - true, - this.getRowForPath(mousePath), - true); + this.repaint(); + + return; + } // We need to translate coordinates here. Rectangle r = this.getPathBounds(mousePath); @@ -1373,10 +1391,37 @@ private void dispatchEventToButtons(MouseEvent event) 5, // we're in the button for sure event.getClickCount(), event.isPopupTrigger()); - mouseComponent.dispatchEvent(evt); - this.repaint(); + ((SIPCommButton) mouseComponent).getModel() + .setRollover(event.getID() == MouseEvent.MOUSE_MOVED); + + if (!mouseComponent.equals(renderer.getChatButton())) + renderer.getChatButton().getModel().setRollover(false); + + if (!mouseComponent.equals(renderer.getCallButton())) + renderer.getCallButton().getModel().setRollover(false); + + if (!mouseComponent.equals(renderer.getCallVideoButton())) + renderer.getCallVideoButton().getModel().setRollover(false); + + if (!mouseComponent.equals(renderer.getDesktopSharingButton())) + renderer.getDesktopSharingButton().getModel().setRollover(false); + + if (!mouseComponent.equals(renderer.getAddContactButton())) + renderer.getAddContactButton().getModel().setRollover(false); + + mouseComponent.dispatchEvent(evt); } + else + { + renderer.getChatButton().getModel().setRollover(false); + renderer.getCallButton().getModel().setRollover(false); + renderer.getCallVideoButton().getModel().setRollover(false); + renderer.getDesktopSharingButton().getModel().setRollover(false); + renderer.getAddContactButton().getModel().setRollover(false); + } + + this.repaint(); } /** diff --git a/src/net/java/sip/communicator/impl/gui/main/presence/AccountStatusPanel.java b/src/net/java/sip/communicator/impl/gui/main/presence/AccountStatusPanel.java index a49d02af8..4aa50c804 100644 --- a/src/net/java/sip/communicator/impl/gui/main/presence/AccountStatusPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/presence/AccountStatusPanel.java @@ -345,7 +345,7 @@ public boolean hasSelectedMenus() */ public void registrationStateChanged(RegistrationStateChangeEvent evt) { - ProtocolProviderService protocolProvider = evt.getProvider(); + final ProtocolProviderService protocolProvider = evt.getProvider(); this.updateStatus(protocolProvider); @@ -379,16 +379,30 @@ public void run() { if (currentImage == null) { - byte[] accountImage - = AccountInfoUtils.getImage(accountInfoOpSet); + currentImage + = AvatarCacheUtils + .getCachedAvatar(protocolProvider); - // do not set empty images - if ((accountImage != null) - && (accountImage.length > 0)) + if (currentImage == null) { - currentImage = accountImage; - accountImageLabel.setImageIcon(currentImage); + byte[] accountImage + = AccountInfoUtils + .getImage(accountInfoOpSet); + + // do not set empty images + if ((accountImage != null) + && (accountImage.length > 0)) + { + currentImage = accountImage; + + AvatarCacheUtils.cacheAvatar( + protocolProvider, accountImage); + + accountImageLabel.setImageIcon(currentImage); + } } + else + accountImageLabel.setImageIcon(currentImage); } if(!StringUtils.isNullOrEmpty(globalDisplayName)) @@ -570,6 +584,10 @@ public void avatarChanged(AvatarEvent event) currentImage = ImageUtils.toByteArray( ImageLoader.getImage(ImageLoader.DEFAULT_USER_PHOTO)); } + + AvatarCacheUtils.cacheAvatar( + event.getSourceProvider(), currentImage); + accountImageLabel.setImageIcon(currentImage); } diff --git a/src/net/java/sip/communicator/impl/gui/utils/ImageLoader.java b/src/net/java/sip/communicator/impl/gui/utils/ImageLoader.java index e589bd445..63c21f747 100644 --- a/src/net/java/sip/communicator/impl/gui/utils/ImageLoader.java +++ b/src/net/java/sip/communicator/impl/gui/utils/ImageLoader.java @@ -195,12 +195,6 @@ public class ImageLoader public static final ImageID MORE_BUTTON = new ImageID("service.gui.buttons.MORE_BUTTON"); - /** - * Closed group icon. - */ - public static final ImageID RIGHT_ARROW_ICON - = new ImageID("service.gui.icons.RIGHT_ARROW_ICON"); - /** * The background of the main window and chat window. */ @@ -275,6 +269,40 @@ public class ImageLoader public static final ImageID CALL_VIDEO_BUTTON_BG = new ImageID("service.gui.buttons.CALL_VIDEO_BUTTON_BG"); + /** + * The background image for a button in contact list that is shown on the + * left of the button toolbar. + */ + public static final ImageID CONTACT_LIST_BUTTON_BG_LEFT + = new ImageID("service.gui.buttons.CONTACT_LIST_BUTTON_BG_LEFT"); + + /** + * The background image for a button in contact list that is shown on the + * right of the button toolbar. + */ + public static final ImageID CONTACT_LIST_BUTTON_BG_RIGHT + = new ImageID("service.gui.buttons.CONTACT_LIST_BUTTON_BG_RIGHT"); + + /** + * The background image for a button in contact list that is shown in the + * middle of other buttons. + */ + public static final ImageID CONTACT_LIST_BUTTON_BG_MIDDLE + = new ImageID("service.gui.buttons.CONTACT_LIST_BUTTON_BG_MIDDLE"); + + /** + * The background image for a button in contact list if there's only one + * button shown. + */ + public static final ImageID CONTACT_LIST_ONE_BUTTON_BG + = new ImageID("service.gui.buttons.CONTACT_LIST_ONE_BUTTON_BG"); + + /** + * The separator image for the button toolbar in the contact list. + */ + public static final ImageID CONTACT_LIST_BUTTON_SEPARATOR + = new ImageID("service.gui.buttons.CONTACT_LIST_BUTTON_SEPARATOR"); + /** * The call button small image. */ @@ -343,12 +371,24 @@ public class ImageLoader public static final ImageID CHAT_BUTTON_SMALL_WHITE = new ImageID("service.gui.buttons.CHAT_BUTTON_SMALL_WHITE"); + /** + * The icon used to separate buttons in the call toolbar. + */ + public static final ImageID CALL_TOOLBAR_SEPARATOR + = new ImageID("service.gui.icons.CALL_TOOLBAR_SEPARATOR"); + /** * The chat call button image. */ public static final ImageID CHAT_CALL = new ImageID("service.gui.buttons.CHAT_CALL"); + /** + * The chat video call button image. + */ + public static final ImageID CHAT_VIDEO_CALL + = new ImageID("service.gui.buttons.CHAT_VIDEO_CALL"); + /** * The chat call button image. */ @@ -367,6 +407,12 @@ public class ImageLoader public static final ImageID CALL_HISTORY_BUTTON_PRESSED = new ImageID("service.gui.buttons.CALL_HISTORY_BUTTON_PRESSED"); + /** + * The call history button missed call notification image. + */ + public static final ImageID CALL_HISTORY_BUTTON_NOTIFICATION + = new ImageID("service.gui.icons.CALL_HISTORY_BUTTON_NOTIFICATION"); + /** * The chat button small pressed image. */ @@ -987,13 +1033,13 @@ public class ImageLoader /** * The image used for opened groups. */ - public static final ImageID OPENED_GROUP + public static final ImageID OPENED_GROUP_ICON = new ImageID("service.gui.icons.OPENED_GROUP"); /** * The image used for closed groups. */ - public static final ImageID CLOSED_GROUP + public static final ImageID CLOSED_GROUP_ICON = new ImageID("service.gui.icons.CLOSED_GROUP"); /** @@ -1763,6 +1809,67 @@ public static Image getIndexedProtocolImage( badged = image; return badged; } + + /** + * Returns the given protocol image with an index allowing to distinguish + * different accounts from the same protocol. + * + * @param bgImage the background image + * @param topImage the image that should be painted on the top of the + * background image + * @param x the x coordinate of the top image + * @param y the y coordinate of the top image + * @return the result merged image + */ + public static Image getImage(Image bgImage, Image topImage, int x, int y) + { + BufferedImage buffImage + = new BufferedImage(bgImage.getWidth(null), + bgImage.getHeight(null), + BufferedImage.TYPE_INT_ARGB); + Graphics2D g = (Graphics2D) buffImage.getGraphics(); + + AntialiasingManager.activateAntialiasing(g); + g.drawImage(bgImage, 0, 0, null); + g.drawImage(topImage, x, y, null); + + return buffImage; + } + + /** + * Returns the given protocol image with an index allowing to distinguish + * different accounts from the same protocol. + * + * @param bgImage the background image + * @param text the text that should be painted on the top of the + * background image + * @return the result merged image + */ + public static Image getImage(Image bgImage, String text, Component c) + { + BufferedImage buffImage + = new BufferedImage(bgImage.getWidth(c), + bgImage.getHeight(c), + BufferedImage.TYPE_INT_ARGB); + Graphics2D g = (Graphics2D) buffImage.getGraphics(); + + AntialiasingManager.activateAntialiasing(g); + g.setColor(Color.WHITE); + g.setFont(c.getFont().deriveFont(Font.BOLD, 9)); + g.drawImage(bgImage, 0, 0, null); + + FontMetrics fontMetrics = g.getFontMetrics(); + int fontHeight = fontMetrics.getHeight(); + int textWidth = fontMetrics.stringWidth(text); + + g.drawString( + text, + (bgImage.getWidth(null) - textWidth)/2 + 1, + (bgImage.getHeight(null) - fontHeight)/2 + fontHeight - 3); + + return buffImage; + } + /** * Loads an image icon from a given image path. * @param imagePath The identifier of the image. diff --git a/src/net/java/sip/communicator/util/AvatarCacheUtils.java b/src/net/java/sip/communicator/util/AvatarCacheUtils.java new file mode 100644 index 000000000..37dcac199 --- /dev/null +++ b/src/net/java/sip/communicator/util/AvatarCacheUtils.java @@ -0,0 +1,344 @@ +/* + * Jitsi, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.util; + +import java.io.*; + +import org.jitsi.service.fileaccess.*; + +import net.java.sip.communicator.service.protocol.*; + +/** + * The <tt>AvatarCacheUtils</tt> allows to cache an avatar or to obtain the + * image of a cached avatar by specifying a contact or an account address. + * + * @author Yana Stamcheva + */ +public class AvatarCacheUtils +{ + /** + * The logger for this class. + */ + private final static Logger logger + = Logger.getLogger(AvatarCacheUtils.class); + + /** + * The name (i.e. not the whole path) of the directory in which the avatar + * files are to be cached for later reuse. + */ + private final static String AVATAR_DIR = "avatarcache"; + + /** + * Characters and their replacement in created folder names + */ + private final static String[][] ESCAPE_SEQUENCES = new String[][] + { + {"&", "&_amp"}, + {"/", "&_sl"}, + {"\\\\", "&_bs"}, // the char \ + {":", "&_co"}, + {"\\*", "&_as"}, // the char * + {"\\?", "&_qm"}, // the char ? + {"\"", "&_pa"}, // the char " + {"<", "&_lt"}, + {">", "&_gt"}, + {"\\|", "&_pp"} // the char | + }; + + /** + * Returns the bytes of the avatar image stored for the account + * corresponding to the given protocol provider. + * + * @param protocolProvider the <tt>ProtocolProviderService</tt>, which + * account avatar image we're looking for + * @return the bytes of the avatar image stored for the account + * corresponding to the given protocol provider + */ + public static byte[] getCachedAvatar( + ProtocolProviderService protocolProvider) + { + String avatarPath = getCachedAvatarPath(protocolProvider); + + byte[] cachedAvatar = getLocallyStoredAvatar(avatarPath); + + /* + * Caching a zero-length avatar happens but such an avatar isn't + * very useful. + */ + if ((cachedAvatar != null) && (cachedAvatar.length > 0)) + return cachedAvatar; + + return null; + } + + /** + * Returns the bytes of the avatar image stored for the account + * corresponding to the given protocol provider. + * + * @param protocolProvider the <tt>ProtocolProviderService</tt>, which + * account avatar image we're looking for + * @return the bytes of the avatar image stored for the account + * corresponding to the given protocol provider + */ + public static byte[] getCachedAvatar(Contact protocolContact) + { + String avatarPath = getCachedAvatarPath(protocolContact); + + byte[] cachedAvatar = getLocallyStoredAvatar(avatarPath); + + /* + * Caching a zero-length avatar happens but such an avatar isn't + * very useful. + */ + if ((cachedAvatar != null) && (cachedAvatar.length > 0)) + return cachedAvatar; + + return null; + } + + /** + * Returns the bytes of the avatar image stored for the account + * corresponding to the given protocol provider. + * + * @param protocolProvider the <tt>ProtocolProviderService</tt>, which + * account avatar image we're looking for + * @return the bytes of the avatar image stored for the account + * corresponding to the given protocol provider + */ + public static String getCachedAvatarPath( + ProtocolProviderService protocolProvider) + { + return AVATAR_DIR + + File.separator + + escapeSpecialCharacters( + protocolProvider.getAccountID().getAccountUniqueID()) + + File.separator + + escapeSpecialCharacters( + protocolProvider.getAccountID().getAccountUniqueID()); + } + + /** + * Returns the bytes of the avatar image stored for the account + * corresponding to the given protocol provider. + * + * @param protocolProvider the <tt>ProtocolProviderService</tt>, which + * account avatar image we're looking for + * @return the bytes of the avatar image stored for the account + * corresponding to the given protocol provider + */ + public static String getCachedAvatarPath(Contact protocolContact) + { + return AVATAR_DIR + + File.separator + + escapeSpecialCharacters( + protocolContact + .getProtocolProvider() + .getAccountID().getAccountUniqueID()) + + File.separator + + escapeSpecialCharacters(protocolContact.getAddress()); + } + + /** + * Returns the bytes of the avatar image stored for the account + * corresponding to the given protocol provider. + * + * @param protocolProvider the <tt>ProtocolProviderService</tt>, which + * account avatar image we're looking for + * @return the bytes of the avatar image stored for the account + * corresponding to the given protocol provider + */ + public static String getCachedAvatarPath( + ProtocolProviderService protocolProvider, + String contactAddress) + { + return AVATAR_DIR + + File.separator + + escapeSpecialCharacters( + protocolProvider.getAccountID().getAccountUniqueID()) + + File.separator + + escapeSpecialCharacters(contactAddress); + } + + /** + * Returns the avatar image corresponding to the given avatar path. + * + * @param avatarPath The path to the lovally stored avatar. + * @return the avatar image corresponding to the given avatar path. + */ + private static byte[] getLocallyStoredAvatar(String avatarPath) + { + try + { + File avatarFile + = UtilActivator + .getFileAccessService() + .getPrivatePersistentFile(avatarPath); + + if(avatarFile.exists()) + { + FileInputStream avatarInputStream + = new FileInputStream(avatarFile); + byte[] bs = null; + + try + { + int available = avatarInputStream.available(); + + if (available > 0) + { + bs = new byte[available]; + avatarInputStream.read(bs); + } + } + finally + { + avatarInputStream.close(); + } + if (bs != null) + return bs; + } + } + catch (Exception ex) + { + logger.error( + "Could not read avatar image from file " + avatarPath, + ex); + } + return null; + } + + /** + * Replaces the characters that we must escape used for the created + * filename. + * + * @param id the <tt>String</tt> which is to have its characters escaped + * @return a <tt>String</tt> derived from the specified <tt>id</tt> by + * escaping characters + */ + private static String escapeSpecialCharacters(String id) + { + String resultId = id; + + for (int j = 0; j < ESCAPE_SEQUENCES.length; j++) + { + resultId = resultId. + replaceAll(ESCAPE_SEQUENCES[j][0], ESCAPE_SEQUENCES[j][1]); + } + return resultId; + } + + /** + * Stores avatar bytes in the given <tt>Contact</tt>. + * + * @param protoContact The contact in which we store the avatar. + * @param avatarBytes The avatar image bytes. + */ + public static void cacheAvatar( Contact protoContact, + byte[] avatarBytes) + { + String avatarDirPath + = AVATAR_DIR + + File.separator + + escapeSpecialCharacters( + protoContact + .getProtocolProvider() + .getAccountID().getAccountUniqueID()); + String avatarFileName + = escapeSpecialCharacters(protoContact.getAddress()); + + cacheAvatar(avatarDirPath, avatarFileName, avatarBytes); + } + /** + * Stores avatar bytes for the account corresponding to the given + * <tt>protocolProvider</tt>. + * + * @param protocolProvider the protocol provider corresponding to the + * account, which avatar we're storing + * @param avatarBytes the avatar image bytes + */ + public static void cacheAvatar( ProtocolProviderService protocolProvider, + byte[] avatarBytes) + { + String accountUID + = protocolProvider.getAccountID().getAccountUniqueID(); + + String avatarDirPath + = AVATAR_DIR + + File.separator + + escapeSpecialCharacters(accountUID); + + String avatarFileName = escapeSpecialCharacters(accountUID); + + cacheAvatar(avatarDirPath, avatarFileName, avatarBytes); + } + + /** + * Stores avatar bytes for the account corresponding to the given + * <tt>protocolProvider</tt>. + * + * @param avatarDirPath the directory in which the file will be stored + * @param avatarFileName the name of the avatar file + * @param avatarBytes the avatar image bytes + */ + private static void cacheAvatar(String avatarDirPath, + String avatarFileName, + byte[] avatarBytes) + { + File avatarDir = null; + File avatarFile = null; + try + { + FileAccessService fileAccessService + = UtilActivator.getFileAccessService(); + + avatarDir + = fileAccessService.getPrivatePersistentDirectory( + avatarDirPath); + avatarFile + = fileAccessService.getPrivatePersistentFile( + avatarDirPath + File.separator + avatarFileName); + + if(!avatarFile.exists()) + { + if (!avatarDir.exists() && !avatarDir.mkdirs()) + { + throw + new IOException( + "Failed to create directory: " + + avatarDir.getAbsolutePath()); + } + + if (!avatarFile.createNewFile()) + { + throw + new IOException( + "Failed to create file" + + avatarFile.getAbsolutePath()); + } + } + + FileOutputStream fileOutStream = new FileOutputStream(avatarFile); + + try + { + fileOutStream.write(avatarBytes); + fileOutStream.flush(); + } + finally + { + fileOutStream.close(); + } + } + catch (Exception ex) + { + logger.error( + "Failed to store avatar. dir =" + avatarDir + + " file=" + avatarFile, + ex); + } + } +} diff --git a/src/net/java/sip/communicator/util/GuiUtils.java b/src/net/java/sip/communicator/util/GuiUtils.java index a106bdeb6..aad18259e 100644 --- a/src/net/java/sip/communicator/util/GuiUtils.java +++ b/src/net/java/sip/communicator/util/GuiUtils.java @@ -59,6 +59,23 @@ public class GuiUtils // European equivalent. private static final Map<Character, Character> DIGIT_MAPPINGS; + /** + * Characters and their replacement in created folder names + */ + private final static String[][] ESCAPE_SEQUENCES = new String[][] + { + {"&", "&_amp"}, + {"/", "&_sl"}, + {"\\\\", "&_bs"}, // the char \ + {":", "&_co"}, + {"\\*", "&_as"}, // the char * + {"\\?", "&_qm"}, // the char ? + {"\"", "&_pa"}, // the char " + {"<", "&_lt"}, + {">", "&_gt"}, + {"\\|", "&_pp"} // the char | + }; + static { HashMap<Character, Character> digitMap @@ -644,4 +661,24 @@ else if (c instanceof java.awt.Container) updateComponentTreeUI0(children[i]); } } + + /** + * Replaces the characters that we must escape used for the created + * filename. + * + * @param string the <tt>String</tt> which is to have its characters escaped + * @return a <tt>String</tt> derived from the specified <tt>id</tt> by + * escaping characters + */ + public static String escapeFileNameSpecialCharacters(String string) + { + String resultId = string; + + for (int j = 0; j < ESCAPE_SEQUENCES.length; j++) + { + resultId = resultId. + replaceAll(ESCAPE_SEQUENCES[j][0], ESCAPE_SEQUENCES[j][1]); + } + return resultId; + } } diff --git a/src/net/java/sip/communicator/util/ImageUtils.java b/src/net/java/sip/communicator/util/ImageUtils.java index 002dcdea1..dd5933d3f 100644 --- a/src/net/java/sip/communicator/util/ImageUtils.java +++ b/src/net/java/sip/communicator/util/ImageUtils.java @@ -168,7 +168,7 @@ public static Image getScaledRoundedImage( Image image, g.setComposite(AlphaComposite.Src); AntialiasingManager.activateAntialiasing(g); g.setColor(Color.WHITE); - g.fillRoundRect(0, 0, scaledImageWidth, scaledImageHeight, 15, 15); + g.fillRoundRect(0, 0, scaledImageWidth, scaledImageHeight, 5, 5); // We use SrcAtop, which effectively uses the // alpha value as a coverage value for each pixel stored in the diff --git a/src/net/java/sip/communicator/util/UtilActivator.java b/src/net/java/sip/communicator/util/UtilActivator.java index e4f523b95..78d6c5e23 100644 --- a/src/net/java/sip/communicator/util/UtilActivator.java +++ b/src/net/java/sip/communicator/util/UtilActivator.java @@ -18,6 +18,7 @@ import net.java.sip.communicator.service.resources.*; import org.jitsi.service.configuration.*; +import org.jitsi.service.fileaccess.*; import org.jitsi.service.neomedia.*; import org.jitsi.service.resources.*; import org.osgi.framework.*; @@ -51,6 +52,8 @@ public class UtilActivator private static UIService uiService; + private static FileAccessService fileAccessService; + private static BundleContext bundleContext; /** @@ -238,6 +241,23 @@ public static UIService getUIService() return uiService; } + /** + * Returns the <tt>FileAccessService</tt> obtained from the bundle context. + * + * @return the <tt>FileAccessService</tt> obtained from the bundle context + */ + public static FileAccessService getFileAccessService() + { + if (fileAccessService == null) + { + fileAccessService + = ServiceUtils.getService( + bundleContext, + FileAccessService.class); + } + return fileAccessService; + } + /** * Returns the {@link MediaConfigurationService} instance registered in the * <tt>BundleContext</tt> of the <tt>UtilActivator</tt>. diff --git a/src/net/java/sip/communicator/util/swing/OrderedTransparentPanel.java b/src/net/java/sip/communicator/util/swing/OrderedTransparentPanel.java index 9cc93676f..ebc358e55 100644 --- a/src/net/java/sip/communicator/util/swing/OrderedTransparentPanel.java +++ b/src/net/java/sip/communicator/util/swing/OrderedTransparentPanel.java @@ -18,7 +18,7 @@ public class OrderedTransparentPanel extends TransparentPanel { private static final long serialVersionUID = 0L; - + public Component add(Component comp) { if(comp instanceof OrderedComponent) @@ -54,7 +54,7 @@ private Component addOrdered(Component comp) int cIx; if(c instanceof OrderedComponent) { - cIx = ((OrderedComponent)c).getIndex(); + cIx = ((OrderedComponent) c).getIndex(); if(orederIndex < cIx) { diff --git a/src/net/java/sip/communicator/util/swing/SIPCommButton.java b/src/net/java/sip/communicator/util/swing/SIPCommButton.java index cbdea5294..db40d4d58 100755 --- a/src/net/java/sip/communicator/util/swing/SIPCommButton.java +++ b/src/net/java/sip/communicator/util/swing/SIPCommButton.java @@ -221,19 +221,11 @@ private void internalPaintComponent(Graphics g) g.setColor(new Color(1.0f, 1.0f, 1.0f, visibility)); - if (this.bgImage != null) + if (this.bgImage == null + && (isContentAreaFilled() || (visibility != 0.0f))) { g.fillRoundRect( - this.getWidth() / 2 - this.bgImage.getWidth(null) / 2, - this.getHeight() / 2 - this.bgImage.getHeight(null) / 2, - bgImage.getWidth(null), - bgImage.getHeight(null), - 10, 10); - } - else if (isContentAreaFilled() || (visibility != 0.0f)) - { - g.fillRoundRect( - 0, 0, this.getWidth(), this.getHeight(), 10, 10); + 0, 0, this.getWidth(), this.getHeight(), 8, 8); } } diff --git a/src/net/java/sip/communicator/util/swing/SIPCommTextButton.java b/src/net/java/sip/communicator/util/swing/SIPCommTextButton.java index 14b130ee9..eb6fe7ce7 100644 --- a/src/net/java/sip/communicator/util/swing/SIPCommTextButton.java +++ b/src/net/java/sip/communicator/util/swing/SIPCommTextButton.java @@ -91,6 +91,16 @@ public void setBgImage(Image image) this.bgImage = image; } + /** + * Return the background image. + * + * @return the background image of this button + */ + public Image getBgImage() + { + return bgImage; + } + /** * Overrides the <code>paintComponent</code> method of <tt>JButton</tt> to * paint the button background and icon, and all additional effects of this diff --git a/src/net/java/sip/communicator/util/swing/SIPCommToggleButton.java b/src/net/java/sip/communicator/util/swing/SIPCommToggleButton.java index 6a1ca4631..a18e20759 100644 --- a/src/net/java/sip/communicator/util/swing/SIPCommToggleButton.java +++ b/src/net/java/sip/communicator/util/swing/SIPCommToggleButton.java @@ -234,12 +234,17 @@ else if (iconImage != null) } } + int bgWidth = (bgImage != null) + ? bgImage.getWidth(null) + : getWidth(); + int bgHeight = (bgImage != null) + ? bgImage.getHeight(null) + : getHeight(); + if (iconImageFinal != null) g.drawImage(iconImageFinal, - (this.bgImage.getWidth(null) - iconImageFinal - .getWidth(null)) / 2, (this.bgImage - .getHeight(null) - iconImageFinal - .getHeight(null)) / 2, this); + (bgWidth - iconImageFinal.getWidth(null)) / 2, + (bgHeight - iconImageFinal.getHeight(null)) / 2, this); } /** diff --git a/src/net/java/sip/communicator/util/swing/SoundLevelIndicator.java b/src/net/java/sip/communicator/util/swing/SoundLevelIndicator.java index 92b65dd2d..4e81bc9ff 100644 --- a/src/net/java/sip/communicator/util/swing/SoundLevelIndicator.java +++ b/src/net/java/sip/communicator/util/swing/SoundLevelIndicator.java @@ -32,11 +32,29 @@ public class SoundLevelIndicator */ private static final long serialVersionUID = 0L; - private static final String SOUND_LEVEL_ACTIVE - = "service.gui.soundlevel.SOUND_LEVEL_ACTIVE"; + private static final String SOUND_LEVEL_ACTIVE_LEFT + = "service.gui.soundlevel.SOUND_LEVEL_ACTIVE_LEFT"; - private static final String SOUND_LEVEL_INACTIVE - = "service.gui.soundlevel.SOUND_LEVEL_INACTIVE"; + private static final String SOUND_LEVEL_ACTIVE_LEFT_GRADIENT + = "service.gui.soundlevel.SOUND_LEVEL_ACTIVE_LEFT_GRADIENT"; + + private static final String SOUND_LEVEL_ACTIVE_MIDDLE + = "service.gui.soundlevel.SOUND_LEVEL_ACTIVE_MIDDLE"; + + private static final String SOUND_LEVEL_ACTIVE_RIGHT + = "service.gui.soundlevel.SOUND_LEVEL_ACTIVE_RIGHT"; + + private static final String SOUND_LEVEL_ACTIVE_RIGHT_GRADIENT + = "service.gui.soundlevel.SOUND_LEVEL_ACTIVE_RIGHT_GRADIENT"; + + private static final String SOUND_LEVEL_INACTIVE_LEFT + = "service.gui.soundlevel.SOUND_LEVEL_INACTIVE_LEFT"; + + private static final String SOUND_LEVEL_INACTIVE_MIDDLE + = "service.gui.soundlevel.SOUND_LEVEL_INACTIVE_MIDDLE"; + + private static final String SOUND_LEVEL_INACTIVE_RIGHT + = "service.gui.soundlevel.SOUND_LEVEL_INACTIVE_RIGHT"; /** * The maximum possible sound level. @@ -62,12 +80,42 @@ public class SoundLevelIndicator /** * Image when a sound level block is active */ - private ImageIcon soundLevelActiveImage; + private ImageIcon soundLevelActiveImageLeft; + + /** + * Image when a sound level block is active + */ + private ImageIcon soundLevelActiveImageLeftGradient; + + /** + * Image when a sound level block is active + */ + private ImageIcon soundLevelActiveImageMiddle; + + /** + * Image when a sound level block is active + */ + private ImageIcon soundLevelActiveImageRight; + + /** + * Image when a sound level block is active + */ + private ImageIcon soundLevelActiveImageRightGradient; + + /** + * Image when a sound level block is not active + */ + private ImageIcon soundLevelInactiveImageLeft; /** * Image when a sound level block is not active */ - private ImageIcon soundLevelInactiveImage; + private ImageIcon soundLevelInactiveImageMiddle; + + /** + * Image when a sound level block is not active + */ + private ImageIcon soundLevelInactiveImageRight; /** * Initializes a new <tt>SoundLevelIndicator</tt> instance. @@ -143,12 +191,42 @@ else if (soundLevel > maxSoundLevel) if (c instanceof JLabel) { + Icon activeIcon = null; + Icon inactiveIcon = null; + if (i == 0) + { + if (activeSoundBarCount == 1) + activeIcon = soundLevelActiveImageLeftGradient; + else + { + activeIcon = soundLevelActiveImageLeft; + inactiveIcon = soundLevelInactiveImageLeft; + } + } + else if (i == activeSoundBarCount - 1) + { + if (i == components.length - 1) + activeIcon = soundLevelActiveImageRight; + else + activeIcon = soundLevelActiveImageRightGradient; + } + else if (i == components.length - 1) + { + inactiveIcon = soundLevelInactiveImageRight; + } + else + { + activeIcon = soundLevelActiveImageMiddle; + inactiveIcon = soundLevelInactiveImageMiddle; + } + ((JLabel) c).setIcon( (i < activeSoundBarCount) - ? soundLevelActiveImage - : soundLevelInactiveImage); + ? activeIcon + : inactiveIcon); } } + repaint(); } @@ -183,7 +261,13 @@ public void setBounds(int x, int y, int width, int height) } while (soundBarCount < newSoundBarCount) { - JLabel soundBar = new JLabel(soundLevelInactiveImage); + JLabel soundBar; + if (soundBarCount == 0) + soundBar = new JLabel(soundLevelInactiveImageLeft); + else if (soundBarCount == newSoundBarCount - 1) + soundBar = new JLabel(soundLevelInactiveImageRight); + else + soundBar = new JLabel(soundLevelInactiveImageMiddle); soundBar.setVerticalAlignment(JLabel.CENTER); add(soundBar); @@ -206,7 +290,7 @@ public void setBounds(int x, int y, int width, int height) */ private int getSoundBarCount(int width) { - int soundBarWidth = soundLevelActiveImage.getIconWidth(); + int soundBarWidth = soundLevelActiveImageLeft.getIconWidth(); return width / soundBarWidth; } @@ -218,28 +302,43 @@ public void loadSkin() { ResourceManagementService resources = UtilActivator.getResources(); - soundLevelActiveImage = resources.getImage(SOUND_LEVEL_ACTIVE); - soundLevelInactiveImage = resources.getImage(SOUND_LEVEL_INACTIVE); + soundLevelActiveImageLeft + = resources.getImage(SOUND_LEVEL_ACTIVE_LEFT); + soundLevelActiveImageLeftGradient + = resources.getImage(SOUND_LEVEL_ACTIVE_LEFT_GRADIENT); + soundLevelActiveImageMiddle + = resources.getImage(SOUND_LEVEL_ACTIVE_MIDDLE); + soundLevelActiveImageRight + = resources.getImage(SOUND_LEVEL_ACTIVE_RIGHT); + soundLevelActiveImageRightGradient + = resources.getImage(SOUND_LEVEL_ACTIVE_RIGHT_GRADIENT); + + soundLevelInactiveImageLeft + = resources.getImage(SOUND_LEVEL_INACTIVE_LEFT); + soundLevelInactiveImageMiddle + = resources.getImage(SOUND_LEVEL_INACTIVE_MIDDLE); + soundLevelInactiveImageRight + = resources.getImage(SOUND_LEVEL_INACTIVE_RIGHT); if (!isPreferredSizeSet()) { int preferredHeight = 0; int preferredWidth = 0; - if (soundLevelActiveImage != null) + if (soundLevelActiveImageLeft != null) { - int height = soundLevelActiveImage.getIconHeight(); - int width = soundLevelActiveImage.getIconWidth(); + int height = soundLevelActiveImageLeft.getIconHeight(); + int width = soundLevelActiveImageLeft.getIconWidth(); if (preferredHeight < height) preferredHeight = height; if (preferredWidth < width) preferredWidth = width; } - if (soundLevelInactiveImage != null) + if (soundLevelInactiveImageLeft != null) { - int height = soundLevelInactiveImage.getIconHeight(); - int width = soundLevelInactiveImage.getIconWidth(); + int height = soundLevelInactiveImageLeft.getIconHeight(); + int width = soundLevelInactiveImageLeft.getIconWidth(); if (preferredHeight < height) preferredHeight = height; diff --git a/src/net/java/sip/communicator/util/swing/plaf/SIPCommTabbedPaneUI.java b/src/net/java/sip/communicator/util/swing/plaf/SIPCommTabbedPaneUI.java index 554119be6..93f7c6c95 100644 --- a/src/net/java/sip/communicator/util/swing/plaf/SIPCommTabbedPaneUI.java +++ b/src/net/java/sip/communicator/util/swing/plaf/SIPCommTabbedPaneUI.java @@ -78,7 +78,7 @@ public class SIPCommTabbedPaneUI public static final int BUTTONSIZE = 15; - public static final int WIDTHDELTA = 10; + public static final int WIDTHDELTA = 1; private static final Border PRESSEDBORDER = new SoftBevelBorder( SoftBevelBorder.LOWERED); @@ -237,9 +237,10 @@ protected void layoutLabel(int tabPlacement, FontMetrics metrics, tabPane.putClientProperty("html", null); - iconRect.x = tabRect.x + 5; + iconRect.y = iconRect.y + 2; + iconRect.x = tabRect.x + 7; + textRect.y = textRect.y + 2; textRect.x = iconRect.x + iconRect.width + 5; - } protected MouseListener createMouseListener() @@ -649,8 +650,7 @@ protected void paintTab(Graphics g, int tabPlacement, Rectangle[] rects, if (cropShape) { save = g2.getClip(); - g2 - .clipRect(tabRect.x, tabRect.y, tabRect.width, + g2.clipRect(tabRect.x, tabRect.y, tabRect.width, tabRect.height); } @@ -687,7 +687,7 @@ protected void paintTab(Graphics g, int tabPlacement, Rectangle[] rects, else if (isOver || isSelected) { int dx = tabRect.x + tabRect.width - BUTTONSIZE - WIDTHDELTA; - int dy = (tabRect.y + tabRect.height) / 2 - 7; + int dy = (tabRect.y + tabRect.height) / 2 - 3; if (isCloseButtonEnabled) paintCloseIcon(g2, dx, dy, isOver); diff --git a/src/net/java/sip/communicator/util/swing/plaf/SIPCommTextFieldUI.java b/src/net/java/sip/communicator/util/swing/plaf/SIPCommTextFieldUI.java index 5b6819746..1b1a6431c 100644 --- a/src/net/java/sip/communicator/util/swing/plaf/SIPCommTextFieldUI.java +++ b/src/net/java/sip/communicator/util/swing/plaf/SIPCommTextFieldUI.java @@ -183,7 +183,7 @@ protected void customPaintBackground(Graphics g) if(isRounded) { g2.fillRoundRect(1, 1, c.getWidth() - 1, c.getHeight() - 1, - 20, 20); + 8, 8); } else { @@ -225,8 +225,8 @@ protected void customPaintBackground(Graphics g) if(isRounded) { - g2.drawRoundRect(0, 0, c.getWidth() - 1, c.getHeight() - 1, - 20, 20); + g2.drawRoundRect( + 0, 0, c.getWidth() - 1, c.getHeight() - 1, 8, 8); } else { diff --git a/src/net/java/sip/communicator/util/util.manifest.mf b/src/net/java/sip/communicator/util/util.manifest.mf index 64557f4af..7e08cd4cd 100644 --- a/src/net/java/sip/communicator/util/util.manifest.mf +++ b/src/net/java/sip/communicator/util/util.manifest.mf @@ -41,6 +41,7 @@ Import-Package: com.sun.awt, org.jitsi.service.neomedia, org.jitsi.service.neomedia.codec, org.jitsi.service.resources, + org.jitsi.service.fileaccess, org.jitsi.util, org.jitsi.util.event, org.jitsi.util.swing,