Download MetaTrader 5

Watch how to download trading robots for free

Interesting script?
So post a link to it -
let others appraise it

You liked the script? Try it in the MetaTrader 5 terminal

Libraries

Notify Icon - library for MetaTrader 5

| English Русский 中文 Deutsch 日本語 Português

Views:
354
Rating:
votes: 21
Published:
2017.11.03 12:35
Updated:
2017.11.09 08:45

This library provides every MQL program with a separate icon in the notification area of the Windows taskbar. The library enables you to display text messages by sending them from your programs, or to use the icon to indicate a specific program status. The library operation is based on the Shell_NotifyIcon icon. For convenience, the CNotifyIcon class has been created allowing to hide the details of operations with Windows API functions and providing a set of methods for working with three functional elements, including the icon, the notification balloon and the tooltip.

The icon and the notification balloon are shown in Figure 1.

Example of an icon and a notification balloon

Fig. 1. Example of an icon and a notification balloon

A tooltip appears when you hover the mouse over the icon. An example of the tooltip is shown in Figure 2.</t1>

An example of a tooltip

Fig. 2. An example of a tooltip

The library works stably on systems starting with Windows 7/Windows Server 2008 R2.


Icon

The icon size depends on DPI set in the screen settings in your operating system. 96 DPI is used by default, which corresponds to the 16x16 icon size. You need to know this in order to upload images of the appropriate size. In this case, your images will not be additionally converted by the system and, therefore, will not be distorted. It is not possible to upload an image of a smaller size.

You can find out the required image size by calling the GetSystemSize() function.

int icon_size = CNotifyIcon::GetSystemSize(ICON_SMALL);

In order to not to create images for every DPI value, you can prepare one size, say 24x24 (maximum DPI is 144) or 32x32 (maximum DPI is 240). Thus you can ensure compatibility with most users, but in this case the image will be automatically converted (size will be reduced) and can therefore be distorted. The examples show images in BMP with a size of 32x32 and a 32-bit color depth (with transparency).

There are five ways to upload an image for the icon:

  1. The first and most obvious way is to upload from a file. In this case, the file can be located outside the file sandbox of the terminal.

    CNotifyIcon notify_icon;
    
    notify_icon.Icon.LoadFromFile("D:\\Images\\indicator32.bmp");
    
  2. The second way is to upload from a resource.

    #resource "\\Images\\Indicator32.bmp"
    
    notify_icon.Icon.LoadFromResource("::Images\\Indicator32.bmp");
    
  3. The third way is to upload a one-dimensional array. Within this method, an image is preliminary converted into a one-dimensional array of RGBQUAD structures.

    
    const uint icon_array32[1024]=
      {
       0x00FFFFFF,0xFFB7B6B3,0xFFB7B6B3,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB7B6B3,0xFFB7B6B3,0x00FFFFFF,
       0x00FFFFFF,0xFFB7B6B3,0xFFB7B6B3,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB7B6B3,0xFFB7B6B3,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB79012,0xFFB79012,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFD8D1B7,0xFFD8D1B7,0xFF625F53,0xFF625F53,0xFF57544A,0xFF57544A,0xFF57544A,0xFF535046,0xFF535046,0xFFFFF7D8,0xFFFFF7D8,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB79012,0xFFB79012,0x00FFFFFF,
       0x00FFFFFF,0xFFB79012,0xFFB79012,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFD8D1B7,0xFFD8D1B7,0xFF625F53,0xFF625F53,0xFF57544A,0xFF57544A,0xFF57544A,0xFF535046,0xFF535046,0xFFFFF7D8,0xFFFFF7D8,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB79012,0xFFB79012,0x00FFFFFF,
       0x00FFFFFF,0xFFB58E11,0xFFB58E11,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFF9ECB9,0xFFF9ECB9,0xFF605B47,0xFF605B47,0xFF8D8669,0xFF8D8669,0xFFF2E6B3,0xFFF2E6B3,0xFFF2E6B3,0xFFEDE1B0,0xFFEDE1B0,0xFFEEE2B0,0xFFEEE2B0,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB58E11,0xFFB58E11,0x00FFFFFF,
       0x00FFFFFF,0xFFB58E11,0xFFB58E11,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFF9ECB9,0xFFF9ECB9,0xFF605B47,0xFF605B47,0xFF8D8669,0xFF8D8669,0xFFF2E6B3,0xFFF2E6B3,0xFFF2E6B3,0xFFEDE1B0,0xFFEDE1B0,0xFFEEE2B0,0xFFEEE2B0,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB58E11,0xFFB58E11,0x00FFFFFF,
       0x00FFFFFF,0xFFB28C10,0xFFB28C10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFEC9F,0xFFFFEC9F,0xFFFBE89D,0xFFFBE89D,0xFFDDCD8A,0xFFDDCD8A,0xFFDDCD8A,0xFFB2A56F,0xFFB2A56F,0xFF4C462F,0xFF4C462F,0xFFCEBF80,0xFFCEBF80,0xFFF2E097,0xFFF2E097,0xFFF2E097,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB28C10,0xFFB28C10,0x00FFFFFF,
       0x00FFFFFF,0xFFB28C10,0xFFB28C10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFEC9F,0xFFFFEC9F,0xFFFBE89D,0xFFFBE89D,0xFFDDCD8A,0xFFDDCD8A,0xFFDDCD8A,0xFFB2A56F,0xFFB2A56F,0xFF4C462F,0xFF4C462F,0xFFCEBF80,0xFFCEBF80,0xFFF2E097,0xFFF2E097,0xFFF2E097,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB28C10,0xFFB28C10,0x00FFFFFF,
       0x00FFFFFF,0xFFB28C10,0xFFB28C10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFEC9F,0xFFFFEC9F,0xFFFBE89D,0xFFFBE89D,0xFFDDCD8A,0xFFDDCD8A,0xFFDDCD8A,0xFFB2A56F,0xFFB2A56F,0xFF4C462F,0xFF4C462F,0xFFCEBF80,0xFFCEBF80,0xFFF2E097,0xFFF2E097,0xFFF2E097,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB28C10,0xFFB28C10,0x00FFFFFF,
       0x00FFFFFF,0xFFAF890F,0xFFAF890F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE680,0xFFFFE680,0xFFEDD677,0xFFEDD677,0xFF695F35,0xFF695F35,0xFF695F35,0xFF514929,0xFF514929,0xFF544C2A,0xFF544C2A,0xFF655B33,0xFF655B33,0xFFBAA85D,0xFFBAA85D,0xFFBAA85D,0xFFFFE680,0xFFFFE680,0xFFFFE680,0xFFFFE680,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFAF890F,0xFFAF890F,0x00FFFFFF,
       0x00FFFFFF,0xFFAF890F,0xFFAF890F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE680,0xFFFFE680,0xFFEDD677,0xFFEDD677,0xFF695F35,0xFF695F35,0xFF695F35,0xFF514929,0xFF514929,0xFF544C2A,0xFF544C2A,0xFF655B33,0xFF655B33,0xFFBAA85D,0xFFBAA85D,0xFFBAA85D,0xFFFFE680,0xFFFFE680,0xFFFFE680,0xFFFFE680,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFAF890F,0xFFAF890F,0x00FFFFFF,
       0x00FFFFFF,0xFFAB860D,0xFFAB860D,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFF9DA5E,0xFFF9DA5E,0xFFF9DA5E,0xFF635725,0xFF635725,0xFFAC9641,0xFFAC9641,0xFFFBDC5E,0xFFFBDC5E,0xFFFEDE60,0xFFFEDE60,0xFFFEDE60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFAB860D,0xFFAB860D,0x00FFFFFF,
       0x00FFFFFF,0xFFAB860D,0xFFAB860D,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFF9DA5E,0xFFF9DA5E,0xFFF9DA5E,0xFF635725,0xFF635725,0xFFAC9641,0xFFAC9641,0xFFFBDC5E,0xFFFBDC5E,0xFFFEDE60,0xFFFEDE60,0xFFFEDE60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFAB860D,0xFFAB860D,0x00FFFFFF,
       0x00FFFFFF,0xFFA7830C,0xFFA7830C,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFE6C43C,0xFFE6C43C,0xFFE6C43C,0xFF524615,0xFF524615,0xFFDDBC39,0xFFDDBC39,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA7830B,0xFFA7830B,0x00FFFFFF,
       0x00FFFFFF,0xFFA7830C,0xFFA7830C,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFE6C43C,0xFFE6C43C,0xFFE6C43C,0xFF524615,0xFF524615,0xFFDDBC39,0xFFDDBC39,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA7830B,0xFFA7830B,0x00FFFFFF,
       0x00FFFFFF,0xFFA7830C,0xFFA7830C,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFE6C43C,0xFFE6C43C,0xFFE6C43C,0xFF524615,0xFF524615,0xFFDDBC39,0xFFDDBC39,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA7830B,0xFFA7830B,0x00FFFFFF,
       0x00FFFFFF,0xFFA4800B,0xFFA4800B,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFB7981C,0xFFB7981C,0xFFB7981C,0xFF5C4C0E,0xFF5C4C0E,0xFFFBD126,0xFFFBD126,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA47F0A,0xFFA47F0A,0x00FFFFFF,
       0x00FFFFFF,0xFFA4800B,0xFFA4800B,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFB7981C,0xFFB7981C,0xFFB7981C,0xFF5C4C0E,0xFF5C4C0E,0xFFFBD126,0xFFFBD126,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA47F0A,0xFFA47F0A,0x00FFFFFF,
       0x00FFFFFF,0xFFA07C09,0xFFA07C09,0xFFFDCA00,0xFFFDCA00,0xFFFDCA00,0xFFFFCF10,0xFFFFCF10,0xFFF7C90F,0xFFF7C90F,0xFF675406,0xFF675406,0xFF675406,0xFF917609,0xFF917609,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA07D09,0xFFA07D09,0x00FFFFFF,
       0x00FFFFFF,0xFFA07C09,0xFFA07C09,0xFFFDCA00,0xFFFDCA00,0xFFFDCA00,0xFFFFCF10,0xFFFFCF10,0xFFF7C90F,0xFFF7C90F,0xFF675406,0xFF675406,0xFF675406,0xFF917609,0xFF917609,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA07D09,0xFFA07D09,0x00FFFFFF,
       0x00FFFFFF,0xFF9D7A08,0xFF9D7A08,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF715A00,0xFF715A00,0xFF624E00,0xFF624E00,0xFF624E00,0xFF624E00,0xFF624E00,0xFFEABB00,0xFFEABB00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9D7A08,0xFF9D7A08,0x00FFFFFF,
       0x00FFFFFF,0xFF9D7A08,0xFF9D7A08,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF715A00,0xFF715A00,0xFF624E00,0xFF624E00,0xFF624E00,0xFF624E00,0xFF624E00,0xFFEABB00,0xFFEABB00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9D7A08,0xFF9D7A08,0x00FFFFFF,
       0x00FFFFFF,0xFF9A7807,0xFF9A7807,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE270,0xFFFFE270,0xFFFFE787,0xFFFFE787,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFF6D1,0xFFFFF6D1,0xFFFFF9E2,0xFFFFF9E2,0xFFFFF6D1,0xFFFFF6D1,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFE787,0xFFFFE787,0xFFFFE270,0xFFFFE270,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9A7807,0xFF9A7807,0x00FFFFFF,
       0x00FFFFFF,0xFF9A7807,0xFF9A7807,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE270,0xFFFFE270,0xFFFFE787,0xFFFFE787,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFF6D1,0xFFFFF6D1,0xFFFFF9E2,0xFFFFF9E2,0xFFFFF6D1,0xFFFFF6D1,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFE787,0xFFFFE787,0xFFFFE270,0xFFFFE270,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9A7807,0xFF9A7807,0x00FFFFFF,
       0x00FFFFFF,0xFF9A7807,0xFF9A7807,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE270,0xFFFFE270,0xFFFFE787,0xFFFFE787,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFF6D1,0xFFFFF6D1,0xFFFFF9E2,0xFFFFF9E2,0xFFFFF6D1,0xFFFFF6D1,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFE787,0xFFFFE787,0xFFFFE270,0xFFFFE270,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9A7807,0xFF9A7807,0x00FFFFFF,
       0x00FFFFFF,0xFF9A978C,0xFF9A978C,0xFF987605,0xFF987605,0xFF987605,0xFF987605,0xFF987605,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987605,0xFF987605,0xFF987605,0xFF987506,0xFF987506,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF9A978C,0xFF9A978C,0x00FFFFFF,
       0x00FFFFFF,0xFF9A978C,0xFF9A978C,0xFF987605,0xFF987605,0xFF987605,0xFF987605,0xFF987605,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987605,0xFF987605,0xFF987605,0xFF987506,0xFF987506,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF9A978C,0xFF9A978C,0x00FFFFFF
      };
    
    notify_icon.Icon.LoadFromArray(32,32,icon_array32);
    
  4. The fourth way is to upload from a string in Base64 encoding. BMP images can be converted to string using any online converter. The part of the string without the header (shown in red) is passed to the function:

    data:image/bmp;base64,Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAQAADDDgAAww4AAAAAAAAAAAAA...
    notify_icon.Icon.LoadFromBase64("Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAQAADDDgAAww4AAAAAAAAAAAAA////AIyXmv+Ml5r/BXaY/wV2mP8Fdpj/BXaY/wV2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wV2mP8Fdpj/BXaY/wZ1mP8GdZj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP+Ml5r/jJea/////wD///8AjJea/4yXmv8Fdpj/BXaY/wV2mP8Fdpj/BXaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BXaY/wV2mP8Fdpj/BnWY/wZ1mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/4yXmv+Ml5r/////AP///wAHeJr/B3ia/wDM//8AzP//AMz//3Di//9w4v//h+f//4fn//+t7v//re7//63u///R9v//0fb//+L5///i+f//0fb//9H2//+t7v//re7//63u//+H5///h+f//3Di//9w4v//AMz//wDM//8AzP//B3ia/wd4mv////8A////AAd4mv8HeJr/AMz//wDM//8AzP//cOL//3Di//+H5///h+f//63u//+t7v//re7//9H2///R9v//4vn//+L5///R9v//0fb//63u//+t7v//re7//4fn//+H5///cOL//3Di//8AzP//AMz//wDM//8HeJr/B3ia/////wD///8AB3ia/wd4mv8AzP//AMz//wDM//9w4v//cOL//4fn//+H5///re7//63u//+t7v//0fb//9H2///i+f//4vn//9H2///R9v//re7//63u//+t7v//h+f//4fn//9w4v//cOL//wDM//8AzP//AMz//wd4mv8HeJr/////AP///wAIep3/CHqd/wDM//8AzP//AMz//wBacf8AWnH/AE5i/wBOYv8ATmL/AE5i/wBOYv8Au+r/ALvq/wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//CHqd/wh6nf////8A////AAh6nf8Iep3/AMz//wDM//8AzP//AFpx/wBacf8ATmL/AE5i/wBOYv8ATmL/AE5i/wC76v8Au+r/AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8Iep3/CHqd/////wD///8ACXyg/wl8oP8Ayv3/AMr9/wDK/f8Qz///EM///w/J9/8Pyff/BlRn/wZUZ/8GVGf/CXaR/wl2kf8Qz///EM///xDP//8Qz///EM///xDP//8Qz///EM///xDP//8Qz///EM///wDM//8AzP//AMz//wl9oP8JfaD/////AP///wAJfKD/CXyg/wDK/f8Ayv3/AMr9/xDP//8Qz///D8n3/w/J9/8GVGf/BlRn/wZUZ/8JdpH/CXaR/xDP//8Qz///EM///xDP//8Qz///EM///xDP//8Qz///EM///xDP//8Qz///AMz//wDM//8AzP//CX2g/wl9oP////8A////AAuApP8LgKT/AMz//wDM//8AzP//J9T//yfU//8n1P//J9T//xyYt/8cmLf/HJi3/w5MXP8OTFz/JtH7/ybR+/8n1P//J9T//yfU//8n1P//J9T//yfU//8n1P//J9T//yfU//8AzP//AMz//wDM//8Kf6T/Cn+k/////wD///8AC4Ck/wuApP8AzP//AMz//wDM//8n1P//J9T//yfU//8n1P//HJi3/xyYt/8cmLf/Dkxc/w5MXP8m0fv/JtH7/yfU//8n1P//J9T//yfU//8n1P//J9T//yfU//8n1P//J9T//wDM//8AzP//AMz//wp/pP8Kf6T/////AP///wAMg6f/DIOn/wDM//8AzP//AMz//0LZ//9C2f//Qtn//0LZ//88xOb/PMTm/zzE5v8VRlL/FUZS/zm83f85vN3/Qtn//0LZ//9C2f//Qtn//0LZ//9C2f//Qtn//0LZ//9C2f//AMz//wDM//8AzP//C4On/wuDp/////8A////AAyDp/8Mg6f/AMz//wDM//8AzP//Qtn//0LZ//9C2f//Qtn//zzE5v88xOb/PMTm/xVGUv8VRlL/Obzd/zm83f9C2f//Qtn//0LZ//9C2f//Qtn//0LZ//9C2f//Qtn//0LZ//8AzP//AMz//wDM//8Lg6f/C4On/////wD///8ADIOn/wyDp/8AzP//AMz//wDM//9C2f//Qtn//0LZ//9C2f//PMTm/zzE5v88xOb/FUZS/xVGUv85vN3/Obzd/0LZ//9C2f//Qtn//0LZ//9C2f//Qtn//0LZ//9C2f//Qtn//wDM//8AzP//AMz//wuDp/8Lg6f/////AP///wANhqv/DYar/wDM//8AzP//AMz//2Df//9g3///YN///2Df//9e2vn/Xtr5/17a+f8lV2P/JVdj/0GWrP9Blqz/Xtz7/17c+/9g3v7/YN7+/2De/v9g3///YN///2Df//9g3///AMz//wDM//8AzP//DYar/w2Gq/////8A////AA2Gq/8Nhqv/AMz//wDM//8AzP//YN///2Df//9g3///YN///17a+f9e2vn/Xtr5/yVXY/8lV2P/QZas/0GWrP9e3Pv/Xtz7/2De/v9g3v7/YN7+/2Df//9g3///YN///2Df//8AzP//AMz//wDM//8Nhqv/DYar/////wD///8AD4mv/w+Jr/8AzP//AMz//wDM//+A5v//gOb//3fW7f931u3/NV9p/zVfaf81X2n/KUlR/ylJUf8qTFT/KkxU/zNbZf8zW2X/Xai6/12ouv9dqLr/gOb//4Dm//+A5v//gOb//wDM//8AzP//AMz//w+Jr/8Pia//////AP///wAPia//D4mv/wDM//8AzP//AMz//4Dm//+A5v//d9bt/3fW7f81X2n/NV9p/zVfaf8pSVH/KUlR/ypMVP8qTFT/M1tl/zNbZf9dqLr/Xai6/12ouv+A5v//gOb//4Dm//+A5v//AMz//wDM//8AzP//D4mv/w+Jr/////8A////ABCMsv8QjLL/AMz//wDM//8AzP//n+z//5/s//+d6Pv/nej7/4rN3f+Kzd3/is3d/2+lsv9vpbL/L0ZM/y9GTP+Av87/gL/O/5fg8v+X4PL/l+Dy/5/s//+f7P//n+z//5/s//8AzP//AMz//wDM//8QjLL/EIyy/////wD///8AEIyy/xCMsv8AzP//AMz//wDM//+f7P//n+z//53o+/+d6Pv/is3d/4rN3f+Kzd3/b6Wy/2+lsv8vRkz/L0ZM/4C/zv+Av87/l+Dy/5fg8v+X4PL/n+z//5/s//+f7P//n+z//wDM//8AzP//AMz//xCMsv8QjLL/////AP///wAQjLL/EIyy/wDM//8AzP//AMz//5/s//+f7P//nej7/53o+/+Kzd3/is3d/4rN3f9vpbL/b6Wy/y9GTP8vRkz/gL/O/4C/zv+X4PL/l+Dy/5fg8v+f7P//n+z//5/s//+f7P//AMz//wDM//8AzP//EIyy/xCMsv////8A////ABGOtf8RjrX/AMz//wDM//8AzP//vfL//73y//+98v//vfL//73y//+98v//vfL//7ns+f+57Pn/R1tg/0dbYP9pho3/aYaN/7Pm8v+z5vL/s+by/7Dh7f+w4e3/sOLu/7Di7v8AzP//AMz//wDM//8RjrX/EY61/////wD///8AEY61/xGOtf8AzP//AMz//wDM//+98v//vfL//73y//+98v//vfL//73y//+98v//uez5/7ns+f9HW2D/R1tg/2mGjf9pho3/s+by/7Pm8v+z5vL/sOHt/7Dh7f+w4u7/sOLu/wDM//8AzP//AMz//xGOtf8RjrX/////AP///wASkLf/EpC3/wDM//8AzP//AMz//9j3///Y9///2Pf//9j3///Y9///2Pf//9j3///Y9///2Pf//7fR2P+30dj/U19i/1NfYv9KVFf/SlRX/0pUV/9GUFP/RlBT/9j3///Y9///AMz//wDM//8AzP//EpC3/xKQt/////8A////ABKQt/8SkLf/AMz//wDM//8AzP//2Pf//9j3///Y9///2Pf//9j3///Y9///2Pf//9j3///Y9///t9HY/7fR2P9TX2L/U19i/0pUV/9KVFf/SlRX/0ZQU/9GUFP/2Pf//9j3//8AzP//AMz//wDM//8SkLf/EpC3/////wD///8AE5K5/xOSuf8AzP//AMz//wDM///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//wDM//8AzP//AMz//xOSuf8Tkrn/////AP///wATkrn/E5K5/wDM//8AzP//AMz//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//AMz//wDM//8AzP//E5K5/xOSuf////8A////ABOSuf8Tkrn/AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8Tkrn/E5K5/////wD///8AE5K5/xOSuf8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//xOSuf8Tkrn/////AP///wATkrn/E5K5/wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//E5K5/xOSuf////8A////ALO2t/+ztrf/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf+ztrf/s7a3/////wD///8As7a3/7O2t/8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/7O2t/+ztrf/////AA==");
  5. The fifth and final method assumes that you have DLL, in which images are saved as a resource. Images are uploaded based on the resource number. As an example, we used the system shell32.dll, in which a lot of Windows icons are stored.

    string str_path;
    StringInit(str_path,MAX_PATH);
    kernel32::GetSystemDirectoryW(str_path,MAX_PATH);
    
    notify_icon.Icon.LoadFromDLL(str_path+"\\shell32.dll",21);
    

Initially, an invisible icon is created. You need to call the Show() method in order to display it.

notify_icon.Show();

To hide an icon, call the Hide() method.

notify_icon.Hide();


A Notification Balloon

The icon for the balloon can be in two sizes: SMALL and LARGE. Upload methods are those that were used for icons. If you choose to work with a small icon (SMALL), then the image size must strictly correspond to the system set size, otherwise it will not be displayed. That's why I recommend using a large icon size for the balloon or using any of the built-in icon types (NIIF_INFO, NIIF_WARNING, NIIF_ERROR).

The size of the uploaded image must not be less than the value returned by GetSystemSize().

int balloon_icon_size = CNotifyIcon::GetSystemSize(ICON_LARGE);

To display the balloon, call the Show() method.

notify_icon.Balloon.Show("my message","my title",NIIF_USER,ICON_LARGE,3000);

Call Hide() to hide it.

notify_icon.Balloon.Hide();

Low values of time intervals in the Show() method are not processed by the system (the minimum delay is about 10 seconds). In order to overcome this restriction, we need to start the timer and call the Hide() method. The algorithm is implemented inside the DoTimer() function.

void OnTimer()
  {
   notify_icon.DoTimer();
  }


A Tooltip

A tooltip is shown when you hover the mouse over the icon. The tooltip text can have several lines separated by "\n".

notify_icon.ToolTip("My Indicator\nShow the ToolTip");

Below I provide an example of how to use the library with an indicator. The color of the icon indicates the values of iSAR. Blue means an upward movement, red means a downward direction. Balloons are shown when direction changes.

//+------------------------------------------------------------------+
//|                                    NotifyIcon_Test_Indicator.mq5 |
//+------------------------------------------------------------------+
#property copyright "avoitenko"
#property link      "https://www.mql5.com/en/users/avoitenko"
#property version   "1.00"

#property indicator_chart_window

#property indicator_buffers 2
#property indicator_plots 1

#property indicator_type1  DRAW_COLOR_ARROW
#property indicator_color1 clrDodgerBlue,clrOrangeRed
#property indicator_width1 2
#property indicator_style1 STYLE_SOLID
#property indicator_label1 "SAR"

#define BALLOON_TITLE "Parabolic SAR Event"

#include <NotifyIcon.mqh>

//--- input parameters
input uint   InpUniqueID = 1;   // Unique ID
input double InpSarStep  = 0.02;// SAR Step
input double InpSarMax   = 0.2; // SAR Maximum

//---
double SarBuffer[];
double ColorBuffer[];

//---
int sar_handle;
datetime time_alert;
CNotifyIcon notify_icon(InpUniqueID);
//+------------------------------------------------------------------+
int OnInit()
  {
//--- get SAR handle   
   sar_handle=iSAR(NULL,0,InpSarStep,InpSarMax);
   if(sar_handle==INVALID_HANDLE)
      return(INIT_FAILED);

//--- use buffers
   SetIndexBuffer(0,SarBuffer);
   SetIndexBuffer(1,ColorBuffer,INDICATOR_COLOR_INDEX);
   ArraySetAsSeries(SarBuffer,true);
   ArraySetAsSeries(ColorBuffer,true);

//--- set arrow code
   PlotIndexSetInteger(0,PLOT_ARROW,159);

   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);

//--- set tooltip
   notify_icon.ToolTip("Indicator ID#"+IntegerToString(InpUniqueID)+"\nParabolic SAR");

//--- load 64x64 large icon
   bool res=notify_icon.Balloon.Icon_Large.LoadFromBase64("Qk02QAAAAAAAADYAAAAoAAAAQAAAAEAAAAABACAAAAAAAABAAADDDgAAww4AAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Qv///1i3zdPjZaa4/1mgsf98p7X/u8zS/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD8/P1V8fX2hNbg48dql6X/VsXZ/4Xj9P+i5vX/jtbn/16ww/9LjqH/k7K7/9rj5uP///+E////Hf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AzNjdMqi9xeMvXnL/Pp63/7H5///Y9f//0PP9/9X4///W+v//tO/8/3nG2P9Nl6v/aJmn/7rL0f/09/g7////NP///wz///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDy9fYd0d3gFrzN0o5Bb4D/DVNr/4Pa6v/Z+f//wuv4/8Hs+P/B7fj/wu75/830/v/S+///xPf//5jb7f9Qpb3/SImc/4mrtf/a4+bj////Tv///xf///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AO/z9GeNq7T/DUVb/xVqhf+x+P//0fD7/7rr+P+87Pj/vO34/73t+P++7fj/vuv5/8bv+//R+P//yfn//6Ho+P9pvNL/Oo2j/2KTof+xxczj8fT1WP///0v///8M////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTnuM/wxEXP8abIT/tfj//8zv+v+26/j/uez5/7rs+P+77Pj/vOv4/73s+f+97fn/v+35/7zs+f/B8f3/xfj//7Hw/v+E0+f/T6S5/0qLnv+HqLT/1uDjl////3H///87////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUZ3iv8JQ1z/GmyE/7P3///H7vr/suv4/7Xr+P+36vj/uOv4/7nr+f+77fn/vOz5/7/s+f+57Pj/tOr3/7br9/+67Pn/w/P+/770//+d4vP/aLzR/zuNpP9ikqD/pr3F/+7x8zX///8w////GP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FPfpH/B0Nc/xpuiP+x9v//we35/67q9/+y6ff/s+r4/7Xq9/+36/f/uez4/7rr+P+97Pn/uuz4/7Pq+P+06vf/ter3/7Pr9/+26/j/v/D9/8X4//+w8v//gdLm/0uguP87gpb/eJyn/8bT2P////9O////If///wL///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTn6R/wdGX/8ccY3/r/X//77t+f+r6ff/sOn4/7Hq+P+z6vf/tuv3/7jr+P+66/j/ve34/7vt+P+z6vj/tOr4/7Xr+P+16/j/tev4/7Tq+P+y6vf/uez5/8H1//+79v//leL0/1+4zv8yhJz/TIOT/6K4wP/q7/Fh////cf///yb///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cU18kf8HRmH/HXKP/671//+77Pj/qOj2/63o9/+w6Pj/sur4/7Xr9/+47Pj/uuz4/77t+P+97fn/suv3/7Xs9/+27Pj/tuv4/7Xr+P+16/j/tev4/7Tr+P+z6vf/s+r3/7vw/f+89v//p+7//3fM4f9Am7H/MHiM/2+Uof/H1Nnj////U////yD///8B////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FNe5H/BUVh/x9yjv+v9v//uOr4/6bn9/+r5/f/run3/7Lq+P+06vf/t+v4/7rs+P/D8///yfn//7rz//+47fn/t+r4/7fr+P+36/j/tuz4/7bs+P+16/j/tOv4/7Lq+P+v6ff/run3/7Ps+f+48///sfT//43f8/9UsMb/JXyS/0d+j/+iuL//6+/xsf///xz///8C////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTXyR/wZHYf8gdI//rfX//7Tq+f+n5/f/qef3/6zp9/+w6fj/tOr3/7fs+P+87/v/st7o/7HY4v+36vX/xf///8n///+98P7/uuv5/7rs+P+47Pj/t+z4/7br+P+06/j/sOr3/67p9/+s6ff/quj3/6rn9/+v7Pv/sfP//5zr/P9rxt3/M4+q/zB0if91maT/093h4////0////8J////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cU1/kv8GSWL/IXmR/6v1//+w6fn/oeb2/6jn9/+r6Pf/r+n4/7Pr+P+17Pf/1P///3mFh/8QDAz/Ly8w/1ZkZ/+UuL7/y////8j8//+87fn/vO35/7vt+P+57Pj/tuz4/7Pq+P+w6vf/run3/6vp9/+p6Pf/pef2/6Tn9v+n6Pf/rvH//6Tx//+C3PD/SarA/yF2jf9QgpL/p7zE4/b4+Tv///8R////Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FNfZP/Bklk/yR1kv+q9f//q+r4/57m9v+m5vb/qej2/67p9/+z6/j/tOr3/9n///+7v8H/Ew8O/yglJP8dGBf/GhUU/0dRVP+w2d//0v///7/u+f+97vn/u+35/7nt+f+26/j/suv4/7Dq9/+t6ff/qen3/6fo9/+j5vb/oOb1/57l9f+f5fb/puv8/6bz//+P5v3/X8Pa/yqIof80d4v/lrC4/+Dn6uP///9D////Bv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTX2T/wZIZP8ldZP/qvX//6fp+P+b5fb/o+b2/6no9v+u6ff/s+v4/7fs9//H9///4u/z/ygmJv8cHBz/MDAw/y4uLP8cFhb/Jycm/6TJz//U////wfD5/7/u+f+87vn/uO34/7Xs+P+y6/j/rur3/6rp9/+n6Pf/pOf3/6Hm9f+d5fb/m+X1/5jj9f+W4/X/m+b3/5/t//+U7P//b9Pq/zWas/9nkZ7/o7e/qsXT2Anw9PVM////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cU19k/8GSGT/JnaT/6n1//+i6Pf/m+T2/6Hn9v+n5/b/ren3/7Lr+P+47ff/vfD7//L///9TT0//AAAA/wwMDP8kJCT/LzEx/yEfH/8hHh//o8bO/9H////C8Pn/v/D5/7vu+P+37fj/tO34/7Dr9/+s6vf/qOn3/6Xo9/+i5/b/nub1/5vl9f+Y5PX/lOP1/5Lh9P+Q4fT/kuL1/5bo+/+V7///TK3F/4eos/+9zNIr3+fpTP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FNfZL/Bkhj/yd2kv+p9///n+j3/5bl9v+f5/b/puf2/6vp9/+y6/j/uO34/7ru+P/V+v//1uHh/7KurP94eXn/FhUV/x0dHf8wMTH/Hxoa/zI3Nf/J8vr/zPv//8Lw+f+/7vn/uu/4/7ft+P+z7Pj/r+v3/6rq9/+m6Pf/ouf3/57m9v+b5vX/l+X1/5Ti9f+R4fT/juH1/4zg9P+J3/P/jOL1/43m/P91t8j/////qv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTH2S/wVHY/8odpH/q/f//5zn9/+X5Pb/neb2/6Tn9v+p6Pb/sOr4/7ft+P+97vj/we/5/9X9///q/////f///87Pzv8mIyP/ICAg/zIyMv8WEBD/Znd5/97////E8fr/wvD5/73v+P+67vj/te34/7Hs+P+s6vf/qOn3/6Tp9v+f5/b/m+X1/5jl9f+U4/X/keL0/43h9P+L4PP/iN/z/4Xe8/+I4fj/b9Dm/+bx9Mf///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUx9k/8FR2P/KHeS/6r1//+Z5/f/lOT2/5vl9v+i5/b/qej2/7Dq+P+27Pj/vO74/8Lv+f/H8fr/yPL6/8Tz/P/9////sLGy/w8ODv8tLi7/KScm/xwaGv+52t3/1f///8bx+v/C8Pn/vvD5/7nu+f+17fn/r+z3/6rq9/+l6ff/oOj2/53m9f+X5vX/lOP1/5Di9P+M4fT/ieHz/4bf8/+D3vP/gd70/3DU7P/D6PL/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FMf5L/BEZj/yh1kf+q9///l+f3/5Lk9v+a5ff/oOf2/6jn9/+v6vj/tu34/7zu+P/D7/n/yPL6/9Hz+//I8vr/zvn///z///9IRET/Ghoa/zAxMf8WEBD/bX1//+H////K8/v/xfL6/8Lw+f+87/j/t+75/7Ps+P+t6/f/p+r3/6Po9/+e5vX/mOX1/5Tj9P+Q4vT/jOH0/4jf8/+F3/P/gN3z/37e8v9w1+//l9Xk/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTH6S/wRGY/8pdZL/q/b//5Pm9v+R4/X/mOb2/6Dn9v+n6Pb/rur3/7bt+f+87vj/wu/5/8jx+v/O9Pv/zvT7/8Xw+//2////oaOj/xAQEP8xMjL/Ix8f/y0uMP/Q9Pv/0/v//8jy+v/E8vn/wPD5/7rv+f+27fj/r+z3/6rq9/+l6ff/n+f2/5rm9f+V4/X/kOL0/4vh9P+I4PP/hN7z/4Dd8/983PL/cNjw/43V5v/+/v44////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUt/kv8DR2P/KXiS/6v1//+R5/f/kOP1/5fl9v+e5/f/p+n3/67r+P+17Pn/u+75/8Hw+f/J8vr/zvP7/9L0+//J8/r/3v///+Pp6f8lJCT/Jicn/y4uLv8RDg3/nbO0/+T////L8/r/yPP6/8Px+v++8Pr/ue75/7Pt+P+s6/f/p+n3/6Ho9v+b5vb/luX1/5Hi9P+M4fT/h9/z/4Le8/9/3fL/e9zy/23Y8f+K1uj//v7+OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FLfZL/A0dj/yl4kf+q9f//kOf3/4/j9f+X5vb/nuf3/6bp9v+t6vf/tez4/7vu+f/C8Pn/yfL6/8/0+v/T9Pv/z/T6/9L4///8////UE5P/xwcHP8xMTH/Dw0L/2t4ev/o////0fb8/8z0+v/G8/r/wfH6/7zv+f+17fj/r+z4/6nr+f+i6ff/nef2/5fl9f+S4/X/jOL1/4fg9P+D3vT/fd3z/3nb8v9s1/D/i9bo//7+/jj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xS3yS/wNGY/8qd5L/q/f//4zl9/+N5PX/leX1/53n9/+l6fb/rev3/7Tt+P+77vj/wfD5/8ny+v/P9Pv/1fX8/9L1+//Q9v3/+P///46Mjf8UFBT/MDEx/xwbGv84PD3/4////9f8///P9fv/yvT7/8Xz+/+/8fr/uO/5/7Lu+f+r7Pj/per3/5/o9/+Y5vb/k+X1/43j9f+H4fT/gt/z/37e8/953PP/adjy/4nX6P/+/v44////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp8kv8CRmL/KneS/6z3//+L5ff/jOT1/5Xm9v+d5/b/pOn3/63r+P+07fn/uu75/8Lw+v/I8/r/zvX7/9b2/P/X9vz/zvb8//P///+6ubn/FxcX/y8vL/8mJCT/Gxka/8fh5P/j////0/f8/871/P/J9Pz/w/L7/7zx+f+17/n/r+35/6jq+P+h6ff/muf2/5Tl9f+O4vX/iOD0/4Le9P993vP/d9zz/2jY8f+H1uj//v7+OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKfJH/AUdi/yp2kv+t9///iub3/4vk9f+V5vb/nOf2/6To9/+s6/j/s+35/7vu+f/C8Pn/yfL6/8/1+//W9fz/2vf8/9P2/P/n////3eHh/ywrK/8nKCj/LS0t/xMPD/+luLv/7f///9X2/P/S9fz/zPX8/8bz+//A8fr/uPD5/7Lu+f+q6/j/o+n3/5vn9v+V5fX/j+L1/4jg9P+D3vT/fd3z/3fb8/9n1/H/htbo/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSn6R/wFGYP8rd5D/rPf//4rl9/+L4/X/k+b1/5zn9v+l6Pb/rOv3/7Tu+P+77/j/wvH5/8nz+v/P9fv/1vf8/934/f/Z9/z/3fv///n///8/PT3/ISEh/zAyMv8KBwf/e4iJ//X////Z+Pz/1fb8/9D2+//J9Pv/xPL6/7zx+v+07/n/rO34/6Xq+P+e5/f/luX1/5Dk9f+J4fT/gt7z/3vd8/922/L/Zdfx/4XV5v////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp7kf8BRGH/K3WR/634//+I5vf/h+P1/5Ll9f+c6Pb/puj2/63r+P+z7fn/u+/5/8Hw+f/J8/r/0fX8/9f3/P/e+P3/3vn9/9n5/f//////bGlp/xwcHP8xMjL/FhQS/1JYWf/t////3/r+/9j4/P/T+Pz/zfb7/8bz+/+/8vr/t+/5/6/s+P+o6vf/n+j3/5jm9v+Q5fX/iuP0/4Pg8/973fP/dNzy/2TX8P+E0+T/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKe5H/AURh/yx3kf+u+P//iOf3/4rk9f+U5fX/nej2/6Xp9/+t6/j/tO35/7zv+f/C8fn/yvP6/9H1/P/Y9/z/3/n9/+P6/f/c+v3//P///52gn/8WFhb/MDAw/yEhIf8sLi//5v3+/+b////b+P3/1vj8/9D2/P/K9Pv/wvP7/7vw+f+y7fj/quv3/6Hp9/+a5/b/k+X1/4vi9P+D4PP/fN7z/3Tb8v9j1/L/gtDi/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSnyS/wFGYv8rdpL/r/j//4rn9/+L5PX/leb2/57o9v+m6vf/ruv4/7Xu+f+88Pn/w/H6/8vz+v/S9vv/2fj8/+D5/f/o+/7/5f////X////Exsf/FhQU/y0tLf8pKSn/FxUV/8bb3f/t////3vr9/9n4/f/U9vz/zPX7/8Tz+/+98Pn/tO74/6zs+P+k6vf/nOj2/5Tl9v+L4/P/g+Dz/3ve8v9z2/L/Ytfz/4HR4v////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp+kf8BRmL/LXiS/7H4//+K5/f/juT2/5bm9v+f5/b/p+r3/6/s+P+17vn/vfD5/8Ty+v/M9Pr/0/b7/9r4/P/h+/7/4/j6/+D29///////8vb1/zIyMv8mJib/LS0t/xMREf+bqav/9f///+D7/f/b+f3/1ff8/871+//H9Pv/v/L6/7bw+f+u7Pf/per3/5zn9v+U5Pb/jOH0/4Lg8/963vL/ctzx/2DX8v+B0eP/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKe5L/AUVj/y14k/+x+P//i+f3/47k9v+W5vb/n+j2/6jq9/+v7Pj/te75/73v+f/E8vr/zPT6/9P2+//a+Pz/6v///97n6P8xMTL/eYOE/93l5v9WV1f/IiIi/y8vL/8RDw//c3x9//j////j/P7/3fn9/9f3/P/Q9fv/yfT7/8Hy+v+48Pn/r+33/6bq9/+e6Pb/leX2/4zj9f+C4PP/et7y/3Hc8f9g1/H/gtLk/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSn6S/wFGYv8teZP/svj//4vn9/+O5fb/mOb2/6Do9v+o6ff/sOv4/7fu+f+97/n/xPL6/8z0+//T9fr/2fj8/+b////7/v7/Kykp/woIB/8sLCz/MjMz/y4uLv8wMDD/GhkZ/05TVP/s////5f3//975/f/Z+Pz/0/b7/8v1+//D8/r/u/D5/7Pt+f+p6vf/oOn2/5fl9v+N5PT/g+Hz/3re8/9x3PL/X9fy/4PU5f////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp8kv8BR2P/LXqT/7H4//+K5/j/jeX2/5fm9v+f6Pb/qOr3/6/s+P+27/n/vPD5/8Px+v/L8/v/0vX7/9n3/P/j+////P///01MTP8dHR3/Kysr/ysrK/8uLi7/Li4u/ycnJv8uLzD/4fr9//n////p////3Pn9/9T3+//N9fr/xfP6/73w+f+17vn/q+z3/6Lp9v+Z5fb/j+P1/4Tg9P973vP/ct3y/1/X8f+D1uf/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKfJL/AUdi/y15k/+x+P//iuf4/4zl9v+W5vb/n+f2/6fp9/+u7Pj/tu/5/7vw+f/D8fr/yvP7/9H1+//Z9/z/4fv+//////9XVlb/AAAA/xgYGP8nJyf/Li4u/y4uLv8tLS7/IyMj/0RHR/+ToaP/0uvs/+/////k////z/X7/8fz+v++8fn/tu74/6zs+P+j6ff/mub3/4/j9f+F4fX/fN/z/3Ld8v9f1/H/g9bn/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSnyT/wFGZP8teZb/sfj//4nm9/+M5Pb/lub2/57n9v+m6ff/ruv4/7Xt+f+67/n/wPH6/8nz+v/Q9Pv/1/f7/935/P/x////5+fn/4WEhP8yMjL/DQ0N/yEhIf8vLy//Li4u/y4uLv8kIyP/GhcX/ysqK/9dZWf/qcHE/9j+///I8/v/v/H5/7fu+f+u7Pn/pen3/5vn9v+Q5PX/huH0/3ze9P9y3PL/X9jx/4TW5/////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp9kf8BSGf/LX2Y/7H3//+I5vf/i+T1/5Pm9v+c5/b/pOn2/6zq9/+z7fn/ue/5/7/w+f/H8/r/zvT7/9X3+//d+Pz/4Pn8//X//////////////7y8vP8zMzP/JCQk/y4uLv8uLi7/LC4u/y8vL/8pKCj/ExEP/xUSE//Q9Pn/zvj//8Dw+f+47vn/ruz4/6Xp9/+b5/b/kOP1/4Xh9P973vT/dNzy/1/Y8f+E1uj/////Qv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKfpX/AUlo/y1+mf+w+f//h+b3/4jk9f+R5vb/mef3/6Ho9v+q6/f/sez4/7bu+f+97/n/w/H6/8vz+v/T9vv/2/f8/+D4/P/l+v3/5/v9//b/////////dnl5/xYUFP8wMDD/LS0t/yUlJf8PDw//HRwc/yMiIv8hIB//vNvg/9P9///B8fr/ue/4/6/s+P+l6ff/m+b2/4/j9f+F4vT/e9/0/3Hc8v9e2PD/gNXo/////3L///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSn+W/wFLav8tf5n/sPf//4Pm9/+F4/X/j+X2/5fm9v+e5/f/p+r2/6/s+P+07fj/u+/5/8Lx+f/I8/r/0PX7/9f2/P/e9/z/4/r9/+j7/f/r/P7//////5+io/8WFRX/Ly8v/ykpKf8oKSn/bm9u/yYmJv8CAAD/AAAA/6S+w//Y////wvH6/7ru+f+w6/j/pur3/5rn9v+P5PT/hOH0/3ne8/9w3PP/Xdfw/3zV5/////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp/lP8BTW3/LYGc/6/3//9/5vf/g+P1/4zl9f+T5vb/nOj2/6Tq9/+s7Pf/s+z4/7jv+f+/8Pn/xvP6/830+//V9fz/2/f8/+H5/P/n+v3/6/v9///////U1tX/FhYW/ysrK/8pKSn/FBQU/9Le3//9////nqGh/zY0M/+Jn6P/2f///8Lv+f+67/n/sOz4/6Xp9/+Z5vb/j+P1/4Th8/953vP/b9zy/1vX8P971ef/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKgZb/AVBx/y2Dnv+u9///fOX2/4Dj9f+K5PX/keX2/5jn9/+g6ff/p+v3/7Dr9/+27fn/vO/5/8Px+v/K8/v/0vX7/9j2+//f+Pz/5Pr9/+n7/f/1////9/n6/zc3N/8jIyP/Ly8v/xMREf99jZD/9f////b////r////zu/0/833/f/C8fn/uu75/6/r+P+j6fb/meb2/43j9f+D4fT/eN7z/23c8/9a1/H/e9Xn/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSoKX/wFSdf8thaP/rff//3rl9v984vX/heT2/43l9f+T5vb/m+j3/6Tq9/+r6/f/s+z4/7rt+f/A8Pn/x/L7/870+//V9fv/3Pf8/+L5/f/n+v3/6/3+//////9vbW3/ERER/zI0NP8YFBT/Ulla/+7////Q9fz/1fj//9X5/f/J8vr/wfD6/7ju+P+t6/j/oun3/5fm9v+L4/b/gOD0/3be8/9s3PP/Wdfw/3vU6f////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUqCmf8BVHr/Loim/6z3//925Pb/eeL1/4Hj9v+I5PX/j+b1/5fm9v+f6ff/pur3/67r9/+27fj/ve/5/8Tx+v/L8/r/0vT7/9j3+//e+Pz/5Pn9/+b6/f//////u729/w8PD/8uLi7/JCIi/yosLf/P7fD/2////9D0+//P9Pr/yPL6/7/w+v+27fj/q+r4/6Do9/+V5vb/ieT1/3/h8/903vP/advy/1fX8P961Oj/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FLhZz/AVh+/y6Kqv+r+P//ceT2/3Xh9P9+4vX/hOT2/4zl9v+S5vb/mej2/6Dp9/+p6vf/sOz4/7ju+f+/8Pr/x/L6/83z+v/U9Pv/2/f8/+H4/P/l+f3/8v////3+/v86Ojr/HR0d/y8uLv8UEA7/lquv/+X////O9Pv/zPP6/8bx+v+88Pn/s+z4/6jr9/+e6Pf/kub2/4fj9f984PP/cd3z/2bb8v9V1/H/edTp/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xT4mg/wBagf8uj67/rPf//23j9v9x4PT/eeL0/4Hj9f+H5fX/juX1/5Xm9v+c6Pb/o+r3/6rr9/+y7fn/u+/5/8Lw+f/K8vr/0fP7/9f2+//d9/z/4/n8/+X5/f//////l5aV/woKCv8wMDD/Hxsb/z5ERf/a////1Pr//8jw+v/C8fr/uu75/7Dt+P+m6vf/nOj2/5Dl9f+E4vT/ed/z/2/c8v9l2/L/UNbw/3vV6f////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cV2Uq/8CYIf/KImq/674//9q4fb/bOD0/3bi9P984/X/guT1/4nl9v+Q5vX/l+j2/57p9v+k6vf/rOz4/7Tu+f+97/n/xfH5/83z+v/U9fv/2vb7/+D4/P/k+fz/8/////f5+v8zMTL/HR0d/zAwMP8VERH/gJWY/+X////K+P//ve75/7bt+P+u7Pj/o+n3/5jn9v+N5fX/guL0/3ff8/9t3fL/Y9vy/1HW8f941en/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP7+/nFpnLH/EGuQ/xd4nv+v9v7/cuT3/2Xf9P9w4fX/d+P0/37j9f+E5PX/i+X2/5Hm9v+X6Pb/n+n3/6bq+P+u7fn/tu75/77v+f/G8vr/zvP6/9T1+//b9vz/4fj8/+P5/f//////u7u6/w0NDf8pKSr/Kiop/x8cG/+En6L/z////83///++/v//qev4/6Dp9/+V5/b/iuP2/3/i9P903/T/atzz/2DZ8v9N1PH/ddXo/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD9/v5xfKm7/yZ7nv8Jc53/kuPw/5Hu/f9a3PP/bOD0/3Lh9P944vT/f+P0/4Tl9f+L5fX/kub2/5no9/+f6ff/qOr4/6/t+P+27fj/v/D6/8fy+v/O8/r/1fX7/9v2/P/g+Pz/5/3///////90dHT/BgYG/y8vL/8qKSj/GxcX/0lTV/93lZr/jby//6vz//+c6Pj/keX1/4fj9f984PP/cd3z/2fb8v9c2fH/SdXw/3bW6f////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////VavH0v87iKb/C3Ca/1Gwy/+6////YN70/2Pg9P9t4PT/c+H0/3rj9P+A5PX/huT1/4zm9v+T6Pf/men3/6Hq9/+o6/j/sO34/7jv+f/A8fr/yPL6/8/0+//V9vv/2/f8/+D4/P/w/////////0pKSv8DAgL/Kysr/y4uLv8mIiH/EQgH/yEgI/+f5fT/nO/+/4zl9f+C4/X/d+Dz/23e8/9k2/L/Wdnx/0fW8P931un/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///znO3eT/Vpew/yyEpv8NeaL/oOfz/5/z/v9V3PH/Y+D0/2/h9P904vX/e+P1/4Hj9f+G5Pb/jeb2/5Po9v+Z6ff/oer4/6js+P+w7fn/uPD5/7/x+v/H8vr/zvT6/9T1+//Z9vz/2/f8//P////6////WlhY/wICAv8dHR3/Li4u/y0uLv8WDg7/fbjE/5v2//+H5PX/fuL1/3Pf9P9p3PL/YNry/1bY8f9F1u//d9fq/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A9/n6qninvP9Fkq7/EnWe/yaRtf+9+v//nvP+/13e8v9c3fT/aeH0/3Pi9P974/X/geT2/4fl9v+O5/b/k+j2/5rp9v+i6vj/qez5/7Du+f+37/n/v/H6/8by+v/N9Pv/0/b7/9j2/P/Y9/z/8P////////+NjY3/FBMT/wIAAP8VFhb/DAMB/0lrcf+X+///geT2/3jh9f9u3vT/ZNzz/1za8v9R2PH/Qtbw/3fX6v////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///1W809z/VJSt/zWJq/8DbZv/Lpe2/7Xw+//J////nvH+/3rn9/9q4PP/ad/0/3bj9f9/5Pb/huX2/43o9v+U6Pb/m+n3/6Lr+P+p7fj/r+75/7fv+v++8Pr/xfL6/8v1+//Q9fv/1PX8/9b3+//i/P///////9bd3f93eHj/KiMi/wwDAP8hLS7/huj6/3zl+/9x3/T/aN7z/1/b8/9W2fL/Tdfx/z/V8P941+v/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/f7+qoiwv/9CiKX/IHqh/wBmk/8PeKL/YrXM/6nl7//N+f//yv///672/v+J6fj/duP2/3bi9f9+5vb/i+f2/5Ho9v+a6vf/oez4/6fs+P+u7vn/te/5/7vx+f/C8vr/yPP6/8z0+//R9fv/0/b7/9X3/P/i////1P///9D5+f+51dr/hcXP/3jh9P9z4fX/at7z/2Lc8v9Z2vL/Udjx/0jW8P881O//edvs/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///x38/f2qlrjH/0KFof8PapH/AF+I/wBchv8BZ5D/JIOl/2qyx/+r4Oz/2f///9j///+6+f//me35/4Lm9v+A5fb/ieX3/5fq+P+e6/j/p+z5/63t+f+z7/n/ufD6/77x+v/C8vr/x/P6/8z1+v/O9Pv/0/X7/7jv+/+G6/7/i/L//4Tw//9y4fX/a9/z/2Pd8/9a2/L/U9nx/0zX8P9E1fD/OtTw/3vc7f////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Hf///47h6+7jkLXE/0iIof8bbYz/Al6D/wBZg/8AV3//AWSL/yN+oP9qs8j/rNvm/93////j////yfz//6fw+/+O6fj/jej4/5Xr+P+i7Pj/qu74/6/v+f+18Pn/uvD6/7/x+v/D8vr/xfP7/8jz+//S9/v/qe35/2nf8v9q3/T/at/0/2Pe8/9c3fP/VNry/03Y8f9H1/D/PtXw/zfU7/9+3O3/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Hfz9/Y74+vuq0ODl/5i5yP9Lhp7/G2mI/wBZff8AVHv/AFN5/wBehP8jeZr/YavB/6vZ4//f////7P///9T+//+y8vv/muv5/5Xp+f+f7fn/qu/5/7Hv+f+28Pr/ufD6/7rx+v+/8vr/wvL6/832+/+e6vf/Xdzz/17d8/9a3PP/U9vy/03Z8f9H1/H/Qdbx/znU8P810+//f9zt/////17///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///zn+/v6O9fj5qtvm6uOdu8n/SIOb/xhmhf8BVnj/AFF2/wBTef8AWIL/Inqc/16kvf+t2eT/4Pv9//L////b////ufT//6Pt+f+c6/n/pu75/67v+f+y8Pr/tvD6/7fx+v+68fr/x/P6/47n9v9L2vL/Tdry/0zZ8f9H2fH/Qtbx/z3V8f8y0/D/NNPv/4Pd7v////9L////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8d////cvf5+qrj7O/joL3J/0eCmf8YZIT/BVl7/wBSd/8AVnv/AFuC/yN8nP9cobj/qNnk/933+f/t////3P///7v0//+p8Pr/ouz6/6fu+v+s7/n/sO/6/7Lw+v+98vr/gub2/0LY8v9A2PH/Qdfw/zzV8P831PD/L9Lw/zXT8P+I3+7/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Hf///3L+/v6q7vP1x63G0f9VjaD/IGqG/wdZfP8AWHr/AFh9/wReg/8ie5r/WaC2/5vQ3v/W9vr/5v///9v///+/9///qPH6/6Hs+f+g7vn/qe/6/7Tx+f+A5fb/O9fx/zXW8P841fD/NdXw/y7T8P841PD/jODv/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9y/v7+qufu8ce4zdb/V42h/yNrh/8LXn//AVl7/wBXff8JYYb/G3KT/1Sguf+Px9j/zfb6/+P////b////wPn//6fw+v+d7fj/o+34/33m9v832vL/LdXx/zbV8P8t1O//Qdjw/4zf7v////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cv7+/qrq8PPHtMzT/2iYqv8haIf/B1p9/wNafv8AV3z/B2CF/xhvkv9GmrP/h8PU/8Px+P/d////1////775//+v8fr/g+j3/zbZ8P8i1PD/KNXx/2Pf8/+w6fT/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///z/+/v5x9vn6hNDe5P99p7f/KG2J/whae/8BV3r/AVp8/wBdgv8ScJP/N46s/3y/0f+16vL/2P///97///+2+f//Zub3/2bo+v9z3u7/9fz9x////xD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8s////Xvr7/Jfc5+vjlLXE/zp6lP8YZYP/B1p9/wNZf/8CWYD/DWuQ/y6Fpf9yvc//r9/p/7zy+v+c4e3/6fj84////zL///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////E////279/f5Y7vP1WMTW3v+ErL3/U42k/0CDnP8yepf/KHGR/yNwkP9jnLD//P39Zf///xb///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA==");
   if(!res)
      Print("Error: ",notify_icon.GetLastError());

//--- show icon
   notify_icon.Show();

//--- run timer
   EventSetMillisecondTimer(500);

//--- done
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnTimer()
  {
   notify_icon.DoTimer();
  }
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   ArraySetAsSeries(close,true);
   ArraySetAsSeries(time,true);

//--- few bars for calculation
   if(rates_total<50)
      return (0);

   int limit;
   if(prev_calculated==0)
     {
      //--- first calc
      limit=rates_total-2;
      ArrayInitialize(SarBuffer,EMPTY_VALUE);
      time_alert=time[0];
      notify_icon.Balloon.Show("SAR started on "+_Symbol+" "+TimeframeToString()+".",BALLOON_TITLE,NIIF_USER,ICON_LARGE,2500);
     }
   else
     {
      //--- regular calc
      limit=rates_total-prev_calculated;
     }

//--- get SAR values
   if(CopyBuffer(sar_handle,0,0,limit+1,SarBuffer)!=limit+1)
      return(0);

//--- main cycle
   for(int i=limit; i>=0 && !_StopFlag; i--)
     {
      if(close[i]>SarBuffer[i])
         ColorBuffer[i]=0;
      else
         ColorBuffer[i]=1;
     }

//--- set icon
   if(SarBuffer[0]<close[0])
     {
      if(notify_icon.Tag()!=1)
        {
         notify_icon.Tag(1);
         notify_icon.Icon.LoadFromBase64("Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAQAAASCwAAEgsAAAAAAAAAAAAA////AKCak/+gmpP/nl0U/55dFP+eXRT/nl0U/55dFP+eXhX/nl4V/55eFf+eXhX/nl4V/55eFf+eXhX/nl4V/55eFf+eXhX/nl4V/55dFP+eXRT/nl0U/55fFf+eXxX/nl4V/55eFf+eXhX/nl4V/55eFf+gmpP/oJqT/////wD///8AoJqT/6Cak/+eXRT/nl0U/55dFP+eXRT/nl0U/55eFf+eXhX/nl4V/55eFf+eXhX/nl4V/55eFf+eXhX/nl4V/55eFf+eXhX/nl0U/55dFP+eXRT/nl8V/55fFf+eXhX/nl4V/55eFf+eXhX/nl4V/6Cak/+gmpP/////AP///wCgXxb/oF8W//+HD///hw///4cP///Dh///w4f//8eO///Hjv//2bL//9my///Zsv//6dT//+nU///y5P//8uT//+nU///p1P//2bL//9my///Zsv//x47//8eO///Dh///w4f//4cP//+HD///hw//oF8W/6BfFv8AAAAD////AKBfFv+gXxb//4cP//+HD///hw///8OH///Dh///x47//8eO///Zsv//2bL//9my///p1P//6dT///Lk///y5P//6dT//+nU///Zsv//2bL//9my///Hjv//x47//8OH///Dh///hw///4cP//+HD/+gXxb/oF8W/wAAAAL///8AoF8W/6BfFv//hw///4cP//+HD///w4f//8OH///Hjv//x47//9my///Zsv//2bL//+nU///p1P//8uT///Lk///p1P//6dT//9my///Zsv//2bL//8eO///Hjv//w4f//8OH//+HD///hw///4cP/6BfFv+gXxb/AAAAAv///wCjYhf/o2IX//+HD///hw///4cP/w9XZf8PV2X/AE5i/wBOYv8ATmL/AE5i/wBOYv//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//4cP//+HD///hw//o2IX/6NiF/8AAAAC////AKNiF/+jYhf//4cP//+HD///hw//D1dl/w9XZf8ATmL/AE5i/wBOYv8ATmL/AE5i//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//hw///4cP//+HD/+jYhf/o2IX/wAAAAL///8ApmQX/6ZkF//9hg///YYP//2GD///p03//6dN//+nTf//p03/B1Rm/wdUZv8HVGb//4cP//+HD///p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+HD///hw///4cP/6ZjF/+mYxf/AAAAAv///wCmZBf/pmQX//2GD//9hg///YYP//+nTf//p03//6dN//+nTf8HVGb/B1Rm/wdUZv//hw///4cP//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//4cP//+HD///hw//pmMX/6ZjF/8AAAAC////AKlmGf+pZhn//4cP//+HD///hw///6dN//+nTf//p03//6dN//+HD///hw///4cP/w5MXP8OTFz/+5Yz//uWM///p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//hw///4cP//+HD/+pZhj/qWYY/wAAAAL///8AqWYZ/6lmGf//hw///4cP//+HD///p03//6dN//+nTf//p03//4cP//+HD///hw//Dkxc/w5MXP/7ljP/+5Yz//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+HD///hw///4cP/6lmGP+pZhj/AAAAAv///wCsaBr/rGga//+HD///hw///4cP//+0af//tGn//7Rp//+0af//p03//6dN//+nTf8VRlL/FUZS//+nTf//p03//7Rp//+0af//tGn//7Rp//+0af//tGn//7Rp//+0af//tGn//4cP//+HD///hw//rGcZ/6xnGf8AAAAC////AKxoGv+saBr//4cP//+HD///hw///7Rp//+0af//tGn//7Rp//+nTf//p03//6dN/xVGUv8VRlL//6dN//+nTf//tGn//7Rp//+0af//tGn//7Rp//+0af//tGn//7Rp//+0af//hw///4cP//+HD/+sZxn/rGcZ/wAAAAL///8ArGga/6xoGv//hw///4cP//+HD///tGn//7Rp//+0af//tGn//6dN//+nTf//p03/FUZS/xVGUv//p03//6dN//+0af//tGn//7Rp//+0af//tGn//7Rp//+0af//tGn//7Rp//+HD///hw///4cP/6xnGf+sZxn/AAAAAv///wCwaxv/sGsb//+HD///hw///4cP//+0af//tGn//7Rp//+0af/5sGf/+bBn//mwZ/8mV2L/Jldi/7F/TP+xf0z//8OH///Dh///w4f//8OH///Dh///w4f//8OH///Dh///w4f//4cP//+HD///hw//sGsb/7BrG/8AAAAC////ALBrG/+waxv//4cP//+HD///hw///7Rp//+0af//tGn//7Rp//mwZ//5sGf/+bBn/yZXYv8mV2L/sX9M/7F/TP//w4f//8OH///Dh///w4f//8OH///Dh///w4f//8OH///Dh///hw///4cP//+HD/+waxv/sGsb/wAAAAL///8AtG4d/7RuHf//hw///4cP//+HD///w4f//8OH/+62f//utn//QF5i/0BeYv9AXmL/KUlR/ylJUf8qTFT/KkxU/zhbYv84W2L/vpJn/76SZ/++kmf//8OH///Dh///w4f//8OH//+HD///hw///4cP/7RuHf+0bh3/AAAAAv///wC0bh3/tG4d//+HD///hw///4cP///Dh///w4f/7rZ//+62f/9AXmL/QF5i/0BeYv8pSVH/KUlR/ypMVP8qTFT/OFti/zhbYv++kmf/vpJn/76SZ///w4f//8OH///Dh///w4f//4cP//+HD///hw//tG4d/7RuHf8AAAAC////ALdwHv+3cB7//4cP//+HD///hw///9Kl///Spf/7z6P/+8+j/9+3kf/ft5H/37eR/7eXd/+3l3f/L0ZM/y9GTP/Rq4f/0auH//PInf/zyJ3/88id///Spf//0qX//9Kl///Spf//hw///4cP//+HD/+3cB7/t3Ae/wAAAAL///8At3Ae/7dwHv//hw///4cP//+HD///0qX//9Kl//vPo//7z6P/37eR/9+3kf/ft5H/t5d3/7eXd/8vRkz/L0ZM/9Grh//Rq4f/88id//PInf/zyJ3//9Kl///Spf//0qX//9Kl//+HD///hw///4cP/7dwHv+3cB7/AAAAAv///wC3cB7/t3Ae//+HD///hw///4cP///Spf//0qX/+8+j//vPo//ft5H/37eR/9+3kf+3l3f/t5d3/y9GTP8vRkz/0auH/9Grh//zyJ3/88id//PInf//0qX//9Kl///Spf//0qX//4cP//+HD///hw//t3Ae/7dwHv8AAAAC////ALlxH/+5cR///4cP//+HD///hw///+DB///gwf//4MH//+DB///gwf//4MH//+DB//nbvf/5273/Sltf/0pbX/+Ug3L/lINy//PVt//z1bf/89W3/+7Rtf/u0bX/79G1/+/Rtf//hw///4cP//+HD/+5cR//uXEf/wAAAAL///8AuXEf/7lxH///hw///4cP//+HD///4MH//+DB///gwf//4MH//+DB///gwf//4MH/+du9//nbvf9KW1//Sltf/5SDcv+Ug3L/89W3//PVt//z1bf/7tG1/+7Rtf/v0bX/79G1//+HD///hw///4cP/7lxH/+5cR//AAAAAv///wC7ciD/u3Ig//+HD///hw///4cP///t2v//7dr//+3a///t2v//7dr//+3a///t2v//7dr//+3a/9rKu//ayrv/V2Bh/1dgYf9KVFf/SlRX/0pUV/9GUFP/RlBT///t2v//7dr//4cP//+HD///hw//u3Ig/7tyIP8AAAAC////ALtyIP+7ciD//4cP//+HD///hw///+3a///t2v//7dr//+3a///t2v//7dr//+3a///t2v//7dr/2sq7/9rKu/9XYGH/V2Bh/0pUV/9KVFf/SlRX/0ZQU/9GUFP//+3a///t2v//hw///4cP//+HD/+7ciD/u3Ig/wAAAAL///8AvXQh/710If//hw///4cP//+HD///9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw//+HD///hw///4cP/710If+9dCH/AAAAAv///wC9dCH/vXQh//+HD///hw///4cP///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D//4cP//+HD///hw//vXQh/710If////8A////AL10If+9dCH//4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD/+9dCH/vXQh/////wD///8AvXQh/710If//hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP/710If+9dCH/////AP///wC9dCH/vXQh//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw//vXQh/710If////8A////ALu5t/+7ubf/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+7ubf/u7m3/////wD///8Au7m3/7u5t/+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/7u5t/+7ubf/////AA==");
        }
     }
   else
     {
      if(notify_icon.Tag()!=-1)
        {
         notify_icon.Tag(-1);
         notify_icon.Icon.LoadFromBase64("Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAQAAASCwAAEgsAAAAAAAAAAAAA////AIyXmv+Ml5r/BSWY/wUlmP8FJZj/BSWY/wUlmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wUlmP8FJZj/BSWY/wYlmP8GJZj/BiaY/wYmmP8GJpj/BiaY/wYmmP+Ml5r/jJea/////wD///8AjJea/4yXmv8FJZj/BSWY/wUlmP8FJZj/BSWY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BSWY/wUlmP8FJZj/BiWY/wYlmP8GJpj/BiaY/wYmmP8GJpj/BiaY/4yXmv+Ml5r/////AP///wAHJ5r/Byea/wBA//8AQP//AED//4el//+Hpf//h6X//4el//+twf//rcH//63B///R3f//0d3//+Lx///i8f//0d3//9Hd//+twf//rcH//63B//+Hpf//h6X//4el//+Hpf//AED//wBA//8AQP//Byea/wcnmv8AAAAD////AAcnmv8HJ5r/AED//wBA//8AQP//h6X//4el//+Hpf//h6X//63B//+twf//rcH//9Hd///R3f//4vH//+Lx///R3f//0d3//63B//+twf//rcH//4el//+Hpf//h6X//4el//8AQP//AED//wBA//8HJ5r/Byea/wAAAAL///8AByea/wcnmv8AQP//AED//wBA//+Hpf//h6X//4el//+Hpf//rcH//63B//+twf//0d3//9Hd///i8f//4vH//9Hd///R3f//rcH//63B//+twf//h6X//4el//+Hpf//h6X//wBA//8AQP//AED//wcnmv8HJ5r/AAAAAv///wAIKJ3/CCid/wBA//8AQP//AED//wBUcf8AVHH/AE5i/wBOYv8ATmL/AE5i/wBOYv9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/AED//wBA//8AQP//CCid/wgonf8AAAAC////AAgonf8IKJ3/AED//wBA//8AQP//AFRx/wBUcf8ATmL/AE5i/wBOYv8ATmL/AE5i/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f8AQP//AED//wBA//8IKJ3/CCid/wAAAAL///8ACSmg/wkpoP8AP/3/AD/9/wA//f9ehfn/XoX5/16F+f9ehfn/BlRn/wZUZ/8GVGf/D0n3/w9J9/9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/wBA//8AQP//AED//wkqoP8JKqD/AAAAAv///wAJKaD/CSmg/wA//f8AP/3/AD/9/16F+f9ehfn/XoX5/16F+f8GVGf/BlRn/wZUZ/8PSff/D0n3/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/AED//wBA//8AQP//CSqg/wkqoP8AAAAC////AAsspP8LLKT/AED//wBA//8AQP//XoX5/16F+f9ehfn/XoX5/w9J9/8PSff/D0n3/w5MXP8OTFz/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f8AQP//AED//wBA//8KKqT/Ciqk/wAAAAL///8ACyyk/wsspP8AQP//AED//wBA//9ehfn/XoX5/16F+f9ehfn/D0n3/w9J9/8PSff/Dkxc/w5MXP9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/wBA//8AQP//AED//woqpP8KKqT/AAAAAv///wAMLqf/DC6n/wBA//8AQP//AED//16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f8VRlL/FUZS/16F+f9ehfn/gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//AED//wBA//8AQP//Cy2n/wstp/8AAAAC////AAwup/8MLqf/AED//wBA//8AQP//XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/xVGUv8VRlL/XoX5/16F+f+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//4Cg//8AQP//AED//wBA//8LLaf/Cy2n/wAAAAL///8ADC6n/wwup/8AQP//AED//wBA//9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/FUZS/xVGUv9ehfn/XoX5/4Cg//+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//wBA//8AQP//AED//wstp/8LLaf/AAAAAv///wANL6v/DS+r/wBA//8AQP//AED//5+3//+ft///n7f//5+3//+ft///n7f//5+3//8lV2P/JVdj/0FbrP9BW6z/n7f//5+3//+ft///n7f//5+3//+ft///n7f//5+3//+ft///AED//wBA//8AQP//DS+r/w0vq/8AAAAC////AA0vq/8NL6v/AED//wBA//8AQP//n7f//5+3//+ft///n7f//5+3//+ft///n7f//yVXY/8lV2P/QVus/0FbrP+ft///n7f//5+3//+ft///n7f//5+3//+ft///n7f//5+3//8AQP//AED//wBA//8NL6v/DS+r/wAAAAL///8ADzGv/w8xr/8AQP//AED//wBA//+AoP//gKD//3eV7f93le3/NVtp/zVbaf81W2n/KUlR/ylJUf8qTFT/KkxU/zNZZf8zWWX/XXW6/111uv9ddbr/gKD//5+3//+ft///n7f//wBA//8AQP//AED//w8xr/8PMa//AAAAAv///wAPMa//DzGv/wBA//8AQP//AED//4Cg//+AoP//d5Xt/3eV7f81W2n/NVtp/zVbaf8pSVH/KUlR/ypMVP8qTFT/M1ll/zNZZf9ddbr/XXW6/111uv+ft///n7f//5+3//+ft///AED//wBA//8AQP//DzGv/w8xr/8AAAAC////ABAzsv8QM7L/AED//wBA//8AQP//n7f//5+3//+dtPv/nbT7/4qf3f+Kn93/ip/d/2+Asv9vgLL/L0ZM/y9GTP+AlM7/gJTO/5eu8v+XrvL/l67y/5+3//+ft///n7f//5+3//8AQP//AED//wBA//8QM7L/EDOy/wAAAAL///8AEDOy/xAzsv8AQP//AED//wBA//+ft///n7f//520+/+dtPv/ip/d/4qf3f+Kn93/b4Cy/2+Asv8vRkz/L0ZM/4CUzv+AlM7/l67y/5eu8v+XrvL/n7f//5+3//+ft///n7f//wBA//8AQP//AED//xAzsv8QM7L/AAAAAv///wAQM7L/EDOy/wBA//8AQP//AED//5+3//+ft///nbT7/520+/+Kn93/ip/d/4qf3f9vgLL/b4Cy/y9GTP8vRkz/gJTO/4CUzv+XrvL/l67y/5eu8v+ft///n7f//5+3//+ft///AED//wBA//8AQP//EDOy/xAzsv8AAAAC////ABE0tf8RNLX/AED//wBA//8AQP//vc7//73O//+9zv//vc7//73O//+9zv//vc7//7nJ+f+5yfn/R1pg/0daYP9pc43/aXON/7PD8v+zw/L/s8Py/7C/7f+wv+3/sMDu/7DA7v8AQP//AED//wBA//8RNLX/ETS1/wAAAAL///8AETS1/xE0tf8AQP//AED//wBA//+9zv//vc7//73O//+9zv//vc7//73O//+9zv//ucn5/7nJ+f9HWmD/R1pg/2lzjf9pc43/s8Py/7PD8v+zw/L/sL/t/7C/7f+wwO7/sMDu/wBA//8AQP//AED//xE0tf8RNLX/AAAAAv///wASNbf/EjW3/wBA//8AQP//AED//9jk///Y5P//2OT//9jk///Y5P//2OT//9jk///Y5P//2OT//7fE2P+3xNj/U19i/1NfYv9KVFf/SlRX/0pUV/9GUFP/RlBT/9jk///Y5P//AED//wBA//8AQP//EjW3/xI1t/8AAAAC////ABI1t/8SNbf/AED//wBA//8AQP//2OT//9jk///Y5P//2OT//9jk///Y5P//2OT//9jk///Y5P//t8TY/7fE2P9TX2L/U19i/0pUV/9KVFf/SlRX/0ZQU/9GUFP/2OT//9jk//8AQP//AED//wBA//8SNbf/EjW3/wAAAAL///8AEze5/xM3uf8AQP//AED//wBA///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//wBA//8AQP//AED//xM3uf8TN7n/AAAAAv///wATN7n/Eze5/wBA//8AQP//AED//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//AED//wBA//8AQP//Eze5/xM3uf////8A////ABM3uf8TN7n/AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8TN7n/Eze5/////wD///8AEze5/xM3uf8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//xM3uf8TN7n/////AP///wATN7n/Eze5/wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//Eze5/xM3uf////8A////ALO2t/+ztrf/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf+ztrf/s7a3/////wD///8As7a3/7O2t/8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/7O2t/+ztrf/////AA==");
        }
     }

//--- do alert up
   if(close[1]>SarBuffer[1] && 
      close[0]<SarBuffer[0])
     {
      if(time_alert!=time[0])
        {
         time_alert=time[0];
         notify_icon.Balloon.Show("SAR goes DOWN on "+_Symbol+" "+TimeframeToString()+".",BALLOON_TITLE,NIIF_USER,ICON_LARGE,2500);
        }
     }

//--- do alert down
   if(close[1]<SarBuffer[1] && 
      close[0]>SarBuffer[0])
     {
      if(time_alert!=time[0])
        {
         time_alert=time[0];
         notify_icon.Balloon.Show("SAR goes UP on "+_Symbol+" "+TimeframeToString()+".",BALLOON_TITLE,NIIF_USER,ICON_LARGE,2500);
        }
     }

//--- done
   return(rates_total);
  }
//+------------------------------------------------------------------+
string TimeframeToString(ENUM_TIMEFRAMES tf=PERIOD_CURRENT)//Convert timeframe to string
  {
   if(tf==PERIOD_CURRENT)
      tf=_Period;
   return StringSubstr(EnumToString(tf),7);
  }
//+------------------------------------------------------------------+

The library works in the strategy tester. Its code is compatible with MQL4. The library can further be improved by adding functionality for the icon animation. I hope that MQL community will make its contribution to the library development.

Translated from Russian by MetaQuotes Software Corp.
Original code: https://www.mql5.com/ru/code/19129

Momentum YTG Momentum YTG

The Momentum indicator implemented in the form of a color histogram.

Vortex Vortex

An indicator from "Technical Analysis of Stocks & Commodities" (January, 2010).

Vortex Indicator System Vortex Indicator System

A trading system based on the Vortex indicator signals.

Current Next Futures Current Next Futures

The script has three independent functions for determining the current FORTS futures.