From 6f5ba5068b246f93b22ae284be6034043f530f22 Mon Sep 17 00:00:00 2001 From: Rustie Lin Date: Tue, 26 Apr 2022 13:54:16 -0700 Subject: [PATCH] [helm][aws-fullnodes] use unified dashboards --- .../fullnode/aws/fullnode/files/dashboards | 1 + .../aws/fullnode/files/dashboards/api.json.gz | 1 - .../fullnode/files/dashboards/ddos.json.gz | 1 - .../files/dashboards/fullnodes.json.gz | 1 - .../fullnode/files/dashboards/mempool.json.gz | 1 - .../fullnode/files/dashboards/network.json.gz | 1 - .../files/dashboards/state-sync-v2.json.gz | 1 - .../files/dashboards/state_sync.json.gz | 1 - .../fullnode/files/dashboards/storage.json.gz | 1 - .../aws/fullnode/files/dashboards/system.json | 872 ------------------ .../fullnode/files/dashboards/system.json.gz | Bin 2156 -> 0 bytes 11 files changed, 1 insertion(+), 880 deletions(-) create mode 120000 terraform/fullnode/aws/fullnode/files/dashboards delete mode 120000 terraform/fullnode/aws/fullnode/files/dashboards/api.json.gz delete mode 120000 terraform/fullnode/aws/fullnode/files/dashboards/ddos.json.gz delete mode 120000 terraform/fullnode/aws/fullnode/files/dashboards/fullnodes.json.gz delete mode 120000 terraform/fullnode/aws/fullnode/files/dashboards/mempool.json.gz delete mode 120000 terraform/fullnode/aws/fullnode/files/dashboards/network.json.gz delete mode 120000 terraform/fullnode/aws/fullnode/files/dashboards/state-sync-v2.json.gz delete mode 120000 terraform/fullnode/aws/fullnode/files/dashboards/state_sync.json.gz delete mode 120000 terraform/fullnode/aws/fullnode/files/dashboards/storage.json.gz delete mode 100644 terraform/fullnode/aws/fullnode/files/dashboards/system.json delete mode 100644 terraform/fullnode/aws/fullnode/files/dashboards/system.json.gz diff --git a/terraform/fullnode/aws/fullnode/files/dashboards b/terraform/fullnode/aws/fullnode/files/dashboards new file mode 120000 index 0000000000000..4a3d47ab1c8f3 --- /dev/null +++ b/terraform/fullnode/aws/fullnode/files/dashboards @@ -0,0 +1 @@ +../../../../../dashboards \ No newline at end of file diff --git a/terraform/fullnode/aws/fullnode/files/dashboards/api.json.gz b/terraform/fullnode/aws/fullnode/files/dashboards/api.json.gz deleted file mode 120000 index 065ecd57b06bc..0000000000000 --- a/terraform/fullnode/aws/fullnode/files/dashboards/api.json.gz +++ /dev/null @@ -1 +0,0 @@ -../../../../../helm/validator/files/dashboards/api.json.gz \ No newline at end of file diff --git a/terraform/fullnode/aws/fullnode/files/dashboards/ddos.json.gz b/terraform/fullnode/aws/fullnode/files/dashboards/ddos.json.gz deleted file mode 120000 index bac2db51eb82c..0000000000000 --- a/terraform/fullnode/aws/fullnode/files/dashboards/ddos.json.gz +++ /dev/null @@ -1 +0,0 @@ -../../../../../helm/validator/files/dashboards/ddos.json.gz \ No newline at end of file diff --git a/terraform/fullnode/aws/fullnode/files/dashboards/fullnodes.json.gz b/terraform/fullnode/aws/fullnode/files/dashboards/fullnodes.json.gz deleted file mode 120000 index 3adb0ba3d5b20..0000000000000 --- a/terraform/fullnode/aws/fullnode/files/dashboards/fullnodes.json.gz +++ /dev/null @@ -1 +0,0 @@ -../../../../../helm/validator/files/dashboards/fullnodes.json.gz \ No newline at end of file diff --git a/terraform/fullnode/aws/fullnode/files/dashboards/mempool.json.gz b/terraform/fullnode/aws/fullnode/files/dashboards/mempool.json.gz deleted file mode 120000 index 85702606b1c65..0000000000000 --- a/terraform/fullnode/aws/fullnode/files/dashboards/mempool.json.gz +++ /dev/null @@ -1 +0,0 @@ -../../../../../helm/validator/files/dashboards/mempool.json.gz \ No newline at end of file diff --git a/terraform/fullnode/aws/fullnode/files/dashboards/network.json.gz b/terraform/fullnode/aws/fullnode/files/dashboards/network.json.gz deleted file mode 120000 index 27b2ee2f82fb8..0000000000000 --- a/terraform/fullnode/aws/fullnode/files/dashboards/network.json.gz +++ /dev/null @@ -1 +0,0 @@ -../../../../../helm/validator/files/dashboards/network.json.gz \ No newline at end of file diff --git a/terraform/fullnode/aws/fullnode/files/dashboards/state-sync-v2.json.gz b/terraform/fullnode/aws/fullnode/files/dashboards/state-sync-v2.json.gz deleted file mode 120000 index 487aa11eea4ff..0000000000000 --- a/terraform/fullnode/aws/fullnode/files/dashboards/state-sync-v2.json.gz +++ /dev/null @@ -1 +0,0 @@ -../../../../../helm/validator/files/dashboards/state-sync-v2.json.gz \ No newline at end of file diff --git a/terraform/fullnode/aws/fullnode/files/dashboards/state_sync.json.gz b/terraform/fullnode/aws/fullnode/files/dashboards/state_sync.json.gz deleted file mode 120000 index 6bf0d801dcb86..0000000000000 --- a/terraform/fullnode/aws/fullnode/files/dashboards/state_sync.json.gz +++ /dev/null @@ -1 +0,0 @@ -../../../../../helm/validator/files/dashboards/state_sync.json.gz \ No newline at end of file diff --git a/terraform/fullnode/aws/fullnode/files/dashboards/storage.json.gz b/terraform/fullnode/aws/fullnode/files/dashboards/storage.json.gz deleted file mode 120000 index 88aee8dae950d..0000000000000 --- a/terraform/fullnode/aws/fullnode/files/dashboards/storage.json.gz +++ /dev/null @@ -1 +0,0 @@ -../../../../../helm/validator/files/dashboards/storage.json.gz \ No newline at end of file diff --git a/terraform/fullnode/aws/fullnode/files/dashboards/system.json b/terraform/fullnode/aws/fullnode/files/dashboards/system.json deleted file mode 100644 index 28cbc7c441810..0000000000000 --- a/terraform/fullnode/aws/fullnode/files/dashboards/system.json +++ /dev/null @@ -1,872 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "iteration": 1646690077324, - "links": [ - { - "asDropdown": true, - "icon": "external link", - "includeVars": true, - "keepTime": true, - "tags": [], - "title": "Other Dashboards", - "type": "dashboards" - } - ], - "liveNow": false, - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 0 - }, - "hiddenSeries": false, - "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.4.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "rate(container_cpu_usage_seconds_total{pod=~\"$owner.*\", container=\"$container\"}[$interval])", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{owner}}-{{container}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "CPU Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percentunit", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 0 - }, - "hiddenSeries": false, - "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.4.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "container_memory_working_set_bytes{container=~\"$container\", pod=~\"$owner.*\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{pod}}-{{container}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Memory Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "decmbytes", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 0 - }, - "hiddenSeries": false, - "id": 24, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.4.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "container_memory_working_set_bytes{container=~\"$container\", pod=~\"$owner.*\"} / container_spec_memory_limit_bytes{container=~\"$container\", pod=~\"$owner.*\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{pod}}-{{container}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Memory Usage %", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percentunit", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "decmbytes", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 11 - }, - "hiddenSeries": false, - "id": 13, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.4.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "kubelet_volume_stats_used_bytes{persistentvolumeclaim=~\".*-($container)-e.*\"} / kubelet_volume_stats_capacity_bytes{persistentvolumeclaim=~\".*-($container)-e.*\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{persistentvolumeclaim}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Disk Usage %", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percentunit", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 11 - }, - "hiddenSeries": false, - "id": 23, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.4.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "kubelet_volume_stats_used_bytes{persistentvolumeclaim=~\".*($container)-e.*\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "{persistentvolumeclaim}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Disk Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 11 - }, - "hiddenSeries": false, - "id": 16, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.4.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "rate(container_network_receive_bytes_total{pod=~\".+$container(-e[0-9]+)?-0\"}[$interval]) + rate(container_network_transmit_bytes_total{pod=~\".+$container(-e[0-9]+)?-0\"}[$interval])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{pod}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Network Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transformations": [], - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 22 - }, - "hiddenSeries": false, - "id": 22, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.4.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "rate(container_fs_reads_total{container=~\"$container\"}[$interval]) + rate(container_fs_writes_total{container=~\"$container\"}[$interval])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{pod}}:{{container}}:{{device}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "IO Operations", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "iops", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - } - ], - "schemaVersion": 35, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": true, - "text": [ - "fullnode" - ], - "value": [ - "fullnode" - ] - }, - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "definition": "label_values(container)", - "hide": 0, - "includeAll": false, - "multi": true, - "name": "container", - "options": [], - "query": { - "query": "label_values(container)", - "refId": "Prometheus-container-Variable-Query" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "definition": "label_values(owner)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "owner", - "options": [], - "query": { - "query": "label_values(owner)", - "refId": "Prometheus-owner-Variable-Query" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "auto": true, - "auto_count": 30, - "auto_min": "10s", - "current": { - "selected": false, - "text": "auto", - "value": "$__auto_interval_interval" - }, - "hide": 0, - "name": "interval", - "options": [ - { - "selected": true, - "text": "auto", - "value": "$__auto_interval_interval" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "5m", - "value": "5m" - }, - { - "selected": false, - "text": "10m", - "value": "10m" - }, - { - "selected": false, - "text": "30m", - "value": "30m" - }, - { - "selected": false, - "text": "1h", - "value": "1h" - }, - { - "selected": false, - "text": "6h", - "value": "6h" - }, - { - "selected": false, - "text": "12h", - "value": "12h" - }, - { - "selected": false, - "text": "1d", - "value": "1d" - }, - { - "selected": false, - "text": "7d", - "value": "7d" - }, - { - "selected": false, - "text": "14d", - "value": "14d" - }, - { - "selected": false, - "text": "30d", - "value": "30d" - } - ], - "query": "1m,5m,10m,30m,1h,6h,12h,1d,7d,14d,30d", - "queryValue": "", - "refresh": 2, - "skipUrlSync": false, - "type": "interval" - } - ] - }, - "time": { - "from": "now-3h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "", - "title": "System", - "uid": "system", - "version": 1, - "weekStart": "" - } \ No newline at end of file diff --git a/terraform/fullnode/aws/fullnode/files/dashboards/system.json.gz b/terraform/fullnode/aws/fullnode/files/dashboards/system.json.gz deleted file mode 100644 index 7f4585e8685e543e39ff6ee1f78a577f90f4bd1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2156 zcmV-y2$T08iwFP!000001MOT}Z`(K)e($dki0-1D+F8p^oXG%#Mbe^+0yERhwhgdo z1A~!{ZNf68At@)`!1LROq;8}{IhWRx1eG6x=p2&g!gKj7$-I8%$q&Mm#sUixQ;vS} zt~F7TBf^Ee{+wTXB}a2FQWA-GR1WZaCOyOg^EhPzNEYh%z5g&g#T0w}KC%V^#TStp zBv=X-XHG&Vodhv`9Y--!E3?@Jelh5IL*JKw4i0*r|I!vf@lxw>T$$(n(>soU32u)R zn9V>KwwE4Q5=Hh0gPzS11AbIrH&(Y3~Yti!bfnMhT`6wYec8 znCoEGIc4lEy2z}n#f{eC7oan}KmMS`0oRl%fhc?(( zcm<5fB&-eFSfZn-ildSwlRYFrMU6F+tDVMmWstViE+5LrKU$P4do4*(SvPQMB`Ze= z^aC*B^cM*wacmGGm;nvzYT?z)mDeap8Ov;I@|O6@O()bz=kt0vpCLVa4ndy501frVcikd=tHr3%;A+MLa%e|=pVu-Vkt zWiWlGH{jT6@#X(kt16Pl(ZrVUUzp|T=I(E=Pd|B|l=rR1Rm&S&QW&LYuNo#xsH>6b+ zNqG%QDG~Lpi{jY{=HQ5hteB%geTJcNTTg9OM9yV*P@zSXGp^Pyze`{;D_c?nQkFV* zP-aI^#-@B7lrei>2W2`a(?JG=_?V+ zeg{zudIwQDh+@oo7>MHitGW#{;RyuAy83ZP2YRwi|7M`a`$q?Rp5l#}4*YzF;HUYZ z$@lLKe*94fehhjCemd}D%(@-;S)>;bNu0Baqf|i&fd!wW9Ksx@Bx?7h7pTZa1Q8}n z1yA;V=)b6N%ga6#*vGkIfTiz=Sl@5eM}dD_DnBF!dPDf4LqHk-X(FKeJ(}v!Pv)m5 zh<=*SroICG3_J8=(mV9ip&w(`&e6}ef+>I7do_<3z;y8C4)7&};1N8!>aa`hk?#e& zI38Pl&8?g6En$=1ftL=v7_;v6mM{gO9$ZZr1VC1hAsG8j;k{QCXnE0x&x8Ka`Ky=z z?hk4&2z#%*mc`|cQ(ivBy5H)L;%<(5n)Ptd=eNwAj|BawJ#i_8T& zTvU?&wkKM{;k{weuzTa!q<65WgGI)yd%>b9mxu_LznN-%@8$*oB$v5lq{2M6Tj$Y0 zou8~1cjQ$FD-ys%VxV{Lz4uA}Gid(c80aa191=TF4!!_q#C+fI=b5nx;=vr2xT@Zx zgMuN}QT{u1R{UPR{-bv!bny{{nttzVb<;%!`Bs*grT4V-X}=uZKf{cu<0tyR>t$P=C|6Nc zxt?s2K7*@9fk1pgl20u9u%>|<3TCy{UQ4FNnYQNl!o>P{AG20g9yghDELO_lW0rHR z7;=}%rNZTYdG&lU!HvmJA*=Ko#&^!BM&8_*P+HC|lF4B}OCsr!T@tB}-9J+iyS7fz zCqbO*{2C3Kyc|9FgW6d?x5-N9kv>^kW(u`rp3XESynw;wKkZxTjOQXS%js>gY3b4U zsO+OZBh?*CDk8nHFmHoxudOeM>~`2&$pR7 z-;vbuHmT!XN%efusl+sDK8-K?qbmN9ZsUrI8q*UJEcETga*