-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathCHANGELOG
463 lines (463 loc) · 28.4 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
# ========================================================================
# CHANGELOG
# ========================================================================
#
# Possible change types: enhancement, feature, bugfix, add, extra
#
# ----------------------------------------------------------------------
# * 1.01
# ----------------------------------------------------------------------
#
# ----------------------------------------------------------------------
# * 1.00
# ----------------------------------------------------------------------
# - feature: added EMC Datadomain support (new nodetype "datadomain")
# - bugfix: fix for non allowed special chars with Config-General perl module >= 2.57
# - bugfix: fix empty node list at first page load
# - bugfix: fix some php warnings when the variables are empty (thanks lxf1992521)
# - bugfix: fix perl regex warning (thanks lxf1992521)
# - bugfix: fix unixsnmp when use of snmpwalk may fail in case of out-of-order OIDs
# - enhancement: better support of NetApp cDOT OnTAP 9.3+
# - enhancement: use Perl from env instead of a fixed path
# - enhancement: favicon.ico requests prevention (thanks lxf1992521)
# - extra: documentation and tools now on github as markdown pages (allowing PR for example)
#
# ----------------------------------------------------------------------
# * 0.06 (not published)
# ----------------------------------------------------------------------
# - feature: use ifname instead of ifdesc (thanks freneticf)
# - feature: added Netapp cDOT support (new nodetype "netapp-cdot")
# - feature: added HPUX support (new nodetype "hpux")
# - feature: added --trafficwithpkt option
# - feature: added --snmp-maxmsgsize option
# - feature: added nagiosxi as grapher solution
# - feature: added graphite support (thanks Israel Ochoa)
# - feature: added --exclude-but-calculate option, allowing calculation of interface data for excluded
# interfaces and showing them in the interfacetable. (thanks lazyfrosch)
# - bugfix: filter special characters for grapher compatibility
# - enhancement: added support of HP NC522SFP Dual Port 10GbE Server Adapter (speed info problem)
# - enhancement: inGraph grapher now use serviceDescription for parentService (thanks mxhash)
# - enhancement: remove the speed on Cisco vlans as not relevant and generates wrong alerts
# - enhancement: added support of HP NC522SFP Dual Port 10GbE Server Adapters
# - enhancement: remove port change on SNMP domain specification (thanks lazyfrosch)
# - enhancement: more snmp error messages handled
# - enhancement: fix ifSpeed when aggregated interfaces (faced on Netapp filers when multiple 10Gbps
# interfaces)
# - enhancement: added another way of calculation, extending traffic load tracking limit for 32-bits
# counters. Calculation of the octet traffic based on interface MTU config and Pkt counters.
# Allow traffic calculation for high speed interfaces get all interface mtu + in/out traffic pkt counters (Unicast and Non-Unicast counters)
# - extra: adjusted build for packaging and added example spec for use with icinga (thanks Martin Hauke, Dirk Götz)
#
# ----------------------------------------------------------------------
# * 0.05-1
# ----------------------------------------------------------------------
#
# - feature: nagios 4.x support
# - feature: added more variants of the pps graph(s)
# - bugfix: fix for vlan on hp switches
# - bugfix: fix on StandardizeSNMPOutputBehaviour for unixsnmp mode where the oid was cleaned of the output
# - bugfix: denormalize func fix when text empty
# - enhancement: looking at other oids for cisco model/serial info when the common ones don't provide the info
#
# ----------------------------------------------------------------------
# * 0.05
# ----------------------------------------------------------------------
#
# - enhancement: support of ifDescr in HEX-String (i.e. ifDescr used by Windows SNMP-Service in case
# of umlauts) (by Enfileyb)
# - enhancement: snmpsim recorder reorg and update
# - enhancement: more tolerancy for unaccessible oids
# - enhancement: config table enhancements (exclusions reviewed: no repetitions in non global
# exclusion for globally excluded interfaces, other messages not displayed for
# excluded interfaces)
# - enhancement: snmp functions merge and standardization: now 2 functions (get and walk),
# returning a hash of oids and values
# - enhancement: snmp functions enhancement:
# * can receive multiple oids as arguments,
# * new cache storage methods (based on Storable library),
# * exceptions (errors) handling, including oid details on error
# * unixsnmp now use exclusively snmpget/snmpbulkget instead of perl bindings
# * result hash can be built with indexes as keys (outputhashkeyidx param)
# * result hash empty check (checkempty param)
# * results concatened by key when querying multiple oids
# - enhancement: link to html table now persistent when exist, even in case of an UNKNOWN
# error (ex: when target not accessible)
# - enhancement: switched to a cleaner and more standard exception handling system (based on
# the Exception::Class perl library)
# - enhancement: lots of functions revamped and cleaned
# - enhancement: new option --(no)ipinfo, to enable/disable the ipinfo. Enabled by default
# - enhancement: protection against interface descriptions including double-quotes.
# - enhancement: extended support of the following nodetypes:
# * extended netscreen nodetype: ipinfo, nsrp state and corresponding operstatus alarm
# rule
# - enhancement: easier device support extension
# - enhancement: nodetype change protection (changing the nodetype will reset the table)
# - enhancement: don't use utils.pm anymore (utils.pm deprecated soon)
# - enhancement: oids in a hash format with related info (mib, conversion, ...) + renamed lots of
# oids for quick understanding
# - enhancement: most of the properties are now optional (to select only the wanted columns, and also
# reduce snmp queries). Use the following options: --alias, --ipinfo, --stp, --duplex,
# --vlan. Note that the use of the option --alias-matching automatically enable the
# --alias option.
# - enhancement: settings.cfg renamed settings.cfg-sample to avoid settings overwrite during upgrades
# - feature: option to sort on Name column at first page load (--default-table-sorting)
# - feature: option to write the debug in a file (--debugfile=/aaa/bbb/ccc)
# - feature: information tooltips to describe some columns (i.e. oper and admin status)
# - feature: added interface type property (--type option)
# - feature: the interface table can be splitted by interface type (--table-split option)
# - feature: add the graph popups directly on the interface tables.
# - feature: new support of the following nodetypes:
# * new bigip nodetype: support of "BIG-IP Local Traffic Manager" (and maybe other
# devices of that vendor)
# * new netapp nodetype: support of Netapp filers (model/product node info + 64-bit
# counters + extended 32-bit counters (low/high))
# * new bluecoat nodetype
# * new brocade nodetype: firmware model, serial, portnames (~ interface alias)
# (incl/excl possible)
# * new brocade-nos nodetype
# * new nortel nodetype: model, serial, vlan ids per port
# - feature: notes, recommendations and warnings in the config table
# - feature: new option snmp v3 contextname
# - feature: convert sysLocation from hex to string when needed
# - feature: max bandwidth monitoring capacity, recommendation on switching to 32/64 counters
# and delta
# - feature: added total bytes to graph in pnp4nagios templates
# - bugfix: missing snmp session close
# - bugfix: speed detection works when having ifHighSpeed only
# - bugfix: remove problematic '#' char from perfdata servicename
# - bugfix: fix on ipinfo gathering function to garantee correct ip (mainly for Bluecoat device)
# - bugfix: pipe removed from snmp results via unixsnmp
# - bugfix: fix nodenames with " " (idroj)
# - bugfix: fix servicename with "." (idroj)
# - bugfix: fix for unixsnmp when object not available
# - bugfix: fix when pkt errors/discards not all available
# - bugfix: fix wrong old variable in settings.cfg
# - bugfix: fixing an issue with the speed info and related calculations
#
# ----------------------------------------------------------------------
# * 0.04-1
# ----------------------------------------------------------------------
#
# - enhancement: history stats reset if node restart
# - enhancement: revamped table sorting feature: new design, all column sortable even with
# unusual data types
# - enhancement: new ifOperstatus status rules, preventing unexpected alarms:
# * no ifOperstatus alarms when ifAdminstatus is down
# * no ifOperstatus alarms when ifOperstatus is changing from down to anything
# - enhancement: added directory perm check, debug option, always back button
# - enhancement: added ifAlias in plugin output
# - feature: installer reviewed to support tuned installation via the following ./configure
# options: --exec_prefix, --libdir, --sysconfdir, --datarootdir
# - feature: nagios/icinga environment macros automatically used as default values for some
# options:
# * hostdisplay can take the NAGIOS_HOSTNAME macro value
# * perfdataservicedesc can take the NAGIOS_SERVICEDESC macro value
# - feature: when using pnp4nagios as graphing solution, performance data can now be written
# in a spool directory directly without going throught nagios/icinga. It could be used in
# case of monitored nodes with huge number of interfaces. Thanks to Markus Frosch
# - feature: option --htmltablelinktarget to specify the target (new page, current frame,...)
# for opening the html table page. Thanks to Markus Frosch
# - bugfix: correction on icinga-alternate1 for firefox web browser
# - bugfix: installer options --with-htmlurl and --with-cgiurl (for apache config file) now
# accept correctly all kind of url
#
# ----------------------------------------------------------------------
# * 0.04
# ----------------------------------------------------------------------
# - enhancement: extended info on used delta for bw calculations
# - enhancement: long interface description reformatting for: Firewall Services Module
# in Cisco Catalyst 6500 Series Switch or Cisco 7600 Internet Router, Nokia firewall
# (Checkpoint IPSO Firewall)
# - enhancement: delta extension for dataset cleaning is now dynamic (before static at 200s)
# - enhancement: now handle devices for which max Counter32 for ifSpeed is 4294967294
# - enhancement: better caching
# - enhancement: extended accessmethod (buttons, multiple and custom links)
# - enhancement: multiple interfaces with same descr/physical address handling
# - enhancement: unified the GetTablexxx snmp functions
# - enhancement: code simplification
# - enhancement: revamped generated html structure, introduced buttons, all styles in css
# - enhancement: better node reboot handling
# - enhancement: new plugin version detection
# - enhancement: new state file format
# - enhancement: logic now based on a generated ifName instead of index
# - enhancement: improved vlan property checks
# - enhancement: code restructuration and cleaning
# - enhancement: interface duplex mode collect now more robust
# - enhancement: 32/64bits counter change detection,
# - enhancement: 5 debug levels, reworked to be more readable
# - feature: sortable columns on interface tables
# - feature: added max-repetitions, timeout and retries snmp options
# - feature: added a snmp oid recorder for device simulation purpose (for testing phase).
# win32 precompiled for easy use, and howto
# - feature: new option --alias-matching (alias incl/excl matching now separated)
# - feature: netmask conversion from quad to dec notation
# - feature: added spanning tree state tracking (cistp only)
# - feature: much better performances by retrieving tables/bulks instead of single values
# - feature: batch files to simplify taking device snapshot for simulation
# - feature: nodetype option handling cisco, hp, and netscreen node types
# - feature: Juniper Netscreen support (zone,vsys,mng,IPs)
# - feature: support of snmp transport domain udp, tcp, udp6 and tcp6
# - bugfix: added php denormalization for Q5F
# - bugfix: fix for cache duration not honored correctly
# - bugfix: fix problem where empty snmp query result from cache was not used and overwritten
# every time
# - bugfix: ifAlias undef fix
# - bugfix: fixed space problem in action column on ie/opera
# - bugfix: undef speed fix
#
# ----------------------------------------------------------------------
# * 0.03-2 (not published)
# ----------------------------------------------------------------------
# - bugfix: workaround for devices with same interface name 'Ethernet Interface'.
# waiting for some planned tasks of 0.04 for better and general duplicates detection
#
# ----------------------------------------------------------------------
# * 0.03-1
# ----------------------------------------------------------------------
# - enhancement: interface coming from 'empty' operstatus to another operstatus does not
# trigger an alert of operstatus change (ex: newly added interface)
# - feature: introducing ifdescr preformating, applied to Cisco ASA specific interfaces
# - bugfix: remove single quote from perfdata names and url to pnp
# - bugfix: fixed major bug - config option -wp and -cp now honored (Birger Schmidt)
# - enhancement: negative value for err/disc pkt tracking disable the specific tracking.
# - ex: --warning 50,0,-1 --critical 80,100,-1 disable discard packet tracking
# - enhancement: better support of graphing solutions
# - add: new nagiosgrapher templates
#
# ----------------------------------------------------------------------
# * 0.03
# ----------------------------------------------------------------------
# - add: link to node selector
# - bugfix: bad path in log message for missing css file (Birger Schmidt)
# - add/enhancement: reinsert alias matching on in-/exclude regexmatching (Birger Schmidt)
# - add/enhancement: changes to support netways grapher v1 (nagiosgrapher) again
# - add: new alternate css, more adapted to multiple properties tracking. Also to give
# an example of custom css.
# - bugfix: blanks removed from property comparaison only from current value (from
# bugfix release 0.02-4)
#
# ----------------------------------------------------------------------
# * 0.03b3
# ----------------------------------------------------------------------
# - bugfix: added missing ifoperstatus possible values (reported by Michael Gumbinger)
# - enhancement: extended the non-tracking of ifoperstatusr: now from "xxx" to "up"
# - change: pkt err thresholds now high by default
# - change: one digit precision for pkt err rates
# - add/enhancement: full use of perl's netsnmp and avoid use of Unix snmp
# utils. Need more testing in real environment, so still EXPERIMENTAL.
# - add: plugin version on html page
# - change: now 3 levels of inclusion/exclusion and a new traffic
# tracking logic:
# * global
# + globally include/exclude interfaces to be monitored
# + excluded interfaces are represented by black overlayed rows in the
# interface table
# * traffic tracking
# + include/exclude interfaces for which the load and the packet
# errors/discards will be tracked
# + excluded interfaces are represented by a dark grey (css dependent)
# cell style in the interface table
# * property tracking
# + include/exclude interfaces for which the property changes will be
# tracked
# + excluded interfaces are represented by a dark grey (css dependent)
# cell style in the interface table
# - change: option perfdatashort moved to perfdataformat which permit
# to choose the perfdata types to return
# * full (default) : generated performance data include plugin related stats,
# interface status, interface load stats, and packet error
# stats
# * loadonly : generated performance data include plugin related stats,
# interface status, and interface load stats
# * globalonly : generated performance data include only plugin related
# stats
# 'loadonly' should be used in case of too many interfaces and consequently
# too much performance data which cannot fit in the nagios plugin output buffer.
# By default, its size is 8k and can be extended by modifying
# MAX_PLUGIN_OUTPUT_LENGTH in the nagios sources (icinga.h/nagios/h).
# - enhancement: detect incoherent load > if speed (in case of node restart,
# switch from v1 to v2c,...) and avoid bad performance data
#
# ----------------------------------------------------------------------
# * 0.03b2
# ----------------------------------------------------------------------
# - bugfix: fixed badly-used options warning/critical
# - enhancement: added checks of undefined variables
# - enhancement: reviewed debug/verbose mode to be clearer and better
# understandable
# - enhancement: SnmpUtils.pm now more robust and verbose in case of problem
# - bugfix: port option (-P) now working
# - bugfix: fixed some snmpv3 authentication problems
# - feature: config file. Using the --config option, a config file can be
# loaded. (really useful? lets see...)
# - bugfix: now "noSuchObject" response is handled correctly for all snmp
# versions. By default, v1 always returns an empty string, and v2c/v3 return
# "noSuchObject". Now all the modes translate noSuchObject to an empty string,
# and some extra debug info in case of v2c/v3
# - feature: new property tracked ifDuplexStatus, which is the operation mode
# of the interface (duplex mode) (kudos Oliver Windt for the idea)
# - enhancement/bugfix: reviewed the way config::general is used to be more
# robust and compatible with last versions of the module
#
# ----------------------------------------------------------------------
# * 0.03b1
# ----------------------------------------------------------------------
# - feature: all styles are now handled in an external css stylesheet.
# 3 stylesheets currently available:
# * classic.css: follow the style of previous versions of the plugin
# * icinga.css: follow the style of the icinga classic ui
# * nagiosxi.css: follow the style of the nagiosxi ui
# - change: moved javascript to external file & reviewed to not generate conflicts
# with styles defined in css stylesheets
# - feature: new interface inclusion/exclusion system distinguing properties and
# traffic load:
# * include/exclude interface from load tracking. Load tracking consists
# in a check of the bandwidth usage of the interface. By default, all
# the interfaces are included in this tracking. Excluding an interface
# from that tracking is usually done for interfaces that we don't want
# any tracking (e.g. loopback interfaces)
# * include/exclude interface from property tracking. Property tracking
# consists in the check of any changes in the properties of an interface,
# properties listed via the --track option. By default, only the
# "operstatus" property is tracked. You have the ability to exclude/include
# some interfaces from that check. This would be done for exemple for
# ports on which printers are connected (indeed, some printers going in
# standby mode has also their network interface going done, generating
# an non-wanted alert)
# - feature: new "Action" column, which currently contains a graph icon link, replacement
# of the "link on row" in previous versions of the plugin. This field allows
# other actions to be added in future.
# - feature: installer (./configure; make; makeinstall...) for an easier install. It
# includes:
# * the check of all required softwares / perl libraries.
# * automatic sudo and apache/httpd configuration
# - change: extracted snmp related and more general functions from the scripts and
# created libraries of functions, for better maintenance and to be used in
# other future plugins
# - change: commonly used options are now default.
# - change: detailed output and performance data (if enabled) are now default (use
# of outputshort/perfdatashort options to reduce them).
# - feature: error/discard packets:
# * checked against thresholds (rates)
# * presented via a specific column in the interface table. Cell background color
# changes in case of warning/critical state
# - change: new format for warning & critical commandline options for more simplicity:
# --warning/--critical <load%>,<pkterr/s>,<pktdiscard/s>
# 1. unique threshold for in/out statistics (ex: loadin/loadout)
# 2. one option for all traffic checks (load, pkt errors, pkt discards) to avoid
# too many options
# ex: --warning 50,0,0 --critical 80,100,100
# - enhancement: colorcode function standardized for other use (not only for load statistics)
# - change: some options renamed, but will certainly change again
# - enhancement: check and remove the % character if any in some commandline arguments
# - feature: snmp v2c & v3 support
# - feature: 64bit counters support (octets in/out & speed) for interfaces >=10Gbps
# - bugfix: colorcode rewritten for correctly handle colors between a warning and a
# critical threshold
# - feature: testing install option
#
# ----------------------------------------------------------------------
# * 0.02-3 (bugfix release)
# ----------------------------------------------------------------------
# - bugfix: exclude/include options now behave correctly on plugin
# output, not only on html file and performance data
#
# ----------------------------------------------------------------------
# * 0.02-2 (bugfix release)
# ----------------------------------------------------------------------
# - bugfix: fixed problem with the grapher options
# - bugfix: the "excludeportperf/includeportperf" options now work
#
# ----------------------------------------------------------------------
# * 0.02-1 (bugfix release)
# ----------------------------------------------------------------------
# - bugfix: fixed redondant short options
# - bugfix: forcing conversion of oper/admin status from integer to string
# - bugfix: fixed a variable substitution in interface evaluation
#
# ----------------------------------------------------------------------
# * 0.02
# ----------------------------------------------------------------------
# - enhancement: cleaner and step-by-step output when resetting stats
# - feature: finished option 'track', replacement of nochange, which
# list the field concerned by tracking. Default: only ifOperStatus.
# - enhancement: replaced column name/field notations from csv style to
# arrays
# - enhancement: clearly referenced html tables in variable names for
# better maintenance
# - bugfix: some typo fixes
# - bugfix: readded 'human' option (previously missed)
# - bugfix: some 'variable not defined' problems
# - feature: added operstatus as performance data for interface status tracking
# - enhancement: don't alert for interfaces OperStatus going to "up"
# - bugfix: vlan column moved to the correct place
# - bugfix: avoid global perfdata to be returned in case of initial
# run or no history, as the perfdata are wrong and produce drops on
# graphs
# - enhancement: rewrite the plugin to follow the nagios plugin development
# guidelines:
# * use of "use warnings"
# => multiple reviews and finally done
# - enhancement: added excludeportperf and includeportperf, allowing
# to filter which tracked interfaces generates performance data
# - bugfix: port performance data now depend on what data are
# available. ex: unrouted vlans doesn't have ifOctetIn statistics on catalyst
# - enhancement: last traffic calculation a bit cleaned and commented for
# better maintenance
# - bugfix: corrected and completed physical interface pattern matching in
# check_for_unused_interfaces
# - bugfix: readded 'regexp' option (previously missed)
# - bugfix: cachedir/statedir naming including hostquery
# - bugfix: never ignore case in options
# - enhancement: reviewed the way the ports are counted. based on the
# speed property availability, this seems to permit a correct counting
# for most of the possible nodes (cisco, windows, linux, ...)
# - feature: option "cisco" for specific cisco info requests and printing
# - bugfix: fixed some options no properly interpreted
# - bugfix: now checking the IP info <-> interface mapping
# - feature: 2 new output cases, reflecting the leak of data for
# calculation. For initial run and for no valid historical dataset
# - feature: operstatus in pnp4nagios port templates, for easier
# interface status tracking.
# - enhancement: normal plugin output includes now load thresholds
# - feature: --grapher and --grapherurl options to specify which grapher
# solution is used. And alternative url can be specified.
# - feature: --short or --long options for less or more detailed plugin
# outputs. Using --long allow to clearly identify problematic interfaces
# directly in the output of the plugin
# - enhancement: some options can now be specified multiple times and are
# concatenated. Exemple: --exclude 'pat1' --exclude 'pat2,pat3'.
# Concerned options: track, exclude, include, excludeportperf,
# includeportperf
# - feature: added an option to print the default values of the options
# - enhancement: updated the pod doc and moved to end for better reading.
# - enhancement: data::dumper sorting
# - enhancement: removed man option (prefered perldoc reading)
# - enhancement: reviewed the way the operstatus is presented for
# $display_operstatus = 1 (separate graph for operstatus)
# ----------------------------------------------------------------------
# * 0.01
# ----------------------------------------------------------------------
# - enhancement: better pnp4nagios integration
# - enhancement: better documentation on usage
# - enhancement: parameters treatment block code, for easier maintenance
# - enhancement: debug mode review
# - enhancement: arrays in option hash to avoid reformating in sub
# functions
# - enhancement: cleaning of unused blocks of code. might be reviewed
# in the future
# - enhancement: added comments
# - feature: added bits output feature for performance data
# - enhancement: check_multi perfdata output type with interface name.
# Global and Port perfdata types
# - enhancement: rewrite the plugin to follow the nagios plugin development
# guidelines:
# * use of "use warnings"
# - feature: pnp6 templates
# - enhancement: separate history cleaning and dataset selection from bps
# calculation
# - enhancement: restricted the html link generated as the pluging output
# to "[detail]", for better integration in third party tools such as
# nagstamon,...
#
# ========================================================================