diff --git a/README.md b/README.md
index 17e55b9a92..1cb330ddd6 100644
--- a/README.md
+++ b/README.md
@@ -2762,7 +2762,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li
   -cacheExpireDuration duration
      Items are removed from in-memory caches after they aren't accessed for this duration. Lower values may reduce memory usage at the cost of higher CPU usage. See also -prevCacheRemovalPercent (default 30m0s)
   -configAuthKey value
-     Authorization key for accessing /config page. It must be passed via authKey query arg
+     Authorization key for accessing /config page. It must be passed via authKey query arg. It overrides httpAuth.* settings.
      Flag value can be read from the given file when using -configAuthKey=file:///abs/path/to/file or -configAuthKey=file://./relative/path/to/file . Flag value can be read from the given http/https url when using -configAuthKey=http://host/path or -configAuthKey=https://host/path
   -csvTrimTimestamp duration
      Trim timestamps when importing csv data to this duration. Minimum practical duration is 1ms. Higher duration (i.e. 1s) may be used for reducing disk space usage for timestamp data (default 1ms)
@@ -3076,7 +3076,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li
   -relabelConfig string
      Optional path to a file with relabeling rules, which are applied to all the ingested metrics. The path can point either to local file or to http url. See https://docs.victoriametrics.com/#relabeling for details. The config is reloaded on SIGHUP signal
   -reloadAuthKey value
-     Auth key for /-/reload http endpoint. It must be passed as authKey=...
+     Auth key for /-/reload http endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings.
      Flag value can be read from the given file when using -reloadAuthKey=file:///abs/path/to/file or -reloadAuthKey=file://./relative/path/to/file . Flag value can be read from the given http/https url when using -reloadAuthKey=http://host/path or -reloadAuthKey=https://host/path
   -retentionFilter array
      Retention filter in the format 'filter:retention'. For example, '{env="dev"}:3d' configures the retention for time series with env="dev" label to 3 days. See https://docs.victoriametrics.com/#retention-filters for details. This flag is available only in VictoriaMetrics enterprise. See https://docs.victoriametrics.com/enterprise/
diff --git a/app/vmagent/main.go b/app/vmagent/main.go
index 4429f2458f..c1c53ea7a9 100644
--- a/app/vmagent/main.go
+++ b/app/vmagent/main.go
@@ -78,8 +78,8 @@ var (
 		"See also -opentsdbHTTPListenAddr.useProxyProtocol")
 	opentsdbHTTPUseProxyProtocol = flag.Bool("opentsdbHTTPListenAddr.useProxyProtocol", false, "Whether to use proxy protocol for connections accepted "+
 		"at -opentsdbHTTPListenAddr . See https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt")
-	configAuthKey = flagutil.NewPassword("configAuthKey", "Authorization key for accessing /config page. It must be passed via authKey query arg")
-	reloadAuthKey = flagutil.NewPassword("reloadAuthKey", "Auth key for /-/reload http endpoint. It must be passed as authKey=...")
+	configAuthKey = flagutil.NewPassword("configAuthKey", "Authorization key for accessing /config page. It must be passed via authKey query arg. It overrides httpAuth.* settings.")
+	reloadAuthKey = flagutil.NewPassword("reloadAuthKey", "Auth key for /-/reload http endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings.")
 	dryRun        = flag.Bool("dryRun", false, "Whether to check config files without running vmagent. The following files are checked: "+
 		"-promscrape.config, -remoteWrite.relabelConfig, -remoteWrite.urlRelabelConfig, -remoteWrite.streamAggr.config . "+
 		"Unknown config entries aren't allowed in -promscrape.config by default. This can be changed by passing -promscrape.config.strictParse=false command-line flag")
diff --git a/app/vmalert/web.go b/app/vmalert/web.go
index 0dc8ac8b87..43d2562ccc 100644
--- a/app/vmalert/web.go
+++ b/app/vmalert/web.go
@@ -19,7 +19,7 @@ import (
 	"github.com/VictoriaMetrics/VictoriaMetrics/lib/procutil"
 )
 
-var reloadAuthKey = flagutil.NewPassword("reloadAuthKey", "Auth key for /-/reload http endpoint. It must be passed as authKey=...")
+var reloadAuthKey = flagutil.NewPassword("reloadAuthKey", "Auth key for /-/reload http endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings.")
 
 var (
 	apiLinks = [][2]string{
diff --git a/app/vmauth/main.go b/app/vmauth/main.go
index 92d906689d..9611b19a54 100644
--- a/app/vmauth/main.go
+++ b/app/vmauth/main.go
@@ -37,13 +37,15 @@ var (
 		"With enabled proxy protocol http server cannot serve regular /metrics endpoint. Use -pushmetrics.url for metrics pushing")
 	maxIdleConnsPerBackend = flag.Int("maxIdleConnsPerBackend", 100, "The maximum number of idle connections vmauth can open per each backend host. "+
 		"See also -maxConcurrentRequests")
+	idleConnTimeout = flag.Duration("idleConnTimeout", 50*time.Second, `Defines a duration for idle (keep-alive connections) to exist.
+    Consider setting this value less than "-http.idleConnTimeout". It must prevent possible "write: broken pipe" and "read: connection reset by peer" errors.`)
 	responseTimeout       = flag.Duration("responseTimeout", 5*time.Minute, "The timeout for receiving a response from backend")
 	maxConcurrentRequests = flag.Int("maxConcurrentRequests", 1000, "The maximum number of concurrent requests vmauth can process. Other requests are rejected with "+
 		"'429 Too Many Requests' http status code. See also -maxConcurrentPerUserRequests and -maxIdleConnsPerBackend command-line options")
 	maxConcurrentPerUserRequests = flag.Int("maxConcurrentPerUserRequests", 300, "The maximum number of concurrent requests vmauth can process per each configured user. "+
 		"Other requests are rejected with '429 Too Many Requests' http status code. See also -maxConcurrentRequests command-line option and max_concurrent_requests option "+
 		"in per-user config")
-	reloadAuthKey        = flagutil.NewPassword("reloadAuthKey", "Auth key for /-/reload http endpoint. It must be passed as authKey=...")
+	reloadAuthKey        = flagutil.NewPassword("reloadAuthKey", "Auth key for /-/reload http endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings.")
 	logInvalidAuthTokens = flag.Bool("logInvalidAuthTokens", false, "Whether to log requests with invalid auth tokens. "+
 		`Such requests are always counted at vmauth_http_request_errors_total{reason="invalid_auth_token"} metric, which is exposed at /metrics page`)
 	failTimeout               = flag.Duration("failTimeout", 3*time.Second, "Sets a delay period for load balancing to skip a malfunctioning backend")
@@ -199,10 +201,8 @@ func processRequest(w http.ResponseWriter, r *http.Request, ui *UserInfo) {
 		isDefault = true
 	}
 	maxAttempts := up.getBackendsCount()
-	if maxAttempts > 1 {
-		r.Body = &readTrackingBody{
-			r: r.Body,
-		}
+	r.Body = &readTrackingBody{
+		r: r.Body,
 	}
 	for i := 0; i < maxAttempts; i++ {
 		bu := up.getBackendURL()
@@ -243,8 +243,10 @@ func tryProcessingRequest(w http.ResponseWriter, r *http.Request, targetURL *url
 		req.Host = targetURL.Host
 	}
 	updateHeadersByConfig(req.Header, hc.RequestHeaders)
-	res, err := ui.rt.RoundTrip(req)
+	var trivialRetries int
 	rtb, rtbOK := req.Body.(*readTrackingBody)
+again:
+	res, err := ui.rt.RoundTrip(req)
 	if err != nil {
 		if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) {
 			// Do not retry canceled or timed out requests
@@ -267,6 +269,12 @@ func tryProcessingRequest(w http.ResponseWriter, r *http.Request, targetURL *url
 			ui.backendErrors.Inc()
 			return true
 		}
+		// one time retry trivial network errors, such as proxy idle timeout misconfiguration
+		// or socket close by OS
+		if (netutil.IsTrivialNetworkError(err) || errors.Is(err, io.EOF)) && trivialRetries < 1 {
+			trivialRetries++
+			goto again
+		}
 		// Retry the request if its body wasn't read yet. This usually means that the backend isn't reachable.
 		remoteAddr := httpserver.GetQuotedRemoteAddr(r)
 		// NOTE: do not use httpserver.GetRequestURI
@@ -434,6 +442,7 @@ func newRoundTripper(caFileOpt, certFileOpt, keyFileOpt, serverNameOpt string, i
 	tr.ResponseHeaderTimeout = *responseTimeout
 	// Automatic compression must be disabled in order to fix https://github.com/VictoriaMetrics/VictoriaMetrics/issues/535
 	tr.DisableCompression = true
+	tr.IdleConnTimeout = *idleConnTimeout
 	tr.MaxIdleConnsPerHost = *maxIdleConnsPerBackend
 	if tr.MaxIdleConns != 0 && tr.MaxIdleConns < tr.MaxIdleConnsPerHost {
 		tr.MaxIdleConns = tr.MaxIdleConnsPerHost
diff --git a/app/vmctl/barpool/pool.go b/app/vmctl/barpool/pool.go
index 05fe8b4181..deb20b4fb4 100644
--- a/app/vmctl/barpool/pool.go
+++ b/app/vmctl/barpool/pool.go
@@ -5,37 +5,88 @@ package barpool
 
 import (
 	"fmt"
+	"io"
 	"os"
 
-	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/terminal"
 	"github.com/cheggaaa/pb/v3"
+
+	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/terminal"
 )
 
+var isDisabled bool
+
+// Disable sets progress bar to be no-op if v==true
+func Disable(v bool) {
+	isDisabled = v
+}
+
 var pool = pb.NewPool()
 
-// Add adds bar to the global pool
-func Add(bar *pb.ProgressBar) { pool.Add(bar) }
+// Bar is an interface for progress bar
+type Bar interface {
+	Add(value int)
+	Increment()
+	Start()
+	Finish()
+	NewProxyReader(r io.Reader) *pb.Reader
+}
+
+type progressBar struct {
+	*pb.ProgressBar
+}
+
+func (pb *progressBar) Finish()       { pb.ProgressBar.Finish() }
+func (pb *progressBar) Start()        { pb.ProgressBar.Start() }
+func (pb *progressBar) Add(value int) { pb.ProgressBar.Add(value) }
+func (pb *progressBar) Increment()    { pb.ProgressBar.Increment() }
+func (pb *progressBar) NewProxyReader(r io.Reader) *pb.Reader {
+	return pb.ProgressBar.NewProxyReader(r)
+}
+
+type progressBarNoOp struct{}
+
+func (pbno *progressBarNoOp) Finish()                               {}
+func (pbno *progressBarNoOp) Start()                                {}
+func (pbno *progressBarNoOp) Add(int)                               {}
+func (pbno *progressBarNoOp) Increment()                            {}
+func (pbno *progressBarNoOp) NewProxyReader(_ io.Reader) *pb.Reader { return nil }
 
 // Start starts the global pool
 // Must be called after all progress bars were added
-func Start() error { return pool.Start() }
+func Start() error {
+	if isDisabled {
+		return nil
+	}
+	return pool.Start()
+}
 
 // Stop stops the global pool
-func Stop() { _ = pool.Stop() }
+func Stop() {
+	if isDisabled {
+		return
+	}
+	_ = pool.Stop()
+}
 
 // AddWithTemplate adds bar with the given template
 // to the global pool
-func AddWithTemplate(format string, total int) *pb.ProgressBar {
+func AddWithTemplate(format string, total int) Bar {
+	if isDisabled {
+		return &progressBarNoOp{}
+	}
 	tpl := getTemplate(format)
 	bar := pb.ProgressBarTemplate(tpl).New(total)
-	Add(bar)
-	return bar
+	pool.Add(bar)
+	return &progressBar{bar}
 }
 
 // NewSingleProgress returns progress bar with given template
-func NewSingleProgress(format string, total int) *pb.ProgressBar {
+func NewSingleProgress(format string, total int) Bar {
+	if isDisabled {
+		return &progressBarNoOp{}
+	}
 	tpl := getTemplate(format)
-	return pb.ProgressBarTemplate(tpl).New(total)
+	return &progressBar{pb.ProgressBarTemplate(tpl).New(total)}
 }
 
 func getTemplate(format string) string {
diff --git a/app/vmctl/flags.go b/app/vmctl/flags.go
index 51146880ef..e5ae52e542 100644
--- a/app/vmctl/flags.go
+++ b/app/vmctl/flags.go
@@ -10,8 +10,9 @@ import (
 )
 
 const (
-	globalSilent  = "s"
-	globalVerbose = "verbose"
+	globalSilent             = "s"
+	globalVerbose            = "verbose"
+	globalDisableProgressBar = "disable-progress-bar"
 )
 
 var (
@@ -26,6 +27,11 @@ var (
 			Value: false,
 			Usage: "Whether to enable verbosity in logs output.",
 		},
+		&cli.BoolFlag{
+			Name:  globalDisableProgressBar,
+			Value: false,
+			Usage: "Whether to disable progress bar during the import.",
+		},
 	}
 )
 
@@ -39,7 +45,6 @@ const (
 	vmBatchSize          = "vm-batch-size"
 	vmSignificantFigures = "vm-significant-figures"
 	vmRoundDigits        = "vm-round-digits"
-	vmDisableProgressBar = "vm-disable-progress-bar"
 	vmCertFile           = "vm-cert-file"
 	vmKeyFile            = "vm-key-file"
 	vmCAFile             = "vm-CA-file"
@@ -120,10 +125,6 @@ var (
 			Usage: "Optional data transfer rate limit in bytes per second.\n" +
 				"By default, the rate limit is disabled. It can be useful for limiting load on configured via '--vmAddr' destination.",
 		},
-		&cli.BoolFlag{
-			Name:  vmDisableProgressBar,
-			Usage: "Whether to disable progress bar per each worker during the import.",
-		},
 		&cli.StringFlag{
 			Name:  vmCertFile,
 			Usage: "Optional path to client-side TLS certificate file to use when connecting to '--vmAddr'",
diff --git a/app/vmctl/influx.go b/app/vmctl/influx.go
index 41cf740830..eeb91e8207 100644
--- a/app/vmctl/influx.go
+++ b/app/vmctl/influx.go
@@ -18,14 +18,14 @@ type influxProcessor struct {
 	separator   string
 	skipDbLabel bool
 	promMode    bool
-	isSilent    bool
 	isVerbose   bool
 }
 
-func newInfluxProcessor(ic *influx.Client, im *vm.Importer, cc int, separator string, skipDbLabel, promMode, silent, verbose bool) *influxProcessor {
+func newInfluxProcessor(ic *influx.Client, im *vm.Importer, cc int, separator string, skipDbLabel, promMode, verbose bool) *influxProcessor {
 	if cc < 1 {
 		cc = 1
 	}
+
 	return &influxProcessor{
 		ic:          ic,
 		im:          im,
@@ -33,7 +33,6 @@ func newInfluxProcessor(ic *influx.Client, im *vm.Importer, cc int, separator st
 		separator:   separator,
 		skipDbLabel: skipDbLabel,
 		promMode:    promMode,
-		isSilent:    silent,
 		isVerbose:   verbose,
 	}
 }
@@ -48,7 +47,7 @@ func (ip *influxProcessor) run() error {
 	}
 
 	question := fmt.Sprintf("Found %d timeseries to import. Continue?", len(series))
-	if !ip.isSilent && !prompt(question) {
+	if !prompt(question) {
 		return nil
 	}
 
diff --git a/app/vmctl/main.go b/app/vmctl/main.go
index 10ca56d35f..136c186a96 100644
--- a/app/vmctl/main.go
+++ b/app/vmctl/main.go
@@ -16,6 +16,7 @@ import (
 
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/auth"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/backoff"
+	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/barpool"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/native"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/remoteread"
 
@@ -37,15 +38,23 @@ func main() {
 
 	ctx, cancelCtx := context.WithCancel(context.Background())
 	start := time.Now()
+	beforeFn := func(c *cli.Context) error {
+		isSilent = c.Bool(globalSilent)
+		if c.Bool(globalDisableProgressBar) {
+			barpool.Disable(true)
+		}
+		return nil
+	}
 	app := &cli.App{
 		Name:    "vmctl",
 		Usage:   "VictoriaMetrics command-line tool",
 		Version: buildinfo.Version,
 		Commands: []*cli.Command{
 			{
-				Name:  "opentsdb",
-				Usage: "Migrate time series from OpenTSDB",
-				Flags: mergeFlags(globalFlags, otsdbFlags, vmFlags),
+				Name:   "opentsdb",
+				Usage:  "Migrate time series from OpenTSDB",
+				Flags:  mergeFlags(globalFlags, otsdbFlags, vmFlags),
+				Before: beforeFn,
 				Action: func(c *cli.Context) error {
 					fmt.Println("OpenTSDB import mode")
 
@@ -81,22 +90,20 @@ func main() {
 					if err != nil {
 						return fmt.Errorf("failed to init VM configuration: %s", err)
 					}
-					// disable progress bars since openTSDB implementation
-					// does not use progress bar pool
-					vmCfg.DisableProgressBar = true
 					importer, err := vm.NewImporter(ctx, vmCfg)
 					if err != nil {
 						return fmt.Errorf("failed to create VM importer: %s", err)
 					}
 
-					otsdbProcessor := newOtsdbProcessor(otsdbClient, importer, c.Int(otsdbConcurrency), c.Bool(globalSilent), c.Bool(globalVerbose))
+					otsdbProcessor := newOtsdbProcessor(otsdbClient, importer, c.Int(otsdbConcurrency), c.Bool(globalVerbose))
 					return otsdbProcessor.run()
 				},
 			},
 			{
-				Name:  "influx",
-				Usage: "Migrate time series from InfluxDB",
-				Flags: mergeFlags(globalFlags, influxFlags, vmFlags),
+				Name:   "influx",
+				Usage:  "Migrate time series from InfluxDB",
+				Flags:  mergeFlags(globalFlags, influxFlags, vmFlags),
+				Before: beforeFn,
 				Action: func(c *cli.Context) error {
 					fmt.Println("InfluxDB import mode")
 
@@ -148,15 +155,15 @@ func main() {
 						c.String(influxMeasurementFieldSeparator),
 						c.Bool(influxSkipDatabaseLabel),
 						c.Bool(influxPrometheusMode),
-						c.Bool(globalSilent),
 						c.Bool(globalVerbose))
 					return processor.run()
 				},
 			},
 			{
-				Name:  "remote-read",
-				Usage: "Migrate time series via Prometheus remote-read protocol",
-				Flags: mergeFlags(globalFlags, remoteReadFlags, vmFlags),
+				Name:   "remote-read",
+				Usage:  "Migrate time series via Prometheus remote-read protocol",
+				Flags:  mergeFlags(globalFlags, remoteReadFlags, vmFlags),
+				Before: beforeFn,
 				Action: func(c *cli.Context) error {
 					fmt.Println("Remote-read import mode")
 
@@ -209,16 +216,16 @@ func main() {
 							timeReverse: c.Bool(remoteReadFilterTimeReverse),
 						},
 						cc:        c.Int(remoteReadConcurrency),
-						isSilent:  c.Bool(globalSilent),
 						isVerbose: c.Bool(globalVerbose),
 					}
 					return rmp.run(ctx)
 				},
 			},
 			{
-				Name:  "prometheus",
-				Usage: "Migrate time series from Prometheus",
-				Flags: mergeFlags(globalFlags, promFlags, vmFlags),
+				Name:   "prometheus",
+				Usage:  "Migrate time series from Prometheus",
+				Flags:  mergeFlags(globalFlags, promFlags, vmFlags),
+				Before: beforeFn,
 				Action: func(c *cli.Context) error {
 					fmt.Println("Prometheus import mode")
 
@@ -245,17 +252,19 @@ func main() {
 						return fmt.Errorf("failed to create prometheus client: %s", err)
 					}
 					pp := prometheusProcessor{
-						cl: cl,
-						im: importer,
-						cc: c.Int(promConcurrency),
+						cl:        cl,
+						im:        importer,
+						cc:        c.Int(promConcurrency),
+						isVerbose: c.Bool(globalVerbose),
 					}
-					return pp.run(c.Bool(globalSilent), c.Bool(globalVerbose))
+					return pp.run()
 				},
 			},
 			{
-				Name:  "vm-native",
-				Usage: "Migrate time series between VictoriaMetrics installations via native binary format",
-				Flags: mergeFlags(globalFlags, vmNativeFlags),
+				Name:   "vm-native",
+				Usage:  "Migrate time series between VictoriaMetrics installations via native binary format",
+				Flags:  mergeFlags(globalFlags, vmNativeFlags),
+				Before: beforeFn,
 				Action: func(c *cli.Context) error {
 					fmt.Println("VictoriaMetrics Native import mode")
 
@@ -344,7 +353,6 @@ func main() {
 						backoff:                  backoff.New(),
 						cc:                       c.Int(vmConcurrency),
 						disablePerMetricRequests: c.Bool(vmNativeDisablePerMetricMigration),
-						isSilent:                 c.Bool(globalSilent),
 						isNative:                 !c.Bool(vmNativeDisableBinaryProtocol),
 					}
 					return p.run(ctx)
@@ -360,6 +368,7 @@ func main() {
 						Value: false,
 					},
 				},
+				Before: beforeFn,
 				Action: func(c *cli.Context) error {
 					common.StartUnmarshalWorkers()
 					blockPath := c.Args().First()
@@ -433,6 +442,5 @@ func initConfigVM(c *cli.Context) (vm.Config, error) {
 		RoundDigits:        c.Int(vmRoundDigits),
 		ExtraLabels:        c.StringSlice(vmExtraLabel),
 		RateLimit:          c.Int64(vmRateLimit),
-		DisableProgressBar: c.Bool(vmDisableProgressBar),
 	}, nil
 }
diff --git a/app/vmctl/opentsdb.go b/app/vmctl/opentsdb.go
index 07fc3a6d54..437da9e690 100644
--- a/app/vmctl/opentsdb.go
+++ b/app/vmctl/opentsdb.go
@@ -15,7 +15,6 @@ type otsdbProcessor struct {
 	oc        *opentsdb.Client
 	im        *vm.Importer
 	otsdbcc   int
-	isSilent  bool
 	isVerbose bool
 }
 
@@ -26,7 +25,7 @@ type queryObj struct {
 	StartTime int64
 }
 
-func newOtsdbProcessor(oc *opentsdb.Client, im *vm.Importer, otsdbcc int, silent, verbose bool) *otsdbProcessor {
+func newOtsdbProcessor(oc *opentsdb.Client, im *vm.Importer, otsdbcc int, verbose bool) *otsdbProcessor {
 	if otsdbcc < 1 {
 		otsdbcc = 1
 	}
@@ -34,7 +33,6 @@ func newOtsdbProcessor(oc *opentsdb.Client, im *vm.Importer, otsdbcc int, silent
 		oc:        oc,
 		im:        im,
 		otsdbcc:   otsdbcc,
-		isSilent:  silent,
 		isVerbose: verbose,
 	}
 }
@@ -55,7 +53,7 @@ func (op *otsdbProcessor) run() error {
 	}
 
 	question := fmt.Sprintf("Found %d metrics to import. Continue?", len(metrics))
-	if !op.isSilent && !prompt(question) {
+	if !prompt(question) {
 		return nil
 	}
 	op.im.ResetStats()
diff --git a/app/vmctl/prometheus.go b/app/vmctl/prometheus.go
index 4b18bff27a..eba010070a 100644
--- a/app/vmctl/prometheus.go
+++ b/app/vmctl/prometheus.go
@@ -5,11 +5,12 @@ import (
 	"log"
 	"sync"
 
+	"github.com/prometheus/prometheus/tsdb"
+	"github.com/prometheus/prometheus/tsdb/chunkenc"
+
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/barpool"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/prometheus"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/vm"
-	"github.com/prometheus/prometheus/tsdb"
-	"github.com/prometheus/prometheus/tsdb/chunkenc"
 )
 
 type prometheusProcessor struct {
@@ -24,9 +25,12 @@ type prometheusProcessor struct {
 	// and defines number of concurrently
 	// running snapshot block readers
 	cc int
+
+	// isVerbose enables verbose output
+	isVerbose bool
 }
 
-func (pp *prometheusProcessor) run(silent, verbose bool) error {
+func (pp *prometheusProcessor) run() error {
 	blocks, err := pp.cl.Explore()
 	if err != nil {
 		return fmt.Errorf("explore failed: %s", err)
@@ -35,12 +39,11 @@ func (pp *prometheusProcessor) run(silent, verbose bool) error {
 		return fmt.Errorf("found no blocks to import")
 	}
 	question := fmt.Sprintf("Found %d blocks to import. Continue?", len(blocks))
-	if !silent && !prompt(question) {
+	if !prompt(question) {
 		return nil
 	}
 
 	bar := barpool.AddWithTemplate(fmt.Sprintf(barTpl, "Processing blocks"), len(blocks))
-
 	if err := barpool.Start(); err != nil {
 		return err
 	}
@@ -72,7 +75,7 @@ func (pp *prometheusProcessor) run(silent, verbose bool) error {
 			return fmt.Errorf("prometheus error: %s", promErr)
 		case vmErr := <-pp.im.Errors():
 			close(blockReadersCh)
-			return fmt.Errorf("import process failed: %s", wrapErr(vmErr, verbose))
+			return fmt.Errorf("import process failed: %s", wrapErr(vmErr, pp.isVerbose))
 		case blockReadersCh <- br:
 		}
 	}
@@ -85,7 +88,7 @@ func (pp *prometheusProcessor) run(silent, verbose bool) error {
 	// drain import errors channel
 	for vmErr := range pp.im.Errors() {
 		if vmErr.Err != nil {
-			return fmt.Errorf("import process failed: %s", wrapErr(vmErr, verbose))
+			return fmt.Errorf("import process failed: %s", wrapErr(vmErr, pp.isVerbose))
 		}
 	}
 	for err := range errCh {
diff --git a/app/vmctl/prometheus_test.go b/app/vmctl/prometheus_test.go
index dbf74eda5d..13281d0259 100644
--- a/app/vmctl/prometheus_test.go
+++ b/app/vmctl/prometheus_test.go
@@ -25,6 +25,9 @@ const (
 // This test simulates close process if user abort it
 func Test_prometheusProcessor_run(t *testing.T) {
 	t.Skip()
+
+	defer func() { isSilent = false }()
+
 	type fields struct {
 		cfg    prometheus.Config
 		vmCfg  vm.Config
@@ -117,11 +120,12 @@ func Test_prometheusProcessor_run(t *testing.T) {
 		t.Run(tt.name, func(t *testing.T) {
 			client := tt.fields.cl(tt.fields.cfg)
 			importer := tt.fields.im(tt.fields.vmCfg)
-
+			isSilent = tt.args.silent
 			pp := &prometheusProcessor{
-				cl: client,
-				im: importer,
-				cc: tt.fields.cc,
+				cl:        client,
+				im:        importer,
+				cc:        tt.fields.cc,
+				isVerbose: tt.args.verbose,
 			}
 
 			// we should answer on prompt
@@ -157,7 +161,7 @@ func Test_prometheusProcessor_run(t *testing.T) {
 				go tt.fields.closer(importer)
 			}
 
-			if err := pp.run(tt.args.silent, tt.args.verbose); (err != nil) != tt.wantErr {
+			if err := pp.run(); (err != nil) != tt.wantErr {
 				t.Errorf("run() error = %v, wantErr %v", err, tt.wantErr)
 			}
 		})
diff --git a/app/vmctl/remote_read_test.go b/app/vmctl/remote_read_test.go
index 7593313179..c5a69a61ce 100644
--- a/app/vmctl/remote_read_test.go
+++ b/app/vmctl/remote_read_test.go
@@ -6,14 +6,21 @@ import (
 	"testing"
 	"time"
 
+	"github.com/prometheus/prometheus/prompb"
+
+	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/barpool"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/remoteread"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/stepper"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/testdata/servers_integration_test"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/vm"
-	"github.com/prometheus/prometheus/prompb"
 )
 
 func TestRemoteRead(t *testing.T) {
+	barpool.Disable(true)
+	defer func() {
+		barpool.Disable(false)
+	}()
+	defer func() { isSilent = false }()
 
 	var testCases = []struct {
 		name             string
@@ -31,7 +38,7 @@ func TestRemoteRead(t *testing.T) {
 		{
 			name:             "step minute on minute time range",
 			remoteReadConfig: remoteread.Config{Addr: "", LabelName: "__name__", LabelValue: ".*"},
-			vmCfg:            vm.Config{Addr: "", Concurrency: 1, DisableProgressBar: true},
+			vmCfg:            vm.Config{Addr: "", Concurrency: 1},
 			start:            "2022-11-26T11:23:05+02:00",
 			end:              "2022-11-26T11:24:05+02:00",
 			numOfSamples:     2,
@@ -62,7 +69,7 @@ func TestRemoteRead(t *testing.T) {
 		{
 			name:             "step month on month time range",
 			remoteReadConfig: remoteread.Config{Addr: "", LabelName: "__name__", LabelValue: ".*"},
-			vmCfg: vm.Config{Addr: "", Concurrency: 1, DisableProgressBar: true,
+			vmCfg: vm.Config{Addr: "", Concurrency: 1,
 				Transport: http.DefaultTransport.(*http.Transport)},
 			start:            "2022-09-26T11:23:05+02:00",
 			end:              "2022-11-26T11:24:05+02:00",
@@ -157,7 +164,6 @@ func TestRemoteRead(t *testing.T) {
 					chunk:     tt.chunk,
 				},
 				cc:        1,
-				isSilent:  true,
 				isVerbose: false,
 			}
 
@@ -170,6 +176,11 @@ func TestRemoteRead(t *testing.T) {
 }
 
 func TestSteamRemoteRead(t *testing.T) {
+	barpool.Disable(true)
+	defer func() {
+		barpool.Disable(false)
+	}()
+	defer func() { isSilent = false }()
 
 	var testCases = []struct {
 		name             string
@@ -187,7 +198,7 @@ func TestSteamRemoteRead(t *testing.T) {
 		{
 			name:             "step minute on minute time range",
 			remoteReadConfig: remoteread.Config{Addr: "", LabelName: "__name__", LabelValue: ".*", UseStream: true},
-			vmCfg:            vm.Config{Addr: "", Concurrency: 1, DisableProgressBar: true},
+			vmCfg:            vm.Config{Addr: "", Concurrency: 1},
 			start:            "2022-11-26T11:23:05+02:00",
 			end:              "2022-11-26T11:24:05+02:00",
 			numOfSamples:     2,
@@ -218,7 +229,7 @@ func TestSteamRemoteRead(t *testing.T) {
 		{
 			name:             "step month on month time range",
 			remoteReadConfig: remoteread.Config{Addr: "", LabelName: "__name__", LabelValue: ".*", UseStream: true},
-			vmCfg:            vm.Config{Addr: "", Concurrency: 1, DisableProgressBar: true},
+			vmCfg:            vm.Config{Addr: "", Concurrency: 1},
 			start:            "2022-09-26T11:23:05+02:00",
 			end:              "2022-11-26T11:24:05+02:00",
 			numOfSamples:     2,
@@ -312,7 +323,6 @@ func TestSteamRemoteRead(t *testing.T) {
 					chunk:     tt.chunk,
 				},
 				cc:        1,
-				isSilent:  true,
 				isVerbose: false,
 			}
 
diff --git a/app/vmctl/remoteread.go b/app/vmctl/remoteread.go
index 8632369c6f..09ac7f0525 100644
--- a/app/vmctl/remoteread.go
+++ b/app/vmctl/remoteread.go
@@ -7,8 +7,6 @@ import (
 	"sync"
 	"time"
 
-	"github.com/cheggaaa/pb/v3"
-
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/barpool"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/remoteread"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/stepper"
@@ -22,7 +20,6 @@ type remoteReadProcessor struct {
 	src *remoteread.Client
 
 	cc        int
-	isSilent  bool
 	isVerbose bool
 }
 
@@ -50,21 +47,17 @@ func (rrp *remoteReadProcessor) run(ctx context.Context) error {
 
 	question := fmt.Sprintf("Selected time range %q - %q will be split into %d ranges according to %q step. Continue?",
 		rrp.filter.timeStart.String(), rrp.filter.timeEnd.String(), len(ranges), rrp.filter.chunk)
-	if !rrp.isSilent && !prompt(question) {
+	if !prompt(question) {
 		return nil
 	}
 
-	var bar *pb.ProgressBar
-	if !rrp.isSilent {
-		bar = barpool.AddWithTemplate(fmt.Sprintf(barTpl, "Processing ranges"), len(ranges))
-		if err := barpool.Start(); err != nil {
-			return err
-		}
+	bar := barpool.AddWithTemplate(fmt.Sprintf(barTpl, "Processing ranges"), len(ranges))
+	if err := barpool.Start(); err != nil {
+		return err
 	}
+
 	defer func() {
-		if !rrp.isSilent {
-			barpool.Stop()
-		}
+		barpool.Stop()
 		log.Println("Import finished!")
 		log.Print(rrp.dst.Stats())
 	}()
@@ -82,9 +75,7 @@ func (rrp *remoteReadProcessor) run(ctx context.Context) error {
 					errCh <- fmt.Errorf("request failed for: %s", err)
 					return
 				}
-				if bar != nil {
-					bar.Increment()
-				}
+				bar.Increment()
 			}
 		}()
 	}
diff --git a/app/vmctl/utils.go b/app/vmctl/utils.go
index c53b95554e..3fa384d63d 100644
--- a/app/vmctl/utils.go
+++ b/app/vmctl/utils.go
@@ -12,7 +12,13 @@ import (
 
 const barTpl = `{{ blue "%s:" }} {{ counters . }} {{ bar . "[" "โ–ˆ" (cycle . "โ–ˆ") "โ–’" "]" }} {{ percent . }}`
 
+// isSilent should be inited in main
+var isSilent bool
+
 func prompt(question string) bool {
+	if isSilent {
+		return true
+	}
 	isTerminal := terminal.IsTerminal(int(os.Stdout.Fd()))
 	if !isTerminal {
 		return true
diff --git a/app/vmctl/vm/vm.go b/app/vmctl/vm/vm.go
index 539976770f..03183e8675 100644
--- a/app/vmctl/vm/vm.go
+++ b/app/vmctl/vm/vm.go
@@ -16,7 +16,6 @@ import (
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/barpool"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/limiter"
 	"github.com/VictoriaMetrics/VictoriaMetrics/lib/decimal"
-	"github.com/cheggaaa/pb/v3"
 )
 
 // Config contains list of params to configure
@@ -55,8 +54,6 @@ type Config struct {
 	// RateLimit defines a data transfer speed in bytes per second.
 	// Is applied to each worker (see Concurrency) independently.
 	RateLimit int64
-	// Whether to disable progress bar per VM worker
-	DisableProgressBar bool
 }
 
 // Importer performs insertion of timeseries
@@ -159,12 +156,10 @@ func NewImporter(ctx context.Context, cfg Config) (*Importer, error) {
 
 	im.wg.Add(int(cfg.Concurrency))
 	for i := 0; i < int(cfg.Concurrency); i++ {
-		var bar *pb.ProgressBar
-		if !cfg.DisableProgressBar {
-			pbPrefix := fmt.Sprintf(`{{ green "VM worker %d:" }}`, i)
-			bar = barpool.AddWithTemplate(pbPrefix+pbTpl, 0)
-		}
-		go func(bar *pb.ProgressBar) {
+		pbPrefix := fmt.Sprintf(`{{ green "VM worker %d:" }}`, i)
+		bar := barpool.AddWithTemplate(pbPrefix+pbTpl, 0)
+
+		go func(bar barpool.Bar) {
 			defer im.wg.Done()
 			im.startWorker(ctx, bar, cfg.BatchSize, cfg.SignificantFigures, cfg.RoundDigits)
 		}(bar)
@@ -217,7 +212,7 @@ func (im *Importer) Close() {
 	})
 }
 
-func (im *Importer) startWorker(ctx context.Context, bar *pb.ProgressBar, batchSize, significantFigures, roundDigits int) {
+func (im *Importer) startWorker(ctx context.Context, bar barpool.Bar, batchSize, significantFigures, roundDigits int) {
 	var batch []*TimeSeries
 	var dataPoints int
 	var waitForBatch time.Time
@@ -252,9 +247,7 @@ func (im *Importer) startWorker(ctx context.Context, bar *pb.ProgressBar, batchS
 			batch = append(batch, ts)
 			dataPoints += len(ts.Values)
 
-			if bar != nil {
-				bar.Add(len(ts.Values))
-			}
+			bar.Add(len(ts.Values))
 
 			if dataPoints < batchSize {
 				continue
diff --git a/app/vmctl/vm_native.go b/app/vmctl/vm_native.go
index bbdbe5f631..dea0fdc752 100644
--- a/app/vmctl/vm_native.go
+++ b/app/vmctl/vm_native.go
@@ -9,8 +9,6 @@ import (
 	"sync"
 	"time"
 
-	"github.com/cheggaaa/pb/v3"
-
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/backoff"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/barpool"
 	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/limiter"
@@ -33,7 +31,6 @@ type vmNativeProcessor struct {
 	rateLimit    int64
 	interCluster bool
 	cc           int
-	isSilent     bool
 	isNative     bool
 
 	disablePerMetricRequests bool
@@ -82,13 +79,13 @@ func (p *vmNativeProcessor) run(ctx context.Context) error {
 			return fmt.Errorf("failed to get tenants: %w", err)
 		}
 		question := fmt.Sprintf("The following tenants were discovered: %s.\n Continue?", tenants)
-		if !p.isSilent && !prompt(question) {
+		if !prompt(question) {
 			return nil
 		}
 	}
 
 	for _, tenantID := range tenants {
-		err := p.runBackfilling(ctx, tenantID, ranges, p.isSilent)
+		err := p.runBackfilling(ctx, tenantID, ranges)
 		if err != nil {
 			return fmt.Errorf("migration failed: %s", err)
 		}
@@ -100,7 +97,7 @@ func (p *vmNativeProcessor) run(ctx context.Context) error {
 	return nil
 }
 
-func (p *vmNativeProcessor) do(ctx context.Context, f native.Filter, srcURL, dstURL string, bar *pb.ProgressBar) error {
+func (p *vmNativeProcessor) do(ctx context.Context, f native.Filter, srcURL, dstURL string, bar barpool.Bar) error {
 
 	retryableFunc := func() error { return p.runSingle(ctx, f, srcURL, dstURL, bar) }
 	attempts, err := p.backoff.Retry(ctx, retryableFunc)
@@ -114,15 +111,18 @@ func (p *vmNativeProcessor) do(ctx context.Context, f native.Filter, srcURL, dst
 	return nil
 }
 
-func (p *vmNativeProcessor) runSingle(ctx context.Context, f native.Filter, srcURL, dstURL string, bar *pb.ProgressBar) error {
+func (p *vmNativeProcessor) runSingle(ctx context.Context, f native.Filter, srcURL, dstURL string, bar barpool.Bar) error {
 	reader, err := p.src.ExportPipe(ctx, srcURL, f)
 	if err != nil {
 		return fmt.Errorf("failed to init export pipe: %w", err)
 	}
 
-	if p.disablePerMetricRequests && bar != nil {
-		fmt.Printf("Continue import process with filter %s:\n", f.String())
-		reader = bar.NewProxyReader(reader)
+	if p.disablePerMetricRequests {
+		pr := bar.NewProxyReader(reader)
+		if pr != nil {
+			reader = bar.NewProxyReader(reader)
+			fmt.Printf("Continue import process with filter %s:\n", f.String())
+		}
 	}
 
 	pr, pw := io.Pipe()
@@ -155,7 +155,7 @@ func (p *vmNativeProcessor) runSingle(ctx context.Context, f native.Filter, srcU
 	return <-importCh
 }
 
-func (p *vmNativeProcessor) runBackfilling(ctx context.Context, tenantID string, ranges [][]time.Time, silent bool) error {
+func (p *vmNativeProcessor) runBackfilling(ctx context.Context, tenantID string, ranges [][]time.Time) error {
 	exportAddr := nativeExportAddr
 	importAddr := nativeImportAddr
 	if p.isNative {
@@ -194,7 +194,7 @@ func (p *vmNativeProcessor) runBackfilling(ctx context.Context, tenantID string,
 		"": ranges,
 	}
 	if !p.disablePerMetricRequests {
-		metrics, err = p.explore(ctx, p.src, tenantID, ranges, silent)
+		metrics, err = p.explore(ctx, p.src, tenantID, ranges)
 		if err != nil {
 			return fmt.Errorf("failed to explore metric names: %s", err)
 		}
@@ -216,26 +216,24 @@ func (p *vmNativeProcessor) runBackfilling(ctx context.Context, tenantID string,
 		// do not prompt for intercluster because there could be many tenants,
 		// and we don't want to interrupt the process when moving to the next tenant.
 		question := foundSeriesMsg + ". Continue?"
-		if !silent && !prompt(question) {
+		if !prompt(question) {
 			return nil
 		}
 	} else {
 		log.Print(foundSeriesMsg)
 	}
 
-	var bar *pb.ProgressBar
 	barPrefix := "Requests to make"
 	if p.interCluster {
 		barPrefix = fmt.Sprintf("Requests to make for tenant %s", tenantID)
 	}
-	if !silent {
-		bar = barpool.NewSingleProgress(fmt.Sprintf(nativeWithBackoffTpl, barPrefix), requestsToMake)
-		if p.disablePerMetricRequests {
-			bar = barpool.NewSingleProgress(nativeSingleProcessTpl, 0)
-		}
-		bar.Start()
-		defer bar.Finish()
+
+	bar := barpool.NewSingleProgress(fmt.Sprintf(nativeWithBackoffTpl, barPrefix), requestsToMake)
+	if p.disablePerMetricRequests {
+		bar = barpool.NewSingleProgress(nativeSingleProcessTpl, 0)
 	}
+	bar.Start()
+	defer bar.Finish()
 
 	filterCh := make(chan native.Filter)
 	errCh := make(chan error, p.cc)
@@ -251,9 +249,7 @@ func (p *vmNativeProcessor) runBackfilling(ctx context.Context, tenantID string,
 						errCh <- err
 						return
 					}
-					if bar != nil {
-						bar.Increment()
-					}
+					bar.Increment()
 				} else {
 					if err := p.runSingle(ctx, f, srcURL, dstURL, bar); err != nil {
 						errCh <- err
@@ -298,15 +294,12 @@ func (p *vmNativeProcessor) runBackfilling(ctx context.Context, tenantID string,
 	return nil
 }
 
-func (p *vmNativeProcessor) explore(ctx context.Context, src *native.Client, tenantID string, ranges [][]time.Time, silent bool) (map[string][][]time.Time, error) {
+func (p *vmNativeProcessor) explore(ctx context.Context, src *native.Client, tenantID string, ranges [][]time.Time) (map[string][][]time.Time, error) {
 	log.Printf("Exploring metrics...")
 
-	var bar *pb.ProgressBar
-	if !silent {
-		bar = barpool.NewSingleProgress(fmt.Sprintf(nativeWithBackoffTpl, "Explore requests to make"), len(ranges))
-		bar.Start()
-		defer bar.Finish()
-	}
+	bar := barpool.NewSingleProgress(fmt.Sprintf(nativeWithBackoffTpl, "Explore requests to make"), len(ranges))
+	bar.Start()
+	defer bar.Finish()
 
 	metrics := make(map[string][][]time.Time)
 	for _, r := range ranges {
@@ -317,9 +310,7 @@ func (p *vmNativeProcessor) explore(ctx context.Context, src *native.Client, ten
 		for i := range ms {
 			metrics[ms[i]] = append(metrics[ms[i]], r)
 		}
-		if bar != nil {
-			bar.Increment()
-		}
+		bar.Increment()
 	}
 	return metrics, nil
 }
diff --git a/app/vmctl/vm_native_test.go b/app/vmctl/vm_native_test.go
index 78c35612c5..1f24dad560 100644
--- a/app/vmctl/vm_native_test.go
+++ b/app/vmctl/vm_native_test.go
@@ -4,6 +4,7 @@ import (
 	"context"
 	"flag"
 	"fmt"
+	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmctl/barpool"
 	"log"
 	"net/http"
 	"os"
@@ -37,6 +38,12 @@ func Test_vmNativeProcessor_run(t *testing.T) {
 		}
 	}()
 
+	barpool.Disable(true)
+	defer func() {
+		barpool.Disable(false)
+	}()
+	defer func() { isSilent = false }()
+
 	type fields struct {
 		filter       native.Filter
 		dst          *native.Client
@@ -218,6 +225,7 @@ func Test_vmNativeProcessor_run(t *testing.T) {
 				HTTPClient:  &http.Client{Transport: &http.Transport{DisableKeepAlives: false}},
 			}
 
+			isSilent = tt.args.silent
 			p := &vmNativeProcessor{
 				filter:       tt.fields.filter,
 				dst:          tt.fields.dst,
@@ -227,7 +235,6 @@ func Test_vmNativeProcessor_run(t *testing.T) {
 				rateLimit:    tt.fields.rateLimit,
 				interCluster: tt.fields.interCluster,
 				cc:           tt.fields.cc,
-				isSilent:     tt.args.silent,
 				isNative:     true,
 			}
 
diff --git a/app/vminsert/main.go b/app/vminsert/main.go
index 181d00b839..487d4aacde 100644
--- a/app/vminsert/main.go
+++ b/app/vminsert/main.go
@@ -73,8 +73,8 @@ var (
 		"See also -opentsdbHTTPListenAddr.useProxyProtocol")
 	opentsdbHTTPUseProxyProtocol = flag.Bool("opentsdbHTTPListenAddr.useProxyProtocol", false, "Whether to use proxy protocol for connections accepted "+
 		"at -opentsdbHTTPListenAddr . See https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt")
-	configAuthKey          = flagutil.NewPassword("configAuthKey", "Authorization key for accessing /config page. It must be passed via authKey query arg")
-	reloadAuthKey          = flagutil.NewPassword("reloadAuthKey", "Auth key for /-/reload http endpoint. It must be passed as authKey=...")
+	configAuthKey          = flagutil.NewPassword("configAuthKey", "Authorization key for accessing /config page. It must be passed via authKey query arg. It overrides httpAuth.* settings.")
+	reloadAuthKey          = flagutil.NewPassword("reloadAuthKey", "Auth key for /-/reload http endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings.")
 	maxLabelsPerTimeseries = flag.Int("maxLabelsPerTimeseries", 30, "The maximum number of labels accepted per time series. Superfluous labels are dropped. In this case the vm_metrics_with_dropped_labels_total metric at /metrics page is incremented")
 	maxLabelValueLen       = flag.Int("maxLabelValueLen", 1024, "The maximum length of label values in the accepted time series. Longer label values are truncated. In this case the vm_too_long_label_values_total metric at /metrics page is incremented")
 )
diff --git a/app/vmui/packages/vmui/package-lock.json b/app/vmui/packages/vmui/package-lock.json
index 7499f667d7..d895e367aa 100644
--- a/app/vmui/packages/vmui/package-lock.json
+++ b/app/vmui/packages/vmui/package-lock.json
@@ -11,7 +11,6 @@
         "@types/lodash.debounce": "^4.0.6",
         "@types/lodash.get": "^4.4.6",
         "@types/lodash.throttle": "^4.1.6",
-        "@types/marked": "^5.0.0",
         "@types/node": "^20.4.0",
         "@types/qs": "^6.9.7",
         "@types/react-input-mask": "^3.0.2",
@@ -22,7 +21,8 @@
         "lodash.debounce": "^4.0.8",
         "lodash.get": "^4.4.2",
         "lodash.throttle": "^4.1.1",
-        "marked": "^5.1.0",
+        "marked": "^12.0.2",
+        "marked-emoji": "^1.4.0",
         "preact": "^10.7.1",
         "qs": "^6.10.3",
         "react-input-mask": "^2.0.4",
@@ -4272,11 +4272,6 @@
         "@types/lodash": "*"
       }
     },
-    "node_modules/@types/marked": {
-      "version": "5.0.2",
-      "resolved": "https://registry.npmjs.org/@types/marked/-/marked-5.0.2.tgz",
-      "integrity": "sha512-OucS4KMHhFzhz27KxmWg7J+kIYqyqoW5kdIEI319hqARQQUTqhao3M/F+uFnDXD0Rg72iDDZxZNxq5gvctmLlg=="
-    },
     "node_modules/@types/mime": {
       "version": "1.3.5",
       "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
@@ -13598,14 +13593,22 @@
       }
     },
     "node_modules/marked": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/marked/-/marked-5.1.2.tgz",
-      "integrity": "sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==",
+      "version": "12.0.2",
+      "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz",
+      "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==",
       "bin": {
         "marked": "bin/marked.js"
       },
       "engines": {
-        "node": ">= 16"
+        "node": ">= 18"
+      }
+    },
+    "node_modules/marked-emoji": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/marked-emoji/-/marked-emoji-1.4.0.tgz",
+      "integrity": "sha512-/2TJfGzXpiBBq+X3akHHbTrAjZPJDwR+7FV6SyQLECnQEfaoVkrpKZJzHhPTAq3Sl/A1l2frMT0u6b38VBBlNg==",
+      "peerDependencies": {
+        "marked": ">=4 <13"
       }
     },
     "node_modules/mdn-data": {
diff --git a/app/vmui/packages/vmui/package.json b/app/vmui/packages/vmui/package.json
index 6682b1052a..5af4c67b60 100644
--- a/app/vmui/packages/vmui/package.json
+++ b/app/vmui/packages/vmui/package.json
@@ -7,7 +7,6 @@
     "@types/lodash.debounce": "^4.0.6",
     "@types/lodash.get": "^4.4.6",
     "@types/lodash.throttle": "^4.1.6",
-    "@types/marked": "^5.0.0",
     "@types/node": "^20.4.0",
     "@types/qs": "^6.9.7",
     "@types/react-input-mask": "^3.0.2",
@@ -18,7 +17,8 @@
     "lodash.debounce": "^4.0.8",
     "lodash.get": "^4.4.2",
     "lodash.throttle": "^4.1.1",
-    "marked": "^5.1.0",
+    "marked": "^12.0.2",
+    "marked-emoji": "^1.4.0",
     "preact": "^10.7.1",
     "qs": "^6.10.3",
     "react-input-mask": "^2.0.4",
diff --git a/app/vmui/packages/vmui/src/AppLogs.tsx b/app/vmui/packages/vmui/src/AppLogs.tsx
index 698abf94e7..d041679e00 100644
--- a/app/vmui/packages/vmui/src/AppLogs.tsx
+++ b/app/vmui/packages/vmui/src/AppLogs.tsx
@@ -4,6 +4,7 @@ import AppContextProvider from "./contexts/AppContextProvider";
 import ThemeProvider from "./components/Main/ThemeProvider/ThemeProvider";
 import ExploreLogs from "./pages/ExploreLogs/ExploreLogs";
 import LogsLayout from "./layouts/LogsLayout/LogsLayout";
+import "./constants/markedPlugins";
 
 const AppLogs: FC = () => {
   const [loadedTheme, setLoadedTheme] = useState(false);
diff --git a/app/vmui/packages/vmui/src/constants/emojis.ts b/app/vmui/packages/vmui/src/constants/emojis.ts
new file mode 100644
index 0000000000..9f189d734c
--- /dev/null
+++ b/app/vmui/packages/vmui/src/constants/emojis.ts
@@ -0,0 +1,1915 @@
+export default {
+  "100": "๐Ÿ’ฏ",
+  "1234": "๐Ÿ”ข",
+  "grinning": "๐Ÿ˜€",
+  "smiley": "๐Ÿ˜ƒ",
+  "smile": "๐Ÿ˜„",
+  "grin": "๐Ÿ˜",
+  "laughing": "๐Ÿ˜†",
+  "satisfied": "๐Ÿ˜†",
+  "sweat_smile": "๐Ÿ˜…",
+  "rofl": "๐Ÿคฃ",
+  "joy": "๐Ÿ˜‚",
+  "slightly_smiling_face": "๐Ÿ™‚",
+  "upside_down_face": "๐Ÿ™ƒ",
+  "melting_face": "๐Ÿซ ",
+  "wink": "๐Ÿ˜‰",
+  "blush": "๐Ÿ˜Š",
+  "innocent": "๐Ÿ˜‡",
+  "smiling_face_with_three_hearts": "๐Ÿฅฐ",
+  "heart_eyes": "๐Ÿ˜",
+  "star_struck": "๐Ÿคฉ",
+  "kissing_heart": "๐Ÿ˜˜",
+  "kissing": "๐Ÿ˜—",
+  "relaxed": "โ˜บ๏ธ",
+  "kissing_closed_eyes": "๐Ÿ˜š",
+  "kissing_smiling_eyes": "๐Ÿ˜™",
+  "smiling_face_with_tear": "๐Ÿฅฒ",
+  "yum": "๐Ÿ˜‹",
+  "stuck_out_tongue": "๐Ÿ˜›",
+  "stuck_out_tongue_winking_eye": "๐Ÿ˜œ",
+  "zany_face": "๐Ÿคช",
+  "stuck_out_tongue_closed_eyes": "๐Ÿ˜",
+  "money_mouth_face": "๐Ÿค‘",
+  "hugs": "๐Ÿค—",
+  "hand_over_mouth": "๐Ÿคญ",
+  "face_with_open_eyes_and_hand_over_mouth": "๐Ÿซข",
+  "face_with_peeking_eye": "๐Ÿซฃ",
+  "shushing_face": "๐Ÿคซ",
+  "thinking": "๐Ÿค”",
+  "saluting_face": "๐Ÿซก",
+  "zipper_mouth_face": "๐Ÿค",
+  "raised_eyebrow": "๐Ÿคจ",
+  "neutral_face": "๐Ÿ˜",
+  "expressionless": "๐Ÿ˜‘",
+  "no_mouth": "๐Ÿ˜ถ",
+  "dotted_line_face": "๐Ÿซฅ",
+  "face_in_clouds": "๐Ÿ˜ถโ€๐ŸŒซ๏ธ",
+  "smirk": "๐Ÿ˜",
+  "unamused": "๐Ÿ˜’",
+  "roll_eyes": "๐Ÿ™„",
+  "grimacing": "๐Ÿ˜ฌ",
+  "face_exhaling": "๐Ÿ˜ฎโ€๐Ÿ’จ",
+  "lying_face": "๐Ÿคฅ",
+  "shaking_face": "๐Ÿซจ",
+  "relieved": "๐Ÿ˜Œ",
+  "pensive": "๐Ÿ˜”",
+  "sleepy": "๐Ÿ˜ช",
+  "drooling_face": "๐Ÿคค",
+  "sleeping": "๐Ÿ˜ด",
+  "mask": "๐Ÿ˜ท",
+  "face_with_thermometer": "๐Ÿค’",
+  "face_with_head_bandage": "๐Ÿค•",
+  "nauseated_face": "๐Ÿคข",
+  "vomiting_face": "๐Ÿคฎ",
+  "sneezing_face": "๐Ÿคง",
+  "hot_face": "๐Ÿฅต",
+  "cold_face": "๐Ÿฅถ",
+  "woozy_face": "๐Ÿฅด",
+  "dizzy_face": "๐Ÿ˜ต",
+  "face_with_spiral_eyes": "๐Ÿ˜ตโ€๐Ÿ’ซ",
+  "exploding_head": "๐Ÿคฏ",
+  "cowboy_hat_face": "๐Ÿค ",
+  "partying_face": "๐Ÿฅณ",
+  "disguised_face": "๐Ÿฅธ",
+  "sunglasses": "๐Ÿ˜Ž",
+  "nerd_face": "๐Ÿค“",
+  "monocle_face": "๐Ÿง",
+  "confused": "๐Ÿ˜•",
+  "face_with_diagonal_mouth": "๐Ÿซค",
+  "worried": "๐Ÿ˜Ÿ",
+  "slightly_frowning_face": "๐Ÿ™",
+  "frowning_face": "โ˜น๏ธ",
+  "open_mouth": "๐Ÿ˜ฎ",
+  "hushed": "๐Ÿ˜ฏ",
+  "astonished": "๐Ÿ˜ฒ",
+  "flushed": "๐Ÿ˜ณ",
+  "pleading_face": "๐Ÿฅบ",
+  "face_holding_back_tears": "๐Ÿฅน",
+  "frowning": "๐Ÿ˜ฆ",
+  "anguished": "๐Ÿ˜ง",
+  "fearful": "๐Ÿ˜จ",
+  "cold_sweat": "๐Ÿ˜ฐ",
+  "disappointed_relieved": "๐Ÿ˜ฅ",
+  "cry": "๐Ÿ˜ข",
+  "sob": "๐Ÿ˜ญ",
+  "scream": "๐Ÿ˜ฑ",
+  "confounded": "๐Ÿ˜–",
+  "persevere": "๐Ÿ˜ฃ",
+  "disappointed": "๐Ÿ˜ž",
+  "sweat": "๐Ÿ˜“",
+  "weary": "๐Ÿ˜ฉ",
+  "tired_face": "๐Ÿ˜ซ",
+  "yawning_face": "๐Ÿฅฑ",
+  "triumph": "๐Ÿ˜ค",
+  "rage": "๐Ÿ˜ก",
+  "pout": "๐Ÿ˜ก",
+  "angry": "๐Ÿ˜ ",
+  "cursing_face": "๐Ÿคฌ",
+  "smiling_imp": "๐Ÿ˜ˆ",
+  "imp": "๐Ÿ‘ฟ",
+  "skull": "๐Ÿ’€",
+  "skull_and_crossbones": "โ˜ ๏ธ",
+  "hankey": "๐Ÿ’ฉ",
+  "poop": "๐Ÿ’ฉ",
+  "shit": "๐Ÿ’ฉ",
+  "clown_face": "๐Ÿคก",
+  "japanese_ogre": "๐Ÿ‘น",
+  "japanese_goblin": "๐Ÿ‘บ",
+  "ghost": "๐Ÿ‘ป",
+  "alien": "๐Ÿ‘ฝ",
+  "space_invader": "๐Ÿ‘พ",
+  "robot": "๐Ÿค–",
+  "smiley_cat": "๐Ÿ˜บ",
+  "smile_cat": "๐Ÿ˜ธ",
+  "joy_cat": "๐Ÿ˜น",
+  "heart_eyes_cat": "๐Ÿ˜ป",
+  "smirk_cat": "๐Ÿ˜ผ",
+  "kissing_cat": "๐Ÿ˜ฝ",
+  "scream_cat": "๐Ÿ™€",
+  "crying_cat_face": "๐Ÿ˜ฟ",
+  "pouting_cat": "๐Ÿ˜พ",
+  "see_no_evil": "๐Ÿ™ˆ",
+  "hear_no_evil": "๐Ÿ™‰",
+  "speak_no_evil": "๐Ÿ™Š",
+  "love_letter": "๐Ÿ’Œ",
+  "cupid": "๐Ÿ’˜",
+  "gift_heart": "๐Ÿ’",
+  "sparkling_heart": "๐Ÿ’–",
+  "heartpulse": "๐Ÿ’—",
+  "heartbeat": "๐Ÿ’“",
+  "revolving_hearts": "๐Ÿ’ž",
+  "two_hearts": "๐Ÿ’•",
+  "heart_decoration": "๐Ÿ’Ÿ",
+  "heavy_heart_exclamation": "โฃ๏ธ",
+  "broken_heart": "๐Ÿ’”",
+  "heart_on_fire": "โค๏ธโ€๐Ÿ”ฅ",
+  "mending_heart": "โค๏ธโ€๐Ÿฉน",
+  "heart": "โค๏ธ",
+  "pink_heart": "๐Ÿฉท",
+  "orange_heart": "๐Ÿงก",
+  "yellow_heart": "๐Ÿ’›",
+  "green_heart": "๐Ÿ’š",
+  "blue_heart": "๐Ÿ’™",
+  "light_blue_heart": "๐Ÿฉต",
+  "purple_heart": "๐Ÿ’œ",
+  "brown_heart": "๐ŸคŽ",
+  "black_heart": "๐Ÿ–ค",
+  "grey_heart": "๐Ÿฉถ",
+  "white_heart": "๐Ÿค",
+  "kiss": "๐Ÿ’‹",
+  "anger": "๐Ÿ’ข",
+  "boom": "๐Ÿ’ฅ",
+  "collision": "๐Ÿ’ฅ",
+  "dizzy": "๐Ÿ’ซ",
+  "sweat_drops": "๐Ÿ’ฆ",
+  "dash": "๐Ÿ’จ",
+  "hole": "๐Ÿ•ณ๏ธ",
+  "speech_balloon": "๐Ÿ’ฌ",
+  "eye_speech_bubble": "๐Ÿ‘๏ธโ€๐Ÿ—จ๏ธ",
+  "left_speech_bubble": "๐Ÿ—จ๏ธ",
+  "right_anger_bubble": "๐Ÿ—ฏ๏ธ",
+  "thought_balloon": "๐Ÿ’ญ",
+  "zzz": "๐Ÿ’ค",
+  "wave": "๐Ÿ‘‹",
+  "raised_back_of_hand": "๐Ÿคš",
+  "raised_hand_with_fingers_splayed": "๐Ÿ–๏ธ",
+  "hand": "โœ‹",
+  "raised_hand": "โœ‹",
+  "vulcan_salute": "๐Ÿ––",
+  "rightwards_hand": "๐Ÿซฑ",
+  "leftwards_hand": "๐Ÿซฒ",
+  "palm_down_hand": "๐Ÿซณ",
+  "palm_up_hand": "๐Ÿซด",
+  "leftwards_pushing_hand": "๐Ÿซท",
+  "rightwards_pushing_hand": "๐Ÿซธ",
+  "ok_hand": "๐Ÿ‘Œ",
+  "pinched_fingers": "๐ŸคŒ",
+  "pinching_hand": "๐Ÿค",
+  "v": "โœŒ๏ธ",
+  "crossed_fingers": "๐Ÿคž",
+  "hand_with_index_finger_and_thumb_crossed": "๐Ÿซฐ",
+  "love_you_gesture": "๐ŸคŸ",
+  "metal": "๐Ÿค˜",
+  "call_me_hand": "๐Ÿค™",
+  "point_left": "๐Ÿ‘ˆ",
+  "point_right": "๐Ÿ‘‰",
+  "point_up_2": "๐Ÿ‘†",
+  "middle_finger": "๐Ÿ–•",
+  "fu": "๐Ÿ–•",
+  "point_down": "๐Ÿ‘‡",
+  "point_up": "โ˜๏ธ",
+  "index_pointing_at_the_viewer": "๐Ÿซต",
+  "+1": "๐Ÿ‘",
+  "thumbsup": "๐Ÿ‘",
+  "-1": "๐Ÿ‘Ž",
+  "thumbsdown": "๐Ÿ‘Ž",
+  "fist_raised": "โœŠ",
+  "fist": "โœŠ",
+  "fist_oncoming": "๐Ÿ‘Š",
+  "facepunch": "๐Ÿ‘Š",
+  "punch": "๐Ÿ‘Š",
+  "fist_left": "๐Ÿค›",
+  "fist_right": "๐Ÿคœ",
+  "clap": "๐Ÿ‘",
+  "raised_hands": "๐Ÿ™Œ",
+  "heart_hands": "๐Ÿซถ",
+  "open_hands": "๐Ÿ‘",
+  "palms_up_together": "๐Ÿคฒ",
+  "handshake": "๐Ÿค",
+  "pray": "๐Ÿ™",
+  "writing_hand": "โœ๏ธ",
+  "nail_care": "๐Ÿ’…",
+  "selfie": "๐Ÿคณ",
+  "muscle": "๐Ÿ’ช",
+  "mechanical_arm": "๐Ÿฆพ",
+  "mechanical_leg": "๐Ÿฆฟ",
+  "leg": "๐Ÿฆต",
+  "foot": "๐Ÿฆถ",
+  "ear": "๐Ÿ‘‚",
+  "ear_with_hearing_aid": "๐Ÿฆป",
+  "nose": "๐Ÿ‘ƒ",
+  "brain": "๐Ÿง ",
+  "anatomical_heart": "๐Ÿซ€",
+  "lungs": "๐Ÿซ",
+  "tooth": "๐Ÿฆท",
+  "bone": "๐Ÿฆด",
+  "eyes": "๐Ÿ‘€",
+  "eye": "๐Ÿ‘๏ธ",
+  "tongue": "๐Ÿ‘…",
+  "lips": "๐Ÿ‘„",
+  "biting_lip": "๐Ÿซฆ",
+  "baby": "๐Ÿ‘ถ",
+  "child": "๐Ÿง’",
+  "boy": "๐Ÿ‘ฆ",
+  "girl": "๐Ÿ‘ง",
+  "adult": "๐Ÿง‘",
+  "blond_haired_person": "๐Ÿ‘ฑ",
+  "man": "๐Ÿ‘จ",
+  "bearded_person": "๐Ÿง”",
+  "man_beard": "๐Ÿง”โ€โ™‚๏ธ",
+  "woman_beard": "๐Ÿง”โ€โ™€๏ธ",
+  "red_haired_man": "๐Ÿ‘จโ€๐Ÿฆฐ",
+  "curly_haired_man": "๐Ÿ‘จโ€๐Ÿฆฑ",
+  "white_haired_man": "๐Ÿ‘จโ€๐Ÿฆณ",
+  "bald_man": "๐Ÿ‘จโ€๐Ÿฆฒ",
+  "woman": "๐Ÿ‘ฉ",
+  "red_haired_woman": "๐Ÿ‘ฉโ€๐Ÿฆฐ",
+  "person_red_hair": "๐Ÿง‘โ€๐Ÿฆฐ",
+  "curly_haired_woman": "๐Ÿ‘ฉโ€๐Ÿฆฑ",
+  "person_curly_hair": "๐Ÿง‘โ€๐Ÿฆฑ",
+  "white_haired_woman": "๐Ÿ‘ฉโ€๐Ÿฆณ",
+  "person_white_hair": "๐Ÿง‘โ€๐Ÿฆณ",
+  "bald_woman": "๐Ÿ‘ฉโ€๐Ÿฆฒ",
+  "person_bald": "๐Ÿง‘โ€๐Ÿฆฒ",
+  "blond_haired_woman": "๐Ÿ‘ฑโ€โ™€๏ธ",
+  "blonde_woman": "๐Ÿ‘ฑโ€โ™€๏ธ",
+  "blond_haired_man": "๐Ÿ‘ฑโ€โ™‚๏ธ",
+  "older_adult": "๐Ÿง“",
+  "older_man": "๐Ÿ‘ด",
+  "older_woman": "๐Ÿ‘ต",
+  "frowning_person": "๐Ÿ™",
+  "frowning_man": "๐Ÿ™โ€โ™‚๏ธ",
+  "frowning_woman": "๐Ÿ™โ€โ™€๏ธ",
+  "pouting_face": "๐Ÿ™Ž",
+  "pouting_man": "๐Ÿ™Žโ€โ™‚๏ธ",
+  "pouting_woman": "๐Ÿ™Žโ€โ™€๏ธ",
+  "no_good": "๐Ÿ™…",
+  "no_good_man": "๐Ÿ™…โ€โ™‚๏ธ",
+  "ng_man": "๐Ÿ™…โ€โ™‚๏ธ",
+  "no_good_woman": "๐Ÿ™…โ€โ™€๏ธ",
+  "ng_woman": "๐Ÿ™…โ€โ™€๏ธ",
+  "ok_person": "๐Ÿ™†",
+  "ok_man": "๐Ÿ™†โ€โ™‚๏ธ",
+  "ok_woman": "๐Ÿ™†โ€โ™€๏ธ",
+  "tipping_hand_person": "๐Ÿ’",
+  "information_desk_person": "๐Ÿ’",
+  "tipping_hand_man": "๐Ÿ’โ€โ™‚๏ธ",
+  "sassy_man": "๐Ÿ’โ€โ™‚๏ธ",
+  "tipping_hand_woman": "๐Ÿ’โ€โ™€๏ธ",
+  "sassy_woman": "๐Ÿ’โ€โ™€๏ธ",
+  "raising_hand": "๐Ÿ™‹",
+  "raising_hand_man": "๐Ÿ™‹โ€โ™‚๏ธ",
+  "raising_hand_woman": "๐Ÿ™‹โ€โ™€๏ธ",
+  "deaf_person": "๐Ÿง",
+  "deaf_man": "๐Ÿงโ€โ™‚๏ธ",
+  "deaf_woman": "๐Ÿงโ€โ™€๏ธ",
+  "bow": "๐Ÿ™‡",
+  "bowing_man": "๐Ÿ™‡โ€โ™‚๏ธ",
+  "bowing_woman": "๐Ÿ™‡โ€โ™€๏ธ",
+  "facepalm": "๐Ÿคฆ",
+  "man_facepalming": "๐Ÿคฆโ€โ™‚๏ธ",
+  "woman_facepalming": "๐Ÿคฆโ€โ™€๏ธ",
+  "shrug": "๐Ÿคท",
+  "man_shrugging": "๐Ÿคทโ€โ™‚๏ธ",
+  "woman_shrugging": "๐Ÿคทโ€โ™€๏ธ",
+  "health_worker": "๐Ÿง‘โ€โš•๏ธ",
+  "man_health_worker": "๐Ÿ‘จโ€โš•๏ธ",
+  "woman_health_worker": "๐Ÿ‘ฉโ€โš•๏ธ",
+  "student": "๐Ÿง‘โ€๐ŸŽ“",
+  "man_student": "๐Ÿ‘จโ€๐ŸŽ“",
+  "woman_student": "๐Ÿ‘ฉโ€๐ŸŽ“",
+  "teacher": "๐Ÿง‘โ€๐Ÿซ",
+  "man_teacher": "๐Ÿ‘จโ€๐Ÿซ",
+  "woman_teacher": "๐Ÿ‘ฉโ€๐Ÿซ",
+  "judge": "๐Ÿง‘โ€โš–๏ธ",
+  "man_judge": "๐Ÿ‘จโ€โš–๏ธ",
+  "woman_judge": "๐Ÿ‘ฉโ€โš–๏ธ",
+  "farmer": "๐Ÿง‘โ€๐ŸŒพ",
+  "man_farmer": "๐Ÿ‘จโ€๐ŸŒพ",
+  "woman_farmer": "๐Ÿ‘ฉโ€๐ŸŒพ",
+  "cook": "๐Ÿง‘โ€๐Ÿณ",
+  "man_cook": "๐Ÿ‘จโ€๐Ÿณ",
+  "woman_cook": "๐Ÿ‘ฉโ€๐Ÿณ",
+  "mechanic": "๐Ÿง‘โ€๐Ÿ”ง",
+  "man_mechanic": "๐Ÿ‘จโ€๐Ÿ”ง",
+  "woman_mechanic": "๐Ÿ‘ฉโ€๐Ÿ”ง",
+  "factory_worker": "๐Ÿง‘โ€๐Ÿญ",
+  "man_factory_worker": "๐Ÿ‘จโ€๐Ÿญ",
+  "woman_factory_worker": "๐Ÿ‘ฉโ€๐Ÿญ",
+  "office_worker": "๐Ÿง‘โ€๐Ÿ’ผ",
+  "man_office_worker": "๐Ÿ‘จโ€๐Ÿ’ผ",
+  "woman_office_worker": "๐Ÿ‘ฉโ€๐Ÿ’ผ",
+  "scientist": "๐Ÿง‘โ€๐Ÿ”ฌ",
+  "man_scientist": "๐Ÿ‘จโ€๐Ÿ”ฌ",
+  "woman_scientist": "๐Ÿ‘ฉโ€๐Ÿ”ฌ",
+  "technologist": "๐Ÿง‘โ€๐Ÿ’ป",
+  "man_technologist": "๐Ÿ‘จโ€๐Ÿ’ป",
+  "woman_technologist": "๐Ÿ‘ฉโ€๐Ÿ’ป",
+  "singer": "๐Ÿง‘โ€๐ŸŽค",
+  "man_singer": "๐Ÿ‘จโ€๐ŸŽค",
+  "woman_singer": "๐Ÿ‘ฉโ€๐ŸŽค",
+  "artist": "๐Ÿง‘โ€๐ŸŽจ",
+  "man_artist": "๐Ÿ‘จโ€๐ŸŽจ",
+  "woman_artist": "๐Ÿ‘ฉโ€๐ŸŽจ",
+  "pilot": "๐Ÿง‘โ€โœˆ๏ธ",
+  "man_pilot": "๐Ÿ‘จโ€โœˆ๏ธ",
+  "woman_pilot": "๐Ÿ‘ฉโ€โœˆ๏ธ",
+  "astronaut": "๐Ÿง‘โ€๐Ÿš€",
+  "man_astronaut": "๐Ÿ‘จโ€๐Ÿš€",
+  "woman_astronaut": "๐Ÿ‘ฉโ€๐Ÿš€",
+  "firefighter": "๐Ÿง‘โ€๐Ÿš’",
+  "man_firefighter": "๐Ÿ‘จโ€๐Ÿš’",
+  "woman_firefighter": "๐Ÿ‘ฉโ€๐Ÿš’",
+  "police_officer": "๐Ÿ‘ฎ",
+  "cop": "๐Ÿ‘ฎ",
+  "policeman": "๐Ÿ‘ฎโ€โ™‚๏ธ",
+  "policewoman": "๐Ÿ‘ฎโ€โ™€๏ธ",
+  "detective": "๐Ÿ•ต๏ธ",
+  "male_detective": "๐Ÿ•ต๏ธโ€โ™‚๏ธ",
+  "female_detective": "๐Ÿ•ต๏ธโ€โ™€๏ธ",
+  "guard": "๐Ÿ’‚",
+  "guardsman": "๐Ÿ’‚โ€โ™‚๏ธ",
+  "guardswoman": "๐Ÿ’‚โ€โ™€๏ธ",
+  "ninja": "๐Ÿฅท",
+  "construction_worker": "๐Ÿ‘ท",
+  "construction_worker_man": "๐Ÿ‘ทโ€โ™‚๏ธ",
+  "construction_worker_woman": "๐Ÿ‘ทโ€โ™€๏ธ",
+  "person_with_crown": "๐Ÿซ…",
+  "prince": "๐Ÿคด",
+  "princess": "๐Ÿ‘ธ",
+  "person_with_turban": "๐Ÿ‘ณ",
+  "man_with_turban": "๐Ÿ‘ณโ€โ™‚๏ธ",
+  "woman_with_turban": "๐Ÿ‘ณโ€โ™€๏ธ",
+  "man_with_gua_pi_mao": "๐Ÿ‘ฒ",
+  "woman_with_headscarf": "๐Ÿง•",
+  "person_in_tuxedo": "๐Ÿคต",
+  "man_in_tuxedo": "๐Ÿคตโ€โ™‚๏ธ",
+  "woman_in_tuxedo": "๐Ÿคตโ€โ™€๏ธ",
+  "person_with_veil": "๐Ÿ‘ฐ",
+  "man_with_veil": "๐Ÿ‘ฐโ€โ™‚๏ธ",
+  "woman_with_veil": "๐Ÿ‘ฐโ€โ™€๏ธ",
+  "bride_with_veil": "๐Ÿ‘ฐโ€โ™€๏ธ",
+  "pregnant_woman": "๐Ÿคฐ",
+  "pregnant_man": "๐Ÿซƒ",
+  "pregnant_person": "๐Ÿซ„",
+  "breast_feeding": "๐Ÿคฑ",
+  "woman_feeding_baby": "๐Ÿ‘ฉโ€๐Ÿผ",
+  "man_feeding_baby": "๐Ÿ‘จโ€๐Ÿผ",
+  "person_feeding_baby": "๐Ÿง‘โ€๐Ÿผ",
+  "angel": "๐Ÿ‘ผ",
+  "santa": "๐ŸŽ…",
+  "mrs_claus": "๐Ÿคถ",
+  "mx_claus": "๐Ÿง‘โ€๐ŸŽ„",
+  "superhero": "๐Ÿฆธ",
+  "superhero_man": "๐Ÿฆธโ€โ™‚๏ธ",
+  "superhero_woman": "๐Ÿฆธโ€โ™€๏ธ",
+  "supervillain": "๐Ÿฆน",
+  "supervillain_man": "๐Ÿฆนโ€โ™‚๏ธ",
+  "supervillain_woman": "๐Ÿฆนโ€โ™€๏ธ",
+  "mage": "๐Ÿง™",
+  "mage_man": "๐Ÿง™โ€โ™‚๏ธ",
+  "mage_woman": "๐Ÿง™โ€โ™€๏ธ",
+  "fairy": "๐Ÿงš",
+  "fairy_man": "๐Ÿงšโ€โ™‚๏ธ",
+  "fairy_woman": "๐Ÿงšโ€โ™€๏ธ",
+  "vampire": "๐Ÿง›",
+  "vampire_man": "๐Ÿง›โ€โ™‚๏ธ",
+  "vampire_woman": "๐Ÿง›โ€โ™€๏ธ",
+  "merperson": "๐Ÿงœ",
+  "merman": "๐Ÿงœโ€โ™‚๏ธ",
+  "mermaid": "๐Ÿงœโ€โ™€๏ธ",
+  "elf": "๐Ÿง",
+  "elf_man": "๐Ÿงโ€โ™‚๏ธ",
+  "elf_woman": "๐Ÿงโ€โ™€๏ธ",
+  "genie": "๐Ÿงž",
+  "genie_man": "๐Ÿงžโ€โ™‚๏ธ",
+  "genie_woman": "๐Ÿงžโ€โ™€๏ธ",
+  "zombie": "๐ŸงŸ",
+  "zombie_man": "๐ŸงŸโ€โ™‚๏ธ",
+  "zombie_woman": "๐ŸงŸโ€โ™€๏ธ",
+  "troll": "๐ŸงŒ",
+  "massage": "๐Ÿ’†",
+  "massage_man": "๐Ÿ’†โ€โ™‚๏ธ",
+  "massage_woman": "๐Ÿ’†โ€โ™€๏ธ",
+  "haircut": "๐Ÿ’‡",
+  "haircut_man": "๐Ÿ’‡โ€โ™‚๏ธ",
+  "haircut_woman": "๐Ÿ’‡โ€โ™€๏ธ",
+  "walking": "๐Ÿšถ",
+  "walking_man": "๐Ÿšถโ€โ™‚๏ธ",
+  "walking_woman": "๐Ÿšถโ€โ™€๏ธ",
+  "standing_person": "๐Ÿง",
+  "standing_man": "๐Ÿงโ€โ™‚๏ธ",
+  "standing_woman": "๐Ÿงโ€โ™€๏ธ",
+  "kneeling_person": "๐ŸงŽ",
+  "kneeling_man": "๐ŸงŽโ€โ™‚๏ธ",
+  "kneeling_woman": "๐ŸงŽโ€โ™€๏ธ",
+  "person_with_probing_cane": "๐Ÿง‘โ€๐Ÿฆฏ",
+  "man_with_probing_cane": "๐Ÿ‘จโ€๐Ÿฆฏ",
+  "woman_with_probing_cane": "๐Ÿ‘ฉโ€๐Ÿฆฏ",
+  "person_in_motorized_wheelchair": "๐Ÿง‘โ€๐Ÿฆผ",
+  "man_in_motorized_wheelchair": "๐Ÿ‘จโ€๐Ÿฆผ",
+  "woman_in_motorized_wheelchair": "๐Ÿ‘ฉโ€๐Ÿฆผ",
+  "person_in_manual_wheelchair": "๐Ÿง‘โ€๐Ÿฆฝ",
+  "man_in_manual_wheelchair": "๐Ÿ‘จโ€๐Ÿฆฝ",
+  "woman_in_manual_wheelchair": "๐Ÿ‘ฉโ€๐Ÿฆฝ",
+  "runner": "๐Ÿƒ",
+  "running": "๐Ÿƒ",
+  "running_man": "๐Ÿƒโ€โ™‚๏ธ",
+  "running_woman": "๐Ÿƒโ€โ™€๏ธ",
+  "woman_dancing": "๐Ÿ’ƒ",
+  "dancer": "๐Ÿ’ƒ",
+  "man_dancing": "๐Ÿ•บ",
+  "business_suit_levitating": "๐Ÿ•ด๏ธ",
+  "dancers": "๐Ÿ‘ฏ",
+  "dancing_men": "๐Ÿ‘ฏโ€โ™‚๏ธ",
+  "dancing_women": "๐Ÿ‘ฏโ€โ™€๏ธ",
+  "sauna_person": "๐Ÿง–",
+  "sauna_man": "๐Ÿง–โ€โ™‚๏ธ",
+  "sauna_woman": "๐Ÿง–โ€โ™€๏ธ",
+  "climbing": "๐Ÿง—",
+  "climbing_man": "๐Ÿง—โ€โ™‚๏ธ",
+  "climbing_woman": "๐Ÿง—โ€โ™€๏ธ",
+  "person_fencing": "๐Ÿคบ",
+  "horse_racing": "๐Ÿ‡",
+  "skier": "โ›ท๏ธ",
+  "snowboarder": "๐Ÿ‚",
+  "golfing": "๐ŸŒ๏ธ",
+  "golfing_man": "๐ŸŒ๏ธโ€โ™‚๏ธ",
+  "golfing_woman": "๐ŸŒ๏ธโ€โ™€๏ธ",
+  "surfer": "๐Ÿ„",
+  "surfing_man": "๐Ÿ„โ€โ™‚๏ธ",
+  "surfing_woman": "๐Ÿ„โ€โ™€๏ธ",
+  "rowboat": "๐Ÿšฃ",
+  "rowing_man": "๐Ÿšฃโ€โ™‚๏ธ",
+  "rowing_woman": "๐Ÿšฃโ€โ™€๏ธ",
+  "swimmer": "๐ŸŠ",
+  "swimming_man": "๐ŸŠโ€โ™‚๏ธ",
+  "swimming_woman": "๐ŸŠโ€โ™€๏ธ",
+  "bouncing_ball_person": "โ›น๏ธ",
+  "bouncing_ball_man": "โ›น๏ธโ€โ™‚๏ธ",
+  "basketball_man": "โ›น๏ธโ€โ™‚๏ธ",
+  "bouncing_ball_woman": "โ›น๏ธโ€โ™€๏ธ",
+  "basketball_woman": "โ›น๏ธโ€โ™€๏ธ",
+  "weight_lifting": "๐Ÿ‹๏ธ",
+  "weight_lifting_man": "๐Ÿ‹๏ธโ€โ™‚๏ธ",
+  "weight_lifting_woman": "๐Ÿ‹๏ธโ€โ™€๏ธ",
+  "bicyclist": "๐Ÿšด",
+  "biking_man": "๐Ÿšดโ€โ™‚๏ธ",
+  "biking_woman": "๐Ÿšดโ€โ™€๏ธ",
+  "mountain_bicyclist": "๐Ÿšต",
+  "mountain_biking_man": "๐Ÿšตโ€โ™‚๏ธ",
+  "mountain_biking_woman": "๐Ÿšตโ€โ™€๏ธ",
+  "cartwheeling": "๐Ÿคธ",
+  "man_cartwheeling": "๐Ÿคธโ€โ™‚๏ธ",
+  "woman_cartwheeling": "๐Ÿคธโ€โ™€๏ธ",
+  "wrestling": "๐Ÿคผ",
+  "men_wrestling": "๐Ÿคผโ€โ™‚๏ธ",
+  "women_wrestling": "๐Ÿคผโ€โ™€๏ธ",
+  "water_polo": "๐Ÿคฝ",
+  "man_playing_water_polo": "๐Ÿคฝโ€โ™‚๏ธ",
+  "woman_playing_water_polo": "๐Ÿคฝโ€โ™€๏ธ",
+  "handball_person": "๐Ÿคพ",
+  "man_playing_handball": "๐Ÿคพโ€โ™‚๏ธ",
+  "woman_playing_handball": "๐Ÿคพโ€โ™€๏ธ",
+  "juggling_person": "๐Ÿคน",
+  "man_juggling": "๐Ÿคนโ€โ™‚๏ธ",
+  "woman_juggling": "๐Ÿคนโ€โ™€๏ธ",
+  "lotus_position": "๐Ÿง˜",
+  "lotus_position_man": "๐Ÿง˜โ€โ™‚๏ธ",
+  "lotus_position_woman": "๐Ÿง˜โ€โ™€๏ธ",
+  "bath": "๐Ÿ›€",
+  "sleeping_bed": "๐Ÿ›Œ",
+  "people_holding_hands": "๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘",
+  "two_women_holding_hands": "๐Ÿ‘ญ",
+  "couple": "๐Ÿ‘ซ",
+  "two_men_holding_hands": "๐Ÿ‘ฌ",
+  "couplekiss": "๐Ÿ’",
+  "couplekiss_man_woman": "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ",
+  "couplekiss_man_man": "๐Ÿ‘จโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ",
+  "couplekiss_woman_woman": "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ",
+  "couple_with_heart": "๐Ÿ’‘",
+  "couple_with_heart_woman_man": "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘จ",
+  "couple_with_heart_man_man": "๐Ÿ‘จโ€โค๏ธโ€๐Ÿ‘จ",
+  "couple_with_heart_woman_woman": "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘ฉ",
+  "family": "๐Ÿ‘ช",
+  "family_man_woman_boy": "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ",
+  "family_man_woman_girl": "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง",
+  "family_man_woman_girl_boy": "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ",
+  "family_man_woman_boy_boy": "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ",
+  "family_man_woman_girl_girl": "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง",
+  "family_man_man_boy": "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ",
+  "family_man_man_girl": "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง",
+  "family_man_man_girl_boy": "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ",
+  "family_man_man_boy_boy": "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ",
+  "family_man_man_girl_girl": "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง",
+  "family_woman_woman_boy": "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ",
+  "family_woman_woman_girl": "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง",
+  "family_woman_woman_girl_boy": "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ",
+  "family_woman_woman_boy_boy": "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ",
+  "family_woman_woman_girl_girl": "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง",
+  "family_man_boy": "๐Ÿ‘จโ€๐Ÿ‘ฆ",
+  "family_man_boy_boy": "๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ",
+  "family_man_girl": "๐Ÿ‘จโ€๐Ÿ‘ง",
+  "family_man_girl_boy": "๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ",
+  "family_man_girl_girl": "๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง",
+  "family_woman_boy": "๐Ÿ‘ฉโ€๐Ÿ‘ฆ",
+  "family_woman_boy_boy": "๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ",
+  "family_woman_girl": "๐Ÿ‘ฉโ€๐Ÿ‘ง",
+  "family_woman_girl_boy": "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ",
+  "family_woman_girl_girl": "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง",
+  "speaking_head": "๐Ÿ—ฃ๏ธ",
+  "bust_in_silhouette": "๐Ÿ‘ค",
+  "busts_in_silhouette": "๐Ÿ‘ฅ",
+  "people_hugging": "๐Ÿซ‚",
+  "footprints": "๐Ÿ‘ฃ",
+  "monkey_face": "๐Ÿต",
+  "monkey": "๐Ÿ’",
+  "gorilla": "๐Ÿฆ",
+  "orangutan": "๐Ÿฆง",
+  "dog": "๐Ÿถ",
+  "dog2": "๐Ÿ•",
+  "guide_dog": "๐Ÿฆฎ",
+  "service_dog": "๐Ÿ•โ€๐Ÿฆบ",
+  "poodle": "๐Ÿฉ",
+  "wolf": "๐Ÿบ",
+  "fox_face": "๐ŸฆŠ",
+  "raccoon": "๐Ÿฆ",
+  "cat": "๐Ÿฑ",
+  "cat2": "๐Ÿˆ",
+  "black_cat": "๐Ÿˆโ€โฌ›",
+  "lion": "๐Ÿฆ",
+  "tiger": "๐Ÿฏ",
+  "tiger2": "๐Ÿ…",
+  "leopard": "๐Ÿ†",
+  "horse": "๐Ÿด",
+  "moose": "๐ŸซŽ",
+  "donkey": "๐Ÿซ",
+  "racehorse": "๐ŸŽ",
+  "unicorn": "๐Ÿฆ„",
+  "zebra": "๐Ÿฆ“",
+  "deer": "๐ŸฆŒ",
+  "bison": "๐Ÿฆฌ",
+  "cow": "๐Ÿฎ",
+  "ox": "๐Ÿ‚",
+  "water_buffalo": "๐Ÿƒ",
+  "cow2": "๐Ÿ„",
+  "pig": "๐Ÿท",
+  "pig2": "๐Ÿ–",
+  "boar": "๐Ÿ—",
+  "pig_nose": "๐Ÿฝ",
+  "ram": "๐Ÿ",
+  "sheep": "๐Ÿ‘",
+  "goat": "๐Ÿ",
+  "dromedary_camel": "๐Ÿช",
+  "camel": "๐Ÿซ",
+  "llama": "๐Ÿฆ™",
+  "giraffe": "๐Ÿฆ’",
+  "elephant": "๐Ÿ˜",
+  "mammoth": "๐Ÿฆฃ",
+  "rhinoceros": "๐Ÿฆ",
+  "hippopotamus": "๐Ÿฆ›",
+  "mouse": "๐Ÿญ",
+  "mouse2": "๐Ÿ",
+  "rat": "๐Ÿ€",
+  "hamster": "๐Ÿน",
+  "rabbit": "๐Ÿฐ",
+  "rabbit2": "๐Ÿ‡",
+  "chipmunk": "๐Ÿฟ๏ธ",
+  "beaver": "๐Ÿฆซ",
+  "hedgehog": "๐Ÿฆ”",
+  "bat": "๐Ÿฆ‡",
+  "bear": "๐Ÿป",
+  "polar_bear": "๐Ÿปโ€โ„๏ธ",
+  "koala": "๐Ÿจ",
+  "panda_face": "๐Ÿผ",
+  "sloth": "๐Ÿฆฅ",
+  "otter": "๐Ÿฆฆ",
+  "skunk": "๐Ÿฆจ",
+  "kangaroo": "๐Ÿฆ˜",
+  "badger": "๐Ÿฆก",
+  "feet": "๐Ÿพ",
+  "paw_prints": "๐Ÿพ",
+  "turkey": "๐Ÿฆƒ",
+  "chicken": "๐Ÿ”",
+  "rooster": "๐Ÿ“",
+  "hatching_chick": "๐Ÿฃ",
+  "baby_chick": "๐Ÿค",
+  "hatched_chick": "๐Ÿฅ",
+  "bird": "๐Ÿฆ",
+  "penguin": "๐Ÿง",
+  "dove": "๐Ÿ•Š๏ธ",
+  "eagle": "๐Ÿฆ…",
+  "duck": "๐Ÿฆ†",
+  "swan": "๐Ÿฆข",
+  "owl": "๐Ÿฆ‰",
+  "dodo": "๐Ÿฆค",
+  "feather": "๐Ÿชถ",
+  "flamingo": "๐Ÿฆฉ",
+  "peacock": "๐Ÿฆš",
+  "parrot": "๐Ÿฆœ",
+  "wing": "๐Ÿชฝ",
+  "black_bird": "๐Ÿฆโ€โฌ›",
+  "goose": "๐Ÿชฟ",
+  "frog": "๐Ÿธ",
+  "crocodile": "๐ŸŠ",
+  "turtle": "๐Ÿข",
+  "lizard": "๐ŸฆŽ",
+  "snake": "๐Ÿ",
+  "dragon_face": "๐Ÿฒ",
+  "dragon": "๐Ÿ‰",
+  "sauropod": "๐Ÿฆ•",
+  "t-rex": "๐Ÿฆ–",
+  "whale": "๐Ÿณ",
+  "whale2": "๐Ÿ‹",
+  "dolphin": "๐Ÿฌ",
+  "flipper": "๐Ÿฌ",
+  "seal": "๐Ÿฆญ",
+  "fish": "๐ŸŸ",
+  "tropical_fish": "๐Ÿ ",
+  "blowfish": "๐Ÿก",
+  "shark": "๐Ÿฆˆ",
+  "octopus": "๐Ÿ™",
+  "shell": "๐Ÿš",
+  "coral": "๐Ÿชธ",
+  "jellyfish": "๐Ÿชผ",
+  "snail": "๐ŸŒ",
+  "butterfly": "๐Ÿฆ‹",
+  "bug": "๐Ÿ›",
+  "ant": "๐Ÿœ",
+  "bee": "๐Ÿ",
+  "honeybee": "๐Ÿ",
+  "beetle": "๐Ÿชฒ",
+  "lady_beetle": "๐Ÿž",
+  "cricket": "๐Ÿฆ—",
+  "cockroach": "๐Ÿชณ",
+  "spider": "๐Ÿ•ท๏ธ",
+  "spider_web": "๐Ÿ•ธ๏ธ",
+  "scorpion": "๐Ÿฆ‚",
+  "mosquito": "๐ŸฆŸ",
+  "fly": "๐Ÿชฐ",
+  "worm": "๐Ÿชฑ",
+  "microbe": "๐Ÿฆ ",
+  "bouquet": "๐Ÿ’",
+  "cherry_blossom": "๐ŸŒธ",
+  "white_flower": "๐Ÿ’ฎ",
+  "lotus": "๐Ÿชท",
+  "rosette": "๐Ÿต๏ธ",
+  "rose": "๐ŸŒน",
+  "wilted_flower": "๐Ÿฅ€",
+  "hibiscus": "๐ŸŒบ",
+  "sunflower": "๐ŸŒป",
+  "blossom": "๐ŸŒผ",
+  "tulip": "๐ŸŒท",
+  "hyacinth": "๐Ÿชป",
+  "seedling": "๐ŸŒฑ",
+  "potted_plant": "๐Ÿชด",
+  "evergreen_tree": "๐ŸŒฒ",
+  "deciduous_tree": "๐ŸŒณ",
+  "palm_tree": "๐ŸŒด",
+  "cactus": "๐ŸŒต",
+  "ear_of_rice": "๐ŸŒพ",
+  "herb": "๐ŸŒฟ",
+  "shamrock": "โ˜˜๏ธ",
+  "four_leaf_clover": "๐Ÿ€",
+  "maple_leaf": "๐Ÿ",
+  "fallen_leaf": "๐Ÿ‚",
+  "leaves": "๐Ÿƒ",
+  "empty_nest": "๐Ÿชน",
+  "nest_with_eggs": "๐Ÿชบ",
+  "mushroom": "๐Ÿ„",
+  "grapes": "๐Ÿ‡",
+  "melon": "๐Ÿˆ",
+  "watermelon": "๐Ÿ‰",
+  "tangerine": "๐ŸŠ",
+  "orange": "๐ŸŠ",
+  "mandarin": "๐ŸŠ",
+  "lemon": "๐Ÿ‹",
+  "banana": "๐ŸŒ",
+  "pineapple": "๐Ÿ",
+  "mango": "๐Ÿฅญ",
+  "apple": "๐ŸŽ",
+  "green_apple": "๐Ÿ",
+  "pear": "๐Ÿ",
+  "peach": "๐Ÿ‘",
+  "cherries": "๐Ÿ’",
+  "strawberry": "๐Ÿ“",
+  "blueberries": "๐Ÿซ",
+  "kiwi_fruit": "๐Ÿฅ",
+  "tomato": "๐Ÿ…",
+  "olive": "๐Ÿซ’",
+  "coconut": "๐Ÿฅฅ",
+  "avocado": "๐Ÿฅ‘",
+  "eggplant": "๐Ÿ†",
+  "potato": "๐Ÿฅ”",
+  "carrot": "๐Ÿฅ•",
+  "corn": "๐ŸŒฝ",
+  "hot_pepper": "๐ŸŒถ๏ธ",
+  "bell_pepper": "๐Ÿซ‘",
+  "cucumber": "๐Ÿฅ’",
+  "leafy_green": "๐Ÿฅฌ",
+  "broccoli": "๐Ÿฅฆ",
+  "garlic": "๐Ÿง„",
+  "onion": "๐Ÿง…",
+  "peanuts": "๐Ÿฅœ",
+  "beans": "๐Ÿซ˜",
+  "chestnut": "๐ŸŒฐ",
+  "ginger_root": "๐Ÿซš",
+  "pea_pod": "๐Ÿซ›",
+  "bread": "๐Ÿž",
+  "croissant": "๐Ÿฅ",
+  "baguette_bread": "๐Ÿฅ–",
+  "flatbread": "๐Ÿซ“",
+  "pretzel": "๐Ÿฅจ",
+  "bagel": "๐Ÿฅฏ",
+  "pancakes": "๐Ÿฅž",
+  "waffle": "๐Ÿง‡",
+  "cheese": "๐Ÿง€",
+  "meat_on_bone": "๐Ÿ–",
+  "poultry_leg": "๐Ÿ—",
+  "cut_of_meat": "๐Ÿฅฉ",
+  "bacon": "๐Ÿฅ“",
+  "hamburger": "๐Ÿ”",
+  "fries": "๐ŸŸ",
+  "pizza": "๐Ÿ•",
+  "hotdog": "๐ŸŒญ",
+  "sandwich": "๐Ÿฅช",
+  "taco": "๐ŸŒฎ",
+  "burrito": "๐ŸŒฏ",
+  "tamale": "๐Ÿซ”",
+  "stuffed_flatbread": "๐Ÿฅ™",
+  "falafel": "๐Ÿง†",
+  "egg": "๐Ÿฅš",
+  "fried_egg": "๐Ÿณ",
+  "shallow_pan_of_food": "๐Ÿฅ˜",
+  "stew": "๐Ÿฒ",
+  "fondue": "๐Ÿซ•",
+  "bowl_with_spoon": "๐Ÿฅฃ",
+  "green_salad": "๐Ÿฅ—",
+  "popcorn": "๐Ÿฟ",
+  "butter": "๐Ÿงˆ",
+  "salt": "๐Ÿง‚",
+  "canned_food": "๐Ÿฅซ",
+  "bento": "๐Ÿฑ",
+  "rice_cracker": "๐Ÿ˜",
+  "rice_ball": "๐Ÿ™",
+  "rice": "๐Ÿš",
+  "curry": "๐Ÿ›",
+  "ramen": "๐Ÿœ",
+  "spaghetti": "๐Ÿ",
+  "sweet_potato": "๐Ÿ ",
+  "oden": "๐Ÿข",
+  "sushi": "๐Ÿฃ",
+  "fried_shrimp": "๐Ÿค",
+  "fish_cake": "๐Ÿฅ",
+  "moon_cake": "๐Ÿฅฎ",
+  "dango": "๐Ÿก",
+  "dumpling": "๐ŸฅŸ",
+  "fortune_cookie": "๐Ÿฅ ",
+  "takeout_box": "๐Ÿฅก",
+  "crab": "๐Ÿฆ€",
+  "lobster": "๐Ÿฆž",
+  "shrimp": "๐Ÿฆ",
+  "squid": "๐Ÿฆ‘",
+  "oyster": "๐Ÿฆช",
+  "icecream": "๐Ÿฆ",
+  "shaved_ice": "๐Ÿง",
+  "ice_cream": "๐Ÿจ",
+  "doughnut": "๐Ÿฉ",
+  "cookie": "๐Ÿช",
+  "birthday": "๐ŸŽ‚",
+  "cake": "๐Ÿฐ",
+  "cupcake": "๐Ÿง",
+  "pie": "๐Ÿฅง",
+  "chocolate_bar": "๐Ÿซ",
+  "candy": "๐Ÿฌ",
+  "lollipop": "๐Ÿญ",
+  "custard": "๐Ÿฎ",
+  "honey_pot": "๐Ÿฏ",
+  "baby_bottle": "๐Ÿผ",
+  "milk_glass": "๐Ÿฅ›",
+  "coffee": "โ˜•",
+  "teapot": "๐Ÿซ–",
+  "tea": "๐Ÿต",
+  "sake": "๐Ÿถ",
+  "champagne": "๐Ÿพ",
+  "wine_glass": "๐Ÿท",
+  "cocktail": "๐Ÿธ",
+  "tropical_drink": "๐Ÿน",
+  "beer": "๐Ÿบ",
+  "beers": "๐Ÿป",
+  "clinking_glasses": "๐Ÿฅ‚",
+  "tumbler_glass": "๐Ÿฅƒ",
+  "pouring_liquid": "๐Ÿซ—",
+  "cup_with_straw": "๐Ÿฅค",
+  "bubble_tea": "๐Ÿง‹",
+  "beverage_box": "๐Ÿงƒ",
+  "mate": "๐Ÿง‰",
+  "ice_cube": "๐ŸงŠ",
+  "chopsticks": "๐Ÿฅข",
+  "plate_with_cutlery": "๐Ÿฝ๏ธ",
+  "fork_and_knife": "๐Ÿด",
+  "spoon": "๐Ÿฅ„",
+  "hocho": "๐Ÿ”ช",
+  "knife": "๐Ÿ”ช",
+  "jar": "๐Ÿซ™",
+  "amphora": "๐Ÿบ",
+  "earth_africa": "๐ŸŒ",
+  "earth_americas": "๐ŸŒŽ",
+  "earth_asia": "๐ŸŒ",
+  "globe_with_meridians": "๐ŸŒ",
+  "world_map": "๐Ÿ—บ๏ธ",
+  "japan": "๐Ÿ—พ",
+  "compass": "๐Ÿงญ",
+  "mountain_snow": "๐Ÿ”๏ธ",
+  "mountain": "โ›ฐ๏ธ",
+  "volcano": "๐ŸŒ‹",
+  "mount_fuji": "๐Ÿ—ป",
+  "camping": "๐Ÿ•๏ธ",
+  "beach_umbrella": "๐Ÿ–๏ธ",
+  "desert": "๐Ÿœ๏ธ",
+  "desert_island": "๐Ÿ๏ธ",
+  "national_park": "๐Ÿž๏ธ",
+  "stadium": "๐ŸŸ๏ธ",
+  "classical_building": "๐Ÿ›๏ธ",
+  "building_construction": "๐Ÿ—๏ธ",
+  "bricks": "๐Ÿงฑ",
+  "rock": "๐Ÿชจ",
+  "wood": "๐Ÿชต",
+  "hut": "๐Ÿ›–",
+  "houses": "๐Ÿ˜๏ธ",
+  "derelict_house": "๐Ÿš๏ธ",
+  "house": "๐Ÿ ",
+  "house_with_garden": "๐Ÿก",
+  "office": "๐Ÿข",
+  "post_office": "๐Ÿฃ",
+  "european_post_office": "๐Ÿค",
+  "hospital": "๐Ÿฅ",
+  "bank": "๐Ÿฆ",
+  "hotel": "๐Ÿจ",
+  "love_hotel": "๐Ÿฉ",
+  "convenience_store": "๐Ÿช",
+  "school": "๐Ÿซ",
+  "department_store": "๐Ÿฌ",
+  "factory": "๐Ÿญ",
+  "japanese_castle": "๐Ÿฏ",
+  "european_castle": "๐Ÿฐ",
+  "wedding": "๐Ÿ’’",
+  "tokyo_tower": "๐Ÿ—ผ",
+  "statue_of_liberty": "๐Ÿ—ฝ",
+  "church": "โ›ช",
+  "mosque": "๐Ÿ•Œ",
+  "hindu_temple": "๐Ÿ›•",
+  "synagogue": "๐Ÿ•",
+  "shinto_shrine": "โ›ฉ๏ธ",
+  "kaaba": "๐Ÿ•‹",
+  "fountain": "โ›ฒ",
+  "tent": "โ›บ",
+  "foggy": "๐ŸŒ",
+  "night_with_stars": "๐ŸŒƒ",
+  "cityscape": "๐Ÿ™๏ธ",
+  "sunrise_over_mountains": "๐ŸŒ„",
+  "sunrise": "๐ŸŒ…",
+  "city_sunset": "๐ŸŒ†",
+  "city_sunrise": "๐ŸŒ‡",
+  "bridge_at_night": "๐ŸŒ‰",
+  "hotsprings": "โ™จ๏ธ",
+  "carousel_horse": "๐ŸŽ ",
+  "playground_slide": "๐Ÿ›",
+  "ferris_wheel": "๐ŸŽก",
+  "roller_coaster": "๐ŸŽข",
+  "barber": "๐Ÿ’ˆ",
+  "circus_tent": "๐ŸŽช",
+  "steam_locomotive": "๐Ÿš‚",
+  "railway_car": "๐Ÿšƒ",
+  "bullettrain_side": "๐Ÿš„",
+  "bullettrain_front": "๐Ÿš…",
+  "train2": "๐Ÿš†",
+  "metro": "๐Ÿš‡",
+  "light_rail": "๐Ÿšˆ",
+  "station": "๐Ÿš‰",
+  "tram": "๐ŸšŠ",
+  "monorail": "๐Ÿš",
+  "mountain_railway": "๐Ÿšž",
+  "train": "๐Ÿš‹",
+  "bus": "๐ŸšŒ",
+  "oncoming_bus": "๐Ÿš",
+  "trolleybus": "๐ŸšŽ",
+  "minibus": "๐Ÿš",
+  "ambulance": "๐Ÿš‘",
+  "fire_engine": "๐Ÿš’",
+  "police_car": "๐Ÿš“",
+  "oncoming_police_car": "๐Ÿš”",
+  "taxi": "๐Ÿš•",
+  "oncoming_taxi": "๐Ÿš–",
+  "car": "๐Ÿš—",
+  "red_car": "๐Ÿš—",
+  "oncoming_automobile": "๐Ÿš˜",
+  "blue_car": "๐Ÿš™",
+  "pickup_truck": "๐Ÿ›ป",
+  "truck": "๐Ÿšš",
+  "articulated_lorry": "๐Ÿš›",
+  "tractor": "๐Ÿšœ",
+  "racing_car": "๐ŸŽ๏ธ",
+  "motorcycle": "๐Ÿ๏ธ",
+  "motor_scooter": "๐Ÿ›ต",
+  "manual_wheelchair": "๐Ÿฆฝ",
+  "motorized_wheelchair": "๐Ÿฆผ",
+  "auto_rickshaw": "๐Ÿ›บ",
+  "bike": "๐Ÿšฒ",
+  "kick_scooter": "๐Ÿ›ด",
+  "skateboard": "๐Ÿ›น",
+  "roller_skate": "๐Ÿ›ผ",
+  "busstop": "๐Ÿš",
+  "motorway": "๐Ÿ›ฃ๏ธ",
+  "railway_track": "๐Ÿ›ค๏ธ",
+  "oil_drum": "๐Ÿ›ข๏ธ",
+  "fuelpump": "โ›ฝ",
+  "wheel": "๐Ÿ›ž",
+  "rotating_light": "๐Ÿšจ",
+  "traffic_light": "๐Ÿšฅ",
+  "vertical_traffic_light": "๐Ÿšฆ",
+  "stop_sign": "๐Ÿ›‘",
+  "construction": "๐Ÿšง",
+  "anchor": "โš“",
+  "ring_buoy": "๐Ÿ›Ÿ",
+  "boat": "โ›ต",
+  "sailboat": "โ›ต",
+  "canoe": "๐Ÿ›ถ",
+  "speedboat": "๐Ÿšค",
+  "passenger_ship": "๐Ÿ›ณ๏ธ",
+  "ferry": "โ›ด๏ธ",
+  "motor_boat": "๐Ÿ›ฅ๏ธ",
+  "ship": "๐Ÿšข",
+  "airplane": "โœˆ๏ธ",
+  "small_airplane": "๐Ÿ›ฉ๏ธ",
+  "flight_departure": "๐Ÿ›ซ",
+  "flight_arrival": "๐Ÿ›ฌ",
+  "parachute": "๐Ÿช‚",
+  "seat": "๐Ÿ’บ",
+  "helicopter": "๐Ÿš",
+  "suspension_railway": "๐ŸšŸ",
+  "mountain_cableway": "๐Ÿš ",
+  "aerial_tramway": "๐Ÿšก",
+  "artificial_satellite": "๐Ÿ›ฐ๏ธ",
+  "rocket": "๐Ÿš€",
+  "flying_saucer": "๐Ÿ›ธ",
+  "bellhop_bell": "๐Ÿ›Ž๏ธ",
+  "luggage": "๐Ÿงณ",
+  "hourglass": "โŒ›",
+  "hourglass_flowing_sand": "โณ",
+  "watch": "โŒš",
+  "alarm_clock": "โฐ",
+  "stopwatch": "โฑ๏ธ",
+  "timer_clock": "โฒ๏ธ",
+  "mantelpiece_clock": "๐Ÿ•ฐ๏ธ",
+  "clock12": "๐Ÿ•›",
+  "clock1230": "๐Ÿ•ง",
+  "clock1": "๐Ÿ•",
+  "clock130": "๐Ÿ•œ",
+  "clock2": "๐Ÿ•‘",
+  "clock230": "๐Ÿ•",
+  "clock3": "๐Ÿ•’",
+  "clock330": "๐Ÿ•ž",
+  "clock4": "๐Ÿ•“",
+  "clock430": "๐Ÿ•Ÿ",
+  "clock5": "๐Ÿ•”",
+  "clock530": "๐Ÿ• ",
+  "clock6": "๐Ÿ••",
+  "clock630": "๐Ÿ•ก",
+  "clock7": "๐Ÿ•–",
+  "clock730": "๐Ÿ•ข",
+  "clock8": "๐Ÿ•—",
+  "clock830": "๐Ÿ•ฃ",
+  "clock9": "๐Ÿ•˜",
+  "clock930": "๐Ÿ•ค",
+  "clock10": "๐Ÿ•™",
+  "clock1030": "๐Ÿ•ฅ",
+  "clock11": "๐Ÿ•š",
+  "clock1130": "๐Ÿ•ฆ",
+  "new_moon": "๐ŸŒ‘",
+  "waxing_crescent_moon": "๐ŸŒ’",
+  "first_quarter_moon": "๐ŸŒ“",
+  "moon": "๐ŸŒ”",
+  "waxing_gibbous_moon": "๐ŸŒ”",
+  "full_moon": "๐ŸŒ•",
+  "waning_gibbous_moon": "๐ŸŒ–",
+  "last_quarter_moon": "๐ŸŒ—",
+  "waning_crescent_moon": "๐ŸŒ˜",
+  "crescent_moon": "๐ŸŒ™",
+  "new_moon_with_face": "๐ŸŒš",
+  "first_quarter_moon_with_face": "๐ŸŒ›",
+  "last_quarter_moon_with_face": "๐ŸŒœ",
+  "thermometer": "๐ŸŒก๏ธ",
+  "sunny": "โ˜€๏ธ",
+  "full_moon_with_face": "๐ŸŒ",
+  "sun_with_face": "๐ŸŒž",
+  "ringed_planet": "๐Ÿช",
+  "star": "โญ",
+  "star2": "๐ŸŒŸ",
+  "stars": "๐ŸŒ ",
+  "milky_way": "๐ŸŒŒ",
+  "cloud": "โ˜๏ธ",
+  "partly_sunny": "โ›…",
+  "cloud_with_lightning_and_rain": "โ›ˆ๏ธ",
+  "sun_behind_small_cloud": "๐ŸŒค๏ธ",
+  "sun_behind_large_cloud": "๐ŸŒฅ๏ธ",
+  "sun_behind_rain_cloud": "๐ŸŒฆ๏ธ",
+  "cloud_with_rain": "๐ŸŒง๏ธ",
+  "cloud_with_snow": "๐ŸŒจ๏ธ",
+  "cloud_with_lightning": "๐ŸŒฉ๏ธ",
+  "tornado": "๐ŸŒช๏ธ",
+  "fog": "๐ŸŒซ๏ธ",
+  "wind_face": "๐ŸŒฌ๏ธ",
+  "cyclone": "๐ŸŒ€",
+  "rainbow": "๐ŸŒˆ",
+  "closed_umbrella": "๐ŸŒ‚",
+  "open_umbrella": "โ˜‚๏ธ",
+  "umbrella": "โ˜”",
+  "parasol_on_ground": "โ›ฑ๏ธ",
+  "zap": "โšก",
+  "snowflake": "โ„๏ธ",
+  "snowman_with_snow": "โ˜ƒ๏ธ",
+  "snowman": "โ›„",
+  "comet": "โ˜„๏ธ",
+  "fire": "๐Ÿ”ฅ",
+  "droplet": "๐Ÿ’ง",
+  "ocean": "๐ŸŒŠ",
+  "jack_o_lantern": "๐ŸŽƒ",
+  "christmas_tree": "๐ŸŽ„",
+  "fireworks": "๐ŸŽ†",
+  "sparkler": "๐ŸŽ‡",
+  "firecracker": "๐Ÿงจ",
+  "sparkles": "โœจ",
+  "balloon": "๐ŸŽˆ",
+  "tada": "๐ŸŽ‰",
+  "confetti_ball": "๐ŸŽŠ",
+  "tanabata_tree": "๐ŸŽ‹",
+  "bamboo": "๐ŸŽ",
+  "dolls": "๐ŸŽŽ",
+  "flags": "๐ŸŽ",
+  "wind_chime": "๐ŸŽ",
+  "rice_scene": "๐ŸŽ‘",
+  "red_envelope": "๐Ÿงง",
+  "ribbon": "๐ŸŽ€",
+  "gift": "๐ŸŽ",
+  "reminder_ribbon": "๐ŸŽ—๏ธ",
+  "tickets": "๐ŸŽŸ๏ธ",
+  "ticket": "๐ŸŽซ",
+  "medal_military": "๐ŸŽ–๏ธ",
+  "trophy": "๐Ÿ†",
+  "medal_sports": "๐Ÿ…",
+  "1st_place_medal": "๐Ÿฅ‡",
+  "2nd_place_medal": "๐Ÿฅˆ",
+  "3rd_place_medal": "๐Ÿฅ‰",
+  "soccer": "โšฝ",
+  "baseball": "โšพ",
+  "softball": "๐ŸฅŽ",
+  "basketball": "๐Ÿ€",
+  "volleyball": "๐Ÿ",
+  "football": "๐Ÿˆ",
+  "rugby_football": "๐Ÿ‰",
+  "tennis": "๐ŸŽพ",
+  "flying_disc": "๐Ÿฅ",
+  "bowling": "๐ŸŽณ",
+  "cricket_game": "๐Ÿ",
+  "field_hockey": "๐Ÿ‘",
+  "ice_hockey": "๐Ÿ’",
+  "lacrosse": "๐Ÿฅ",
+  "ping_pong": "๐Ÿ“",
+  "badminton": "๐Ÿธ",
+  "boxing_glove": "๐ŸฅŠ",
+  "martial_arts_uniform": "๐Ÿฅ‹",
+  "goal_net": "๐Ÿฅ…",
+  "golf": "โ›ณ",
+  "ice_skate": "โ›ธ๏ธ",
+  "fishing_pole_and_fish": "๐ŸŽฃ",
+  "diving_mask": "๐Ÿคฟ",
+  "running_shirt_with_sash": "๐ŸŽฝ",
+  "ski": "๐ŸŽฟ",
+  "sled": "๐Ÿ›ท",
+  "curling_stone": "๐ŸฅŒ",
+  "dart": "๐ŸŽฏ",
+  "yo_yo": "๐Ÿช€",
+  "kite": "๐Ÿช",
+  "gun": "๐Ÿ”ซ",
+  "8ball": "๐ŸŽฑ",
+  "crystal_ball": "๐Ÿ”ฎ",
+  "magic_wand": "๐Ÿช„",
+  "video_game": "๐ŸŽฎ",
+  "joystick": "๐Ÿ•น๏ธ",
+  "slot_machine": "๐ŸŽฐ",
+  "game_die": "๐ŸŽฒ",
+  "jigsaw": "๐Ÿงฉ",
+  "teddy_bear": "๐Ÿงธ",
+  "pinata": "๐Ÿช…",
+  "mirror_ball": "๐Ÿชฉ",
+  "nesting_dolls": "๐Ÿช†",
+  "spades": "โ™ ๏ธ",
+  "hearts": "โ™ฅ๏ธ",
+  "diamonds": "โ™ฆ๏ธ",
+  "clubs": "โ™ฃ๏ธ",
+  "chess_pawn": "โ™Ÿ๏ธ",
+  "black_joker": "๐Ÿƒ",
+  "mahjong": "๐Ÿ€„",
+  "flower_playing_cards": "๐ŸŽด",
+  "performing_arts": "๐ŸŽญ",
+  "framed_picture": "๐Ÿ–ผ๏ธ",
+  "art": "๐ŸŽจ",
+  "thread": "๐Ÿงต",
+  "sewing_needle": "๐Ÿชก",
+  "yarn": "๐Ÿงถ",
+  "knot": "๐Ÿชข",
+  "eyeglasses": "๐Ÿ‘“",
+  "dark_sunglasses": "๐Ÿ•ถ๏ธ",
+  "goggles": "๐Ÿฅฝ",
+  "lab_coat": "๐Ÿฅผ",
+  "safety_vest": "๐Ÿฆบ",
+  "necktie": "๐Ÿ‘”",
+  "shirt": "๐Ÿ‘•",
+  "tshirt": "๐Ÿ‘•",
+  "jeans": "๐Ÿ‘–",
+  "scarf": "๐Ÿงฃ",
+  "gloves": "๐Ÿงค",
+  "coat": "๐Ÿงฅ",
+  "socks": "๐Ÿงฆ",
+  "dress": "๐Ÿ‘—",
+  "kimono": "๐Ÿ‘˜",
+  "sari": "๐Ÿฅป",
+  "one_piece_swimsuit": "๐Ÿฉฑ",
+  "swim_brief": "๐Ÿฉฒ",
+  "shorts": "๐Ÿฉณ",
+  "bikini": "๐Ÿ‘™",
+  "womans_clothes": "๐Ÿ‘š",
+  "folding_hand_fan": "๐Ÿชญ",
+  "purse": "๐Ÿ‘›",
+  "handbag": "๐Ÿ‘œ",
+  "pouch": "๐Ÿ‘",
+  "shopping": "๐Ÿ›๏ธ",
+  "school_satchel": "๐ŸŽ’",
+  "thong_sandal": "๐Ÿฉด",
+  "mans_shoe": "๐Ÿ‘ž",
+  "shoe": "๐Ÿ‘ž",
+  "athletic_shoe": "๐Ÿ‘Ÿ",
+  "hiking_boot": "๐Ÿฅพ",
+  "flat_shoe": "๐Ÿฅฟ",
+  "high_heel": "๐Ÿ‘ ",
+  "sandal": "๐Ÿ‘ก",
+  "ballet_shoes": "๐Ÿฉฐ",
+  "boot": "๐Ÿ‘ข",
+  "hair_pick": "๐Ÿชฎ",
+  "crown": "๐Ÿ‘‘",
+  "womans_hat": "๐Ÿ‘’",
+  "tophat": "๐ŸŽฉ",
+  "mortar_board": "๐ŸŽ“",
+  "billed_cap": "๐Ÿงข",
+  "military_helmet": "๐Ÿช–",
+  "rescue_worker_helmet": "โ›‘๏ธ",
+  "prayer_beads": "๐Ÿ“ฟ",
+  "lipstick": "๐Ÿ’„",
+  "ring": "๐Ÿ’",
+  "gem": "๐Ÿ’Ž",
+  "mute": "๐Ÿ”‡",
+  "speaker": "๐Ÿ”ˆ",
+  "sound": "๐Ÿ”‰",
+  "loud_sound": "๐Ÿ”Š",
+  "loudspeaker": "๐Ÿ“ข",
+  "mega": "๐Ÿ“ฃ",
+  "postal_horn": "๐Ÿ“ฏ",
+  "bell": "๐Ÿ””",
+  "no_bell": "๐Ÿ”•",
+  "musical_score": "๐ŸŽผ",
+  "musical_note": "๐ŸŽต",
+  "notes": "๐ŸŽถ",
+  "studio_microphone": "๐ŸŽ™๏ธ",
+  "level_slider": "๐ŸŽš๏ธ",
+  "control_knobs": "๐ŸŽ›๏ธ",
+  "microphone": "๐ŸŽค",
+  "headphones": "๐ŸŽง",
+  "radio": "๐Ÿ“ป",
+  "saxophone": "๐ŸŽท",
+  "accordion": "๐Ÿช—",
+  "guitar": "๐ŸŽธ",
+  "musical_keyboard": "๐ŸŽน",
+  "trumpet": "๐ŸŽบ",
+  "violin": "๐ŸŽป",
+  "banjo": "๐Ÿช•",
+  "drum": "๐Ÿฅ",
+  "long_drum": "๐Ÿช˜",
+  "maracas": "๐Ÿช‡",
+  "flute": "๐Ÿชˆ",
+  "iphone": "๐Ÿ“ฑ",
+  "calling": "๐Ÿ“ฒ",
+  "phone": "โ˜Ž๏ธ",
+  "telephone": "โ˜Ž๏ธ",
+  "telephone_receiver": "๐Ÿ“ž",
+  "pager": "๐Ÿ“Ÿ",
+  "fax": "๐Ÿ“ ",
+  "battery": "๐Ÿ”‹",
+  "low_battery": "๐Ÿชซ",
+  "electric_plug": "๐Ÿ”Œ",
+  "computer": "๐Ÿ’ป",
+  "desktop_computer": "๐Ÿ–ฅ๏ธ",
+  "printer": "๐Ÿ–จ๏ธ",
+  "keyboard": "โŒจ๏ธ",
+  "computer_mouse": "๐Ÿ–ฑ๏ธ",
+  "trackball": "๐Ÿ–ฒ๏ธ",
+  "minidisc": "๐Ÿ’ฝ",
+  "floppy_disk": "๐Ÿ’พ",
+  "cd": "๐Ÿ’ฟ",
+  "dvd": "๐Ÿ“€",
+  "abacus": "๐Ÿงฎ",
+  "movie_camera": "๐ŸŽฅ",
+  "film_strip": "๐ŸŽž๏ธ",
+  "film_projector": "๐Ÿ“ฝ๏ธ",
+  "clapper": "๐ŸŽฌ",
+  "tv": "๐Ÿ“บ",
+  "camera": "๐Ÿ“ท",
+  "camera_flash": "๐Ÿ“ธ",
+  "video_camera": "๐Ÿ“น",
+  "vhs": "๐Ÿ“ผ",
+  "mag": "๐Ÿ”",
+  "mag_right": "๐Ÿ”Ž",
+  "candle": "๐Ÿ•ฏ๏ธ",
+  "bulb": "๐Ÿ’ก",
+  "flashlight": "๐Ÿ”ฆ",
+  "izakaya_lantern": "๐Ÿฎ",
+  "lantern": "๐Ÿฎ",
+  "diya_lamp": "๐Ÿช”",
+  "notebook_with_decorative_cover": "๐Ÿ“”",
+  "closed_book": "๐Ÿ“•",
+  "book": "๐Ÿ“–",
+  "open_book": "๐Ÿ“–",
+  "green_book": "๐Ÿ“—",
+  "blue_book": "๐Ÿ“˜",
+  "orange_book": "๐Ÿ“™",
+  "books": "๐Ÿ“š",
+  "notebook": "๐Ÿ““",
+  "ledger": "๐Ÿ“’",
+  "page_with_curl": "๐Ÿ“ƒ",
+  "scroll": "๐Ÿ“œ",
+  "page_facing_up": "๐Ÿ“„",
+  "newspaper": "๐Ÿ“ฐ",
+  "newspaper_roll": "๐Ÿ—ž๏ธ",
+  "bookmark_tabs": "๐Ÿ“‘",
+  "bookmark": "๐Ÿ”–",
+  "label": "๐Ÿท๏ธ",
+  "moneybag": "๐Ÿ’ฐ",
+  "coin": "๐Ÿช™",
+  "yen": "๐Ÿ’ด",
+  "dollar": "๐Ÿ’ต",
+  "euro": "๐Ÿ’ถ",
+  "pound": "๐Ÿ’ท",
+  "money_with_wings": "๐Ÿ’ธ",
+  "credit_card": "๐Ÿ’ณ",
+  "receipt": "๐Ÿงพ",
+  "chart": "๐Ÿ’น",
+  "envelope": "โœ‰๏ธ",
+  "email": "๐Ÿ“ง",
+  "e-mail": "๐Ÿ“ง",
+  "incoming_envelope": "๐Ÿ“จ",
+  "envelope_with_arrow": "๐Ÿ“ฉ",
+  "outbox_tray": "๐Ÿ“ค",
+  "inbox_tray": "๐Ÿ“ฅ",
+  "package": "๐Ÿ“ฆ",
+  "mailbox": "๐Ÿ“ซ",
+  "mailbox_closed": "๐Ÿ“ช",
+  "mailbox_with_mail": "๐Ÿ“ฌ",
+  "mailbox_with_no_mail": "๐Ÿ“ญ",
+  "postbox": "๐Ÿ“ฎ",
+  "ballot_box": "๐Ÿ—ณ๏ธ",
+  "pencil2": "โœ๏ธ",
+  "black_nib": "โœ’๏ธ",
+  "fountain_pen": "๐Ÿ–‹๏ธ",
+  "pen": "๐Ÿ–Š๏ธ",
+  "paintbrush": "๐Ÿ–Œ๏ธ",
+  "crayon": "๐Ÿ–๏ธ",
+  "memo": "๐Ÿ“",
+  "pencil": "๐Ÿ“",
+  "briefcase": "๐Ÿ’ผ",
+  "file_folder": "๐Ÿ“",
+  "open_file_folder": "๐Ÿ“‚",
+  "card_index_dividers": "๐Ÿ—‚๏ธ",
+  "date": "๐Ÿ“…",
+  "calendar": "๐Ÿ“†",
+  "spiral_notepad": "๐Ÿ—’๏ธ",
+  "spiral_calendar": "๐Ÿ—“๏ธ",
+  "card_index": "๐Ÿ“‡",
+  "chart_with_upwards_trend": "๐Ÿ“ˆ",
+  "chart_with_downwards_trend": "๐Ÿ“‰",
+  "bar_chart": "๐Ÿ“Š",
+  "clipboard": "๐Ÿ“‹",
+  "pushpin": "๐Ÿ“Œ",
+  "round_pushpin": "๐Ÿ“",
+  "paperclip": "๐Ÿ“Ž",
+  "paperclips": "๐Ÿ–‡๏ธ",
+  "straight_ruler": "๐Ÿ“",
+  "triangular_ruler": "๐Ÿ“",
+  "scissors": "โœ‚๏ธ",
+  "card_file_box": "๐Ÿ—ƒ๏ธ",
+  "file_cabinet": "๐Ÿ—„๏ธ",
+  "wastebasket": "๐Ÿ—‘๏ธ",
+  "lock": "๐Ÿ”’",
+  "unlock": "๐Ÿ”“",
+  "lock_with_ink_pen": "๐Ÿ”",
+  "closed_lock_with_key": "๐Ÿ”",
+  "key": "๐Ÿ”‘",
+  "old_key": "๐Ÿ—๏ธ",
+  "hammer": "๐Ÿ”จ",
+  "axe": "๐Ÿช“",
+  "pick": "โ›๏ธ",
+  "hammer_and_pick": "โš’๏ธ",
+  "hammer_and_wrench": "๐Ÿ› ๏ธ",
+  "dagger": "๐Ÿ—ก๏ธ",
+  "crossed_swords": "โš”๏ธ",
+  "bomb": "๐Ÿ’ฃ",
+  "boomerang": "๐Ÿชƒ",
+  "bow_and_arrow": "๐Ÿน",
+  "shield": "๐Ÿ›ก๏ธ",
+  "carpentry_saw": "๐Ÿชš",
+  "wrench": "๐Ÿ”ง",
+  "screwdriver": "๐Ÿช›",
+  "nut_and_bolt": "๐Ÿ”ฉ",
+  "gear": "โš™๏ธ",
+  "clamp": "๐Ÿ—œ๏ธ",
+  "balance_scale": "โš–๏ธ",
+  "probing_cane": "๐Ÿฆฏ",
+  "link": "๐Ÿ”—",
+  "chains": "โ›“๏ธ",
+  "hook": "๐Ÿช",
+  "toolbox": "๐Ÿงฐ",
+  "magnet": "๐Ÿงฒ",
+  "ladder": "๐Ÿชœ",
+  "alembic": "โš—๏ธ",
+  "test_tube": "๐Ÿงช",
+  "petri_dish": "๐Ÿงซ",
+  "dna": "๐Ÿงฌ",
+  "microscope": "๐Ÿ”ฌ",
+  "telescope": "๐Ÿ”ญ",
+  "satellite": "๐Ÿ“ก",
+  "syringe": "๐Ÿ’‰",
+  "drop_of_blood": "๐Ÿฉธ",
+  "pill": "๐Ÿ’Š",
+  "adhesive_bandage": "๐Ÿฉน",
+  "crutch": "๐Ÿฉผ",
+  "stethoscope": "๐Ÿฉบ",
+  "x_ray": "๐Ÿฉป",
+  "door": "๐Ÿšช",
+  "elevator": "๐Ÿ›—",
+  "mirror": "๐Ÿชž",
+  "window": "๐ŸชŸ",
+  "bed": "๐Ÿ›๏ธ",
+  "couch_and_lamp": "๐Ÿ›‹๏ธ",
+  "chair": "๐Ÿช‘",
+  "toilet": "๐Ÿšฝ",
+  "plunger": "๐Ÿช ",
+  "shower": "๐Ÿšฟ",
+  "bathtub": "๐Ÿ›",
+  "mouse_trap": "๐Ÿชค",
+  "razor": "๐Ÿช’",
+  "lotion_bottle": "๐Ÿงด",
+  "safety_pin": "๐Ÿงท",
+  "broom": "๐Ÿงน",
+  "basket": "๐Ÿงบ",
+  "roll_of_paper": "๐Ÿงป",
+  "bucket": "๐Ÿชฃ",
+  "soap": "๐Ÿงผ",
+  "bubbles": "๐Ÿซง",
+  "toothbrush": "๐Ÿชฅ",
+  "sponge": "๐Ÿงฝ",
+  "fire_extinguisher": "๐Ÿงฏ",
+  "shopping_cart": "๐Ÿ›’",
+  "smoking": "๐Ÿšฌ",
+  "coffin": "โšฐ๏ธ",
+  "headstone": "๐Ÿชฆ",
+  "funeral_urn": "โšฑ๏ธ",
+  "nazar_amulet": "๐Ÿงฟ",
+  "hamsa": "๐Ÿชฌ",
+  "moyai": "๐Ÿ—ฟ",
+  "placard": "๐Ÿชง",
+  "identification_card": "๐Ÿชช",
+  "atm": "๐Ÿง",
+  "put_litter_in_its_place": "๐Ÿšฎ",
+  "potable_water": "๐Ÿšฐ",
+  "wheelchair": "โ™ฟ",
+  "mens": "๐Ÿšน",
+  "womens": "๐Ÿšบ",
+  "restroom": "๐Ÿšป",
+  "baby_symbol": "๐Ÿšผ",
+  "wc": "๐Ÿšพ",
+  "passport_control": "๐Ÿ›‚",
+  "customs": "๐Ÿ›ƒ",
+  "baggage_claim": "๐Ÿ›„",
+  "left_luggage": "๐Ÿ›…",
+  "warning": "โš ๏ธ",
+  "children_crossing": "๐Ÿšธ",
+  "no_entry": "โ›”",
+  "no_entry_sign": "๐Ÿšซ",
+  "no_bicycles": "๐Ÿšณ",
+  "no_smoking": "๐Ÿšญ",
+  "do_not_litter": "๐Ÿšฏ",
+  "non-potable_water": "๐Ÿšฑ",
+  "no_pedestrians": "๐Ÿšท",
+  "no_mobile_phones": "๐Ÿ“ต",
+  "underage": "๐Ÿ”ž",
+  "radioactive": "โ˜ข๏ธ",
+  "biohazard": "โ˜ฃ๏ธ",
+  "arrow_up": "โฌ†๏ธ",
+  "arrow_upper_right": "โ†—๏ธ",
+  "arrow_right": "โžก๏ธ",
+  "arrow_lower_right": "โ†˜๏ธ",
+  "arrow_down": "โฌ‡๏ธ",
+  "arrow_lower_left": "โ†™๏ธ",
+  "arrow_left": "โฌ…๏ธ",
+  "arrow_upper_left": "โ†–๏ธ",
+  "arrow_up_down": "โ†•๏ธ",
+  "left_right_arrow": "โ†”๏ธ",
+  "leftwards_arrow_with_hook": "โ†ฉ๏ธ",
+  "arrow_right_hook": "โ†ช๏ธ",
+  "arrow_heading_up": "โคด๏ธ",
+  "arrow_heading_down": "โคต๏ธ",
+  "arrows_clockwise": "๐Ÿ”ƒ",
+  "arrows_counterclockwise": "๐Ÿ”„",
+  "back": "๐Ÿ”™",
+  "end": "๐Ÿ”š",
+  "on": "๐Ÿ”›",
+  "soon": "๐Ÿ”œ",
+  "top": "๐Ÿ”",
+  "place_of_worship": "๐Ÿ›",
+  "atom_symbol": "โš›๏ธ",
+  "om": "๐Ÿ•‰๏ธ",
+  "star_of_david": "โœก๏ธ",
+  "wheel_of_dharma": "โ˜ธ๏ธ",
+  "yin_yang": "โ˜ฏ๏ธ",
+  "latin_cross": "โœ๏ธ",
+  "orthodox_cross": "โ˜ฆ๏ธ",
+  "star_and_crescent": "โ˜ช๏ธ",
+  "peace_symbol": "โ˜ฎ๏ธ",
+  "menorah": "๐Ÿ•Ž",
+  "six_pointed_star": "๐Ÿ”ฏ",
+  "khanda": "๐Ÿชฏ",
+  "aries": "โ™ˆ",
+  "taurus": "โ™‰",
+  "gemini": "โ™Š",
+  "cancer": "โ™‹",
+  "leo": "โ™Œ",
+  "virgo": "โ™",
+  "libra": "โ™Ž",
+  "scorpius": "โ™",
+  "sagittarius": "โ™",
+  "capricorn": "โ™‘",
+  "aquarius": "โ™’",
+  "pisces": "โ™“",
+  "ophiuchus": "โ›Ž",
+  "twisted_rightwards_arrows": "๐Ÿ”€",
+  "repeat": "๐Ÿ”",
+  "repeat_one": "๐Ÿ”‚",
+  "arrow_forward": "โ–ถ๏ธ",
+  "fast_forward": "โฉ",
+  "next_track_button": "โญ๏ธ",
+  "play_or_pause_button": "โฏ๏ธ",
+  "arrow_backward": "โ—€๏ธ",
+  "rewind": "โช",
+  "previous_track_button": "โฎ๏ธ",
+  "arrow_up_small": "๐Ÿ”ผ",
+  "arrow_double_up": "โซ",
+  "arrow_down_small": "๐Ÿ”ฝ",
+  "arrow_double_down": "โฌ",
+  "pause_button": "โธ๏ธ",
+  "stop_button": "โน๏ธ",
+  "record_button": "โบ๏ธ",
+  "eject_button": "โ๏ธ",
+  "cinema": "๐ŸŽฆ",
+  "low_brightness": "๐Ÿ”…",
+  "high_brightness": "๐Ÿ”†",
+  "signal_strength": "๐Ÿ“ถ",
+  "wireless": "๐Ÿ›œ",
+  "vibration_mode": "๐Ÿ“ณ",
+  "mobile_phone_off": "๐Ÿ“ด",
+  "female_sign": "โ™€๏ธ",
+  "male_sign": "โ™‚๏ธ",
+  "transgender_symbol": "โšง๏ธ",
+  "heavy_multiplication_x": "โœ–๏ธ",
+  "heavy_plus_sign": "โž•",
+  "heavy_minus_sign": "โž–",
+  "heavy_division_sign": "โž—",
+  "heavy_equals_sign": "๐ŸŸฐ",
+  "infinity": "โ™พ๏ธ",
+  "bangbang": "โ€ผ๏ธ",
+  "interrobang": "โ‰๏ธ",
+  "question": "โ“",
+  "grey_question": "โ”",
+  "grey_exclamation": "โ•",
+  "exclamation": "โ—",
+  "heavy_exclamation_mark": "โ—",
+  "wavy_dash": "ใ€ฐ๏ธ",
+  "currency_exchange": "๐Ÿ’ฑ",
+  "heavy_dollar_sign": "๐Ÿ’ฒ",
+  "medical_symbol": "โš•๏ธ",
+  "recycle": "โ™ป๏ธ",
+  "fleur_de_lis": "โšœ๏ธ",
+  "trident": "๐Ÿ”ฑ",
+  "name_badge": "๐Ÿ“›",
+  "beginner": "๐Ÿ”ฐ",
+  "o": "โญ•",
+  "white_check_mark": "โœ…",
+  "ballot_box_with_check": "โ˜‘๏ธ",
+  "heavy_check_mark": "โœ”๏ธ",
+  "x": "โŒ",
+  "negative_squared_cross_mark": "โŽ",
+  "curly_loop": "โžฐ",
+  "loop": "โžฟ",
+  "part_alternation_mark": "ใ€ฝ๏ธ",
+  "eight_spoked_asterisk": "โœณ๏ธ",
+  "eight_pointed_black_star": "โœด๏ธ",
+  "sparkle": "โ‡๏ธ",
+  "copyright": "ยฉ๏ธ",
+  "registered": "ยฎ๏ธ",
+  "tm": "โ„ข๏ธ",
+  "hash": "#๏ธโƒฃ",
+  "asterisk": "*๏ธโƒฃ",
+  "zero": "0๏ธโƒฃ",
+  "one": "1๏ธโƒฃ",
+  "two": "2๏ธโƒฃ",
+  "three": "3๏ธโƒฃ",
+  "four": "4๏ธโƒฃ",
+  "five": "5๏ธโƒฃ",
+  "six": "6๏ธโƒฃ",
+  "seven": "7๏ธโƒฃ",
+  "eight": "8๏ธโƒฃ",
+  "nine": "9๏ธโƒฃ",
+  "keycap_ten": "๐Ÿ”Ÿ",
+  "capital_abcd": "๐Ÿ” ",
+  "abcd": "๐Ÿ”ก",
+  "symbols": "๐Ÿ”ฃ",
+  "abc": "๐Ÿ”ค",
+  "a": "๐Ÿ…ฐ๏ธ",
+  "ab": "๐Ÿ†Ž",
+  "b": "๐Ÿ…ฑ๏ธ",
+  "cl": "๐Ÿ†‘",
+  "cool": "๐Ÿ†’",
+  "free": "๐Ÿ†“",
+  "information_source": "โ„น๏ธ",
+  "id": "๐Ÿ†”",
+  "m": "โ“‚๏ธ",
+  "new": "๐Ÿ†•",
+  "ng": "๐Ÿ†–",
+  "o2": "๐Ÿ…พ๏ธ",
+  "ok": "๐Ÿ†—",
+  "parking": "๐Ÿ…ฟ๏ธ",
+  "sos": "๐Ÿ†˜",
+  "up": "๐Ÿ†™",
+  "vs": "๐Ÿ†š",
+  "koko": "๐Ÿˆ",
+  "sa": "๐Ÿˆ‚๏ธ",
+  "u6708": "๐Ÿˆท๏ธ",
+  "u6709": "๐Ÿˆถ",
+  "u6307": "๐Ÿˆฏ",
+  "ideograph_advantage": "๐Ÿ‰",
+  "u5272": "๐Ÿˆน",
+  "u7121": "๐Ÿˆš",
+  "u7981": "๐Ÿˆฒ",
+  "accept": "๐Ÿ‰‘",
+  "u7533": "๐Ÿˆธ",
+  "u5408": "๐Ÿˆด",
+  "u7a7a": "๐Ÿˆณ",
+  "congratulations": "ใŠ—๏ธ",
+  "secret": "ใŠ™๏ธ",
+  "u55b6": "๐Ÿˆบ",
+  "u6e80": "๐Ÿˆต",
+  "red_circle": "๐Ÿ”ด",
+  "orange_circle": "๐ŸŸ ",
+  "yellow_circle": "๐ŸŸก",
+  "green_circle": "๐ŸŸข",
+  "large_blue_circle": "๐Ÿ”ต",
+  "purple_circle": "๐ŸŸฃ",
+  "brown_circle": "๐ŸŸค",
+  "black_circle": "โšซ",
+  "white_circle": "โšช",
+  "red_square": "๐ŸŸฅ",
+  "orange_square": "๐ŸŸง",
+  "yellow_square": "๐ŸŸจ",
+  "green_square": "๐ŸŸฉ",
+  "blue_square": "๐ŸŸฆ",
+  "purple_square": "๐ŸŸช",
+  "brown_square": "๐ŸŸซ",
+  "black_large_square": "โฌ›",
+  "white_large_square": "โฌœ",
+  "black_medium_square": "โ—ผ๏ธ",
+  "white_medium_square": "โ—ป๏ธ",
+  "black_medium_small_square": "โ—พ",
+  "white_medium_small_square": "โ—ฝ",
+  "black_small_square": "โ–ช๏ธ",
+  "white_small_square": "โ–ซ๏ธ",
+  "large_orange_diamond": "๐Ÿ”ถ",
+  "large_blue_diamond": "๐Ÿ”ท",
+  "small_orange_diamond": "๐Ÿ”ธ",
+  "small_blue_diamond": "๐Ÿ”น",
+  "small_red_triangle": "๐Ÿ”บ",
+  "small_red_triangle_down": "๐Ÿ”ป",
+  "diamond_shape_with_a_dot_inside": "๐Ÿ’ ",
+  "radio_button": "๐Ÿ”˜",
+  "white_square_button": "๐Ÿ”ณ",
+  "black_square_button": "๐Ÿ”ฒ",
+  "checkered_flag": "๐Ÿ",
+  "triangular_flag_on_post": "๐Ÿšฉ",
+  "crossed_flags": "๐ŸŽŒ",
+  "black_flag": "๐Ÿด",
+  "white_flag": "๐Ÿณ๏ธ",
+  "rainbow_flag": "๐Ÿณ๏ธโ€๐ŸŒˆ",
+  "transgender_flag": "๐Ÿณ๏ธโ€โšง๏ธ",
+  "pirate_flag": "๐Ÿดโ€โ˜ ๏ธ",
+  "ascension_island": "๐Ÿ‡ฆ๐Ÿ‡จ",
+  "andorra": "๐Ÿ‡ฆ๐Ÿ‡ฉ",
+  "united_arab_emirates": "๐Ÿ‡ฆ๐Ÿ‡ช",
+  "afghanistan": "๐Ÿ‡ฆ๐Ÿ‡ซ",
+  "antigua_barbuda": "๐Ÿ‡ฆ๐Ÿ‡ฌ",
+  "anguilla": "๐Ÿ‡ฆ๐Ÿ‡ฎ",
+  "albania": "๐Ÿ‡ฆ๐Ÿ‡ฑ",
+  "armenia": "๐Ÿ‡ฆ๐Ÿ‡ฒ",
+  "angola": "๐Ÿ‡ฆ๐Ÿ‡ด",
+  "antarctica": "๐Ÿ‡ฆ๐Ÿ‡ถ",
+  "argentina": "๐Ÿ‡ฆ๐Ÿ‡ท",
+  "american_samoa": "๐Ÿ‡ฆ๐Ÿ‡ธ",
+  "austria": "๐Ÿ‡ฆ๐Ÿ‡น",
+  "australia": "๐Ÿ‡ฆ๐Ÿ‡บ",
+  "aruba": "๐Ÿ‡ฆ๐Ÿ‡ผ",
+  "aland_islands": "๐Ÿ‡ฆ๐Ÿ‡ฝ",
+  "azerbaijan": "๐Ÿ‡ฆ๐Ÿ‡ฟ",
+  "bosnia_herzegovina": "๐Ÿ‡ง๐Ÿ‡ฆ",
+  "barbados": "๐Ÿ‡ง๐Ÿ‡ง",
+  "bangladesh": "๐Ÿ‡ง๐Ÿ‡ฉ",
+  "belgium": "๐Ÿ‡ง๐Ÿ‡ช",
+  "burkina_faso": "๐Ÿ‡ง๐Ÿ‡ซ",
+  "bulgaria": "๐Ÿ‡ง๐Ÿ‡ฌ",
+  "bahrain": "๐Ÿ‡ง๐Ÿ‡ญ",
+  "burundi": "๐Ÿ‡ง๐Ÿ‡ฎ",
+  "benin": "๐Ÿ‡ง๐Ÿ‡ฏ",
+  "st_barthelemy": "๐Ÿ‡ง๐Ÿ‡ฑ",
+  "bermuda": "๐Ÿ‡ง๐Ÿ‡ฒ",
+  "brunei": "๐Ÿ‡ง๐Ÿ‡ณ",
+  "bolivia": "๐Ÿ‡ง๐Ÿ‡ด",
+  "caribbean_netherlands": "๐Ÿ‡ง๐Ÿ‡ถ",
+  "brazil": "๐Ÿ‡ง๐Ÿ‡ท",
+  "bahamas": "๐Ÿ‡ง๐Ÿ‡ธ",
+  "bhutan": "๐Ÿ‡ง๐Ÿ‡น",
+  "bouvet_island": "๐Ÿ‡ง๐Ÿ‡ป",
+  "botswana": "๐Ÿ‡ง๐Ÿ‡ผ",
+  "belarus": "โฌœ๏ธ๐ŸŸฅโฌœ",
+  "belize": "๐Ÿ‡ง๐Ÿ‡ฟ",
+  "canada": "๐Ÿ‡จ๐Ÿ‡ฆ",
+  "cocos_islands": "๐Ÿ‡จ๐Ÿ‡จ",
+  "congo_kinshasa": "๐Ÿ‡จ๐Ÿ‡ฉ",
+  "central_african_republic": "๐Ÿ‡จ๐Ÿ‡ซ",
+  "congo_brazzaville": "๐Ÿ‡จ๐Ÿ‡ฌ",
+  "switzerland": "๐Ÿ‡จ๐Ÿ‡ญ",
+  "cote_divoire": "๐Ÿ‡จ๐Ÿ‡ฎ",
+  "cook_islands": "๐Ÿ‡จ๐Ÿ‡ฐ",
+  "chile": "๐Ÿ‡จ๐Ÿ‡ฑ",
+  "cameroon": "๐Ÿ‡จ๐Ÿ‡ฒ",
+  "cn": "๐Ÿ‡จ๐Ÿ‡ณ",
+  "colombia": "๐Ÿ‡จ๐Ÿ‡ด",
+  "clipperton_island": "๐Ÿ‡จ๐Ÿ‡ต",
+  "costa_rica": "๐Ÿ‡จ๐Ÿ‡ท",
+  "cuba": "๐Ÿ‡จ๐Ÿ‡บ",
+  "cape_verde": "๐Ÿ‡จ๐Ÿ‡ป",
+  "curacao": "๐Ÿ‡จ๐Ÿ‡ผ",
+  "christmas_island": "๐Ÿ‡จ๐Ÿ‡ฝ",
+  "cyprus": "๐Ÿ‡จ๐Ÿ‡พ",
+  "czech_republic": "๐Ÿ‡จ๐Ÿ‡ฟ",
+  "de": "๐Ÿ‡ฉ๐Ÿ‡ช",
+  "diego_garcia": "๐Ÿ‡ฉ๐Ÿ‡ฌ",
+  "djibouti": "๐Ÿ‡ฉ๐Ÿ‡ฏ",
+  "denmark": "๐Ÿ‡ฉ๐Ÿ‡ฐ",
+  "dominica": "๐Ÿ‡ฉ๐Ÿ‡ฒ",
+  "dominican_republic": "๐Ÿ‡ฉ๐Ÿ‡ด",
+  "algeria": "๐Ÿ‡ฉ๐Ÿ‡ฟ",
+  "ceuta_melilla": "๐Ÿ‡ช๐Ÿ‡ฆ",
+  "ecuador": "๐Ÿ‡ช๐Ÿ‡จ",
+  "estonia": "๐Ÿ‡ช๐Ÿ‡ช",
+  "egypt": "๐Ÿ‡ช๐Ÿ‡ฌ",
+  "western_sahara": "๐Ÿ‡ช๐Ÿ‡ญ",
+  "eritrea": "๐Ÿ‡ช๐Ÿ‡ท",
+  "es": "๐Ÿ‡ช๐Ÿ‡ธ",
+  "ethiopia": "๐Ÿ‡ช๐Ÿ‡น",
+  "eu": "๐Ÿ‡ช๐Ÿ‡บ",
+  "european_union": "๐Ÿ‡ช๐Ÿ‡บ",
+  "finland": "๐Ÿ‡ซ๐Ÿ‡ฎ",
+  "fiji": "๐Ÿ‡ซ๐Ÿ‡ฏ",
+  "falkland_islands": "๐Ÿ‡ซ๐Ÿ‡ฐ",
+  "micronesia": "๐Ÿ‡ซ๐Ÿ‡ฒ",
+  "faroe_islands": "๐Ÿ‡ซ๐Ÿ‡ด",
+  "fr": "๐Ÿ‡ซ๐Ÿ‡ท",
+  "gabon": "๐Ÿ‡ฌ๐Ÿ‡ฆ",
+  "gb": "๐Ÿ‡ฌ๐Ÿ‡ง",
+  "uk": "๐Ÿ‡ฌ๐Ÿ‡ง",
+  "grenada": "๐Ÿ‡ฌ๐Ÿ‡ฉ",
+  "georgia": "๐Ÿ‡ฌ๐Ÿ‡ช",
+  "french_guiana": "๐Ÿ‡ฌ๐Ÿ‡ซ",
+  "guernsey": "๐Ÿ‡ฌ๐Ÿ‡ฌ",
+  "ghana": "๐Ÿ‡ฌ๐Ÿ‡ญ",
+  "gibraltar": "๐Ÿ‡ฌ๐Ÿ‡ฎ",
+  "greenland": "๐Ÿ‡ฌ๐Ÿ‡ฑ",
+  "gambia": "๐Ÿ‡ฌ๐Ÿ‡ฒ",
+  "guinea": "๐Ÿ‡ฌ๐Ÿ‡ณ",
+  "guadeloupe": "๐Ÿ‡ฌ๐Ÿ‡ต",
+  "equatorial_guinea": "๐Ÿ‡ฌ๐Ÿ‡ถ",
+  "greece": "๐Ÿ‡ฌ๐Ÿ‡ท",
+  "south_georgia_south_sandwich_islands": "๐Ÿ‡ฌ๐Ÿ‡ธ",
+  "guatemala": "๐Ÿ‡ฌ๐Ÿ‡น",
+  "guam": "๐Ÿ‡ฌ๐Ÿ‡บ",
+  "guinea_bissau": "๐Ÿ‡ฌ๐Ÿ‡ผ",
+  "guyana": "๐Ÿ‡ฌ๐Ÿ‡พ",
+  "hong_kong": "๐Ÿ‡ญ๐Ÿ‡ฐ",
+  "heard_mcdonald_islands": "๐Ÿ‡ญ๐Ÿ‡ฒ",
+  "honduras": "๐Ÿ‡ญ๐Ÿ‡ณ",
+  "croatia": "๐Ÿ‡ญ๐Ÿ‡ท",
+  "haiti": "๐Ÿ‡ญ๐Ÿ‡น",
+  "hungary": "๐Ÿ‡ญ๐Ÿ‡บ",
+  "canary_islands": "๐Ÿ‡ฎ๐Ÿ‡จ",
+  "indonesia": "๐Ÿ‡ฎ๐Ÿ‡ฉ",
+  "ireland": "๐Ÿ‡ฎ๐Ÿ‡ช",
+  "israel": "๐Ÿ‡ฎ๐Ÿ‡ฑ",
+  "isle_of_man": "๐Ÿ‡ฎ๐Ÿ‡ฒ",
+  "india": "๐Ÿ‡ฎ๐Ÿ‡ณ",
+  "british_indian_ocean_territory": "๐Ÿ‡ฎ๐Ÿ‡ด",
+  "iraq": "๐Ÿ‡ฎ๐Ÿ‡ถ",
+  "iran": "๐Ÿ‡ฎ๐Ÿ‡ท",
+  "iceland": "๐Ÿ‡ฎ๐Ÿ‡ธ",
+  "it": "๐Ÿ‡ฎ๐Ÿ‡น",
+  "jersey": "๐Ÿ‡ฏ๐Ÿ‡ช",
+  "jamaica": "๐Ÿ‡ฏ๐Ÿ‡ฒ",
+  "jordan": "๐Ÿ‡ฏ๐Ÿ‡ด",
+  "jp": "๐Ÿ‡ฏ๐Ÿ‡ต",
+  "kenya": "๐Ÿ‡ฐ๐Ÿ‡ช",
+  "kyrgyzstan": "๐Ÿ‡ฐ๐Ÿ‡ฌ",
+  "cambodia": "๐Ÿ‡ฐ๐Ÿ‡ญ",
+  "kiribati": "๐Ÿ‡ฐ๐Ÿ‡ฎ",
+  "comoros": "๐Ÿ‡ฐ๐Ÿ‡ฒ",
+  "st_kitts_nevis": "๐Ÿ‡ฐ๐Ÿ‡ณ",
+  "north_korea": "๐Ÿ‡ฐ๐Ÿ‡ต",
+  "kr": "๐Ÿ‡ฐ๐Ÿ‡ท",
+  "kuwait": "๐Ÿ‡ฐ๐Ÿ‡ผ",
+  "cayman_islands": "๐Ÿ‡ฐ๐Ÿ‡พ",
+  "kazakhstan": "๐Ÿ‡ฐ๐Ÿ‡ฟ",
+  "laos": "๐Ÿ‡ฑ๐Ÿ‡ฆ",
+  "lebanon": "๐Ÿ‡ฑ๐Ÿ‡ง",
+  "st_lucia": "๐Ÿ‡ฑ๐Ÿ‡จ",
+  "liechtenstein": "๐Ÿ‡ฑ๐Ÿ‡ฎ",
+  "sri_lanka": "๐Ÿ‡ฑ๐Ÿ‡ฐ",
+  "liberia": "๐Ÿ‡ฑ๐Ÿ‡ท",
+  "lesotho": "๐Ÿ‡ฑ๐Ÿ‡ธ",
+  "lithuania": "๐Ÿ‡ฑ๐Ÿ‡น",
+  "luxembourg": "๐Ÿ‡ฑ๐Ÿ‡บ",
+  "latvia": "๐Ÿ‡ฑ๐Ÿ‡ป",
+  "libya": "๐Ÿ‡ฑ๐Ÿ‡พ",
+  "morocco": "๐Ÿ‡ฒ๐Ÿ‡ฆ",
+  "monaco": "๐Ÿ‡ฒ๐Ÿ‡จ",
+  "moldova": "๐Ÿ‡ฒ๐Ÿ‡ฉ",
+  "montenegro": "๐Ÿ‡ฒ๐Ÿ‡ช",
+  "st_martin": "๐Ÿ‡ฒ๐Ÿ‡ซ",
+  "madagascar": "๐Ÿ‡ฒ๐Ÿ‡ฌ",
+  "marshall_islands": "๐Ÿ‡ฒ๐Ÿ‡ญ",
+  "macedonia": "๐Ÿ‡ฒ๐Ÿ‡ฐ",
+  "mali": "๐Ÿ‡ฒ๐Ÿ‡ฑ",
+  "myanmar": "๐Ÿ‡ฒ๐Ÿ‡ฒ",
+  "mongolia": "๐Ÿ‡ฒ๐Ÿ‡ณ",
+  "macau": "๐Ÿ‡ฒ๐Ÿ‡ด",
+  "northern_mariana_islands": "๐Ÿ‡ฒ๐Ÿ‡ต",
+  "martinique": "๐Ÿ‡ฒ๐Ÿ‡ถ",
+  "mauritania": "๐Ÿ‡ฒ๐Ÿ‡ท",
+  "montserrat": "๐Ÿ‡ฒ๐Ÿ‡ธ",
+  "malta": "๐Ÿ‡ฒ๐Ÿ‡น",
+  "mauritius": "๐Ÿ‡ฒ๐Ÿ‡บ",
+  "maldives": "๐Ÿ‡ฒ๐Ÿ‡ป",
+  "malawi": "๐Ÿ‡ฒ๐Ÿ‡ผ",
+  "mexico": "๐Ÿ‡ฒ๐Ÿ‡ฝ",
+  "malaysia": "๐Ÿ‡ฒ๐Ÿ‡พ",
+  "mozambique": "๐Ÿ‡ฒ๐Ÿ‡ฟ",
+  "namibia": "๐Ÿ‡ณ๐Ÿ‡ฆ",
+  "new_caledonia": "๐Ÿ‡ณ๐Ÿ‡จ",
+  "niger": "๐Ÿ‡ณ๐Ÿ‡ช",
+  "norfolk_island": "๐Ÿ‡ณ๐Ÿ‡ซ",
+  "nigeria": "๐Ÿ‡ณ๐Ÿ‡ฌ",
+  "nicaragua": "๐Ÿ‡ณ๐Ÿ‡ฎ",
+  "netherlands": "๐Ÿ‡ณ๐Ÿ‡ฑ",
+  "norway": "๐Ÿ‡ณ๐Ÿ‡ด",
+  "nepal": "๐Ÿ‡ณ๐Ÿ‡ต",
+  "nauru": "๐Ÿ‡ณ๐Ÿ‡ท",
+  "niue": "๐Ÿ‡ณ๐Ÿ‡บ",
+  "new_zealand": "๐Ÿ‡ณ๐Ÿ‡ฟ",
+  "oman": "๐Ÿ‡ด๐Ÿ‡ฒ",
+  "panama": "๐Ÿ‡ต๐Ÿ‡ฆ",
+  "peru": "๐Ÿ‡ต๐Ÿ‡ช",
+  "french_polynesia": "๐Ÿ‡ต๐Ÿ‡ซ",
+  "papua_new_guinea": "๐Ÿ‡ต๐Ÿ‡ฌ",
+  "philippines": "๐Ÿ‡ต๐Ÿ‡ญ",
+  "pakistan": "๐Ÿ‡ต๐Ÿ‡ฐ",
+  "poland": "๐Ÿ‡ต๐Ÿ‡ฑ",
+  "st_pierre_miquelon": "๐Ÿ‡ต๐Ÿ‡ฒ",
+  "pitcairn_islands": "๐Ÿ‡ต๐Ÿ‡ณ",
+  "puerto_rico": "๐Ÿ‡ต๐Ÿ‡ท",
+  "palestinian_territories": "๐Ÿ‡ต๐Ÿ‡ธ",
+  "portugal": "๐Ÿ‡ต๐Ÿ‡น",
+  "palau": "๐Ÿ‡ต๐Ÿ‡ผ",
+  "paraguay": "๐Ÿ‡ต๐Ÿ‡พ",
+  "qatar": "๐Ÿ‡ถ๐Ÿ‡ฆ",
+  "reunion": "๐Ÿ‡ท๐Ÿ‡ช",
+  "romania": "๐Ÿ‡ท๐Ÿ‡ด",
+  "serbia": "๐Ÿ‡ท๐Ÿ‡ธ",
+  "ru": "๐Ÿ‡ท๐Ÿ‡บ",
+  "rwanda": "๐Ÿ‡ท๐Ÿ‡ผ",
+  "saudi_arabia": "๐Ÿ‡ธ๐Ÿ‡ฆ",
+  "solomon_islands": "๐Ÿ‡ธ๐Ÿ‡ง",
+  "seychelles": "๐Ÿ‡ธ๐Ÿ‡จ",
+  "sudan": "๐Ÿ‡ธ๐Ÿ‡ฉ",
+  "sweden": "๐Ÿ‡ธ๐Ÿ‡ช",
+  "singapore": "๐Ÿ‡ธ๐Ÿ‡ฌ",
+  "st_helena": "๐Ÿ‡ธ๐Ÿ‡ญ",
+  "slovenia": "๐Ÿ‡ธ๐Ÿ‡ฎ",
+  "svalbard_jan_mayen": "๐Ÿ‡ธ๐Ÿ‡ฏ",
+  "slovakia": "๐Ÿ‡ธ๐Ÿ‡ฐ",
+  "sierra_leone": "๐Ÿ‡ธ๐Ÿ‡ฑ",
+  "san_marino": "๐Ÿ‡ธ๐Ÿ‡ฒ",
+  "senegal": "๐Ÿ‡ธ๐Ÿ‡ณ",
+  "somalia": "๐Ÿ‡ธ๐Ÿ‡ด",
+  "suriname": "๐Ÿ‡ธ๐Ÿ‡ท",
+  "south_sudan": "๐Ÿ‡ธ๐Ÿ‡ธ",
+  "sao_tome_principe": "๐Ÿ‡ธ๐Ÿ‡น",
+  "el_salvador": "๐Ÿ‡ธ๐Ÿ‡ป",
+  "sint_maarten": "๐Ÿ‡ธ๐Ÿ‡ฝ",
+  "syria": "๐Ÿ‡ธ๐Ÿ‡พ",
+  "swaziland": "๐Ÿ‡ธ๐Ÿ‡ฟ",
+  "tristan_da_cunha": "๐Ÿ‡น๐Ÿ‡ฆ",
+  "turks_caicos_islands": "๐Ÿ‡น๐Ÿ‡จ",
+  "chad": "๐Ÿ‡น๐Ÿ‡ฉ",
+  "french_southern_territories": "๐Ÿ‡น๐Ÿ‡ซ",
+  "togo": "๐Ÿ‡น๐Ÿ‡ฌ",
+  "thailand": "๐Ÿ‡น๐Ÿ‡ญ",
+  "tajikistan": "๐Ÿ‡น๐Ÿ‡ฏ",
+  "tokelau": "๐Ÿ‡น๐Ÿ‡ฐ",
+  "timor_leste": "๐Ÿ‡น๐Ÿ‡ฑ",
+  "turkmenistan": "๐Ÿ‡น๐Ÿ‡ฒ",
+  "tunisia": "๐Ÿ‡น๐Ÿ‡ณ",
+  "tonga": "๐Ÿ‡น๐Ÿ‡ด",
+  "tr": "๐Ÿ‡น๐Ÿ‡ท",
+  "trinidad_tobago": "๐Ÿ‡น๐Ÿ‡น",
+  "tuvalu": "๐Ÿ‡น๐Ÿ‡ป",
+  "taiwan": "๐Ÿ‡น๐Ÿ‡ผ",
+  "tanzania": "๐Ÿ‡น๐Ÿ‡ฟ",
+  "ukraine": "๐Ÿ‡บ๐Ÿ‡ฆ",
+  "uganda": "๐Ÿ‡บ๐Ÿ‡ฌ",
+  "us_outlying_islands": "๐Ÿ‡บ๐Ÿ‡ฒ",
+  "united_nations": "๐Ÿ‡บ๐Ÿ‡ณ",
+  "us": "๐Ÿ‡บ๐Ÿ‡ธ",
+  "uruguay": "๐Ÿ‡บ๐Ÿ‡พ",
+  "uzbekistan": "๐Ÿ‡บ๐Ÿ‡ฟ",
+  "vatican_city": "๐Ÿ‡ป๐Ÿ‡ฆ",
+  "st_vincent_grenadines": "๐Ÿ‡ป๐Ÿ‡จ",
+  "venezuela": "๐Ÿ‡ป๐Ÿ‡ช",
+  "british_virgin_islands": "๐Ÿ‡ป๐Ÿ‡ฌ",
+  "us_virgin_islands": "๐Ÿ‡ป๐Ÿ‡ฎ",
+  "vietnam": "๐Ÿ‡ป๐Ÿ‡ณ",
+  "vanuatu": "๐Ÿ‡ป๐Ÿ‡บ",
+  "wallis_futuna": "๐Ÿ‡ผ๐Ÿ‡ซ",
+  "samoa": "๐Ÿ‡ผ๐Ÿ‡ธ",
+  "kosovo": "๐Ÿ‡ฝ๐Ÿ‡ฐ",
+  "yemen": "๐Ÿ‡พ๐Ÿ‡ช",
+  "mayotte": "๐Ÿ‡พ๐Ÿ‡น",
+  "south_africa": "๐Ÿ‡ฟ๐Ÿ‡ฆ",
+  "zambia": "๐Ÿ‡ฟ๐Ÿ‡ฒ",
+  "zimbabwe": "๐Ÿ‡ฟ๐Ÿ‡ผ",
+  "england": "๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ",
+  "scotland": "๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ",
+  "wales": "๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ"
+};
diff --git a/app/vmui/packages/vmui/src/constants/markedPlugins.ts b/app/vmui/packages/vmui/src/constants/markedPlugins.ts
new file mode 100644
index 0000000000..2a7d046c7c
--- /dev/null
+++ b/app/vmui/packages/vmui/src/constants/markedPlugins.ts
@@ -0,0 +1,5 @@
+import { markedEmoji } from "marked-emoji";
+import { marked } from "marked";
+import emojis from "./emojis";
+
+marked.use(markedEmoji({ emojis, renderer: (token) => token.emoji }));
diff --git a/app/vmui/packages/vmui/src/hooks/useGetMetricsQL.tsx b/app/vmui/packages/vmui/src/hooks/useGetMetricsQL.tsx
index fb930c4baf..c41e4be92b 100644
--- a/app/vmui/packages/vmui/src/hooks/useGetMetricsQL.tsx
+++ b/app/vmui/packages/vmui/src/hooks/useGetMetricsQL.tsx
@@ -54,7 +54,7 @@ const useGetMetricsQL = () => {
 
   const processMarkdown = (text: string) => {
     const div = document.createElement("div");
-    div.innerHTML = marked(text);
+    div.innerHTML = marked(text) as string;
     const groups = div.querySelectorAll(`${CATEGORY_TAG}, ${FUNCTION_TAG}`);
     return processGroups(groups);
   };
diff --git a/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogs.tsx b/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogs.tsx
index 8696531e45..9dbebedb6b 100644
--- a/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogs.tsx
+++ b/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogs.tsx
@@ -26,6 +26,7 @@ const ExploreLogs: FC = () => {
   const { logs, isLoading, error, fetchLogs } = useFetchLogs(serverUrl, query, limit);
   const [queryError, setQueryError] = useState<ErrorTypes | string>("");
   const [loaded, isLoaded] = useState(false);
+  const [markdownParsing, setMarkdownParsing] = useState(getFromStorage("LOGS_MARKDOWN") === "true");
 
   const handleRunQuery = () => {
     if (!query) {
@@ -51,6 +52,11 @@ const ExploreLogs: FC = () => {
     saveToStorage("LOGS_LIMIT", `${limit}`);
   };
 
+  const handleChangeMarkdownParsing = (val: boolean) => {
+    saveToStorage("LOGS_MARKDOWN", `${val}`);
+    setMarkdownParsing(val);
+  };
+
   useEffect(() => {
     if (query) handleRunQuery();
   }, [period]);
@@ -65,15 +71,18 @@ const ExploreLogs: FC = () => {
         query={query}
         error={queryError}
         limit={limit}
+        markdownParsing={markdownParsing}
         onChange={setQuery}
         onChangeLimit={handleChangeLimit}
         onRun={handleRunQuery}
+        onChangeMarkdownParsing={handleChangeMarkdownParsing}
       />
       {isLoading && <Spinner />}
       {error && <Alert variant="error">{error}</Alert>}
       <ExploreLogsBody
         data={logs}
         loaded={loaded}
+        markdownParsing={markdownParsing}
       />
     </div>
   );
diff --git a/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogsBody/ExploreLogsBody.tsx b/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogsBody/ExploreLogsBody.tsx
index 7538a0e148..3a66a35039 100644
--- a/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogsBody/ExploreLogsBody.tsx
+++ b/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogsBody/ExploreLogsBody.tsx
@@ -15,10 +15,12 @@ import useBoolean from "../../../hooks/useBoolean";
 import TableLogs from "./TableLogs";
 import GroupLogs from "../GroupLogs/GroupLogs";
 import { DATE_TIME_FORMAT } from "../../../constants/date";
+import { marked } from "marked";
 
 export interface ExploreLogBodyProps {
   data: Logs[];
   loaded?: boolean;
+  markdownParsing: boolean;
 }
 
 enum DisplayType {
@@ -33,7 +35,7 @@ const tabs = [
   { label: "JSON", value: DisplayType.json, icon: <CodeIcon/> },
 ];
 
-const ExploreLogsBody: FC<ExploreLogBodyProps> = ({ data, loaded }) => {
+const ExploreLogsBody: FC<ExploreLogBodyProps> = ({ data, loaded, markdownParsing }) => {
   const { isMobile } = useDeviceDetect();
   const { timezone } = useTimeState();
   const { setSearchParamsFromKeys } = useSearchParamsFromObject();
@@ -46,11 +48,12 @@ const ExploreLogsBody: FC<ExploreLogBodyProps> = ({ data, loaded }) => {
     ...item,
     _vmui_time: item._time ? dayjs(item._time).tz().format(`${DATE_TIME_FORMAT}.SSS`) : "",
     _vmui_data: JSON.stringify(item, null, 2),
+    _vmui_markdown: marked(item._msg.replace(/```/g, "\n```\n")) as string,
   })) as Logs[], [data, timezone]);
 
   const columns = useMemo(() => {
     if (!logs?.length) return [];
-    const hideColumns = ["_vmui_data", "_vmui_time"];
+    const hideColumns = ["_vmui_data", "_vmui_time", "_vmui_markdown"];
     const keys = new Set<string>();
     for (const item of logs) {
       for (const key in item) {
@@ -125,6 +128,7 @@ const ExploreLogsBody: FC<ExploreLogBodyProps> = ({ data, loaded }) => {
               <GroupLogs
                 logs={logs}
                 columns={columns}
+                markdownParsing={markdownParsing}
               />
             )}
             {activeTab === DisplayType.json && (
diff --git a/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogsHeader/ExploreLogsHeader.tsx b/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogsHeader/ExploreLogsHeader.tsx
index 5a7c54973c..aed3af35b5 100644
--- a/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogsHeader/ExploreLogsHeader.tsx
+++ b/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogsHeader/ExploreLogsHeader.tsx
@@ -6,17 +6,29 @@ import useDeviceDetect from "../../../hooks/useDeviceDetect";
 import Button from "../../../components/Main/Button/Button";
 import QueryEditor from "../../../components/Configurators/QueryEditor/QueryEditor";
 import TextField from "../../../components/Main/TextField/TextField";
+import Switch from "../../../components/Main/Switch/Switch";
 
 export interface ExploreLogHeaderProps {
   query: string;
   limit: number;
   error?: string;
+  markdownParsing: boolean;
   onChange: (val: string) => void;
   onChangeLimit: (val: number) => void;
   onRun: () => void;
+  onChangeMarkdownParsing: (val: boolean) => void;
 }
 
-const ExploreLogsHeader: FC<ExploreLogHeaderProps> = ({ query, limit, error, onChange, onChangeLimit, onRun }) => {
+const ExploreLogsHeader: FC<ExploreLogHeaderProps> = ({
+  query,
+  limit,
+  error,
+  markdownParsing,
+  onChange,
+  onChangeLimit,
+  onRun,
+  onChangeMarkdownParsing,
+}) => {
   const { isMobile } = useDeviceDetect();
 
   const [errorLimit, setErrorLimit] = useState("");
@@ -66,6 +78,14 @@ const ExploreLogsHeader: FC<ExploreLogHeaderProps> = ({ query, limit, error, onC
         />
       </div>
       <div className="vm-explore-logs-header-bottom">
+        <div className="vm-explore-logs-header-bottom-contols">
+          <Switch
+            label={"Markdown parsing"}
+            value={markdownParsing}
+            onChange={onChangeMarkdownParsing}
+            fullWidth={isMobile}
+          />
+        </div>
         <div className="vm-explore-logs-header-bottom-helpful">
           <a
             className="vm-link vm-link_with-icon"
diff --git a/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogsHeader/style.scss b/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogsHeader/style.scss
index 49a439863c..1bc7ab0b69 100644
--- a/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogsHeader/style.scss
+++ b/app/vmui/packages/vmui/src/pages/ExploreLogs/ExploreLogsHeader/style.scss
@@ -25,6 +25,10 @@
       justify-content: normal;
     }
 
+    &-contols {
+      flex-grow: 1;
+    }
+
     &__execute {
       display: grid;
     }
diff --git a/app/vmui/packages/vmui/src/pages/ExploreLogs/GroupLogs/GroupLogs.tsx b/app/vmui/packages/vmui/src/pages/ExploreLogs/GroupLogs/GroupLogs.tsx
index 739d0c0331..82983a14fc 100644
--- a/app/vmui/packages/vmui/src/pages/ExploreLogs/GroupLogs/GroupLogs.tsx
+++ b/app/vmui/packages/vmui/src/pages/ExploreLogs/GroupLogs/GroupLogs.tsx
@@ -11,9 +11,10 @@ import GroupLogsItem from "./GroupLogsItem";
 interface TableLogsProps {
   logs: Logs[];
   columns: string[];
+  markdownParsing: boolean;
 }
 
-const GroupLogs: FC<TableLogsProps> = ({ logs }) => {
+const GroupLogs: FC<TableLogsProps> = ({ logs, markdownParsing }) => {
   const copyToClipboard = useCopyToClipboard();
 
   const [copied, setCopied] = useState<string | null>(null);
@@ -77,6 +78,7 @@ const GroupLogs: FC<TableLogsProps> = ({ logs }) => {
                 <GroupLogsItem
                   key={`${value._msg}${value._time}`}
                   log={value}
+                  markdownParsing={markdownParsing}
                 />
               ))}
             </div>
diff --git a/app/vmui/packages/vmui/src/pages/ExploreLogs/GroupLogs/GroupLogsItem.tsx b/app/vmui/packages/vmui/src/pages/ExploreLogs/GroupLogs/GroupLogsItem.tsx
index 7208de9328..64539db0e1 100644
--- a/app/vmui/packages/vmui/src/pages/ExploreLogs/GroupLogs/GroupLogsItem.tsx
+++ b/app/vmui/packages/vmui/src/pages/ExploreLogs/GroupLogs/GroupLogsItem.tsx
@@ -10,15 +10,16 @@ import classNames from "classnames";
 
 interface Props {
   log: Logs;
+  markdownParsing: boolean;
 }
 
-const GroupLogsItem: FC<Props> = ({ log }) => {
+const GroupLogsItem: FC<Props> = ({ log, markdownParsing }) => {
   const {
     value: isOpenFields,
     toggle: toggleOpenFields,
   } = useBoolean(false);
 
-  const excludeKeys = ["_stream", "_msg", "_time", "_vmui_time", "_vmui_data"];
+  const excludeKeys = ["_stream", "_msg", "_time", "_vmui_time", "_vmui_data", "_vmui_markdown"];
   const fields = Object.entries(log).filter(([key]) => !excludeKeys.includes(key));
   const hasFields = fields.length > 0;
 
@@ -71,6 +72,7 @@ const GroupLogsItem: FC<Props> = ({ log }) => {
             "vm-group-logs-row-content__msg": true,
             "vm-group-logs-row-content__msg_missing": !log._msg
           })}
+          dangerouslySetInnerHTML={markdownParsing && log._vmui_markdown ? { __html: log._vmui_markdown } : undefined}
         >
           {log._msg || "message missing"}
         </div>
diff --git a/app/vmui/packages/vmui/src/pages/ExploreLogs/GroupLogs/style.scss b/app/vmui/packages/vmui/src/pages/ExploreLogs/GroupLogs/style.scss
index 0710a3f8e9..71ee06179c 100644
--- a/app/vmui/packages/vmui/src/pages/ExploreLogs/GroupLogs/style.scss
+++ b/app/vmui/packages/vmui/src/pages/ExploreLogs/GroupLogs/style.scss
@@ -96,6 +96,65 @@
           font-style: italic;
           text-align: center;
         }
+
+        /* styles for markdown */
+        p, pre, code {
+          white-space: pre-wrap;
+          word-wrap: break-word;
+          word-break: normal;
+        }
+
+        code:not(pre code), pre {
+          display: inline-block;
+          background: $color-hover-black;
+          border: 1px solid $color-hover-black;
+          border-radius: $border-radius-small;
+          tab-size: 4;
+          font-variant-ligatures: none;
+          margin: calc($padding-small/4) 0;
+        }
+
+        p {
+          font-family: $font-family-global;
+          line-height: 1.4;
+        }
+
+        pre {
+          padding: $padding-small;
+        }
+
+        code {
+          font-size: $font-size-small;
+          padding: calc($padding-small / 4) calc($padding-small / 2);
+        }
+
+        a {
+          color: $color-primary;
+          cursor: pointer;
+
+          &:hover {
+            text-decoration: underline;
+          }
+        }
+
+        strong {
+          font-weight: bold;
+        }
+
+        em {
+          font-style: italic;
+        }
+
+        blockquote {
+          border-left: 4px solid $color-hover-black;
+          margin: calc($padding-small/2) $padding-small;
+          padding: calc($padding-small/2) $padding-small;
+        }
+
+        ul, ol {
+          list-style-position: inside;
+        }
+        /* end styles for markdown */
       }
     }
 
diff --git a/app/vmui/packages/vmui/src/pages/PredefinedPanels/PredefinedPanel/PredefinedPanel.tsx b/app/vmui/packages/vmui/src/pages/PredefinedPanels/PredefinedPanel/PredefinedPanel.tsx
index 268d51a934..3c2dce8e11 100644
--- a/app/vmui/packages/vmui/src/pages/PredefinedPanels/PredefinedPanel/PredefinedPanel.tsx
+++ b/app/vmui/packages/vmui/src/pages/PredefinedPanels/PredefinedPanel/PredefinedPanel.tsx
@@ -89,7 +89,7 @@ const PredefinedPanel: FC<PredefinedPanelsProps> = ({
         <>
           <div>
             <span>Description:</span>
-            <div dangerouslySetInnerHTML={{ __html: marked.parse(description) }}/>
+            <div dangerouslySetInnerHTML={{ __html: marked(description) as string }}/>
           </div>
           <hr/>
         </>
diff --git a/app/vmui/packages/vmui/src/utils/storage.ts b/app/vmui/packages/vmui/src/utils/storage.ts
index 995cf77725..7c5ee7109f 100644
--- a/app/vmui/packages/vmui/src/utils/storage.ts
+++ b/app/vmui/packages/vmui/src/utils/storage.ts
@@ -7,6 +7,7 @@ export type StorageKeys = "AUTOCOMPLETE"
     | "DISABLED_DEFAULT_TIMEZONE"
     | "THEME"
     | "LOGS_LIMIT"
+    | "LOGS_MARKDOWN"
     | "EXPLORE_METRICS_TIPS"
     | "QUERY_HISTORY"
     | "QUERY_FAVORITES"
diff --git a/dashboards/vm/vmagent.json b/dashboards/vm/vmagent.json
index d9e5fdc982..c78ef1cabe 100644
--- a/dashboards/vm/vmagent.json
+++ b/dashboards/vm/vmagent.json
@@ -86,7 +86,7 @@
       }
     ]
   },
-  "description": "Overview for VictoriaMetrics vmagent v1.80.0 or higher",
+  "description": "Overview for VictoriaMetrics vmagent v1.102.0 or higher",
   "editable": true,
   "fiscalYearStartMonth": 0,
   "graphTooltip": 1,
@@ -1336,7 +1336,8 @@
             "mode": "absolute",
             "steps": [
               {
-                "color": "green"
+                "color": "green",
+                "value": null
               },
               {
                 "color": "red",
@@ -1344,8 +1345,7 @@
               }
             ]
           },
-          "unit": "short",
-          "unitScale": true
+          "unit": "short"
         },
         "overrides": []
       },
@@ -1440,7 +1440,8 @@
             "mode": "absolute",
             "steps": [
               {
-                "color": "green"
+                "color": "green",
+                "value": null
               },
               {
                 "color": "red",
@@ -1448,8 +1449,7 @@
               }
             ]
           },
-          "unit": "short",
-          "unitScale": true
+          "unit": "short"
         },
         "overrides": []
       },
@@ -1627,8 +1627,7 @@
                   }
                 ]
               },
-              "unit": "percentunit",
-              "unitScale": true
+              "unit": "percentunit"
             },
             "overrides": []
           },
@@ -1636,10 +1635,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 3
+            "y": 11
           },
           "id": 109,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -1743,8 +1741,7 @@
                   }
                 ]
               },
-              "unit": "percentunit",
-              "unitScale": true
+              "unit": "percentunit"
             },
             "overrides": []
           },
@@ -1752,10 +1749,9 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 3
+            "y": 11
           },
           "id": 111,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -1856,8 +1852,7 @@
                   }
                 ]
               },
-              "unit": "bytes",
-              "unitScale": true
+              "unit": "bytes"
             },
             "overrides": [
               {
@@ -1878,10 +1873,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 11
+            "y": 19
           },
           "id": 81,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -1993,8 +1987,7 @@
                   }
                 ]
               },
-              "unit": "bps",
-              "unitScale": true
+              "unit": "bps"
             },
             "overrides": [
               {
@@ -2015,7 +2008,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 11
+            "y": 19
           },
           "id": 7,
           "options": {
@@ -2125,8 +2118,7 @@
                   }
                 ]
               },
-              "unit": "percentunit",
-              "unitScale": true
+              "unit": "percentunit"
             },
             "overrides": []
           },
@@ -2134,10 +2126,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 19
+            "y": 27
           },
           "id": 83,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -2232,8 +2223,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -2241,10 +2231,9 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 19
+            "y": 27
           },
           "id": 39,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -2340,8 +2329,7 @@
                   }
                 ]
               },
-              "unit": "percentunit",
-              "unitScale": true
+              "unit": "percentunit"
             },
             "overrides": []
           },
@@ -2349,10 +2337,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 27
+            "y": 35
           },
           "id": 135,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -2447,8 +2434,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -2456,10 +2442,9 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 27
+            "y": 35
           },
           "id": 41,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -2534,6 +2519,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -2547,6 +2533,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -2584,7 +2571,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 4
+            "y": 12
           },
           "id": 92,
           "options": {
@@ -2636,6 +2623,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -2649,6 +2637,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -2686,7 +2675,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 4
+            "y": 12
           },
           "id": 95,
           "options": {
@@ -2738,6 +2727,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -2752,6 +2742,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -2791,7 +2782,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 12
+            "y": 20
           },
           "id": 98,
           "options": {
@@ -2843,6 +2834,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -2857,6 +2849,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -2896,7 +2889,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 12
+            "y": 20
           },
           "id": 99,
           "options": {
@@ -3000,10 +2993,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 20
+            "y": 28
           },
           "id": 79,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -3105,7 +3097,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 20
+            "y": 28
           },
           "id": 18,
           "links": [
@@ -3215,10 +3207,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 28
+            "y": 36
           },
           "id": 127,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -3318,7 +3309,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 28
+            "y": 36
           },
           "id": 50,
           "options": {
@@ -3418,7 +3409,7 @@
             "h": 7,
             "w": 24,
             "x": 0,
-            "y": 36
+            "y": 44
           },
           "id": 129,
           "options": {
@@ -3565,8 +3556,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -3574,7 +3564,7 @@
             "h": 7,
             "w": 12,
             "x": 0,
-            "y": 37
+            "y": 13
           },
           "id": 48,
           "options": {
@@ -3672,8 +3662,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -3681,7 +3670,7 @@
             "h": 7,
             "w": 12,
             "x": 12,
-            "y": 37
+            "y": 13
           },
           "id": 76,
           "options": {
@@ -3777,8 +3766,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -3786,7 +3774,7 @@
             "h": 7,
             "w": 12,
             "x": 0,
-            "y": 44
+            "y": 20
           },
           "id": 132,
           "options": {
@@ -3884,8 +3872,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -3893,7 +3880,7 @@
             "h": 7,
             "w": 12,
             "x": 12,
-            "y": 44
+            "y": 20
           },
           "id": 133,
           "options": {
@@ -3990,8 +3977,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -3999,7 +3985,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 51
+            "y": 27
           },
           "id": 20,
           "options": {
@@ -4095,8 +4081,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -4104,7 +4089,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 51
+            "y": 27
           },
           "id": 126,
           "options": {
@@ -4199,8 +4184,7 @@
                   }
                 ]
               },
-              "unit": "bytes",
-              "unitScale": true
+              "unit": "bytes"
             },
             "overrides": []
           },
@@ -4208,7 +4192,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 59
+            "y": 35
           },
           "id": 46,
           "options": {
@@ -4303,8 +4287,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -4312,7 +4295,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 59
+            "y": 35
           },
           "id": 31,
           "options": {
@@ -4437,6 +4420,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -4450,6 +4434,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -4489,10 +4474,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 38
+            "y": 14
           },
           "id": 73,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -4553,6 +4537,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -4566,6 +4551,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -4605,10 +4591,9 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 38
+            "y": 14
           },
           "id": 131,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -4656,6 +4641,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -4669,6 +4655,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -4708,10 +4695,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 46
+            "y": 22
           },
           "id": 130,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -4772,6 +4758,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -4785,6 +4772,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -4824,10 +4812,9 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 46
+            "y": 22
           },
           "id": 77,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -4885,6 +4872,620 @@
       "title": "Ingestion",
       "type": "row"
     },
+    {
+      "collapsed": true,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 38
+      },
+      "id": 136,
+      "panels": [
+        {
+          "datasource": {
+            "type": "victoriametrics-datasource",
+            "uid": "$ds"
+          },
+          "description": "The 99th percentile of avg flush duration for the aggregated data. \n\nSmaller is better.\n\nAggregation can produce incorrect results ff flush duration exceeds configured deduplication interval. See \"Flush Timeouts\" panel.",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisBorderShow": false,
+                "axisCenteredZero": false,
+                "axisColorMode": "text",
+                "axisLabel": "",
+                "axisPlacement": "auto",
+                "axisSoftMin": 0,
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 0,
+                "gradientMode": "none",
+                "hideFrom": {
+                  "legend": false,
+                  "tooltip": false,
+                  "viz": false
+                },
+                "insertNulls": false,
+                "lineInterpolation": "linear",
+                "lineWidth": 1,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "auto",
+                "spanNulls": false,
+                "stacking": {
+                  "group": "A",
+                  "mode": "none"
+                },
+                "thresholdsStyle": {
+                  "mode": "off"
+                }
+              },
+              "mappings": [],
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              },
+              "unit": "s"
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 12,
+            "x": 0,
+            "y": 7
+          },
+          "id": 137,
+          "options": {
+            "legend": {
+              "calcs": [],
+              "displayMode": "list",
+              "placement": "bottom",
+              "showLegend": true
+            },
+            "tooltip": {
+              "mode": "single",
+              "sort": "none"
+            }
+          },
+          "targets": [
+            {
+              "datasource": {
+                "type": "victoriametrics-datasource",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "histogram_quantile(0.99, vm_streamaggr_dedup_flush_duration_seconds_bucket{job=~\"$job\",instance=~\"$instance\"}[$__rate_interval])",
+              "instant": false,
+              "legendFormat": "{{instance}} ({{job}})",
+              "range": true,
+              "refId": "A"
+            }
+          ],
+          "title": "Dedup flush duration (0.99)",
+          "type": "timeseries"
+        },
+        {
+          "datasource": {
+            "type": "victoriametrics-datasource",
+            "uid": "$ds"
+          },
+          "description": "Amount of ignored samples during aggregation. \nStream aggregation will drop samples with NaN values, or samples with too old timestamps. See https://docs.victoriametrics.com/stream-aggregation/#ignoring-old-samples ",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisBorderShow": false,
+                "axisCenteredZero": false,
+                "axisColorMode": "text",
+                "axisLabel": "",
+                "axisPlacement": "auto",
+                "axisSoftMin": 0,
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 0,
+                "gradientMode": "none",
+                "hideFrom": {
+                  "legend": false,
+                  "tooltip": false,
+                  "viz": false
+                },
+                "insertNulls": false,
+                "lineInterpolation": "linear",
+                "lineWidth": 1,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "auto",
+                "spanNulls": false,
+                "stacking": {
+                  "group": "A",
+                  "mode": "none"
+                },
+                "thresholdsStyle": {
+                  "mode": "off"
+                }
+              },
+              "mappings": [],
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              }
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 12,
+            "x": 12,
+            "y": 7
+          },
+          "id": 143,
+          "options": {
+            "legend": {
+              "calcs": [],
+              "displayMode": "list",
+              "placement": "bottom",
+              "showLegend": true
+            },
+            "tooltip": {
+              "mode": "single",
+              "sort": "none"
+            }
+          },
+          "targets": [
+            {
+              "datasource": {
+                "type": "victoriametrics-datasource",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "increase(vm_streamaggr_ignored_samples_total[5m]) > 0",
+              "instant": false,
+              "legendFormat": "{{reason}}: {{instance}} ({{job}})",
+              "range": true,
+              "refId": "A"
+            }
+          ],
+          "title": "Ignored samples",
+          "type": "timeseries"
+        },
+        {
+          "datasource": {
+            "type": "victoriametrics-datasource",
+            "uid": "$ds"
+          },
+          "description": "Shows events when deduplication or aggregation couldn't be finished in the configured interval. Such events may result into bad accuracy of produced data.\n\nPossible solutions:\n* increase interval; \n* use match filter matching smaller number of series;\n* reduce samples ingestion rate to stream aggregation",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisBorderShow": false,
+                "axisCenteredZero": false,
+                "axisColorMode": "text",
+                "axisLabel": "",
+                "axisPlacement": "auto",
+                "axisSoftMin": 0,
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 0,
+                "gradientMode": "none",
+                "hideFrom": {
+                  "legend": false,
+                  "tooltip": false,
+                  "viz": false
+                },
+                "insertNulls": false,
+                "lineInterpolation": "linear",
+                "lineWidth": 1,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "auto",
+                "spanNulls": false,
+                "stacking": {
+                  "group": "A",
+                  "mode": "none"
+                },
+                "thresholdsStyle": {
+                  "mode": "off"
+                }
+              },
+              "mappings": [],
+              "min": -5,
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              }
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 12,
+            "x": 0,
+            "y": 15
+          },
+          "id": 139,
+          "options": {
+            "legend": {
+              "calcs": [],
+              "displayMode": "list",
+              "placement": "bottom",
+              "showLegend": true
+            },
+            "tooltip": {
+              "mode": "single",
+              "sort": "none"
+            }
+          },
+          "targets": [
+            {
+              "datasource": {
+                "type": "victoriametrics-datasource",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "increase(vm_streamaggr_flush_timeouts_total{job=~\"$job\",instance=~\"$instance\"}[$__rate_interval]) > 0",
+              "instant": false,
+              "legendFormat": "aggregate: {{instance}} ({{job}})",
+              "range": true,
+              "refId": "A"
+            },
+            {
+              "datasource": {
+                "type": "victoriametrics-datasource",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "increase(vm_streamaggr_dedup_flush_timeouts_total{job=~\"$job\",instance=~\"$instance\"}[$__rate_interval]) > 0",
+              "hide": false,
+              "instant": false,
+              "legendFormat": "dedup: {{instance}} ({{job}})",
+              "range": true,
+              "refId": "B"
+            }
+          ],
+          "title": "Flush timeouts",
+          "type": "timeseries"
+        },
+        {
+          "datasource": {
+            "type": "victoriametrics-datasource",
+            "uid": "$ds"
+          },
+          "description": "Shows the lag between average samples timestamp and aggregation interval.\n\nLower is better.\n\nToo high lag or lag exceeding the interval might be a sign of data delay before aggregation or resource insufficiency on aggregator. Samples with high lag may affect accuracy of aggregation.\n\nSee https://docs.victoriametrics.com/stream-aggregation/#ignoring-old-samples",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisBorderShow": false,
+                "axisCenteredZero": false,
+                "axisColorMode": "text",
+                "axisLabel": "",
+                "axisPlacement": "auto",
+                "axisSoftMin": 0,
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 0,
+                "gradientMode": "none",
+                "hideFrom": {
+                  "legend": false,
+                  "tooltip": false,
+                  "viz": false
+                },
+                "insertNulls": false,
+                "lineInterpolation": "linear",
+                "lineWidth": 1,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "auto",
+                "spanNulls": false,
+                "stacking": {
+                  "group": "A",
+                  "mode": "none"
+                },
+                "thresholdsStyle": {
+                  "mode": "off"
+                }
+              },
+              "mappings": [],
+              "min": 0,
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              },
+              "unit": "s"
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 12,
+            "x": 12,
+            "y": 15
+          },
+          "id": 142,
+          "options": {
+            "legend": {
+              "calcs": [],
+              "displayMode": "list",
+              "placement": "bottom",
+              "showLegend": true
+            },
+            "tooltip": {
+              "mode": "single",
+              "sort": "none"
+            }
+          },
+          "targets": [
+            {
+              "datasource": {
+                "type": "victoriametrics-datasource",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "histogram_quantile(0.99, vm_streamaggr_samples_lag_seconds_bucket{job=~\"$job\",instance=~\"$instance\"}[$__rate_interval])",
+              "instant": false,
+              "legendFormat": "{{instance}} ({{job}})",
+              "range": true,
+              "refId": "A"
+            }
+          ],
+          "title": "Aggregated samples lag",
+          "type": "timeseries"
+        },
+        {
+          "datasource": {
+            "type": "victoriametrics-datasource",
+            "uid": "$ds"
+          },
+          "description": "Shows the size of Label Compressor in bytes.\n\nLabels compressor encodes label-value pairs during aggregation to optimise memory usage. It is expected for its size to grow with time and to reset on vmagent restarts.\n\nRapid spikes in Label compressor size might be a sign of significant changes in labels of received samples.",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisBorderShow": false,
+                "axisCenteredZero": false,
+                "axisColorMode": "text",
+                "axisLabel": "",
+                "axisPlacement": "auto",
+                "axisSoftMin": 0,
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 0,
+                "gradientMode": "none",
+                "hideFrom": {
+                  "legend": false,
+                  "tooltip": false,
+                  "viz": false
+                },
+                "insertNulls": false,
+                "lineInterpolation": "linear",
+                "lineWidth": 1,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "auto",
+                "spanNulls": false,
+                "stacking": {
+                  "group": "A",
+                  "mode": "none"
+                },
+                "thresholdsStyle": {
+                  "mode": "off"
+                }
+              },
+              "mappings": [],
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              },
+              "unit": "decbytes"
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 12,
+            "x": 0,
+            "y": 23
+          },
+          "id": 140,
+          "options": {
+            "legend": {
+              "calcs": [],
+              "displayMode": "list",
+              "placement": "bottom",
+              "showLegend": true
+            },
+            "tooltip": {
+              "mode": "single",
+              "sort": "none"
+            }
+          },
+          "targets": [
+            {
+              "datasource": {
+                "type": "victoriametrics-datasource",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "vm_streamaggr_labels_compressor_size_bytes{job=~\"$job\",instance=~\"$instance\"} > 0",
+              "instant": false,
+              "legendFormat": "{{instance}} ({{job}})",
+              "range": true,
+              "refId": "A"
+            }
+          ],
+          "title": "Labels compressor bytes",
+          "type": "timeseries"
+        },
+        {
+          "datasource": {
+            "type": "victoriametrics-datasource",
+            "uid": "$ds"
+          },
+          "description": "Shows the size of Label Compressor in number of entries.\n\nLabels compressor encodes label-value pairs during aggregation to optimise memory usage. It is expected for its size to grow with time and to reset on vmagent restarts.\n\nRapid spikes in Label compressor size might be a sign of significant changes in labels of received samples.",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisBorderShow": false,
+                "axisCenteredZero": false,
+                "axisColorMode": "text",
+                "axisLabel": "",
+                "axisPlacement": "auto",
+                "axisSoftMin": 0,
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 0,
+                "gradientMode": "none",
+                "hideFrom": {
+                  "legend": false,
+                  "tooltip": false,
+                  "viz": false
+                },
+                "insertNulls": false,
+                "lineInterpolation": "linear",
+                "lineWidth": 1,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "auto",
+                "spanNulls": false,
+                "stacking": {
+                  "group": "A",
+                  "mode": "none"
+                },
+                "thresholdsStyle": {
+                  "mode": "off"
+                }
+              },
+              "mappings": [],
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              }
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 12,
+            "x": 12,
+            "y": 23
+          },
+          "id": 141,
+          "options": {
+            "legend": {
+              "calcs": [],
+              "displayMode": "list",
+              "placement": "bottom",
+              "showLegend": true
+            },
+            "tooltip": {
+              "mode": "single",
+              "sort": "none"
+            }
+          },
+          "targets": [
+            {
+              "datasource": {
+                "type": "victoriametrics-datasource",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "vm_streamaggr_labels_compressor_items_count{job=~\"$job\",instance=~\"$instance\"} > 0",
+              "instant": false,
+              "legendFormat": "{{instance}} ({{job}})",
+              "range": true,
+              "refId": "A"
+            }
+          ],
+          "title": "Labels compressor items count",
+          "type": "timeseries"
+        }
+      ],
+      "title": "Streaming aggregation",
+      "type": "row"
+    },
     {
       "collapsed": true,
       "datasource": {
@@ -4895,7 +5496,7 @@
         "h": 1,
         "w": 24,
         "x": 0,
-        "y": 38
+        "y": 39
       },
       "id": 58,
       "panels": [
@@ -4911,6 +5512,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -4924,6 +5526,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -4964,7 +5567,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 55
+            "y": 16
           },
           "id": 60,
           "options": {
@@ -5014,6 +5617,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5027,6 +5631,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -5066,7 +5671,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 55
+            "y": 16
           },
           "id": 66,
           "options": {
@@ -5116,6 +5721,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5129,6 +5735,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -5168,7 +5775,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 63
+            "y": 24
           },
           "id": 61,
           "options": {
@@ -5218,6 +5825,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5231,6 +5839,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -5270,7 +5879,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 63
+            "y": 24
           },
           "id": 65,
           "options": {
@@ -5371,7 +5980,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 71
+            "y": 32
           },
           "id": 88,
           "options": {
@@ -5469,7 +6078,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 71
+            "y": 32
           },
           "id": 84,
           "options": {
@@ -5570,7 +6179,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 79
+            "y": 40
           },
           "id": 90,
           "options": {
@@ -5623,7 +6232,7 @@
         "h": 1,
         "w": 24,
         "x": 0,
-        "y": 39
+        "y": 40
       },
       "id": 113,
       "panels": [
@@ -5636,7 +6245,7 @@
             "h": 2,
             "w": 24,
             "x": 0,
-            "y": 87
+            "y": 17
           },
           "id": 115,
           "options": {
@@ -5648,7 +6257,7 @@
             "content": "Drilldown row is used by other panels on the dashboard to show more detailed metrics per-instance.",
             "mode": "markdown"
           },
-          "pluginVersion": "9.2.6",
+          "pluginVersion": "10.4.2",
           "transparent": true,
           "type": "text"
         },
@@ -5664,6 +6273,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5677,6 +6287,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -5712,10 +6323,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 89
+            "y": 19
           },
           "id": 119,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -5767,6 +6377,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5780,6 +6391,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -5815,10 +6427,9 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 89
+            "y": 19
           },
           "id": 117,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -5868,6 +6479,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5881,6 +6493,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -5920,7 +6533,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 97
+            "y": 27
           },
           "id": 125,
           "links": [
@@ -5976,6 +6589,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5989,6 +6603,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -6040,7 +6655,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 97
+            "y": 27
           },
           "id": 123,
           "options": {
@@ -6104,6 +6719,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -6117,6 +6733,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -6168,10 +6785,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 105
+            "y": 35
           },
           "id": 121,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
diff --git a/dashboards/vmagent.json b/dashboards/vmagent.json
index 80c6bddb8b..06e0b0422d 100644
--- a/dashboards/vmagent.json
+++ b/dashboards/vmagent.json
@@ -85,7 +85,7 @@
       }
     ]
   },
-  "description": "Overview for VictoriaMetrics vmagent v1.80.0 or higher",
+  "description": "Overview for VictoriaMetrics vmagent v1.102.0 or higher",
   "editable": true,
   "fiscalYearStartMonth": 0,
   "graphTooltip": 1,
@@ -1335,7 +1335,8 @@
             "mode": "absolute",
             "steps": [
               {
-                "color": "green"
+                "color": "green",
+                "value": null
               },
               {
                 "color": "red",
@@ -1343,8 +1344,7 @@
               }
             ]
           },
-          "unit": "short",
-          "unitScale": true
+          "unit": "short"
         },
         "overrides": []
       },
@@ -1439,7 +1439,8 @@
             "mode": "absolute",
             "steps": [
               {
-                "color": "green"
+                "color": "green",
+                "value": null
               },
               {
                 "color": "red",
@@ -1447,8 +1448,7 @@
               }
             ]
           },
-          "unit": "short",
-          "unitScale": true
+          "unit": "short"
         },
         "overrides": []
       },
@@ -1626,8 +1626,7 @@
                   }
                 ]
               },
-              "unit": "percentunit",
-              "unitScale": true
+              "unit": "percentunit"
             },
             "overrides": []
           },
@@ -1635,10 +1634,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 3
+            "y": 11
           },
           "id": 109,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -1742,8 +1740,7 @@
                   }
                 ]
               },
-              "unit": "percentunit",
-              "unitScale": true
+              "unit": "percentunit"
             },
             "overrides": []
           },
@@ -1751,10 +1748,9 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 3
+            "y": 11
           },
           "id": 111,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -1855,8 +1851,7 @@
                   }
                 ]
               },
-              "unit": "bytes",
-              "unitScale": true
+              "unit": "bytes"
             },
             "overrides": [
               {
@@ -1877,10 +1872,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 11
+            "y": 19
           },
           "id": 81,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -1992,8 +1986,7 @@
                   }
                 ]
               },
-              "unit": "bps",
-              "unitScale": true
+              "unit": "bps"
             },
             "overrides": [
               {
@@ -2014,7 +2007,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 11
+            "y": 19
           },
           "id": 7,
           "options": {
@@ -2124,8 +2117,7 @@
                   }
                 ]
               },
-              "unit": "percentunit",
-              "unitScale": true
+              "unit": "percentunit"
             },
             "overrides": []
           },
@@ -2133,10 +2125,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 19
+            "y": 27
           },
           "id": 83,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -2231,8 +2222,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -2240,10 +2230,9 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 19
+            "y": 27
           },
           "id": 39,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -2339,8 +2328,7 @@
                   }
                 ]
               },
-              "unit": "percentunit",
-              "unitScale": true
+              "unit": "percentunit"
             },
             "overrides": []
           },
@@ -2348,10 +2336,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 27
+            "y": 35
           },
           "id": 135,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -2446,8 +2433,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -2455,10 +2441,9 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 27
+            "y": 35
           },
           "id": 41,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -2533,6 +2518,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -2546,6 +2532,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -2583,7 +2570,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 4
+            "y": 12
           },
           "id": 92,
           "options": {
@@ -2635,6 +2622,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -2648,6 +2636,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -2685,7 +2674,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 4
+            "y": 12
           },
           "id": 95,
           "options": {
@@ -2737,6 +2726,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -2751,6 +2741,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -2790,7 +2781,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 12
+            "y": 20
           },
           "id": 98,
           "options": {
@@ -2842,6 +2833,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -2856,6 +2848,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -2895,7 +2888,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 12
+            "y": 20
           },
           "id": 99,
           "options": {
@@ -2999,10 +2992,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 20
+            "y": 28
           },
           "id": 79,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -3104,7 +3096,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 20
+            "y": 28
           },
           "id": 18,
           "links": [
@@ -3214,10 +3206,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 28
+            "y": 36
           },
           "id": 127,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -3317,7 +3308,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 28
+            "y": 36
           },
           "id": 50,
           "options": {
@@ -3417,7 +3408,7 @@
             "h": 7,
             "w": 24,
             "x": 0,
-            "y": 36
+            "y": 44
           },
           "id": 129,
           "options": {
@@ -3564,8 +3555,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -3573,7 +3563,7 @@
             "h": 7,
             "w": 12,
             "x": 0,
-            "y": 37
+            "y": 13
           },
           "id": 48,
           "options": {
@@ -3671,8 +3661,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -3680,7 +3669,7 @@
             "h": 7,
             "w": 12,
             "x": 12,
-            "y": 37
+            "y": 13
           },
           "id": 76,
           "options": {
@@ -3776,8 +3765,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -3785,7 +3773,7 @@
             "h": 7,
             "w": 12,
             "x": 0,
-            "y": 44
+            "y": 20
           },
           "id": 132,
           "options": {
@@ -3883,8 +3871,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -3892,7 +3879,7 @@
             "h": 7,
             "w": 12,
             "x": 12,
-            "y": 44
+            "y": 20
           },
           "id": 133,
           "options": {
@@ -3989,8 +3976,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -3998,7 +3984,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 51
+            "y": 27
           },
           "id": 20,
           "options": {
@@ -4094,8 +4080,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -4103,7 +4088,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 51
+            "y": 27
           },
           "id": 126,
           "options": {
@@ -4198,8 +4183,7 @@
                   }
                 ]
               },
-              "unit": "bytes",
-              "unitScale": true
+              "unit": "bytes"
             },
             "overrides": []
           },
@@ -4207,7 +4191,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 59
+            "y": 35
           },
           "id": 46,
           "options": {
@@ -4302,8 +4286,7 @@
                   }
                 ]
               },
-              "unit": "short",
-              "unitScale": true
+              "unit": "short"
             },
             "overrides": []
           },
@@ -4311,7 +4294,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 59
+            "y": 35
           },
           "id": 31,
           "options": {
@@ -4436,6 +4419,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -4449,6 +4433,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -4488,10 +4473,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 38
+            "y": 14
           },
           "id": 73,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -4552,6 +4536,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -4565,6 +4550,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -4604,10 +4590,9 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 38
+            "y": 14
           },
           "id": 131,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -4655,6 +4640,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -4668,6 +4654,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -4707,10 +4694,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 46
+            "y": 22
           },
           "id": 130,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -4771,6 +4757,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -4784,6 +4771,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -4823,10 +4811,9 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 46
+            "y": 22
           },
           "id": 77,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -4884,6 +4871,620 @@
       "title": "Ingestion",
       "type": "row"
     },
+    {
+      "collapsed": true,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 38
+      },
+      "id": 136,
+      "panels": [
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "$ds"
+          },
+          "description": "The 99th percentile of avg flush duration for the aggregated data. \n\nSmaller is better.\n\nAggregation can produce incorrect results ff flush duration exceeds configured deduplication interval. See \"Flush Timeouts\" panel.",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisBorderShow": false,
+                "axisCenteredZero": false,
+                "axisColorMode": "text",
+                "axisLabel": "",
+                "axisPlacement": "auto",
+                "axisSoftMin": 0,
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 0,
+                "gradientMode": "none",
+                "hideFrom": {
+                  "legend": false,
+                  "tooltip": false,
+                  "viz": false
+                },
+                "insertNulls": false,
+                "lineInterpolation": "linear",
+                "lineWidth": 1,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "auto",
+                "spanNulls": false,
+                "stacking": {
+                  "group": "A",
+                  "mode": "none"
+                },
+                "thresholdsStyle": {
+                  "mode": "off"
+                }
+              },
+              "mappings": [],
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              },
+              "unit": "s"
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 12,
+            "x": 0,
+            "y": 7
+          },
+          "id": 137,
+          "options": {
+            "legend": {
+              "calcs": [],
+              "displayMode": "list",
+              "placement": "bottom",
+              "showLegend": true
+            },
+            "tooltip": {
+              "mode": "single",
+              "sort": "none"
+            }
+          },
+          "targets": [
+            {
+              "datasource": {
+                "type": "prometheus",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "histogram_quantile(0.99, vm_streamaggr_dedup_flush_duration_seconds_bucket{job=~\"$job\",instance=~\"$instance\"}[$__rate_interval])",
+              "instant": false,
+              "legendFormat": "{{instance}} ({{job}})",
+              "range": true,
+              "refId": "A"
+            }
+          ],
+          "title": "Dedup flush duration (0.99)",
+          "type": "timeseries"
+        },
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "$ds"
+          },
+          "description": "Amount of ignored samples during aggregation. \nStream aggregation will drop samples with NaN values, or samples with too old timestamps. See https://docs.victoriametrics.com/stream-aggregation/#ignoring-old-samples ",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisBorderShow": false,
+                "axisCenteredZero": false,
+                "axisColorMode": "text",
+                "axisLabel": "",
+                "axisPlacement": "auto",
+                "axisSoftMin": 0,
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 0,
+                "gradientMode": "none",
+                "hideFrom": {
+                  "legend": false,
+                  "tooltip": false,
+                  "viz": false
+                },
+                "insertNulls": false,
+                "lineInterpolation": "linear",
+                "lineWidth": 1,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "auto",
+                "spanNulls": false,
+                "stacking": {
+                  "group": "A",
+                  "mode": "none"
+                },
+                "thresholdsStyle": {
+                  "mode": "off"
+                }
+              },
+              "mappings": [],
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              }
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 12,
+            "x": 12,
+            "y": 7
+          },
+          "id": 143,
+          "options": {
+            "legend": {
+              "calcs": [],
+              "displayMode": "list",
+              "placement": "bottom",
+              "showLegend": true
+            },
+            "tooltip": {
+              "mode": "single",
+              "sort": "none"
+            }
+          },
+          "targets": [
+            {
+              "datasource": {
+                "type": "prometheus",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "increase(vm_streamaggr_ignored_samples_total[5m]) > 0",
+              "instant": false,
+              "legendFormat": "{{reason}}: {{instance}} ({{job}})",
+              "range": true,
+              "refId": "A"
+            }
+          ],
+          "title": "Ignored samples",
+          "type": "timeseries"
+        },
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "$ds"
+          },
+          "description": "Shows events when deduplication or aggregation couldn't be finished in the configured interval. Such events may result into bad accuracy of produced data.\n\nPossible solutions:\n* increase interval; \n* use match filter matching smaller number of series;\n* reduce samples ingestion rate to stream aggregation",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisBorderShow": false,
+                "axisCenteredZero": false,
+                "axisColorMode": "text",
+                "axisLabel": "",
+                "axisPlacement": "auto",
+                "axisSoftMin": 0,
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 0,
+                "gradientMode": "none",
+                "hideFrom": {
+                  "legend": false,
+                  "tooltip": false,
+                  "viz": false
+                },
+                "insertNulls": false,
+                "lineInterpolation": "linear",
+                "lineWidth": 1,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "auto",
+                "spanNulls": false,
+                "stacking": {
+                  "group": "A",
+                  "mode": "none"
+                },
+                "thresholdsStyle": {
+                  "mode": "off"
+                }
+              },
+              "mappings": [],
+              "min": -5,
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              }
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 12,
+            "x": 0,
+            "y": 15
+          },
+          "id": 139,
+          "options": {
+            "legend": {
+              "calcs": [],
+              "displayMode": "list",
+              "placement": "bottom",
+              "showLegend": true
+            },
+            "tooltip": {
+              "mode": "single",
+              "sort": "none"
+            }
+          },
+          "targets": [
+            {
+              "datasource": {
+                "type": "prometheus",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "increase(vm_streamaggr_flush_timeouts_total{job=~\"$job\",instance=~\"$instance\"}[$__rate_interval]) > 0",
+              "instant": false,
+              "legendFormat": "aggregate: {{instance}} ({{job}})",
+              "range": true,
+              "refId": "A"
+            },
+            {
+              "datasource": {
+                "type": "prometheus",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "increase(vm_streamaggr_dedup_flush_timeouts_total{job=~\"$job\",instance=~\"$instance\"}[$__rate_interval]) > 0",
+              "hide": false,
+              "instant": false,
+              "legendFormat": "dedup: {{instance}} ({{job}})",
+              "range": true,
+              "refId": "B"
+            }
+          ],
+          "title": "Flush timeouts",
+          "type": "timeseries"
+        },
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "$ds"
+          },
+          "description": "Shows the lag between average samples timestamp and aggregation interval.\n\nLower is better.\n\nToo high lag or lag exceeding the interval might be a sign of data delay before aggregation or resource insufficiency on aggregator. Samples with high lag may affect accuracy of aggregation.\n\nSee https://docs.victoriametrics.com/stream-aggregation/#ignoring-old-samples",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisBorderShow": false,
+                "axisCenteredZero": false,
+                "axisColorMode": "text",
+                "axisLabel": "",
+                "axisPlacement": "auto",
+                "axisSoftMin": 0,
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 0,
+                "gradientMode": "none",
+                "hideFrom": {
+                  "legend": false,
+                  "tooltip": false,
+                  "viz": false
+                },
+                "insertNulls": false,
+                "lineInterpolation": "linear",
+                "lineWidth": 1,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "auto",
+                "spanNulls": false,
+                "stacking": {
+                  "group": "A",
+                  "mode": "none"
+                },
+                "thresholdsStyle": {
+                  "mode": "off"
+                }
+              },
+              "mappings": [],
+              "min": 0,
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              },
+              "unit": "s"
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 12,
+            "x": 12,
+            "y": 15
+          },
+          "id": 142,
+          "options": {
+            "legend": {
+              "calcs": [],
+              "displayMode": "list",
+              "placement": "bottom",
+              "showLegend": true
+            },
+            "tooltip": {
+              "mode": "single",
+              "sort": "none"
+            }
+          },
+          "targets": [
+            {
+              "datasource": {
+                "type": "prometheus",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "histogram_quantile(0.99, vm_streamaggr_samples_lag_seconds_bucket{job=~\"$job\",instance=~\"$instance\"}[$__rate_interval])",
+              "instant": false,
+              "legendFormat": "{{instance}} ({{job}})",
+              "range": true,
+              "refId": "A"
+            }
+          ],
+          "title": "Aggregated samples lag",
+          "type": "timeseries"
+        },
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "$ds"
+          },
+          "description": "Shows the size of Label Compressor in bytes.\n\nLabels compressor encodes label-value pairs during aggregation to optimise memory usage. It is expected for its size to grow with time and to reset on vmagent restarts.\n\nRapid spikes in Label compressor size might be a sign of significant changes in labels of received samples.",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisBorderShow": false,
+                "axisCenteredZero": false,
+                "axisColorMode": "text",
+                "axisLabel": "",
+                "axisPlacement": "auto",
+                "axisSoftMin": 0,
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 0,
+                "gradientMode": "none",
+                "hideFrom": {
+                  "legend": false,
+                  "tooltip": false,
+                  "viz": false
+                },
+                "insertNulls": false,
+                "lineInterpolation": "linear",
+                "lineWidth": 1,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "auto",
+                "spanNulls": false,
+                "stacking": {
+                  "group": "A",
+                  "mode": "none"
+                },
+                "thresholdsStyle": {
+                  "mode": "off"
+                }
+              },
+              "mappings": [],
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              },
+              "unit": "decbytes"
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 12,
+            "x": 0,
+            "y": 23
+          },
+          "id": 140,
+          "options": {
+            "legend": {
+              "calcs": [],
+              "displayMode": "list",
+              "placement": "bottom",
+              "showLegend": true
+            },
+            "tooltip": {
+              "mode": "single",
+              "sort": "none"
+            }
+          },
+          "targets": [
+            {
+              "datasource": {
+                "type": "prometheus",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "vm_streamaggr_labels_compressor_size_bytes{job=~\"$job\",instance=~\"$instance\"} > 0",
+              "instant": false,
+              "legendFormat": "{{instance}} ({{job}})",
+              "range": true,
+              "refId": "A"
+            }
+          ],
+          "title": "Labels compressor bytes",
+          "type": "timeseries"
+        },
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "$ds"
+          },
+          "description": "Shows the size of Label Compressor in number of entries.\n\nLabels compressor encodes label-value pairs during aggregation to optimise memory usage. It is expected for its size to grow with time and to reset on vmagent restarts.\n\nRapid spikes in Label compressor size might be a sign of significant changes in labels of received samples.",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisBorderShow": false,
+                "axisCenteredZero": false,
+                "axisColorMode": "text",
+                "axisLabel": "",
+                "axisPlacement": "auto",
+                "axisSoftMin": 0,
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 0,
+                "gradientMode": "none",
+                "hideFrom": {
+                  "legend": false,
+                  "tooltip": false,
+                  "viz": false
+                },
+                "insertNulls": false,
+                "lineInterpolation": "linear",
+                "lineWidth": 1,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "auto",
+                "spanNulls": false,
+                "stacking": {
+                  "group": "A",
+                  "mode": "none"
+                },
+                "thresholdsStyle": {
+                  "mode": "off"
+                }
+              },
+              "mappings": [],
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              }
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 12,
+            "x": 12,
+            "y": 23
+          },
+          "id": 141,
+          "options": {
+            "legend": {
+              "calcs": [],
+              "displayMode": "list",
+              "placement": "bottom",
+              "showLegend": true
+            },
+            "tooltip": {
+              "mode": "single",
+              "sort": "none"
+            }
+          },
+          "targets": [
+            {
+              "datasource": {
+                "type": "prometheus",
+                "uid": "$ds"
+              },
+              "editorMode": "code",
+              "expr": "vm_streamaggr_labels_compressor_items_count{job=~\"$job\",instance=~\"$instance\"} > 0",
+              "instant": false,
+              "legendFormat": "{{instance}} ({{job}})",
+              "range": true,
+              "refId": "A"
+            }
+          ],
+          "title": "Labels compressor items count",
+          "type": "timeseries"
+        }
+      ],
+      "title": "Streaming aggregation",
+      "type": "row"
+    },
     {
       "collapsed": true,
       "datasource": {
@@ -4894,7 +5495,7 @@
         "h": 1,
         "w": 24,
         "x": 0,
-        "y": 38
+        "y": 39
       },
       "id": 58,
       "panels": [
@@ -4910,6 +5511,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -4923,6 +5525,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -4963,7 +5566,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 55
+            "y": 16
           },
           "id": 60,
           "options": {
@@ -5013,6 +5616,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5026,6 +5630,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -5065,7 +5670,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 55
+            "y": 16
           },
           "id": 66,
           "options": {
@@ -5115,6 +5720,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5128,6 +5734,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -5167,7 +5774,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 63
+            "y": 24
           },
           "id": 61,
           "options": {
@@ -5217,6 +5824,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5230,6 +5838,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -5269,7 +5878,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 63
+            "y": 24
           },
           "id": 65,
           "options": {
@@ -5370,7 +5979,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 71
+            "y": 32
           },
           "id": 88,
           "options": {
@@ -5468,7 +6077,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 71
+            "y": 32
           },
           "id": 84,
           "options": {
@@ -5569,7 +6178,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 79
+            "y": 40
           },
           "id": 90,
           "options": {
@@ -5622,7 +6231,7 @@
         "h": 1,
         "w": 24,
         "x": 0,
-        "y": 39
+        "y": 40
       },
       "id": 113,
       "panels": [
@@ -5635,7 +6244,7 @@
             "h": 2,
             "w": 24,
             "x": 0,
-            "y": 87
+            "y": 17
           },
           "id": 115,
           "options": {
@@ -5647,7 +6256,7 @@
             "content": "Drilldown row is used by other panels on the dashboard to show more detailed metrics per-instance.",
             "mode": "markdown"
           },
-          "pluginVersion": "9.2.6",
+          "pluginVersion": "10.4.2",
           "transparent": true,
           "type": "text"
         },
@@ -5663,6 +6272,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5676,6 +6286,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -5711,10 +6322,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 89
+            "y": 19
           },
           "id": 119,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -5766,6 +6376,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5779,6 +6390,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -5814,10 +6426,9 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 89
+            "y": 19
           },
           "id": 117,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
@@ -5867,6 +6478,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5880,6 +6492,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -5919,7 +6532,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 97
+            "y": 27
           },
           "id": 125,
           "links": [
@@ -5975,6 +6588,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -5988,6 +6602,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -6039,7 +6654,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 97
+            "y": 27
           },
           "id": 123,
           "options": {
@@ -6103,6 +6718,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisBorderShow": false,
                 "axisCenteredZero": false,
                 "axisColorMode": "text",
                 "axisLabel": "",
@@ -6116,6 +6732,7 @@
                   "tooltip": false,
                   "viz": false
                 },
+                "insertNulls": false,
                 "lineInterpolation": "linear",
                 "lineWidth": 1,
                 "pointSize": 5,
@@ -6167,10 +6784,9 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 105
+            "y": 35
           },
           "id": 121,
-          "links": [],
           "options": {
             "legend": {
               "calcs": [
diff --git a/deployment/docker/alerts-vmagent.yml b/deployment/docker/alerts-vmagent.yml
index fc11b87d08..15d522a7fc 100644
--- a/deployment/docker/alerts-vmagent.yml
+++ b/deployment/docker/alerts-vmagent.yml
@@ -135,3 +135,23 @@ groups:
           summary: "Configuration reload failed for vmagent instance {{ $labels.instance }}"
           description: "Configuration hot-reload failed for vmagent on instance {{ $labels.instance }}.
           Check vmagent's logs for detailed error message."
+
+      - alert: StreamAggrFlushTimeout
+        expr: |
+          increase(vm_streamaggr_flush_timeouts_total[5m]) > 0
+        labels:
+          severity: warning
+        annotations:
+          summary: "Streaming aggregation at \"{{ $labels.job }}\" (instance {{ $labels.instance }}) can't be finished within the configured aggregation interval."
+          description: "Stream aggregation process can't keep up with the load and might produce incorrect aggregation results. Check logs for more details.
+            Possible solutions: increase aggregation interval; aggregate smaller number of series; reduce samples' ingestion rate to stream aggregation."
+
+      - alert: StreamAggrDedupFlushTimeout
+        expr: |
+          increase(vm_streamaggr_dedup_flush_timeouts_total[5m]) > 0
+        labels:
+          severity: warning
+        annotations:
+          summary: "Deduplication \"{{ $labels.job }}\" (instance {{ $labels.instance }}) can't be finished within configured deduplication interval."
+          description: "Deduplication process can't keep up with the load and might produce incorrect results. Check docs https://docs.victoriametrics.com/stream-aggregation/#deduplication and logs for more details.
+            Possible solutions: increase deduplication interval; deduplicate smaller number of series; reduce samples' ingestion rate."
diff --git a/deployment/docker/alerts-vmalert.yml b/deployment/docker/alerts-vmalert.yml
index bae602201b..af7895da33 100644
--- a/deployment/docker/alerts-vmalert.yml
+++ b/deployment/docker/alerts-vmalert.yml
@@ -40,7 +40,7 @@ groups:
             Check vmalert's logs for detailed error message."
 
       - alert: RecordingRulesNoData
-        expr: sum(vmalert_recording_rules_last_evaluation_samples) without(recording, id) < 1
+        expr: sum(vmalert_recording_rules_last_evaluation_samples) without(id) < 1
         for: 30m
         labels:
           severity: info
diff --git a/deployment/docker/docker-compose-cluster.yml b/deployment/docker/docker-compose-cluster.yml
index 6194de2523..1672f516bf 100644
--- a/deployment/docker/docker-compose-cluster.yml
+++ b/deployment/docker/docker-compose-cluster.yml
@@ -1,4 +1,3 @@
-version: '3.5'
 services:
   #  Metrics collector.
   #  It scrapes targets defined in --promscrape.config
diff --git a/deployment/docker/docker-compose-victorialogs.yml b/deployment/docker/docker-compose-victorialogs.yml
index 484a802659..e2e676481a 100644
--- a/deployment/docker/docker-compose-victorialogs.yml
+++ b/deployment/docker/docker-compose-victorialogs.yml
@@ -1,4 +1,3 @@
-version: "3.5"
 services:
   # Grafana instance configured with VictoriaLogs as datasource
   grafana:
diff --git a/deployment/docker/docker-compose.yml b/deployment/docker/docker-compose.yml
index e444bd654b..8be7e65017 100644
--- a/deployment/docker/docker-compose.yml
+++ b/deployment/docker/docker-compose.yml
@@ -1,4 +1,3 @@
-version: "3.5"
 services:
   #  Metrics collector.
   #  It scrapes targets defined in --promscrape.config
diff --git a/deployment/docker/vm-datasource/docker-compose-cluster.yml b/deployment/docker/vm-datasource/docker-compose-cluster.yml
index 948c6d12c5..5c8d806df9 100644
--- a/deployment/docker/vm-datasource/docker-compose-cluster.yml
+++ b/deployment/docker/vm-datasource/docker-compose-cluster.yml
@@ -1,4 +1,3 @@
-version: "3.5"
 services:
   grafana:
     container_name: grafana
diff --git a/deployment/docker/vm-datasource/docker-compose.yml b/deployment/docker/vm-datasource/docker-compose.yml
index bfbf25bc6c..994d096307 100644
--- a/deployment/docker/vm-datasource/docker-compose.yml
+++ b/deployment/docker/vm-datasource/docker-compose.yml
@@ -1,4 +1,3 @@
-version: "3.5"
 services:
   grafana:
     container_name: grafana
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index f9093c22e7..0f617fc915 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -30,6 +30,16 @@ See also [LTS releases](https://docs.victoriametrics.com/lts-releases/).
 
 ## tip
 
+**Update note 1: the `--vm-disable-progress-bar` command-line flag at `vmctl` was deprecated. Use `--disable-progress-bar` instead.**
+
+* FEATURE: [alerts-vmagent](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/alerts-vmagent.yml): add new alerting rules `StreamAggrFlushTimeout` and `StreamAggrDedupFlushTimeout` to notify about issues during stream aggregation.
+* FEATURE: [dashboards/vmagent](https://grafana.com/grafana/dashboards/12683): add row `Streaming aggregation` with panels related to [streaming aggregation](https://docs.victoriametrics.com/stream-aggregation/) process.
+* FEATURE: [vmauth](https://docs.victoriametrics.com/vmauth/): add `idleConnTimeout` flag set to 50s by default. It should reduce the probability of `broken pipe` or `connection reset by peer` errors in vmauth logs.
+* FEATURE: [vmauth](https://docs.victoriametrics.com/vmauth/): add auto request retry for trivial network errors, such as `broken pipe` and `connection reset` for requests to the configured backends.
+
+* BUGFIX: all VictoriaMetrics components: prioritize `-configAuthKey` and `-reloadAuthKey` over `-httpAuth.*` settings. This change aligns behavior of mentioned flags with other auth flags like `-metricsAuthKey`, `-flagsAuthKey`, `-pprofAuthKey`. Check [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6329).
+* BUGFIX: [vmctl](https://docs.victoriametrics.com/vmctl/): add `--disable-progress-bar` global command-line flag. It can be used for disabling dynamic progress bar for all migration modes. `--vm-disable-progress-bar`  command-line flag is deprecated and will be removed in the future releases. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6367).
+
 ## [v1.102.0-rc1](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.102.0-rc1)
 
 Released at 2024-06-07
diff --git a/docs/README.md b/docs/README.md
index 74470eb62f..799eeea8b7 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -2765,7 +2765,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li
   -cacheExpireDuration duration
      Items are removed from in-memory caches after they aren't accessed for this duration. Lower values may reduce memory usage at the cost of higher CPU usage. See also -prevCacheRemovalPercent (default 30m0s)
   -configAuthKey value
-     Authorization key for accessing /config page. It must be passed via authKey query arg
+     Authorization key for accessing /config page. It must be passed via authKey query arg. It overrides httpAuth.* settings.
      Flag value can be read from the given file when using -configAuthKey=file:///abs/path/to/file or -configAuthKey=file://./relative/path/to/file . Flag value can be read from the given http/https url when using -configAuthKey=http://host/path or -configAuthKey=https://host/path
   -csvTrimTimestamp duration
      Trim timestamps when importing csv data to this duration. Minimum practical duration is 1ms. Higher duration (i.e. 1s) may be used for reducing disk space usage for timestamp data (default 1ms)
@@ -3079,7 +3079,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li
   -relabelConfig string
      Optional path to a file with relabeling rules, which are applied to all the ingested metrics. The path can point either to local file or to http url. See https://docs.victoriametrics.com/#relabeling for details. The config is reloaded on SIGHUP signal
   -reloadAuthKey value
-     Auth key for /-/reload http endpoint. It must be passed as authKey=...
+     Auth key for /-/reload http endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings.
      Flag value can be read from the given file when using -reloadAuthKey=file:///abs/path/to/file or -reloadAuthKey=file://./relative/path/to/file . Flag value can be read from the given http/https url when using -reloadAuthKey=http://host/path or -reloadAuthKey=https://host/path
   -retentionFilter array
      Retention filter in the format 'filter:retention'. For example, '{env="dev"}:3d' configures the retention for time series with env="dev" label to 3 days. See https://docs.victoriametrics.com/#retention-filters for details. This flag is available only in VictoriaMetrics enterprise. See https://docs.victoriametrics.com/enterprise/
diff --git a/docs/Single-server-VictoriaMetrics.md b/docs/Single-server-VictoriaMetrics.md
index c0c3bdec2c..ed4c30afe7 100644
--- a/docs/Single-server-VictoriaMetrics.md
+++ b/docs/Single-server-VictoriaMetrics.md
@@ -2773,7 +2773,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li
   -cacheExpireDuration duration
      Items are removed from in-memory caches after they aren't accessed for this duration. Lower values may reduce memory usage at the cost of higher CPU usage. See also -prevCacheRemovalPercent (default 30m0s)
   -configAuthKey value
-     Authorization key for accessing /config page. It must be passed via authKey query arg
+     Authorization key for accessing /config page. It must be passed via authKey query arg. It overrides httpAuth.* settings.
      Flag value can be read from the given file when using -configAuthKey=file:///abs/path/to/file or -configAuthKey=file://./relative/path/to/file . Flag value can be read from the given http/https url when using -configAuthKey=http://host/path or -configAuthKey=https://host/path
   -csvTrimTimestamp duration
      Trim timestamps when importing csv data to this duration. Minimum practical duration is 1ms. Higher duration (i.e. 1s) may be used for reducing disk space usage for timestamp data (default 1ms)
@@ -3087,7 +3087,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li
   -relabelConfig string
      Optional path to a file with relabeling rules, which are applied to all the ingested metrics. The path can point either to local file or to http url. See https://docs.victoriametrics.com/#relabeling for details. The config is reloaded on SIGHUP signal
   -reloadAuthKey value
-     Auth key for /-/reload http endpoint. It must be passed as authKey=...
+     Auth key for /-/reload http endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings.
      Flag value can be read from the given file when using -reloadAuthKey=file:///abs/path/to/file or -reloadAuthKey=file://./relative/path/to/file . Flag value can be read from the given http/https url when using -reloadAuthKey=http://host/path or -reloadAuthKey=https://host/path
   -retentionFilter array
      Retention filter in the format 'filter:retention'. For example, '{env="dev"}:3d' configures the retention for time series with env="dev" label to 3 days. See https://docs.victoriametrics.com/#retention-filters for details. This flag is available only in VictoriaMetrics enterprise. See https://docs.victoriametrics.com/enterprise/
diff --git a/docs/VictoriaLogs/CHANGELOG.md b/docs/VictoriaLogs/CHANGELOG.md
index 7e248b5065..27686bea0f 100644
--- a/docs/VictoriaLogs/CHANGELOG.md
+++ b/docs/VictoriaLogs/CHANGELOG.md
@@ -20,6 +20,7 @@ according to [these docs](https://docs.victoriametrics.com/victorialogs/quicksta
 ## tip
 
 * FEATURE: disallow unescaped `!` char in [LogsQL](https://docs.victoriametrics.com/victorialogs/logsql/) queries, since it permits writing incorrect query, which may look like correct one. For example, `foo!:bar` instead of `foo:!bar`.
+* FEATURE: [web UI](https://docs.victoriametrics.com/VictoriaLogs/querying/#web-ui): add markdown support to the `Group` view. See [this pull request](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/6292).
 
 ## [v0.18.0](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v0.18.0-victorialogs)
 
diff --git a/docs/VictoriaLogs/QuickStart.md b/docs/VictoriaLogs/QuickStart.md
index c4a8eb0303..9db128086a 100644
--- a/docs/VictoriaLogs/QuickStart.md
+++ b/docs/VictoriaLogs/QuickStart.md
@@ -9,6 +9,8 @@ menu:
     title: Quick Start
 aliases:
 - /VictoriaLogs/QuickStart.html
+- /victorialogs/quick-start.html
+- /victorialogs/quick-start/
 ---
 
 # VictoriaLogs Quick Start
diff --git a/docs/vmagent.md b/docs/vmagent.md
index 6fe169f619..872514117f 100644
--- a/docs/vmagent.md
+++ b/docs/vmagent.md
@@ -1637,7 +1637,7 @@ See the docs at https://docs.victoriametrics.com/vmagent/ .
   -cacheExpireDuration duration
      Items are removed from in-memory caches after they aren't accessed for this duration. Lower values may reduce memory usage at the cost of higher CPU usage. See also -prevCacheRemovalPercent (default 30m0s)
   -configAuthKey value
-     Authorization key for accessing /config page. It must be passed via authKey query arg
+     Authorization key for accessing /config page. It must be passed via authKey query arg. It overrides httpAuth.* settings.
      Flag value can be read from the given file when using -configAuthKey=file:///abs/path/to/file or -configAuthKey=file://./relative/path/to/file . Flag value can be read from the given http/https url when using -configAuthKey=http://host/path or -configAuthKey=https://host/path
   -csvTrimTimestamp duration
      Trim timestamps when importing csv data to this duration. Minimum practical duration is 1ms. Higher duration (i.e. 1s) may be used for reducing disk space usage for timestamp data (default 1ms)
@@ -2006,7 +2006,7 @@ See the docs at https://docs.victoriametrics.com/vmagent/ .
      Supports an array of values separated by comma or specified via multiple flags.
      Value can contain comma inside single-quoted or double-quoted string, {}, [] and () braces.
   -reloadAuthKey value
-     Auth key for /-/reload http endpoint. It must be passed as authKey=...
+     Auth key for /-/reload http endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings.
      Flag value can be read from the given file when using -reloadAuthKey=file:///abs/path/to/file or -reloadAuthKey=file://./relative/path/to/file . Flag value can be read from the given http/https url when using -reloadAuthKey=http://host/path or -reloadAuthKey=https://host/path
   -remoteWrite.aws.accessKey array
      Optional AWS AccessKey to use for the corresponding -remoteWrite.url if -remoteWrite.aws.useSigv4 is set
diff --git a/docs/vmalert-tool.md b/docs/vmalert-tool.md
index baad0fcadf..07551e61a2 100644
--- a/docs/vmalert-tool.md
+++ b/docs/vmalert-tool.md
@@ -6,6 +6,8 @@ menu:
     parent: 'victoriametrics'
     weight: 12
 title: vmalert-tool
+aliases:
+  - /vmalert-tool.html
 ---
 
 # vmalert-tool
diff --git a/docs/vmalert.md b/docs/vmalert.md
index b3719d78d1..19fbe9e5d1 100644
--- a/docs/vmalert.md
+++ b/docs/vmalert.md
@@ -1263,7 +1263,7 @@ The shortlist of configuration flags is the following:
      Supports an array of values separated by comma or specified via multiple flags.
      Value can contain comma inside single-quoted or double-quoted string, {}, [] and () braces.
   -reloadAuthKey value
-     Auth key for /-/reload http endpoint. It must be passed as authKey=...
+     Auth key for /-/reload http endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings.
      Flag value can be read from the given file when using -reloadAuthKey=file:///abs/path/to/file or -reloadAuthKey=file://./relative/path/to/file . Flag value can be read from the given http/https url when using -reloadAuthKey=http://host/path or -reloadAuthKey=https://host/path
   -remoteRead.basicAuth.password string
      Optional basic auth password for -remoteRead.url
diff --git a/docs/vmauth.md b/docs/vmauth.md
index 18477558f9..7956b694a4 100644
--- a/docs/vmauth.md
+++ b/docs/vmauth.md
@@ -1206,6 +1206,8 @@ See the docs at https://docs.victoriametrics.com/vmauth/ .
      Whether to use proxy protocol for connections accepted at the corresponding -httpListenAddr . See https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt . With enabled proxy protocol http server cannot serve regular /metrics endpoint. Use -pushmetrics.url for metrics pushing
      Supports array of values separated by comma or specified via multiple flags.
      Empty values are set to false.
+  -idleConnTimeout duration
+    Defines a duration for idle (keep-alive connections) to exist. Consider setting this value less than "-http.idleConnTimeout". It must prevent possible "write: broken pipe" and "read: connection reset by peer" errors. (default 50s)
   -internStringCacheExpireDuration duration
      The expiry duration for caches for interned strings. See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache (default 6m0s)
   -internStringDisableCache
@@ -1287,7 +1289,7 @@ See the docs at https://docs.victoriametrics.com/vmauth/ .
      Supports an array of values separated by comma or specified via multiple flags.
      Value can contain comma inside single-quoted or double-quoted string, {}, [] and () braces.
   -reloadAuthKey value
-     Auth key for /-/reload http endpoint. It must be passed as authKey=...
+     Auth key for /-/reload http endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings.
      Flag value can be read from the given file when using -reloadAuthKey=file:///abs/path/to/file or -reloadAuthKey=file://./relative/path/to/file . Flag value can be read from the given http/https url when using -reloadAuthKey=http://host/path or -reloadAuthKey=https://host/path
   -responseTimeout duration
      The timeout for receiving a response from backend (default 5m0s)
diff --git a/lib/bytesutil/internstring.go b/lib/bytesutil/internstring.go
index e62445ec3f..9c19c7840f 100644
--- a/lib/bytesutil/internstring.go
+++ b/lib/bytesutil/internstring.go
@@ -19,6 +19,121 @@ var (
 		"See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache")
 )
 
+type internStringMap struct {
+	mu           sync.Mutex
+	mutable      map[string]string
+	mutableReads uint64
+
+	readonly atomic.Pointer[map[string]internStringMapEntry]
+
+	nextCleanupTime atomic.Uint64
+}
+
+type internStringMapEntry struct {
+	deadline uint64
+	s        string
+}
+
+func newInternStringMap() *internStringMap {
+	ism := &internStringMap{
+		mutable: make(map[string]string),
+	}
+	readonly := make(map[string]internStringMapEntry)
+	ism.readonly.Store(&readonly)
+	ism.nextCleanupTime.Store(fasttime.UnixTimestamp() + 61)
+	return ism
+}
+
+func (m *internStringMap) getReadonly() map[string]internStringMapEntry {
+	return *m.readonly.Load()
+}
+
+func (m *internStringMap) intern(s string) string {
+	if *disableCache || len(s) > *internStringMaxLen {
+		return strings.Clone(s)
+	}
+	currentTime := fasttime.UnixTimestamp()
+	if currentTime >= m.nextCleanupTime.Load() {
+		m.nextCleanupTime.Store(currentTime + 61)
+		m.cleanup()
+	}
+
+	readonly := m.getReadonly()
+	e, ok := readonly[s]
+	if ok {
+		// Fast path - the string has been found in readonly map
+		return e.s
+	}
+
+	// Slower path - search for the string in mutable map
+	m.mu.Lock()
+	sInterned, ok := m.mutable[s]
+	if !ok {
+		// Verify whether the s has been already registered by concurrent goroutines in m.readonly
+		readonly = m.getReadonly()
+		e, ok = readonly[s]
+		if !ok {
+			// Slowest path - register the string in mutable map.
+			// Make a new copy for s in order to remove references from possible bigger string s refers to.
+			sInterned = strings.Clone(s)
+			m.mutable[sInterned] = sInterned
+		} else {
+			sInterned = e.s
+		}
+	}
+	m.mutableReads++
+	if m.mutableReads > uint64(len(readonly)) {
+		m.migrateMutableToReadonlyLocked()
+		m.mutableReads = 0
+	}
+	m.mu.Unlock()
+
+	return sInterned
+}
+
+func (m *internStringMap) migrateMutableToReadonlyLocked() {
+	readonly := m.getReadonly()
+	readonlyCopy := make(map[string]internStringMapEntry, len(readonly)+len(m.mutable))
+	for k, e := range readonly {
+		readonlyCopy[k] = e
+	}
+	deadline := fasttime.UnixTimestamp() + uint64(cacheExpireDuration.Seconds()+0.5)
+	for k, s := range m.mutable {
+		readonlyCopy[k] = internStringMapEntry{
+			s:        s,
+			deadline: deadline,
+		}
+	}
+	m.mutable = make(map[string]string)
+	m.readonly.Store(&readonlyCopy)
+}
+
+func (m *internStringMap) cleanup() {
+	m.mu.Lock()
+	defer m.mu.Unlock()
+
+	readonly := m.getReadonly()
+	currentTime := fasttime.UnixTimestamp()
+	needCleanup := false
+	for _, e := range readonly {
+		if e.deadline <= currentTime {
+			needCleanup = true
+			break
+		}
+	}
+	if !needCleanup {
+		return
+	}
+
+	readonlyCopy := make(map[string]internStringMapEntry, len(readonly))
+	for k, e := range readonly {
+		if e.deadline > currentTime {
+			readonlyCopy[k] = e
+		}
+	}
+	m.readonly.Store(&readonlyCopy)
+}
+
 func isSkipCache(s string) bool {
 	return *disableCache || len(s) > *internStringMaxLen
 }
@@ -33,52 +148,7 @@ func InternBytes(b []byte) string {
 //
 // This may be needed for reducing the amounts of allocated memory.
 func InternString(s string) string {
-	if isSkipCache(s) {
-		// Make a new copy for s in order to remove references from possible bigger string s refers to.
-		// This also protects from cases when s points to unsafe string - see https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3227
-		return strings.Clone(s)
-	}
-
-	ct := fasttime.UnixTimestamp()
-	if v, ok := internStringsMap.Load(s); ok {
-		e := v.(*ismEntry)
-		if e.lastAccessTime.Load()+10 < ct {
-			// Reduce the frequency of e.lastAccessTime update to once per 10 seconds
-			// in order to improve the fast path speed on systems with many CPU cores.
-			e.lastAccessTime.Store(ct)
-		}
-		return e.s
-	}
-	// Make a new copy for s in order to remove references from possible bigger string s refers to.
-	sCopy := strings.Clone(s)
-	e := &ismEntry{
-		s: sCopy,
-	}
-	e.lastAccessTime.Store(ct)
-	internStringsMap.Store(sCopy, e)
-
-	if needCleanup(&internStringsMapLastCleanupTime, ct) {
-		// Perform a global cleanup for internStringsMap by removing items, which weren't accessed during the last 5 minutes.
-		m := &internStringsMap
-		deadline := ct - uint64(cacheExpireDuration.Seconds())
-		m.Range(func(k, v interface{}) bool {
-			e := v.(*ismEntry)
-			if e.lastAccessTime.Load() < deadline {
-				m.Delete(k)
-			}
-			return true
-		})
-	}
-
-	return sCopy
+	return ism.intern(s)
 }
 
-type ismEntry struct {
-	lastAccessTime atomic.Uint64
-	s              string
-}
-
-var (
-	internStringsMap                sync.Map
-	internStringsMapLastCleanupTime atomic.Uint64
-)
+var ism = newInternStringMap()
diff --git a/lib/httpserver/httpserver.go b/lib/httpserver/httpserver.go
index d3c75d85fb..4c9c768e25 100644
--- a/lib/httpserver/httpserver.go
+++ b/lib/httpserver/httpserver.go
@@ -396,6 +396,18 @@ func handlerWrapper(s *server, w http.ResponseWriter, r *http.Request, rh Reques
 		// See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4128
 		fmt.Fprintf(w, "User-agent: *\nDisallow: /\n")
 		return
+	case "/config", "/-/reload":
+		// only some components (vmagent, vmalert, etc.) support these handlers
+		// these components are responsible for CheckAuthFlag call
+		// see https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6329
+		w = &responseWriterWithAbort{
+			ResponseWriter: w,
+		}
+		if !rh(w, r) {
+			Errorf(w, r, "unsupported path requested: %q", r.URL.Path)
+			unsupportedRequestErrors.Inc()
+		}
+		return
 	default:
 		if strings.HasPrefix(r.URL.Path, "/debug/pprof/") {
 			pprofRequests.Inc()
diff --git a/lib/protoparser/opentelemetry/firehose/http.go b/lib/protoparser/opentelemetry/firehose/http.go
index a222e72796..d17b14a0d6 100644
--- a/lib/protoparser/opentelemetry/firehose/http.go
+++ b/lib/protoparser/opentelemetry/firehose/http.go
@@ -2,6 +2,7 @@ package firehose
 
 import (
 	"fmt"
+	"html"
 	"net/http"
 	"time"
 )
@@ -12,11 +13,12 @@ import (
 func WriteSuccessResponse(w http.ResponseWriter, r *http.Request) {
 	requestID := r.Header.Get("X-Amz-Firehose-Request-Id")
 	if requestID == "" {
-		// This isn't a AWS firehose request - just return an empty response in this case.
+		// This isn't an AWS firehose request - just return an empty response in this case.
 		w.WriteHeader(http.StatusOK)
 		return
 	}
 
+	requestID = html.EscapeString(requestID)
 	body := fmt.Sprintf(`{"requestId":%q,"timestamp":%d}`, requestID, time.Now().UnixMilli())
 
 	h := w.Header()
diff --git a/lib/streamaggr/dedup.go b/lib/streamaggr/dedup.go
index 399e9a3dc8..d04980dba6 100644
--- a/lib/streamaggr/dedup.go
+++ b/lib/streamaggr/dedup.go
@@ -2,10 +2,13 @@ package streamaggr
 
 import (
 	"sync"
+	"sync/atomic"
 	"unsafe"
 
-	"github.com/VictoriaMetrics/VictoriaMetrics/lib/bytesutil"
 	"github.com/cespare/xxhash/v2"
+
+	"github.com/VictoriaMetrics/VictoriaMetrics/lib/bytesutil"
+	"github.com/VictoriaMetrics/VictoriaMetrics/lib/slicesutil"
 )
 
 const dedupAggrShardsCount = 128
@@ -24,7 +27,12 @@ type dedupAggrShard struct {
 
 type dedupAggrShardNopad struct {
 	mu sync.Mutex
-	m  map[string]dedupAggrSample
+	m  map[string]*dedupAggrSample
+
+	samplesBuf []dedupAggrSample
+
+	sizeBytes  atomic.Uint64
+	itemsCount atomic.Uint64
 }
 
 type dedupAggrSample struct {
@@ -42,7 +50,7 @@ func newDedupAggr() *dedupAggr {
 func (da *dedupAggr) sizeBytes() uint64 {
 	n := uint64(unsafe.Sizeof(*da))
 	for i := range da.shards {
-		n += da.shards[i].sizeBytes()
+		n += da.shards[i].sizeBytes.Load()
 	}
 	return n
 }
@@ -50,28 +58,11 @@ func (da *dedupAggr) sizeBytes() uint64 {
 func (da *dedupAggr) itemsCount() uint64 {
 	n := uint64(0)
 	for i := range da.shards {
-		n += da.shards[i].itemsCount()
+		n += da.shards[i].itemsCount.Load()
 	}
 	return n
 }
 
-func (das *dedupAggrShard) sizeBytes() uint64 {
-	das.mu.Lock()
-	n := uint64(unsafe.Sizeof(*das))
-	for k, s := range das.m {
-		n += uint64(len(k)) + uint64(unsafe.Sizeof(k)+unsafe.Sizeof(s))
-	}
-	das.mu.Unlock()
-	return n
-}
-
-func (das *dedupAggrShard) itemsCount() uint64 {
-	das.mu.Lock()
-	n := uint64(len(das.m))
-	das.mu.Unlock()
-	return n
-}
-
 func (da *dedupAggr) pushSamples(samples []pushSample) {
 	pss := getPerShardSamples()
 	shards := pss.shards
@@ -113,7 +104,7 @@ func (ctx *dedupFlushCtx) reset() {
 	ctx.samples = ctx.samples[:0]
 }
 
-func (da *dedupAggr) flush(f func(samples []pushSample), resetState bool) {
+func (da *dedupAggr) flush(f func(samples []pushSample)) {
 	var wg sync.WaitGroup
 	for i := range da.shards {
 		flushConcurrencyCh <- struct{}{}
@@ -125,7 +116,7 @@ func (da *dedupAggr) flush(f func(samples []pushSample), resetState bool) {
 			}()
 
 			ctx := getDedupFlushCtx()
-			shard.flush(ctx, f, resetState)
+			shard.flush(ctx, f)
 			putDedupFlushCtx(ctx)
 		}(&da.shards[i])
 	}
@@ -169,36 +160,43 @@ func (das *dedupAggrShard) pushSamples(samples []pushSample) {
 
 	m := das.m
 	if m == nil {
-		m = make(map[string]dedupAggrSample, len(samples))
+		m = make(map[string]*dedupAggrSample, len(samples))
 		das.m = m
 	}
+	samplesBuf := das.samplesBuf
 	for _, sample := range samples {
 		s, ok := m[sample.key]
 		if !ok {
+			samplesBuf = slicesutil.SetLength(samplesBuf, len(samplesBuf)+1)
+			s = &samplesBuf[len(samplesBuf)-1]
+			s.value = sample.value
+			s.timestamp = sample.timestamp
+
 			key := bytesutil.InternString(sample.key)
-			m[key] = dedupAggrSample{
-				value:     sample.value,
-				timestamp: sample.timestamp,
-			}
+			m[key] = s
+
+			das.itemsCount.Add(1)
+			das.sizeBytes.Add(uint64(len(key)) + uint64(unsafe.Sizeof(key)+unsafe.Sizeof(s)+unsafe.Sizeof(*s)))
 			continue
 		}
 		// Update the existing value according to logic described at https://docs.victoriametrics.com/#deduplication
 		if sample.timestamp > s.timestamp || (sample.timestamp == s.timestamp && sample.value > s.value) {
-			key := bytesutil.InternString(sample.key)
-			m[key] = dedupAggrSample{
-				value:     sample.value,
-				timestamp: sample.timestamp,
-			}
+			s.value = sample.value
+			s.timestamp = sample.timestamp
 		}
 	}
+	das.samplesBuf = samplesBuf
 }
 
-func (das *dedupAggrShard) flush(ctx *dedupFlushCtx, f func(samples []pushSample), resetState bool) {
+func (das *dedupAggrShard) flush(ctx *dedupFlushCtx, f func(samples []pushSample)) {
 	das.mu.Lock()
 
 	m := das.m
-	if resetState && len(m) > 0 {
-		das.m = make(map[string]dedupAggrSample, len(m))
+	if len(m) > 0 {
+		das.m = make(map[string]*dedupAggrSample, len(m))
+		das.sizeBytes.Store(0)
+		das.itemsCount.Store(0)
+		das.samplesBuf = das.samplesBuf[:0]
 	}
 
 	das.mu.Unlock()
@@ -216,7 +214,7 @@ func (das *dedupAggrShard) flush(ctx *dedupFlushCtx, f func(samples []pushSample
 		})
 
 		// Limit the number of samples per each flush in order to limit memory usage.
-		if len(dstSamples) >= 100_000 {
+		if len(dstSamples) >= 10_000 {
 			f(dstSamples)
 			clear(dstSamples)
 			dstSamples = dstSamples[:0]
diff --git a/lib/streamaggr/dedup_test.go b/lib/streamaggr/dedup_test.go
index f0b4cc9517..91ce09e136 100644
--- a/lib/streamaggr/dedup_test.go
+++ b/lib/streamaggr/dedup_test.go
@@ -23,8 +23,8 @@ func TestDedupAggrSerial(t *testing.T) {
 		da.pushSamples(samples)
 	}
 
-	if n := da.sizeBytes(); n > 4_200_000 {
-		t.Fatalf("too big dedupAggr state before flush: %d bytes; it shouldn't exceed 4_200_000 bytes", n)
+	if n := da.sizeBytes(); n > 5_000_000 {
+		t.Fatalf("too big dedupAggr state before flush: %d bytes; it shouldn't exceed 5_000_000 bytes", n)
 	}
 	if n := da.itemsCount(); n != seriesCount {
 		t.Fatalf("unexpected itemsCount; got %d; want %d", n, seriesCount)
@@ -39,7 +39,7 @@ func TestDedupAggrSerial(t *testing.T) {
 		}
 		mu.Unlock()
 	}
-	da.flush(flushSamples, true)
+	da.flush(flushSamples)
 
 	if !reflect.DeepEqual(expectedSamplesMap, flushedSamplesMap) {
 		t.Fatalf("unexpected samples;\ngot\n%v\nwant\n%v", flushedSamplesMap, expectedSamplesMap)
diff --git a/lib/streamaggr/dedup_timing_test.go b/lib/streamaggr/dedup_timing_test.go
index abb1d04517..2b6bab25c9 100644
--- a/lib/streamaggr/dedup_timing_test.go
+++ b/lib/streamaggr/dedup_timing_test.go
@@ -4,7 +4,6 @@ import (
 	"fmt"
 	"sync/atomic"
 	"testing"
-	"time"
 
 	"github.com/VictoriaMetrics/VictoriaMetrics/lib/prompbmarshal"
 )
@@ -17,22 +16,8 @@ func BenchmarkDedupAggr(b *testing.B) {
 	}
 }
 
-func BenchmarkDedupAggrFlushSerial(b *testing.B) {
-	as := newTotalAggrState(time.Hour, true, true)
-	benchSamples := newBenchSamples(100_000)
-	da := newDedupAggr()
-	da.pushSamples(benchSamples)
-
-	b.ResetTimer()
-	b.ReportAllocs()
-	b.SetBytes(int64(len(benchSamples)))
-	for i := 0; i < b.N; i++ {
-		da.flush(as.pushSamples, false)
-	}
-}
-
 func benchmarkDedupAggr(b *testing.B, samplesPerPush int) {
-	const loops = 100
+	const loops = 2
 	benchSamples := newBenchSamples(samplesPerPush)
 	da := newDedupAggr()
 
diff --git a/lib/streamaggr/deduplicator.go b/lib/streamaggr/deduplicator.go
index 3ec25f5fa3..0212bfd9ed 100644
--- a/lib/streamaggr/deduplicator.go
+++ b/lib/streamaggr/deduplicator.go
@@ -166,7 +166,7 @@ func (d *Deduplicator) flush(pushFunc PushFunc, dedupInterval time.Duration) {
 		ctx.labels = labels
 		ctx.samples = samples
 		putDeduplicatorFlushCtx(ctx)
-	}, true)
+	})
 
 	duration := time.Since(startTime)
 	d.dedupFlushDuration.Update(duration.Seconds())
diff --git a/lib/streamaggr/streamaggr.go b/lib/streamaggr/streamaggr.go
index 92fdba57a8..34ad118cf3 100644
--- a/lib/streamaggr/streamaggr.go
+++ b/lib/streamaggr/streamaggr.go
@@ -747,7 +747,7 @@ func (a *aggregator) dedupFlush(dedupInterval time.Duration) {
 
 	startTime := time.Now()
 
-	a.da.flush(a.pushSamples, true)
+	a.da.flush(a.pushSamples)
 
 	d := time.Since(startTime)
 	a.dedupFlushDuration.Update(d.Seconds())