Browse code

Created repository.

DoubleBastionAdmin authored on 28/11/2024 01:19:39
Showing 10 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,6 @@
1
+======= CHANGELOG =======
2
+
3
+Versions:
4
+
5
+= 1.0.0 - 2024-11-28 =
6
+* Initial Release.
0 7
new file mode 100644
... ...
@@ -0,0 +1,6 @@
1
+==== Creator, maintainer and main contributor ====
2
+
3
+Double Bastion LLC  <www.doublebastion.com>
4
+
5
+
6
+=============== Other contributors ===============
0 7
new file mode 100644
... ...
@@ -0,0 +1,674 @@
1
+                     GNU GENERAL PUBLIC LICENSE
2
+                       Version 3, 29 June 2007
3
+
4
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
5
+ Everyone is permitted to copy and distribute verbatim copies
6
+ of this license document, but changing it is not allowed.
7
+
8
+                            Preamble
9
+
10
+  The GNU General Public License is a free, copyleft license for
11
+software and other kinds of works.
12
+
13
+  The licenses for most software and other practical works are designed
14
+to take away your freedom to share and change the works.  By contrast,
15
+the GNU General Public License is intended to guarantee your freedom to
16
+share and change all versions of a program--to make sure it remains free
17
+software for all its users.  We, the Free Software Foundation, use the
18
+GNU General Public License for most of our software; it applies also to
19
+any other work released this way by its authors.  You can apply it to
20
+your programs, too.
21
+
22
+  When we speak of free software, we are referring to freedom, not
23
+price.  Our General Public Licenses are designed to make sure that you
24
+have the freedom to distribute copies of free software (and charge for
25
+them if you wish), that you receive source code or can get it if you
26
+want it, that you can change the software or use pieces of it in new
27
+free programs, and that you know you can do these things.
28
+
29
+  To protect your rights, we need to prevent others from denying you
30
+these rights or asking you to surrender the rights.  Therefore, you have
31
+certain responsibilities if you distribute copies of the software, or if
32
+you modify it: responsibilities to respect the freedom of others.
33
+
34
+  For example, if you distribute copies of such a program, whether
35
+gratis or for a fee, you must pass on to the recipients the same
36
+freedoms that you received.  You must make sure that they, too, receive
37
+or can get the source code.  And you must show them these terms so they
38
+know their rights.
39
+
40
+  Developers that use the GNU GPL protect your rights with two steps:
41
+(1) assert copyright on the software, and (2) offer you this License
42
+giving you legal permission to copy, distribute and/or modify it.
43
+
44
+  For the developers' and authors' protection, the GPL clearly explains
45
+that there is no warranty for this free software.  For both users' and
46
+authors' sake, the GPL requires that modified versions be marked as
47
+changed, so that their problems will not be attributed erroneously to
48
+authors of previous versions.
49
+
50
+  Some devices are designed to deny users access to install or run
51
+modified versions of the software inside them, although the manufacturer
52
+can do so.  This is fundamentally incompatible with the aim of
53
+protecting users' freedom to change the software.  The systematic
54
+pattern of such abuse occurs in the area of products for individuals to
55
+use, which is precisely where it is most unacceptable.  Therefore, we
56
+have designed this version of the GPL to prohibit the practice for those
57
+products.  If such problems arise substantially in other domains, we
58
+stand ready to extend this provision to those domains in future versions
59
+of the GPL, as needed to protect the freedom of users.
60
+
61
+  Finally, every program is threatened constantly by software patents.
62
+States should not allow patents to restrict development and use of
63
+software on general-purpose computers, but in those that do, we wish to
64
+avoid the special danger that patents applied to a free program could
65
+make it effectively proprietary.  To prevent this, the GPL assures that
66
+patents cannot be used to render the program non-free.
67
+
68
+  The precise terms and conditions for copying, distribution and
69
+modification follow.
70
+
71
+                       TERMS AND CONDITIONS
72
+
73
+  0. Definitions.
74
+
75
+  "This License" refers to version 3 of the GNU General Public License.
76
+
77
+  "Copyright" also means copyright-like laws that apply to other kinds of
78
+works, such as semiconductor masks.
79
+
80
+  "The Program" refers to any copyrightable work licensed under this
81
+License.  Each licensee is addressed as "you".  "Licensees" and
82
+"recipients" may be individuals or organizations.
83
+
84
+  To "modify" a work means to copy from or adapt all or part of the work
85
+in a fashion requiring copyright permission, other than the making of an
86
+exact copy.  The resulting work is called a "modified version" of the
87
+earlier work or a work "based on" the earlier work.
88
+
89
+  A "covered work" means either the unmodified Program or a work based
90
+on the Program.
91
+
92
+  To "propagate" a work means to do anything with it that, without
93
+permission, would make you directly or secondarily liable for
94
+infringement under applicable copyright law, except executing it on a
95
+computer or modifying a private copy.  Propagation includes copying,
96
+distribution (with or without modification), making available to the
97
+public, and in some countries other activities as well.
98
+
99
+  To "convey" a work means any kind of propagation that enables other
100
+parties to make or receive copies.  Mere interaction with a user through
101
+a computer network, with no transfer of a copy, is not conveying.
102
+
103
+  An interactive user interface displays "Appropriate Legal Notices"
104
+to the extent that it includes a convenient and prominently visible
105
+feature that (1) displays an appropriate copyright notice, and (2)
106
+tells the user that there is no warranty for the work (except to the
107
+extent that warranties are provided), that licensees may convey the
108
+work under this License, and how to view a copy of this License.  If
109
+the interface presents a list of user commands or options, such as a
110
+menu, a prominent item in the list meets this criterion.
111
+
112
+  1. Source Code.
113
+
114
+  The "source code" for a work means the preferred form of the work
115
+for making modifications to it.  "Object code" means any non-source
116
+form of a work.
117
+
118
+  A "Standard Interface" means an interface that either is an official
119
+standard defined by a recognized standards body, or, in the case of
120
+interfaces specified for a particular programming language, one that
121
+is widely used among developers working in that language.
122
+
123
+  The "System Libraries" of an executable work include anything, other
124
+than the work as a whole, that (a) is included in the normal form of
125
+packaging a Major Component, but which is not part of that Major
126
+Component, and (b) serves only to enable use of the work with that
127
+Major Component, or to implement a Standard Interface for which an
128
+implementation is available to the public in source code form.  A
129
+"Major Component", in this context, means a major essential component
130
+(kernel, window system, and so on) of the specific operating system
131
+(if any) on which the executable work runs, or a compiler used to
132
+produce the work, or an object code interpreter used to run it.
133
+
134
+  The "Corresponding Source" for a work in object code form means all
135
+the source code needed to generate, install, and (for an executable
136
+work) run the object code and to modify the work, including scripts to
137
+control those activities.  However, it does not include the work's
138
+System Libraries, or general-purpose tools or generally available free
139
+programs which are used unmodified in performing those activities but
140
+which are not part of the work.  For example, Corresponding Source
141
+includes interface definition files associated with source files for
142
+the work, and the source code for shared libraries and dynamically
143
+linked subprograms that the work is specifically designed to require,
144
+such as by intimate data communication or control flow between those
145
+subprograms and other parts of the work.
146
+
147
+  The Corresponding Source need not include anything that users
148
+can regenerate automatically from other parts of the Corresponding
149
+Source.
150
+
151
+  The Corresponding Source for a work in source code form is that
152
+same work.
153
+
154
+  2. Basic Permissions.
155
+
156
+  All rights granted under this License are granted for the term of
157
+copyright on the Program, and are irrevocable provided the stated
158
+conditions are met.  This License explicitly affirms your unlimited
159
+permission to run the unmodified Program.  The output from running a
160
+covered work is covered by this License only if the output, given its
161
+content, constitutes a covered work.  This License acknowledges your
162
+rights of fair use or other equivalent, as provided by copyright law.
163
+
164
+  You may make, run and propagate covered works that you do not
165
+convey, without conditions so long as your license otherwise remains
166
+in force.  You may convey covered works to others for the sole purpose
167
+of having them make modifications exclusively for you, or provide you
168
+with facilities for running those works, provided that you comply with
169
+the terms of this License in conveying all material for which you do
170
+not control copyright.  Those thus making or running the covered works
171
+for you must do so exclusively on your behalf, under your direction
172
+and control, on terms that prohibit them from making any copies of
173
+your copyrighted material outside their relationship with you.
174
+
175
+  Conveying under any other circumstances is permitted solely under
176
+the conditions stated below.  Sublicensing is not allowed; section 10
177
+makes it unnecessary.
178
+
179
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180
+
181
+  No covered work shall be deemed part of an effective technological
182
+measure under any applicable law fulfilling obligations under article
183
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
184
+similar laws prohibiting or restricting circumvention of such
185
+measures.
186
+
187
+  When you convey a covered work, you waive any legal power to forbid
188
+circumvention of technological measures to the extent such circumvention
189
+is effected by exercising rights under this License with respect to
190
+the covered work, and you disclaim any intention to limit operation or
191
+modification of the work as a means of enforcing, against the work's
192
+users, your or third parties' legal rights to forbid circumvention of
193
+technological measures.
194
+
195
+  4. Conveying Verbatim Copies.
196
+
197
+  You may convey verbatim copies of the Program's source code as you
198
+receive it, in any medium, provided that you conspicuously and
199
+appropriately publish on each copy an appropriate copyright notice;
200
+keep intact all notices stating that this License and any
201
+non-permissive terms added in accord with section 7 apply to the code;
202
+keep intact all notices of the absence of any warranty; and give all
203
+recipients a copy of this License along with the Program.
204
+
205
+  You may charge any price or no price for each copy that you convey,
206
+and you may offer support or warranty protection for a fee.
207
+
208
+  5. Conveying Modified Source Versions.
209
+
210
+  You may convey a work based on the Program, or the modifications to
211
+produce it from the Program, in the form of source code under the
212
+terms of section 4, provided that you also meet all of these conditions:
213
+
214
+    a) The work must carry prominent notices stating that you modified
215
+    it, and giving a relevant date.
216
+
217
+    b) The work must carry prominent notices stating that it is
218
+    released under this License and any conditions added under section
219
+    7.  This requirement modifies the requirement in section 4 to
220
+    "keep intact all notices".
221
+
222
+    c) You must license the entire work, as a whole, under this
223
+    License to anyone who comes into possession of a copy.  This
224
+    License will therefore apply, along with any applicable section 7
225
+    additional terms, to the whole of the work, and all its parts,
226
+    regardless of how they are packaged.  This License gives no
227
+    permission to license the work in any other way, but it does not
228
+    invalidate such permission if you have separately received it.
229
+
230
+    d) If the work has interactive user interfaces, each must display
231
+    Appropriate Legal Notices; however, if the Program has interactive
232
+    interfaces that do not display Appropriate Legal Notices, your
233
+    work need not make them do so.
234
+
235
+  A compilation of a covered work with other separate and independent
236
+works, which are not by their nature extensions of the covered work,
237
+and which are not combined with it such as to form a larger program,
238
+in or on a volume of a storage or distribution medium, is called an
239
+"aggregate" if the compilation and its resulting copyright are not
240
+used to limit the access or legal rights of the compilation's users
241
+beyond what the individual works permit.  Inclusion of a covered work
242
+in an aggregate does not cause this License to apply to the other
243
+parts of the aggregate.
244
+
245
+  6. Conveying Non-Source Forms.
246
+
247
+  You may convey a covered work in object code form under the terms
248
+of sections 4 and 5, provided that you also convey the
249
+machine-readable Corresponding Source under the terms of this License,
250
+in one of these ways:
251
+
252
+    a) Convey the object code in, or embodied in, a physical product
253
+    (including a physical distribution medium), accompanied by the
254
+    Corresponding Source fixed on a durable physical medium
255
+    customarily used for software interchange.
256
+
257
+    b) Convey the object code in, or embodied in, a physical product
258
+    (including a physical distribution medium), accompanied by a
259
+    written offer, valid for at least three years and valid for as
260
+    long as you offer spare parts or customer support for that product
261
+    model, to give anyone who possesses the object code either (1) a
262
+    copy of the Corresponding Source for all the software in the
263
+    product that is covered by this License, on a durable physical
264
+    medium customarily used for software interchange, for a price no
265
+    more than your reasonable cost of physically performing this
266
+    conveying of source, or (2) access to copy the
267
+    Corresponding Source from a network server at no charge.
268
+
269
+    c) Convey individual copies of the object code with a copy of the
270
+    written offer to provide the Corresponding Source.  This
271
+    alternative is allowed only occasionally and noncommercially, and
272
+    only if you received the object code with such an offer, in accord
273
+    with subsection 6b.
274
+
275
+    d) Convey the object code by offering access from a designated
276
+    place (gratis or for a charge), and offer equivalent access to the
277
+    Corresponding Source in the same way through the same place at no
278
+    further charge.  You need not require recipients to copy the
279
+    Corresponding Source along with the object code.  If the place to
280
+    copy the object code is a network server, the Corresponding Source
281
+    may be on a different server (operated by you or a third party)
282
+    that supports equivalent copying facilities, provided you maintain
283
+    clear directions next to the object code saying where to find the
284
+    Corresponding Source.  Regardless of what server hosts the
285
+    Corresponding Source, you remain obligated to ensure that it is
286
+    available for as long as needed to satisfy these requirements.
287
+
288
+    e) Convey the object code using peer-to-peer transmission, provided
289
+    you inform other peers where the object code and Corresponding
290
+    Source of the work are being offered to the general public at no
291
+    charge under subsection 6d.
292
+
293
+  A separable portion of the object code, whose source code is excluded
294
+from the Corresponding Source as a System Library, need not be
295
+included in conveying the object code work.
296
+
297
+  A "User Product" is either (1) a "consumer product", which means any
298
+tangible personal property which is normally used for personal, family,
299
+or household purposes, or (2) anything designed or sold for incorporation
300
+into a dwelling.  In determining whether a product is a consumer product,
301
+doubtful cases shall be resolved in favor of coverage.  For a particular
302
+product received by a particular user, "normally used" refers to a
303
+typical or common use of that class of product, regardless of the status
304
+of the particular user or of the way in which the particular user
305
+actually uses, or expects or is expected to use, the product.  A product
306
+is a consumer product regardless of whether the product has substantial
307
+commercial, industrial or non-consumer uses, unless such uses represent
308
+the only significant mode of use of the product.
309
+
310
+  "Installation Information" for a User Product means any methods,
311
+procedures, authorization keys, or other information required to install
312
+and execute modified versions of a covered work in that User Product from
313
+a modified version of its Corresponding Source.  The information must
314
+suffice to ensure that the continued functioning of the modified object
315
+code is in no case prevented or interfered with solely because
316
+modification has been made.
317
+
318
+  If you convey an object code work under this section in, or with, or
319
+specifically for use in, a User Product, and the conveying occurs as
320
+part of a transaction in which the right of possession and use of the
321
+User Product is transferred to the recipient in perpetuity or for a
322
+fixed term (regardless of how the transaction is characterized), the
323
+Corresponding Source conveyed under this section must be accompanied
324
+by the Installation Information.  But this requirement does not apply
325
+if neither you nor any third party retains the ability to install
326
+modified object code on the User Product (for example, the work has
327
+been installed in ROM).
328
+
329
+  The requirement to provide Installation Information does not include a
330
+requirement to continue to provide support service, warranty, or updates
331
+for a work that has been modified or installed by the recipient, or for
332
+the User Product in which it has been modified or installed.  Access to a
333
+network may be denied when the modification itself materially and
334
+adversely affects the operation of the network or violates the rules and
335
+protocols for communication across the network.
336
+
337
+  Corresponding Source conveyed, and Installation Information provided,
338
+in accord with this section must be in a format that is publicly
339
+documented (and with an implementation available to the public in
340
+source code form), and must require no special password or key for
341
+unpacking, reading or copying.
342
+
343
+  7. Additional Terms.
344
+
345
+  "Additional permissions" are terms that supplement the terms of this
346
+License by making exceptions from one or more of its conditions.
347
+Additional permissions that are applicable to the entire Program shall
348
+be treated as though they were included in this License, to the extent
349
+that they are valid under applicable law.  If additional permissions
350
+apply only to part of the Program, that part may be used separately
351
+under those permissions, but the entire Program remains governed by
352
+this License without regard to the additional permissions.
353
+
354
+  When you convey a copy of a covered work, you may at your option
355
+remove any additional permissions from that copy, or from any part of
356
+it.  (Additional permissions may be written to require their own
357
+removal in certain cases when you modify the work.)  You may place
358
+additional permissions on material, added by you to a covered work,
359
+for which you have or can give appropriate copyright permission.
360
+
361
+  Notwithstanding any other provision of this License, for material you
362
+add to a covered work, you may (if authorized by the copyright holders of
363
+that material) supplement the terms of this License with terms:
364
+
365
+    a) Disclaiming warranty or limiting liability differently from the
366
+    terms of sections 15 and 16 of this License; or
367
+
368
+    b) Requiring preservation of specified reasonable legal notices or
369
+    author attributions in that material or in the Appropriate Legal
370
+    Notices displayed by works containing it; or
371
+
372
+    c) Prohibiting misrepresentation of the origin of that material, or
373
+    requiring that modified versions of such material be marked in
374
+    reasonable ways as different from the original version; or
375
+
376
+    d) Limiting the use for publicity purposes of names of licensors or
377
+    authors of the material; or
378
+
379
+    e) Declining to grant rights under trademark law for use of some
380
+    trade names, trademarks, or service marks; or
381
+
382
+    f) Requiring indemnification of licensors and authors of that
383
+    material by anyone who conveys the material (or modified versions of
384
+    it) with contractual assumptions of liability to the recipient, for
385
+    any liability that these contractual assumptions directly impose on
386
+    those licensors and authors.
387
+
388
+  All other non-permissive additional terms are considered "further
389
+restrictions" within the meaning of section 10.  If the Program as you
390
+received it, or any part of it, contains a notice stating that it is
391
+governed by this License along with a term that is a further
392
+restriction, you may remove that term.  If a license document contains
393
+a further restriction but permits relicensing or conveying under this
394
+License, you may add to a covered work material governed by the terms
395
+of that license document, provided that the further restriction does
396
+not survive such relicensing or conveying.
397
+
398
+  If you add terms to a covered work in accord with this section, you
399
+must place, in the relevant source files, a statement of the
400
+additional terms that apply to those files, or a notice indicating
401
+where to find the applicable terms.
402
+
403
+  Additional terms, permissive or non-permissive, may be stated in the
404
+form of a separately written license, or stated as exceptions;
405
+the above requirements apply either way.
406
+
407
+  8. Termination.
408
+
409
+  You may not propagate or modify a covered work except as expressly
410
+provided under this License.  Any attempt otherwise to propagate or
411
+modify it is void, and will automatically terminate your rights under
412
+this License (including any patent licenses granted under the third
413
+paragraph of section 11).
414
+
415
+  However, if you cease all violation of this License, then your
416
+license from a particular copyright holder is reinstated (a)
417
+provisionally, unless and until the copyright holder explicitly and
418
+finally terminates your license, and (b) permanently, if the copyright
419
+holder fails to notify you of the violation by some reasonable means
420
+prior to 60 days after the cessation.
421
+
422
+  Moreover, your license from a particular copyright holder is
423
+reinstated permanently if the copyright holder notifies you of the
424
+violation by some reasonable means, this is the first time you have
425
+received notice of violation of this License (for any work) from that
426
+copyright holder, and you cure the violation prior to 30 days after
427
+your receipt of the notice.
428
+
429
+  Termination of your rights under this section does not terminate the
430
+licenses of parties who have received copies or rights from you under
431
+this License.  If your rights have been terminated and not permanently
432
+reinstated, you do not qualify to receive new licenses for the same
433
+material under section 10.
434
+
435
+  9. Acceptance Not Required for Having Copies.
436
+
437
+  You are not required to accept this License in order to receive or
438
+run a copy of the Program.  Ancillary propagation of a covered work
439
+occurring solely as a consequence of using peer-to-peer transmission
440
+to receive a copy likewise does not require acceptance.  However,
441
+nothing other than this License grants you permission to propagate or
442
+modify any covered work.  These actions infringe copyright if you do
443
+not accept this License.  Therefore, by modifying or propagating a
444
+covered work, you indicate your acceptance of this License to do so.
445
+
446
+  10. Automatic Licensing of Downstream Recipients.
447
+
448
+  Each time you convey a covered work, the recipient automatically
449
+receives a license from the original licensors, to run, modify and
450
+propagate that work, subject to this License.  You are not responsible
451
+for enforcing compliance by third parties with this License.
452
+
453
+  An "entity transaction" is a transaction transferring control of an
454
+organization, or substantially all assets of one, or subdividing an
455
+organization, or merging organizations.  If propagation of a covered
456
+work results from an entity transaction, each party to that
457
+transaction who receives a copy of the work also receives whatever
458
+licenses to the work the party's predecessor in interest had or could
459
+give under the previous paragraph, plus a right to possession of the
460
+Corresponding Source of the work from the predecessor in interest, if
461
+the predecessor has it or can get it with reasonable efforts.
462
+
463
+  You may not impose any further restrictions on the exercise of the
464
+rights granted or affirmed under this License.  For example, you may
465
+not impose a license fee, royalty, or other charge for exercise of
466
+rights granted under this License, and you may not initiate litigation
467
+(including a cross-claim or counterclaim in a lawsuit) alleging that
468
+any patent claim is infringed by making, using, selling, offering for
469
+sale, or importing the Program or any portion of it.
470
+
471
+  11. Patents.
472
+
473
+  A "contributor" is a copyright holder who authorizes use under this
474
+License of the Program or a work on which the Program is based.  The
475
+work thus licensed is called the contributor's "contributor version".
476
+
477
+  A contributor's "essential patent claims" are all patent claims
478
+owned or controlled by the contributor, whether already acquired or
479
+hereafter acquired, that would be infringed by some manner, permitted
480
+by this License, of making, using, or selling its contributor version,
481
+but do not include claims that would be infringed only as a
482
+consequence of further modification of the contributor version.  For
483
+purposes of this definition, "control" includes the right to grant
484
+patent sublicenses in a manner consistent with the requirements of
485
+this License.
486
+
487
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
488
+patent license under the contributor's essential patent claims, to
489
+make, use, sell, offer for sale, import and otherwise run, modify and
490
+propagate the contents of its contributor version.
491
+
492
+  In the following three paragraphs, a "patent license" is any express
493
+agreement or commitment, however denominated, not to enforce a patent
494
+(such as an express permission to practice a patent or covenant not to
495
+sue for patent infringement).  To "grant" such a patent license to a
496
+party means to make such an agreement or commitment not to enforce a
497
+patent against the party.
498
+
499
+  If you convey a covered work, knowingly relying on a patent license,
500
+and the Corresponding Source of the work is not available for anyone
501
+to copy, free of charge and under the terms of this License, through a
502
+publicly available network server or other readily accessible means,
503
+then you must either (1) cause the Corresponding Source to be so
504
+available, or (2) arrange to deprive yourself of the benefit of the
505
+patent license for this particular work, or (3) arrange, in a manner
506
+consistent with the requirements of this License, to extend the patent
507
+license to downstream recipients.  "Knowingly relying" means you have
508
+actual knowledge that, but for the patent license, your conveying the
509
+covered work in a country, or your recipient's use of the covered work
510
+in a country, would infringe one or more identifiable patents in that
511
+country that you have reason to believe are valid.
512
+
513
+  If, pursuant to or in connection with a single transaction or
514
+arrangement, you convey, or propagate by procuring conveyance of, a
515
+covered work, and grant a patent license to some of the parties
516
+receiving the covered work authorizing them to use, propagate, modify
517
+or convey a specific copy of the covered work, then the patent license
518
+you grant is automatically extended to all recipients of the covered
519
+work and works based on it.
520
+
521
+  A patent license is "discriminatory" if it does not include within
522
+the scope of its coverage, prohibits the exercise of, or is
523
+conditioned on the non-exercise of one or more of the rights that are
524
+specifically granted under this License.  You may not convey a covered
525
+work if you are a party to an arrangement with a third party that is
526
+in the business of distributing software, under which you make payment
527
+to the third party based on the extent of your activity of conveying
528
+the work, and under which the third party grants, to any of the
529
+parties who would receive the covered work from you, a discriminatory
530
+patent license (a) in connection with copies of the covered work
531
+conveyed by you (or copies made from those copies), or (b) primarily
532
+for and in connection with specific products or compilations that
533
+contain the covered work, unless you entered into that arrangement,
534
+or that patent license was granted, prior to 28 March 2007.
535
+
536
+  Nothing in this License shall be construed as excluding or limiting
537
+any implied license or other defenses to infringement that may
538
+otherwise be available to you under applicable patent law.
539
+
540
+  12. No Surrender of Others' Freedom.
541
+
542
+  If conditions are imposed on you (whether by court order, agreement or
543
+otherwise) that contradict the conditions of this License, they do not
544
+excuse you from the conditions of this License.  If you cannot convey a
545
+covered work so as to satisfy simultaneously your obligations under this
546
+License and any other pertinent obligations, then as a consequence you may
547
+not convey it at all.  For example, if you agree to terms that obligate you
548
+to collect a royalty for further conveying from those to whom you convey
549
+the Program, the only way you could satisfy both those terms and this
550
+License would be to refrain entirely from conveying the Program.
551
+
552
+  13. Use with the GNU Affero General Public License.
553
+
554
+  Notwithstanding any other provision of this License, you have
555
+permission to link or combine any covered work with a work licensed
556
+under version 3 of the GNU Affero General Public License into a single
557
+combined work, and to convey the resulting work.  The terms of this
558
+License will continue to apply to the part which is the covered work,
559
+but the special requirements of the GNU Affero General Public License,
560
+section 13, concerning interaction through a network will apply to the
561
+combination as such.
562
+
563
+  14. Revised Versions of this License.
564
+
565
+  The Free Software Foundation may publish revised and/or new versions of
566
+the GNU General Public License from time to time.  Such new versions will
567
+be similar in spirit to the present version, but may differ in detail to
568
+address new problems or concerns.
569
+
570
+  Each version is given a distinguishing version number.  If the
571
+Program specifies that a certain numbered version of the GNU General
572
+Public License "or any later version" applies to it, you have the
573
+option of following the terms and conditions either of that numbered
574
+version or of any later version published by the Free Software
575
+Foundation.  If the Program does not specify a version number of the
576
+GNU General Public License, you may choose any version ever published
577
+by the Free Software Foundation.
578
+
579
+  If the Program specifies that a proxy can decide which future
580
+versions of the GNU General Public License can be used, that proxy's
581
+public statement of acceptance of a version permanently authorizes you
582
+to choose that version for the Program.
583
+
584
+  Later license versions may give you additional or different
585
+permissions.  However, no additional obligations are imposed on any
586
+author or copyright holder as a result of your choosing to follow a
587
+later version.
588
+
589
+  15. Disclaimer of Warranty.
590
+
591
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599
+
600
+  16. Limitation of Liability.
601
+
602
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610
+SUCH DAMAGES.
611
+
612
+  17. Interpretation of Sections 15 and 16.
613
+
614
+  If the disclaimer of warranty and limitation of liability provided
615
+above cannot be given local legal effect according to their terms,
616
+reviewing courts shall apply local law that most closely approximates
617
+an absolute waiver of all civil liability in connection with the
618
+Program, unless a warranty or assumption of liability accompanies a
619
+copy of the Program in return for a fee.
620
+
621
+                     END OF TERMS AND CONDITIONS
622
+
623
+            How to Apply These Terms to Your New Programs
624
+
625
+  If you develop a new program, and you want it to be of the greatest
626
+possible use to the public, the best way to achieve this is to make it
627
+free software which everyone can redistribute and change under these terms.
628
+
629
+  To do so, attach the following notices to the program.  It is safest
630
+to attach them to the start of each source file to most effectively
631
+state the exclusion of warranty; and each file should have at least
632
+the "copyright" line and a pointer to where the full notice is found.
633
+
634
+    {one line to give the program's name and a brief idea of what it does.}
635
+    Copyright (C) {year}  {name of author}
636
+
637
+    This program is free software: you can redistribute it and/or modify
638
+    it under the terms of the GNU General Public License as published by
639
+    the Free Software Foundation, either version 3 of the License, or
640
+    (at your option) any later version.
641
+
642
+    This program is distributed in the hope that it will be useful,
643
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
644
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
645
+    GNU General Public License for more details.
646
+
647
+    You should have received a copy of the GNU General Public License
648
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
649
+
650
+Also add information on how to contact you by electronic and paper mail.
651
+
652
+  If the program does terminal interaction, make it output a short
653
+notice like this when it starts in an interactive mode:
654
+
655
+    {project}  Copyright (C) {year}  {fullname}
656
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657
+    This is free software, and you are welcome to redistribute it
658
+    under certain conditions; type `show c' for details.
659
+
660
+The hypothetical commands `show w' and `show c' should show the appropriate
661
+parts of the General Public License.  Of course, your program's commands
662
+might be different; for a GUI interface, you would use an "about box".
663
+
664
+  You should also get your employer (if you work as a programmer) or school,
665
+if any, to sign a "copyright disclaimer" for the program, if necessary.
666
+For more information on this, and how to apply and follow the GNU GPL, see
667
+<http://www.gnu.org/licenses/>.
668
+
669
+  The GNU General Public License does not permit incorporating your program
670
+into proprietary programs.  If your program is a subroutine library, you
671
+may consider it more useful to permit linking proprietary applications with
672
+the library.  If this is what you want to do, use the GNU Lesser General
673
+Public License instead of this License.  But first, please read
674
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
0 675
new file mode 100644
... ...
@@ -0,0 +1,129 @@
1
+/**
2
+ *  "System Health and Security Probe" is a program that runs periodically to 
3
+ *  investigate general system health and security problems and to send report
4
+ *  emails to admins. It's designed to be used as part of RED SCARF Suite.
5
+ *  It requires at least an abridged version of RED SCARF Suite and Postfix, 
6
+ *  installed and configured on a Debian server as described in the "Complete
7
+ *  Guide to a Complete Linux Server". For more details, please see the
8
+ *  "README.txt" file.         
9
+ *                                                                                         
10
+ *  Copyright (C) 2024  Double Bastion LLC <www.doublebastion.com>           
11
+ *                                                                                         
12
+ *  This file is part of "System Health and Security Probe".                               
13
+ *                                                                                         
14
+ *  "System Health and Security Probe" is free software: you can redistribute
15
+ *  it and/or modify it under the terms of the GNU General Public License as                  
16
+ *  published by the Free Software Foundation, either version 3 of the License,            
17
+ *  or (at your option) any later version.                                                 
18
+ *                                                                                         
19
+ *  This program is distributed in the hope that it will be useful,                        
20
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of                         
21
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                          
22
+ *  GNU General Public License for more details.                                           
23
+ *                                                                                         
24
+ *  You should have received a copy of the GNU General Public License                      
25
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.                 
26
+ */
27
+
28
+
29
+
30
+DESCRIPTION:
31
+
32
+ This program runs periodically and sends a report email to the administrator(s) if it detects at least
33
+ one of the following problems:
34
+
35
+ - One or more services running on the host server is in failed state.
36
+
37
+ - The periodic ClamAV scan has detected any viruses in the mail directories or in the Nextcloud upload
38
+   directories or the logs show recent virus detections in the incoming emails or in the files uploaded
39
+   to Nextcloud.
40
+
41
+ - Any new IP address has been banned during the last run interval due to repeated failed log in
42
+   attempts against one of the applications monitored by Fail2ban.
43
+
44
+ - The free disk space on all partitions is less than a threashold established by the admin.
45
+
46
+ - The average CPU load in the last 15 minutes exceeded 100% utilization of all the CPU cores.
47
+
48
+ It stores all the IP addresses banned by Fail2ban in the database and if one IP has been
49
+ banned more than once, it includes the 'whois' data for that IP in the email report. It searches
50
+ for the 'abuse' email address in the 'whois' data and writes a draft email that can be manually sent
51
+ by the admin to the entity that owns the offending IP, to report the repeated attacks. The draft email
52
+ includes the log lines containing the failed log in attepts of that IP. The text of the draft email is
53
+ included in the periodic email report sent to the admin, below the 'whois' data of each IP that was
54
+ banned more than once. If the 'automatic_emails_to_isp' parameter in the 'config' file is set to 'yes',
55
+ the program will automatically send the abuse report email to the entity that owns the offending IP,
56
+ at the moment its number of bans increases by 1, if it has been banned at least once in the past.
57
+
58
+ Before sending the email report to the admin, the program compares it with the last sent report, and if 
59
+ there is nothing important or new to report, the new email will not be sent, since it is assumed that
60
+ the admin has already been informed about the current problems in the previous email. This is to avoid
61
+ flooding the admin with too many emails. For example, if at a particular moment it detects that the only
62
+ problem of the server is that there are 75 banned IPs, and at the moment of the next run it detects that
63
+ 4 of those IPs have been debaned due to their bantime being over, it won't send the email report, because
64
+ the debanning of the 4 IPs is not important enough to deserve a new email. However, if it detects that
65
+ since the last run a new IP has been banned, the email report will be sent.
66
+
67
+
68
+REQUIREMENTS:
69
+
70
+ This program is designed to be used as part of 'RED SCARF Suite'. It may work in other contexts but
71
+ only if heavily modified. It requires at least an abridged version of RED SCARF Suite and Postfix, 
72
+ installed and configured on a Debian server as described in the "Complete Guide to a Complete Linux 
73
+ Server". At least the following jails need to be set in '/etc/fail2ban/jail.local':
74
+
75
+    sshd, postfix, postfix-sasl
76
+
77
+ In general, the log files written by the programs installed on the server should be rotated only when 
78
+ they reach about 2M in size (with the exception of WordPress websites, whose logs need to be rotated 
79
+ once every day because of Matomo), which can be configured in their respective logrotate files located 
80
+ in the '/etc/logrotate.d' directory. This is because 'System Health and Security Probe' needs to read 
81
+ a large number of log lines in order to find enough failed log in attempts that can be included in the 
82
+ draft abuse report emails.
83
+
84
+ Important !!! The ban time set for all the jails in '/etc/fail2ban/jail.local' (in seconds) must be 
85
+    greater than the interval between two consecutive runs of the program, that you set in the 
86
+    'shsp-config.php' file in the '$time_in_hours' parameter. If the run interval is set to 8 hours,
87
+    which is the default, all the jails in Fail2ban must have a ban time greater than 8 hours (which
88
+    means greater than 28800 seconds). Also, in '/etc/fail2ban/jail.local' it's necessary to specify a 
89
+    ban time (in seconds) for each and every jail, even for the jails who use the default ban time, for 
90
+    which it's not required. So, in every jail block, a 'bantime' parameter should be included.
91
+
92
+ Important !!! If you change the run interval in the 'shsp-config.php' file (in the '$time_in_hours' 
93
+    parameter), you should change the cron job accordingly. To run the script every 8 hours, at 5 minutes 
94
+    past, the cron job should be:
95
+
96
+    5 */8 * * * php /srv/scripts/shas-probe/system-health-and-security-probe.php > /dev/null 2>&1
97
+
98
+
99
+INSTALLATION:
100
+
101
+ Once the applications that make up RED SCARF Suite are installed (at least the 10 kernel components of 
102
+ the suite and Postfix), to start using this program just copy all its files and directories to 
103
+ '/srv/scripts/shas-probe' (or in another suitable location of your choice), then create a MariaDB database, 
104
+ user and password, give the user all the priviledges over that database, except GRANT, then copy the 
105
+ database name, user and password in the corresponding parameters of the 'shsp-config.php' file. Also, set 
106
+ the value of all the other parameters in the 'shsp-config.php' file.
107
+
108
+ Add a cronjob to crontab (use the 'crontab -e' command) like the following:
109
+
110
+    # Run System Health and Security Probe every 8 hours
111
+    5 */8 * * * php /srv/scripts/shas-probe/system-health-and-security-probe.php > /dev/null 2>&1
112
+
113
+ Next, create the directory to store the periodic ClamAV scan reports. The default name and location for this
114
+ directory is '/srv/scripts/detections' but you can change it and mention it as such in the 'shsp-config.php' 
115
+ file. Then set up two cronjobs to get ClamAV to scan two sensitive directories. Keep the file names 
116
+ 'clamav_nextcloud_report' and 'clamav_mail_report' unchanged, as shown below. You can change the directory 
117
+ for these files ('/srv/scripts/detections') and the time and frequency of scanning, according to your needs.
118
+ Replace 'example.com' with your domain:
119
+
120
+    # Scan the '/var/www/cloud.example.com/data' directory and the '/var/vmail' directory with ClamAV every three days
121
+    5 3 */3 * * cat /dev/null > /srv/scripts/detections/clamav_nextcloud_report && clamdscan --fdpass --quiet /var/www/cloud.example.com/data -l /srv/scripts/detections/clamav_nextcloud_report
122
+    40 3 */3 * * cat /dev/null > /srv/scripts/detections/clamav_mail_report && clamdscan --fdpass --quiet /var/vmail -l /srv/scripts/detections/clamav_mail_report
123
+ 
124
+ That's it, the program is ready to fulfill its mission. To be able to see the email reports properly, your email client should accept html emails.
125
+
126
+
127
+LICENCE:
128
+ GNU GENERAL PUBLIC LICENSE v3+
129
+
0 130
new file mode 100644
... ...
@@ -0,0 +1,787 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<svg
3
+   version="1.1"
4
+   id="Layer_1"
5
+   x="0px"
6
+   y="0px"
7
+   width="721.0498"
8
+   height="536.30347"
9
+   viewBox="0 0 721.04981 536.30346"
10
+   enable-background="new 0 0 792 612"
11
+   xml:space="preserve"
12
+   xmlns="http://www.w3.org/2000/svg"
13
+   xmlns:svg="http://www.w3.org/2000/svg"><defs
14
+   id="defs318"><rect
15
+     x="59.342171"
16
+     y="519.46405"
17
+     width="742.38684"
18
+     height="65.447365"
19
+     id="rect849" /></defs>
20
+<g
21
+   id="g8556"><g
22
+     id="g7173"
23
+     transform="translate(-2.0000004,14.057279)"><g
24
+       id="g313"
25
+       transform="matrix(1.2329325,0,0,1.2329325,-127.56867,-116.97801)">
26
+	<linearGradient
27
+   id="SVGID_1_"
28
+   gradientUnits="userSpaceOnUse"
29
+   x1="399.0195"
30
+   y1="204.37109"
31
+   x2="759.00519"
32
+   y2="218.464">
33
+		<stop
34
+   offset="0"
35
+   style="stop-color:#C71F25"
36
+   id="stop58" />
37
+		<stop
38
+   offset="0.0175"
39
+   style="stop-color:#C82627"
40
+   id="stop60" />
41
+		<stop
42
+   offset="0.388"
43
+   style="stop-color:#DB8168"
44
+   id="stop62" />
45
+		<stop
46
+   offset="0.6856"
47
+   style="stop-color:#EBBEAD"
48
+   id="stop64" />
49
+		<stop
50
+   offset="0.8958"
51
+   style="stop-color:#F8E9E2"
52
+   id="stop66" />
53
+		<stop
54
+   offset="1"
55
+   style="stop-color:#FFFFFF"
56
+   id="stop68" />
57
+	</linearGradient>
58
+	<path
59
+   fill-rule="evenodd"
60
+   clip-rule="evenodd"
61
+   fill="url(#SVGID_1_)"
62
+   d="m 374.177,91.248 c 6.62,-4.47 17.73,-2.453 23.276,-0.57 1.829,0.621 3.412,1.266 5.39,2.068 3.955,1.604 12.649,6.531 15.581,9.25 l -24.689,27.791 c -1.327,1.832 -0.999,0.366 -0.64,2.047 1.935,-0.313 17.22,-18.625 19.808,-21.497 2.016,-2.237 4.378,-5.67 6.781,-7.372 5.815,3.403 12.74,12.58 16.978,18.854 5.366,7.947 8.503,21.544 0.993,26.616 l -2.082,1.406 c -10.879,7.346 -34.963,-4.336 -44.927,-12.842 -6.821,-5.822 -13.944,-12.597 -18.463,-22.25 -3.739,-7.983 -5.935,-18.147 1.994,-23.501 z m -3.064,47.546 c 4.734,7.011 6.772,7.41 11.78,12.056 -0.749,1.838 -2.642,13.912 -3.122,14.235 -1.202,0.812 -10.538,3.614 -12.396,4.195 -4.763,1.49 -6.802,3.751 -11.351,7.852 l -21.367,19.023 c -0.792,1.694 6.812,29.843 7.213,31.44 2.657,10.576 5.057,21.164 7.926,31.94 0.715,2.687 1.121,4.995 1.779,7.584 2.158,8.49 0.365,7.444 8.614,12.051 2.499,1.395 4.327,2.702 6.807,4.098 2.063,1.161 19.08,11.806 20.513,11.814 0.885,0.006 6.926,-1.78 8.07,-2.421 0.275,2.555 1.719,30.043 2.838,32.041 2.258,-1.266 28.748,-7.547 31.029,-8.825 -3.301,-4.888 -10.753,-22.092 -14.104,-28.071 2.944,-1.125 6.737,-1.555 8.01,-2.132 1.627,-0.737 22.584,-32.522 22.701,-33.54 0.011,-0.104 0.012,-0.253 0.013,-0.36 0.003,-0.226 -0.145,-1.072 -0.152,-1.115 l -1.651,-6.111 c -0.824,-2.926 -1.301,-5.274 -2.171,-8.384 l -16.847,-64.798 -39.341,-6.178 c 1.179,-2.895 1.577,-7.874 2.862,-11.028 4.457,4.135 18.505,6.897 24.401,6.691 7.758,-0.272 20.486,-3.652 27.299,-8.252 10.229,-6.907 7.299,-23.315 0.077,-34.009 -10.589,-15.682 -14.19,-15.521 -17.539,-19.688 0.517,-0.882 1.535,-1.949 2.331,-2.842 3.095,-3.473 2.049,-0.714 5.055,-1.925 3.473,-1.398 1.829,-8.731 -3.681,-5.011 -1.199,0.81 -0.766,1.479 -0.795,2.379 -0.074,2.276 0.838,0.369 -0.553,2.427 -0.547,0.811 -3.275,3.676 -4.034,4.285 -1.597,-1.987 -9.111,-6.56 -11.201,-7.569 -10.828,-5.228 -27.285,-11.314 -39.179,-3.283 -9.458,6.387 -9.436,27.616 -6.569,37.094 1.055,3.484 4.164,10.529 6.735,14.337 z"
63
+   id="path71"
64
+   style="fill:url(#SVGID_1_)" />
65
+	<linearGradient
66
+   id="SVGID_2_"
67
+   gradientUnits="userSpaceOnUse"
68
+   x1="394.62009"
69
+   y1="253.6133"
70
+   x2="774.97321"
71
+   y2="268.5036">
72
+		<stop
73
+   offset="0"
74
+   style="stop-color:#C71F25"
75
+   id="stop73" />
76
+		<stop
77
+   offset="0.0175"
78
+   style="stop-color:#C82627"
79
+   id="stop75" />
80
+		<stop
81
+   offset="0.388"
82
+   style="stop-color:#DB8168"
83
+   id="stop77" />
84
+		<stop
85
+   offset="0.6856"
86
+   style="stop-color:#EBBEAD"
87
+   id="stop79" />
88
+		<stop
89
+   offset="0.8958"
90
+   style="stop-color:#F8E9E2"
91
+   id="stop81" />
92
+		<stop
93
+   offset="1"
94
+   style="stop-color:#FFFFFF"
95
+   id="stop83" />
96
+	</linearGradient>
97
+	<path
98
+   fill-rule="evenodd"
99
+   clip-rule="evenodd"
100
+   fill="url(#SVGID_2_)"
101
+   d="m 202.123,269.279 36.881,-9.139 c -0.336,-2.278 -1.567,-6.283 -2.194,-8.75 l -7.08,-27.433 c -2.632,0.283 -34.48,8.192 -36.6,9.555 0.5,1.31 0.712,2.847 1.087,4.192 0.498,1.784 0.676,2.86 1.107,4.558 z"
102
+   id="path86"
103
+   style="fill:url(#SVGID_2_)" />
104
+	<linearGradient
105
+   id="SVGID_3_"
106
+   gradientUnits="userSpaceOnUse"
107
+   x1="399.79391"
108
+   y1="223.6978"
109
+   x2="780.09692"
110
+   y2="238.58611">
111
+		<stop
112
+   offset="0"
113
+   style="stop-color:#C71F25"
114
+   id="stop88" />
115
+		<stop
116
+   offset="0.0175"
117
+   style="stop-color:#C82627"
118
+   id="stop90" />
119
+		<stop
120
+   offset="0.388"
121
+   style="stop-color:#DB8168"
122
+   id="stop92" />
123
+		<stop
124
+   offset="0.6856"
125
+   style="stop-color:#EBBEAD"
126
+   id="stop94" />
127
+		<stop
128
+   offset="0.8958"
129
+   style="stop-color:#F8E9E2"
130
+   id="stop96" />
131
+		<stop
132
+   offset="1"
133
+   style="stop-color:#FFFFFF"
134
+   id="stop98" />
135
+	</linearGradient>
136
+	<path
137
+   fill-rule="evenodd"
138
+   clip-rule="evenodd"
139
+   fill="url(#SVGID_3_)"
140
+   d="m 464.039,249.468 18.247,-4.51 c 3.14,-0.877 16.604,-3.92 18.353,-5.045 l -4.641,-17.912 c -0.711,-3.219 -3.672,-15.848 -5.05,-17.991 l -36.184,9.274 c 0.413,2.8 1.416,5.729 2.077,8.728 z"
141
+   id="path101"
142
+   style="fill:url(#SVGID_3_)" />
143
+	<linearGradient
144
+   id="SVGID_4_"
145
+   gradientUnits="userSpaceOnUse"
146
+   x1="401.30569"
147
+   y1="181.1367"
148
+   x2="781.47711"
149
+   y2="196.0199">
150
+		<stop
151
+   offset="0"
152
+   style="stop-color:#C71F25"
153
+   id="stop103" />
154
+		<stop
155
+   offset="0.0175"
156
+   style="stop-color:#C82627"
157
+   id="stop105" />
158
+		<stop
159
+   offset="0.388"
160
+   style="stop-color:#DB8168"
161
+   id="stop107" />
162
+		<stop
163
+   offset="0.6856"
164
+   style="stop-color:#EBBEAD"
165
+   id="stop109" />
166
+		<stop
167
+   offset="0.8958"
168
+   style="stop-color:#F8E9E2"
169
+   id="stop111" />
170
+		<stop
171
+   offset="1"
172
+   style="stop-color:#FFFFFF"
173
+   id="stop113" />
174
+	</linearGradient>
175
+	<path
176
+   fill-rule="evenodd"
177
+   clip-rule="evenodd"
178
+   fill="url(#SVGID_4_)"
179
+   d="m 453.889,206.6 c 5.568,-2.128 30.863,-7.363 36.6,-9.555 -0.908,-1.62 -1.958,-7.019 -2.383,-8.787 l -6.891,-27.397 c -2.909,1.112 -6.057,1.613 -9.168,2.482 -4.766,1.332 -25.214,5.877 -27.849,7.354 1.913,3.414 7.767,32.471 9.691,35.903 z"
180
+   id="path116"
181
+   style="fill:url(#SVGID_4_)" />
182
+	<linearGradient
183
+   id="SVGID_5_"
184
+   gradientUnits="userSpaceOnUse"
185
+   x1="393.10989"
186
+   y1="296.5386"
187
+   x2="773.45508"
188
+   y2="311.42859">
189
+		<stop
190
+   offset="0"
191
+   style="stop-color:#C71F25"
192
+   id="stop118" />
193
+		<stop
194
+   offset="0.0175"
195
+   style="stop-color:#C82627"
196
+   id="stop120" />
197
+		<stop
198
+   offset="0.388"
199
+   style="stop-color:#DB8168"
200
+   id="stop122" />
201
+		<stop
202
+   offset="0.6856"
203
+   style="stop-color:#EBBEAD"
204
+   id="stop124" />
205
+		<stop
206
+   offset="0.8958"
207
+   style="stop-color:#F8E9E2"
208
+   id="stop126" />
209
+		<stop
210
+   offset="1"
211
+   style="stop-color:#FFFFFF"
212
+   id="stop128" />
213
+	</linearGradient>
214
+	<path
215
+   fill-rule="evenodd"
216
+   clip-rule="evenodd"
217
+   fill="url(#SVGID_5_)"
218
+   d="m 213.252,312.699 c 3.452,-0.509 35,-8.526 36.6,-9.555 l -8.993,-35.768 c -2.727,0.294 -6.076,1.467 -9.106,2.16 l -22.845,5.819 c -1.652,0.378 -3.504,0.949 -4.93,1.16 z"
219
+   id="path131"
220
+   style="fill:url(#SVGID_5_)" />
221
+	<linearGradient
222
+   id="SVGID_6_"
223
+   gradientUnits="userSpaceOnUse"
224
+   x1="391.8848"
225
+   y1="308.9014"
226
+   x2="772.10669"
227
+   y2="323.7865">
228
+		<stop
229
+   offset="0"
230
+   style="stop-color:#C71F25"
231
+   id="stop133" />
232
+		<stop
233
+   offset="0.0175"
234
+   style="stop-color:#C82627"
235
+   id="stop135" />
236
+		<stop
237
+   offset="0.388"
238
+   style="stop-color:#DB8168"
239
+   id="stop137" />
240
+		<stop
241
+   offset="0.6856"
242
+   style="stop-color:#EBBEAD"
243
+   id="stop139" />
244
+		<stop
245
+   offset="0.8958"
246
+   style="stop-color:#F8E9E2"
247
+   id="stop141" />
248
+		<stop
249
+   offset="1"
250
+   style="stop-color:#FFFFFF"
251
+   id="stop143" />
252
+	</linearGradient>
253
+	<path
254
+   fill-rule="evenodd"
255
+   clip-rule="evenodd"
256
+   fill="url(#SVGID_6_)"
257
+   d="m 168.437,323.559 c 4.141,-1.583 34.148,-8.182 36.6,-9.556 -0.352,-3.27 -6.444,-25.357 -7.787,-31.552 -0.343,-1.583 -0.642,-3.124 -1.487,-4.631 l -36.6,9.555 c 0.911,1.625 1.956,7.013 2.383,8.787 l 4.623,18.271 c 0.706,3.089 1.851,6.301 2.268,9.126 z"
258
+   id="path146"
259
+   style="fill:url(#SVGID_6_)" />
260
+	<linearGradient
261
+   id="SVGID_7_"
262
+   gradientUnits="userSpaceOnUse"
263
+   x1="404.82419"
264
+   y1="142.6655"
265
+   x2="785.13507"
266
+   y2="157.5542">
267
+		<stop
268
+   offset="0"
269
+   style="stop-color:#C71F25"
270
+   id="stop148" />
271
+		<stop
272
+   offset="0.0175"
273
+   style="stop-color:#C82627"
274
+   id="stop150" />
275
+		<stop
276
+   offset="0.388"
277
+   style="stop-color:#DB8168"
278
+   id="stop152" />
279
+		<stop
280
+   offset="0.6856"
281
+   style="stop-color:#EBBEAD"
282
+   id="stop154" />
283
+		<stop
284
+   offset="0.8958"
285
+   style="stop-color:#F8E9E2"
286
+   id="stop156" />
287
+		<stop
288
+   offset="1"
289
+   style="stop-color:#FFFFFF"
290
+   id="stop158" />
291
+	</linearGradient>
292
+	<path
293
+   fill-rule="evenodd"
294
+   clip-rule="evenodd"
295
+   fill="url(#SVGID_7_)"
296
+   d="m 587.075,173.056 c 1.625,-0.911 7.014,-1.956 8.787,-2.383 3.216,-0.774 5.929,-1.587 9.145,-2.361 2.87,-0.691 5.97,-1.539 9.125,-2.261 3.092,-0.708 6.304,-1.852 9.127,-2.269 -0.248,-2.304 -1.322,-6.12 -2.014,-8.715 l -4.604,-18.266 c -0.681,-2.402 -1.435,-7.022 -2.656,-9.202 -3.431,0.506 -35.021,8.539 -36.601,9.555 1.398,2.493 7.922,33.151 9.691,35.902 z"
297
+   id="path161"
298
+   style="fill:url(#SVGID_7_)" />
299
+	<linearGradient
300
+   id="SVGID_8_"
301
+   gradientUnits="userSpaceOnUse"
302
+   x1="403.31741"
303
+   y1="185.53709"
304
+   x2="783.67828"
305
+   y2="200.4277">
306
+		<stop
307
+   offset="0"
308
+   style="stop-color:#C71F25"
309
+   id="stop163" />
310
+		<stop
311
+   offset="0.0175"
312
+   style="stop-color:#C82627"
313
+   id="stop165" />
314
+		<stop
315
+   offset="0.388"
316
+   style="stop-color:#DB8168"
317
+   id="stop167" />
318
+		<stop
319
+   offset="0.6856"
320
+   style="stop-color:#EBBEAD"
321
+   id="stop169" />
322
+		<stop
323
+   offset="0.8958"
324
+   style="stop-color:#F8E9E2"
325
+   id="stop171" />
326
+		<stop
327
+   offset="1"
328
+   style="stop-color:#FFFFFF"
329
+   id="stop173" />
330
+	</linearGradient>
331
+	<path
332
+   fill-rule="evenodd"
333
+   clip-rule="evenodd"
334
+   fill="url(#SVGID_8_)"
335
+   d="m 597.507,216.342 36.881,-9.139 c -0.336,-2.278 -1.566,-6.283 -2.193,-8.75 -0.764,-3.003 -1.608,-5.874 -2.357,-9.144 l -4.723,-18.29 c -3.431,0.506 -35.02,8.539 -36.601,9.555 z"
336
+   id="path176"
337
+   style="fill:url(#SVGID_8_)" />
338
+	<linearGradient
339
+   id="SVGID_9_"
340
+   gradientUnits="userSpaceOnUse"
341
+   x1="401.01071"
342
+   y1="211.2813"
343
+   x2="781.22937"
344
+   y2="226.16631">
345
+		<stop
346
+   offset="0"
347
+   style="stop-color:#C71F25"
348
+   id="stop178" />
349
+		<stop
350
+   offset="0.0175"
351
+   style="stop-color:#C82627"
352
+   id="stop180" />
353
+		<stop
354
+   offset="0.388"
355
+   style="stop-color:#DB8168"
356
+   id="stop182" />
357
+		<stop
358
+   offset="0.6856"
359
+   style="stop-color:#EBBEAD"
360
+   id="stop184" />
361
+		<stop
362
+   offset="0.8958"
363
+   style="stop-color:#F8E9E2"
364
+   id="stop186" />
365
+		<stop
366
+   offset="1"
367
+   style="stop-color:#FFFFFF"
368
+   id="stop188" />
369
+	</linearGradient>
370
+	<path
371
+   fill-rule="evenodd"
372
+   clip-rule="evenodd"
373
+   fill="url(#SVGID_9_)"
374
+   d="m 508.438,238.891 27.399,-6.906 c 1.608,-0.451 2.753,-0.617 4.557,-1.099 2.064,-0.551 3.072,-0.934 4.926,-1.133 l -4.634,-18.272 c -0.665,-3.013 -3.833,-16.386 -4.922,-18.328 -1.923,1.078 -15.151,4.235 -17.951,4.845 -3.17,0.691 -16.221,3.745 -18.367,5.126 l 6.724,26.641 c 0.707,3.09 1.851,6.303 2.268,9.126 z"
375
+   id="path191"
376
+   style="fill:url(#SVGID_9_)" />
377
+	<linearGradient
378
+   id="SVGID_10_"
379
+   gradientUnits="userSpaceOnUse"
380
+   x1="402.44431"
381
+   y1="168.60941"
382
+   x2="782.75848"
383
+   y2="183.49809">
384
+		<stop
385
+   offset="0"
386
+   style="stop-color:#C71F25"
387
+   id="stop193" />
388
+		<stop
389
+   offset="0.0175"
390
+   style="stop-color:#C82627"
391
+   id="stop195" />
392
+		<stop
393
+   offset="0.388"
394
+   style="stop-color:#DB8168"
395
+   id="stop197" />
396
+		<stop
397
+   offset="0.6856"
398
+   style="stop-color:#EBBEAD"
399
+   id="stop199" />
400
+		<stop
401
+   offset="0.8958"
402
+   style="stop-color:#F8E9E2"
403
+   id="stop201" />
404
+		<stop
405
+   offset="1"
406
+   style="stop-color:#FFFFFF"
407
+   id="stop203" />
408
+	</linearGradient>
409
+	<path
410
+   fill-rule="evenodd"
411
+   clip-rule="evenodd"
412
+   fill="url(#SVGID_10_)"
413
+   d="m 498.007,195.606 c 1.255,-0.704 32.567,-8.884 36.184,-9.274 -0.267,-2.476 -1.263,-5.948 -2.025,-8.718 l -2.327,-9.138 c -0.671,-3.041 -3.793,-16.314 -4.922,-18.328 -4.277,0.46 -34.993,8.521 -36.601,9.555 0.939,1.675 3.868,14.754 4.76,17.935 1.059,3.779 3.487,15.724 4.931,17.968 z"
414
+   id="path206"
415
+   style="fill:url(#SVGID_10_)" />
416
+	<linearGradient
417
+   id="SVGID_11_"
418
+   gradientUnits="userSpaceOnUse"
419
+   x1="396.9863"
420
+   y1="227.6694"
421
+   x2="777.33148"
422
+   y2="242.5594">
423
+		<stop
424
+   offset="0"
425
+   style="stop-color:#C71F25"
426
+   id="stop208" />
427
+		<stop
428
+   offset="0.0175"
429
+   style="stop-color:#C82627"
430
+   id="stop210" />
431
+		<stop
432
+   offset="0.388"
433
+   style="stop-color:#DB8168"
434
+   id="stop212" />
435
+		<stop
436
+   offset="0.6856"
437
+   style="stop-color:#EBBEAD"
438
+   id="stop214" />
439
+		<stop
440
+   offset="0.8958"
441
+   style="stop-color:#F8E9E2"
442
+   id="stop216" />
443
+		<stop
444
+   offset="1"
445
+   style="stop-color:#FFFFFF"
446
+   id="stop218" />
447
+	</linearGradient>
448
+	<path
449
+   fill-rule="evenodd"
450
+   clip-rule="evenodd"
451
+   fill="url(#SVGID_11_)"
452
+   d="m 291.192,246.729 18.232,-4.429 c 2.981,-0.65 5.991,-1.441 9.134,-2.306 1.856,-0.511 2.7,-0.588 4.557,-1.098 1.812,-0.498 3.514,-0.754 4.958,-1.306 -0.5,-1.31 -0.712,-2.848 -1.086,-4.192 -0.498,-1.784 -0.676,-2.86 -1.107,-4.558 -0.764,-3.004 -1.609,-5.875 -2.357,-9.144 -0.722,-3.155 -1.569,-6.255 -2.261,-9.125 l -2.462,-9.164 -27.4,6.906 c -2.453,0.688 -6.807,1.308 -9.2,2.649 z"
453
+   id="path221"
454
+   style="fill:url(#SVGID_11_)" />
455
+	<linearGradient
456
+   id="SVGID_12_"
457
+   gradientUnits="userSpaceOnUse"
458
+   x1="395.73489"
459
+   y1="240.7334"
460
+   x2="775.95679"
461
+   y2="255.6185">
462
+		<stop
463
+   offset="0"
464
+   style="stop-color:#C71F25"
465
+   id="stop223" />
466
+		<stop
467
+   offset="0.0175"
468
+   style="stop-color:#C82627"
469
+   id="stop225" />
470
+		<stop
471
+   offset="0.388"
472
+   style="stop-color:#DB8168"
473
+   id="stop227" />
474
+		<stop
475
+   offset="0.6856"
476
+   style="stop-color:#EBBEAD"
477
+   id="stop229" />
478
+		<stop
479
+   offset="0.8958"
480
+   style="stop-color:#F8E9E2"
481
+   id="stop231" />
482
+		<stop
483
+   offset="1"
484
+   style="stop-color:#FFFFFF"
485
+   id="stop233" />
486
+	</linearGradient>
487
+	<path
488
+   fill-rule="evenodd"
489
+   clip-rule="evenodd"
490
+   fill="url(#SVGID_12_)"
491
+   d="m 246.241,258.286 27.417,-6.992 c 1.899,-0.414 7.537,-1.64 9.184,-2.563 l -9.274,-36.184 -32.025,8.362 c -1.802,0.455 -2.727,0.487 -4.575,1.193 1.869,4.893 7.728,32.141 9.273,36.184 z"
492
+   id="path236"
493
+   style="fill:url(#SVGID_12_)" />
494
+	<linearGradient
495
+   id="SVGID_13_"
496
+   gradientUnits="userSpaceOnUse"
497
+   x1="394.2793"
498
+   y1="283.86429"
499
+   x2="774.63239"
500
+   y2="298.75449">
501
+		<stop
502
+   offset="0"
503
+   style="stop-color:#C71F25"
504
+   id="stop238" />
505
+		<stop
506
+   offset="0.0175"
507
+   style="stop-color:#C82627"
508
+   id="stop240" />
509
+		<stop
510
+   offset="0.388"
511
+   style="stop-color:#DB8168"
512
+   id="stop242" />
513
+		<stop
514
+   offset="0.6856"
515
+   style="stop-color:#EBBEAD"
516
+   id="stop244" />
517
+		<stop
518
+   offset="0.8958"
519
+   style="stop-color:#F8E9E2"
520
+   id="stop246" />
521
+		<stop
522
+   offset="1"
523
+   style="stop-color:#FFFFFF"
524
+   id="stop248" />
525
+	</linearGradient>
526
+	<path
527
+   fill-rule="evenodd"
528
+   clip-rule="evenodd"
529
+   fill="url(#SVGID_13_)"
530
+   d="m 257.37,301.706 c 1.419,-0.542 2.925,-0.724 4.574,-1.189 4.596,-1.297 29.84,-7.141 32.026,-8.367 -1.014,-2.654 -1.688,-6.098 -2.37,-8.784 l -4.5,-17.884 c -0.512,-1.857 -0.584,-2.7 -1.098,-4.557 -0.541,-1.955 -0.838,-2.811 -1.024,-4.542 -4.027,0.434 -21.784,5.421 -27.359,6.698 -1.753,0.401 -2.747,0.664 -4.565,1.146 -2.021,0.537 -3.027,0.558 -4.957,1.295 0.392,2.654 1.5,5.919 2.181,8.748 0.685,2.842 1.373,6.031 2.223,9.118 z"
531
+   id="path251"
532
+   style="fill:url(#SVGID_13_)" />
533
+	<linearGradient
534
+   id="SVGID_14_"
535
+   gradientUnits="userSpaceOnUse"
536
+   x1="402.17291"
537
+   y1="198.606"
538
+   x2="782.39478"
539
+   y2="213.4911">
540
+		<stop
541
+   offset="0"
542
+   style="stop-color:#C71F25"
543
+   id="stop253" />
544
+		<stop
545
+   offset="0.0175"
546
+   style="stop-color:#C82627"
547
+   id="stop255" />
548
+		<stop
549
+   offset="0.388"
550
+   style="stop-color:#DB8168"
551
+   id="stop257" />
552
+		<stop
553
+   offset="0.6856"
554
+   style="stop-color:#EBBEAD"
555
+   id="stop259" />
556
+		<stop
557
+   offset="0.8958"
558
+   style="stop-color:#F8E9E2"
559
+   id="stop261" />
560
+		<stop
561
+   offset="1"
562
+   style="stop-color:#FFFFFF"
563
+   id="stop263" />
564
+	</linearGradient>
565
+	<path
566
+   fill-rule="evenodd"
567
+   clip-rule="evenodd"
568
+   fill="url(#SVGID_14_)"
569
+   d="m 552.556,227.897 c 1.845,-0.705 2.772,-0.741 4.575,-1.193 l 32.025,-8.362 -9.274,-36.184 c -1.744,0.978 -7.053,1.938 -9.167,2.475 l -27.434,7.08 z"
570
+   id="path266"
571
+   style="fill:url(#SVGID_14_)" />
572
+	<linearGradient
573
+   id="SVGID_15_"
574
+   gradientUnits="userSpaceOnUse"
575
+   x1="403.62399"
576
+   y1="155.52879"
577
+   x2="783.93488"
578
+   y2="170.4174">
579
+		<stop
580
+   offset="0"
581
+   style="stop-color:#C71F25"
582
+   id="stop268" />
583
+		<stop
584
+   offset="0.0175"
585
+   style="stop-color:#C82627"
586
+   id="stop270" />
587
+		<stop
588
+   offset="0.388"
589
+   style="stop-color:#DB8168"
590
+   id="stop272" />
591
+		<stop
592
+   offset="0.6856"
593
+   style="stop-color:#EBBEAD"
594
+   id="stop274" />
595
+		<stop
596
+   offset="0.8958"
597
+   style="stop-color:#F8E9E2"
598
+   id="stop276" />
599
+		<stop
600
+   offset="1"
601
+   style="stop-color:#FFFFFF"
602
+   id="stop278" />
603
+	</linearGradient>
604
+	<path
605
+   fill-rule="evenodd"
606
+   clip-rule="evenodd"
607
+   fill="url(#SVGID_15_)"
608
+   d="m 541.844,184.196 18.248,-4.51 c 3.175,-0.888 5.942,-1.609 9.148,-2.381 1.997,-0.481 7.274,-1.423 9.203,-2.664 -1.397,-2.493 -7.921,-33.151 -9.69,-35.902 -1.625,0.911 -7.014,1.956 -8.787,2.383 -3.216,0.775 -5.929,1.587 -9.145,2.362 l -18.252,4.529 z"
609
+   id="path281"
610
+   style="fill:url(#SVGID_15_)" />
611
+	<linearGradient
612
+   id="SVGID_16_"
613
+   gradientUnits="userSpaceOnUse"
614
+   x1="393.44919"
615
+   y1="266.2886"
616
+   x2="773.80231"
617
+   y2="281.17889">
618
+		<stop
619
+   offset="0"
620
+   style="stop-color:#C71F25"
621
+   id="stop283" />
622
+		<stop
623
+   offset="0.0175"
624
+   style="stop-color:#C82627"
625
+   id="stop285" />
626
+		<stop
627
+   offset="0.388"
628
+   style="stop-color:#DB8168"
629
+   id="stop287" />
630
+		<stop
631
+   offset="0.6856"
632
+   style="stop-color:#EBBEAD"
633
+   id="stop289" />
634
+		<stop
635
+   offset="0.8958"
636
+   style="stop-color:#F8E9E2"
637
+   id="stop291" />
638
+		<stop
639
+   offset="1"
640
+   style="stop-color:#FFFFFF"
641
+   id="stop293" />
642
+	</linearGradient>
643
+	<path
644
+   fill-rule="evenodd"
645
+   clip-rule="evenodd"
646
+   fill="url(#SVGID_16_)"
647
+   d="m 158.005,280.273 36.882,-9.139 -4.405,-17.866 c -0.885,-3.213 -1.633,-6.13 -2.395,-9.151 -0.531,-2.105 -1.501,-7.431 -2.474,-9.167 l -36.6,9.555 c 1.014,2.654 1.688,6.098 2.37,8.784 l 5.598,22.441 c 0.54,1.956 0.838,2.812 1.024,4.543 z"
648
+   id="path296"
649
+   style="fill:url(#SVGID_16_)" />
650
+	<polygon
651
+   fill-rule="evenodd"
652
+   clip-rule="evenodd"
653
+   fill="#07a684"
654
+   points="113.586,297.775 536.67,304.974 552.485,333.67 568.795,282.412 589.803,401.253 619.59,241.365 630.455,311.692 678.414,310.542 638.408,302.862 619.083,199.136 590.676,355.724 571.278,247.05 550.312,312.566 538.481,293.595 "
655
+   id="polygon298" />
656
+	<path
657
+   fill-rule="evenodd"
658
+   clip-rule="evenodd"
659
+   fill="#46559f"
660
+   d="m 274.562,230.549 c 0,57.098 5.361,107.248 40.02,155.896 11.328,15.901 34.279,36.627 51.874,46.145 8.764,3.648 12.128,1.34 19.425,-2.722 18.741,-11.595 34.303,-26.762 47.408,-44.097 17.153,-22.691 26.896,-45.519 33.583,-75.289 4.882,-21.731 6.138,-56.203 6.138,-79.994 -17.925,-4.115 -35.557,-5.415 -53.137,-11.008 -15.59,-4.959 -31.373,-11.585 -46.149,-19.578 -14.282,8.249 -31.738,15.253 -46.68,19.877 -8.253,2.554 -16.787,4.629 -25.62,6.185 -8.225,1.449 -19.524,2.59 -26.862,4.585 z"
661
+   id="path300" />
662
+	<path
663
+   fill-rule="evenodd"
664
+   clip-rule="evenodd"
665
+   fill="#ffffff"
666
+   d="m 288.361,241.436 c 26.809,-3.985 41.84,-6.749 65.636,-17.235 2.801,-1.234 17.889,-8.598 19.464,-8.65 1.135,-0.038 32.395,14.068 38.752,16.184 12.618,4.2 32.501,8.164 46.442,9.702 -1.584,61.138 -3.741,96.915 -39.227,142.569 -6.339,8.154 -36.871,36.49 -45.973,36.42 -8.401,-0.065 -30.688,-20.519 -37.528,-27.653 -7.415,-7.732 -8.352,-8.023 -15.078,-17.626 C 292.344,334.454 288.426,296.1 288.361,241.436 Z m -6.317,-4.456 c -0.843,62.707 9.403,119.281 51.383,161.188 4.278,4.271 32.825,29.88 41.574,28.299 13.727,-2.48 44.578,-32.924 55.776,-48.456 30.212,-41.899 34.528,-85.074 34.798,-141.227 -24.978,-3.104 -49.407,-8.387 -71.459,-18.756 -12.623,-5.464 -16.672,-7.727 -20.615,-8.564 -4.619,1.351 -7.855,3.494 -20.475,8.886 -30.451,14.067 -42.425,11.608 -70.982,18.63 z"
667
+   id="path302" />
668
+	<linearGradient
669
+   id="SVGID_17_"
670
+   gradientUnits="userSpaceOnUse"
671
+   x1="361.022"
672
+   y1="318.25781"
673
+   x2="805.86371"
674
+   y2="318.25781">
675
+		<stop
676
+   offset="0"
677
+   style="stop-color:#46559F"
678
+   id="stop304" />
679
+		<stop
680
+   offset="0.28"
681
+   style="stop-color:#FFFFFF"
682
+   id="stop306" />
683
+		<stop
684
+   offset="1"
685
+   style="stop-color:#FFFFFF"
686
+   id="stop308" />
687
+	</linearGradient>
688
+	
689
+		<path
690
+   fill-rule="evenodd"
691
+   clip-rule="evenodd"
692
+   fill="url(#SVGID_17_)"
693
+   stroke="#46559f"
694
+   stroke-width="0.216"
695
+   stroke-miterlimit="2.6131"
696
+   d="m 376.992,415.69 c 34.036,-19.377 57.598,-51.85 69.187,-87.665 4.077,-12.604 6.11,-26.48 7.541,-40.086 2.427,-23.09 4.077,-41.459 -0.947,-43.069 -10.205,-3.271 -27.228,-5.531 -42.18,-11.183 -15.101,-4.463 -36.881,-19.732 -36.934,-9.614 -0.097,18.452 -0.014,170.067 0.552,190.465 0.043,1.542 2.368,1.39 2.781,1.152 z"
697
+   id="path311"
698
+   style="fill:url(#SVGID_17_)" />
699
+</g></g><g
700
+     aria-label="System Health and Security Probe"
701
+     transform="translate(-61.024282,-30.925505)"
702
+     id="text847"
703
+     style="font-weight:bold;font-size:42.6667px;line-height:1.25;font-family:Inter;-inkscape-font-specification:'Inter, Bold';letter-spacing:0.7px;word-spacing:0px;white-space:pre;shape-inside:url(#rect849);shape-padding:0.146955;display:inline"><path
704
+       d="m 73.525625,559.63431 q -3.413336,0 -6.357338,-0.72533 -2.901336,-0.768 -4.77867,-2.09067 -0.725334,-0.55467 -1.066668,-1.152 -0.298667,-0.59733 -0.298667,-1.536 0,-1.28 0.768001,-2.21867 0.768001,-0.93867 1.792001,-0.93867 0.554667,0 1.066668,0.17067 0.512,0.17067 1.280001,0.64 1.749334,0.98133 3.456002,1.408 1.749335,0.42667 3.925337,0.42667 2.517335,0 3.797336,-0.72534 1.322667,-0.768 1.322667,-2.21866 0,-0.98134 -1.237334,-1.66401 -1.194667,-0.72533 -4.608003,-1.408 -4.224003,-0.896 -6.613339,-2.13333 -2.389335,-1.23734 -3.370669,-2.90134 -0.938667,-1.70666 -0.938667,-4.096 0,-2.73067 1.621334,-4.94934 1.621335,-2.21866 4.437337,-3.456 2.858669,-1.28 6.400005,-1.28 3.114669,0 5.546671,0.68267 2.432001,0.68266 4.437336,2.13333 0.768001,0.55467 1.066668,1.19467 0.341333,0.59733 0.341333,1.49333 0,1.28 -0.768,2.21867 -0.725334,0.93867 -1.749335,0.93867 -0.554667,0 -1.024001,-0.128 -0.469333,-0.17067 -1.322667,-0.68267 -0.213334,-0.128 -1.237335,-0.64 -0.981334,-0.55467 -2.346668,-0.85333 -1.322668,-0.34134 -2.901335,-0.34134 -2.176002,0 -3.49867,0.85334 -1.322667,0.81067 -1.322667,2.176 0,0.81067 0.469333,1.32267 0.469334,0.512 1.749335,1.024 1.280001,0.46933 3.797336,0.98133 4.096003,0.896 6.442672,2.176 2.346668,1.23734 3.328002,2.90134 0.981334,1.664 0.981334,3.92534 0,2.816 -1.578668,4.992 -1.578668,2.13333 -4.437336,3.328 -2.816002,1.152 -6.570672,1.152 z"
705
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
706
+       id="path8332" /><path
707
+       d="m 104.30564,539.96496 q 0.46934,-1.06666 1.28,-1.57866 0.81067,-0.512 1.79201,-0.512 1.408,0 2.51733,0.93866 1.10933,0.93867 1.10933,2.26134 0,0.72533 -0.34133,1.408 l -11.306674,22.65602 q -0.512,1.06666 -1.365334,1.57866 -0.810667,0.51201 -1.792001,0.51201 -1.408002,0 -2.517336,-0.93867 -1.066667,-0.896 -1.066667,-2.21867 0,-0.72533 0.384,-1.49333 l 2.773336,-5.58934 -7.253339,-14.50668 q -0.341334,-0.768 -0.341334,-1.36533 0,-1.36534 1.194668,-2.30401 1.194667,-0.98133 2.688002,-0.98133 1.024001,0 1.877335,0.55467 0.896,0.512 1.365334,1.57866 l 4.52267,9.81335 z"
708
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
709
+       id="path8334" /><path
710
+       d="m 122.15768,559.59165 q -2.85867,0 -4.82133,-0.42667 -1.96267,-0.42667 -3.45601,-1.36534 -0.59733,-0.29866 -0.93866,-1.024 -0.34134,-0.72533 -0.34134,-1.62133 0,-1.152 0.59734,-1.87734 0.64,-0.768 1.57866,-0.768 0.64,0 1.19467,0.17067 0.55467,0.128 1.36534,0.46933 1.36533,0.46934 2.38933,0.72534 1.06667,0.256 2.688,0.256 1.152,0 1.792,-0.29867 0.68267,-0.34133 0.68267,-0.93867 0,-0.46933 -0.34133,-0.72533 -0.29867,-0.256 -1.19467,-0.46933 -0.896,-0.256 -3.02934,-0.68267 -3.79733,-0.72533 -5.504,-2.176 -1.664,-1.49334 -1.664,-4.18134 0,-1.96267 1.19467,-3.54133 1.23733,-1.57867 3.37067,-2.47467 2.13333,-0.896 4.77867,-0.896 1.92,0 3.712,0.46933 1.83467,0.46933 3.24267,1.32267 1.32267,0.768 1.32267,2.47467 0,1.19466 -0.64001,2.00533 -0.64,0.81067 -1.57866,0.81067 -1.10934,0 -2.64534,-0.72534 -1.024,-0.46933 -1.83467,-0.68266 -0.768,-0.256 -1.83466,-0.256 -1.06667,0 -1.66401,0.34133 -0.59733,0.29867 -0.59733,0.896 0,0.68267 0.81067,1.06667 0.85333,0.384 3.328,0.85333 4.13867,0.72534 5.84534,2.21867 1.70667,1.45067 1.70667,4.224 0,3.11467 -2.60267,4.99201 -2.56,1.83467 -6.91201,1.83467 z"
711
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
712
+       id="path8336" /><path
713
+       d="m 147.68972,554.08764 q 2.85867,0.17067 2.85867,2.56 0,1.49334 -1.152,2.21867 -1.152,0.72534 -3.28533,0.59734 l -1.19467,-0.0853 q -3.84,-0.29866 -5.84534,-2.304 -1.96267,-2.048 -1.96267,-5.67467 v -7.55201 h -1.23733 q -3.41334,0 -3.41334,-2.816 0,-2.77333 3.41334,-2.77333 h 1.23733 v -2.77334 q 0,-1.62133 1.024,-2.56 1.024,-0.98133 2.77334,-0.98133 1.74933,0 2.77333,0.98133 1.024,0.93867 1.024,2.56 v 2.77334 h 2.34667 q 3.41334,0 3.41334,2.77333 0,2.816 -3.41334,2.816 h -2.34667 v 8.19201 q 0,0.81067 0.46934,1.36533 0.512,0.55467 1.28,0.59734 z"
714
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
715
+       id="path8338" /><path
716
+       d="m 170.32044,552.50897 q 0.98134,0 1.57867,0.768 0.64,0.76801 0.64,2.00534 0,1.70667 -1.664,2.60267 -1.45067,0.72533 -3.456,1.23733 -1.96267,0.46934 -3.62667,0.46934 -3.49867,0 -6.10134,-1.32267 -2.60267,-1.32267 -4.01067,-3.79734 -1.408,-2.47467 -1.408,-5.80267 0,-3.15733 1.32267,-5.632 1.36533,-2.51734 3.75467,-3.88267 2.432,-1.408 5.46133,-1.408 2.94401,0 5.16267,1.28 2.21867,1.28 3.41334,3.62667 1.23733,2.34667 1.23733,5.504 0,0.98133 -0.46933,1.536 -0.42667,0.512 -1.28,0.512 H 159.6111 q 0.29867,2.048 1.32267,2.944 1.024,0.89601 3.02933,0.89601 1.06667,0 1.96267,-0.21334 0.896,-0.256 2.00534,-0.68267 0.64,-0.256 1.23733,-0.42666 0.64,-0.21334 1.152,-0.21334 z m -7.296,-9.64267 q -1.49334,0 -2.38934,0.98133 -0.896,0.93867 -1.06667,2.77334 h 6.69868 q -0.256,-3.75467 -3.24267,-3.75467 z"
717
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
718
+       id="path8340" /><path
719
+       d="m 203.57512,537.7463 q 3.45601,0 5.33334,2.09066 1.87733,2.04801 1.87733,6.95468 v 9.216 q 0,1.74934 -1.10933,2.64534 -1.06667,0.85333 -2.688,0.85333 -1.62134,0 -2.73067,-0.85333 -1.06667,-0.896 -1.06667,-2.64534 v -9.38667 q 0,-1.70667 -0.59733,-2.38934 -0.59734,-0.68266 -1.74934,-0.68266 -1.49333,0 -2.38933,1.06666 -0.896,1.06667 -0.896,2.94401 v 8.448 q 0,1.74934 -1.06667,2.64534 -1.06667,0.85333 -2.73067,0.85333 -1.62133,0 -2.73067,-0.85333 -1.06666,-0.896 -1.06666,-2.64534 v -9.38667 q 0,-1.70667 -0.59734,-2.38934 -0.59733,-0.68266 -1.74933,-0.68266 -1.49334,0 -2.38934,1.06666 -0.85333,1.06667 -0.85333,2.94401 v 8.448 q 0,1.74934 -1.10934,2.64534 -1.06666,0.85333 -2.688,0.85333 -1.62133,0 -2.73067,-0.85333 -1.06666,-0.896 -1.06666,-2.64534 v -14.76267 q 0,-1.66401 1.10933,-2.51734 1.152,-0.896 2.73067,-0.896 1.49333,0 2.47467,0.81067 1.024,0.768 1.06666,2.26133 2.09067,-3.15733 6.40001,-3.15733 4.56534,0 6.10134,3.712 1.06666,-1.70667 2.85867,-2.688 1.792,-1.024 4.05333,-1.024 z"
720
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
721
+       id="path8342" /><path
722
+       d="m 252.9751,528.95696 q 1.74934,0 2.77334,1.06666 1.06667,1.024 1.06667,2.77334 v 22.82668 q 0,1.74934 -1.06667,2.81601 -1.024,1.06666 -2.77334,1.06666 -1.74933,0 -2.816,-1.024 -1.024,-1.06667 -1.024,-2.85867 v -8.53334 h -12.28801 v 8.53334 q 0,1.74934 -1.06667,2.81601 -1.024,1.06666 -2.77333,1.06666 -1.74934,0 -2.816,-1.024 -1.024,-1.06667 -1.024,-2.85867 v -22.82668 q 0,-1.74934 1.024,-2.77334 1.06666,-1.06666 2.816,-1.06666 1.74933,0 2.77333,1.06666 1.06667,1.024 1.06667,2.77334 v 8.06401 h 12.28801 v -8.06401 q 0,-1.74934 1.024,-2.77334 1.06667,-1.06666 2.816,-1.06666 z"
723
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
724
+       id="path8344" /><path
725
+       d="m 279.53117,552.50897 q 0.98133,0 1.57866,0.768 0.64001,0.76801 0.64001,2.00534 0,1.70667 -1.66401,2.60267 -1.45066,0.72533 -3.456,1.23733 -1.96267,0.46934 -3.62667,0.46934 -3.49867,0 -6.10134,-1.32267 -2.60266,-1.32267 -4.01067,-3.79734 -1.408,-2.47467 -1.408,-5.80267 0,-3.15733 1.32267,-5.632 1.36534,-2.51734 3.75467,-3.88267 2.432,-1.408 5.46134,-1.408 2.944,0 5.16267,1.28 2.21867,1.28 3.41333,3.62667 1.23734,2.34667 1.23734,5.504 0,0.98133 -0.46934,1.536 -0.42666,0.512 -1.28,0.512 h -11.264 q 0.29866,2.048 1.32266,2.944 1.024,0.89601 3.02934,0.89601 1.06667,0 1.96267,-0.21334 0.896,-0.256 2.00533,-0.68267 0.64,-0.256 1.23734,-0.42666 0.64,-0.21334 1.152,-0.21334 z m -7.29601,-9.64267 q -1.49333,0 -2.38933,0.98133 -0.896,0.93867 -1.06667,2.77334 h 6.69867 q -0.256,-3.75467 -3.24267,-3.75467 z"
726
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
727
+       id="path8346" /><path
728
+       d="m 295.76183,537.7463 q 4.86401,0 7.16801,2.34666 2.34667,2.30401 2.34667,7.04001 v 8.91734 q 0,1.62133 -0.98134,2.56 -0.93866,0.896 -2.64533,0.896 -1.49334,0 -2.47467,-0.85333 -0.93867,-0.85334 -1.024,-2.304 -0.59733,1.536 -2.00534,2.38933 -1.408,0.85334 -3.37067,0.85334 -2.176,0 -3.92533,-0.85334 -1.74934,-0.896 -2.77334,-2.432 -0.98133,-1.57867 -0.98133,-3.54134 0,-2.26133 1.152,-3.584 1.19467,-1.36533 3.75467,-1.96267 2.56,-0.59733 6.912,-0.59733 h 1.15201 v -0.512 q 0,-1.49334 -0.68267,-2.13334 -0.68267,-0.68266 -2.304,-0.68266 -1.74934,0 -5.12001,1.19466 -0.98133,0.34134 -1.664,0.34134 -1.06667,0 -1.70667,-0.768 -0.64,-0.768 -0.64,-2.00534 0,-0.93866 0.384,-1.536 0.384,-0.59733 1.23734,-1.06667 1.49333,-0.768 3.75467,-1.23733 2.26133,-0.46933 4.43733,-0.46933 z m -1.19466,16.76801 q 1.536,0 2.51733,-1.06667 0.98134,-1.10933 0.98134,-2.816 v -0.512 h -0.68267 q -2.73067,0 -3.88267,0.512 -1.152,0.46933 -1.152,1.62133 0,0.98134 0.59733,1.62134 0.64,0.64 1.62134,0.64 z"
729
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
730
+       id="path8348" /><path
731
+       d="m 314.04051,559.50631 q -1.62133,0 -2.73067,-0.85333 -1.06667,-0.896 -1.06667,-2.64534 v -23.50935 q 0,-1.74933 1.06667,-2.64533 1.10934,-0.896 2.73067,-0.896 1.62133,0 2.688,0.896 1.10934,0.896 1.10934,2.64533 v 23.50935 q 0,1.74934 -1.10934,2.64534 -1.06667,0.85333 -2.688,0.85333 z"
732
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
733
+       id="path8350" /><path
734
+       d="m 336.88449,554.08764 q 2.85867,0.17067 2.85867,2.56 0,1.49334 -1.152,2.21867 -1.152,0.72534 -3.28533,0.59734 l -1.19467,-0.0853 q -3.84,-0.29866 -5.84534,-2.304 -1.96267,-2.048 -1.96267,-5.67467 v -7.55201 h -1.23733 q -3.41334,0 -3.41334,-2.816 0,-2.77333 3.41334,-2.77333 h 1.23733 v -2.77334 q 0,-1.62133 1.024,-2.56 1.024,-0.98133 2.77334,-0.98133 1.74933,0 2.77333,0.98133 1.02401,0.93867 1.02401,2.56 v 2.77334 h 2.34666 q 3.41334,0 3.41334,2.77333 0,2.816 -3.41334,2.816 h -2.34666 v 8.19201 q 0,0.81067 0.46933,1.36533 0.512,0.55467 1.28,0.59734 z"
735
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
736
+       id="path8352" /><path
737
+       d="m 356.74187,537.7463 q 3.66934,0 5.46134,2.26133 1.792,2.21867 1.792,6.78401 v 9.216 q 0,1.62134 -1.024,2.56001 -1.024,0.93866 -2.77334,0.93866 -1.74933,0 -2.77333,-0.93866 -1.024,-0.93867 -1.024,-2.56001 v -9.38667 q 0,-3.072 -2.64534,-3.072 -1.70667,0 -2.73067,1.10933 -0.98133,1.06667 -0.98133,2.90134 v 8.448 q 0,1.62134 -1.024,2.56001 -1.024,0.93866 -2.77334,0.93866 -1.74933,0 -2.77333,-0.93866 -1.024,-0.93867 -1.024,-2.56001 v -23.63735 q 0,-1.49333 1.06666,-2.432 1.06667,-0.98133 2.81601,-0.98133 1.664,0 2.688,0.896 1.024,0.896 1.024,2.38933 v 8.53334 q 1.152,-1.49333 2.85867,-2.26133 1.70667,-0.768 3.84,-0.768 z"
738
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
739
+       id="path8354" /><path
740
+       d="m 391.63519,537.7463 q 4.864,0 7.168,2.34666 2.34667,2.30401 2.34667,7.04001 v 8.91734 q 0,1.62133 -0.98133,2.56 -0.93867,0.896 -2.64534,0.896 -1.49333,0 -2.47467,-0.85333 -0.93867,-0.85334 -1.024,-2.304 -0.59733,1.536 -2.00533,2.38933 -1.408,0.85334 -3.37067,0.85334 -2.176,0 -3.92534,-0.85334 -1.74933,-0.896 -2.77333,-2.432 -0.98134,-1.57867 -0.98134,-3.54134 0,-2.26133 1.152,-3.584 1.19467,-1.36533 3.75467,-1.96267 2.56,-0.59733 6.91201,-0.59733 h 1.152 v -0.512 q 0,-1.49334 -0.68267,-2.13334 -0.68267,-0.68266 -2.304,-0.68266 -1.74934,0 -5.12001,1.19466 -0.98133,0.34134 -1.664,0.34134 -1.06666,0 -1.70666,-0.768 -0.64,-0.768 -0.64,-2.00534 0,-0.93866 0.384,-1.536 0.384,-0.59733 1.23733,-1.06667 1.49333,-0.768 3.75467,-1.23733 2.26133,-0.46933 4.43734,-0.46933 z m -1.19467,16.76801 q 1.536,0 2.51733,-1.06667 0.98134,-1.10933 0.98134,-2.816 v -0.512 h -0.68267 q -2.73067,0 -3.88267,0.512 -1.152,0.46933 -1.152,1.62133 0,0.98134 0.59733,1.62134 0.64,0.64 1.62134,0.64 z"
741
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
742
+       id="path8356" /><path
743
+       d="m 420.2392,537.7463 q 3.75467,0 5.58934,2.26133 1.83467,2.21867 1.83467,6.78401 v 9.216 q 0,1.62134 -1.024,2.56001 -1.024,0.93866 -2.77334,0.93866 -1.74933,0 -2.77333,-0.93866 -1.024,-0.93867 -1.024,-2.56001 v -8.87467 q 0,-1.87733 -0.68267,-2.73067 -0.64,-0.85333 -1.96267,-0.85333 -1.70667,0 -2.73067,1.10933 -0.98133,1.06667 -0.98133,2.90134 v 8.448 q 0,1.62134 -1.024,2.56001 -1.024,0.93866 -2.77334,0.93866 -1.74933,0 -2.77333,-0.93866 -1.024,-0.93867 -1.024,-2.56001 v -14.76267 q 0,-1.49334 1.06666,-2.43201 1.06667,-0.98133 2.77334,-0.98133 1.62133,0 2.56,0.896 0.98133,0.896 0.98133,2.34667 1.10934,-1.62134 2.85867,-2.47467 1.74934,-0.85333 3.88267,-0.85333 z"
744
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
745
+       id="path8358" /><path
746
+       d="m 450.97654,528.95696 q 1.70667,0 2.77334,0.98133 1.10933,0.93867 1.10933,2.432 v 23.63735 q 0,1.62134 -1.024,2.56001 -1.024,0.93866 -2.73067,0.93866 -1.57867,0 -2.60267,-0.81066 -0.98133,-0.85334 -1.10933,-2.30401 -0.896,1.49334 -2.64534,2.34667 -1.70666,0.85334 -3.79733,0.85334 -2.688,0 -4.82134,-1.36534 -2.09067,-1.408 -3.28533,-3.92533 -1.19467,-2.51734 -1.19467,-5.76001 0,-3.24267 1.152,-5.67467 1.19467,-2.47467 3.28533,-3.79734 2.13334,-1.32266 4.86401,-1.32266 2.00533,0 3.66933,0.81066 1.70667,0.81067 2.64534,2.17601 v -8.49068 q 0,-1.49333 0.98133,-2.38933 1.024,-0.896 2.73067,-0.896 z m -7.72267,24.96002 q 2.00533,0 3.072,-1.36534 1.06667,-1.36533 1.06667,-3.92534 0,-2.51733 -1.06667,-3.84 -1.06667,-1.36533 -3.072,-1.36533 -1.96267,0 -3.02934,1.32267 -1.06666,1.32266 -1.06666,3.79733 0,2.56 1.06666,3.968 1.10934,1.40801 3.02934,1.40801 z"
747
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
748
+       id="path8360" /><path
749
+       d="m 484.71789,559.63431 q -3.41334,0 -6.35734,-0.72533 -2.90134,-0.768 -4.77867,-2.09067 -0.72534,-0.55467 -1.06667,-1.152 -0.29867,-0.59733 -0.29867,-1.536 0,-1.28 0.768,-2.21867 0.768,-0.93867 1.79201,-0.93867 0.55466,0 1.06666,0.17067 0.512,0.17067 1.28,0.64 1.74934,0.98133 3.45601,1.408 1.74933,0.42667 3.92533,0.42667 2.51734,0 3.79734,-0.72534 1.32267,-0.768 1.32267,-2.21866 0,-0.98134 -1.23734,-1.66401 -1.19467,-0.72533 -4.608,-1.408 -4.224,-0.896 -6.61334,-2.13333 -2.38933,-1.23734 -3.37067,-2.90134 -0.93867,-1.70666 -0.93867,-4.096 0,-2.73067 1.62134,-4.94934 1.62133,-2.21866 4.43733,-3.456 2.85867,-1.28 6.40001,-1.28 3.11467,0 5.54667,0.68267 2.432,0.68266 4.43734,2.13333 0.768,0.55467 1.06666,1.19467 0.34134,0.59733 0.34134,1.49333 0,1.28 -0.768,2.21867 -0.72534,0.93867 -1.74934,0.93867 -0.55466,0 -1.024,-0.128 -0.46933,-0.17067 -1.32267,-0.68267 -0.21333,-0.128 -1.23733,-0.64 -0.98133,-0.55467 -2.34667,-0.85333 -1.32267,-0.34134 -2.90133,-0.34134 -2.17601,0 -3.49867,0.85334 -1.32267,0.81067 -1.32267,2.176 0,0.81067 0.46933,1.32267 0.46934,0.512 1.74934,1.024 1.28,0.46933 3.79733,0.98133 4.09601,0.896 6.44268,2.176 2.34666,1.23734 3.328,2.90134 0.98133,1.664 0.98133,3.92534 0,2.816 -1.57867,4.992 -1.57866,2.13333 -4.43733,3.328 -2.816,1.152 -6.57067,1.152 z"
750
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
751
+       id="path8362" /><path
752
+       d="m 518.99656,552.50897 q 0.98133,0 1.57867,0.768 0.64,0.76801 0.64,2.00534 0,1.70667 -1.664,2.60267 -1.45067,0.72533 -3.45601,1.23733 -1.96266,0.46934 -3.62667,0.46934 -3.49866,0 -6.10133,-1.32267 -2.60267,-1.32267 -4.01067,-3.79734 -1.408,-2.47467 -1.408,-5.80267 0,-3.15733 1.32266,-5.632 1.36534,-2.51734 3.75467,-3.88267 2.43201,-1.408 5.46134,-1.408 2.944,0 5.16267,1.28 2.21867,1.28 3.41334,3.62667 1.23733,2.34667 1.23733,5.504 0,0.98133 -0.46933,1.536 -0.42667,0.512 -1.28,0.512 h -11.26401 q 0.29867,2.048 1.32267,2.944 1.024,0.89601 3.02933,0.89601 1.06667,0 1.96267,-0.21334 0.896,-0.256 2.00533,-0.68267 0.64001,-0.256 1.23734,-0.42666 0.64,-0.21334 1.152,-0.21334 z m -7.29601,-9.64267 q -1.49333,0 -2.38933,0.98133 -0.896,0.93867 -1.06667,2.77334 h 6.69867 q -0.256,-3.75467 -3.24267,-3.75467 z"
753
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
754
+       id="path8364" /><path
755
+       d="m 535.56856,559.59165 q -5.12,0 -8.10667,-2.90134 -2.98667,-2.90133 -2.98667,-7.89334 0,-3.28533 1.45067,-5.80267 1.45066,-2.51733 4.05333,-3.88267 2.64534,-1.36533 6.01601,-1.36533 1.792,0 3.584,0.46933 1.792,0.46933 3.15734,1.32267 1.32266,0.81067 1.32266,2.47467 0,1.32266 -0.64,2.176 -0.59733,0.81067 -1.57866,0.81067 -0.64001,0 -1.23734,-0.17067 -0.59733,-0.21334 -1.32267,-0.59734 -0.85333,-0.384 -1.45066,-0.55466 -0.59734,-0.21334 -1.32267,-0.21334 -4.22401,0 -4.22401,5.16267 0,2.56001 1.06667,3.92534 1.10934,1.32267 3.15734,1.32267 0.72533,0 1.32267,-0.17067 0.64,-0.21333 1.408,-0.59733 0.85333,-0.384 1.36533,-0.55467 0.55467,-0.21333 1.19467,-0.21333 0.98133,0 1.57867,0.85333 0.64,0.81067 0.64,2.13334 0,0.81066 -0.34134,1.49333 -0.34133,0.64 -0.93866,0.98133 -2.94401,1.79201 -7.16801,1.79201 z"
756
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
757
+       id="path8366" /><path
758
+       d="m 564.85525,537.83163 q 1.74934,0 2.77334,0.93867 1.024,0.93866 1.024,2.56 v 14.76268 q 0,1.49333 -1.06667,2.47467 -1.06666,0.93866 -2.77333,0.93866 -1.536,0 -2.51734,-0.81066 -0.98133,-0.85334 -1.024,-2.26134 -0.98133,1.536 -2.51733,2.34667 -1.49334,0.81067 -3.45601,0.81067 -4.05333,0 -6.016,-2.21867 -1.96267,-2.26134 -1.96267,-6.82667 v -9.21601 q 0,-1.62134 1.024,-2.56 1.024,-0.93867 2.77334,-0.93867 1.74933,0 2.77333,0.93867 1.024,0.93866 1.024,2.56 v 9.38667 q 0,3.07201 2.64534,3.07201 1.536,0 2.51733,-1.10934 0.98134,-1.10933 0.98134,-2.90133 v -8.44801 q 0,-1.62134 1.024,-2.56 1.024,-0.93867 2.77333,-0.93867 z"
759
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
760
+       id="path8368" /><path
761
+       d="m 587.10197,537.83163 q 1.45067,-0.128 2.304,0.68267 0.85333,0.768 0.85333,2.304 0,1.70667 -0.81066,2.47467 -0.768,0.768 -2.81601,0.98133 l -1.28,0.128 q -2.13333,0.256 -3.072,1.36534 -0.896,1.06666 -0.896,2.944 v 7.296 q 0,1.74934 -1.10933,2.64534 -1.06667,0.85333 -2.68801,0.85333 -1.62133,0 -2.73067,-0.85333 -1.06666,-0.896 -1.06666,-2.64534 v -14.76267 q 0,-1.62134 1.06666,-2.51734 1.10934,-0.896 2.64534,-0.896 1.57867,0 2.51734,0.85333 0.98133,0.85334 0.98133,2.38934 v 0.81067 q 0.68267,-1.87734 2.21867,-2.90134 1.57867,-1.024 3.28533,-1.10933 z"
762
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
763
+       id="path8370" /><path
764
+       d="m 596.16463,559.50631 q -1.62134,0 -2.73067,-0.85333 -1.06667,-0.896 -1.06667,-2.64534 V 541.3303 q 0,-1.74934 1.06667,-2.60267 1.10933,-0.896 2.73067,-0.896 1.62133,0 2.688,0.896 1.10933,0.85333 1.10933,2.60267 v 14.67734 q 0,1.74934 -1.10933,2.64534 -1.06667,0.85333 -2.688,0.85333 z m 0,-24.66135 q -1.92001,0 -3.07201,-0.98133 -1.10933,-1.024 -1.10933,-2.68801 0,-1.664 1.10933,-2.64533 1.152,-0.98133 3.07201,-0.98133 1.87733,0 3.02933,0.98133 1.152,0.98133 1.152,2.64533 0,1.66401 -1.152,2.68801 -1.10933,0.98133 -3.02933,0.98133 z"
765
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
766
+       id="path8372" /><path
767
+       d="m 619.00864,554.08764 q 2.85867,0.17067 2.85867,2.56 0,1.49334 -1.152,2.21867 -1.152,0.72534 -3.28534,0.59734 l -1.19467,-0.0853 q -3.84,-0.29866 -5.84533,-2.304 -1.96267,-2.048 -1.96267,-5.67467 v -7.55201 h -1.23734 q -3.41333,0 -3.41333,-2.816 0,-2.77333 3.41333,-2.77333 h 1.23734 v -2.77334 q 0,-1.62133 1.024,-2.56 1.024,-0.98133 2.77333,-0.98133 1.74934,0 2.77334,0.98133 1.024,0.93867 1.024,2.56 v 2.77334 h 2.34667 q 3.41334,0 3.41334,2.77333 0,2.816 -3.41334,2.816 h -2.34667 v 8.19201 q 0,0.81067 0.46933,1.36533 0.51201,0.55467 1.28001,0.59734 z"
768
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
769
+       id="path8374" /><path
770
+       d="m 639.07932,539.96496 q 0.46933,-1.06666 1.28,-1.57866 0.81066,-0.512 1.792,-0.512 1.408,0 2.51733,0.93866 1.10934,0.93867 1.10934,2.26134 0,0.72533 -0.34134,1.408 l -11.30667,22.65602 q -0.512,1.06666 -1.36534,1.57866 -0.81066,0.51201 -1.792,0.51201 -1.408,0 -2.51733,-0.93867 -1.06667,-0.896 -1.06667,-2.21867 0,-0.72533 0.384,-1.49333 l 2.77334,-5.58934 -7.25334,-14.50668 q -0.34134,-0.768 -0.34134,-1.36533 0,-1.36534 1.19467,-2.30401 1.19467,-0.98133 2.688,-0.98133 1.024,0 1.87734,0.55467 0.896,0.512 1.36533,1.57866 l 4.52267,9.81335 z"
771
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
772
+       id="path8376" /><path
773
+       d="m 666.12201,559.50631 q -1.79201,0 -2.85867,-1.024 -1.024,-1.06667 -1.024,-2.85867 v -22.82668 q 0,-1.74934 0.93866,-2.688 0.93867,-0.93867 2.68801,-0.93867 h 10.92267 q 4.992,0 7.76534,2.56 2.77333,2.51734 2.77333,7.04001 0,4.48 -2.816,7.04 -2.77333,2.56 -7.72267,2.56 h -6.69867 v 7.25334 q 0,1.792 -1.06667,2.85867 -1.06667,1.024 -2.90133,1.024 z m 9.6,-17.02401 q 2.176,0 3.2,-0.896 1.06667,-0.896 1.06667,-2.77334 0,-3.712 -4.26667,-3.712 h -5.632 v 7.38134 z"
774
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
775
+       id="path8378" /><path
776
+       d="m 704.19804,537.83163 q 1.45066,-0.128 2.304,0.68267 0.85333,0.768 0.85333,2.304 0,1.70667 -0.81066,2.47467 -0.76801,0.768 -2.81601,0.98133 l -1.28,0.128 q -2.13333,0.256 -3.072,1.36534 -0.896,1.06666 -0.896,2.944 v 7.296 q 0,1.74934 -1.10934,2.64534 -1.06666,0.85333 -2.688,0.85333 -1.62133,0 -2.73067,-0.85333 -1.06666,-0.896 -1.06666,-2.64534 v -14.76267 q 0,-1.62134 1.06666,-2.51734 1.10934,-0.896 2.64534,-0.896 1.57867,0 2.51733,0.85333 0.98134,0.85334 0.98134,2.38934 v 0.81067 q 0.68267,-1.87734 2.21867,-2.90134 1.57866,-1.024 3.28533,-1.10933 z"
777
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
778
+       id="path8380" /><path
779
+       d="m 719.61806,559.59165 q -3.456,0 -6.10133,-1.32267 -2.60267,-1.36534 -4.05334,-3.84 -1.408,-2.47467 -1.408,-5.80268 0,-3.328 1.408,-5.76 1.45067,-2.47467 4.05334,-3.79734 2.60266,-1.32266 6.10133,-1.32266 3.49867,0 6.10134,1.32266 2.60267,1.32267 4.01067,3.79734 1.45067,2.432 1.45067,5.76 0,3.32801 -1.45067,5.80268 -1.408,2.47466 -4.01067,3.84 -2.60267,1.32267 -6.10134,1.32267 z m 0,-5.67467 q 4.05334,0 4.05334,-5.29068 0,-5.29067 -4.05334,-5.29067 -4.05333,0 -4.05333,5.29067 0,5.29068 4.05333,5.29068 z"
780
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
781
+       id="path8382" /><path
782
+       d="m 749.24612,537.7463 q 2.73066,0 4.82133,1.32266 2.09067,1.32267 3.24267,3.79734 1.19467,2.432 1.19467,5.67467 0,3.24267 -1.19467,5.76001 -1.152,2.51733 -3.28533,3.92533 -2.09067,1.36534 -4.77867,1.36534 -2.09067,0 -3.84001,-0.85334 -1.70667,-0.85333 -2.60267,-2.34667 -0.128,1.45067 -1.152,2.30401 -0.98133,0.81066 -2.60267,0.81066 -1.70666,0 -2.73066,-0.93866 -0.98134,-0.98134 -0.98134,-2.56001 v -23.63735 q 0,-1.49333 1.06667,-2.432 1.06667,-0.98133 2.816,-0.98133 1.664,0 2.688,0.896 1.024,0.896 1.024,2.38933 v 8.49068 q 0.93867,-1.36534 2.60267,-2.17601 1.70667,-0.81066 3.71201,-0.81066 z m -2.34667,16.17068 q 1.96266,0 3.02933,-1.36534 1.06667,-1.408 1.06667,-4.01067 0,-2.47467 -1.06667,-3.79733 -1.024,-1.32267 -2.98667,-1.32267 -2.00533,0 -3.072,1.36533 -1.06667,1.32267 -1.06667,3.84 0,2.56001 1.06667,3.92534 1.06667,1.36534 3.02934,1.36534 z"
783
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
784
+       id="path8384" /><path
785
+       d="m 779.77009,552.50897 q 0.98133,0 1.57867,0.768 0.64,0.76801 0.64,2.00534 0,1.70667 -1.664,2.60267 -1.45067,0.72533 -3.45601,1.23733 -1.96266,0.46934 -3.62667,0.46934 -3.49867,0 -6.10133,-1.32267 -2.60267,-1.32267 -4.01067,-3.79734 -1.408,-2.47467 -1.408,-5.80267 0,-3.15733 1.32266,-5.632 1.36534,-2.51734 3.75467,-3.88267 2.432,-1.408 5.46134,-1.408 2.944,0 5.16267,1.28 2.21867,1.28 3.41334,3.62667 1.23733,2.34667 1.23733,5.504 0,0.98133 -0.46933,1.536 -0.42667,0.512 -1.28,0.512 h -11.26401 q 0.29866,2.048 1.32267,2.944 1.024,0.89601 3.02933,0.89601 1.06667,0 1.96267,-0.21334 0.896,-0.256 2.00533,-0.68267 0.64,-0.256 1.23734,-0.42666 0.64,-0.21334 1.152,-0.21334 z m -7.29601,-9.64267 q -1.49333,0 -2.38933,0.98133 -0.896,0.93867 -1.06667,2.77334 h 6.69867 q -0.256,-3.75467 -3.24267,-3.75467 z"
786
+       style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
787
+       id="path8386" /></g></g></svg>
0 788
new file mode 100644
... ...
@@ -0,0 +1,694 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<svg
3
+   version="1.1"
4
+   id="Layer_1"
5
+   x="0px"
6
+   y="0px"
7
+   width="564.828"
8
+   height="350.93536"
9
+   viewBox="0 0 564.82801 350.93536"
10
+   enable-background="new 0 0 792 612"
11
+   xml:space="preserve"
12
+   xmlns="http://www.w3.org/2000/svg"
13
+   xmlns:svg="http://www.w3.org/2000/svg"><defs
14
+   id="defs318"><rect
15
+     x="59.342171"
16
+     y="519.46405"
17
+     width="720.63794"
18
+     height="63.273823"
19
+     id="rect849" /></defs>
20
+<g
21
+   id="g313"
22
+   transform="translate(-113.586,-83.476371)">
23
+	<linearGradient
24
+   id="SVGID_1_"
25
+   gradientUnits="userSpaceOnUse"
26
+   x1="399.0195"
27
+   y1="204.37109"
28
+   x2="759.00519"
29
+   y2="218.464">
30
+		<stop
31
+   offset="0"
32
+   style="stop-color:#C71F25"
33
+   id="stop58" />
34
+		<stop
35
+   offset="0.0175"
36
+   style="stop-color:#C82627"
37
+   id="stop60" />
38
+		<stop
39
+   offset="0.388"
40
+   style="stop-color:#DB8168"
41
+   id="stop62" />
42
+		<stop
43
+   offset="0.6856"
44
+   style="stop-color:#EBBEAD"
45
+   id="stop64" />
46
+		<stop
47
+   offset="0.8958"
48
+   style="stop-color:#F8E9E2"
49
+   id="stop66" />
50
+		<stop
51
+   offset="1"
52
+   style="stop-color:#FFFFFF"
53
+   id="stop68" />
54
+	</linearGradient>
55
+	<path
56
+   fill-rule="evenodd"
57
+   clip-rule="evenodd"
58
+   fill="url(#SVGID_1_)"
59
+   d="m 374.177,91.248 c 6.62,-4.47 17.73,-2.453 23.276,-0.57 1.829,0.621 3.412,1.266 5.39,2.068 3.955,1.604 12.649,6.531 15.581,9.25 l -24.689,27.791 c -1.327,1.832 -0.999,0.366 -0.64,2.047 1.935,-0.313 17.22,-18.625 19.808,-21.497 2.016,-2.237 4.378,-5.67 6.781,-7.372 5.815,3.403 12.74,12.58 16.978,18.854 5.366,7.947 8.503,21.544 0.993,26.616 l -2.082,1.406 c -10.879,7.346 -34.963,-4.336 -44.927,-12.842 -6.821,-5.822 -13.944,-12.597 -18.463,-22.25 -3.739,-7.983 -5.935,-18.147 1.994,-23.501 z m -3.064,47.546 c 4.734,7.011 6.772,7.41 11.78,12.056 -0.749,1.838 -2.642,13.912 -3.122,14.235 -1.202,0.812 -10.538,3.614 -12.396,4.195 -4.763,1.49 -6.802,3.751 -11.351,7.852 l -21.367,19.023 c -0.792,1.694 6.812,29.843 7.213,31.44 2.657,10.576 5.057,21.164 7.926,31.94 0.715,2.687 1.121,4.995 1.779,7.584 2.158,8.49 0.365,7.444 8.614,12.051 2.499,1.395 4.327,2.702 6.807,4.098 2.063,1.161 19.08,11.806 20.513,11.814 0.885,0.006 6.926,-1.78 8.07,-2.421 0.275,2.555 1.719,30.043 2.838,32.041 2.258,-1.266 28.748,-7.547 31.029,-8.825 -3.301,-4.888 -10.753,-22.092 -14.104,-28.071 2.944,-1.125 6.737,-1.555 8.01,-2.132 1.627,-0.737 22.584,-32.522 22.701,-33.54 0.011,-0.104 0.012,-0.253 0.013,-0.36 0.003,-0.226 -0.145,-1.072 -0.152,-1.115 l -1.651,-6.111 c -0.824,-2.926 -1.301,-5.274 -2.171,-8.384 l -16.847,-64.798 -39.341,-6.178 c 1.179,-2.895 1.577,-7.874 2.862,-11.028 4.457,4.135 18.505,6.897 24.401,6.691 7.758,-0.272 20.486,-3.652 27.299,-8.252 10.229,-6.907 7.299,-23.315 0.077,-34.009 -10.589,-15.682 -14.19,-15.521 -17.539,-19.688 0.517,-0.882 1.535,-1.949 2.331,-2.842 3.095,-3.473 2.049,-0.714 5.055,-1.925 3.473,-1.398 1.829,-8.731 -3.681,-5.011 -1.199,0.81 -0.766,1.479 -0.795,2.379 -0.074,2.276 0.838,0.369 -0.553,2.427 -0.547,0.811 -3.275,3.676 -4.034,4.285 -1.597,-1.987 -9.111,-6.56 -11.201,-7.569 -10.828,-5.228 -27.285,-11.314 -39.179,-3.283 -9.458,6.387 -9.436,27.616 -6.569,37.094 1.055,3.484 4.164,10.529 6.735,14.337 z"
60
+   id="path71"
61
+   style="fill:url(#SVGID_1_)" />
62
+	<linearGradient
63
+   id="SVGID_2_"
64
+   gradientUnits="userSpaceOnUse"
65
+   x1="394.62009"
66
+   y1="253.6133"
67
+   x2="774.97321"
68
+   y2="268.5036">
69
+		<stop
70
+   offset="0"
71
+   style="stop-color:#C71F25"
72
+   id="stop73" />
73
+		<stop
74
+   offset="0.0175"
75
+   style="stop-color:#C82627"
76
+   id="stop75" />
77
+		<stop
78
+   offset="0.388"
79
+   style="stop-color:#DB8168"
80
+   id="stop77" />
81
+		<stop
82
+   offset="0.6856"
83
+   style="stop-color:#EBBEAD"
84
+   id="stop79" />
85
+		<stop
86
+   offset="0.8958"
87
+   style="stop-color:#F8E9E2"
88
+   id="stop81" />
89
+		<stop
90
+   offset="1"
91
+   style="stop-color:#FFFFFF"
92
+   id="stop83" />
93
+	</linearGradient>
94
+	<path
95
+   fill-rule="evenodd"
96
+   clip-rule="evenodd"
97
+   fill="url(#SVGID_2_)"
98
+   d="m 202.123,269.279 36.881,-9.139 c -0.336,-2.278 -1.567,-6.283 -2.194,-8.75 l -7.08,-27.433 c -2.632,0.283 -34.48,8.192 -36.6,9.555 0.5,1.31 0.712,2.847 1.087,4.192 0.498,1.784 0.676,2.86 1.107,4.558 z"
99
+   id="path86"
100
+   style="fill:url(#SVGID_2_)" />
101
+	<linearGradient
102
+   id="SVGID_3_"
103
+   gradientUnits="userSpaceOnUse"
104
+   x1="399.79391"
105
+   y1="223.6978"
106
+   x2="780.09692"
107
+   y2="238.58611">
108
+		<stop
109
+   offset="0"
110
+   style="stop-color:#C71F25"
111
+   id="stop88" />
112
+		<stop
113
+   offset="0.0175"
114
+   style="stop-color:#C82627"
115
+   id="stop90" />
116
+		<stop
117
+   offset="0.388"
118
+   style="stop-color:#DB8168"
119
+   id="stop92" />
120
+		<stop
121
+   offset="0.6856"
122
+   style="stop-color:#EBBEAD"
123
+   id="stop94" />
124
+		<stop
125
+   offset="0.8958"
126
+   style="stop-color:#F8E9E2"
127
+   id="stop96" />
128
+		<stop
129
+   offset="1"
130
+   style="stop-color:#FFFFFF"
131
+   id="stop98" />
132
+	</linearGradient>
133
+	<path
134
+   fill-rule="evenodd"
135
+   clip-rule="evenodd"
136
+   fill="url(#SVGID_3_)"
137
+   d="m 464.039,249.468 18.247,-4.51 c 3.14,-0.877 16.604,-3.92 18.353,-5.045 l -4.641,-17.912 c -0.711,-3.219 -3.672,-15.848 -5.05,-17.991 l -36.184,9.274 c 0.413,2.8 1.416,5.729 2.077,8.728 z"
138
+   id="path101"
139
+   style="fill:url(#SVGID_3_)" />
140
+	<linearGradient
141
+   id="SVGID_4_"
142
+   gradientUnits="userSpaceOnUse"
143
+   x1="401.30569"
144
+   y1="181.1367"
145
+   x2="781.47711"
146
+   y2="196.0199">
147
+		<stop
148
+   offset="0"
149
+   style="stop-color:#C71F25"
150
+   id="stop103" />
151
+		<stop
152
+   offset="0.0175"
153
+   style="stop-color:#C82627"
154
+   id="stop105" />
155
+		<stop
156
+   offset="0.388"
157
+   style="stop-color:#DB8168"
158
+   id="stop107" />
159
+		<stop
160
+   offset="0.6856"
161
+   style="stop-color:#EBBEAD"
162
+   id="stop109" />
163
+		<stop
164
+   offset="0.8958"
165
+   style="stop-color:#F8E9E2"
166
+   id="stop111" />
167
+		<stop
168
+   offset="1"
169
+   style="stop-color:#FFFFFF"
170
+   id="stop113" />
171
+	</linearGradient>
172
+	<path
173
+   fill-rule="evenodd"
174
+   clip-rule="evenodd"
175
+   fill="url(#SVGID_4_)"
176
+   d="m 453.889,206.6 c 5.568,-2.128 30.863,-7.363 36.6,-9.555 -0.908,-1.62 -1.958,-7.019 -2.383,-8.787 l -6.891,-27.397 c -2.909,1.112 -6.057,1.613 -9.168,2.482 -4.766,1.332 -25.214,5.877 -27.849,7.354 1.913,3.414 7.767,32.471 9.691,35.903 z"
177
+   id="path116"
178
+   style="fill:url(#SVGID_4_)" />
179
+	<linearGradient
180
+   id="SVGID_5_"
181
+   gradientUnits="userSpaceOnUse"
182
+   x1="393.10989"
183
+   y1="296.5386"
184
+   x2="773.45508"
185
+   y2="311.42859">
186
+		<stop
187
+   offset="0"
188
+   style="stop-color:#C71F25"
189
+   id="stop118" />
190
+		<stop
191
+   offset="0.0175"
192
+   style="stop-color:#C82627"
193
+   id="stop120" />
194
+		<stop
195
+   offset="0.388"
196
+   style="stop-color:#DB8168"
197
+   id="stop122" />
198
+		<stop
199
+   offset="0.6856"
200
+   style="stop-color:#EBBEAD"
201
+   id="stop124" />
202
+		<stop
203
+   offset="0.8958"
204
+   style="stop-color:#F8E9E2"
205
+   id="stop126" />
206
+		<stop
207
+   offset="1"
208
+   style="stop-color:#FFFFFF"
209
+   id="stop128" />
210
+	</linearGradient>
211
+	<path
212
+   fill-rule="evenodd"
213
+   clip-rule="evenodd"
214
+   fill="url(#SVGID_5_)"
215
+   d="m 213.252,312.699 c 3.452,-0.509 35,-8.526 36.6,-9.555 l -8.993,-35.768 c -2.727,0.294 -6.076,1.467 -9.106,2.16 l -22.845,5.819 c -1.652,0.378 -3.504,0.949 -4.93,1.16 z"
216
+   id="path131"
217
+   style="fill:url(#SVGID_5_)" />
218
+	<linearGradient
219
+   id="SVGID_6_"
220
+   gradientUnits="userSpaceOnUse"
221
+   x1="391.8848"
222
+   y1="308.9014"
223
+   x2="772.10669"
224
+   y2="323.7865">
225
+		<stop
226
+   offset="0"
227
+   style="stop-color:#C71F25"
228
+   id="stop133" />
229
+		<stop
230
+   offset="0.0175"
231
+   style="stop-color:#C82627"
232
+   id="stop135" />
233
+		<stop
234
+   offset="0.388"
235
+   style="stop-color:#DB8168"
236
+   id="stop137" />
237
+		<stop
238
+   offset="0.6856"
239
+   style="stop-color:#EBBEAD"
240
+   id="stop139" />
241
+		<stop
242
+   offset="0.8958"
243
+   style="stop-color:#F8E9E2"
244
+   id="stop141" />
245
+		<stop
246
+   offset="1"
247
+   style="stop-color:#FFFFFF"
248
+   id="stop143" />
249
+	</linearGradient>
250
+	<path
251
+   fill-rule="evenodd"
252
+   clip-rule="evenodd"
253
+   fill="url(#SVGID_6_)"
254
+   d="m 168.437,323.559 c 4.141,-1.583 34.148,-8.182 36.6,-9.556 -0.352,-3.27 -6.444,-25.357 -7.787,-31.552 -0.343,-1.583 -0.642,-3.124 -1.487,-4.631 l -36.6,9.555 c 0.911,1.625 1.956,7.013 2.383,8.787 l 4.623,18.271 c 0.706,3.089 1.851,6.301 2.268,9.126 z"
255
+   id="path146"
256
+   style="fill:url(#SVGID_6_)" />
257
+	<linearGradient
258
+   id="SVGID_7_"
259
+   gradientUnits="userSpaceOnUse"
260
+   x1="404.82419"
261
+   y1="142.6655"
262
+   x2="785.13507"
263
+   y2="157.5542">
264
+		<stop
265
+   offset="0"
266
+   style="stop-color:#C71F25"
267
+   id="stop148" />
268
+		<stop
269
+   offset="0.0175"
270
+   style="stop-color:#C82627"
271
+   id="stop150" />
272
+		<stop
273
+   offset="0.388"
274
+   style="stop-color:#DB8168"
275
+   id="stop152" />
276
+		<stop
277
+   offset="0.6856"
278
+   style="stop-color:#EBBEAD"
279
+   id="stop154" />
280
+		<stop
281
+   offset="0.8958"
282
+   style="stop-color:#F8E9E2"
283
+   id="stop156" />
284
+		<stop
285
+   offset="1"
286
+   style="stop-color:#FFFFFF"
287
+   id="stop158" />
288
+	</linearGradient>
289
+	<path
290
+   fill-rule="evenodd"
291
+   clip-rule="evenodd"
292
+   fill="url(#SVGID_7_)"
293
+   d="m 587.075,173.056 c 1.625,-0.911 7.014,-1.956 8.787,-2.383 3.216,-0.774 5.929,-1.587 9.145,-2.361 2.87,-0.691 5.97,-1.539 9.125,-2.261 3.092,-0.708 6.304,-1.852 9.127,-2.269 -0.248,-2.304 -1.322,-6.12 -2.014,-8.715 l -4.604,-18.266 c -0.681,-2.402 -1.435,-7.022 -2.656,-9.202 -3.431,0.506 -35.021,8.539 -36.601,9.555 1.398,2.493 7.922,33.151 9.691,35.902 z"
294
+   id="path161"
295
+   style="fill:url(#SVGID_7_)" />
296
+	<linearGradient
297
+   id="SVGID_8_"
298
+   gradientUnits="userSpaceOnUse"
299
+   x1="403.31741"
300
+   y1="185.53709"
301
+   x2="783.67828"
302
+   y2="200.4277">
303
+		<stop
304
+   offset="0"
305
+   style="stop-color:#C71F25"
306
+   id="stop163" />
307
+		<stop
308
+   offset="0.0175"
309
+   style="stop-color:#C82627"
310
+   id="stop165" />
311
+		<stop
312
+   offset="0.388"
313
+   style="stop-color:#DB8168"
314
+   id="stop167" />
315
+		<stop
316
+   offset="0.6856"
317
+   style="stop-color:#EBBEAD"
318
+   id="stop169" />
319
+		<stop
320
+   offset="0.8958"
321
+   style="stop-color:#F8E9E2"
322
+   id="stop171" />
323
+		<stop
324
+   offset="1"
325
+   style="stop-color:#FFFFFF"
326
+   id="stop173" />
327
+	</linearGradient>
328
+	<path
329
+   fill-rule="evenodd"
330
+   clip-rule="evenodd"
331
+   fill="url(#SVGID_8_)"
332
+   d="m 597.507,216.342 36.881,-9.139 c -0.336,-2.278 -1.566,-6.283 -2.193,-8.75 -0.764,-3.003 -1.608,-5.874 -2.357,-9.144 l -4.723,-18.29 c -3.431,0.506 -35.02,8.539 -36.601,9.555 z"
333
+   id="path176"
334
+   style="fill:url(#SVGID_8_)" />
335
+	<linearGradient
336
+   id="SVGID_9_"
337
+   gradientUnits="userSpaceOnUse"
338
+   x1="401.01071"
339
+   y1="211.2813"
340
+   x2="781.22937"
341
+   y2="226.16631">
342
+		<stop
343
+   offset="0"
344
+   style="stop-color:#C71F25"
345
+   id="stop178" />
346
+		<stop
347
+   offset="0.0175"
348
+   style="stop-color:#C82627"
349
+   id="stop180" />
350
+		<stop
351
+   offset="0.388"
352
+   style="stop-color:#DB8168"
353
+   id="stop182" />
354
+		<stop
355
+   offset="0.6856"
356
+   style="stop-color:#EBBEAD"
357
+   id="stop184" />
358
+		<stop
359
+   offset="0.8958"
360
+   style="stop-color:#F8E9E2"
361
+   id="stop186" />
362
+		<stop
363
+   offset="1"
364
+   style="stop-color:#FFFFFF"
365
+   id="stop188" />
366
+	</linearGradient>
367
+	<path
368
+   fill-rule="evenodd"
369
+   clip-rule="evenodd"
370
+   fill="url(#SVGID_9_)"
371
+   d="m 508.438,238.891 27.399,-6.906 c 1.608,-0.451 2.753,-0.617 4.557,-1.099 2.064,-0.551 3.072,-0.934 4.926,-1.133 l -4.634,-18.272 c -0.665,-3.013 -3.833,-16.386 -4.922,-18.328 -1.923,1.078 -15.151,4.235 -17.951,4.845 -3.17,0.691 -16.221,3.745 -18.367,5.126 l 6.724,26.641 c 0.707,3.09 1.851,6.303 2.268,9.126 z"
372
+   id="path191"
373
+   style="fill:url(#SVGID_9_)" />
374
+	<linearGradient
375
+   id="SVGID_10_"
376
+   gradientUnits="userSpaceOnUse"
377
+   x1="402.44431"
378
+   y1="168.60941"
379
+   x2="782.75848"
380
+   y2="183.49809">
381
+		<stop
382
+   offset="0"
383
+   style="stop-color:#C71F25"
384
+   id="stop193" />
385
+		<stop
386
+   offset="0.0175"
387
+   style="stop-color:#C82627"
388
+   id="stop195" />
389
+		<stop
390
+   offset="0.388"
391
+   style="stop-color:#DB8168"
392
+   id="stop197" />
393
+		<stop
394
+   offset="0.6856"
395
+   style="stop-color:#EBBEAD"
396
+   id="stop199" />
397
+		<stop
398
+   offset="0.8958"
399
+   style="stop-color:#F8E9E2"
400
+   id="stop201" />
401
+		<stop
402
+   offset="1"
403
+   style="stop-color:#FFFFFF"
404
+   id="stop203" />
405
+	</linearGradient>
406
+	<path
407
+   fill-rule="evenodd"
408
+   clip-rule="evenodd"
409
+   fill="url(#SVGID_10_)"
410
+   d="m 498.007,195.606 c 1.255,-0.704 32.567,-8.884 36.184,-9.274 -0.267,-2.476 -1.263,-5.948 -2.025,-8.718 l -2.327,-9.138 c -0.671,-3.041 -3.793,-16.314 -4.922,-18.328 -4.277,0.46 -34.993,8.521 -36.601,9.555 0.939,1.675 3.868,14.754 4.76,17.935 1.059,3.779 3.487,15.724 4.931,17.968 z"
411
+   id="path206"
412
+   style="fill:url(#SVGID_10_)" />
413
+	<linearGradient
414
+   id="SVGID_11_"
415
+   gradientUnits="userSpaceOnUse"
416
+   x1="396.9863"
417
+   y1="227.6694"
418
+   x2="777.33148"
419
+   y2="242.5594">
420
+		<stop
421
+   offset="0"
422
+   style="stop-color:#C71F25"
423
+   id="stop208" />
424
+		<stop
425
+   offset="0.0175"
426
+   style="stop-color:#C82627"
427
+   id="stop210" />
428
+		<stop
429
+   offset="0.388"
430
+   style="stop-color:#DB8168"
431
+   id="stop212" />
432
+		<stop
433
+   offset="0.6856"
434
+   style="stop-color:#EBBEAD"
435
+   id="stop214" />
436
+		<stop
437
+   offset="0.8958"
438
+   style="stop-color:#F8E9E2"
439
+   id="stop216" />
440
+		<stop
441
+   offset="1"
442
+   style="stop-color:#FFFFFF"
443
+   id="stop218" />
444
+	</linearGradient>
445
+	<path
446
+   fill-rule="evenodd"
447
+   clip-rule="evenodd"
448
+   fill="url(#SVGID_11_)"
449
+   d="m 291.192,246.729 18.232,-4.429 c 2.981,-0.65 5.991,-1.441 9.134,-2.306 1.856,-0.511 2.7,-0.588 4.557,-1.098 1.812,-0.498 3.514,-0.754 4.958,-1.306 -0.5,-1.31 -0.712,-2.848 -1.086,-4.192 -0.498,-1.784 -0.676,-2.86 -1.107,-4.558 -0.764,-3.004 -1.609,-5.875 -2.357,-9.144 -0.722,-3.155 -1.569,-6.255 -2.261,-9.125 l -2.462,-9.164 -27.4,6.906 c -2.453,0.688 -6.807,1.308 -9.2,2.649 z"
450
+   id="path221"
451
+   style="fill:url(#SVGID_11_)" />
452
+	<linearGradient
453
+   id="SVGID_12_"
454
+   gradientUnits="userSpaceOnUse"
455
+   x1="395.73489"
456
+   y1="240.7334"
457
+   x2="775.95679"
458
+   y2="255.6185">
459
+		<stop
460
+   offset="0"
461
+   style="stop-color:#C71F25"
462
+   id="stop223" />
463
+		<stop
464
+   offset="0.0175"
465
+   style="stop-color:#C82627"
466
+   id="stop225" />
467
+		<stop
468
+   offset="0.388"
469
+   style="stop-color:#DB8168"
470
+   id="stop227" />
471
+		<stop
472
+   offset="0.6856"
473
+   style="stop-color:#EBBEAD"
474
+   id="stop229" />
475
+		<stop
476
+   offset="0.8958"
477
+   style="stop-color:#F8E9E2"
478
+   id="stop231" />
479
+		<stop
480
+   offset="1"
481
+   style="stop-color:#FFFFFF"
482
+   id="stop233" />
483
+	</linearGradient>
484
+	<path
485
+   fill-rule="evenodd"
486
+   clip-rule="evenodd"
487
+   fill="url(#SVGID_12_)"
488
+   d="m 246.241,258.286 27.417,-6.992 c 1.899,-0.414 7.537,-1.64 9.184,-2.563 l -9.274,-36.184 -32.025,8.362 c -1.802,0.455 -2.727,0.487 -4.575,1.193 1.869,4.893 7.728,32.141 9.273,36.184 z"
489
+   id="path236"
490
+   style="fill:url(#SVGID_12_)" />
491
+	<linearGradient
492
+   id="SVGID_13_"
493
+   gradientUnits="userSpaceOnUse"
494
+   x1="394.2793"
495
+   y1="283.86429"
496
+   x2="774.63239"
497
+   y2="298.75449">
498
+		<stop
499
+   offset="0"
500
+   style="stop-color:#C71F25"
501
+   id="stop238" />
502
+		<stop
503
+   offset="0.0175"
504
+   style="stop-color:#C82627"
505
+   id="stop240" />
506
+		<stop
507
+   offset="0.388"
508
+   style="stop-color:#DB8168"
509
+   id="stop242" />
510
+		<stop
511
+   offset="0.6856"
512
+   style="stop-color:#EBBEAD"
513
+   id="stop244" />
514
+		<stop
515
+   offset="0.8958"
516
+   style="stop-color:#F8E9E2"
517
+   id="stop246" />
518
+		<stop
519
+   offset="1"
520
+   style="stop-color:#FFFFFF"
521
+   id="stop248" />
522
+	</linearGradient>
523
+	<path
524
+   fill-rule="evenodd"
525
+   clip-rule="evenodd"
526
+   fill="url(#SVGID_13_)"
527
+   d="m 257.37,301.706 c 1.419,-0.542 2.925,-0.724 4.574,-1.189 4.596,-1.297 29.84,-7.141 32.026,-8.367 -1.014,-2.654 -1.688,-6.098 -2.37,-8.784 l -4.5,-17.884 c -0.512,-1.857 -0.584,-2.7 -1.098,-4.557 -0.541,-1.955 -0.838,-2.811 -1.024,-4.542 -4.027,0.434 -21.784,5.421 -27.359,6.698 -1.753,0.401 -2.747,0.664 -4.565,1.146 -2.021,0.537 -3.027,0.558 -4.957,1.295 0.392,2.654 1.5,5.919 2.181,8.748 0.685,2.842 1.373,6.031 2.223,9.118 z"
528
+   id="path251"
529
+   style="fill:url(#SVGID_13_)" />
530
+	<linearGradient
531
+   id="SVGID_14_"
532
+   gradientUnits="userSpaceOnUse"
533
+   x1="402.17291"
534
+   y1="198.606"
535
+   x2="782.39478"
536
+   y2="213.4911">
537
+		<stop
538
+   offset="0"
539
+   style="stop-color:#C71F25"
540
+   id="stop253" />
541
+		<stop
542
+   offset="0.0175"
543
+   style="stop-color:#C82627"
544
+   id="stop255" />
545
+		<stop
546
+   offset="0.388"
547
+   style="stop-color:#DB8168"
548
+   id="stop257" />
549
+		<stop
550
+   offset="0.6856"
551
+   style="stop-color:#EBBEAD"
552
+   id="stop259" />
553
+		<stop
554
+   offset="0.8958"
555
+   style="stop-color:#F8E9E2"
556
+   id="stop261" />
557
+		<stop
558
+   offset="1"
559
+   style="stop-color:#FFFFFF"
560
+   id="stop263" />
561
+	</linearGradient>
562
+	<path
563
+   fill-rule="evenodd"
564
+   clip-rule="evenodd"
565
+   fill="url(#SVGID_14_)"
566
+   d="m 552.556,227.897 c 1.845,-0.705 2.772,-0.741 4.575,-1.193 l 32.025,-8.362 -9.274,-36.184 c -1.744,0.978 -7.053,1.938 -9.167,2.475 l -27.434,7.08 z"
567
+   id="path266"
568
+   style="fill:url(#SVGID_14_)" />
569
+	<linearGradient
570
+   id="SVGID_15_"
571
+   gradientUnits="userSpaceOnUse"
572
+   x1="403.62399"
573
+   y1="155.52879"
574
+   x2="783.93488"
575
+   y2="170.4174">
576
+		<stop
577
+   offset="0"
578
+   style="stop-color:#C71F25"
579
+   id="stop268" />
580
+		<stop
581
+   offset="0.0175"
582
+   style="stop-color:#C82627"
583
+   id="stop270" />
584
+		<stop
585
+   offset="0.388"
586
+   style="stop-color:#DB8168"
587
+   id="stop272" />
588
+		<stop
589
+   offset="0.6856"
590
+   style="stop-color:#EBBEAD"
591
+   id="stop274" />
592
+		<stop
593
+   offset="0.8958"
594
+   style="stop-color:#F8E9E2"
595
+   id="stop276" />
596
+		<stop
597
+   offset="1"
598
+   style="stop-color:#FFFFFF"
599
+   id="stop278" />
600
+	</linearGradient>
601
+	<path
602
+   fill-rule="evenodd"
603
+   clip-rule="evenodd"
604
+   fill="url(#SVGID_15_)"
605
+   d="m 541.844,184.196 18.248,-4.51 c 3.175,-0.888 5.942,-1.609 9.148,-2.381 1.997,-0.481 7.274,-1.423 9.203,-2.664 -1.397,-2.493 -7.921,-33.151 -9.69,-35.902 -1.625,0.911 -7.014,1.956 -8.787,2.383 -3.216,0.775 -5.929,1.587 -9.145,2.362 l -18.252,4.529 z"
606
+   id="path281"
607
+   style="fill:url(#SVGID_15_)" />
608
+	<linearGradient
609
+   id="SVGID_16_"
610
+   gradientUnits="userSpaceOnUse"
611
+   x1="393.44919"
612
+   y1="266.2886"
613
+   x2="773.80231"
614
+   y2="281.17889">
615
+		<stop
616
+   offset="0"
617
+   style="stop-color:#C71F25"
618
+   id="stop283" />
619
+		<stop
620
+   offset="0.0175"
621
+   style="stop-color:#C82627"
622
+   id="stop285" />
623
+		<stop
624
+   offset="0.388"
625
+   style="stop-color:#DB8168"
626
+   id="stop287" />
627
+		<stop
628
+   offset="0.6856"
629
+   style="stop-color:#EBBEAD"
630
+   id="stop289" />
631
+		<stop
632
+   offset="0.8958"
633
+   style="stop-color:#F8E9E2"
634
+   id="stop291" />
635
+		<stop
636
+   offset="1"
637
+   style="stop-color:#FFFFFF"
638
+   id="stop293" />
639
+	</linearGradient>
640
+	<path
641
+   fill-rule="evenodd"
642
+   clip-rule="evenodd"
643
+   fill="url(#SVGID_16_)"
644
+   d="m 158.005,280.273 36.882,-9.139 -4.405,-17.866 c -0.885,-3.213 -1.633,-6.13 -2.395,-9.151 -0.531,-2.105 -1.501,-7.431 -2.474,-9.167 l -36.6,9.555 c 1.014,2.654 1.688,6.098 2.37,8.784 l 5.598,22.441 c 0.54,1.956 0.838,2.812 1.024,4.543 z"
645
+   id="path296"
646
+   style="fill:url(#SVGID_16_)" />
647
+	<path
648
+   id="polygon298"
649
+   style="clip-rule:evenodd;fill:#07a684;fill-rule:evenodd"
650
+   d="m 619.083,199.136 -28.407,156.588 -19.398,-108.674 -20.966,65.516 -11.831,-18.971 -424.895,4.18 423.084,7.199 15.815,28.696 16.31,-51.258 21.008,118.841 29.787,-159.888 10.865,70.327 47.959,-1.15 -40.006,-7.68 z" />
651
+	<path
652
+   fill-rule="evenodd"
653
+   clip-rule="evenodd"
654
+   fill="#46559f"
655
+   d="m 274.562,230.549 c 0,57.098 5.361,107.248 40.02,155.896 11.328,15.901 34.279,36.627 51.874,46.145 8.764,3.648 12.128,1.34 19.425,-2.722 18.741,-11.595 34.303,-26.762 47.408,-44.097 17.153,-22.691 26.896,-45.519 33.583,-75.289 4.882,-21.731 6.138,-56.203 6.138,-79.994 -17.925,-4.115 -35.557,-5.415 -53.137,-11.008 -15.59,-4.959 -31.373,-11.585 -46.149,-19.578 -14.282,8.249 -31.738,15.253 -46.68,19.877 -8.253,2.554 -16.787,4.629 -25.62,6.185 -8.225,1.449 -19.524,2.59 -26.862,4.585 z"
656
+   id="path300" />
657
+	<path
658
+   fill-rule="evenodd"
659
+   clip-rule="evenodd"
660
+   fill="#ffffff"
661
+   d="m 288.361,241.436 c 26.809,-3.985 41.84,-6.749 65.636,-17.235 2.801,-1.234 17.889,-8.598 19.464,-8.65 1.135,-0.038 32.395,14.068 38.752,16.184 12.618,4.2 32.501,8.164 46.442,9.702 -1.584,61.138 -3.741,96.915 -39.227,142.569 -6.339,8.154 -36.871,36.49 -45.973,36.42 -8.401,-0.065 -30.688,-20.519 -37.528,-27.653 -7.415,-7.732 -8.352,-8.023 -15.078,-17.626 C 292.344,334.454 288.426,296.1 288.361,241.436 Z m -6.317,-4.456 c -0.843,62.707 9.403,119.281 51.383,161.188 4.278,4.271 32.825,29.88 41.574,28.299 13.727,-2.48 44.578,-32.924 55.776,-48.456 30.212,-41.899 34.528,-85.074 34.798,-141.227 -24.978,-3.104 -49.407,-8.387 -71.459,-18.756 -12.623,-5.464 -16.672,-7.727 -20.615,-8.564 -4.619,1.351 -7.855,3.494 -20.475,8.886 -30.451,14.067 -42.425,11.608 -70.982,18.63 z"
662
+   id="path302" />
663
+	<linearGradient
664
+   id="SVGID_17_"
665
+   gradientUnits="userSpaceOnUse"
666
+   x1="361.022"
667
+   y1="318.25781"
668
+   x2="805.86371"
669
+   y2="318.25781">
670
+		<stop
671
+   offset="0"
672
+   style="stop-color:#46559F"
673
+   id="stop304" />
674
+		<stop
675
+   offset="0.28"
676
+   style="stop-color:#FFFFFF"
677
+   id="stop306" />
678
+		<stop
679
+   offset="1"
680
+   style="stop-color:#FFFFFF"
681
+   id="stop308" />
682
+	</linearGradient>
683
+	
684
+		<path
685
+   fill-rule="evenodd"
686
+   clip-rule="evenodd"
687
+   fill="url(#SVGID_17_)"
688
+   stroke="#46559f"
689
+   stroke-width="0.216"
690
+   stroke-miterlimit="2.6131"
691
+   d="m 376.992,415.69 c 34.036,-19.377 57.598,-51.85 69.187,-87.665 4.077,-12.604 6.11,-26.48 7.541,-40.086 2.427,-23.09 4.077,-41.459 -0.947,-43.069 -10.205,-3.271 -27.228,-5.531 -42.18,-11.183 -15.101,-4.463 -36.881,-19.732 -36.934,-9.614 -0.097,18.452 -0.014,170.067 0.552,190.465 0.043,1.542 2.368,1.39 2.781,1.152 z"
692
+   id="path311"
693
+   style="fill:url(#SVGID_17_)" />
694
+</g></svg>
0 695
new file mode 100644
... ...
@@ -0,0 +1,631 @@
1
+<svg
2
+   version="1.1"
3
+   id="Layer_1"
4
+   x="0px"
5
+   y="0px"
6
+   width="228.933"
7
+   height="170"
8
+   viewBox="0 0 201.67214 150"
9
+   enable-background="new 0 0 792 612"
10
+   xml:space="preserve"
11
+   xmlns="http://www.w3.org/2000/svg"
12
+   xmlns:svg="http://www.w3.org/2000/svg"><defs
13
+     id="defs318"><rect
14
+       x="59.342171"
15
+       y="519.46405"
16
+       width="742.38684"
17
+       height="65.447365"
18
+       id="rect849" /></defs><g
19
+     id="g8556"
20
+     transform="scale(0.27969238)"><g
21
+       id="g7173"
22
+       transform="translate(-2.0000004,14.057279)"><g
23
+         id="g313"
24
+         transform="matrix(1.2329325,0,0,1.2329325,-127.56867,-116.97801)">	<linearGradient
25
+   id="SVGID_1_"
26
+   gradientUnits="userSpaceOnUse"
27
+   x1="399.0195"
28
+   y1="204.37109"
29
+   x2="759.00519"
30
+   y2="218.464">		<stop
31
+   offset="0"
32
+   style="stop-color:#C71F25"
33
+   id="stop58" />		<stop
34
+   offset="0.0175"
35
+   style="stop-color:#C82627"
36
+   id="stop60" />		<stop
37
+   offset="0.388"
38
+   style="stop-color:#DB8168"
39
+   id="stop62" />		<stop
40
+   offset="0.6856"
41
+   style="stop-color:#EBBEAD"
42
+   id="stop64" />		<stop
43
+   offset="0.8958"
44
+   style="stop-color:#F8E9E2"
45
+   id="stop66" />		<stop
46
+   offset="1"
47
+   style="stop-color:#FFFFFF"
48
+   id="stop68" />	</linearGradient>	<path
49
+   fill-rule="evenodd"
50
+   clip-rule="evenodd"
51
+   fill="url(#SVGID_1_)"
52
+   d="m 374.177,91.248 c 6.62,-4.47 17.73,-2.453 23.276,-0.57 1.829,0.621 3.412,1.266 5.39,2.068 3.955,1.604 12.649,6.531 15.581,9.25 l -24.689,27.791 c -1.327,1.832 -0.999,0.366 -0.64,2.047 1.935,-0.313 17.22,-18.625 19.808,-21.497 2.016,-2.237 4.378,-5.67 6.781,-7.372 5.815,3.403 12.74,12.58 16.978,18.854 5.366,7.947 8.503,21.544 0.993,26.616 l -2.082,1.406 c -10.879,7.346 -34.963,-4.336 -44.927,-12.842 -6.821,-5.822 -13.944,-12.597 -18.463,-22.25 -3.739,-7.983 -5.935,-18.147 1.994,-23.501 z m -3.064,47.546 c 4.734,7.011 6.772,7.41 11.78,12.056 -0.749,1.838 -2.642,13.912 -3.122,14.235 -1.202,0.812 -10.538,3.614 -12.396,4.195 -4.763,1.49 -6.802,3.751 -11.351,7.852 l -21.367,19.023 c -0.792,1.694 6.812,29.843 7.213,31.44 2.657,10.576 5.057,21.164 7.926,31.94 0.715,2.687 1.121,4.995 1.779,7.584 2.158,8.49 0.365,7.444 8.614,12.051 2.499,1.395 4.327,2.702 6.807,4.098 2.063,1.161 19.08,11.806 20.513,11.814 0.885,0.006 6.926,-1.78 8.07,-2.421 0.275,2.555 1.719,30.043 2.838,32.041 2.258,-1.266 28.748,-7.547 31.029,-8.825 -3.301,-4.888 -10.753,-22.092 -14.104,-28.071 2.944,-1.125 6.737,-1.555 8.01,-2.132 1.627,-0.737 22.584,-32.522 22.701,-33.54 0.011,-0.104 0.012,-0.253 0.013,-0.36 0.003,-0.226 -0.145,-1.072 -0.152,-1.115 l -1.651,-6.111 c -0.824,-2.926 -1.301,-5.274 -2.171,-8.384 l -16.847,-64.798 -39.341,-6.178 c 1.179,-2.895 1.577,-7.874 2.862,-11.028 4.457,4.135 18.505,6.897 24.401,6.691 7.758,-0.272 20.486,-3.652 27.299,-8.252 10.229,-6.907 7.299,-23.315 0.077,-34.009 -10.589,-15.682 -14.19,-15.521 -17.539,-19.688 0.517,-0.882 1.535,-1.949 2.331,-2.842 3.095,-3.473 2.049,-0.714 5.055,-1.925 3.473,-1.398 1.829,-8.731 -3.681,-5.011 -1.199,0.81 -0.766,1.479 -0.795,2.379 -0.074,2.276 0.838,0.369 -0.553,2.427 -0.547,0.811 -3.275,3.676 -4.034,4.285 -1.597,-1.987 -9.111,-6.56 -11.201,-7.569 -10.828,-5.228 -27.285,-11.314 -39.179,-3.283 -9.458,6.387 -9.436,27.616 -6.569,37.094 1.055,3.484 4.164,10.529 6.735,14.337 z"
53
+   id="path71"
54
+   style="fill:url(#SVGID_1_)" />	<linearGradient
55
+   id="SVGID_2_"
56
+   gradientUnits="userSpaceOnUse"
57
+   x1="394.62009"
58
+   y1="253.6133"
59
+   x2="774.97321"
60
+   y2="268.5036">		<stop
61
+   offset="0"
62
+   style="stop-color:#C71F25"
63
+   id="stop73" />		<stop
64
+   offset="0.0175"
65
+   style="stop-color:#C82627"
66
+   id="stop75" />		<stop
67
+   offset="0.388"
68
+   style="stop-color:#DB8168"
69
+   id="stop77" />		<stop
70
+   offset="0.6856"
71
+   style="stop-color:#EBBEAD"
72
+   id="stop79" />		<stop
73
+   offset="0.8958"
74
+   style="stop-color:#F8E9E2"
75
+   id="stop81" />		<stop
76
+   offset="1"
77
+   style="stop-color:#FFFFFF"
78
+   id="stop83" />	</linearGradient>	<path
79
+   fill-rule="evenodd"
80
+   clip-rule="evenodd"
81
+   fill="url(#SVGID_2_)"
82
+   d="m 202.123,269.279 36.881,-9.139 c -0.336,-2.278 -1.567,-6.283 -2.194,-8.75 l -7.08,-27.433 c -2.632,0.283 -34.48,8.192 -36.6,9.555 0.5,1.31 0.712,2.847 1.087,4.192 0.498,1.784 0.676,2.86 1.107,4.558 z"
83
+   id="path86"
84
+   style="fill:url(#SVGID_2_)" />	<linearGradient
85
+   id="SVGID_3_"
86
+   gradientUnits="userSpaceOnUse"
87
+   x1="399.79391"
88
+   y1="223.6978"
89
+   x2="780.09692"
90
+   y2="238.58611">		<stop
91
+   offset="0"
92
+   style="stop-color:#C71F25"
93
+   id="stop88" />		<stop
94
+   offset="0.0175"
95
+   style="stop-color:#C82627"
96
+   id="stop90" />		<stop
97
+   offset="0.388"
98
+   style="stop-color:#DB8168"
99
+   id="stop92" />		<stop
100
+   offset="0.6856"
101
+   style="stop-color:#EBBEAD"
102
+   id="stop94" />		<stop
103
+   offset="0.8958"
104
+   style="stop-color:#F8E9E2"
105
+   id="stop96" />		<stop
106
+   offset="1"
107
+   style="stop-color:#FFFFFF"
108
+   id="stop98" />	</linearGradient>	<path
109
+   fill-rule="evenodd"
110
+   clip-rule="evenodd"
111
+   fill="url(#SVGID_3_)"
112
+   d="m 464.039,249.468 18.247,-4.51 c 3.14,-0.877 16.604,-3.92 18.353,-5.045 l -4.641,-17.912 c -0.711,-3.219 -3.672,-15.848 -5.05,-17.991 l -36.184,9.274 c 0.413,2.8 1.416,5.729 2.077,8.728 z"
113
+   id="path101"
114
+   style="fill:url(#SVGID_3_)" />	<linearGradient
115
+   id="SVGID_4_"
116
+   gradientUnits="userSpaceOnUse"
117
+   x1="401.30569"
118
+   y1="181.1367"
119
+   x2="781.47711"
120
+   y2="196.0199">		<stop
121
+   offset="0"
122
+   style="stop-color:#C71F25"
123
+   id="stop103" />		<stop
124
+   offset="0.0175"
125
+   style="stop-color:#C82627"
126
+   id="stop105" />		<stop
127
+   offset="0.388"
128
+   style="stop-color:#DB8168"
129
+   id="stop107" />		<stop
130
+   offset="0.6856"
131
+   style="stop-color:#EBBEAD"
132
+   id="stop109" />		<stop
133
+   offset="0.8958"
134
+   style="stop-color:#F8E9E2"
135
+   id="stop111" />		<stop
136
+   offset="1"
137
+   style="stop-color:#FFFFFF"
138
+   id="stop113" />	</linearGradient>	<path
139
+   fill-rule="evenodd"
140
+   clip-rule="evenodd"
141
+   fill="url(#SVGID_4_)"
142
+   d="m 453.889,206.6 c 5.568,-2.128 30.863,-7.363 36.6,-9.555 -0.908,-1.62 -1.958,-7.019 -2.383,-8.787 l -6.891,-27.397 c -2.909,1.112 -6.057,1.613 -9.168,2.482 -4.766,1.332 -25.214,5.877 -27.849,7.354 1.913,3.414 7.767,32.471 9.691,35.903 z"
143
+   id="path116"
144
+   style="fill:url(#SVGID_4_)" />	<linearGradient
145
+   id="SVGID_5_"
146
+   gradientUnits="userSpaceOnUse"
147
+   x1="393.10989"
148
+   y1="296.5386"
149
+   x2="773.45508"
150
+   y2="311.42859">		<stop
151
+   offset="0"
152
+   style="stop-color:#C71F25"
153
+   id="stop118" />		<stop
154
+   offset="0.0175"
155
+   style="stop-color:#C82627"
156
+   id="stop120" />		<stop
157
+   offset="0.388"
158
+   style="stop-color:#DB8168"
159
+   id="stop122" />		<stop
160
+   offset="0.6856"
161
+   style="stop-color:#EBBEAD"
162
+   id="stop124" />		<stop
163
+   offset="0.8958"
164
+   style="stop-color:#F8E9E2"
165
+   id="stop126" />		<stop
166
+   offset="1"
167
+   style="stop-color:#FFFFFF"
168
+   id="stop128" />	</linearGradient>	<path
169
+   fill-rule="evenodd"
170
+   clip-rule="evenodd"
171
+   fill="url(#SVGID_5_)"
172
+   d="m 213.252,312.699 c 3.452,-0.509 35,-8.526 36.6,-9.555 l -8.993,-35.768 c -2.727,0.294 -6.076,1.467 -9.106,2.16 l -22.845,5.819 c -1.652,0.378 -3.504,0.949 -4.93,1.16 z"
173
+   id="path131"
174
+   style="fill:url(#SVGID_5_)" />	<linearGradient
175
+   id="SVGID_6_"
176
+   gradientUnits="userSpaceOnUse"
177
+   x1="391.8848"
178
+   y1="308.9014"
179
+   x2="772.10669"
180
+   y2="323.7865">		<stop
181
+   offset="0"
182
+   style="stop-color:#C71F25"
183
+   id="stop133" />		<stop
184
+   offset="0.0175"
185
+   style="stop-color:#C82627"
186
+   id="stop135" />		<stop
187
+   offset="0.388"
188
+   style="stop-color:#DB8168"
189
+   id="stop137" />		<stop
190
+   offset="0.6856"
191
+   style="stop-color:#EBBEAD"
192
+   id="stop139" />		<stop
193
+   offset="0.8958"
194
+   style="stop-color:#F8E9E2"
195
+   id="stop141" />		<stop
196
+   offset="1"
197
+   style="stop-color:#FFFFFF"
198
+   id="stop143" />	</linearGradient>	<path
199
+   fill-rule="evenodd"
200
+   clip-rule="evenodd"
201
+   fill="url(#SVGID_6_)"
202
+   d="m 168.437,323.559 c 4.141,-1.583 34.148,-8.182 36.6,-9.556 -0.352,-3.27 -6.444,-25.357 -7.787,-31.552 -0.343,-1.583 -0.642,-3.124 -1.487,-4.631 l -36.6,9.555 c 0.911,1.625 1.956,7.013 2.383,8.787 l 4.623,18.271 c 0.706,3.089 1.851,6.301 2.268,9.126 z"
203
+   id="path146"
204
+   style="fill:url(#SVGID_6_)" />	<linearGradient
205
+   id="SVGID_7_"
206
+   gradientUnits="userSpaceOnUse"
207
+   x1="404.82419"
208
+   y1="142.6655"
209
+   x2="785.13507"
210
+   y2="157.5542">		<stop
211
+   offset="0"
212
+   style="stop-color:#C71F25"
213
+   id="stop148" />		<stop
214
+   offset="0.0175"
215
+   style="stop-color:#C82627"
216
+   id="stop150" />		<stop
217
+   offset="0.388"
218
+   style="stop-color:#DB8168"
219
+   id="stop152" />		<stop
220
+   offset="0.6856"
221
+   style="stop-color:#EBBEAD"
222
+   id="stop154" />		<stop
223
+   offset="0.8958"
224
+   style="stop-color:#F8E9E2"
225
+   id="stop156" />		<stop
226
+   offset="1"
227
+   style="stop-color:#FFFFFF"
228
+   id="stop158" />	</linearGradient>	<path
229
+   fill-rule="evenodd"
230
+   clip-rule="evenodd"
231
+   fill="url(#SVGID_7_)"
232
+   d="m 587.075,173.056 c 1.625,-0.911 7.014,-1.956 8.787,-2.383 3.216,-0.774 5.929,-1.587 9.145,-2.361 2.87,-0.691 5.97,-1.539 9.125,-2.261 3.092,-0.708 6.304,-1.852 9.127,-2.269 -0.248,-2.304 -1.322,-6.12 -2.014,-8.715 l -4.604,-18.266 c -0.681,-2.402 -1.435,-7.022 -2.656,-9.202 -3.431,0.506 -35.021,8.539 -36.601,9.555 1.398,2.493 7.922,33.151 9.691,35.902 z"
233
+   id="path161"
234
+   style="fill:url(#SVGID_7_)" />	<linearGradient
235
+   id="SVGID_8_"
236
+   gradientUnits="userSpaceOnUse"
237
+   x1="403.31741"
238
+   y1="185.53709"
239
+   x2="783.67828"
240
+   y2="200.4277">		<stop
241
+   offset="0"
242
+   style="stop-color:#C71F25"
243
+   id="stop163" />		<stop
244
+   offset="0.0175"
245
+   style="stop-color:#C82627"
246
+   id="stop165" />		<stop
247
+   offset="0.388"
248
+   style="stop-color:#DB8168"
249
+   id="stop167" />		<stop
250
+   offset="0.6856"
251
+   style="stop-color:#EBBEAD"
252
+   id="stop169" />		<stop
253
+   offset="0.8958"
254
+   style="stop-color:#F8E9E2"
255
+   id="stop171" />		<stop
256
+   offset="1"
257
+   style="stop-color:#FFFFFF"
258
+   id="stop173" />	</linearGradient>	<path
259
+   fill-rule="evenodd"
260
+   clip-rule="evenodd"
261
+   fill="url(#SVGID_8_)"
262
+   d="m 597.507,216.342 36.881,-9.139 c -0.336,-2.278 -1.566,-6.283 -2.193,-8.75 -0.764,-3.003 -1.608,-5.874 -2.357,-9.144 l -4.723,-18.29 c -3.431,0.506 -35.02,8.539 -36.601,9.555 z"
263
+   id="path176"
264
+   style="fill:url(#SVGID_8_)" />	<linearGradient
265
+   id="SVGID_9_"
266
+   gradientUnits="userSpaceOnUse"
267
+   x1="401.01071"
268
+   y1="211.2813"
269
+   x2="781.22937"
270
+   y2="226.16631">		<stop
271
+   offset="0"
272
+   style="stop-color:#C71F25"
273
+   id="stop178" />		<stop
274
+   offset="0.0175"
275
+   style="stop-color:#C82627"
276
+   id="stop180" />		<stop
277
+   offset="0.388"
278
+   style="stop-color:#DB8168"
279
+   id="stop182" />		<stop
280
+   offset="0.6856"
281
+   style="stop-color:#EBBEAD"
282
+   id="stop184" />		<stop
283
+   offset="0.8958"
284
+   style="stop-color:#F8E9E2"
285
+   id="stop186" />		<stop
286
+   offset="1"
287
+   style="stop-color:#FFFFFF"
288
+   id="stop188" />	</linearGradient>	<path
289
+   fill-rule="evenodd"
290
+   clip-rule="evenodd"
291
+   fill="url(#SVGID_9_)"
292
+   d="m 508.438,238.891 27.399,-6.906 c 1.608,-0.451 2.753,-0.617 4.557,-1.099 2.064,-0.551 3.072,-0.934 4.926,-1.133 l -4.634,-18.272 c -0.665,-3.013 -3.833,-16.386 -4.922,-18.328 -1.923,1.078 -15.151,4.235 -17.951,4.845 -3.17,0.691 -16.221,3.745 -18.367,5.126 l 6.724,26.641 c 0.707,3.09 1.851,6.303 2.268,9.126 z"
293
+   id="path191"
294
+   style="fill:url(#SVGID_9_)" />	<linearGradient
295
+   id="SVGID_10_"
296
+   gradientUnits="userSpaceOnUse"
297
+   x1="402.44431"
298
+   y1="168.60941"
299
+   x2="782.75848"
300
+   y2="183.49809">		<stop
301
+   offset="0"
302
+   style="stop-color:#C71F25"
303
+   id="stop193" />		<stop
304
+   offset="0.0175"
305
+   style="stop-color:#C82627"
306
+   id="stop195" />		<stop
307
+   offset="0.388"
308
+   style="stop-color:#DB8168"
309
+   id="stop197" />		<stop
310
+   offset="0.6856"
311
+   style="stop-color:#EBBEAD"
312
+   id="stop199" />		<stop
313
+   offset="0.8958"
314
+   style="stop-color:#F8E9E2"
315
+   id="stop201" />		<stop
316
+   offset="1"
317
+   style="stop-color:#FFFFFF"
318
+   id="stop203" />	</linearGradient>	<path
319
+   fill-rule="evenodd"
320
+   clip-rule="evenodd"
321
+   fill="url(#SVGID_10_)"
322
+   d="m 498.007,195.606 c 1.255,-0.704 32.567,-8.884 36.184,-9.274 -0.267,-2.476 -1.263,-5.948 -2.025,-8.718 l -2.327,-9.138 c -0.671,-3.041 -3.793,-16.314 -4.922,-18.328 -4.277,0.46 -34.993,8.521 -36.601,9.555 0.939,1.675 3.868,14.754 4.76,17.935 1.059,3.779 3.487,15.724 4.931,17.968 z"
323
+   id="path206"
324
+   style="fill:url(#SVGID_10_)" />	<linearGradient
325
+   id="SVGID_11_"
326
+   gradientUnits="userSpaceOnUse"
327
+   x1="396.9863"
328
+   y1="227.6694"
329
+   x2="777.33148"
330
+   y2="242.5594">		<stop
331
+   offset="0"
332
+   style="stop-color:#C71F25"
333
+   id="stop208" />		<stop
334
+   offset="0.0175"
335
+   style="stop-color:#C82627"
336
+   id="stop210" />		<stop
337
+   offset="0.388"
338
+   style="stop-color:#DB8168"
339
+   id="stop212" />		<stop
340
+   offset="0.6856"
341
+   style="stop-color:#EBBEAD"
342
+   id="stop214" /><stop
343
+   offset="0.8958"
344
+   style="stop-color:#F8E9E2"
345
+   id="stop216" />		<stop
346
+   offset="1"
347
+   style="stop-color:#FFFFFF"
348
+   id="stop218" />	</linearGradient>	<path
349
+   fill-rule="evenodd"
350
+   clip-rule="evenodd"
351
+   fill="url(#SVGID_11_)"
352
+   d="m 291.192,246.729 18.232,-4.429 c 2.981,-0.65 5.991,-1.441 9.134,-2.306 1.856,-0.511 2.7,-0.588 4.557,-1.098 1.812,-0.498 3.514,-0.754 4.958,-1.306 -0.5,-1.31 -0.712,-2.848 -1.086,-4.192 -0.498,-1.784 -0.676,-2.86 -1.107,-4.558 -0.764,-3.004 -1.609,-5.875 -2.357,-9.144 -0.722,-3.155 -1.569,-6.255 -2.261,-9.125 l -2.462,-9.164 -27.4,6.906 c -2.453,0.688 -6.807,1.308 -9.2,2.649 z"
353
+   id="path221"
354
+   style="fill:url(#SVGID_11_)" />	<linearGradient
355
+   id="SVGID_12_"
356
+   gradientUnits="userSpaceOnUse"
357
+   x1="395.73489"
358
+   y1="240.7334"
359
+   x2="775.95679"
360
+   y2="255.6185">		<stop
361
+   offset="0"
362
+   style="stop-color:#C71F25"
363
+   id="stop223" />		<stop
364
+   offset="0.0175"
365
+   style="stop-color:#C82627"
366
+   id="stop225" />		<stop
367
+   offset="0.388"
368
+   style="stop-color:#DB8168"
369
+   id="stop227" />		<stop
370
+   offset="0.6856"
371
+   style="stop-color:#EBBEAD"
372
+   id="stop229" />		<stop
373
+   offset="0.8958"
374
+   style="stop-color:#F8E9E2"
375
+   id="stop231" />		<stop
376
+   offset="1"
377
+   style="stop-color:#FFFFFF"
378
+   id="stop233" />	</linearGradient>	<path
379
+   fill-rule="evenodd"
380
+   clip-rule="evenodd"
381
+   fill="url(#SVGID_12_)"
382
+   d="m 246.241,258.286 27.417,-6.992 c 1.899,-0.414 7.537,-1.64 9.184,-2.563 l -9.274,-36.184 -32.025,8.362 c -1.802,0.455 -2.727,0.487 -4.575,1.193 1.869,4.893 7.728,32.141 9.273,36.184 z"
383
+   id="path236"
384
+   style="fill:url(#SVGID_12_)" />	<linearGradient
385
+   id="SVGID_13_"
386
+   gradientUnits="userSpaceOnUse"
387
+   x1="394.2793"
388
+   y1="283.86429"
389
+   x2="774.63239"
390
+   y2="298.75449">		<stop
391
+   offset="0"
392
+   style="stop-color:#C71F25"
393
+   id="stop238" />		<stop
394
+   offset="0.0175"
395
+   style="stop-color:#C82627"
396
+   id="stop240" />		<stop
397
+   offset="0.388"
398
+   style="stop-color:#DB8168"
399
+   id="stop242" />		<stop
400
+   offset="0.6856"
401
+   style="stop-color:#EBBEAD"
402
+   id="stop244" />		<stop
403
+   offset="0.8958"
404
+   style="stop-color:#F8E9E2"
405
+   id="stop246" />		<stop
406
+   offset="1"
407
+   style="stop-color:#FFFFFF"
408
+   id="stop248" />	</linearGradient>	<path
409
+   fill-rule="evenodd"
410
+   clip-rule="evenodd"
411
+   fill="url(#SVGID_13_)"
412
+   d="m 257.37,301.706 c 1.419,-0.542 2.925,-0.724 4.574,-1.189 4.596,-1.297 29.84,-7.141 32.026,-8.367 -1.014,-2.654 -1.688,-6.098 -2.37,-8.784 l -4.5,-17.884 c -0.512,-1.857 -0.584,-2.7 -1.098,-4.557 -0.541,-1.955 -0.838,-2.811 -1.024,-4.542 -4.027,0.434 -21.784,5.421 -27.359,6.698 -1.753,0.401 -2.747,0.664 -4.565,1.146 -2.021,0.537 -3.027,0.558 -4.957,1.295 0.392,2.654 1.5,5.919 2.181,8.748 0.685,2.842 1.373,6.031 2.223,9.118 z"
413
+   id="path251"
414
+   style="fill:url(#SVGID_13_)" />	<linearGradient
415
+   id="SVGID_14_"
416
+   gradientUnits="userSpaceOnUse"
417
+   x1="402.17291"
418
+   y1="198.606"
419
+   x2="782.39478"
420
+   y2="213.4911">		<stop
421
+   offset="0"
422
+   style="stop-color:#C71F25"
423
+   id="stop253" />		<stop
424
+   offset="0.0175"
425
+   style="stop-color:#C82627"
426
+   id="stop255" />		<stop
427
+   offset="0.388"
428
+   style="stop-color:#DB8168"
429
+   id="stop257" />		<stop
430
+   offset="0.6856"
431
+   style="stop-color:#EBBEAD"
432
+   id="stop259" />		<stop
433
+   offset="0.8958"
434
+   style="stop-color:#F8E9E2"
435
+   id="stop261" />		<stop
436
+   offset="1"
437
+   style="stop-color:#FFFFFF"
438
+   id="stop263" />	</linearGradient>	<path
439
+   fill-rule="evenodd"
440
+   clip-rule="evenodd"
441
+   fill="url(#SVGID_14_)"
442
+   d="m 552.556,227.897 c 1.845,-0.705 2.772,-0.741 4.575,-1.193 l 32.025,-8.362 -9.274,-36.184 c -1.744,0.978 -7.053,1.938 -9.167,2.475 l -27.434,7.08 z"
443
+   id="path266"
444
+   style="fill:url(#SVGID_14_)" />	<linearGradient
445
+   id="SVGID_15_"
446
+   gradientUnits="userSpaceOnUse"
447
+   x1="403.62399"
448
+   y1="155.52879"
449
+   x2="783.93488"
450
+   y2="170.4174">		<stop
451
+   offset="0"
452
+   style="stop-color:#C71F25"
453
+   id="stop268" />	<stop
454
+   offset="0.0175"
455
+   style="stop-color:#C82627"
456
+   id="stop270" />		<stop
457
+   offset="0.388"
458
+   style="stop-color:#DB8168"
459
+   id="stop272" />		<stop
460
+   offset="0.6856"
461
+   style="stop-color:#EBBEAD"
462
+   id="stop274" />		<stop
463
+   offset="0.8958"
464
+   style="stop-color:#F8E9E2"
465
+   id="stop276" />		<stop
466
+   offset="1"
467
+   style="stop-color:#FFFFFF"
468
+   id="stop278" />	</linearGradient>	<path
469
+   fill-rule="evenodd"
470
+   clip-rule="evenodd"
471
+   fill="url(#SVGID_15_)"
472
+   d="m 541.844,184.196 18.248,-4.51 c 3.175,-0.888 5.942,-1.609 9.148,-2.381 1.997,-0.481 7.274,-1.423 9.203,-2.664 -1.397,-2.493 -7.921,-33.151 -9.69,-35.902 -1.625,0.911 -7.014,1.956 -8.787,2.383 -3.216,0.775 -5.929,1.587 -9.145,2.362 l -18.252,4.529 z"
473
+   id="path281"
474
+   style="fill:url(#SVGID_15_)" />	<linearGradient
475
+   id="SVGID_16_"
476
+   gradientUnits="userSpaceOnUse"
477
+   x1="393.44919"
478
+   y1="266.2886"
479
+   x2="773.80231"
480
+   y2="281.17889">		<stop
481
+   offset="0"
482
+   style="stop-color:#C71F25"
483
+   id="stop283" />		<stop
484
+   offset="0.0175"
485
+   style="stop-color:#C82627"
486
+   id="stop285" />		<stop
487
+   offset="0.388"
488
+   style="stop-color:#DB8168"
489
+   id="stop287" />		<stop
490
+   offset="0.6856"
491
+   style="stop-color:#EBBEAD"
492
+   id="stop289" />		<stop
493
+   offset="0.8958"
494
+   style="stop-color:#F8E9E2"
495
+   id="stop291" /><stop
496
+   offset="1"
497
+   style="stop-color:#FFFFFF"
498
+   id="stop293" />	</linearGradient>	<path
499
+   fill-rule="evenodd"
500
+   clip-rule="evenodd"
501
+   fill="url(#SVGID_16_)"
502
+   d="m 158.005,280.273 36.882,-9.139 -4.405,-17.866 c -0.885,-3.213 -1.633,-6.13 -2.395,-9.151 -0.531,-2.105 -1.501,-7.431 -2.474,-9.167 l -36.6,9.555 c 1.014,2.654 1.688,6.098 2.37,8.784 l 5.598,22.441 c 0.54,1.956 0.838,2.812 1.024,4.543 z"
503
+   id="path296"
504
+   style="fill:url(#SVGID_16_)" />	<polygon
505
+   fill-rule="evenodd"
506
+   clip-rule="evenodd"
507
+   fill="#07a684"
508
+   points="630.455,311.692 678.414,310.542 638.408,302.862 619.083,199.136 590.676,355.724 571.278,247.05 550.312,312.566 538.481,293.595 113.586,297.775 536.67,304.974 552.485,333.67 568.795,282.412 589.803,401.253 619.59,241.365 "
509
+   id="polygon298" />	<path
510
+   fill-rule="evenodd"
511
+   clip-rule="evenodd"
512
+   fill="#46559f"
513
+   d="m 274.562,230.549 c 0,57.098 5.361,107.248 40.02,155.896 11.328,15.901 34.279,36.627 51.874,46.145 8.764,3.648 12.128,1.34 19.425,-2.722 18.741,-11.595 34.303,-26.762 47.408,-44.097 17.153,-22.691 26.896,-45.519 33.583,-75.289 4.882,-21.731 6.138,-56.203 6.138,-79.994 -17.925,-4.115 -35.557,-5.415 -53.137,-11.008 -15.59,-4.959 -31.373,-11.585 -46.149,-19.578 -14.282,8.249 -31.738,15.253 -46.68,19.877 -8.253,2.554 -16.787,4.629 -25.62,6.185 -8.225,1.449 -19.524,2.59 -26.862,4.585 z"
514
+   id="path300" />	<path
515
+   fill-rule="evenodd"
516
+   clip-rule="evenodd"
517
+   fill="#ffffff"
518
+   d="m 288.361,241.436 c 26.809,-3.985 41.84,-6.749 65.636,-17.235 2.801,-1.234 17.889,-8.598 19.464,-8.65 1.135,-0.038 32.395,14.068 38.752,16.184 12.618,4.2 32.501,8.164 46.442,9.702 -1.584,61.138 -3.741,96.915 -39.227,142.569 -6.339,8.154 -36.871,36.49 -45.973,36.42 -8.401,-0.065 -30.688,-20.519 -37.528,-27.653 -7.415,-7.732 -8.352,-8.023 -15.078,-17.626 C 292.344,334.454 288.426,296.1 288.361,241.436 Z m -6.317,-4.456 c -0.843,62.707 9.403,119.281 51.383,161.188 4.278,4.271 32.825,29.88 41.574,28.299 13.727,-2.48 44.578,-32.924 55.776,-48.456 30.212,-41.899 34.528,-85.074 34.798,-141.227 -24.978,-3.104 -49.407,-8.387 -71.459,-18.756 -12.623,-5.464 -16.672,-7.727 -20.615,-8.564 -4.619,1.351 -7.855,3.494 -20.475,8.886 -30.451,14.067 -42.425,11.608 -70.982,18.63 z"
519
+   id="path302" />	<linearGradient
520
+   id="SVGID_17_"
521
+   gradientUnits="userSpaceOnUse"
522
+   x1="361.022"
523
+   y1="318.25781"
524
+   x2="805.86371"
525
+   y2="318.25781">		<stop
526
+   offset="0"
527
+   style="stop-color:#46559F"
528
+   id="stop304" />		<stop
529
+   offset="0.28"
530
+   style="stop-color:#FFFFFF"
531
+   id="stop306" />		<stop
532
+   offset="1"
533
+   style="stop-color:#FFFFFF"
534
+   id="stop308" />	</linearGradient>			<path
535
+   fill-rule="evenodd"
536
+   clip-rule="evenodd"
537
+   fill="url(#SVGID_17_)"
538
+   stroke="#46559f"
539
+   stroke-width="0.216"
540
+   stroke-miterlimit="2.6131"
541
+   d="m 376.992,415.69 c 34.036,-19.377 57.598,-51.85 69.187,-87.665 4.077,-12.604 6.11,-26.48 7.541,-40.086 2.427,-23.09 4.077,-41.459 -0.947,-43.069 -10.205,-3.271 -27.228,-5.531 -42.18,-11.183 -15.101,-4.463 -36.881,-19.732 -36.934,-9.614 -0.097,18.452 -0.014,170.067 0.552,190.465 0.043,1.542 2.368,1.39 2.781,1.152 z"
542
+   id="path311"
543
+   style="fill:url(#SVGID_17_)" /></g></g><g
544
+       aria-label="System Health and Security Probe"
545
+       transform="translate(-61.024282,-30.925505)"
546
+       id="text847"
547
+       style="font-weight:bold;font-size:42.6667px;line-height:1.25;font-family:Inter;-inkscape-font-specification:'Inter, Bold';letter-spacing:0.7px;word-spacing:0px;white-space:pre;shape-inside:url(#rect849);shape-padding:0.146955;display:inline"><path
548
+         d="m 73.525625,559.63431 q -3.413336,0 -6.357338,-0.72533 -2.901336,-0.768 -4.77867,-2.09067 -0.725334,-0.55467 -1.066668,-1.152 -0.298667,-0.59733 -0.298667,-1.536 0,-1.28 0.768001,-2.21867 0.768001,-0.93867 1.792001,-0.93867 0.554667,0 1.066668,0.17067 0.512,0.17067 1.280001,0.64 1.749334,0.98133 3.456002,1.408 1.749335,0.42667 3.925337,0.42667 2.517335,0 3.797336,-0.72534 1.322667,-0.768 1.322667,-2.21866 0,-0.98134 -1.237334,-1.66401 -1.194667,-0.72533 -4.608003,-1.408 -4.224003,-0.896 -6.613339,-2.13333 -2.389335,-1.23734 -3.370669,-2.90134 -0.938667,-1.70666 -0.938667,-4.096 0,-2.73067 1.621334,-4.94934 1.621335,-2.21866 4.437337,-3.456 2.858669,-1.28 6.400005,-1.28 3.114669,0 5.546671,0.68267 2.432001,0.68266 4.437336,2.13333 0.768001,0.55467 1.066668,1.19467 0.341333,0.59733 0.341333,1.49333 0,1.28 -0.768,2.21867 -0.725334,0.93867 -1.749335,0.93867 -0.554667,0 -1.024001,-0.128 -0.469333,-0.17067 -1.322667,-0.68267 -0.213334,-0.128 -1.237335,-0.64 -0.981334,-0.55467 -2.346668,-0.85333 -1.322668,-0.34134 -2.901335,-0.34134 -2.176002,0 -3.49867,0.85334 -1.322667,0.81067 -1.322667,2.176 0,0.81067 0.469333,1.32267 0.469334,0.512 1.749335,1.024 1.280001,0.46933 3.797336,0.98133 4.096003,0.896 6.442672,2.176 2.346668,1.23734 3.328002,2.90134 0.981334,1.664 0.981334,3.92534 0,2.816 -1.578668,4.992 -1.578668,2.13333 -4.437336,3.328 -2.816002,1.152 -6.570672,1.152 z"
549
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
550
+         id="path8332" /><path
551
+         d="m 104.30564,539.96496 q 0.46934,-1.06666 1.28,-1.57866 0.81067,-0.512 1.79201,-0.512 1.408,0 2.51733,0.93866 1.10933,0.93867 1.10933,2.26134 0,0.72533 -0.34133,1.408 l -11.306674,22.65602 q -0.512,1.06666 -1.365334,1.57866 -0.810667,0.51201 -1.792001,0.51201 -1.408002,0 -2.517336,-0.93867 -1.066667,-0.896 -1.066667,-2.21867 0,-0.72533 0.384,-1.49333 l 2.773336,-5.58934 -7.253339,-14.50668 q -0.341334,-0.768 -0.341334,-1.36533 0,-1.36534 1.194668,-2.30401 1.194667,-0.98133 2.688002,-0.98133 1.024001,0 1.877335,0.55467 0.896,0.512 1.365334,1.57866 l 4.52267,9.81335 z"
552
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
553
+         id="path8334" /><path
554
+         d="m 122.15768,559.59165 q -2.85867,0 -4.82133,-0.42667 -1.96267,-0.42667 -3.45601,-1.36534 -0.59733,-0.29866 -0.93866,-1.024 -0.34134,-0.72533 -0.34134,-1.62133 0,-1.152 0.59734,-1.87734 0.64,-0.768 1.57866,-0.768 0.64,0 1.19467,0.17067 0.55467,0.128 1.36534,0.46933 1.36533,0.46934 2.38933,0.72534 1.06667,0.256 2.688,0.256 1.152,0 1.792,-0.29867 0.68267,-0.34133 0.68267,-0.93867 0,-0.46933 -0.34133,-0.72533 -0.29867,-0.256 -1.19467,-0.46933 -0.896,-0.256 -3.02934,-0.68267 -3.79733,-0.72533 -5.504,-2.176 -1.664,-1.49334 -1.664,-4.18134 0,-1.96267 1.19467,-3.54133 1.23733,-1.57867 3.37067,-2.47467 2.13333,-0.896 4.77867,-0.896 1.92,0 3.712,0.46933 1.83467,0.46933 3.24267,1.32267 1.32267,0.768 1.32267,2.47467 0,1.19466 -0.64001,2.00533 -0.64,0.81067 -1.57866,0.81067 -1.10934,0 -2.64534,-0.72534 -1.024,-0.46933 -1.83467,-0.68266 -0.768,-0.256 -1.83466,-0.256 -1.06667,0 -1.66401,0.34133 -0.59733,0.29867 -0.59733,0.896 0,0.68267 0.81067,1.06667 0.85333,0.384 3.328,0.85333 4.13867,0.72534 5.84534,2.21867 1.70667,1.45067 1.70667,4.224 0,3.11467 -2.60267,4.99201 -2.56,1.83467 -6.91201,1.83467 z"
555
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
556
+         id="path8336" /><path
557
+         d="m 147.68972,554.08764 q 2.85867,0.17067 2.85867,2.56 0,1.49334 -1.152,2.21867 -1.152,0.72534 -3.28533,0.59734 l -1.19467,-0.0853 q -3.84,-0.29866 -5.84534,-2.304 -1.96267,-2.048 -1.96267,-5.67467 v -7.55201 h -1.23733 q -3.41334,0 -3.41334,-2.816 0,-2.77333 3.41334,-2.77333 h 1.23733 V 535.485 q 0,-1.62133 1.024,-2.56 1.024,-0.98133 2.77334,-0.98133 1.74933,0 2.77333,0.98133 1.024,0.93867 1.024,2.56 v 2.77334 h 2.34667 q 3.41334,0 3.41334,2.77333 0,2.816 -3.41334,2.816 h -2.34667 v 8.19201 q 0,0.81067 0.46934,1.36533 0.512,0.55467 1.28,0.59734 z"
558
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
559
+         id="path8338" /><path
560
+         d="m 170.32044,552.50897 q 0.98134,0 1.57867,0.768 0.64,0.76801 0.64,2.00534 0,1.70667 -1.664,2.60267 -1.45067,0.72533 -3.456,1.23733 -1.96267,0.46934 -3.62667,0.46934 -3.49867,0 -6.10134,-1.32267 -2.60267,-1.32267 -4.01067,-3.79734 -1.408,-2.47467 -1.408,-5.80267 0,-3.15733 1.32267,-5.632 1.36533,-2.51734 3.75467,-3.88267 2.432,-1.408 5.46133,-1.408 2.94401,0 5.16267,1.28 2.21867,1.28 3.41334,3.62667 1.23733,2.34667 1.23733,5.504 0,0.98133 -0.46933,1.536 -0.42667,0.512 -1.28,0.512 H 159.6111 q 0.29867,2.048 1.32267,2.944 1.024,0.89601 3.02933,0.89601 1.06667,0 1.96267,-0.21334 0.896,-0.256 2.00534,-0.68267 0.64,-0.256 1.23733,-0.42666 0.64,-0.21334 1.152,-0.21334 z m -7.296,-9.64267 q -1.49334,0 -2.38934,0.98133 -0.896,0.93867 -1.06667,2.77334 h 6.69868 q -0.256,-3.75467 -3.24267,-3.75467 z"
561
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
562
+         id="path8340" /><path
563
+         d="m 203.57512,537.7463 q 3.45601,0 5.33334,2.09066 1.87733,2.04801 1.87733,6.95468 v 9.216 q 0,1.74934 -1.10933,2.64534 -1.06667,0.85333 -2.688,0.85333 -1.62134,0 -2.73067,-0.85333 -1.06667,-0.896 -1.06667,-2.64534 v -9.38667 q 0,-1.70667 -0.59733,-2.38934 -0.59734,-0.68266 -1.74934,-0.68266 -1.49333,0 -2.38933,1.06666 -0.896,1.06667 -0.896,2.94401 v 8.448 q 0,1.74934 -1.06667,2.64534 -1.06667,0.85333 -2.73067,0.85333 -1.62133,0 -2.73067,-0.85333 -1.06666,-0.896 -1.06666,-2.64534 v -9.38667 q 0,-1.70667 -0.59734,-2.38934 -0.59733,-0.68266 -1.74933,-0.68266 -1.49334,0 -2.38934,1.06666 -0.85333,1.06667 -0.85333,2.94401 v 8.448 q 0,1.74934 -1.10934,2.64534 -1.06666,0.85333 -2.688,0.85333 -1.62133,0 -2.73067,-0.85333 -1.06666,-0.896 -1.06666,-2.64534 v -14.76267 q 0,-1.66401 1.10933,-2.51734 1.152,-0.896 2.73067,-0.896 1.49333,0 2.47467,0.81067 1.024,0.768 1.06666,2.26133 2.09067,-3.15733 6.40001,-3.15733 4.56534,0 6.10134,3.712 1.06666,-1.70667 2.85867,-2.688 1.792,-1.024 4.05333,-1.024 z"
564
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
565
+         id="path8342" /><path
566
+         d="m 252.9751,528.95696 q 1.74934,0 2.77334,1.06666 1.06667,1.024 1.06667,2.77334 v 22.82668 q 0,1.74934 -1.06667,2.81601 -1.024,1.06666 -2.77334,1.06666 -1.74933,0 -2.816,-1.024 -1.024,-1.06667 -1.024,-2.85867 v -8.53334 h -12.28801 v 8.53334 q 0,1.74934 -1.06667,2.81601 -1.024,1.06666 -2.77333,1.06666 -1.74934,0 -2.816,-1.024 -1.024,-1.06667 -1.024,-2.85867 v -22.82668 q 0,-1.74934 1.024,-2.77334 1.06666,-1.06666 2.816,-1.06666 1.74933,0 2.77333,1.06666 1.06667,1.024 1.06667,2.77334 v 8.06401 h 12.28801 v -8.06401 q 0,-1.74934 1.024,-2.77334 1.06667,-1.06666 2.816,-1.06666 z"
567
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
568
+         id="path8344" /><path
569
+         d="m 279.53117,552.50897 q 0.98133,0 1.57866,0.768 0.64001,0.76801 0.64001,2.00534 0,1.70667 -1.66401,2.60267 -1.45066,0.72533 -3.456,1.23733 -1.96267,0.46934 -3.62667,0.46934 -3.49867,0 -6.10134,-1.32267 -2.60266,-1.32267 -4.01067,-3.79734 -1.408,-2.47467 -1.408,-5.80267 0,-3.15733 1.32267,-5.632 1.36534,-2.51734 3.75467,-3.88267 2.432,-1.408 5.46134,-1.408 2.944,0 5.16267,1.28 2.21867,1.28 3.41333,3.62667 1.23734,2.34667 1.23734,5.504 0,0.98133 -0.46934,1.536 -0.42666,0.512 -1.28,0.512 h -11.264 q 0.29866,2.048 1.32266,2.944 1.024,0.89601 3.02934,0.89601 1.06667,0 1.96267,-0.21334 0.896,-0.256 2.00533,-0.68267 0.64,-0.256 1.23734,-0.42666 0.64,-0.21334 1.152,-0.21334 z m -7.29601,-9.64267 q -1.49333,0 -2.38933,0.98133 -0.896,0.93867 -1.06667,2.77334 h 6.69867 q -0.256,-3.75467 -3.24267,-3.75467 z"
570
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
571
+         id="path8346" /><path
572
+         d="m 295.76183,537.7463 q 4.86401,0 7.16801,2.34666 2.34667,2.30401 2.34667,7.04001 v 8.91734 q 0,1.62133 -0.98134,2.56 -0.93866,0.896 -2.64533,0.896 -1.49334,0 -2.47467,-0.85333 -0.93867,-0.85334 -1.024,-2.304 -0.59733,1.536 -2.00534,2.38933 -1.408,0.85334 -3.37067,0.85334 -2.176,0 -3.92533,-0.85334 -1.74934,-0.896 -2.77334,-2.432 -0.98133,-1.57867 -0.98133,-3.54134 0,-2.26133 1.152,-3.584 1.19467,-1.36533 3.75467,-1.96267 2.56,-0.59733 6.912,-0.59733 h 1.15201 v -0.512 q 0,-1.49334 -0.68267,-2.13334 -0.68267,-0.68266 -2.304,-0.68266 -1.74934,0 -5.12001,1.19466 -0.98133,0.34134 -1.664,0.34134 -1.06667,0 -1.70667,-0.768 -0.64,-0.768 -0.64,-2.00534 0,-0.93866 0.384,-1.536 0.384,-0.59733 1.23734,-1.06667 1.49333,-0.768 3.75467,-1.23733 2.26133,-0.46933 4.43733,-0.46933 z m -1.19466,16.76801 q 1.536,0 2.51733,-1.06667 0.98134,-1.10933 0.98134,-2.816 v -0.512 h -0.68267 q -2.73067,0 -3.88267,0.512 -1.152,0.46933 -1.152,1.62133 0,0.98134 0.59733,1.62134 0.64,0.64 1.62134,0.64 z"
573
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
574
+         id="path8348" /><path
575
+         d="m 314.04051,559.50631 q -1.62133,0 -2.73067,-0.85333 -1.06667,-0.896 -1.06667,-2.64534 v -23.50935 q 0,-1.74933 1.06667,-2.64533 1.10934,-0.896 2.73067,-0.896 1.62133,0 2.688,0.896 1.10934,0.896 1.10934,2.64533 v 23.50935 q 0,1.74934 -1.10934,2.64534 -1.06667,0.85333 -2.688,0.85333 z"
576
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
577
+         id="path8350" /><path
578
+         d="m 336.88449,554.08764 q 2.85867,0.17067 2.85867,2.56 0,1.49334 -1.152,2.21867 -1.152,0.72534 -3.28533,0.59734 l -1.19467,-0.0853 q -3.84,-0.29866 -5.84534,-2.304 -1.96267,-2.048 -1.96267,-5.67467 v -7.55201 h -1.23733 q -3.41334,0 -3.41334,-2.816 0,-2.77333 3.41334,-2.77333 h 1.23733 V 535.485 q 0,-1.62133 1.024,-2.56 1.024,-0.98133 2.77334,-0.98133 1.74933,0 2.77333,0.98133 1.02401,0.93867 1.02401,2.56 v 2.77334 h 2.34666 q 3.41334,0 3.41334,2.77333 0,2.816 -3.41334,2.816 h -2.34666 v 8.19201 q 0,0.81067 0.46933,1.36533 0.512,0.55467 1.28,0.59734 z"
579
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
580
+         id="path8352" /><path
581
+         d="m 356.74187,537.7463 q 3.66934,0 5.46134,2.26133 1.792,2.21867 1.792,6.78401 v 9.216 q 0,1.62134 -1.024,2.56001 -1.024,0.93866 -2.77334,0.93866 -1.74933,0 -2.77333,-0.93866 -1.024,-0.93867 -1.024,-2.56001 v -9.38667 q 0,-3.072 -2.64534,-3.072 -1.70667,0 -2.73067,1.10933 -0.98133,1.06667 -0.98133,2.90134 v 8.448 q 0,1.62134 -1.024,2.56001 -1.024,0.93866 -2.77334,0.93866 -1.74933,0 -2.77333,-0.93866 -1.024,-0.93867 -1.024,-2.56001 v -23.63735 q 0,-1.49333 1.06666,-2.432 1.06667,-0.98133 2.81601,-0.98133 1.664,0 2.688,0.896 1.024,0.896 1.024,2.38933 v 8.53334 q 1.152,-1.49333 2.85867,-2.26133 1.70667,-0.768 3.84,-0.768 z"
582
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
583
+         id="path8354" /><path
584
+         d="m 391.63519,537.7463 q 4.864,0 7.168,2.34666 2.34667,2.30401 2.34667,7.04001 v 8.91734 q 0,1.62133 -0.98133,2.56 -0.93867,0.896 -2.64534,0.896 -1.49333,0 -2.47467,-0.85333 -0.93867,-0.85334 -1.024,-2.304 -0.59733,1.536 -2.00533,2.38933 -1.408,0.85334 -3.37067,0.85334 -2.176,0 -3.92534,-0.85334 -1.74933,-0.896 -2.77333,-2.432 -0.98134,-1.57867 -0.98134,-3.54134 0,-2.26133 1.152,-3.584 1.19467,-1.36533 3.75467,-1.96267 2.56,-0.59733 6.91201,-0.59733 h 1.152 v -0.512 q 0,-1.49334 -0.68267,-2.13334 -0.68267,-0.68266 -2.304,-0.68266 -1.74934,0 -5.12001,1.19466 -0.98133,0.34134 -1.664,0.34134 -1.06666,0 -1.70666,-0.768 -0.64,-0.768 -0.64,-2.00534 0,-0.93866 0.384,-1.536 0.384,-0.59733 1.23733,-1.06667 1.49333,-0.768 3.75467,-1.23733 2.26133,-0.46933 4.43734,-0.46933 z m -1.19467,16.76801 q 1.536,0 2.51733,-1.06667 0.98134,-1.10933 0.98134,-2.816 v -0.512 h -0.68267 q -2.73067,0 -3.88267,0.512 -1.152,0.46933 -1.152,1.62133 0,0.98134 0.59733,1.62134 0.64,0.64 1.62134,0.64 z"
585
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
586
+         id="path8356" /><path
587
+         d="m 420.2392,537.7463 q 3.75467,0 5.58934,2.26133 1.83467,2.21867 1.83467,6.78401 v 9.216 q 0,1.62134 -1.024,2.56001 -1.024,0.93866 -2.77334,0.93866 -1.74933,0 -2.77333,-0.93866 -1.024,-0.93867 -1.024,-2.56001 v -8.87467 q 0,-1.87733 -0.68267,-2.73067 -0.64,-0.85333 -1.96267,-0.85333 -1.70667,0 -2.73067,1.10933 -0.98133,1.06667 -0.98133,2.90134 v 8.448 q 0,1.62134 -1.024,2.56001 -1.024,0.93866 -2.77334,0.93866 -1.74933,0 -2.77333,-0.93866 -1.024,-0.93867 -1.024,-2.56001 v -14.76267 q 0,-1.49334 1.06666,-2.43201 1.06667,-0.98133 2.77334,-0.98133 1.62133,0 2.56,0.896 0.98133,0.896 0.98133,2.34667 1.10934,-1.62134 2.85867,-2.47467 1.74934,-0.85333 3.88267,-0.85333 z"
588
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
589
+         id="path8358" /><path
590
+         d="m 450.97654,528.95696 q 1.70667,0 2.77334,0.98133 1.10933,0.93867 1.10933,2.432 v 23.63735 q 0,1.62134 -1.024,2.56001 -1.024,0.93866 -2.73067,0.93866 -1.57867,0 -2.60267,-0.81066 -0.98133,-0.85334 -1.10933,-2.30401 -0.896,1.49334 -2.64534,2.34667 -1.70666,0.85334 -3.79733,0.85334 -2.688,0 -4.82134,-1.36534 -2.09067,-1.408 -3.28533,-3.92533 -1.19467,-2.51734 -1.19467,-5.76001 0,-3.24267 1.152,-5.67467 1.19467,-2.47467 3.28533,-3.79734 2.13334,-1.32266 4.86401,-1.32266 2.00533,0 3.66933,0.81066 1.70667,0.81067 2.64534,2.17601 v -8.49068 q 0,-1.49333 0.98133,-2.38933 1.024,-0.896 2.73067,-0.896 z m -7.72267,24.96002 q 2.00533,0 3.072,-1.36534 1.06667,-1.36533 1.06667,-3.92534 0,-2.51733 -1.06667,-3.84 -1.06667,-1.36533 -3.072,-1.36533 -1.96267,0 -3.02934,1.32267 -1.06666,1.32266 -1.06666,3.79733 0,2.56 1.06666,3.968 1.10934,1.40801 3.02934,1.40801 z"
591
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
592
+         id="path8360" /><path
593
+         d="m 484.71789,559.63431 q -3.41334,0 -6.35734,-0.72533 -2.90134,-0.768 -4.77867,-2.09067 -0.72534,-0.55467 -1.06667,-1.152 -0.29867,-0.59733 -0.29867,-1.536 0,-1.28 0.768,-2.21867 0.768,-0.93867 1.79201,-0.93867 0.55466,0 1.06666,0.17067 0.512,0.17067 1.28,0.64 1.74934,0.98133 3.45601,1.408 1.74933,0.42667 3.92533,0.42667 2.51734,0 3.79734,-0.72534 1.32267,-0.768 1.32267,-2.21866 0,-0.98134 -1.23734,-1.66401 -1.19467,-0.72533 -4.608,-1.408 -4.224,-0.896 -6.61334,-2.13333 -2.38933,-1.23734 -3.37067,-2.90134 -0.93867,-1.70666 -0.93867,-4.096 0,-2.73067 1.62134,-4.94934 1.62133,-2.21866 4.43733,-3.456 2.85867,-1.28 6.40001,-1.28 3.11467,0 5.54667,0.68267 2.432,0.68266 4.43734,2.13333 0.768,0.55467 1.06666,1.19467 0.34134,0.59733 0.34134,1.49333 0,1.28 -0.768,2.21867 -0.72534,0.93867 -1.74934,0.93867 -0.55466,0 -1.024,-0.128 -0.46933,-0.17067 -1.32267,-0.68267 -0.21333,-0.128 -1.23733,-0.64 -0.98133,-0.55467 -2.34667,-0.85333 -1.32267,-0.34134 -2.90133,-0.34134 -2.17601,0 -3.49867,0.85334 -1.32267,0.81067 -1.32267,2.176 0,0.81067 0.46933,1.32267 0.46934,0.512 1.74934,1.024 1.28,0.46933 3.79733,0.98133 4.09601,0.896 6.44268,2.176 2.34666,1.23734 3.328,2.90134 0.98133,1.664 0.98133,3.92534 0,2.816 -1.57867,4.992 -1.57866,2.13333 -4.43733,3.328 -2.816,1.152 -6.57067,1.152 z"
594
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
595
+         id="path8362" /><path
596
+         d="m 518.99656,552.50897 q 0.98133,0 1.57867,0.768 0.64,0.76801 0.64,2.00534 0,1.70667 -1.664,2.60267 -1.45067,0.72533 -3.45601,1.23733 -1.96266,0.46934 -3.62667,0.46934 -3.49866,0 -6.10133,-1.32267 -2.60267,-1.32267 -4.01067,-3.79734 -1.408,-2.47467 -1.408,-5.80267 0,-3.15733 1.32266,-5.632 1.36534,-2.51734 3.75467,-3.88267 2.43201,-1.408 5.46134,-1.408 2.944,0 5.16267,1.28 2.21867,1.28 3.41334,3.62667 1.23733,2.34667 1.23733,5.504 0,0.98133 -0.46933,1.536 -0.42667,0.512 -1.28,0.512 h -11.26401 q 0.29867,2.048 1.32267,2.944 1.024,0.89601 3.02933,0.89601 1.06667,0 1.96267,-0.21334 0.896,-0.256 2.00533,-0.68267 0.64001,-0.256 1.23734,-0.42666 0.64,-0.21334 1.152,-0.21334 z m -7.29601,-9.64267 q -1.49333,0 -2.38933,0.98133 -0.896,0.93867 -1.06667,2.77334 h 6.69867 q -0.256,-3.75467 -3.24267,-3.75467 z"
597
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
598
+         id="path8364" /><path
599
+         d="m 535.56856,559.59165 q -5.12,0 -8.10667,-2.90134 -2.98667,-2.90133 -2.98667,-7.89334 0,-3.28533 1.45067,-5.80267 1.45066,-2.51733 4.05333,-3.88267 2.64534,-1.36533 6.01601,-1.36533 1.792,0 3.584,0.46933 1.792,0.46933 3.15734,1.32267 1.32266,0.81067 1.32266,2.47467 0,1.32266 -0.64,2.176 -0.59733,0.81067 -1.57866,0.81067 -0.64001,0 -1.23734,-0.17067 -0.59733,-0.21334 -1.32267,-0.59734 -0.85333,-0.384 -1.45066,-0.55466 -0.59734,-0.21334 -1.32267,-0.21334 -4.22401,0 -4.22401,5.16267 0,2.56001 1.06667,3.92534 1.10934,1.32267 3.15734,1.32267 0.72533,0 1.32267,-0.17067 0.64,-0.21333 1.408,-0.59733 0.85333,-0.384 1.36533,-0.55467 0.55467,-0.21333 1.19467,-0.21333 0.98133,0 1.57867,0.85333 0.64,0.81067 0.64,2.13334 0,0.81066 -0.34134,1.49333 -0.34133,0.64 -0.93866,0.98133 -2.94401,1.79201 -7.16801,1.79201 z"
600
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
601
+         id="path8366" /><path
602
+         d="m 564.85525,537.83163 q 1.74934,0 2.77334,0.93867 1.024,0.93866 1.024,2.56 v 14.76268 q 0,1.49333 -1.06667,2.47467 -1.06666,0.93866 -2.77333,0.93866 -1.536,0 -2.51734,-0.81066 -0.98133,-0.85334 -1.024,-2.26134 -0.98133,1.536 -2.51733,2.34667 -1.49334,0.81067 -3.45601,0.81067 -4.05333,0 -6.016,-2.21867 -1.96267,-2.26134 -1.96267,-6.82667 v -9.21601 q 0,-1.62134 1.024,-2.56 1.024,-0.93867 2.77334,-0.93867 1.74933,0 2.77333,0.93867 1.024,0.93866 1.024,2.56 v 9.38667 q 0,3.07201 2.64534,3.07201 1.536,0 2.51733,-1.10934 0.98134,-1.10933 0.98134,-2.90133 v -8.44801 q 0,-1.62134 1.024,-2.56 1.024,-0.93867 2.77333,-0.93867 z"
603
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
604
+         id="path8368" /><path
605
+         d="m 587.10197,537.83163 q 1.45067,-0.128 2.304,0.68267 0.85333,0.768 0.85333,2.304 0,1.70667 -0.81066,2.47467 -0.768,0.768 -2.81601,0.98133 l -1.28,0.128 q -2.13333,0.256 -3.072,1.36534 -0.896,1.06666 -0.896,2.944 v 7.296 q 0,1.74934 -1.10933,2.64534 -1.06667,0.85333 -2.68801,0.85333 -1.62133,0 -2.73067,-0.85333 -1.06666,-0.896 -1.06666,-2.64534 v -14.76267 q 0,-1.62134 1.06666,-2.51734 1.10934,-0.896 2.64534,-0.896 1.57867,0 2.51734,0.85333 0.98133,0.85334 0.98133,2.38934 v 0.81067 q 0.68267,-1.87734 2.21867,-2.90134 1.57867,-1.024 3.28533,-1.10933 z"
606
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
607
+         id="path8370" /><path
608
+         d="m 596.16463,559.50631 q -1.62134,0 -2.73067,-0.85333 -1.06667,-0.896 -1.06667,-2.64534 V 541.3303 q 0,-1.74934 1.06667,-2.60267 1.10933,-0.896 2.73067,-0.896 1.62133,0 2.688,0.896 1.10933,0.85333 1.10933,2.60267 v 14.67734 q 0,1.74934 -1.10933,2.64534 -1.06667,0.85333 -2.688,0.85333 z m 0,-24.66135 q -1.92001,0 -3.07201,-0.98133 -1.10933,-1.024 -1.10933,-2.68801 0,-1.664 1.10933,-2.64533 1.152,-0.98133 3.07201,-0.98133 1.87733,0 3.02933,0.98133 1.152,0.98133 1.152,2.64533 0,1.66401 -1.152,2.68801 -1.10933,0.98133 -3.02933,0.98133 z"
609
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
610
+         id="path8372" /><path
611
+         d="m 619.00864,554.08764 q 2.85867,0.17067 2.85867,2.56 0,1.49334 -1.152,2.21867 -1.152,0.72534 -3.28534,0.59734 l -1.19467,-0.0853 q -3.84,-0.29866 -5.84533,-2.304 -1.96267,-2.048 -1.96267,-5.67467 v -7.55201 h -1.23734 q -3.41333,0 -3.41333,-2.816 0,-2.77333 3.41333,-2.77333 h 1.23734 V 535.485 q 0,-1.62133 1.024,-2.56 1.024,-0.98133 2.77333,-0.98133 1.74934,0 2.77334,0.98133 1.024,0.93867 1.024,2.56 v 2.77334 h 2.34667 q 3.41334,0 3.41334,2.77333 0,2.816 -3.41334,2.816 h -2.34667 v 8.19201 q 0,0.81067 0.46933,1.36533 0.51201,0.55467 1.28001,0.59734 z"
612
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
613
+         id="path8374" /><path
614
+         d="m 639.07932,539.96496 q 0.46933,-1.06666 1.28,-1.57866 0.81066,-0.512 1.792,-0.512 1.408,0 2.51733,0.93866 1.10934,0.93867 1.10934,2.26134 0,0.72533 -0.34134,1.408 l -11.30667,22.65602 q -0.512,1.06666 -1.36534,1.57866 -0.81066,0.51201 -1.792,0.51201 -1.408,0 -2.51733,-0.93867 -1.06667,-0.896 -1.06667,-2.21867 0,-0.72533 0.384,-1.49333 l 2.77334,-5.58934 -7.25334,-14.50668 q -0.34134,-0.768 -0.34134,-1.36533 0,-1.36534 1.19467,-2.30401 1.19467,-0.98133 2.688,-0.98133 1.024,0 1.87734,0.55467 0.896,0.512 1.36533,1.57866 l 4.52267,9.81335 z"
615
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
616
+         id="path8376" /><path
617
+         d="m 666.12201,559.50631 q -1.79201,0 -2.85867,-1.024 -1.024,-1.06667 -1.024,-2.85867 v -22.82668 q 0,-1.74934 0.93866,-2.688 0.93867,-0.93867 2.68801,-0.93867 h 10.92267 q 4.992,0 7.76534,2.56 2.77333,2.51734 2.77333,7.04001 0,4.48 -2.816,7.04 -2.77333,2.56 -7.72267,2.56 h -6.69867 v 7.25334 q 0,1.792 -1.06667,2.85867 -1.06667,1.024 -2.90133,1.024 z m 9.6,-17.02401 q 2.176,0 3.2,-0.896 1.06667,-0.896 1.06667,-2.77334 0,-3.712 -4.26667,-3.712 h -5.632 v 7.38134 z"
618
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
619
+         id="path8378" /><path
620
+         d="m 704.19804,537.83163 q 1.45066,-0.128 2.304,0.68267 0.85333,0.768 0.85333,2.304 0,1.70667 -0.81066,2.47467 -0.76801,0.768 -2.81601,0.98133 l -1.28,0.128 q -2.13333,0.256 -3.072,1.36534 -0.896,1.06666 -0.896,2.944 v 7.296 q 0,1.74934 -1.10934,2.64534 -1.06666,0.85333 -2.688,0.85333 -1.62133,0 -2.73067,-0.85333 -1.06666,-0.896 -1.06666,-2.64534 v -14.76267 q 0,-1.62134 1.06666,-2.51734 1.10934,-0.896 2.64534,-0.896 1.57867,0 2.51733,0.85333 0.98134,0.85334 0.98134,2.38934 v 0.81067 q 0.68267,-1.87734 2.21867,-2.90134 1.57866,-1.024 3.28533,-1.10933 z"
621
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
622
+         id="path8380" /><path
623
+         d="m 719.61806,559.59165 q -3.456,0 -6.10133,-1.32267 -2.60267,-1.36534 -4.05334,-3.84 -1.408,-2.47467 -1.408,-5.80268 0,-3.328 1.408,-5.76 1.45067,-2.47467 4.05334,-3.79734 2.60266,-1.32266 6.10133,-1.32266 3.49867,0 6.10134,1.32266 2.60267,1.32267 4.01067,3.79734 1.45067,2.432 1.45067,5.76 0,3.32801 -1.45067,5.80268 -1.408,2.47466 -4.01067,3.84 -2.60267,1.32267 -6.10134,1.32267 z m 0,-5.67467 q 4.05334,0 4.05334,-5.29068 0,-5.29067 -4.05334,-5.29067 -4.05333,0 -4.05333,5.29067 0,5.29068 4.05333,5.29068 z"
624
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
625
+         id="path8382" /><path
626
+         d="m 749.24612,537.7463 q 2.73066,0 4.82133,1.32266 2.09067,1.32267 3.24267,3.79734 1.19467,2.432 1.19467,5.67467 0,3.24267 -1.19467,5.76001 -1.152,2.51733 -3.28533,3.92533 -2.09067,1.36534 -4.77867,1.36534 -2.09067,0 -3.84001,-0.85334 -1.70667,-0.85333 -2.60267,-2.34667 -0.128,1.45067 -1.152,2.30401 -0.98133,0.81066 -2.60267,0.81066 -1.70666,0 -2.73066,-0.93866 -0.98134,-0.98134 -0.98134,-2.56001 v -23.63735 q 0,-1.49333 1.06667,-2.432 1.06667,-0.98133 2.816,-0.98133 1.664,0 2.688,0.896 1.024,0.896 1.024,2.38933 v 8.49068 q 0.93867,-1.36534 2.60267,-2.17601 1.70667,-0.81066 3.71201,-0.81066 z m -2.34667,16.17068 q 1.96266,0 3.02933,-1.36534 1.06667,-1.408 1.06667,-4.01067 0,-2.47467 -1.06667,-3.79733 -1.024,-1.32267 -2.98667,-1.32267 -2.00533,0 -3.072,1.36533 -1.06667,1.32267 -1.06667,3.84 0,2.56001 1.06667,3.92534 1.06667,1.36534 3.02934,1.36534 z"
627
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
628
+         id="path8384" /><path
629
+         d="m 779.77009,552.50897 q 0.98133,0 1.57867,0.768 0.64,0.76801 0.64,2.00534 0,1.70667 -1.664,2.60267 -1.45067,0.72533 -3.45601,1.23733 -1.96266,0.46934 -3.62667,0.46934 -3.49867,0 -6.10133,-1.32267 -2.60267,-1.32267 -4.01067,-3.79734 -1.408,-2.47467 -1.408,-5.80267 0,-3.15733 1.32266,-5.632 1.36534,-2.51734 3.75467,-3.88267 2.432,-1.408 5.46134,-1.408 2.944,0 5.16267,1.28 2.21867,1.28 3.41334,3.62667 1.23733,2.34667 1.23733,5.504 0,0.98133 -0.46933,1.536 -0.42667,0.512 -1.28,0.512 h -11.26401 q 0.29866,2.048 1.32267,2.944 1.024,0.89601 3.02933,0.89601 1.06667,0 1.96267,-0.21334 0.896,-0.256 2.00533,-0.68267 0.64,-0.256 1.23734,-0.42666 0.64,-0.21334 1.152,-0.21334 z m -7.29601,-9.64267 q -1.49333,0 -2.38933,0.98133 -0.896,0.93867 -1.06667,2.77334 h 6.69867 q -0.256,-3.75467 -3.24267,-3.75467 z"
630
+         style="font-weight:900;font-family:Nunito;-inkscape-font-specification:'Nunito Heavy'"
631
+         id="path8386" /></g></g></svg>
0 632
new file mode 100644
... ...
@@ -0,0 +1,803 @@
1
+PHN2ZwogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJMYXllcl8xIgogICB4PSIwcHgiCiAgIHk9IjBw
2
+eCIKICAgd2lkdGg9IjIyOC45MzMiCiAgIGhlaWdodD0iMTcwIgogICB2aWV3Qm94PSIwIDAgMjAx
3
+LjY3MjE0IDE1MCIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNzkyIDYxMiIKICAgeG1s
4
+OnNwYWNlPSJwcmVzZXJ2ZSIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgog
5
+ICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcwogICAgIGlkPSJk
6
+ZWZzMzE4Ij48cmVjdAogICAgICAgeD0iNTkuMzQyMTcxIgogICAgICAgeT0iNTE5LjQ2NDA1Igog
7
+ICAgICAgd2lkdGg9Ijc0Mi4zODY4NCIKICAgICAgIGhlaWdodD0iNjUuNDQ3MzY1IgogICAgICAg
8
+aWQ9InJlY3Q4NDkiIC8+PC9kZWZzPjxnCiAgICAgaWQ9Imc4NTU2IgogICAgIHRyYW5zZm9ybT0i
9
+c2NhbGUoMC4yNzk2OTIzOCkiPjxnCiAgICAgICBpZD0iZzcxNzMiCiAgICAgICB0cmFuc2Zvcm09
10
+InRyYW5zbGF0ZSgtMi4wMDAwMDA0LDE0LjA1NzI3OSkiPjxnCiAgICAgICAgIGlkPSJnMzEzIgog
11
+ICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjIzMjkzMjUsMCwwLDEuMjMyOTMyNSwtMTI3LjU2
12
+ODY3LC0xMTYuOTc4MDEpIj4JPGxpbmVhckdyYWRpZW50CiAgIGlkPSJTVkdJRF8xXyIKICAgZ3Jh
13
+ZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgIHgxPSIzOTkuMDE5NSIKICAgeTE9IjIwNC4z
14
+NzEwOSIKICAgeDI9Ijc1OS4wMDUxOSIKICAgeTI9IjIxOC40NjQiPgkJPHN0b3AKICAgb2Zmc2V0
15
+PSIwIgogICBzdHlsZT0ic3RvcC1jb2xvcjojQzcxRjI1IgogICBpZD0ic3RvcDU4IiAvPgkJPHN0
16
+b3AKICAgb2Zmc2V0PSIwLjAxNzUiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDODI2MjciCiAgIGlk
17
+PSJzdG9wNjAiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuMzg4IgogICBzdHlsZT0ic3RvcC1jb2xv
18
+cjojREI4MTY4IgogICBpZD0ic3RvcDYyIiAvPgkJPHN0b3AKICAgb2Zmc2V0PSIwLjY4NTYiCiAg
19
+IHN0eWxlPSJzdG9wLWNvbG9yOiNFQkJFQUQiCiAgIGlkPSJzdG9wNjQiIC8+CQk8c3RvcAogICBv
20
+ZmZzZXQ9IjAuODk1OCIKICAgc3R5bGU9InN0b3AtY29sb3I6I0Y4RTlFMiIKICAgaWQ9InN0b3A2
21
+NiIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMSIKICAgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRiIK
22
+ICAgaWQ9InN0b3A2OCIgLz4JPC9saW5lYXJHcmFkaWVudD4JPHBhdGgKICAgZmlsbC1ydWxlPSJl
23
+dmVub2RkIgogICBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgIGZpbGw9InVybCgjU1ZHSURfMV8pIgog
24
+ICBkPSJtIDM3NC4xNzcsOTEuMjQ4IGMgNi42MiwtNC40NyAxNy43MywtMi40NTMgMjMuMjc2LC0w
25
+LjU3IDEuODI5LDAuNjIxIDMuNDEyLDEuMjY2IDUuMzksMi4wNjggMy45NTUsMS42MDQgMTIuNjQ5
26
+LDYuNTMxIDE1LjU4MSw5LjI1IGwgLTI0LjY4OSwyNy43OTEgYyAtMS4zMjcsMS44MzIgLTAuOTk5
27
+LDAuMzY2IC0wLjY0LDIuMDQ3IDEuOTM1LC0wLjMxMyAxNy4yMiwtMTguNjI1IDE5LjgwOCwtMjEu
28
+NDk3IDIuMDE2LC0yLjIzNyA0LjM3OCwtNS42NyA2Ljc4MSwtNy4zNzIgNS44MTUsMy40MDMgMTIu
29
+NzQsMTIuNTggMTYuOTc4LDE4Ljg1NCA1LjM2Niw3Ljk0NyA4LjUwMywyMS41NDQgMC45OTMsMjYu
30
+NjE2IGwgLTIuMDgyLDEuNDA2IGMgLTEwLjg3OSw3LjM0NiAtMzQuOTYzLC00LjMzNiAtNDQuOTI3
31
+LC0xMi44NDIgLTYuODIxLC01LjgyMiAtMTMuOTQ0LC0xMi41OTcgLTE4LjQ2MywtMjIuMjUgLTMu
32
+NzM5LC03Ljk4MyAtNS45MzUsLTE4LjE0NyAxLjk5NCwtMjMuNTAxIHogbSAtMy4wNjQsNDcuNTQ2
33
+IGMgNC43MzQsNy4wMTEgNi43NzIsNy40MSAxMS43OCwxMi4wNTYgLTAuNzQ5LDEuODM4IC0yLjY0
34
+MiwxMy45MTIgLTMuMTIyLDE0LjIzNSAtMS4yMDIsMC44MTIgLTEwLjUzOCwzLjYxNCAtMTIuMzk2
35
+LDQuMTk1IC00Ljc2MywxLjQ5IC02LjgwMiwzLjc1MSAtMTEuMzUxLDcuODUyIGwgLTIxLjM2Nywx
36
+OS4wMjMgYyAtMC43OTIsMS42OTQgNi44MTIsMjkuODQzIDcuMjEzLDMxLjQ0IDIuNjU3LDEwLjU3
37
+NiA1LjA1NywyMS4xNjQgNy45MjYsMzEuOTQgMC43MTUsMi42ODcgMS4xMjEsNC45OTUgMS43Nzks
38
+Ny41ODQgMi4xNTgsOC40OSAwLjM2NSw3LjQ0NCA4LjYxNCwxMi4wNTEgMi40OTksMS4zOTUgNC4z
39
+MjcsMi43MDIgNi44MDcsNC4wOTggMi4wNjMsMS4xNjEgMTkuMDgsMTEuODA2IDIwLjUxMywxMS44
40
+MTQgMC44ODUsMC4wMDYgNi45MjYsLTEuNzggOC4wNywtMi40MjEgMC4yNzUsMi41NTUgMS43MTks
41
+MzAuMDQzIDIuODM4LDMyLjA0MSAyLjI1OCwtMS4yNjYgMjguNzQ4LC03LjU0NyAzMS4wMjksLTgu
42
+ODI1IC0zLjMwMSwtNC44ODggLTEwLjc1MywtMjIuMDkyIC0xNC4xMDQsLTI4LjA3MSAyLjk0NCwt
43
+MS4xMjUgNi43MzcsLTEuNTU1IDguMDEsLTIuMTMyIDEuNjI3LC0wLjczNyAyMi41ODQsLTMyLjUy
44
+MiAyMi43MDEsLTMzLjU0IDAuMDExLC0wLjEwNCAwLjAxMiwtMC4yNTMgMC4wMTMsLTAuMzYgMC4w
45
+MDMsLTAuMjI2IC0wLjE0NSwtMS4wNzIgLTAuMTUyLC0xLjExNSBsIC0xLjY1MSwtNi4xMTEgYyAt
46
+MC44MjQsLTIuOTI2IC0xLjMwMSwtNS4yNzQgLTIuMTcxLC04LjM4NCBsIC0xNi44NDcsLTY0Ljc5
47
+OCAtMzkuMzQxLC02LjE3OCBjIDEuMTc5LC0yLjg5NSAxLjU3NywtNy44NzQgMi44NjIsLTExLjAy
48
+OCA0LjQ1Nyw0LjEzNSAxOC41MDUsNi44OTcgMjQuNDAxLDYuNjkxIDcuNzU4LC0wLjI3MiAyMC40
49
+ODYsLTMuNjUyIDI3LjI5OSwtOC4yNTIgMTAuMjI5LC02LjkwNyA3LjI5OSwtMjMuMzE1IDAuMDc3
50
+LC0zNC4wMDkgLTEwLjU4OSwtMTUuNjgyIC0xNC4xOSwtMTUuNTIxIC0xNy41MzksLTE5LjY4OCAw
51
+LjUxNywtMC44ODIgMS41MzUsLTEuOTQ5IDIuMzMxLC0yLjg0MiAzLjA5NSwtMy40NzMgMi4wNDks
52
+LTAuNzE0IDUuMDU1LC0xLjkyNSAzLjQ3MywtMS4zOTggMS44MjksLTguNzMxIC0zLjY4MSwtNS4w
53
+MTEgLTEuMTk5LDAuODEgLTAuNzY2LDEuNDc5IC0wLjc5NSwyLjM3OSAtMC4wNzQsMi4yNzYgMC44
54
+MzgsMC4zNjkgLTAuNTUzLDIuNDI3IC0wLjU0NywwLjgxMSAtMy4yNzUsMy42NzYgLTQuMDM0LDQu
55
+Mjg1IC0xLjU5NywtMS45ODcgLTkuMTExLC02LjU2IC0xMS4yMDEsLTcuNTY5IC0xMC44MjgsLTUu
56
+MjI4IC0yNy4yODUsLTExLjMxNCAtMzkuMTc5LC0zLjI4MyAtOS40NTgsNi4zODcgLTkuNDM2LDI3
57
+LjYxNiAtNi41NjksMzcuMDk0IDEuMDU1LDMuNDg0IDQuMTY0LDEwLjUyOSA2LjczNSwxNC4zMzcg
58
+eiIKICAgaWQ9InBhdGg3MSIKICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF8xXykiIC8+CTxsaW5l
59
+YXJHcmFkaWVudAogICBpZD0iU1ZHSURfMl8iCiAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9u
60
+VXNlIgogICB4MT0iMzk0LjYyMDA5IgogICB5MT0iMjUzLjYxMzMiCiAgIHgyPSI3NzQuOTczMjEi
61
+CiAgIHkyPSIyNjguNTAzNiI+CQk8c3RvcAogICBvZmZzZXQ9IjAiCiAgIHN0eWxlPSJzdG9wLWNv
62
+bG9yOiNDNzFGMjUiCiAgIGlkPSJzdG9wNzMiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuMDE3NSIK
63
+ICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjYyNyIKICAgaWQ9InN0b3A3NSIgLz4JCTxzdG9wCiAg
64
+IG9mZnNldD0iMC4zODgiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNEQjgxNjgiCiAgIGlkPSJzdG9w
65
+NzciIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuNjg1NiIKICAgc3R5bGU9InN0b3AtY29sb3I6I0VC
66
+QkVBRCIKICAgaWQ9InN0b3A3OSIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMC44OTU4IgogICBzdHls
67
+ZT0ic3RvcC1jb2xvcjojRjhFOUUyIgogICBpZD0ic3RvcDgxIiAvPgkJPHN0b3AKICAgb2Zmc2V0
68
+PSIxIgogICBzdHlsZT0ic3RvcC1jb2xvcjojRkZGRkZGIgogICBpZD0ic3RvcDgzIiAvPgk8L2xp
69
+bmVhckdyYWRpZW50Pgk8cGF0aAogICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgIGNsaXAtcnVsZT0i
70
+ZXZlbm9kZCIKICAgZmlsbD0idXJsKCNTVkdJRF8yXykiCiAgIGQ9Im0gMjAyLjEyMywyNjkuMjc5
71
+IDM2Ljg4MSwtOS4xMzkgYyAtMC4zMzYsLTIuMjc4IC0xLjU2NywtNi4yODMgLTIuMTk0LC04Ljc1
72
+IGwgLTcuMDgsLTI3LjQzMyBjIC0yLjYzMiwwLjI4MyAtMzQuNDgsOC4xOTIgLTM2LjYsOS41NTUg
73
+MC41LDEuMzEgMC43MTIsMi44NDcgMS4wODcsNC4xOTIgMC40OTgsMS43ODQgMC42NzYsMi44NiAx
74
+LjEwNyw0LjU1OCB6IgogICBpZD0icGF0aDg2IgogICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzJf
75
+KSIgLz4JPGxpbmVhckdyYWRpZW50CiAgIGlkPSJTVkdJRF8zXyIKICAgZ3JhZGllbnRVbml0cz0i
76
+dXNlclNwYWNlT25Vc2UiCiAgIHgxPSIzOTkuNzkzOTEiCiAgIHkxPSIyMjMuNjk3OCIKICAgeDI9
77
+Ijc4MC4wOTY5MiIKICAgeTI9IjIzOC41ODYxMSI+CQk8c3RvcAogICBvZmZzZXQ9IjAiCiAgIHN0
78
+eWxlPSJzdG9wLWNvbG9yOiNDNzFGMjUiCiAgIGlkPSJzdG9wODgiIC8+CQk8c3RvcAogICBvZmZz
79
+ZXQ9IjAuMDE3NSIKICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjYyNyIKICAgaWQ9InN0b3A5MCIg
80
+Lz4JCTxzdG9wCiAgIG9mZnNldD0iMC4zODgiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNEQjgxNjgi
81
+CiAgIGlkPSJzdG9wOTIiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuNjg1NiIKICAgc3R5bGU9InN0
82
+b3AtY29sb3I6I0VCQkVBRCIKICAgaWQ9InN0b3A5NCIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMC44
83
+OTU4IgogICBzdHlsZT0ic3RvcC1jb2xvcjojRjhFOUUyIgogICBpZD0ic3RvcDk2IiAvPgkJPHN0
84
+b3AKICAgb2Zmc2V0PSIxIgogICBzdHlsZT0ic3RvcC1jb2xvcjojRkZGRkZGIgogICBpZD0ic3Rv
85
+cDk4IiAvPgk8L2xpbmVhckdyYWRpZW50Pgk8cGF0aAogICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAg
86
+IGNsaXAtcnVsZT0iZXZlbm9kZCIKICAgZmlsbD0idXJsKCNTVkdJRF8zXykiCiAgIGQ9Im0gNDY0
87
+LjAzOSwyNDkuNDY4IDE4LjI0NywtNC41MSBjIDMuMTQsLTAuODc3IDE2LjYwNCwtMy45MiAxOC4z
88
+NTMsLTUuMDQ1IGwgLTQuNjQxLC0xNy45MTIgYyAtMC43MTEsLTMuMjE5IC0zLjY3MiwtMTUuODQ4
89
+IC01LjA1LC0xNy45OTEgbCAtMzYuMTg0LDkuMjc0IGMgMC40MTMsMi44IDEuNDE2LDUuNzI5IDIu
90
+MDc3LDguNzI4IHoiCiAgIGlkPSJwYXRoMTAxIgogICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzNf
91
+KSIgLz4JPGxpbmVhckdyYWRpZW50CiAgIGlkPSJTVkdJRF80XyIKICAgZ3JhZGllbnRVbml0cz0i
92
+dXNlclNwYWNlT25Vc2UiCiAgIHgxPSI0MDEuMzA1NjkiCiAgIHkxPSIxODEuMTM2NyIKICAgeDI9
93
+Ijc4MS40NzcxMSIKICAgeTI9IjE5Ni4wMTk5Ij4JCTxzdG9wCiAgIG9mZnNldD0iMCIKICAgc3R5
94
+bGU9InN0b3AtY29sb3I6I0M3MUYyNSIKICAgaWQ9InN0b3AxMDMiIC8+CQk8c3RvcAogICBvZmZz
95
+ZXQ9IjAuMDE3NSIKICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjYyNyIKICAgaWQ9InN0b3AxMDUi
96
+IC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuMzg4IgogICBzdHlsZT0ic3RvcC1jb2xvcjojREI4MTY4
97
+IgogICBpZD0ic3RvcDEwNyIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMC42ODU2IgogICBzdHlsZT0i
98
+c3RvcC1jb2xvcjojRUJCRUFEIgogICBpZD0ic3RvcDEwOSIgLz4JCTxzdG9wCiAgIG9mZnNldD0i
99
+MC44OTU4IgogICBzdHlsZT0ic3RvcC1jb2xvcjojRjhFOUUyIgogICBpZD0ic3RvcDExMSIgLz4J
100
+CTxzdG9wCiAgIG9mZnNldD0iMSIKICAgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRiIKICAgaWQ9
101
+InN0b3AxMTMiIC8+CTwvbGluZWFyR3JhZGllbnQ+CTxwYXRoCiAgIGZpbGwtcnVsZT0iZXZlbm9k
102
+ZCIKICAgY2xpcC1ydWxlPSJldmVub2RkIgogICBmaWxsPSJ1cmwoI1NWR0lEXzRfKSIKICAgZD0i
103
+bSA0NTMuODg5LDIwNi42IGMgNS41NjgsLTIuMTI4IDMwLjg2MywtNy4zNjMgMzYuNiwtOS41NTUg
104
+LTAuOTA4LC0xLjYyIC0xLjk1OCwtNy4wMTkgLTIuMzgzLC04Ljc4NyBsIC02Ljg5MSwtMjcuMzk3
105
+IGMgLTIuOTA5LDEuMTEyIC02LjA1NywxLjYxMyAtOS4xNjgsMi40ODIgLTQuNzY2LDEuMzMyIC0y
106
+NS4yMTQsNS44NzcgLTI3Ljg0OSw3LjM1NCAxLjkxMywzLjQxNCA3Ljc2NywzMi40NzEgOS42OTEs
107
+MzUuOTAzIHoiCiAgIGlkPSJwYXRoMTE2IgogICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzRfKSIg
108
+Lz4JPGxpbmVhckdyYWRpZW50CiAgIGlkPSJTVkdJRF81XyIKICAgZ3JhZGllbnRVbml0cz0idXNl
109
+clNwYWNlT25Vc2UiCiAgIHgxPSIzOTMuMTA5ODkiCiAgIHkxPSIyOTYuNTM4NiIKICAgeDI9Ijc3
110
+My40NTUwOCIKICAgeTI9IjMxMS40Mjg1OSI+CQk8c3RvcAogICBvZmZzZXQ9IjAiCiAgIHN0eWxl
111
+PSJzdG9wLWNvbG9yOiNDNzFGMjUiCiAgIGlkPSJzdG9wMTE4IiAvPgkJPHN0b3AKICAgb2Zmc2V0
112
+PSIwLjAxNzUiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDODI2MjciCiAgIGlkPSJzdG9wMTIwIiAv
113
+PgkJPHN0b3AKICAgb2Zmc2V0PSIwLjM4OCIKICAgc3R5bGU9InN0b3AtY29sb3I6I0RCODE2OCIK
114
+ICAgaWQ9InN0b3AxMjIiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuNjg1NiIKICAgc3R5bGU9InN0
115
+b3AtY29sb3I6I0VCQkVBRCIKICAgaWQ9InN0b3AxMjQiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAu
116
+ODk1OCIKICAgc3R5bGU9InN0b3AtY29sb3I6I0Y4RTlFMiIKICAgaWQ9InN0b3AxMjYiIC8+CQk8
117
+c3RvcAogICBvZmZzZXQ9IjEiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkYiCiAgIGlkPSJz
118
+dG9wMTI4IiAvPgk8L2xpbmVhckdyYWRpZW50Pgk8cGF0aAogICBmaWxsLXJ1bGU9ImV2ZW5vZGQi
119
+CiAgIGNsaXAtcnVsZT0iZXZlbm9kZCIKICAgZmlsbD0idXJsKCNTVkdJRF81XykiCiAgIGQ9Im0g
120
+MjEzLjI1MiwzMTIuNjk5IGMgMy40NTIsLTAuNTA5IDM1LC04LjUyNiAzNi42LC05LjU1NSBsIC04
121
+Ljk5MywtMzUuNzY4IGMgLTIuNzI3LDAuMjk0IC02LjA3NiwxLjQ2NyAtOS4xMDYsMi4xNiBsIC0y
122
+Mi44NDUsNS44MTkgYyAtMS42NTIsMC4zNzggLTMuNTA0LDAuOTQ5IC00LjkzLDEuMTYgeiIKICAg
123
+aWQ9InBhdGgxMzEiCiAgIHN0eWxlPSJmaWxsOnVybCgjU1ZHSURfNV8pIiAvPgk8bGluZWFyR3Jh
124
+ZGllbnQKICAgaWQ9IlNWR0lEXzZfIgogICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIK
125
+ICAgeDE9IjM5MS44ODQ4IgogICB5MT0iMzA4LjkwMTQiCiAgIHgyPSI3NzIuMTA2NjkiCiAgIHky
126
+PSIzMjMuNzg2NSI+CQk8c3RvcAogICBvZmZzZXQ9IjAiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiND
127
+NzFGMjUiCiAgIGlkPSJzdG9wMTMzIiAvPgkJPHN0b3AKICAgb2Zmc2V0PSIwLjAxNzUiCiAgIHN0
128
+eWxlPSJzdG9wLWNvbG9yOiNDODI2MjciCiAgIGlkPSJzdG9wMTM1IiAvPgkJPHN0b3AKICAgb2Zm
129
+c2V0PSIwLjM4OCIKICAgc3R5bGU9InN0b3AtY29sb3I6I0RCODE2OCIKICAgaWQ9InN0b3AxMzci
130
+IC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuNjg1NiIKICAgc3R5bGU9InN0b3AtY29sb3I6I0VCQkVB
131
+RCIKICAgaWQ9InN0b3AxMzkiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuODk1OCIKICAgc3R5bGU9
132
+InN0b3AtY29sb3I6I0Y4RTlFMiIKICAgaWQ9InN0b3AxNDEiIC8+CQk8c3RvcAogICBvZmZzZXQ9
133
+IjEiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkYiCiAgIGlkPSJzdG9wMTQzIiAvPgk8L2xp
134
+bmVhckdyYWRpZW50Pgk8cGF0aAogICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgIGNsaXAtcnVsZT0i
135
+ZXZlbm9kZCIKICAgZmlsbD0idXJsKCNTVkdJRF82XykiCiAgIGQ9Im0gMTY4LjQzNywzMjMuNTU5
136
+IGMgNC4xNDEsLTEuNTgzIDM0LjE0OCwtOC4xODIgMzYuNiwtOS41NTYgLTAuMzUyLC0zLjI3IC02
137
+LjQ0NCwtMjUuMzU3IC03Ljc4NywtMzEuNTUyIC0wLjM0MywtMS41ODMgLTAuNjQyLC0zLjEyNCAt
138
+MS40ODcsLTQuNjMxIGwgLTM2LjYsOS41NTUgYyAwLjkxMSwxLjYyNSAxLjk1Niw3LjAxMyAyLjM4
139
+Myw4Ljc4NyBsIDQuNjIzLDE4LjI3MSBjIDAuNzA2LDMuMDg5IDEuODUxLDYuMzAxIDIuMjY4LDku
140
+MTI2IHoiCiAgIGlkPSJwYXRoMTQ2IgogICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzZfKSIgLz4J
141
+PGxpbmVhckdyYWRpZW50CiAgIGlkPSJTVkdJRF83XyIKICAgZ3JhZGllbnRVbml0cz0idXNlclNw
142
+YWNlT25Vc2UiCiAgIHgxPSI0MDQuODI0MTkiCiAgIHkxPSIxNDIuNjY1NSIKICAgeDI9Ijc4NS4x
143
+MzUwNyIKICAgeTI9IjE1Ny41NTQyIj4JCTxzdG9wCiAgIG9mZnNldD0iMCIKICAgc3R5bGU9InN0
144
+b3AtY29sb3I6I0M3MUYyNSIKICAgaWQ9InN0b3AxNDgiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAu
145
+MDE3NSIKICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjYyNyIKICAgaWQ9InN0b3AxNTAiIC8+CQk8
146
+c3RvcAogICBvZmZzZXQ9IjAuMzg4IgogICBzdHlsZT0ic3RvcC1jb2xvcjojREI4MTY4IgogICBp
147
+ZD0ic3RvcDE1MiIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMC42ODU2IgogICBzdHlsZT0ic3RvcC1j
148
+b2xvcjojRUJCRUFEIgogICBpZD0ic3RvcDE1NCIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMC44OTU4
149
+IgogICBzdHlsZT0ic3RvcC1jb2xvcjojRjhFOUUyIgogICBpZD0ic3RvcDE1NiIgLz4JCTxzdG9w
150
+CiAgIG9mZnNldD0iMSIKICAgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRiIKICAgaWQ9InN0b3Ax
151
+NTgiIC8+CTwvbGluZWFyR3JhZGllbnQ+CTxwYXRoCiAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAg
152
+Y2xpcC1ydWxlPSJldmVub2RkIgogICBmaWxsPSJ1cmwoI1NWR0lEXzdfKSIKICAgZD0ibSA1ODcu
153
+MDc1LDE3My4wNTYgYyAxLjYyNSwtMC45MTEgNy4wMTQsLTEuOTU2IDguNzg3LC0yLjM4MyAzLjIx
154
+NiwtMC43NzQgNS45MjksLTEuNTg3IDkuMTQ1LC0yLjM2MSAyLjg3LC0wLjY5MSA1Ljk3LC0xLjUz
155
+OSA5LjEyNSwtMi4yNjEgMy4wOTIsLTAuNzA4IDYuMzA0LC0xLjg1MiA5LjEyNywtMi4yNjkgLTAu
156
+MjQ4LC0yLjMwNCAtMS4zMjIsLTYuMTIgLTIuMDE0LC04LjcxNSBsIC00LjYwNCwtMTguMjY2IGMg
157
+LTAuNjgxLC0yLjQwMiAtMS40MzUsLTcuMDIyIC0yLjY1NiwtOS4yMDIgLTMuNDMxLDAuNTA2IC0z
158
+NS4wMjEsOC41MzkgLTM2LjYwMSw5LjU1NSAxLjM5OCwyLjQ5MyA3LjkyMiwzMy4xNTEgOS42OTEs
159
+MzUuOTAyIHoiCiAgIGlkPSJwYXRoMTYxIgogICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzdfKSIg
160
+Lz4JPGxpbmVhckdyYWRpZW50CiAgIGlkPSJTVkdJRF84XyIKICAgZ3JhZGllbnRVbml0cz0idXNl
161
+clNwYWNlT25Vc2UiCiAgIHgxPSI0MDMuMzE3NDEiCiAgIHkxPSIxODUuNTM3MDkiCiAgIHgyPSI3
162
+ODMuNjc4MjgiCiAgIHkyPSIyMDAuNDI3NyI+CQk8c3RvcAogICBvZmZzZXQ9IjAiCiAgIHN0eWxl
163
+PSJzdG9wLWNvbG9yOiNDNzFGMjUiCiAgIGlkPSJzdG9wMTYzIiAvPgkJPHN0b3AKICAgb2Zmc2V0
164
+PSIwLjAxNzUiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDODI2MjciCiAgIGlkPSJzdG9wMTY1IiAv
165
+PgkJPHN0b3AKICAgb2Zmc2V0PSIwLjM4OCIKICAgc3R5bGU9InN0b3AtY29sb3I6I0RCODE2OCIK
166
+ICAgaWQ9InN0b3AxNjciIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuNjg1NiIKICAgc3R5bGU9InN0
167
+b3AtY29sb3I6I0VCQkVBRCIKICAgaWQ9InN0b3AxNjkiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAu
168
+ODk1OCIKICAgc3R5bGU9InN0b3AtY29sb3I6I0Y4RTlFMiIKICAgaWQ9InN0b3AxNzEiIC8+CQk8
169
+c3RvcAogICBvZmZzZXQ9IjEiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkYiCiAgIGlkPSJz
170
+dG9wMTczIiAvPgk8L2xpbmVhckdyYWRpZW50Pgk8cGF0aAogICBmaWxsLXJ1bGU9ImV2ZW5vZGQi
171
+CiAgIGNsaXAtcnVsZT0iZXZlbm9kZCIKICAgZmlsbD0idXJsKCNTVkdJRF84XykiCiAgIGQ9Im0g
172
+NTk3LjUwNywyMTYuMzQyIDM2Ljg4MSwtOS4xMzkgYyAtMC4zMzYsLTIuMjc4IC0xLjU2NiwtNi4y
173
+ODMgLTIuMTkzLC04Ljc1IC0wLjc2NCwtMy4wMDMgLTEuNjA4LC01Ljg3NCAtMi4zNTcsLTkuMTQ0
174
+IGwgLTQuNzIzLC0xOC4yOSBjIC0zLjQzMSwwLjUwNiAtMzUuMDIsOC41MzkgLTM2LjYwMSw5LjU1
175
+NSB6IgogICBpZD0icGF0aDE3NiIKICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF84XykiIC8+CTxs
176
+aW5lYXJHcmFkaWVudAogICBpZD0iU1ZHSURfOV8iCiAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFj
177
+ZU9uVXNlIgogICB4MT0iNDAxLjAxMDcxIgogICB5MT0iMjExLjI4MTMiCiAgIHgyPSI3ODEuMjI5
178
+MzciCiAgIHkyPSIyMjYuMTY2MzEiPgkJPHN0b3AKICAgb2Zmc2V0PSIwIgogICBzdHlsZT0ic3Rv
179
+cC1jb2xvcjojQzcxRjI1IgogICBpZD0ic3RvcDE3OCIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMC4w
180
+MTc1IgogICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyNjI3IgogICBpZD0ic3RvcDE4MCIgLz4JCTxz
181
+dG9wCiAgIG9mZnNldD0iMC4zODgiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNEQjgxNjgiCiAgIGlk
182
+PSJzdG9wMTgyIiAvPgkJPHN0b3AKICAgb2Zmc2V0PSIwLjY4NTYiCiAgIHN0eWxlPSJzdG9wLWNv
183
+bG9yOiNFQkJFQUQiCiAgIGlkPSJzdG9wMTg0IiAvPgkJPHN0b3AKICAgb2Zmc2V0PSIwLjg5NTgi
184
+CiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNGOEU5RTIiCiAgIGlkPSJzdG9wMTg2IiAvPgkJPHN0b3AK
185
+ICAgb2Zmc2V0PSIxIgogICBzdHlsZT0ic3RvcC1jb2xvcjojRkZGRkZGIgogICBpZD0ic3RvcDE4
186
+OCIgLz4JPC9saW5lYXJHcmFkaWVudD4JPHBhdGgKICAgZmlsbC1ydWxlPSJldmVub2RkIgogICBj
187
+bGlwLXJ1bGU9ImV2ZW5vZGQiCiAgIGZpbGw9InVybCgjU1ZHSURfOV8pIgogICBkPSJtIDUwOC40
188
+MzgsMjM4Ljg5MSAyNy4zOTksLTYuOTA2IGMgMS42MDgsLTAuNDUxIDIuNzUzLC0wLjYxNyA0LjU1
189
+NywtMS4wOTkgMi4wNjQsLTAuNTUxIDMuMDcyLC0wLjkzNCA0LjkyNiwtMS4xMzMgbCAtNC42MzQs
190
+LTE4LjI3MiBjIC0wLjY2NSwtMy4wMTMgLTMuODMzLC0xNi4zODYgLTQuOTIyLC0xOC4zMjggLTEu
191
+OTIzLDEuMDc4IC0xNS4xNTEsNC4yMzUgLTE3Ljk1MSw0Ljg0NSAtMy4xNywwLjY5MSAtMTYuMjIx
192
+LDMuNzQ1IC0xOC4zNjcsNS4xMjYgbCA2LjcyNCwyNi42NDEgYyAwLjcwNywzLjA5IDEuODUxLDYu
193
+MzAzIDIuMjY4LDkuMTI2IHoiCiAgIGlkPSJwYXRoMTkxIgogICBzdHlsZT0iZmlsbDp1cmwoI1NW
194
+R0lEXzlfKSIgLz4JPGxpbmVhckdyYWRpZW50CiAgIGlkPSJTVkdJRF8xMF8iCiAgIGdyYWRpZW50
195
+VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICB4MT0iNDAyLjQ0NDMxIgogICB5MT0iMTY4LjYwOTQx
196
+IgogICB4Mj0iNzgyLjc1ODQ4IgogICB5Mj0iMTgzLjQ5ODA5Ij4JCTxzdG9wCiAgIG9mZnNldD0i
197
+MCIKICAgc3R5bGU9InN0b3AtY29sb3I6I0M3MUYyNSIKICAgaWQ9InN0b3AxOTMiIC8+CQk8c3Rv
198
+cAogICBvZmZzZXQ9IjAuMDE3NSIKICAgc3R5bGU9InN0b3AtY29sb3I6I0M4MjYyNyIKICAgaWQ9
199
+InN0b3AxOTUiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuMzg4IgogICBzdHlsZT0ic3RvcC1jb2xv
200
+cjojREI4MTY4IgogICBpZD0ic3RvcDE5NyIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMC42ODU2Igog
201
+ICBzdHlsZT0ic3RvcC1jb2xvcjojRUJCRUFEIgogICBpZD0ic3RvcDE5OSIgLz4JCTxzdG9wCiAg
202
+IG9mZnNldD0iMC44OTU4IgogICBzdHlsZT0ic3RvcC1jb2xvcjojRjhFOUUyIgogICBpZD0ic3Rv
203
+cDIwMSIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMSIKICAgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZG
204
+RiIKICAgaWQ9InN0b3AyMDMiIC8+CTwvbGluZWFyR3JhZGllbnQ+CTxwYXRoCiAgIGZpbGwtcnVs
205
+ZT0iZXZlbm9kZCIKICAgY2xpcC1ydWxlPSJldmVub2RkIgogICBmaWxsPSJ1cmwoI1NWR0lEXzEw
206
+XykiCiAgIGQ9Im0gNDk4LjAwNywxOTUuNjA2IGMgMS4yNTUsLTAuNzA0IDMyLjU2NywtOC44ODQg
207
+MzYuMTg0LC05LjI3NCAtMC4yNjcsLTIuNDc2IC0xLjI2MywtNS45NDggLTIuMDI1LC04LjcxOCBs
208
+IC0yLjMyNywtOS4xMzggYyAtMC42NzEsLTMuMDQxIC0zLjc5MywtMTYuMzE0IC00LjkyMiwtMTgu
209
+MzI4IC00LjI3NywwLjQ2IC0zNC45OTMsOC41MjEgLTM2LjYwMSw5LjU1NSAwLjkzOSwxLjY3NSAz
210
+Ljg2OCwxNC43NTQgNC43NiwxNy45MzUgMS4wNTksMy43NzkgMy40ODcsMTUuNzI0IDQuOTMxLDE3
211
+Ljk2OCB6IgogICBpZD0icGF0aDIwNiIKICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF8xMF8pIiAv
212
+Pgk8bGluZWFyR3JhZGllbnQKICAgaWQ9IlNWR0lEXzExXyIKICAgZ3JhZGllbnRVbml0cz0idXNl
213
+clNwYWNlT25Vc2UiCiAgIHgxPSIzOTYuOTg2MyIKICAgeTE9IjIyNy42Njk0IgogICB4Mj0iNzc3
214
+LjMzMTQ4IgogICB5Mj0iMjQyLjU1OTQiPgkJPHN0b3AKICAgb2Zmc2V0PSIwIgogICBzdHlsZT0i
215
+c3RvcC1jb2xvcjojQzcxRjI1IgogICBpZD0ic3RvcDIwOCIgLz4JCTxzdG9wCiAgIG9mZnNldD0i
216
+MC4wMTc1IgogICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyNjI3IgogICBpZD0ic3RvcDIxMCIgLz4J
217
+CTxzdG9wCiAgIG9mZnNldD0iMC4zODgiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNEQjgxNjgiCiAg
218
+IGlkPSJzdG9wMjEyIiAvPgkJPHN0b3AKICAgb2Zmc2V0PSIwLjY4NTYiCiAgIHN0eWxlPSJzdG9w
219
+LWNvbG9yOiNFQkJFQUQiCiAgIGlkPSJzdG9wMjE0IiAvPjxzdG9wCiAgIG9mZnNldD0iMC44OTU4
220
+IgogICBzdHlsZT0ic3RvcC1jb2xvcjojRjhFOUUyIgogICBpZD0ic3RvcDIxNiIgLz4JCTxzdG9w
221
+CiAgIG9mZnNldD0iMSIKICAgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRiIKICAgaWQ9InN0b3Ay
222
+MTgiIC8+CTwvbGluZWFyR3JhZGllbnQ+CTxwYXRoCiAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAg
223
+Y2xpcC1ydWxlPSJldmVub2RkIgogICBmaWxsPSJ1cmwoI1NWR0lEXzExXykiCiAgIGQ9Im0gMjkx
224
+LjE5MiwyNDYuNzI5IDE4LjIzMiwtNC40MjkgYyAyLjk4MSwtMC42NSA1Ljk5MSwtMS40NDEgOS4x
225
+MzQsLTIuMzA2IDEuODU2LC0wLjUxMSAyLjcsLTAuNTg4IDQuNTU3LC0xLjA5OCAxLjgxMiwtMC40
226
+OTggMy41MTQsLTAuNzU0IDQuOTU4LC0xLjMwNiAtMC41LC0xLjMxIC0wLjcxMiwtMi44NDggLTEu
227
+MDg2LC00LjE5MiAtMC40OTgsLTEuNzg0IC0wLjY3NiwtMi44NiAtMS4xMDcsLTQuNTU4IC0wLjc2
228
+NCwtMy4wMDQgLTEuNjA5LC01Ljg3NSAtMi4zNTcsLTkuMTQ0IC0wLjcyMiwtMy4xNTUgLTEuNTY5
229
+LC02LjI1NSAtMi4yNjEsLTkuMTI1IGwgLTIuNDYyLC05LjE2NCAtMjcuNCw2LjkwNiBjIC0yLjQ1
230
+MywwLjY4OCAtNi44MDcsMS4zMDggLTkuMiwyLjY0OSB6IgogICBpZD0icGF0aDIyMSIKICAgc3R5
231
+bGU9ImZpbGw6dXJsKCNTVkdJRF8xMV8pIiAvPgk8bGluZWFyR3JhZGllbnQKICAgaWQ9IlNWR0lE
232
+XzEyXyIKICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgIHgxPSIzOTUuNzM0ODki
233
+CiAgIHkxPSIyNDAuNzMzNCIKICAgeDI9Ijc3NS45NTY3OSIKICAgeTI9IjI1NS42MTg1Ij4JCTxz
234
+dG9wCiAgIG9mZnNldD0iMCIKICAgc3R5bGU9InN0b3AtY29sb3I6I0M3MUYyNSIKICAgaWQ9InN0
235
+b3AyMjMiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuMDE3NSIKICAgc3R5bGU9InN0b3AtY29sb3I6
236
+I0M4MjYyNyIKICAgaWQ9InN0b3AyMjUiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuMzg4IgogICBz
237
+dHlsZT0ic3RvcC1jb2xvcjojREI4MTY4IgogICBpZD0ic3RvcDIyNyIgLz4JCTxzdG9wCiAgIG9m
238
+ZnNldD0iMC42ODU2IgogICBzdHlsZT0ic3RvcC1jb2xvcjojRUJCRUFEIgogICBpZD0ic3RvcDIy
239
+OSIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMC44OTU4IgogICBzdHlsZT0ic3RvcC1jb2xvcjojRjhF
240
+OUUyIgogICBpZD0ic3RvcDIzMSIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMSIKICAgc3R5bGU9InN0
241
+b3AtY29sb3I6I0ZGRkZGRiIKICAgaWQ9InN0b3AyMzMiIC8+CTwvbGluZWFyR3JhZGllbnQ+CTxw
242
+YXRoCiAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgY2xpcC1ydWxlPSJldmVub2RkIgogICBmaWxs
243
+PSJ1cmwoI1NWR0lEXzEyXykiCiAgIGQ9Im0gMjQ2LjI0MSwyNTguMjg2IDI3LjQxNywtNi45OTIg
244
+YyAxLjg5OSwtMC40MTQgNy41MzcsLTEuNjQgOS4xODQsLTIuNTYzIGwgLTkuMjc0LC0zNi4xODQg
245
+LTMyLjAyNSw4LjM2MiBjIC0xLjgwMiwwLjQ1NSAtMi43MjcsMC40ODcgLTQuNTc1LDEuMTkzIDEu
246
+ODY5LDQuODkzIDcuNzI4LDMyLjE0MSA5LjI3MywzNi4xODQgeiIKICAgaWQ9InBhdGgyMzYiCiAg
247
+IHN0eWxlPSJmaWxsOnVybCgjU1ZHSURfMTJfKSIgLz4JPGxpbmVhckdyYWRpZW50CiAgIGlkPSJT
248
+VkdJRF8xM18iCiAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICB4MT0iMzk0LjI3
249
+OTMiCiAgIHkxPSIyODMuODY0MjkiCiAgIHgyPSI3NzQuNjMyMzkiCiAgIHkyPSIyOTguNzU0NDki
250
+PgkJPHN0b3AKICAgb2Zmc2V0PSIwIgogICBzdHlsZT0ic3RvcC1jb2xvcjojQzcxRjI1IgogICBp
251
+ZD0ic3RvcDIzOCIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMC4wMTc1IgogICBzdHlsZT0ic3RvcC1j
252
+b2xvcjojQzgyNjI3IgogICBpZD0ic3RvcDI0MCIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMC4zODgi
253
+CiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNEQjgxNjgiCiAgIGlkPSJzdG9wMjQyIiAvPgkJPHN0b3AK
254
+ICAgb2Zmc2V0PSIwLjY4NTYiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNFQkJFQUQiCiAgIGlkPSJz
255
+dG9wMjQ0IiAvPgkJPHN0b3AKICAgb2Zmc2V0PSIwLjg5NTgiCiAgIHN0eWxlPSJzdG9wLWNvbG9y
256
+OiNGOEU5RTIiCiAgIGlkPSJzdG9wMjQ2IiAvPgkJPHN0b3AKICAgb2Zmc2V0PSIxIgogICBzdHls
257
+ZT0ic3RvcC1jb2xvcjojRkZGRkZGIgogICBpZD0ic3RvcDI0OCIgLz4JPC9saW5lYXJHcmFkaWVu
258
+dD4JPHBhdGgKICAgZmlsbC1ydWxlPSJldmVub2RkIgogICBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAg
259
+IGZpbGw9InVybCgjU1ZHSURfMTNfKSIKICAgZD0ibSAyNTcuMzcsMzAxLjcwNiBjIDEuNDE5LC0w
260
+LjU0MiAyLjkyNSwtMC43MjQgNC41NzQsLTEuMTg5IDQuNTk2LC0xLjI5NyAyOS44NCwtNy4xNDEg
261
+MzIuMDI2LC04LjM2NyAtMS4wMTQsLTIuNjU0IC0xLjY4OCwtNi4wOTggLTIuMzcsLTguNzg0IGwg
262
+LTQuNSwtMTcuODg0IGMgLTAuNTEyLC0xLjg1NyAtMC41ODQsLTIuNyAtMS4wOTgsLTQuNTU3IC0w
263
+LjU0MSwtMS45NTUgLTAuODM4LC0yLjgxMSAtMS4wMjQsLTQuNTQyIC00LjAyNywwLjQzNCAtMjEu
264
+Nzg0LDUuNDIxIC0yNy4zNTksNi42OTggLTEuNzUzLDAuNDAxIC0yLjc0NywwLjY2NCAtNC41NjUs
265
+MS4xNDYgLTIuMDIxLDAuNTM3IC0zLjAyNywwLjU1OCAtNC45NTcsMS4yOTUgMC4zOTIsMi42NTQg
266
+MS41LDUuOTE5IDIuMTgxLDguNzQ4IDAuNjg1LDIuODQyIDEuMzczLDYuMDMxIDIuMjIzLDkuMTE4
267
+IHoiCiAgIGlkPSJwYXRoMjUxIgogICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzEzXykiIC8+CTxs
268
+aW5lYXJHcmFkaWVudAogICBpZD0iU1ZHSURfMTRfIgogICBncmFkaWVudFVuaXRzPSJ1c2VyU3Bh
269
+Y2VPblVzZSIKICAgeDE9IjQwMi4xNzI5MSIKICAgeTE9IjE5OC42MDYiCiAgIHgyPSI3ODIuMzk0
270
+NzgiCiAgIHkyPSIyMTMuNDkxMSI+CQk8c3RvcAogICBvZmZzZXQ9IjAiCiAgIHN0eWxlPSJzdG9w
271
+LWNvbG9yOiNDNzFGMjUiCiAgIGlkPSJzdG9wMjUzIiAvPgkJPHN0b3AKICAgb2Zmc2V0PSIwLjAx
272
+NzUiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDODI2MjciCiAgIGlkPSJzdG9wMjU1IiAvPgkJPHN0
273
+b3AKICAgb2Zmc2V0PSIwLjM4OCIKICAgc3R5bGU9InN0b3AtY29sb3I6I0RCODE2OCIKICAgaWQ9
274
+InN0b3AyNTciIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuNjg1NiIKICAgc3R5bGU9InN0b3AtY29s
275
+b3I6I0VCQkVBRCIKICAgaWQ9InN0b3AyNTkiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuODk1OCIK
276
+ICAgc3R5bGU9InN0b3AtY29sb3I6I0Y4RTlFMiIKICAgaWQ9InN0b3AyNjEiIC8+CQk8c3RvcAog
277
+ICBvZmZzZXQ9IjEiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkYiCiAgIGlkPSJzdG9wMjYz
278
+IiAvPgk8L2xpbmVhckdyYWRpZW50Pgk8cGF0aAogICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgIGNs
279
+aXAtcnVsZT0iZXZlbm9kZCIKICAgZmlsbD0idXJsKCNTVkdJRF8xNF8pIgogICBkPSJtIDU1Mi41
280
+NTYsMjI3Ljg5NyBjIDEuODQ1LC0wLjcwNSAyLjc3MiwtMC43NDEgNC41NzUsLTEuMTkzIGwgMzIu
281
+MDI1LC04LjM2MiAtOS4yNzQsLTM2LjE4NCBjIC0xLjc0NCwwLjk3OCAtNy4wNTMsMS45MzggLTku
282
+MTY3LDIuNDc1IGwgLTI3LjQzNCw3LjA4IHoiCiAgIGlkPSJwYXRoMjY2IgogICBzdHlsZT0iZmls
283
+bDp1cmwoI1NWR0lEXzE0XykiIC8+CTxsaW5lYXJHcmFkaWVudAogICBpZD0iU1ZHSURfMTVfIgog
284
+ICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgeDE9IjQwMy42MjM5OSIKICAgeTE9
285
+IjE1NS41Mjg3OSIKICAgeDI9Ijc4My45MzQ4OCIKICAgeTI9IjE3MC40MTc0Ij4JCTxzdG9wCiAg
286
+IG9mZnNldD0iMCIKICAgc3R5bGU9InN0b3AtY29sb3I6I0M3MUYyNSIKICAgaWQ9InN0b3AyNjgi
287
+IC8+CTxzdG9wCiAgIG9mZnNldD0iMC4wMTc1IgogICBzdHlsZT0ic3RvcC1jb2xvcjojQzgyNjI3
288
+IgogICBpZD0ic3RvcDI3MCIgLz4JCTxzdG9wCiAgIG9mZnNldD0iMC4zODgiCiAgIHN0eWxlPSJz
289
+dG9wLWNvbG9yOiNEQjgxNjgiCiAgIGlkPSJzdG9wMjcyIiAvPgkJPHN0b3AKICAgb2Zmc2V0PSIw
290
+LjY4NTYiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNFQkJFQUQiCiAgIGlkPSJzdG9wMjc0IiAvPgkJ
291
+PHN0b3AKICAgb2Zmc2V0PSIwLjg5NTgiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNGOEU5RTIiCiAg
292
+IGlkPSJzdG9wMjc2IiAvPgkJPHN0b3AKICAgb2Zmc2V0PSIxIgogICBzdHlsZT0ic3RvcC1jb2xv
293
+cjojRkZGRkZGIgogICBpZD0ic3RvcDI3OCIgLz4JPC9saW5lYXJHcmFkaWVudD4JPHBhdGgKICAg
294
+ZmlsbC1ydWxlPSJldmVub2RkIgogICBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgIGZpbGw9InVybCgj
295
+U1ZHSURfMTVfKSIKICAgZD0ibSA1NDEuODQ0LDE4NC4xOTYgMTguMjQ4LC00LjUxIGMgMy4xNzUs
296
+LTAuODg4IDUuOTQyLC0xLjYwOSA5LjE0OCwtMi4zODEgMS45OTcsLTAuNDgxIDcuMjc0LC0xLjQy
297
+MyA5LjIwMywtMi42NjQgLTEuMzk3LC0yLjQ5MyAtNy45MjEsLTMzLjE1MSAtOS42OSwtMzUuOTAy
298
+IC0xLjYyNSwwLjkxMSAtNy4wMTQsMS45NTYgLTguNzg3LDIuMzgzIC0zLjIxNiwwLjc3NSAtNS45
299
+MjksMS41ODcgLTkuMTQ1LDIuMzYyIGwgLTE4LjI1Miw0LjUyOSB6IgogICBpZD0icGF0aDI4MSIK
300
+ICAgc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF8xNV8pIiAvPgk8bGluZWFyR3JhZGllbnQKICAgaWQ9
301
+IlNWR0lEXzE2XyIKICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgIHgxPSIzOTMu
302
+NDQ5MTkiCiAgIHkxPSIyNjYuMjg4NiIKICAgeDI9Ijc3My44MDIzMSIKICAgeTI9IjI4MS4xNzg4
303
+OSI+CQk8c3RvcAogICBvZmZzZXQ9IjAiCiAgIHN0eWxlPSJzdG9wLWNvbG9yOiNDNzFGMjUiCiAg
304
+IGlkPSJzdG9wMjgzIiAvPgkJPHN0b3AKICAgb2Zmc2V0PSIwLjAxNzUiCiAgIHN0eWxlPSJzdG9w
305
+LWNvbG9yOiNDODI2MjciCiAgIGlkPSJzdG9wMjg1IiAvPgkJPHN0b3AKICAgb2Zmc2V0PSIwLjM4
306
+OCIKICAgc3R5bGU9InN0b3AtY29sb3I6I0RCODE2OCIKICAgaWQ9InN0b3AyODciIC8+CQk8c3Rv
307
+cAogICBvZmZzZXQ9IjAuNjg1NiIKICAgc3R5bGU9InN0b3AtY29sb3I6I0VCQkVBRCIKICAgaWQ9
308
+InN0b3AyODkiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuODk1OCIKICAgc3R5bGU9InN0b3AtY29s
309
+b3I6I0Y4RTlFMiIKICAgaWQ9InN0b3AyOTEiIC8+PHN0b3AKICAgb2Zmc2V0PSIxIgogICBzdHls
310
+ZT0ic3RvcC1jb2xvcjojRkZGRkZGIgogICBpZD0ic3RvcDI5MyIgLz4JPC9saW5lYXJHcmFkaWVu
311
+dD4JPHBhdGgKICAgZmlsbC1ydWxlPSJldmVub2RkIgogICBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAg
312
+IGZpbGw9InVybCgjU1ZHSURfMTZfKSIKICAgZD0ibSAxNTguMDA1LDI4MC4yNzMgMzYuODgyLC05
313
+LjEzOSAtNC40MDUsLTE3Ljg2NiBjIC0wLjg4NSwtMy4yMTMgLTEuNjMzLC02LjEzIC0yLjM5NSwt
314
+OS4xNTEgLTAuNTMxLC0yLjEwNSAtMS41MDEsLTcuNDMxIC0yLjQ3NCwtOS4xNjcgbCAtMzYuNiw5
315
+LjU1NSBjIDEuMDE0LDIuNjU0IDEuNjg4LDYuMDk4IDIuMzcsOC43ODQgbCA1LjU5OCwyMi40NDEg
316
+YyAwLjU0LDEuOTU2IDAuODM4LDIuODEyIDEuMDI0LDQuNTQzIHoiCiAgIGlkPSJwYXRoMjk2Igog
317
+ICBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzE2XykiIC8+CTxwb2x5Z29uCiAgIGZpbGwtcnVsZT0i
318
+ZXZlbm9kZCIKICAgY2xpcC1ydWxlPSJldmVub2RkIgogICBmaWxsPSIjMDdhNjg0IgogICBwb2lu
319
+dHM9IjYzMC40NTUsMzExLjY5MiA2NzguNDE0LDMxMC41NDIgNjM4LjQwOCwzMDIuODYyIDYxOS4w
320
+ODMsMTk5LjEzNiA1OTAuNjc2LDM1NS43MjQgNTcxLjI3OCwyNDcuMDUgNTUwLjMxMiwzMTIuNTY2
321
+IDUzOC40ODEsMjkzLjU5NSAxMTMuNTg2LDI5Ny43NzUgNTM2LjY3LDMwNC45NzQgNTUyLjQ4NSwz
322
+MzMuNjcgNTY4Ljc5NSwyODIuNDEyIDU4OS44MDMsNDAxLjI1MyA2MTkuNTksMjQxLjM2NSAiCiAg
323
+IGlkPSJwb2x5Z29uMjk4IiAvPgk8cGF0aAogICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgIGNsaXAt
324
+cnVsZT0iZXZlbm9kZCIKICAgZmlsbD0iIzQ2NTU5ZiIKICAgZD0ibSAyNzQuNTYyLDIzMC41NDkg
325
+YyAwLDU3LjA5OCA1LjM2MSwxMDcuMjQ4IDQwLjAyLDE1NS44OTYgMTEuMzI4LDE1LjkwMSAzNC4y
326
+NzksMzYuNjI3IDUxLjg3NCw0Ni4xNDUgOC43NjQsMy42NDggMTIuMTI4LDEuMzQgMTkuNDI1LC0y
327
+LjcyMiAxOC43NDEsLTExLjU5NSAzNC4zMDMsLTI2Ljc2MiA0Ny40MDgsLTQ0LjA5NyAxNy4xNTMs
328
+LTIyLjY5MSAyNi44OTYsLTQ1LjUxOSAzMy41ODMsLTc1LjI4OSA0Ljg4MiwtMjEuNzMxIDYuMTM4
329
+LC01Ni4yMDMgNi4xMzgsLTc5Ljk5NCAtMTcuOTI1LC00LjExNSAtMzUuNTU3LC01LjQxNSAtNTMu
330
+MTM3LC0xMS4wMDggLTE1LjU5LC00Ljk1OSAtMzEuMzczLC0xMS41ODUgLTQ2LjE0OSwtMTkuNTc4
331
+IC0xNC4yODIsOC4yNDkgLTMxLjczOCwxNS4yNTMgLTQ2LjY4LDE5Ljg3NyAtOC4yNTMsMi41NTQg
332
+LTE2Ljc4Nyw0LjYyOSAtMjUuNjIsNi4xODUgLTguMjI1LDEuNDQ5IC0xOS41MjQsMi41OSAtMjYu
333
+ODYyLDQuNTg1IHoiCiAgIGlkPSJwYXRoMzAwIiAvPgk8cGF0aAogICBmaWxsLXJ1bGU9ImV2ZW5v
334
+ZGQiCiAgIGNsaXAtcnVsZT0iZXZlbm9kZCIKICAgZmlsbD0iI2ZmZmZmZiIKICAgZD0ibSAyODgu
335
+MzYxLDI0MS40MzYgYyAyNi44MDksLTMuOTg1IDQxLjg0LC02Ljc0OSA2NS42MzYsLTE3LjIzNSAy
336
+LjgwMSwtMS4yMzQgMTcuODg5LC04LjU5OCAxOS40NjQsLTguNjUgMS4xMzUsLTAuMDM4IDMyLjM5
337
+NSwxNC4wNjggMzguNzUyLDE2LjE4NCAxMi42MTgsNC4yIDMyLjUwMSw4LjE2NCA0Ni40NDIsOS43
338
+MDIgLTEuNTg0LDYxLjEzOCAtMy43NDEsOTYuOTE1IC0zOS4yMjcsMTQyLjU2OSAtNi4zMzksOC4x
339
+NTQgLTM2Ljg3MSwzNi40OSAtNDUuOTczLDM2LjQyIC04LjQwMSwtMC4wNjUgLTMwLjY4OCwtMjAu
340
+NTE5IC0zNy41MjgsLTI3LjY1MyAtNy40MTUsLTcuNzMyIC04LjM1MiwtOC4wMjMgLTE1LjA3OCwt
341
+MTcuNjI2IEMgMjkyLjM0NCwzMzQuNDU0IDI4OC40MjYsMjk2LjEgMjg4LjM2MSwyNDEuNDM2IFog
342
+bSAtNi4zMTcsLTQuNDU2IGMgLTAuODQzLDYyLjcwNyA5LjQwMywxMTkuMjgxIDUxLjM4MywxNjEu
343
+MTg4IDQuMjc4LDQuMjcxIDMyLjgyNSwyOS44OCA0MS41NzQsMjguMjk5IDEzLjcyNywtMi40OCA0
344
+NC41NzgsLTMyLjkyNCA1NS43NzYsLTQ4LjQ1NiAzMC4yMTIsLTQxLjg5OSAzNC41MjgsLTg1LjA3
345
+NCAzNC43OTgsLTE0MS4yMjcgLTI0Ljk3OCwtMy4xMDQgLTQ5LjQwNywtOC4zODcgLTcxLjQ1OSwt
346
+MTguNzU2IC0xMi42MjMsLTUuNDY0IC0xNi42NzIsLTcuNzI3IC0yMC42MTUsLTguNTY0IC00LjYx
347
+OSwxLjM1MSAtNy44NTUsMy40OTQgLTIwLjQ3NSw4Ljg4NiAtMzAuNDUxLDE0LjA2NyAtNDIuNDI1
348
+LDExLjYwOCAtNzAuOTgyLDE4LjYzIHoiCiAgIGlkPSJwYXRoMzAyIiAvPgk8bGluZWFyR3JhZGll
349
+bnQKICAgaWQ9IlNWR0lEXzE3XyIKICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAg
350
+IHgxPSIzNjEuMDIyIgogICB5MT0iMzE4LjI1NzgxIgogICB4Mj0iODA1Ljg2MzcxIgogICB5Mj0i
351
+MzE4LjI1NzgxIj4JCTxzdG9wCiAgIG9mZnNldD0iMCIKICAgc3R5bGU9InN0b3AtY29sb3I6IzQ2
352
+NTU5RiIKICAgaWQ9InN0b3AzMDQiIC8+CQk8c3RvcAogICBvZmZzZXQ9IjAuMjgiCiAgIHN0eWxl
353
+PSJzdG9wLWNvbG9yOiNGRkZGRkYiCiAgIGlkPSJzdG9wMzA2IiAvPgkJPHN0b3AKICAgb2Zmc2V0
354
+PSIxIgogICBzdHlsZT0ic3RvcC1jb2xvcjojRkZGRkZGIgogICBpZD0ic3RvcDMwOCIgLz4JPC9s
355
+aW5lYXJHcmFkaWVudD4JCQk8cGF0aAogICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgIGNsaXAtcnVs
356
+ZT0iZXZlbm9kZCIKICAgZmlsbD0idXJsKCNTVkdJRF8xN18pIgogICBzdHJva2U9IiM0NjU1OWYi
357
+CiAgIHN0cm9rZS13aWR0aD0iMC4yMTYiCiAgIHN0cm9rZS1taXRlcmxpbWl0PSIyLjYxMzEiCiAg
358
+IGQ9Im0gMzc2Ljk5Miw0MTUuNjkgYyAzNC4wMzYsLTE5LjM3NyA1Ny41OTgsLTUxLjg1IDY5LjE4
359
+NywtODcuNjY1IDQuMDc3LC0xMi42MDQgNi4xMSwtMjYuNDggNy41NDEsLTQwLjA4NiAyLjQyNywt
360
+MjMuMDkgNC4wNzcsLTQxLjQ1OSAtMC45NDcsLTQzLjA2OSAtMTAuMjA1LC0zLjI3MSAtMjcuMjI4
361
+LC01LjUzMSAtNDIuMTgsLTExLjE4MyAtMTUuMTAxLC00LjQ2MyAtMzYuODgxLC0xOS43MzIgLTM2
362
+LjkzNCwtOS42MTQgLTAuMDk3LDE4LjQ1MiAtMC4wMTQsMTcwLjA2NyAwLjU1MiwxOTAuNDY1IDAu
363
+MDQzLDEuNTQyIDIuMzY4LDEuMzkgMi43ODEsMS4xNTIgeiIKICAgaWQ9InBhdGgzMTEiCiAgIHN0
364
+eWxlPSJmaWxsOnVybCgjU1ZHSURfMTdfKSIgLz48L2c+PC9nPjxnCiAgICAgICBhcmlhLWxhYmVs
365
+PSJTeXN0ZW0gSGVhbHRoIGFuZCBTZWN1cml0eSBQcm9iZSIKICAgICAgIHRyYW5zZm9ybT0idHJh
366
+bnNsYXRlKC02MS4wMjQyODIsLTMwLjkyNTUwNSkiCiAgICAgICBpZD0idGV4dDg0NyIKICAgICAg
367
+IHN0eWxlPSJmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZTo0Mi42NjY3cHg7bGluZS1oZWlnaHQ6
368
+MS4yNTtmb250LWZhbWlseTpJbnRlcjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidJbnRl
369
+ciwgQm9sZCc7bGV0dGVyLXNwYWNpbmc6MC43cHg7d29yZC1zcGFjaW5nOjBweDt3aGl0ZS1zcGFj
370
+ZTpwcmU7c2hhcGUtaW5zaWRlOnVybCgjcmVjdDg0OSk7c2hhcGUtcGFkZGluZzowLjE0Njk1NTtk
371
+aXNwbGF5OmlubGluZSI+PHBhdGgKICAgICAgICAgZD0ibSA3My41MjU2MjUsNTU5LjYzNDMxIHEg
372
+LTMuNDEzMzM2LDAgLTYuMzU3MzM4LC0wLjcyNTMzIC0yLjkwMTMzNiwtMC43NjggLTQuNzc4Njcs
373
+LTIuMDkwNjcgLTAuNzI1MzM0LC0wLjU1NDY3IC0xLjA2NjY2OCwtMS4xNTIgLTAuMjk4NjY3LC0w
374
+LjU5NzMzIC0wLjI5ODY2NywtMS41MzYgMCwtMS4yOCAwLjc2ODAwMSwtMi4yMTg2NyAwLjc2ODAw
375
+MSwtMC45Mzg2NyAxLjc5MjAwMSwtMC45Mzg2NyAwLjU1NDY2NywwIDEuMDY2NjY4LDAuMTcwNjcg
376
+MC41MTIsMC4xNzA2NyAxLjI4MDAwMSwwLjY0IDEuNzQ5MzM0LDAuOTgxMzMgMy40NTYwMDIsMS40
377
+MDggMS43NDkzMzUsMC40MjY2NyAzLjkyNTMzNywwLjQyNjY3IDIuNTE3MzM1LDAgMy43OTczMzYs
378
+LTAuNzI1MzQgMS4zMjI2NjcsLTAuNzY4IDEuMzIyNjY3LC0yLjIxODY2IDAsLTAuOTgxMzQgLTEu
379
+MjM3MzM0LC0xLjY2NDAxIC0xLjE5NDY2NywtMC43MjUzMyAtNC42MDgwMDMsLTEuNDA4IC00LjIy
380
+NDAwMywtMC44OTYgLTYuNjEzMzM5LC0yLjEzMzMzIC0yLjM4OTMzNSwtMS4yMzczNCAtMy4zNzA2
381
+NjksLTIuOTAxMzQgLTAuOTM4NjY3LC0xLjcwNjY2IC0wLjkzODY2NywtNC4wOTYgMCwtMi43MzA2
382
+NyAxLjYyMTMzNCwtNC45NDkzNCAxLjYyMTMzNSwtMi4yMTg2NiA0LjQzNzMzNywtMy40NTYgMi44
383
+NTg2NjksLTEuMjggNi40MDAwMDUsLTEuMjggMy4xMTQ2NjksMCA1LjU0NjY3MSwwLjY4MjY3IDIu
384
+NDMyMDAxLDAuNjgyNjYgNC40MzczMzYsMi4xMzMzMyAwLjc2ODAwMSwwLjU1NDY3IDEuMDY2NjY4
385
+LDEuMTk0NjcgMC4zNDEzMzMsMC41OTczMyAwLjM0MTMzMywxLjQ5MzMzIDAsMS4yOCAtMC43Njgs
386
+Mi4yMTg2NyAtMC43MjUzMzQsMC45Mzg2NyAtMS43NDkzMzUsMC45Mzg2NyAtMC41NTQ2NjcsMCAt
387
+MS4wMjQwMDEsLTAuMTI4IC0wLjQ2OTMzMywtMC4xNzA2NyAtMS4zMjI2NjcsLTAuNjgyNjcgLTAu
388
+MjEzMzM0LC0wLjEyOCAtMS4yMzczMzUsLTAuNjQgLTAuOTgxMzM0LC0wLjU1NDY3IC0yLjM0NjY2
389
+OCwtMC44NTMzMyAtMS4zMjI2NjgsLTAuMzQxMzQgLTIuOTAxMzM1LC0wLjM0MTM0IC0yLjE3NjAw
390
+MiwwIC0zLjQ5ODY3LDAuODUzMzQgLTEuMzIyNjY3LDAuODEwNjcgLTEuMzIyNjY3LDIuMTc2IDAs
391
+MC44MTA2NyAwLjQ2OTMzMywxLjMyMjY3IDAuNDY5MzM0LDAuNTEyIDEuNzQ5MzM1LDEuMDI0IDEu
392
+MjgwMDAxLDAuNDY5MzMgMy43OTczMzYsMC45ODEzMyA0LjA5NjAwMywwLjg5NiA2LjQ0MjY3Miwy
393
+LjE3NiAyLjM0NjY2OCwxLjIzNzM0IDMuMzI4MDAyLDIuOTAxMzQgMC45ODEzMzQsMS42NjQgMC45
394
+ODEzMzQsMy45MjUzNCAwLDIuODE2IC0xLjU3ODY2OCw0Ljk5MiAtMS41Nzg2NjgsMi4xMzMzMyAt
395
+NC40MzczMzYsMy4zMjggLTIuODE2MDAyLDEuMTUyIC02LjU3MDY3MiwxLjE1MiB6IgogICAgICAg
396
+ICBzdHlsZT0iZm9udC13ZWlnaHQ6OTAwO2ZvbnQtZmFtaWx5Ok51bml0bzstaW5rc2NhcGUtZm9u
397
+dC1zcGVjaWZpY2F0aW9uOidOdW5pdG8gSGVhdnknIgogICAgICAgICBpZD0icGF0aDgzMzIiIC8+
398
+PHBhdGgKICAgICAgICAgZD0ibSAxMDQuMzA1NjQsNTM5Ljk2NDk2IHEgMC40NjkzNCwtMS4wNjY2
399
+NiAxLjI4LC0xLjU3ODY2IDAuODEwNjcsLTAuNTEyIDEuNzkyMDEsLTAuNTEyIDEuNDA4LDAgMi41
400
+MTczMywwLjkzODY2IDEuMTA5MzMsMC45Mzg2NyAxLjEwOTMzLDIuMjYxMzQgMCwwLjcyNTMzIC0w
401
+LjM0MTMzLDEuNDA4IGwgLTExLjMwNjY3NCwyMi42NTYwMiBxIC0wLjUxMiwxLjA2NjY2IC0xLjM2
402
+NTMzNCwxLjU3ODY2IC0wLjgxMDY2NywwLjUxMjAxIC0xLjc5MjAwMSwwLjUxMjAxIC0xLjQwODAw
403
+MiwwIC0yLjUxNzMzNiwtMC45Mzg2NyAtMS4wNjY2NjcsLTAuODk2IC0xLjA2NjY2NywtMi4yMTg2
404
+NyAwLC0wLjcyNTMzIDAuMzg0LC0xLjQ5MzMzIGwgMi43NzMzMzYsLTUuNTg5MzQgLTcuMjUzMzM5
405
+LC0xNC41MDY2OCBxIC0wLjM0MTMzNCwtMC43NjggLTAuMzQxMzM0LC0xLjM2NTMzIDAsLTEuMzY1
406
+MzQgMS4xOTQ2NjgsLTIuMzA0MDEgMS4xOTQ2NjcsLTAuOTgxMzMgMi42ODgwMDIsLTAuOTgxMzMg
407
+MS4wMjQwMDEsMCAxLjg3NzMzNSwwLjU1NDY3IDAuODk2LDAuNTEyIDEuMzY1MzM0LDEuNTc4NjYg
408
+bCA0LjUyMjY3LDkuODEzMzUgeiIKICAgICAgICAgc3R5bGU9ImZvbnQtd2VpZ2h0OjkwMDtmb250
409
+LWZhbWlseTpOdW5pdG87LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonTnVuaXRvIEhlYXZ5
410
+JyIKICAgICAgICAgaWQ9InBhdGg4MzM0IiAvPjxwYXRoCiAgICAgICAgIGQ9Im0gMTIyLjE1NzY4
411
+LDU1OS41OTE2NSBxIC0yLjg1ODY3LDAgLTQuODIxMzMsLTAuNDI2NjcgLTEuOTYyNjcsLTAuNDI2
412
+NjcgLTMuNDU2MDEsLTEuMzY1MzQgLTAuNTk3MzMsLTAuMjk4NjYgLTAuOTM4NjYsLTEuMDI0IC0w
413
+LjM0MTM0LC0wLjcyNTMzIC0wLjM0MTM0LC0xLjYyMTMzIDAsLTEuMTUyIDAuNTk3MzQsLTEuODc3
414
+MzQgMC42NCwtMC43NjggMS41Nzg2NiwtMC43NjggMC42NCwwIDEuMTk0NjcsMC4xNzA2NyAwLjU1
415
+NDY3LDAuMTI4IDEuMzY1MzQsMC40NjkzMyAxLjM2NTMzLDAuNDY5MzQgMi4zODkzMywwLjcyNTM0
416
+IDEuMDY2NjcsMC4yNTYgMi42ODgsMC4yNTYgMS4xNTIsMCAxLjc5MiwtMC4yOTg2NyAwLjY4MjY3
417
+LC0wLjM0MTMzIDAuNjgyNjcsLTAuOTM4NjcgMCwtMC40NjkzMyAtMC4zNDEzMywtMC43MjUzMyAt
418
+MC4yOTg2NywtMC4yNTYgLTEuMTk0NjcsLTAuNDY5MzMgLTAuODk2LC0wLjI1NiAtMy4wMjkzNCwt
419
+MC42ODI2NyAtMy43OTczMywtMC43MjUzMyAtNS41MDQsLTIuMTc2IC0xLjY2NCwtMS40OTMzNCAt
420
+MS42NjQsLTQuMTgxMzQgMCwtMS45NjI2NyAxLjE5NDY3LC0zLjU0MTMzIDEuMjM3MzMsLTEuNTc4
421
+NjcgMy4zNzA2NywtMi40NzQ2NyAyLjEzMzMzLC0wLjg5NiA0Ljc3ODY3LC0wLjg5NiAxLjkyLDAg
422
+My43MTIsMC40NjkzMyAxLjgzNDY3LDAuNDY5MzMgMy4yNDI2NywxLjMyMjY3IDEuMzIyNjcsMC43
423
+NjggMS4zMjI2NywyLjQ3NDY3IDAsMS4xOTQ2NiAtMC42NDAwMSwyLjAwNTMzIC0wLjY0LDAuODEw
424
+NjcgLTEuNTc4NjYsMC44MTA2NyAtMS4xMDkzNCwwIC0yLjY0NTM0LC0wLjcyNTM0IC0xLjAyNCwt
425
+MC40NjkzMyAtMS44MzQ2NywtMC42ODI2NiAtMC43NjgsLTAuMjU2IC0xLjgzNDY2LC0wLjI1NiAt
426
+MS4wNjY2NywwIC0xLjY2NDAxLDAuMzQxMzMgLTAuNTk3MzMsMC4yOTg2NyAtMC41OTczMywwLjg5
427
+NiAwLDAuNjgyNjcgMC44MTA2NywxLjA2NjY3IDAuODUzMzMsMC4zODQgMy4zMjgsMC44NTMzMyA0
428
+LjEzODY3LDAuNzI1MzQgNS44NDUzNCwyLjIxODY3IDEuNzA2NjcsMS40NTA2NyAxLjcwNjY3LDQu
429
+MjI0IDAsMy4xMTQ2NyAtMi42MDI2Nyw0Ljk5MjAxIC0yLjU2LDEuODM0NjcgLTYuOTEyMDEsMS44
430
+MzQ2NyB6IgogICAgICAgICBzdHlsZT0iZm9udC13ZWlnaHQ6OTAwO2ZvbnQtZmFtaWx5Ok51bml0
431
+bzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidOdW5pdG8gSGVhdnknIgogICAgICAgICBp
432
+ZD0icGF0aDgzMzYiIC8+PHBhdGgKICAgICAgICAgZD0ibSAxNDcuNjg5NzIsNTU0LjA4NzY0IHEg
433
+Mi44NTg2NywwLjE3MDY3IDIuODU4NjcsMi41NiAwLDEuNDkzMzQgLTEuMTUyLDIuMjE4NjcgLTEu
434
+MTUyLDAuNzI1MzQgLTMuMjg1MzMsMC41OTczNCBsIC0xLjE5NDY3LC0wLjA4NTMgcSAtMy44NCwt
435
+MC4yOTg2NiAtNS44NDUzNCwtMi4zMDQgLTEuOTYyNjcsLTIuMDQ4IC0xLjk2MjY3LC01LjY3NDY3
436
+IHYgLTcuNTUyMDEgaCAtMS4yMzczMyBxIC0zLjQxMzM0LDAgLTMuNDEzMzQsLTIuODE2IDAsLTIu
437
+NzczMzMgMy40MTMzNCwtMi43NzMzMyBoIDEuMjM3MzMgViA1MzUuNDg1IHEgMCwtMS42MjEzMyAx
438
+LjAyNCwtMi41NiAxLjAyNCwtMC45ODEzMyAyLjc3MzM0LC0wLjk4MTMzIDEuNzQ5MzMsMCAyLjc3
439
+MzMzLDAuOTgxMzMgMS4wMjQsMC45Mzg2NyAxLjAyNCwyLjU2IHYgMi43NzMzNCBoIDIuMzQ2Njcg
440
+cSAzLjQxMzM0LDAgMy40MTMzNCwyLjc3MzMzIDAsMi44MTYgLTMuNDEzMzQsMi44MTYgaCAtMi4z
441
+NDY2NyB2IDguMTkyMDEgcSAwLDAuODEwNjcgMC40NjkzNCwxLjM2NTMzIDAuNTEyLDAuNTU0Njcg
442
+MS4yOCwwLjU5NzM0IHoiCiAgICAgICAgIHN0eWxlPSJmb250LXdlaWdodDo5MDA7Zm9udC1mYW1p
443
+bHk6TnVuaXRvOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246J051bml0byBIZWF2eSciCiAg
444
+ICAgICAgIGlkPSJwYXRoODMzOCIgLz48cGF0aAogICAgICAgICBkPSJtIDE3MC4zMjA0NCw1NTIu
445
+NTA4OTcgcSAwLjk4MTM0LDAgMS41Nzg2NywwLjc2OCAwLjY0LDAuNzY4MDEgMC42NCwyLjAwNTM0
446
+IDAsMS43MDY2NyAtMS42NjQsMi42MDI2NyAtMS40NTA2NywwLjcyNTMzIC0zLjQ1NiwxLjIzNzMz
447
+IC0xLjk2MjY3LDAuNDY5MzQgLTMuNjI2NjcsMC40NjkzNCAtMy40OTg2NywwIC02LjEwMTM0LC0x
448
+LjMyMjY3IC0yLjYwMjY3LC0xLjMyMjY3IC00LjAxMDY3LC0zLjc5NzM0IC0xLjQwOCwtMi40NzQ2
449
+NyAtMS40MDgsLTUuODAyNjcgMCwtMy4xNTczMyAxLjMyMjY3LC01LjYzMiAxLjM2NTMzLC0yLjUx
450
+NzM0IDMuNzU0NjcsLTMuODgyNjcgMi40MzIsLTEuNDA4IDUuNDYxMzMsLTEuNDA4IDIuOTQ0MDEs
451
+MCA1LjE2MjY3LDEuMjggMi4yMTg2NywxLjI4IDMuNDEzMzQsMy42MjY2NyAxLjIzNzMzLDIuMzQ2
452
+NjcgMS4yMzczMyw1LjUwNCAwLDAuOTgxMzMgLTAuNDY5MzMsMS41MzYgLTAuNDI2NjcsMC41MTIg
453
+LTEuMjgsMC41MTIgSCAxNTkuNjExMSBxIDAuMjk4NjcsMi4wNDggMS4zMjI2NywyLjk0NCAxLjAy
454
+NCwwLjg5NjAxIDMuMDI5MzMsMC44OTYwMSAxLjA2NjY3LDAgMS45NjI2NywtMC4yMTMzNCAwLjg5
455
+NiwtMC4yNTYgMi4wMDUzNCwtMC42ODI2NyAwLjY0LC0wLjI1NiAxLjIzNzMzLC0wLjQyNjY2IDAu
456
+NjQsLTAuMjEzMzQgMS4xNTIsLTAuMjEzMzQgeiBtIC03LjI5NiwtOS42NDI2NyBxIC0xLjQ5MzM0
457
+LDAgLTIuMzg5MzQsMC45ODEzMyAtMC44OTYsMC45Mzg2NyAtMS4wNjY2NywyLjc3MzM0IGggNi42
458
+OTg2OCBxIC0wLjI1NiwtMy43NTQ2NyAtMy4yNDI2NywtMy43NTQ2NyB6IgogICAgICAgICBzdHls
459
+ZT0iZm9udC13ZWlnaHQ6OTAwO2ZvbnQtZmFtaWx5Ok51bml0bzstaW5rc2NhcGUtZm9udC1zcGVj
460
+aWZpY2F0aW9uOidOdW5pdG8gSGVhdnknIgogICAgICAgICBpZD0icGF0aDgzNDAiIC8+PHBhdGgK
461
+ICAgICAgICAgZD0ibSAyMDMuNTc1MTIsNTM3Ljc0NjMgcSAzLjQ1NjAxLDAgNS4zMzMzNCwyLjA5
462
+MDY2IDEuODc3MzMsMi4wNDgwMSAxLjg3NzMzLDYuOTU0NjggdiA5LjIxNiBxIDAsMS43NDkzNCAt
463
+MS4xMDkzMywyLjY0NTM0IC0xLjA2NjY3LDAuODUzMzMgLTIuNjg4LDAuODUzMzMgLTEuNjIxMzQs
464
+MCAtMi43MzA2NywtMC44NTMzMyAtMS4wNjY2NywtMC44OTYgLTEuMDY2NjcsLTIuNjQ1MzQgdiAt
465
+OS4zODY2NyBxIDAsLTEuNzA2NjcgLTAuNTk3MzMsLTIuMzg5MzQgLTAuNTk3MzQsLTAuNjgyNjYg
466
+LTEuNzQ5MzQsLTAuNjgyNjYgLTEuNDkzMzMsMCAtMi4zODkzMywxLjA2NjY2IC0wLjg5NiwxLjA2
467
+NjY3IC0wLjg5NiwyLjk0NDAxIHYgOC40NDggcSAwLDEuNzQ5MzQgLTEuMDY2NjcsMi42NDUzNCAt
468
+MS4wNjY2NywwLjg1MzMzIC0yLjczMDY3LDAuODUzMzMgLTEuNjIxMzMsMCAtMi43MzA2NywtMC44
469
+NTMzMyAtMS4wNjY2NiwtMC44OTYgLTEuMDY2NjYsLTIuNjQ1MzQgdiAtOS4zODY2NyBxIDAsLTEu
470
+NzA2NjcgLTAuNTk3MzQsLTIuMzg5MzQgLTAuNTk3MzMsLTAuNjgyNjYgLTEuNzQ5MzMsLTAuNjgy
471
+NjYgLTEuNDkzMzQsMCAtMi4zODkzNCwxLjA2NjY2IC0wLjg1MzMzLDEuMDY2NjcgLTAuODUzMzMs
472
+Mi45NDQwMSB2IDguNDQ4IHEgMCwxLjc0OTM0IC0xLjEwOTM0LDIuNjQ1MzQgLTEuMDY2NjYsMC44
473
+NTMzMyAtMi42ODgsMC44NTMzMyAtMS42MjEzMywwIC0yLjczMDY3LC0wLjg1MzMzIC0xLjA2NjY2
474
+LC0wLjg5NiAtMS4wNjY2NiwtMi42NDUzNCB2IC0xNC43NjI2NyBxIDAsLTEuNjY0MDEgMS4xMDkz
475
+MywtMi41MTczNCAxLjE1MiwtMC44OTYgMi43MzA2NywtMC44OTYgMS40OTMzMywwIDIuNDc0Njcs
476
+MC44MTA2NyAxLjAyNCwwLjc2OCAxLjA2NjY2LDIuMjYxMzMgMi4wOTA2NywtMy4xNTczMyA2LjQw
477
+MDAxLC0zLjE1NzMzIDQuNTY1MzQsMCA2LjEwMTM0LDMuNzEyIDEuMDY2NjYsLTEuNzA2NjcgMi44
478
+NTg2NywtMi42ODggMS43OTIsLTEuMDI0IDQuMDUzMzMsLTEuMDI0IHoiCiAgICAgICAgIHN0eWxl
479
+PSJmb250LXdlaWdodDo5MDA7Zm9udC1mYW1pbHk6TnVuaXRvOy1pbmtzY2FwZS1mb250LXNwZWNp
480
+ZmljYXRpb246J051bml0byBIZWF2eSciCiAgICAgICAgIGlkPSJwYXRoODM0MiIgLz48cGF0aAog
481
+ICAgICAgICBkPSJtIDI1Mi45NzUxLDUyOC45NTY5NiBxIDEuNzQ5MzQsMCAyLjc3MzM0LDEuMDY2
482
+NjYgMS4wNjY2NywxLjAyNCAxLjA2NjY3LDIuNzczMzQgdiAyMi44MjY2OCBxIDAsMS43NDkzNCAt
483
+MS4wNjY2NywyLjgxNjAxIC0xLjAyNCwxLjA2NjY2IC0yLjc3MzM0LDEuMDY2NjYgLTEuNzQ5MzMs
484
+MCAtMi44MTYsLTEuMDI0IC0xLjAyNCwtMS4wNjY2NyAtMS4wMjQsLTIuODU4NjcgdiAtOC41MzMz
485
+NCBoIC0xMi4yODgwMSB2IDguNTMzMzQgcSAwLDEuNzQ5MzQgLTEuMDY2NjcsMi44MTYwMSAtMS4w
486
+MjQsMS4wNjY2NiAtMi43NzMzMywxLjA2NjY2IC0xLjc0OTM0LDAgLTIuODE2LC0xLjAyNCAtMS4w
487
+MjQsLTEuMDY2NjcgLTEuMDI0LC0yLjg1ODY3IHYgLTIyLjgyNjY4IHEgMCwtMS43NDkzNCAxLjAy
488
+NCwtMi43NzMzNCAxLjA2NjY2LC0xLjA2NjY2IDIuODE2LC0xLjA2NjY2IDEuNzQ5MzMsMCAyLjc3
489
+MzMzLDEuMDY2NjYgMS4wNjY2NywxLjAyNCAxLjA2NjY3LDIuNzczMzQgdiA4LjA2NDAxIGggMTIu
490
+Mjg4MDEgdiAtOC4wNjQwMSBxIDAsLTEuNzQ5MzQgMS4wMjQsLTIuNzczMzQgMS4wNjY2NywtMS4w
491
+NjY2NiAyLjgxNiwtMS4wNjY2NiB6IgogICAgICAgICBzdHlsZT0iZm9udC13ZWlnaHQ6OTAwO2Zv
492
+bnQtZmFtaWx5Ok51bml0bzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidOdW5pdG8gSGVh
493
+dnknIgogICAgICAgICBpZD0icGF0aDgzNDQiIC8+PHBhdGgKICAgICAgICAgZD0ibSAyNzkuNTMx
494
+MTcsNTUyLjUwODk3IHEgMC45ODEzMywwIDEuNTc4NjYsMC43NjggMC42NDAwMSwwLjc2ODAxIDAu
495
+NjQwMDEsMi4wMDUzNCAwLDEuNzA2NjcgLTEuNjY0MDEsMi42MDI2NyAtMS40NTA2NiwwLjcyNTMz
496
+IC0zLjQ1NiwxLjIzNzMzIC0xLjk2MjY3LDAuNDY5MzQgLTMuNjI2NjcsMC40NjkzNCAtMy40OTg2
497
+NywwIC02LjEwMTM0LC0xLjMyMjY3IC0yLjYwMjY2LC0xLjMyMjY3IC00LjAxMDY3LC0zLjc5NzM0
498
+IC0xLjQwOCwtMi40NzQ2NyAtMS40MDgsLTUuODAyNjcgMCwtMy4xNTczMyAxLjMyMjY3LC01LjYz
499
+MiAxLjM2NTM0LC0yLjUxNzM0IDMuNzU0NjcsLTMuODgyNjcgMi40MzIsLTEuNDA4IDUuNDYxMzQs
500
+LTEuNDA4IDIuOTQ0LDAgNS4xNjI2NywxLjI4IDIuMjE4NjcsMS4yOCAzLjQxMzMzLDMuNjI2Njcg
501
+MS4yMzczNCwyLjM0NjY3IDEuMjM3MzQsNS41MDQgMCwwLjk4MTMzIC0wLjQ2OTM0LDEuNTM2IC0w
502
+LjQyNjY2LDAuNTEyIC0xLjI4LDAuNTEyIGggLTExLjI2NCBxIDAuMjk4NjYsMi4wNDggMS4zMjI2
503
+NiwyLjk0NCAxLjAyNCwwLjg5NjAxIDMuMDI5MzQsMC44OTYwMSAxLjA2NjY3LDAgMS45NjI2Nywt
504
+MC4yMTMzNCAwLjg5NiwtMC4yNTYgMi4wMDUzMywtMC42ODI2NyAwLjY0LC0wLjI1NiAxLjIzNzM0
505
+LC0wLjQyNjY2IDAuNjQsLTAuMjEzMzQgMS4xNTIsLTAuMjEzMzQgeiBtIC03LjI5NjAxLC05LjY0
506
+MjY3IHEgLTEuNDkzMzMsMCAtMi4zODkzMywwLjk4MTMzIC0wLjg5NiwwLjkzODY3IC0xLjA2NjY3
507
+LDIuNzczMzQgaCA2LjY5ODY3IHEgLTAuMjU2LC0zLjc1NDY3IC0zLjI0MjY3LC0zLjc1NDY3IHoi
508
+CiAgICAgICAgIHN0eWxlPSJmb250LXdlaWdodDo5MDA7Zm9udC1mYW1pbHk6TnVuaXRvOy1pbmtz
509
+Y2FwZS1mb250LXNwZWNpZmljYXRpb246J051bml0byBIZWF2eSciCiAgICAgICAgIGlkPSJwYXRo
510
+ODM0NiIgLz48cGF0aAogICAgICAgICBkPSJtIDI5NS43NjE4Myw1MzcuNzQ2MyBxIDQuODY0MDEs
511
+MCA3LjE2ODAxLDIuMzQ2NjYgMi4zNDY2NywyLjMwNDAxIDIuMzQ2NjcsNy4wNDAwMSB2IDguOTE3
512
+MzQgcSAwLDEuNjIxMzMgLTAuOTgxMzQsMi41NiAtMC45Mzg2NiwwLjg5NiAtMi42NDUzMywwLjg5
513
+NiAtMS40OTMzNCwwIC0yLjQ3NDY3LC0wLjg1MzMzIC0wLjkzODY3LC0wLjg1MzM0IC0xLjAyNCwt
514
+Mi4zMDQgLTAuNTk3MzMsMS41MzYgLTIuMDA1MzQsMi4zODkzMyAtMS40MDgsMC44NTMzNCAtMy4z
515
+NzA2NywwLjg1MzM0IC0yLjE3NiwwIC0zLjkyNTMzLC0wLjg1MzM0IC0xLjc0OTM0LC0wLjg5NiAt
516
+Mi43NzMzNCwtMi40MzIgLTAuOTgxMzMsLTEuNTc4NjcgLTAuOTgxMzMsLTMuNTQxMzQgMCwtMi4y
517
+NjEzMyAxLjE1MiwtMy41ODQgMS4xOTQ2NywtMS4zNjUzMyAzLjc1NDY3LC0xLjk2MjY3IDIuNTYs
518
+LTAuNTk3MzMgNi45MTIsLTAuNTk3MzMgaCAxLjE1MjAxIHYgLTAuNTEyIHEgMCwtMS40OTMzNCAt
519
+MC42ODI2NywtMi4xMzMzNCAtMC42ODI2NywtMC42ODI2NiAtMi4zMDQsLTAuNjgyNjYgLTEuNzQ5
520
+MzQsMCAtNS4xMjAwMSwxLjE5NDY2IC0wLjk4MTMzLDAuMzQxMzQgLTEuNjY0LDAuMzQxMzQgLTEu
521
+MDY2NjcsMCAtMS43MDY2NywtMC43NjggLTAuNjQsLTAuNzY4IC0wLjY0LC0yLjAwNTM0IDAsLTAu
522
+OTM4NjYgMC4zODQsLTEuNTM2IDAuMzg0LC0wLjU5NzMzIDEuMjM3MzQsLTEuMDY2NjcgMS40OTMz
523
+MywtMC43NjggMy43NTQ2NywtMS4yMzczMyAyLjI2MTMzLC0wLjQ2OTMzIDQuNDM3MzMsLTAuNDY5
524
+MzMgeiBtIC0xLjE5NDY2LDE2Ljc2ODAxIHEgMS41MzYsMCAyLjUxNzMzLC0xLjA2NjY3IDAuOTgx
525
+MzQsLTEuMTA5MzMgMC45ODEzNCwtMi44MTYgdiAtMC41MTIgaCAtMC42ODI2NyBxIC0yLjczMDY3
526
+LDAgLTMuODgyNjcsMC41MTIgLTEuMTUyLDAuNDY5MzMgLTEuMTUyLDEuNjIxMzMgMCwwLjk4MTM0
527
+IDAuNTk3MzMsMS42MjEzNCAwLjY0LDAuNjQgMS42MjEzNCwwLjY0IHoiCiAgICAgICAgIHN0eWxl
528
+PSJmb250LXdlaWdodDo5MDA7Zm9udC1mYW1pbHk6TnVuaXRvOy1pbmtzY2FwZS1mb250LXNwZWNp
529
+ZmljYXRpb246J051bml0byBIZWF2eSciCiAgICAgICAgIGlkPSJwYXRoODM0OCIgLz48cGF0aAog
530
+ICAgICAgICBkPSJtIDMxNC4wNDA1MSw1NTkuNTA2MzEgcSAtMS42MjEzMywwIC0yLjczMDY3LC0w
531
+Ljg1MzMzIC0xLjA2NjY3LC0wLjg5NiAtMS4wNjY2NywtMi42NDUzNCB2IC0yMy41MDkzNSBxIDAs
532
+LTEuNzQ5MzMgMS4wNjY2NywtMi42NDUzMyAxLjEwOTM0LC0wLjg5NiAyLjczMDY3LC0wLjg5NiAx
533
+LjYyMTMzLDAgMi42ODgsMC44OTYgMS4xMDkzNCwwLjg5NiAxLjEwOTM0LDIuNjQ1MzMgdiAyMy41
534
+MDkzNSBxIDAsMS43NDkzNCAtMS4xMDkzNCwyLjY0NTM0IC0xLjA2NjY3LDAuODUzMzMgLTIuNjg4
535
+LDAuODUzMzMgeiIKICAgICAgICAgc3R5bGU9ImZvbnQtd2VpZ2h0OjkwMDtmb250LWZhbWlseTpO
536
+dW5pdG87LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonTnVuaXRvIEhlYXZ5JyIKICAgICAg
537
+ICAgaWQ9InBhdGg4MzUwIiAvPjxwYXRoCiAgICAgICAgIGQ9Im0gMzM2Ljg4NDQ5LDU1NC4wODc2
538
+NCBxIDIuODU4NjcsMC4xNzA2NyAyLjg1ODY3LDIuNTYgMCwxLjQ5MzM0IC0xLjE1MiwyLjIxODY3
539
+IC0xLjE1MiwwLjcyNTM0IC0zLjI4NTMzLDAuNTk3MzQgbCAtMS4xOTQ2NywtMC4wODUzIHEgLTMu
540
+ODQsLTAuMjk4NjYgLTUuODQ1MzQsLTIuMzA0IC0xLjk2MjY3LC0yLjA0OCAtMS45NjI2NywtNS42
541
+NzQ2NyB2IC03LjU1MjAxIGggLTEuMjM3MzMgcSAtMy40MTMzNCwwIC0zLjQxMzM0LC0yLjgxNiAw
542
+LC0yLjc3MzMzIDMuNDEzMzQsLTIuNzczMzMgaCAxLjIzNzMzIFYgNTM1LjQ4NSBxIDAsLTEuNjIx
543
+MzMgMS4wMjQsLTIuNTYgMS4wMjQsLTAuOTgxMzMgMi43NzMzNCwtMC45ODEzMyAxLjc0OTMzLDAg
544
+Mi43NzMzMywwLjk4MTMzIDEuMDI0MDEsMC45Mzg2NyAxLjAyNDAxLDIuNTYgdiAyLjc3MzM0IGgg
545
+Mi4zNDY2NiBxIDMuNDEzMzQsMCAzLjQxMzM0LDIuNzczMzMgMCwyLjgxNiAtMy40MTMzNCwyLjgx
546
+NiBoIC0yLjM0NjY2IHYgOC4xOTIwMSBxIDAsMC44MTA2NyAwLjQ2OTMzLDEuMzY1MzMgMC41MTIs
547
+MC41NTQ2NyAxLjI4LDAuNTk3MzQgeiIKICAgICAgICAgc3R5bGU9ImZvbnQtd2VpZ2h0OjkwMDtm
548
+b250LWZhbWlseTpOdW5pdG87LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonTnVuaXRvIEhl
549
+YXZ5JyIKICAgICAgICAgaWQ9InBhdGg4MzUyIiAvPjxwYXRoCiAgICAgICAgIGQ9Im0gMzU2Ljc0
550
+MTg3LDUzNy43NDYzIHEgMy42NjkzNCwwIDUuNDYxMzQsMi4yNjEzMyAxLjc5MiwyLjIxODY3IDEu
551
+NzkyLDYuNzg0MDEgdiA5LjIxNiBxIDAsMS42MjEzNCAtMS4wMjQsMi41NjAwMSAtMS4wMjQsMC45
552
+Mzg2NiAtMi43NzMzNCwwLjkzODY2IC0xLjc0OTMzLDAgLTIuNzczMzMsLTAuOTM4NjYgLTEuMDI0
553
+LC0wLjkzODY3IC0xLjAyNCwtMi41NjAwMSB2IC05LjM4NjY3IHEgMCwtMy4wNzIgLTIuNjQ1MzQs
554
+LTMuMDcyIC0xLjcwNjY3LDAgLTIuNzMwNjcsMS4xMDkzMyAtMC45ODEzMywxLjA2NjY3IC0wLjk4
555
+MTMzLDIuOTAxMzQgdiA4LjQ0OCBxIDAsMS42MjEzNCAtMS4wMjQsMi41NjAwMSAtMS4wMjQsMC45
556
+Mzg2NiAtMi43NzMzNCwwLjkzODY2IC0xLjc0OTMzLDAgLTIuNzczMzMsLTAuOTM4NjYgLTEuMDI0
557
+LC0wLjkzODY3IC0xLjAyNCwtMi41NjAwMSB2IC0yMy42MzczNSBxIDAsLTEuNDkzMzMgMS4wNjY2
558
+NiwtMi40MzIgMS4wNjY2NywtMC45ODEzMyAyLjgxNjAxLC0wLjk4MTMzIDEuNjY0LDAgMi42ODgs
559
+MC44OTYgMS4wMjQsMC44OTYgMS4wMjQsMi4zODkzMyB2IDguNTMzMzQgcSAxLjE1MiwtMS40OTMz
560
+MyAyLjg1ODY3LC0yLjI2MTMzIDEuNzA2NjcsLTAuNzY4IDMuODQsLTAuNzY4IHoiCiAgICAgICAg
561
+IHN0eWxlPSJmb250LXdlaWdodDo5MDA7Zm9udC1mYW1pbHk6TnVuaXRvOy1pbmtzY2FwZS1mb250
562
+LXNwZWNpZmljYXRpb246J051bml0byBIZWF2eSciCiAgICAgICAgIGlkPSJwYXRoODM1NCIgLz48
563
+cGF0aAogICAgICAgICBkPSJtIDM5MS42MzUxOSw1MzcuNzQ2MyBxIDQuODY0LDAgNy4xNjgsMi4z
564
+NDY2NiAyLjM0NjY3LDIuMzA0MDEgMi4zNDY2Nyw3LjA0MDAxIHYgOC45MTczNCBxIDAsMS42MjEz
565
+MyAtMC45ODEzMywyLjU2IC0wLjkzODY3LDAuODk2IC0yLjY0NTM0LDAuODk2IC0xLjQ5MzMzLDAg
566
+LTIuNDc0NjcsLTAuODUzMzMgLTAuOTM4NjcsLTAuODUzMzQgLTEuMDI0LC0yLjMwNCAtMC41OTcz
567
+MywxLjUzNiAtMi4wMDUzMywyLjM4OTMzIC0xLjQwOCwwLjg1MzM0IC0zLjM3MDY3LDAuODUzMzQg
568
+LTIuMTc2LDAgLTMuOTI1MzQsLTAuODUzMzQgLTEuNzQ5MzMsLTAuODk2IC0yLjc3MzMzLC0yLjQz
569
+MiAtMC45ODEzNCwtMS41Nzg2NyAtMC45ODEzNCwtMy41NDEzNCAwLC0yLjI2MTMzIDEuMTUyLC0z
570
+LjU4NCAxLjE5NDY3LC0xLjM2NTMzIDMuNzU0NjcsLTEuOTYyNjcgMi41NiwtMC41OTczMyA2Ljkx
571
+MjAxLC0wLjU5NzMzIGggMS4xNTIgdiAtMC41MTIgcSAwLC0xLjQ5MzM0IC0wLjY4MjY3LC0yLjEz
572
+MzM0IC0wLjY4MjY3LC0wLjY4MjY2IC0yLjMwNCwtMC42ODI2NiAtMS43NDkzNCwwIC01LjEyMDAx
573
+LDEuMTk0NjYgLTAuOTgxMzMsMC4zNDEzNCAtMS42NjQsMC4zNDEzNCAtMS4wNjY2NiwwIC0xLjcw
574
+NjY2LC0wLjc2OCAtMC42NCwtMC43NjggLTAuNjQsLTIuMDA1MzQgMCwtMC45Mzg2NiAwLjM4NCwt
575
+MS41MzYgMC4zODQsLTAuNTk3MzMgMS4yMzczMywtMS4wNjY2NyAxLjQ5MzMzLC0wLjc2OCAzLjc1
576
+NDY3LC0xLjIzNzMzIDIuMjYxMzMsLTAuNDY5MzMgNC40MzczNCwtMC40NjkzMyB6IG0gLTEuMTk0
577
+NjcsMTYuNzY4MDEgcSAxLjUzNiwwIDIuNTE3MzMsLTEuMDY2NjcgMC45ODEzNCwtMS4xMDkzMyAw
578
+Ljk4MTM0LC0yLjgxNiB2IC0wLjUxMiBoIC0wLjY4MjY3IHEgLTIuNzMwNjcsMCAtMy44ODI2Nyww
579
+LjUxMiAtMS4xNTIsMC40NjkzMyAtMS4xNTIsMS42MjEzMyAwLDAuOTgxMzQgMC41OTczMywxLjYy
580
+MTM0IDAuNjQsMC42NCAxLjYyMTM0LDAuNjQgeiIKICAgICAgICAgc3R5bGU9ImZvbnQtd2VpZ2h0
581
+OjkwMDtmb250LWZhbWlseTpOdW5pdG87LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonTnVu
582
+aXRvIEhlYXZ5JyIKICAgICAgICAgaWQ9InBhdGg4MzU2IiAvPjxwYXRoCiAgICAgICAgIGQ9Im0g
583
+NDIwLjIzOTIsNTM3Ljc0NjMgcSAzLjc1NDY3LDAgNS41ODkzNCwyLjI2MTMzIDEuODM0NjcsMi4y
584
+MTg2NyAxLjgzNDY3LDYuNzg0MDEgdiA5LjIxNiBxIDAsMS42MjEzNCAtMS4wMjQsMi41NjAwMSAt
585
+MS4wMjQsMC45Mzg2NiAtMi43NzMzNCwwLjkzODY2IC0xLjc0OTMzLDAgLTIuNzczMzMsLTAuOTM4
586
+NjYgLTEuMDI0LC0wLjkzODY3IC0xLjAyNCwtMi41NjAwMSB2IC04Ljg3NDY3IHEgMCwtMS44Nzcz
587
+MyAtMC42ODI2NywtMi43MzA2NyAtMC42NCwtMC44NTMzMyAtMS45NjI2NywtMC44NTMzMyAtMS43
588
+MDY2NywwIC0yLjczMDY3LDEuMTA5MzMgLTAuOTgxMzMsMS4wNjY2NyAtMC45ODEzMywyLjkwMTM0
589
+IHYgOC40NDggcSAwLDEuNjIxMzQgLTEuMDI0LDIuNTYwMDEgLTEuMDI0LDAuOTM4NjYgLTIuNzcz
590
+MzQsMC45Mzg2NiAtMS43NDkzMywwIC0yLjc3MzMzLC0wLjkzODY2IC0xLjAyNCwtMC45Mzg2NyAt
591
+MS4wMjQsLTIuNTYwMDEgdiAtMTQuNzYyNjcgcSAwLC0xLjQ5MzM0IDEuMDY2NjYsLTIuNDMyMDEg
592
+MS4wNjY2NywtMC45ODEzMyAyLjc3MzM0LC0wLjk4MTMzIDEuNjIxMzMsMCAyLjU2LDAuODk2IDAu
593
+OTgxMzMsMC44OTYgMC45ODEzMywyLjM0NjY3IDEuMTA5MzQsLTEuNjIxMzQgMi44NTg2NywtMi40
594
+NzQ2NyAxLjc0OTM0LC0wLjg1MzMzIDMuODgyNjcsLTAuODUzMzMgeiIKICAgICAgICAgc3R5bGU9
595
+ImZvbnQtd2VpZ2h0OjkwMDtmb250LWZhbWlseTpOdW5pdG87LWlua3NjYXBlLWZvbnQtc3BlY2lm
596
+aWNhdGlvbjonTnVuaXRvIEhlYXZ5JyIKICAgICAgICAgaWQ9InBhdGg4MzU4IiAvPjxwYXRoCiAg
597
+ICAgICAgIGQ9Im0gNDUwLjk3NjU0LDUyOC45NTY5NiBxIDEuNzA2NjcsMCAyLjc3MzM0LDAuOTgx
598
+MzMgMS4xMDkzMywwLjkzODY3IDEuMTA5MzMsMi40MzIgdiAyMy42MzczNSBxIDAsMS42MjEzNCAt
599
+MS4wMjQsMi41NjAwMSAtMS4wMjQsMC45Mzg2NiAtMi43MzA2NywwLjkzODY2IC0xLjU3ODY3LDAg
600
+LTIuNjAyNjcsLTAuODEwNjYgLTAuOTgxMzMsLTAuODUzMzQgLTEuMTA5MzMsLTIuMzA0MDEgLTAu
601
+ODk2LDEuNDkzMzQgLTIuNjQ1MzQsMi4zNDY2NyAtMS43MDY2NiwwLjg1MzM0IC0zLjc5NzMzLDAu
602
+ODUzMzQgLTIuNjg4LDAgLTQuODIxMzQsLTEuMzY1MzQgLTIuMDkwNjcsLTEuNDA4IC0zLjI4NTMz
603
+LC0zLjkyNTMzIC0xLjE5NDY3LC0yLjUxNzM0IC0xLjE5NDY3LC01Ljc2MDAxIDAsLTMuMjQyNjcg
604
+MS4xNTIsLTUuNjc0NjcgMS4xOTQ2NywtMi40NzQ2NyAzLjI4NTMzLC0zLjc5NzM0IDIuMTMzMzQs
605
+LTEuMzIyNjYgNC44NjQwMSwtMS4zMjI2NiAyLjAwNTMzLDAgMy42NjkzMywwLjgxMDY2IDEuNzA2
606
+NjcsMC44MTA2NyAyLjY0NTM0LDIuMTc2MDEgdiAtOC40OTA2OCBxIDAsLTEuNDkzMzMgMC45ODEz
607
+MywtMi4zODkzMyAxLjAyNCwtMC44OTYgMi43MzA2NywtMC44OTYgeiBtIC03LjcyMjY3LDI0Ljk2
608
+MDAyIHEgMi4wMDUzMywwIDMuMDcyLC0xLjM2NTM0IDEuMDY2NjcsLTEuMzY1MzMgMS4wNjY2Nywt
609
+My45MjUzNCAwLC0yLjUxNzMzIC0xLjA2NjY3LC0zLjg0IC0xLjA2NjY3LC0xLjM2NTMzIC0zLjA3
610
+MiwtMS4zNjUzMyAtMS45NjI2NywwIC0zLjAyOTM0LDEuMzIyNjcgLTEuMDY2NjYsMS4zMjI2NiAt
611
+MS4wNjY2NiwzLjc5NzMzIDAsMi41NiAxLjA2NjY2LDMuOTY4IDEuMTA5MzQsMS40MDgwMSAzLjAy
612
+OTM0LDEuNDA4MDEgeiIKICAgICAgICAgc3R5bGU9ImZvbnQtd2VpZ2h0OjkwMDtmb250LWZhbWls
613
+eTpOdW5pdG87LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonTnVuaXRvIEhlYXZ5JyIKICAg
614
+ICAgICAgaWQ9InBhdGg4MzYwIiAvPjxwYXRoCiAgICAgICAgIGQ9Im0gNDg0LjcxNzg5LDU1OS42
615
+MzQzMSBxIC0zLjQxMzM0LDAgLTYuMzU3MzQsLTAuNzI1MzMgLTIuOTAxMzQsLTAuNzY4IC00Ljc3
616
+ODY3LC0yLjA5MDY3IC0wLjcyNTM0LC0wLjU1NDY3IC0xLjA2NjY3LC0xLjE1MiAtMC4yOTg2Nywt
617
+MC41OTczMyAtMC4yOTg2NywtMS41MzYgMCwtMS4yOCAwLjc2OCwtMi4yMTg2NyAwLjc2OCwtMC45
618
+Mzg2NyAxLjc5MjAxLC0wLjkzODY3IDAuNTU0NjYsMCAxLjA2NjY2LDAuMTcwNjcgMC41MTIsMC4x
619
+NzA2NyAxLjI4LDAuNjQgMS43NDkzNCwwLjk4MTMzIDMuNDU2MDEsMS40MDggMS43NDkzMywwLjQy
620
+NjY3IDMuOTI1MzMsMC40MjY2NyAyLjUxNzM0LDAgMy43OTczNCwtMC43MjUzNCAxLjMyMjY3LC0w
621
+Ljc2OCAxLjMyMjY3LC0yLjIxODY2IDAsLTAuOTgxMzQgLTEuMjM3MzQsLTEuNjY0MDEgLTEuMTk0
622
+NjcsLTAuNzI1MzMgLTQuNjA4LC0xLjQwOCAtNC4yMjQsLTAuODk2IC02LjYxMzM0LC0yLjEzMzMz
623
+IC0yLjM4OTMzLC0xLjIzNzM0IC0zLjM3MDY3LC0yLjkwMTM0IC0wLjkzODY3LC0xLjcwNjY2IC0w
624
+LjkzODY3LC00LjA5NiAwLC0yLjczMDY3IDEuNjIxMzQsLTQuOTQ5MzQgMS42MjEzMywtMi4yMTg2
625
+NiA0LjQzNzMzLC0zLjQ1NiAyLjg1ODY3LC0xLjI4IDYuNDAwMDEsLTEuMjggMy4xMTQ2NywwIDUu
626
+NTQ2NjcsMC42ODI2NyAyLjQzMiwwLjY4MjY2IDQuNDM3MzQsMi4xMzMzMyAwLjc2OCwwLjU1NDY3
627
+IDEuMDY2NjYsMS4xOTQ2NyAwLjM0MTM0LDAuNTk3MzMgMC4zNDEzNCwxLjQ5MzMzIDAsMS4yOCAt
628
+MC43NjgsMi4yMTg2NyAtMC43MjUzNCwwLjkzODY3IC0xLjc0OTM0LDAuOTM4NjcgLTAuNTU0NjYs
629
+MCAtMS4wMjQsLTAuMTI4IC0wLjQ2OTMzLC0wLjE3MDY3IC0xLjMyMjY3LC0wLjY4MjY3IC0wLjIx
630
+MzMzLC0wLjEyOCAtMS4yMzczMywtMC42NCAtMC45ODEzMywtMC41NTQ2NyAtMi4zNDY2NywtMC44
631
+NTMzMyAtMS4zMjI2NywtMC4zNDEzNCAtMi45MDEzMywtMC4zNDEzNCAtMi4xNzYwMSwwIC0zLjQ5
632
+ODY3LDAuODUzMzQgLTEuMzIyNjcsMC44MTA2NyAtMS4zMjI2NywyLjE3NiAwLDAuODEwNjcgMC40
633
+NjkzMywxLjMyMjY3IDAuNDY5MzQsMC41MTIgMS43NDkzNCwxLjAyNCAxLjI4LDAuNDY5MzMgMy43
634
+OTczMywwLjk4MTMzIDQuMDk2MDEsMC44OTYgNi40NDI2OCwyLjE3NiAyLjM0NjY2LDEuMjM3MzQg
635
+My4zMjgsMi45MDEzNCAwLjk4MTMzLDEuNjY0IDAuOTgxMzMsMy45MjUzNCAwLDIuODE2IC0xLjU3
636
+ODY3LDQuOTkyIC0xLjU3ODY2LDIuMTMzMzMgLTQuNDM3MzMsMy4zMjggLTIuODE2LDEuMTUyIC02
637
+LjU3MDY3LDEuMTUyIHoiCiAgICAgICAgIHN0eWxlPSJmb250LXdlaWdodDo5MDA7Zm9udC1mYW1p
638
+bHk6TnVuaXRvOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246J051bml0byBIZWF2eSciCiAg
639
+ICAgICAgIGlkPSJwYXRoODM2MiIgLz48cGF0aAogICAgICAgICBkPSJtIDUxOC45OTY1Niw1NTIu
640
+NTA4OTcgcSAwLjk4MTMzLDAgMS41Nzg2NywwLjc2OCAwLjY0LDAuNzY4MDEgMC42NCwyLjAwNTM0
641
+IDAsMS43MDY2NyAtMS42NjQsMi42MDI2NyAtMS40NTA2NywwLjcyNTMzIC0zLjQ1NjAxLDEuMjM3
642
+MzMgLTEuOTYyNjYsMC40NjkzNCAtMy42MjY2NywwLjQ2OTM0IC0zLjQ5ODY2LDAgLTYuMTAxMzMs
643
+LTEuMzIyNjcgLTIuNjAyNjcsLTEuMzIyNjcgLTQuMDEwNjcsLTMuNzk3MzQgLTEuNDA4LC0yLjQ3
644
+NDY3IC0xLjQwOCwtNS44MDI2NyAwLC0zLjE1NzMzIDEuMzIyNjYsLTUuNjMyIDEuMzY1MzQsLTIu
645
+NTE3MzQgMy43NTQ2NywtMy44ODI2NyAyLjQzMjAxLC0xLjQwOCA1LjQ2MTM0LC0xLjQwOCAyLjk0
646
+NCwwIDUuMTYyNjcsMS4yOCAyLjIxODY3LDEuMjggMy40MTMzNCwzLjYyNjY3IDEuMjM3MzMsMi4z
647
+NDY2NyAxLjIzNzMzLDUuNTA0IDAsMC45ODEzMyAtMC40NjkzMywxLjUzNiAtMC40MjY2NywwLjUx
648
+MiAtMS4yOCwwLjUxMiBoIC0xMS4yNjQwMSBxIDAuMjk4NjcsMi4wNDggMS4zMjI2NywyLjk0NCAx
649
+LjAyNCwwLjg5NjAxIDMuMDI5MzMsMC44OTYwMSAxLjA2NjY3LDAgMS45NjI2NywtMC4yMTMzNCAw
650
+Ljg5NiwtMC4yNTYgMi4wMDUzMywtMC42ODI2NyAwLjY0MDAxLC0wLjI1NiAxLjIzNzM0LC0wLjQy
651
+NjY2IDAuNjQsLTAuMjEzMzQgMS4xNTIsLTAuMjEzMzQgeiBtIC03LjI5NjAxLC05LjY0MjY3IHEg
652
+LTEuNDkzMzMsMCAtMi4zODkzMywwLjk4MTMzIC0wLjg5NiwwLjkzODY3IC0xLjA2NjY3LDIuNzcz
653
+MzQgaCA2LjY5ODY3IHEgLTAuMjU2LC0zLjc1NDY3IC0zLjI0MjY3LC0zLjc1NDY3IHoiCiAgICAg
654
+ICAgIHN0eWxlPSJmb250LXdlaWdodDo5MDA7Zm9udC1mYW1pbHk6TnVuaXRvOy1pbmtzY2FwZS1m
655
+b250LXNwZWNpZmljYXRpb246J051bml0byBIZWF2eSciCiAgICAgICAgIGlkPSJwYXRoODM2NCIg
656
+Lz48cGF0aAogICAgICAgICBkPSJtIDUzNS41Njg1Niw1NTkuNTkxNjUgcSAtNS4xMiwwIC04LjEw
657
+NjY3LC0yLjkwMTM0IC0yLjk4NjY3LC0yLjkwMTMzIC0yLjk4NjY3LC03Ljg5MzM0IDAsLTMuMjg1
658
+MzMgMS40NTA2NywtNS44MDI2NyAxLjQ1MDY2LC0yLjUxNzMzIDQuMDUzMzMsLTMuODgyNjcgMi42
659
+NDUzNCwtMS4zNjUzMyA2LjAxNjAxLC0xLjM2NTMzIDEuNzkyLDAgMy41ODQsMC40NjkzMyAxLjc5
660
+MiwwLjQ2OTMzIDMuMTU3MzQsMS4zMjI2NyAxLjMyMjY2LDAuODEwNjcgMS4zMjI2NiwyLjQ3NDY3
661
+IDAsMS4zMjI2NiAtMC42NCwyLjE3NiAtMC41OTczMywwLjgxMDY3IC0xLjU3ODY2LDAuODEwNjcg
662
+LTAuNjQwMDEsMCAtMS4yMzczNCwtMC4xNzA2NyAtMC41OTczMywtMC4yMTMzNCAtMS4zMjI2Nywt
663
+MC41OTczNCAtMC44NTMzMywtMC4zODQgLTEuNDUwNjYsLTAuNTU0NjYgLTAuNTk3MzQsLTAuMjEz
664
+MzQgLTEuMzIyNjcsLTAuMjEzMzQgLTQuMjI0MDEsMCAtNC4yMjQwMSw1LjE2MjY3IDAsMi41NjAw
665
+MSAxLjA2NjY3LDMuOTI1MzQgMS4xMDkzNCwxLjMyMjY3IDMuMTU3MzQsMS4zMjI2NyAwLjcyNTMz
666
+LDAgMS4zMjI2NywtMC4xNzA2NyAwLjY0LC0wLjIxMzMzIDEuNDA4LC0wLjU5NzMzIDAuODUzMzMs
667
+LTAuMzg0IDEuMzY1MzMsLTAuNTU0NjcgMC41NTQ2NywtMC4yMTMzMyAxLjE5NDY3LC0wLjIxMzMz
668
+IDAuOTgxMzMsMCAxLjU3ODY3LDAuODUzMzMgMC42NCwwLjgxMDY3IDAuNjQsMi4xMzMzNCAwLDAu
669
+ODEwNjYgLTAuMzQxMzQsMS40OTMzMyAtMC4zNDEzMywwLjY0IC0wLjkzODY2LDAuOTgxMzMgLTIu
670
+OTQ0MDEsMS43OTIwMSAtNy4xNjgwMSwxLjc5MjAxIHoiCiAgICAgICAgIHN0eWxlPSJmb250LXdl
671
+aWdodDo5MDA7Zm9udC1mYW1pbHk6TnVuaXRvOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246
672
+J051bml0byBIZWF2eSciCiAgICAgICAgIGlkPSJwYXRoODM2NiIgLz48cGF0aAogICAgICAgICBk
673
+PSJtIDU2NC44NTUyNSw1MzcuODMxNjMgcSAxLjc0OTM0LDAgMi43NzMzNCwwLjkzODY3IDEuMDI0
674
+LDAuOTM4NjYgMS4wMjQsMi41NiB2IDE0Ljc2MjY4IHEgMCwxLjQ5MzMzIC0xLjA2NjY3LDIuNDc0
675
+NjcgLTEuMDY2NjYsMC45Mzg2NiAtMi43NzMzMywwLjkzODY2IC0xLjUzNiwwIC0yLjUxNzM0LC0w
676
+LjgxMDY2IC0wLjk4MTMzLC0wLjg1MzM0IC0xLjAyNCwtMi4yNjEzNCAtMC45ODEzMywxLjUzNiAt
677
+Mi41MTczMywyLjM0NjY3IC0xLjQ5MzM0LDAuODEwNjcgLTMuNDU2MDEsMC44MTA2NyAtNC4wNTMz
678
+MywwIC02LjAxNiwtMi4yMTg2NyAtMS45NjI2NywtMi4yNjEzNCAtMS45NjI2NywtNi44MjY2NyB2
679
+IC05LjIxNjAxIHEgMCwtMS42MjEzNCAxLjAyNCwtMi41NiAxLjAyNCwtMC45Mzg2NyAyLjc3MzM0
680
+LC0wLjkzODY3IDEuNzQ5MzMsMCAyLjc3MzMzLDAuOTM4NjcgMS4wMjQsMC45Mzg2NiAxLjAyNCwy
681
+LjU2IHYgOS4zODY2NyBxIDAsMy4wNzIwMSAyLjY0NTM0LDMuMDcyMDEgMS41MzYsMCAyLjUxNzMz
682
+LC0xLjEwOTM0IDAuOTgxMzQsLTEuMTA5MzMgMC45ODEzNCwtMi45MDEzMyB2IC04LjQ0ODAxIHEg
683
+MCwtMS42MjEzNCAxLjAyNCwtMi41NiAxLjAyNCwtMC45Mzg2NyAyLjc3MzMzLC0wLjkzODY3IHoi
684
+CiAgICAgICAgIHN0eWxlPSJmb250LXdlaWdodDo5MDA7Zm9udC1mYW1pbHk6TnVuaXRvOy1pbmtz
685
+Y2FwZS1mb250LXNwZWNpZmljYXRpb246J051bml0byBIZWF2eSciCiAgICAgICAgIGlkPSJwYXRo
686
+ODM2OCIgLz48cGF0aAogICAgICAgICBkPSJtIDU4Ny4xMDE5Nyw1MzcuODMxNjMgcSAxLjQ1MDY3
687
+LC0wLjEyOCAyLjMwNCwwLjY4MjY3IDAuODUzMzMsMC43NjggMC44NTMzMywyLjMwNCAwLDEuNzA2
688
+NjcgLTAuODEwNjYsMi40NzQ2NyAtMC43NjgsMC43NjggLTIuODE2MDEsMC45ODEzMyBsIC0xLjI4
689
+LDAuMTI4IHEgLTIuMTMzMzMsMC4yNTYgLTMuMDcyLDEuMzY1MzQgLTAuODk2LDEuMDY2NjYgLTAu
690
+ODk2LDIuOTQ0IHYgNy4yOTYgcSAwLDEuNzQ5MzQgLTEuMTA5MzMsMi42NDUzNCAtMS4wNjY2Nyww
691
+Ljg1MzMzIC0yLjY4ODAxLDAuODUzMzMgLTEuNjIxMzMsMCAtMi43MzA2NywtMC44NTMzMyAtMS4w
692
+NjY2NiwtMC44OTYgLTEuMDY2NjYsLTIuNjQ1MzQgdiAtMTQuNzYyNjcgcSAwLC0xLjYyMTM0IDEu
693
+MDY2NjYsLTIuNTE3MzQgMS4xMDkzNCwtMC44OTYgMi42NDUzNCwtMC44OTYgMS41Nzg2NywwIDIu
694
+NTE3MzQsMC44NTMzMyAwLjk4MTMzLDAuODUzMzQgMC45ODEzMywyLjM4OTM0IHYgMC44MTA2NyBx
695
+IDAuNjgyNjcsLTEuODc3MzQgMi4yMTg2NywtMi45MDEzNCAxLjU3ODY3LC0xLjAyNCAzLjI4NTMz
696
+LC0xLjEwOTMzIHoiCiAgICAgICAgIHN0eWxlPSJmb250LXdlaWdodDo5MDA7Zm9udC1mYW1pbHk6
697
+TnVuaXRvOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246J051bml0byBIZWF2eSciCiAgICAg
698
+ICAgIGlkPSJwYXRoODM3MCIgLz48cGF0aAogICAgICAgICBkPSJtIDU5Ni4xNjQ2Myw1NTkuNTA2
699
+MzEgcSAtMS42MjEzNCwwIC0yLjczMDY3LC0wLjg1MzMzIC0xLjA2NjY3LC0wLjg5NiAtMS4wNjY2
700
+NywtMi42NDUzNCBWIDU0MS4zMzAzIHEgMCwtMS43NDkzNCAxLjA2NjY3LC0yLjYwMjY3IDEuMTA5
701
+MzMsLTAuODk2IDIuNzMwNjcsLTAuODk2IDEuNjIxMzMsMCAyLjY4OCwwLjg5NiAxLjEwOTMzLDAu
702
+ODUzMzMgMS4xMDkzMywyLjYwMjY3IHYgMTQuNjc3MzQgcSAwLDEuNzQ5MzQgLTEuMTA5MzMsMi42
703
+NDUzNCAtMS4wNjY2NywwLjg1MzMzIC0yLjY4OCwwLjg1MzMzIHogbSAwLC0yNC42NjEzNSBxIC0x
704
+LjkyMDAxLDAgLTMuMDcyMDEsLTAuOTgxMzMgLTEuMTA5MzMsLTEuMDI0IC0xLjEwOTMzLC0yLjY4
705
+ODAxIDAsLTEuNjY0IDEuMTA5MzMsLTIuNjQ1MzMgMS4xNTIsLTAuOTgxMzMgMy4wNzIwMSwtMC45
706
+ODEzMyAxLjg3NzMzLDAgMy4wMjkzMywwLjk4MTMzIDEuMTUyLDAuOTgxMzMgMS4xNTIsMi42NDUz
707
+MyAwLDEuNjY0MDEgLTEuMTUyLDIuNjg4MDEgLTEuMTA5MzMsMC45ODEzMyAtMy4wMjkzMywwLjk4
708
+MTMzIHoiCiAgICAgICAgIHN0eWxlPSJmb250LXdlaWdodDo5MDA7Zm9udC1mYW1pbHk6TnVuaXRv
709
+Oy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246J051bml0byBIZWF2eSciCiAgICAgICAgIGlk
710
+PSJwYXRoODM3MiIgLz48cGF0aAogICAgICAgICBkPSJtIDYxOS4wMDg2NCw1NTQuMDg3NjQgcSAy
711
+Ljg1ODY3LDAuMTcwNjcgMi44NTg2NywyLjU2IDAsMS40OTMzNCAtMS4xNTIsMi4yMTg2NyAtMS4x
712
+NTIsMC43MjUzNCAtMy4yODUzNCwwLjU5NzM0IGwgLTEuMTk0NjcsLTAuMDg1MyBxIC0zLjg0LC0w
713
+LjI5ODY2IC01Ljg0NTMzLC0yLjMwNCAtMS45NjI2NywtMi4wNDggLTEuOTYyNjcsLTUuNjc0Njcg
714
+diAtNy41NTIwMSBoIC0xLjIzNzM0IHEgLTMuNDEzMzMsMCAtMy40MTMzMywtMi44MTYgMCwtMi43
715
+NzMzMyAzLjQxMzMzLC0yLjc3MzMzIGggMS4yMzczNCBWIDUzNS40ODUgcSAwLC0xLjYyMTMzIDEu
716
+MDI0LC0yLjU2IDEuMDI0LC0wLjk4MTMzIDIuNzczMzMsLTAuOTgxMzMgMS43NDkzNCwwIDIuNzcz
717
+MzQsMC45ODEzMyAxLjAyNCwwLjkzODY3IDEuMDI0LDIuNTYgdiAyLjc3MzM0IGggMi4zNDY2NyBx
718
+IDMuNDEzMzQsMCAzLjQxMzM0LDIuNzczMzMgMCwyLjgxNiAtMy40MTMzNCwyLjgxNiBoIC0yLjM0
719
+NjY3IHYgOC4xOTIwMSBxIDAsMC44MTA2NyAwLjQ2OTMzLDEuMzY1MzMgMC41MTIwMSwwLjU1NDY3
720
+IDEuMjgwMDEsMC41OTczNCB6IgogICAgICAgICBzdHlsZT0iZm9udC13ZWlnaHQ6OTAwO2ZvbnQt
721
+ZmFtaWx5Ok51bml0bzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidOdW5pdG8gSGVhdnkn
722
+IgogICAgICAgICBpZD0icGF0aDgzNzQiIC8+PHBhdGgKICAgICAgICAgZD0ibSA2MzkuMDc5MzIs
723
+NTM5Ljk2NDk2IHEgMC40NjkzMywtMS4wNjY2NiAxLjI4LC0xLjU3ODY2IDAuODEwNjYsLTAuNTEy
724
+IDEuNzkyLC0wLjUxMiAxLjQwOCwwIDIuNTE3MzMsMC45Mzg2NiAxLjEwOTM0LDAuOTM4NjcgMS4x
725
+MDkzNCwyLjI2MTM0IDAsMC43MjUzMyAtMC4zNDEzNCwxLjQwOCBsIC0xMS4zMDY2NywyMi42NTYw
726
+MiBxIC0wLjUxMiwxLjA2NjY2IC0xLjM2NTM0LDEuNTc4NjYgLTAuODEwNjYsMC41MTIwMSAtMS43
727
+OTIsMC41MTIwMSAtMS40MDgsMCAtMi41MTczMywtMC45Mzg2NyAtMS4wNjY2NywtMC44OTYgLTEu
728
+MDY2NjcsLTIuMjE4NjcgMCwtMC43MjUzMyAwLjM4NCwtMS40OTMzMyBsIDIuNzczMzQsLTUuNTg5
729
+MzQgLTcuMjUzMzQsLTE0LjUwNjY4IHEgLTAuMzQxMzQsLTAuNzY4IC0wLjM0MTM0LC0xLjM2NTMz
730
+IDAsLTEuMzY1MzQgMS4xOTQ2NywtMi4zMDQwMSAxLjE5NDY3LC0wLjk4MTMzIDIuNjg4LC0wLjk4
731
+MTMzIDEuMDI0LDAgMS44NzczNCwwLjU1NDY3IDAuODk2LDAuNTEyIDEuMzY1MzMsMS41Nzg2NiBs
732
+IDQuNTIyNjcsOS44MTMzNSB6IgogICAgICAgICBzdHlsZT0iZm9udC13ZWlnaHQ6OTAwO2ZvbnQt
733
+ZmFtaWx5Ok51bml0bzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidOdW5pdG8gSGVhdnkn
734
+IgogICAgICAgICBpZD0icGF0aDgzNzYiIC8+PHBhdGgKICAgICAgICAgZD0ibSA2NjYuMTIyMDEs
735
+NTU5LjUwNjMxIHEgLTEuNzkyMDEsMCAtMi44NTg2NywtMS4wMjQgLTEuMDI0LC0xLjA2NjY3IC0x
736
+LjAyNCwtMi44NTg2NyB2IC0yMi44MjY2OCBxIDAsLTEuNzQ5MzQgMC45Mzg2NiwtMi42ODggMC45
737
+Mzg2NywtMC45Mzg2NyAyLjY4ODAxLC0wLjkzODY3IGggMTAuOTIyNjcgcSA0Ljk5MiwwIDcuNzY1
738
+MzQsMi41NiAyLjc3MzMzLDIuNTE3MzQgMi43NzMzMyw3LjA0MDAxIDAsNC40OCAtMi44MTYsNy4w
739
+NCAtMi43NzMzMywyLjU2IC03LjcyMjY3LDIuNTYgaCAtNi42OTg2NyB2IDcuMjUzMzQgcSAwLDEu
740
+NzkyIC0xLjA2NjY3LDIuODU4NjcgLTEuMDY2NjcsMS4wMjQgLTIuOTAxMzMsMS4wMjQgeiBtIDku
741
+NiwtMTcuMDI0MDEgcSAyLjE3NiwwIDMuMiwtMC44OTYgMS4wNjY2NywtMC44OTYgMS4wNjY2Nywt
742
+Mi43NzMzNCAwLC0zLjcxMiAtNC4yNjY2NywtMy43MTIgaCAtNS42MzIgdiA3LjM4MTM0IHoiCiAg
743
+ICAgICAgIHN0eWxlPSJmb250LXdlaWdodDo5MDA7Zm9udC1mYW1pbHk6TnVuaXRvOy1pbmtzY2Fw
744
+ZS1mb250LXNwZWNpZmljYXRpb246J051bml0byBIZWF2eSciCiAgICAgICAgIGlkPSJwYXRoODM3
745
+OCIgLz48cGF0aAogICAgICAgICBkPSJtIDcwNC4xOTgwNCw1MzcuODMxNjMgcSAxLjQ1MDY2LC0w
746
+LjEyOCAyLjMwNCwwLjY4MjY3IDAuODUzMzMsMC43NjggMC44NTMzMywyLjMwNCAwLDEuNzA2Njcg
747
+LTAuODEwNjYsMi40NzQ2NyAtMC43NjgwMSwwLjc2OCAtMi44MTYwMSwwLjk4MTMzIGwgLTEuMjgs
748
+MC4xMjggcSAtMi4xMzMzMywwLjI1NiAtMy4wNzIsMS4zNjUzNCAtMC44OTYsMS4wNjY2NiAtMC44
749
+OTYsMi45NDQgdiA3LjI5NiBxIDAsMS43NDkzNCAtMS4xMDkzNCwyLjY0NTM0IC0xLjA2NjY2LDAu
750
+ODUzMzMgLTIuNjg4LDAuODUzMzMgLTEuNjIxMzMsMCAtMi43MzA2NywtMC44NTMzMyAtMS4wNjY2
751
+NiwtMC44OTYgLTEuMDY2NjYsLTIuNjQ1MzQgdiAtMTQuNzYyNjcgcSAwLC0xLjYyMTM0IDEuMDY2
752
+NjYsLTIuNTE3MzQgMS4xMDkzNCwtMC44OTYgMi42NDUzNCwtMC44OTYgMS41Nzg2NywwIDIuNTE3
753
+MzMsMC44NTMzMyAwLjk4MTM0LDAuODUzMzQgMC45ODEzNCwyLjM4OTM0IHYgMC44MTA2NyBxIDAu
754
+NjgyNjcsLTEuODc3MzQgMi4yMTg2NywtMi45MDEzNCAxLjU3ODY2LC0xLjAyNCAzLjI4NTMzLC0x
755
+LjEwOTMzIHoiCiAgICAgICAgIHN0eWxlPSJmb250LXdlaWdodDo5MDA7Zm9udC1mYW1pbHk6TnVu
756
+aXRvOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246J051bml0byBIZWF2eSciCiAgICAgICAg
757
+IGlkPSJwYXRoODM4MCIgLz48cGF0aAogICAgICAgICBkPSJtIDcxOS42MTgwNiw1NTkuNTkxNjUg
758
+cSAtMy40NTYsMCAtNi4xMDEzMywtMS4zMjI2NyAtMi42MDI2NywtMS4zNjUzNCAtNC4wNTMzNCwt
759
+My44NCAtMS40MDgsLTIuNDc0NjcgLTEuNDA4LC01LjgwMjY4IDAsLTMuMzI4IDEuNDA4LC01Ljc2
760
+IDEuNDUwNjcsLTIuNDc0NjcgNC4wNTMzNCwtMy43OTczNCAyLjYwMjY2LC0xLjMyMjY2IDYuMTAx
761
+MzMsLTEuMzIyNjYgMy40OTg2NywwIDYuMTAxMzQsMS4zMjI2NiAyLjYwMjY3LDEuMzIyNjcgNC4w
762
+MTA2NywzLjc5NzM0IDEuNDUwNjcsMi40MzIgMS40NTA2Nyw1Ljc2IDAsMy4zMjgwMSAtMS40NTA2
763
+Nyw1LjgwMjY4IC0xLjQwOCwyLjQ3NDY2IC00LjAxMDY3LDMuODQgLTIuNjAyNjcsMS4zMjI2NyAt
764
+Ni4xMDEzNCwxLjMyMjY3IHogbSAwLC01LjY3NDY3IHEgNC4wNTMzNCwwIDQuMDUzMzQsLTUuMjkw
765
+NjggMCwtNS4yOTA2NyAtNC4wNTMzNCwtNS4yOTA2NyAtNC4wNTMzMywwIC00LjA1MzMzLDUuMjkw
766
+NjcgMCw1LjI5MDY4IDQuMDUzMzMsNS4yOTA2OCB6IgogICAgICAgICBzdHlsZT0iZm9udC13ZWln
767
+aHQ6OTAwO2ZvbnQtZmFtaWx5Ok51bml0bzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidO
768
+dW5pdG8gSGVhdnknIgogICAgICAgICBpZD0icGF0aDgzODIiIC8+PHBhdGgKICAgICAgICAgZD0i
769
+bSA3NDkuMjQ2MTIsNTM3Ljc0NjMgcSAyLjczMDY2LDAgNC44MjEzMywxLjMyMjY2IDIuMDkwNjcs
770
+MS4zMjI2NyAzLjI0MjY3LDMuNzk3MzQgMS4xOTQ2NywyLjQzMiAxLjE5NDY3LDUuNjc0NjcgMCwz
771
+LjI0MjY3IC0xLjE5NDY3LDUuNzYwMDEgLTEuMTUyLDIuNTE3MzMgLTMuMjg1MzMsMy45MjUzMyAt
772
+Mi4wOTA2NywxLjM2NTM0IC00Ljc3ODY3LDEuMzY1MzQgLTIuMDkwNjcsMCAtMy44NDAwMSwtMC44
773
+NTMzNCAtMS43MDY2NywtMC44NTMzMyAtMi42MDI2NywtMi4zNDY2NyAtMC4xMjgsMS40NTA2NyAt
774
+MS4xNTIsMi4zMDQwMSAtMC45ODEzMywwLjgxMDY2IC0yLjYwMjY3LDAuODEwNjYgLTEuNzA2NjYs
775
+MCAtMi43MzA2NiwtMC45Mzg2NiAtMC45ODEzNCwtMC45ODEzNCAtMC45ODEzNCwtMi41NjAwMSB2
776
+IC0yMy42MzczNSBxIDAsLTEuNDkzMzMgMS4wNjY2NywtMi40MzIgMS4wNjY2NywtMC45ODEzMyAy
777
+LjgxNiwtMC45ODEzMyAxLjY2NCwwIDIuNjg4LDAuODk2IDEuMDI0LDAuODk2IDEuMDI0LDIuMzg5
778
+MzMgdiA4LjQ5MDY4IHEgMC45Mzg2NywtMS4zNjUzNCAyLjYwMjY3LC0yLjE3NjAxIDEuNzA2Njcs
779
+LTAuODEwNjYgMy43MTIwMSwtMC44MTA2NiB6IG0gLTIuMzQ2NjcsMTYuMTcwNjggcSAxLjk2MjY2
780
+LDAgMy4wMjkzMywtMS4zNjUzNCAxLjA2NjY3LC0xLjQwOCAxLjA2NjY3LC00LjAxMDY3IDAsLTIu
781
+NDc0NjcgLTEuMDY2NjcsLTMuNzk3MzMgLTEuMDI0LC0xLjMyMjY3IC0yLjk4NjY3LC0xLjMyMjY3
782
+IC0yLjAwNTMzLDAgLTMuMDcyLDEuMzY1MzMgLTEuMDY2NjcsMS4zMjI2NyAtMS4wNjY2NywzLjg0
783
+IDAsMi41NjAwMSAxLjA2NjY3LDMuOTI1MzQgMS4wNjY2NywxLjM2NTM0IDMuMDI5MzQsMS4zNjUz
784
+NCB6IgogICAgICAgICBzdHlsZT0iZm9udC13ZWlnaHQ6OTAwO2ZvbnQtZmFtaWx5Ok51bml0bzst
785
+aW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidOdW5pdG8gSGVhdnknIgogICAgICAgICBpZD0i
786
+cGF0aDgzODQiIC8+PHBhdGgKICAgICAgICAgZD0ibSA3NzkuNzcwMDksNTUyLjUwODk3IHEgMC45
787
+ODEzMywwIDEuNTc4NjcsMC43NjggMC42NCwwLjc2ODAxIDAuNjQsMi4wMDUzNCAwLDEuNzA2Njcg
788
+LTEuNjY0LDIuNjAyNjcgLTEuNDUwNjcsMC43MjUzMyAtMy40NTYwMSwxLjIzNzMzIC0xLjk2MjY2
789
+LDAuNDY5MzQgLTMuNjI2NjcsMC40NjkzNCAtMy40OTg2NywwIC02LjEwMTMzLC0xLjMyMjY3IC0y
790
+LjYwMjY3LC0xLjMyMjY3IC00LjAxMDY3LC0zLjc5NzM0IC0xLjQwOCwtMi40NzQ2NyAtMS40MDgs
791
+LTUuODAyNjcgMCwtMy4xNTczMyAxLjMyMjY2LC01LjYzMiAxLjM2NTM0LC0yLjUxNzM0IDMuNzU0
792
+NjcsLTMuODgyNjcgMi40MzIsLTEuNDA4IDUuNDYxMzQsLTEuNDA4IDIuOTQ0LDAgNS4xNjI2Nywx
793
+LjI4IDIuMjE4NjcsMS4yOCAzLjQxMzM0LDMuNjI2NjcgMS4yMzczMywyLjM0NjY3IDEuMjM3MzMs
794
+NS41MDQgMCwwLjk4MTMzIC0wLjQ2OTMzLDEuNTM2IC0wLjQyNjY3LDAuNTEyIC0xLjI4LDAuNTEy
795
+IGggLTExLjI2NDAxIHEgMC4yOTg2NiwyLjA0OCAxLjMyMjY3LDIuOTQ0IDEuMDI0LDAuODk2MDEg
796
+My4wMjkzMywwLjg5NjAxIDEuMDY2NjcsMCAxLjk2MjY3LC0wLjIxMzM0IDAuODk2LC0wLjI1NiAy
797
+LjAwNTMzLC0wLjY4MjY3IDAuNjQsLTAuMjU2IDEuMjM3MzQsLTAuNDI2NjYgMC42NCwtMC4yMTMz
798
+NCAxLjE1MiwtMC4yMTMzNCB6IG0gLTcuMjk2MDEsLTkuNjQyNjcgcSAtMS40OTMzMywwIC0yLjM4
799
+OTMzLDAuOTgxMzMgLTAuODk2LDAuOTM4NjcgLTEuMDY2NjcsMi43NzMzNCBoIDYuNjk4NjcgcSAt
800
+MC4yNTYsLTMuNzU0NjcgLTMuMjQyNjcsLTMuNzU0NjcgeiIKICAgICAgICAgc3R5bGU9ImZvbnQt
801
+d2VpZ2h0OjkwMDtmb250LWZhbWlseTpOdW5pdG87LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlv
802
+bjonTnVuaXRvIEhlYXZ5JyIKICAgICAgICAgaWQ9InBhdGg4Mzg2IiAvPjwvZz48L2c+PC9zdmc+
803
+Cg==
0 804
\ No newline at end of file
1 805
new file mode 100644
... ...
@@ -0,0 +1,165 @@
1
+<?php
2
+
3
+/**
4
+ *  "System Health and Security Probe" is a program that runs periodically to 
5
+ *  investigate general system health and security problems and to send report
6
+ *  emails to admins. It's designed to be used as part of RED SCARF Suite.
7
+ *  It requires at least an abridged version of RED SCARF Suite and Postfix, 
8
+ *  installed and configured on a Debian server as described in the "Complete
9
+ *  Guide to a Complete Linux Server". For more details, please see the
10
+ *  "README.txt" file.         
11
+ *                                                                                         
12
+ *  Copyright (C) 2024  Double Bastion LLC <www.doublebastion.com>           
13
+ *                                                                                         
14
+ *  This file is part of "System Health and Security Probe".                               
15
+ *                                                                                         
16
+ *  "System Health and Security Probe" is free software: you can redistribute
17
+ *  it and/or modify it under the terms of the GNU General Public License as                  
18
+ *  published by the Free Software Foundation, either version 3 of the License,            
19
+ *  or (at your option) any later version.                                                 
20
+ *                                                                                         
21
+ *  This program is distributed in the hope that it will be useful,                        
22
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of                         
23
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                          
24
+ *  GNU General Public License for more details.                                           
25
+ *                                                                                         
26
+ *  You should have received a copy of the GNU General Public License                      
27
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.                 
28
+ */
29
+
30
+
31
+
32
+/****  Edit each parameter value between double quotes  ****/
33
+
34
+
35
+/**  Set the timespan in hours between two consecutive runs of the script (the "run interval").  **/
36
+
37
+//   IMPORTANT !!! The ban time in seconds set for every jail in '/etc/fail2ban/jail.local',
38
+//   must be greater than the run interval that you set below. Also, in '/etc/fail2ban/jail.local'
39
+//   it's necessary to specify a ban time for every jail, even for the jails that use the default ban
40
+//   time. Therefore, in every jail block a 'bantime' parameter (Eg.: bantime = 432000) should exist.
41
+//
42
+//   IMPORTANT !!! If you change the run interval here, don't forget to change the cron job accordingly.
43
+//   To run the script every 8 hours, at 5 minutes past, the cron job should be:
44
+//   5 */8 * * * php /srv/scripts/system-health-and-security-probe.php > /dev/null 2>&1  
45
+
46
+$time_in_hours = "8";
47
+
48
+
49
+/**  Set the database name, user and password (they shouldn't contain double quotes).  **/
50
+
51
+$db_name = "";
52
+$db_user = "";
53
+$db_password = "";
54
+
55
+
56
+/**  Set the sender's email address, the recipient's email address and the subject line, for the email reports.  **/
57
+
58
+//   For multiple recipients write all the email addresses separated by comma, like this: $report_to = "admin1@example1.com,admin2@example2.info,admin3@example3.org".
59
+
60
+$report_from = "";
61
+$report_to = "";
62
+$report_subject = "";
63
+
64
+
65
+/**  Set the log paths for the services monitored by Fail2ban.  **/
66
+
67
+//   For WordPress, you can specify multiple log files, separated by commas, like this: 
68
+//   wordpresslog = "/var/log/sites/example.com/access.log, /var/log/sites/secondsite.net/access.log, /var/log/sites/thirdsite.info/access.log
69
+
70
+$phpmyadmin_log = "";
71
+$mailman_log = "";
72
+$dolibarr_log = "";
73
+$phplist_log = "";
74
+$roundcube_log = "";
75
+$matomo_log = "";
76
+$looladmin_log =  "";
77
+$postfix_admin_log = "";
78
+$roundpin_log = "";
79
+$mybb_log = "";
80
+$friendica_log = "";
81
+$redscarfsuite_panel_log = "";
82
+$wordpress_log = "";
83
+
84
+//   The following are standard log paths. If you haven't changed them to some custom paths, leave them as they are.
85
+
86
+$asterisk_log = "/var/log/asterisk/messages";
87
+$bind_log = "/var/log/named/security.log";
88
+$nextcloud_log = "/var/log/nextcloud/nextcloud.log";
89
+$dovecot_log = "/var/log/mail.log";
90
+$postfix_log = "/var/log/mail.log";
91
+$postfix_sasl_log = "/var/log/mail.log";
92
+$proftpd_log = "/var/log/proftpd/proftpd.log";
93
+$sshd_log = "/var/log/auth.log";
94
+$openvpn_log = "/var/log/openvpn/openvpn.log";
95
+
96
+
97
+/**  Set the threshold for the disk free space in kibibytes.  **/
98
+
99
+//   If the free disk space becomes smaller than the threshold, it will be included in the email report as a system health problem. The default is 3145728 kibibytes (3 GiB).
100
+
101
+$disk_threshold = "3145728";
102
+
103
+
104
+/**  Set the directory where the ClamAV antivirus will store the two periodic scan reports: 'clamav_mail_report' and 'clamav_nextcloud_report'.  **/
105
+
106
+//   If you change the default directory, which is '/srv/scripts/detections', remember to enter the same directory in the two cronjobs that have to be set up, to tell ClamAV where 
107
+//   to store the scan reports. When using the default directory (/srv/scripts/detections) the two cronjobs should look like this:
108
+//   5 3 */3 * * cat /dev/null > /srv/scripts/detections/clamav_nextcloud_report && clamdscan --fdpass --quiet /var/www/cloud.example.com/data -l /srv/scripts/detections/clamav_nextcloud_report
109
+//   40 3 */3 * * cat /dev/null > /srv/scripts/detections/clamav_mail_report && clamdscan --fdpass --quiet /var/vmail -l /srv/scripts/detections/clamav_mail_report
110
+
111
+//   The two sample cronjobs from above will first erase the previous detections in the '/srv/scripts/detections/clamav_nextcloud_report' and '/srv/scripts/detections/clamav_mail_report'
112
+//   files and then get ClamAV to scan the Nextcloud 'data' directory and 'vmail' directory and store the new detections in the mentioned files, at 3:05 a.m. and 3:40 a.m. respectively, 
113
+//   once every three days. Adjust these cron jobs according to your needs.
114
+
115
+$clamav_report_dir = "/srv/scripts/detections";
116
+
117
+
118
+/**  Set the backup directory where the current database will be saved when the number of rows of the 'bannedipstable' table will exceed 100000000.  **/
119
+
120
+//   After the current database is saved, the oldest 5000000 records of the 'bannedipstable' table will be trimmed.
121
+
122
+$backup_directory = "/srv/shas-probe-db-backup";
123
+
124
+
125
+/**  Specify if the script will send automatic abuse report emails to the Internet Service Providers (ISPs) of the offending IPs.  **/
126
+
127
+//   The default is "no". If you want 'System Health and Security Proble' to automatically send the abuse report emails (also included in the periodic email report sent to the admin) 
128
+//   to the ISPs of the offensing IPs, when the offending IPs have been banned more than once, each time the number of bans increases by 1, change "no" to "yes".
129
+
130
+$automatic_emails_to_isp = "yes";
131
+
132
+
133
+/**  If the preceding "$automatic_emails_to_isp" parameter is set to "yes", specify the list of log parameters separated by commas, that you want to exclude from the automatic emails 
134
+     sent to the Internet Service Providers of the offending IPs. You can take any log parameter from the "Set the log paths for the services monitored by Fail2ban." section from
135
+     above.  **/
136
+
137
+//   If you list a log parameter below, the automatic abuse report emails will NOT be sent to the ISPs of the offending IPs that attacked the corresponding jail. It's recommended to
138
+//   list here all the log parameters for which the log entries may contain usernames for HTTP authentication or other sensitive data that you don't want included in emails 
139
+//   automatically sent to ISPs. Thus, add or remove any log parameter to/from the list from below.
140
+
141
+$excluded_jails = [$phpmyadmin_log, $wordpress_log, $roundcube_log, $dolibarr_log];
142
+
143
+
144
+/**  If the "$automatic_emails_to_isp" parameter from above is set to "yes", specify the list of IPs, separated by commas, that you want to exclude from the list of IPs for which the 
145
+     abuse email will be automatically sent to the Internet Service Providers.  **/
146
+
147
+$excluded_ips = "";
148
+
149
+
150
+/**  If the "$automatic_emails_to_isp" parameter from above is set to "yes", specify the sysadmin name that will appear in the signature of the emails sent to ISPs.  **/
151
+
152
+//   Eg: $sysadmin_name = "John";
153
+
154
+$sysadmin_name = "";
155
+
156
+
157
+/**  If the "$automatic_emails_to_isp" parameter from above is set to "yes", specify if you want the recipient of the email reports (the "$report_to" address from above) to receive
158
+     copies of all the abuse reports sent to the ISPs of the offending IPs. **/
159
+
160
+//   The default is "no". If you want the "$report_to" address(es) to receive, in addition to the regular email reports, copies of the abuse reports sent to the ISPs of the IPs that
161
+//   attacked the server and have been banned more than once, change "no" to "yes".
162
+
163
+$abuse_reports_to_admin = "yes";
164
+
165
+?>
0 166
\ No newline at end of file
1 167
new file mode 100755
... ...
@@ -0,0 +1,1487 @@
1
+<?php
2
+
3
+/**
4
+ * "System Health and Security Probe" is a program that runs periodically to
5
+ * investigate general system health and security problems and to send report
6
+ * emails to admins. It's designed to be used as part of RED SCARF Suite.
7
+ * It requires at least an abridged version of RED SCARF Suite and Postfix,
8
+ * installed and configured on a Debian server as described in the Complete
9
+ * Guide to a Complete Linux Server. For more details, please see the
10
+ * README.txt file.
11
+ *
12
+ * Copyright (C) 2024  Double Bastion LLC <www.doublebastion.com>
13
+ *
14
+ * This file is part of "System Health and Security Probe".
15
+ *
16
+ * "System Health and Security Probe" is free software: you can redistribute
17
+ * it and/or modify it under the terms of the GNU General Public License as
18
+ * published by the Free Software Foundation, either version 3 of the License,
19
+ * or (at your option) any later version.
20
+ *
21
+ * This program is distributed in the hope that it will be useful,
22
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
23
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24
+ * GNU General Public License for more details.
25
+ *
26
+ * You should have received a copy of the GNU General Public License
27
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
28
+ */
29
+
30
+
31
+if (file_exists(dirname(__FILE__) . '/shsp-config.php')) {
32
+
33
+ require(dirname(__FILE__) . '/shsp-config.php');
34
+
35
+ if (preg_match('/^[0-9]+$/', $time_in_hours)) { $runinterval = $time_in_hours * 3600; } else { exit("Error. 'System Health and Security Probe' needs a valid \$time_in_hours parameter.\n"); }
36
+ if (!empty($db_name)) { $bannedipsdb = $db_name; } else { exit("Error. 'System Health and Security Probe' needs a valid \$db_name parameter.\n"); }
37
+ if (!empty($db_user)) { $bannedipsuser = $db_user; } else { exit("Error. 'System Health and Security Probe' needs a valid \$db_user parameter.\n"); }
38
+ if (!empty($db_password)) { $bannedipspswd = $db_password; } else { exit("Error. 'System Health and Security Probe' needs a valid \$db_password parameter.\n"); }
39
+ if (!empty($report_from)) { $emailsender = $report_from; } else { exit("Error. 'System Health and Security Probe' needs a valid \$report_from parameter.\n"); }
40
+ if (!empty($report_to)) {
41
+      $emailto = str_replace(" ", "", $report_to);
42
+      $emailtoarr = explode(",", $emailto);
43
+      $emailtofirst = $emailtoarr[0];
44
+ } else { exit("Error. 'System Health and Security Probe' needs a valid \$report_to parameter.\n"); }
45
+ if (!empty($report_subject)) { $subject = $report_subject; } else { $subject = "System Health and Security Report"; }
46
+ if (!empty($phpmyadmin_log)) { $phpmyadminlog = $phpmyadmin_log; $phpmyadminlogsec = $phpmyadminlog . ".1"; } else { $phpmyadminlog = ""; $phpmyadminlogsec = ""; }
47
+ if (!empty($mailman_log)) { $mailmanlog = $mailman_log; $mailmanlogsec = $mailmanlog . ".1"; } else { $mailmanlog = ""; $mailmanlogsec = ""; }
48
+ if (!empty($dolibarr_log)) { $dolibarrlog = $dolibarr_log; $dolibarrlogsec = $dolibarrlog . ".1"; } else { $dolibarrlog = ""; $dolibarrlogsec = ""; }
49
+ if (!empty($phplist_log)) { $phplistlog = $phplist_log; $phplistlogsec = $phplistlog . ".1"; } else { $phplistlog = ""; $phplistlogsec = ""; }
50
+ if (!empty($roundcube_log)) { $roundcubelog = $roundcube_log; $roundcubelogsec = $roundcubelog . ".1"; } else { $roundcubelog = ""; $roundcubelogsec = ""; }
51
+ if (!empty($matomo_log)) { $matomolog = $matomo_log; $matomologsec = $matomolog . ".1"; } else { $matomolog = ""; $matomologsec = ""; }
52
+ if (!empty($looladmin_log)) { $looladminlog = $looladmin_log; $looladminlogsec = $looladminlog . ".1"; } else { $looladminlog = ""; $looladminlogsec = ""; }
53
+ if (!empty($wordpress_log)) {
54
+      $wprexpl = explode(",", $wordpress_log);
55
+      $wordpresslog = array_filter(array_map('trim', $wprexpl));
56
+      $wordpresslogsec = array_map(function($wplog) { return $wplog . ".1"; }, $wordpresslog);
57
+ } else { $wordpresslog = []; $wordpresslogsec = []; }
58
+ if (!empty($asterisk_log)) { $asterisklog = $asterisk_log; $asterisklogsec = $asterisklog . ".1"; } else { $asterisklog = ""; $asterisklogsec = ""; }
59
+ if (!empty($bind_log)) { $bindlog = $bind_log; $bindlogsec = $bindlog . ".0"; } else { $bindlog = ""; $bindlogsec = ""; }
60
+ if (!empty($nextcloud_log)) { $nextcloudlog = $nextcloud_log; $nextcloudlogsec = $nextcloudlog . ".1"; } else { $nextcloudlog = ""; $nextcloudlogsec = ""; }
61
+ if (!empty($dovecot_log)) { $dovecotlog = $dovecot_log; $dovecotlogsec = $dovecotlog . ".1"; } else { $dovecotlog = ""; $dovecotlogsec = ""; }
62
+ if (!empty($postfix_log)) { $postfixlog = $postfix_log; $postfixlogsec = $postfixlog . ".1"; } else { $postfixlog = ""; $postfixlogsec = ""; }
63
+ if (!empty($postfix_sasl_log)) { $postfixsasllog = $postfix_sasl_log; $postfixsasllogsec = $postfixsasllog . ".1"; } else { $postfixsasllog = ""; $postfixsasllogsec = ""; }
64
+ if (!empty($proftpd_log)) { $proftpdlog = $proftpd_log; $proftpdlogsec = $proftpdlog . ".1"; } else { $proftpdlog = ""; $proftpdlogsec = ""; }
65
+ if (!empty($sshd_log)) { $sshdlog = $sshd_log; $sshdlogsec = $sshdlog . ".1"; } else { $sshdlog = ""; $sshdlogsec = ""; }
66
+ if (!empty($openvpn_log)) { $openvpnlog = $openvpn_log; $openvpnlogsec = $openvpnlog . ".1"; } else { $openvpnlog = ""; $openvpnlogsec = ""; }
67
+ if (!empty($postfix_admin_log)) { $postfixadminlog = $postfix_admin_log; $postfixadminlogsec = $postfixadminlog . ".1"; } else { $postfixadminlog = ""; $postfixadminlogsec = ""; }
68
+ if (!empty($roundpin_log)) { $roundpinlog = $roundpin_log; $roundpinlogsec = $roundpinlog . ".1"; } else { $roundpinlog = ""; $roundpinlogsec = ""; }
69
+ if (!empty($mybb_log)) { $mybblog = $mybb_log; $mybblogsec = $mybblog . ".1"; } else { $mybblog = ""; $mybblogsec = ""; }
70
+ if (!empty($friendica_log)) { $friendicalog = $friendica_log; $friendicalogsec = $friendicalog . ".1"; } else { $friendicalog = ""; $friendicalogsec = ""; }
71
+ if (!empty($redscarfsuite_panel_log)) { $redscarfsuitepanellog = $redscarfsuite_panel_log; $redscarfsuitepanellogsec = $redscarfsuitepanellog . ".1"; } else { $redscarfsuitepanellog = ""; $redscarfsuitepanellogsec = ""; }
72
+
73
+ if (!empty($disk_threshold)) { $diskthreshold = $disk_threshold; } else { $diskthreshold = "3145728"; }
74
+ if (!empty($clamav_report_dir)) {
75
+      if (mb_substr($clamav_report_dir, -1) == "/") {
76
+          $clamavreportdir = substr($clamav_report_dir, 0, -1);
77
+      } else { $clamavreportdir = $clamav_report_dir; }
78
+ } else { $clamavreportdir = ""; }
79
+ if (!empty($backup_directory)) {
80
+      if (mb_substr($backup_directory, -1) == "/") {
81
+          $backupdirectory = substr($backup_directory, 0, -1);
82
+      } else { $backupdirectory = $backup_directory; }
83
+ } else { $backupdirectory = ""; }
84
+ if (!empty($automatic_emails_to_isp)) { $automaticemail = $automatic_emails_to_isp; } else { $automaticemail = "no"; }
85
+ if (!empty($excluded_jails)) { $excludedjails = $excluded_jails; } else { $excludedjails = []; }
86
+ if (!empty($excluded_ips)) { $excludedips = str_replace(" ", "", $excluded_ips); } else { $excludedips = ""; }
87
+ if (!empty($sysadmin_name)) { $sysadminname = $sysadmin_name; } else { $sysadminname = ""; }
88
+ if (!empty($abuse_reports_to_admin)) { $abusereportstoadmin = $abuse_reports_to_admin; } else { $abusereportstoadmin = "no"; }
89
+
90
+ if (count($wordpresslog) > 1) {
91
+     $wordpressfirst = implode(' or ', $wordpresslog);
92
+     $wordpresssec = implode(' or ', $wordpresslogsec);
93
+ } else {
94
+     $wordpressfirst = $wordpresslog[0];
95
+     $wordpresssec = $wordpresslogsec[0];
96
+ }
97
+
98
+ // Log paths
99
+ $jaillogarr = ['asterisk' => $asterisklog, 'named-refused' => $bindlog, 'dovecot' => $dovecotlog, 'looladmin' => $looladminlog, 'mailman' => $mailmanlog,
100
+	        'nextcloud' => $nextcloudlog, 'dolibarr' => $dolibarrlog, 'phplist' => $phplistlog, 'phpmyadmin' => $phpmyadminlog,
101
+	        'postfix' => $postfixlog, 'postfix-sasl' => $postfixsasllog, 'proftpd' => $proftpdlog, 'roundcube' => $roundcubelog, 'sshd' => $sshdlog,
102
+	        'openvpn' => $openvpnlog, 'postfixadmin' => $postfixadminlog, 'roundpin' => $roundpinlog, 'mybb' => $mybblog, 'matomo' => $matomolog, 
103
+                'friendica' => $friendicalog, 'redscarfsuitepanel' => $redscarfsuitepanellog,'wordpress' => [$wordpressfirst, $wordpresssec]];
104
+
105
+ $jaillogarrsec = ['asterisk' => $asterisklogsec, 'named-refused' => $bindlogsec, 'dovecot' => $dovecotlogsec, 'looladmin' => $looladminlogsec,
106
+	           'mailman' => $mailmanlogsec, 'nextcloud' => $nextcloudlogsec, 'dolibarr' => $dolibarrlogsec, 'phplist' => $phplistlogsec,
107
+	           'phpmyadmin' => $phpmyadminlogsec, 'postfix' => $postfixlogsec, 'postfix-sasl' => $postfixsasllogsec,
108
+	           'proftpd' => $proftpdlogsec, 'roundcube' => $roundcubelogsec, 'matomo' => $matomologsec, 'sshd' => $sshdlogsec, 'openvpn' => $openvpnlogsec, 
109
+                   'postfixadmin' => $postfixadminlogsec, 'roundpin' => $roundpinlogsec, 'mybb' => $mybblogsec, 'friendica' => $friendicalogsec,
110
+                   'redscarfsuitepanel' => $redscarfsuitepanellogsec];
111
+
112
+ // Jail ports
113
+ $jailsports = ['asterisk' => '5060', 'named-refused' => '53', 'dovecot' => '143', 'looladmin' => '443', 'mailman' => '443', 'nextcloud' => '443', 'dolibarr' => '443',
114
+	        'phplist' => '443', 'phpmyadmin' => '443', 'postfix' => '25', 'postfix-sasl' => '25', 'proftpd' => '21', 'roundcube' => '443',
115
+	        'matomo' => '443', 'sshd' => '22', 'openvpn' => '1194', 'postfixadmin' => '443', 'roundpin' => '443', 'wordpress' => '443'];
116
+
117
+ // Connect to the database
118
+ mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
119
+ $mysqli = new mysqli('localhost', $bannedipsuser, $bannedipspswd, $bannedipsdb);
120
+ if ($mysqli->connect_error) { exit('Error connecting to the database !'); }
121
+ $mysqli->set_charset("utf8mb4");
122
+
123
+ $query0 = "SHOW TABLES LIKE 'bannedipstable';";
124
+ $result0 = $mysqli->query($query0);
125
+
126
+ // Create the 4 tables if it's the first run of this script
127
+ if (mysqli_num_rows($result0) == 0) {
128
+
129
+     // Create the table for the IPs banned by Fail2ban
130
+     $query1 = " CREATE TABLE IF NOT EXISTS bannedipstable (
131
+			id          INT UNSIGNED   AUTO_INCREMENT  PRIMARY KEY,
132
+			IP          VARCHAR (400)  DEFAULT NULL,
133
+			jail        VARCHAR (300)  DEFAULT NULL,
134
+			first_ban   DATETIME       DEFAULT NULL,
135
+			last_ban    DATETIME       DEFAULT NULL,
136
+			ban_number  INT            DEFAULT NULL,
137
+			emails_isp  INT            DEFAULT 0
138
+		 ); ";
139
+     $result1 = $mysqli->query($query1);
140
+
141
+     // Create the table for the last sent email
142
+     $query2 = " CREATE TABLE IF NOT EXISTS lastsentemail (
143
+			id           INT UNSIGNED  AUTO_INCREMENT  PRIMARY KEY,
144
+			old_message  LONGTEXT      DEFAULT NULL
145
+		 ); ";
146
+     $result2 = $mysqli->query($query2);
147
+
148
+     /**
149
+      * Create the table for the last sent Nextcloud and mail log lines containing virus detections ('mail_loglines' and 'nextcloud_loglines'), and the last
150
+      * read log lines ('lastmailline' and 'lastnextline')
151
+      */
152
+     $query3 = " CREATE TABLE IF NOT EXISTS sentreadlines (
153
+			id                  INT UNSIGNED  AUTO_INCREMENT  PRIMARY KEY,
154
+			mail_loglines       TEXT  DEFAULT NULL,
155
+			nextcloud_loglines  TEXT  DEFAULT NULL,
156
+			lastmailline        TEXT  DEFAULT NULL,
157
+			lastnextline        TEXT  DEFAULT NULL,
158
+			lastpersdetmail     TEXT  DEFAULT NULL,
159
+			lastpersdetnext     TEXT  DEFAULT NULL
160
+		 ); ";
161
+     $result3 = $mysqli->query($query3);
162
+
163
+     // Create the table to store the jails and their respective banned IPs sent in the last email or banned in the past
164
+     $query4 = " CREATE TABLE IF NOT EXISTS jailsandips (
165
+		        id         INT            UNSIGNED AUTO_INCREMENT  PRIMARY KEY,
166
+		        jail       VARCHAR (300)  DEFAULT NULL,
167
+		        bannedips  LONGTEXT       DEFAULT NULL
168
+		 ); ";
169
+     $result4 = $mysqli->query($query4);
170
+ }
171
+
172
+ // Search for failed processes and format the data
173
+ $getfailedservinit = shell_exec('systemctl --failed --all');
174
+ $getfailedservsec = str_replace("To show all installed unit files use 'systemctl list-unit-files'.", "", $getfailedservinit);
175
+ $failedservsplit = preg_split('/\r\n|\r|\n/', $getfailedservsec);
176
+ $countlines = count($failedservsplit);
177
+ $getfailedservbr = implode("<br>", $failedservsplit);
178
+ $getfailedservtert = $failedservsplit[$countlines - 3];
179
+
180
+ // If there are failed processes, list them in a paragraph in the email to be sent
181
+ if ($getfailedservtert[0] != 0) {
182
+     $getfailedserv = "<ul><li style='color:#225aad;font-weight:700;'>The following services are in failed state:</li><br><br>" . $getfailedservbr . "</ul>";
183
+ } else { $getfailedserv = null; }
184
+
185
+
186
+ /**
187
+  * Read the periodic virus scanning reports to see if there were any detections during the last scan
188
+  */
189
+
190
+ // Create the ClamAV reports directory if it hasn't been already created
191
+ if (!is_dir($clamavreportdir)) {
192
+      exec("mkdir -p " . $clamavreportdir);
193
+ }
194
+
195
+ $maildetectrep = $clamavreportdir . "/clamav_mail_report";
196
+ $nextdetectrep = $clamavreportdir . "/clamav_nextcloud_report";
197
+ $targetstr = "Infected files: ";
198
+
199
+ // Search for the infected files lines in the mail scan report
200
+ if (is_file($maildetectrep)) {
201
+     $readmaildetrep = file_get_contents($maildetectrep);
202
+     $infectedfl = strstr($readmaildetrep, $targetstr);
203
+     $txtbreakline = preg_split('/\r\n|\r|\n/', $infectedfl);
204
+     $nbofinfectfls = explode("Infected files: ", $txtbreakline[0]);
205
+     $nbinfctdflsmail = $nbofinfectfls[1];
206
+
207
+     if ($nbinfctdflsmail != 0) {
208
+
209
+	 $getdetlines = explode("\n", $readmaildetrep);
210
+	 $getdetmaillnarr = [];
211
+	 $gosel = false;
212
+	 $p = 0;
213
+	 foreach ($getdetlines as $lnkey => $lnvalue) {
214
+
215
+	      if (strpos($lnvalue, "SCAN SUMMARY") !== false) {
216
+	          $gosel = false;
217
+	      }
218
+	      if ($gosel) {
219
+	          $getdetmaillnarr[$p] = $lnvalue;
220
+	          $p++;
221
+	      }
222
+	      if (strpos($lnvalue, "---------------------------") !== false) {
223
+	          $gosel = true;
224
+	      }
225
+
226
+	 }
227
+	 $maildetlnbr = implode("<br><br>", $getdetmaillnarr);
228
+	 $maildetlnbr_enc = base64_encode($maildetlnbr);
229
+     } else { $maildetlnbr_enc = null; }
230
+
231
+ } else {
232
+      $nbinfctdflsmail = 0;
233
+      $maildetlnbr_enc = null;
234
+ }
235
+
236
+ // Search for the infected files lines in the Nextcloud scan report
237
+ if (is_file($nextdetectrep)) {
238
+     $readnextdetrep = file_get_contents($nextdetectrep);
239
+     $infectedfltxt = strstr($readnextdetrep, $targetstr);
240
+     $txtbreakln = preg_split('/\r\n|\r|\n/', $infectedfltxt);
241
+     $nbofinfectedinit = explode("Infected files: ", $txtbreakln[0]);
242
+     $nbinfctdflsnext = $nbofinfectedinit[1];
243
+
244
+     if ($nbinfctdflsnext != 0) {
245
+
246
+	 $getdetnextlines = explode("\n", $readnextdetrep);
247
+	 $getdetnextlinesarr = [];
248
+	 $goselnext = false;
249
+	 $b = 0;
250
+	 foreach ($getdetnextlines as $lnextkey => $lnextvalue) {
251
+
252
+	      if (strpos($lnextvalue, "SCAN SUMMARY") !== false) {
253
+	          $goselnext = false;
254
+	      }
255
+	      if ($goselnext) {
256
+	          $getdetnextlinesarr[$b] = $lnextvalue;
257
+	          $b++;
258
+	      }
259
+	      if (strpos($lnextvalue, "---------------------------") !== false) {
260
+	          $goselnext = true;
261
+	      }
262
+	 }
263
+	 $nextdetlnbr = implode("<br><br>", $getdetnextlinesarr);
264
+	 $nextdetlnbr_enc = base64_encode($nextdetlnbr);
265
+     } else { $nextdetlnbr_enc = null; }
266
+
267
+ } else {
268
+       $nbinfctdflsnext = 0;
269
+       $nextdetlnbr_enc = null;
270
+ }
271
+
272
+ // Get the last sent Nextcloud log lines and mail log lines containing virus detections, the last mail log line and Nextcloud log line read by the script in the previous run
273
+ // and the last sent mail virus detections and Nextcloud virus detections
274
+ $queryvr = "SELECT id, mail_loglines, nextcloud_loglines, lastmailline, lastnextline, lastpersdetmail, lastpersdetnext FROM sentreadlines WHERE id = 1;";
275
+ $resultvr = $mysqli->query($queryvr);
276
+ $result_fetchvr = $resultvr->fetch_array();
277
+ $old_maildetections_enc = $result_fetchvr[1];
278
+ $old_nextdetections_enc = $result_fetchvr[2];
279
+ $lastreadmaillineinit = $result_fetchvr[3];
280
+ $lastreadnextlineinit = $result_fetchvr[4];
281
+ $old_mailvirdetect_enc = $result_fetchvr[5];
282
+ $old_nextvirdetect_enc = $result_fetchvr[6];
283
+ $lastreadmailline = base64_decode($lastreadmaillineinit);
284
+ $lastreadnextline = base64_decode($lastreadnextlineinit);
285
+
286
+ if ($nbinfctdflsmail != 0 && $nbinfctdflsnext != 0 && $maildetlnbr_enc != $old_mailvirdetect_enc && $nextdetlnbr_enc != $old_nextvirdetect_enc) {
287
+     $clamavperiodicdetect = "<ul><li style='color:#225aad;font-weight:700;'>ClamAV antivirus has made the following detections by periodic scanning:</li><br>
288
+	                      <br><ul><li><b>Viruses detected in emails directories (You should remove them manually):</b><br><br>" . $maildetlnbr . "</li></ul><br>
289
+	                      <ul><li><b>Viruses detected in Nextcloud directories (You should remove them manually):</b><br><br>" . $nextdetlnbr . "</li></ul></ul><br>";
290
+ } elseif ($nbinfctdflsmail != 0 && $nbinfctdflsnext == 0 && $maildetlnbr_enc != $old_mailvirdetect_enc) {
291
+     $clamavperiodicdetect = "<ul><li style='color:#225aad;font-weight:700;'>ClamAV antivirus has made the following detections by periodic scanning:</li><br>
292
+	                      <br><ul><li><b>Viruses detected in emails directories (You should remove them manually):</b><br><br>" . $maildetlnbr . "</li></ul></ul><br>";
293
+ } elseif ($nbinfctdflsmail == 0 && $nbinfctdflsnext != 0 && $nextdetlnbr_enc != $old_nextvirdetect_enc) {
294
+     $clamavperiodicdetect = "<ul><li style='color:#225aad;font-weight:700;'>ClamAV antivirus has made the following detections by periodic scanning:</li><br>
295
+	                      <br><ul><li><b>Viruses detected in Nextcloud directories (You should remove them manually):</b><br><br>" . $nextdetlnbr . "</li></ul></ul><br>";
296
+ } else { $clamavperiodicdetect = null; }
297
+
298
+ // Get the log lines that contain virus detections in emails
299
+ $mailstring = ' milter-hold: ';
300
+
301
+ $maillog1init = $postfixlog;
302
+ $maillog2init = $postfixlogsec;
303
+
304
+ if (is_file($maillog1init)) {
305
+     $maillog1sec = file_get_contents($maillog1init);
306
+ } else { $maillog1sec = ''; }
307
+
308
+ if (is_file($maillog2init)) {
309
+     $maillog2sec = file_get_contents($maillog2init);
310
+ } else  { $maillog2sec = ''; }
311
+
312
+ if ($lastreadmaillineinit != '') {
313
+
314
+   if (strpos($maillog1sec, $lastreadmailline)  !== false) {
315
+
316
+      $maillog1tert = strstr($maillog1sec, $lastreadmailline);
317
+      $maillog1fourth = preg_split('/\r\n|\r|\n/', $maillog1tert);
318
+      $maillogexplall = $maillog1fourth;
319
+
320
+      array_pop($maillog1fourth);
321
+      $endoflstrdmlln = end($maillog1fourth);
322
+      $reset1 = reset($maillog1fourth);
323
+      $newlastreadmailline = base64_encode($endoflstrdmlln);
324
+
325
+   } else {
326
+
327
+      $maillog2tert = strstr($maillog2sec, $lastreadmailline);
328
+      $maillog2fourth = preg_split('/\r\n|\r|\n/', $maillog2tert);
329
+
330
+      $maillog2fifth = implode("\n", $maillog2fourth);
331
+      $maillog2sixth = $maillog2fifth . $maillog1sec;
332
+      $maillog2expl = preg_split('/\r\n|\r|\n/', $maillog2sixth);
333
+      $maillogexplall = $maillog2expl;
334
+
335
+      array_pop($maillog2expl);
336
+      $endoflstrdmlln2 = end($maillog2expl);
337
+      $reset2 = reset($maillog2expl);
338
+      $newlastreadmailline = base64_encode($endoflstrdmlln2);
339
+    }
340
+
341
+ } else {
342
+
343
+     if ($maillog1sec != '' || $maillog2sec != '') {
344
+	 $maillogconc = $maillog2sec . $maillog1sec;
345
+	 $maillogexplall = preg_split('/\r\n|\r|\n/', $maillogconc);
346
+
347
+	 if ($maillogexplall[0] == '') {
348
+	     $newlastreadinit = $maillogexplall[1];
349
+	 } else { $newlastreadinit = $maillogexplall[0]; }
350
+
351
+	 $newlastreadmailline = base64_encode($newlastreadinit);
352
+
353
+      } else { $newlastreadmailline = ''; $maillogexplall = []; }
354
+   }
355
+
356
+  $mailloglines = [];
357
+
358
+  foreach($maillogexplall as $key => $value) {
359
+      if (strpos($value, $mailstring) !== false) {
360
+	  $mailloglines[] = htmlentities($value);
361
+      }
362
+  }
363
+
364
+ $maildetections = implode("<br><br>", $mailloglines);
365
+ $maildetections_enc = base64_encode($maildetections);
366
+
367
+ // Get the log lines that contain virus detections in files uploaded to Nextcloud
368
+ $nextstring = 'Infected file deleted';
369
+
370
+ if (is_file($nextcloudlog)) {
371
+     $nextlog1sec = file_get_contents($nextcloudlog);
372
+ } else { $nextlog1sec = ''; }
373
+
374
+ if (is_file($nextcloudlogsec)) {
375
+     $nextlog2sec = file_get_contents($nextcloudlogsec);
376
+ } else { $nextlog2sec = ''; }
377
+
378
+ if ($lastreadnextlineinit != '') {
379
+
380
+     if (strpos($nextlog1sec, $lastreadnextline) !== false) {
381
+
382
+         $nextlog1tert = strstr($nextlog1sec, $lastreadnextline);
383
+         $nextlog1fourth = preg_split('/\r\n|\r|\n/', $nextlog1tert);
384
+         $nextlogexplall = $nextlog1fourth;
385
+
386
+         array_pop($nextlog1fourth);
387
+         $endoflstrdmlln = end($nextlog1fourth);
388
+         $newlastreadnextline = base64_encode($endoflstrdmlln);
389
+
390
+     } else {
391
+
392
+         $nextlog2tert = strstr($nextlog2sec, $lastreadnextline);
393
+         $nextlog2fourth = preg_split('/\r\n|\r|\n/', $nextlog2tert);
394
+
395
+         $nextlog2fifth = implode("\n", $nextlog2fourth);
396
+         $nextlog2sixth = $nextlog2fifth . $nextlog1sec;
397
+         $nextlog2expl = preg_split('/\r\n|\r|\n/', $nextlog2sixth);
398
+         $nextlogexplall = $nextlog2expl;
399
+
400
+         array_pop($nextlog2expl);
401
+         $endoflstrdmlln2 = end($nextlog2expl);
402
+         $newlastreadnextline = base64_encode($endoflstrdmlln2);
403
+     }
404
+
405
+ } else {
406
+
407
+        if ($nextlog1sec != '' || $nextlog2sec != '') {
408
+	    $nextlogconc = $nextlog2sec . $nextlog1sec;
409
+	    $nextlogexplall = preg_split('/\r\n|\r|\n/', $nextlogconc);
410
+
411
+	    if ($nextlogexplall[0] == '') {
412
+	        $newlastreadinit = $nextlogexplall[1];
413
+	    } else {
414
+                $newlastreadinit = $nextlogexplall[0];
415
+            }
416
+
417
+	    $newlastreadnextline = base64_encode($newlastreadinit);
418
+
419
+        } else {
420
+            $newlastreadnextline = ''; $nextlogexplall = [];
421
+        }
422
+ }
423
+
424
+ $nextloglines = [];
425
+
426
+ foreach ($nextlogexplall as $key2 => $value2) {
427
+        if (strpos($value2, $nextstring) !== false) {
428
+	    $nextloglines[] = htmlentities($value2);
429
+        }
430
+ }
431
+
432
+ $nextdetections = implode("<br><br>", $nextloglines);
433
+ $nextdetections_enc = base64_encode($nextdetections);
434
+
435
+ // Decide how the virus detections paragraph will look like
436
+ if (count($mailloglines) != 0 && count($nextloglines) != 0 && $maildetections_enc != $old_maildetections_enc && $nextdetections_enc != $old_nextdetections_enc) {
437
+     $clamavdetections = "<ul><li><span style='color:#225aad;font-weight:700;'>The logs show the following ClamAV recent detections:</span></span></li><br>
438
+	                  <br><ul><li><b>Viruses detected in emails (they have been already removed):</b><br><br>" . $maildetections . "</li></ul><br>
439
+	                  <ul><li><b>Viruses detected in files uploaded to Nextcloud (they have been already removed):</b><br><br>" . $nextdetections . "<br>
440
+	                  </li></ul></ul><br>";
441
+ } elseif (count($mailloglines) != 0 && count($nextloglines) == 0 && $maildetections_enc != $old_maildetections_enc) {
442
+     $clamavdetections = "<ul><li><span style='color:#225aad;font-weight:700;'>The logs show the following ClamAV recent detections:</span></span></li><br>
443
+	                  <br><ul><li><b>Viruses detected in emails (they have been already removed):</b><br><br>" . $maildetections . "<br>
444
+	                  </li></ul></ul><br>";
445
+ } elseif (count($mailloglines) == 0 && count($nextloglines) != 0 && $nextdetections_enc != $old_nextdetections_enc) {
446
+     $clamavdetections = "<ul><li><span style='color:#225aad;font-weight:700;>The logs show the following ClamAV recent detections:</span></span></li><br>
447
+	                  <br><ul><li><b>Viruses detected in files uploaded to Nextcloud (they have been already removed):</b><br><br>" . $nextdetections . "<br>
448
+	                  </li></ul></ul><br>";
449
+ } else { $clamavdetections = null; }
450
+
451
+
452
+ // Get all the IPs banned by Fail2ban and their respective jails and clean the data
453
+ $bannedipslist = ` fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) system("fail2ban-client status " a[i])}' | grep "Status\|IP list" `;
454
+ $bannedipslistesc = escapeshellarg($bannedipslist);
455
+ $getblockedipsfirst = str_replace("'", "", $bannedipslistesc);
456
+ $getblockedipssec = str_replace("Status for the jail:", "@", $getblockedipsfirst);
457
+ $getblockedipthird = str_replace(array("  `- Banned IP list:"), "", $getblockedipssec);
458
+ $getblockedipfourth = str_replace(array("\r\n", "\r", "\n", "\t", "  ", "   ", "    "), " ", $getblockedipthird);
459
+ $getblockedipfifth = str_replace("  ", " ", $getblockedipfourth);
460
+ $getblockedipsixth = explode("@", $getblockedipfifth);
461
+ array_shift($getblockedipsixth);
462
+
463
+ // Collect the banned IPs
464
+ $jailsarr = [];
465
+ $allipsintotal = [];
466
+ $allipsperjail = [];
467
+ foreach ($getblockedipsixth as $key => $value) {
468
+    $expldval = explode(" ", $value);
469
+    if (count($expldval) > 3) {
470
+        $jailsarr[] = $expldval[1];
471
+        for ($j = 2; $j < count($expldval)-1; $j++) {
472
+	     $allipsperjail[] = $expldval[$j];
473
+        }
474
+        $allipsintotal[] = array($expldval[1] => $allipsperjail);
475
+    }
476
+    unset($expldval, $allipsperjail);
477
+ }
478
+
479
+ // Get the hostname
480
+ $nameofhost = exec("hostname");
481
+
482
+ // Loop through all the currently banned IPs and get all the necessary details about each, so that they can be inserted into the database and in the email report
483
+ $blockedipsrows = [];
484
+ $ipsfreqban = [];
485
+ $whoisinfo = [];
486
+ $ipstimespans = [];
487
+ $finwhoisdata = [];
488
+ $banipschck = 0;
489
+ $abreportsentcheck = 0;
490
+
491
+ // Set the default timezone for the date/time functions in this script
492
+ $systemTime = trim(file_get_contents("/etc/timezone"));
493
+ if ($systemTime == 'Etc/UTC') { $systemTime = 'UTC'; }
494
+ date_default_timezone_set($systemTime);
495
+
496
+ if (count($jailsarr) != 0) {
497
+   $j = 1;
498
+   $date1 = date("Y-m-d H:i:s");
499
+
500
+   // Get the data from the Fail2ban logs
501
+   $logonefl = explode("\n", file_get_contents("/var/log/fail2ban.log"));
502
+   $logtwofl = explode("\n", file_get_contents("/var/log/fail2ban.log.1"));
503
+
504
+   $log1data = array_reverse($logonefl);
505
+   $log2data = array_reverse($logtwofl);
506
+
507
+   foreach ($allipsintotal as $key => $value) {
508
+      if (is_array($value)) {
509
+	  foreach ($value as $key2 => $value2) {
510
+
511
+	     $ipsforjail = [];
512
+	     $restartcheck = 0;
513
+	     $getjail = $key2;
514
+
515
+	     // Get the current jail ban time, as it is set in '/etc/fail2ban/jail.local'
516
+	     $jail = "[" . $getjail . "]";
517
+	     $procjail = "@" . $jail;
518
+	     $logdata = file_get_contents('/etc/fail2ban/jail.local');
519
+
520
+	     if (strpos($logdata, $jail) !== false) {
521
+
522
+	         $preproc = str_replace("\n", "@", $logdata);
523
+	         $firstsplit = explode("@# JAILS", $preproc);
524
+	         $splitdata = explode($procjail, $firstsplit[1]);
525
+	         $splitdatasec = strstr($splitdata[1], "@bantime");
526
+	         $splitdatatert = explode("@", $splitdatasec);
527
+	         $jailbantime = filter_var($splitdatatert[1], FILTER_SANITIZE_NUMBER_INT);
528
+
529
+	     } else { $jailbantime = null; }
530
+
531
+	     // Get the last date when Fail2ban was restarted, from the logs
532
+	     $lastrestart = '';
533
+	     foreach ($log1data as $key => $value) {
534
+	          if (strpos($value, "Stopping all jails") !== false) {
535
+	              $restartlinesplit = explode(",", $value);
536
+	              $lastrestart = $restartlinesplit[0];
537
+	              break 1;
538
+	          }
539
+	     }
540
+
541
+	     if ($lastrestart == '') {
542
+	         foreach ($log2data as $keylog => $valuelog) {
543
+	              if (strpos($valuelog,  "Stopping all jails") !== false) {
544
+	                  $restartlinesplit2 = explode(",", $valuelog);
545
+	                  $lastrestart = $restartlinesplit2[0];
546
+	                  break 1;
547
+	              }
548
+	         }
549
+	     }
550
+
551
+	     // Calculate the timespan (in seconds) between the date of the last Fail2ban restart as found in logs and the current date
552
+	     if ($lastrestart != '') {
553
+	         $lastresdate = new DateTime($lastrestart);
554
+	         $currentdate = new DateTime($date1);
555
+	         $datesubtr = $currentdate->getTimestamp() - $lastresdate->getTimestamp();
556
+	         $restartspan = round($datesubtr);
557
+
558
+	     } else { $restartspan = 10 * $jailbantime; }
559
+
560
+	     /**
561
+	      * Decide if the last Fail2ban restart happened recently enough to trigger a false positive when updating the database with the total number
562
+	      * of bans for each IP
563
+	      */
564
+	     if ($restartspan < $jailbantime) {
565
+	         $restartcheck = 1;
566
+	     }
567
+
568
+	     // Get the data from the current jail log files
569
+	     $getlogdata1 = [];
570
+	     $getlogdata1sec = [];
571
+	     $getlogdata2 = [];
572
+	     $getlogdata2sec = [];
573
+
574
+	     if ($getjail == 'wordpress') {
575
+
576
+	         foreach ($wordpresslog as $wkey => $wvalue) {
577
+	             if (is_file($wvalue)) {
578
+	                 $getwplogarr = explode("\n", file_get_contents("$wvalue"));
579
+	                 $getlogdata1[] = array_reverse($getwplogarr);
580
+	             }
581
+	         }
582
+
583
+	         foreach ($wordpresslogsec as $wkeysec => $wvaluesec) {
584
+	             if (is_file($wvaluesec)) {
585
+	                 $getwplogarrsec = explode("\n", file_get_contents("$wvaluesec"));
586
+	                 $getlogdata1sec[] = array_reverse($getwplogarrsec);
587
+	             }
588
+	         }
589
+
590
+	     } else {
591
+
592
+	             if (is_file($jaillogarr[$getjail])) {
593
+	                 $getjaillogarr = explode("\n", file_get_contents($jaillogarr[$getjail]));
594
+	                 $getlogdata2 = array_reverse($getjaillogarr);
595
+	             }
596
+
597
+	             if (is_file($jaillogarrsec[$getjail])) {
598
+	                 $getjaillogarrsec = explode("\n", file_get_contents($jaillogarrsec[$getjail]));
599
+	                 $getlogdata2sec = array_reverse($getjaillogarrsec);
600
+	             }
601
+	     }
602
+
603
+
604
+	     if (is_array($value2)) {
605
+	         foreach ($value2 as $key3 => $value3) {
606
+	             $getip = $value3;
607
+	             $ipsforjail[] = $value3;
608
+
609
+	             /**
610
+	              * Check if the current IP associated to the current jail is already in the database and get the first ban date, the last ban date and the total
611
+	              * number of bans for this IP from the database
612
+	              */
613
+	             $queryipj = $mysqli->prepare("SELECT id, IP, jail, first_ban, last_ban FROM bannedipstable WHERE IP = ? AND jail = ?");
614
+                     $queryipj->bind_param("ss", $getip, $getjail);
615
+                     $queryipj->execute();
616
+                     $fetchipj = $queryipj->get_result();
617
+                     $fetchipjres = $fetchipj->fetch_row();
618
+                     $queryipj->close();
619
+                     if ($fetchipjres) {
620
+	                 $ipisindatabase = $fetchipjres[0];
621
+	                 $firstbandate = $fetchipjres[3];
622
+	                 $lastbandate = $fetchipjres[4];
623
+                     } else {
624
+	                 $ipisindatabase = '';
625
+	                 $firstbandate = '';
626
+	                 $lastbandate = '';
627
+                     }
628
+
629
+	             // Get the last ban date from '/var/log/fail2ban.log' or '/var/log/fail2ban.log.1', for the current IP
630
+	             $date_last_b = '';
631
+	             foreach ($log1data as $key => $value) {
632
+	                 if (str_contains($value, "[". $getjail ."] Ban ". $getip) && (str_ends_with($value, $getip))) {
633
+	                     $lastbanline = $value;
634
+	                     $banlinesplit = explode(",", $lastbanline);
635
+	                     $date_last_b = $banlinesplit[0];
636
+	                     break 1;
637
+	                 }
638
+	             }
639
+
640
+	             if ($date_last_b == '') {
641
+	                foreach ($log2data as $key2 => $value2) {
642
+	                   if (str_contains($value2, "[". $getjail ."] Ban ". $getip) && (str_ends_with($value2, $getip))) {
643
+	                       $lastbanline2 = $value2;
644
+	                       $banlinesplit2 = explode(",", $lastbanline2);
645
+	                       $date_last_b = $banlinesplit2[0];
646
+	                       break 1;
647
+	                   }
648
+	                }
649
+	             }
650
+
651
+	             if (($date_last_b == '') && ($lastbandate != '')) {
652
+	                  $date_last_b = $lastbandate;
653
+	             }
654
+
655
+	             if (($date_last_b == '') && ($lastbandate == '')) {
656
+	                  $date_last_b = $date1;
657
+	             }
658
+
659
+	             if ($firstbandate == '') {
660
+	                 $first_ban_proc = $date_last_b;
661
+	             } else { $first_ban_proc = $firstbandate; }
662
+
663
+	             // Calculate the timespan (in seconds) between the last ban date found in logs and the current date
664
+	             $datedifference2 = strtotime($date1) - strtotime($date_last_b);
665
+	             $logspantime = intval($datedifference2);
666
+
667
+	             $ipstimespans[] = $logspantime;
668
+
669
+	             // If the IP is not in the database, insert it with all the necessary details
670
+	             if ($ipisindatabase == '') {
671
+                         $crid = 1;
672
+	                 $queryinsip = $mysqli->prepare("INSERT INTO bannedipstable (IP, jail, first_ban, last_ban, ban_number) VALUES (?, ?, ?, ?, ?);");
673
+	                 $queryinsip->bind_param("ssssi", $getip, $getjail, $date_last_b, $date_last_b, $crid);
674
+	                 $queryinsip->execute();
675
+	                 $queryinsip->close();
676
+
677
+	             /**
678
+	              *  If the IP is already in the database, update its record with the number of bans and the last ban date, but only if the current IP has been
679
+	              *  banned in the last run interval and only if the timespan between the last Fail2ban restart and the current time is greater than the current
680
+	              *  jail ban time. Otherwise, the IPs record shouldn't be updated because it means that either the current IP has been banned before the last
681
+	              *  script run, so, the ban has been already processed and the IP's record has been already updated, or that the IP is currently banned only
682
+	              *  because Fail2ban has been restarted in the recent past, since by default Fail2ban bans again all the IPs that were banned at the time of restart.
683
+	              */
684
+	             } elseif (($ipisindatabase != '') && ($logspantime <= $runinterval) && ($logspantime != 0) && ($restartcheck == 0) && ($date_last_b != $firstbandate)) {
685
+
686
+	                        $upbandt = $mysqli->prepare("UPDATE bannedipstable SET ban_number = ban_number + 1, last_ban = ? WHERE IP = ? AND jail = ?");
687
+                                $upbandt->bind_param("sss", $date_last_b, $getip, $getjail);
688
+                                $upbandt->execute();
689
+                                $upbandt->close();
690
+	             }
691
+
692
+	             // Get the total number of bans, the first ban date and the last ban date for the current IP, as they are after updating the database
693
+	             $getbnbfl = $mysqli->prepare("SELECT IP, jail, first_ban, last_ban, ban_number FROM bannedipstable WHERE IP = ? AND jail = ?");
694
+                     $getbnbfl->bind_param("ss", $getip, $getjail);
695
+                     $getbnbfl->execute();
696
+                     $fetchbnfl = $getbnbfl->get_result();
697
+                     $resfetchbnfl = $fetchbnfl->fetch_row();
698
+	             $firstbandatesec = $resfetchbnfl[2];
699
+	             $lastbandatesec = $resfetchbnfl[3];
700
+	             $totalbanspr = $resfetchbnfl[4];
701
+                     $getbnbfl->close();
702
+
703
+	             // Calculate the timespan (in days) between the first ban date and the last ban date as found in the database, for the current IP
704
+	             $first_ban_date = new DateTime($firstbandatesec);
705
+	             $last_ban_date = new DateTime($lastbandatesec);
706
+	             $datediff = $last_ban_date->getTimestamp() - $first_ban_date->getTimestamp();
707
+	             $timespanall = round($datediff / (60 * 60 * 24));
708
+
709
+
710
+	             // Write the paragraph with information about the current IP, if it has been banned more than once
711
+	             if ($totalbanspr > 1) {
712
+
713
+	                $loglinearrcount = 0;
714
+
715
+	                /**
716
+	                 * Get the last 20 log lines containing the failed log in attempts of the current IP from all the WordPress, Nextcloud, ProFTPD, Asterisk,
717
+	                 * Bind or OpenVPN logs
718
+	                 */
719
+	                if ($getjail == 'wordpress' || $getjail == 'nextcloud' || $getjail == 'proftdp' || $getjail == 'asterisk' || $getjail == 'named-refused' || $getjail == 'openvpn') {
720
+
721
+	                   /**
722
+	                    * Set the regex expressions that will allow correct identification of failed log in attepts against WordPress, Nextcloud, ProFTPD,
723
+	                    * Asterisk, Bind and OpenVPN
724
+	                    */
725
+	                   if ($getjail == 'wordpress') {
726
+	                       $regpattern = '/^(?=.*?\b'.$getip.'\b)(?=.*?\b(POST)\b).*$/';
727
+	                   } elseif ($getjail == 'nextcloud') {
728
+	                       $regpattern = '/^(?=.*?\b'.$getip.'\b)(?=.*?\b(Login failed)\b).*$/';
729
+	                   } elseif ($getjail == 'proftdp') {
730
+	                       $regpattern = '/^(?=.*?\b'.$getip.'\b)(?=.*?\b(no such user found|Login failed|SECURITY VIOLATION|Maximum login attempts)\b).*$/';
731
+	                   } elseif ($getjail == 'asterisk') {
732
+	                       $regpattern = '/^(?=.*?\b'.$getip.'\b)(?=.*?\b(failed for|PJSIP syntax error)\b).*$/';
733
+	                   } elseif ($getjail == 'named-refused') {
734
+	                       $regpattern = '/^(?=.*?\b'.$getip.'\b)(?=.*?\b(denied)\b).*$/';
735
+	                   } elseif ($getjail == 'openvpn') {
736
+	                       $regpattern = '/^(?=.*?\b'.$getip.'\b)(?=.*?\b(Connection reset, restarting|TLS Error: TLS handshake failed|Fatal TLS error|VERIFY ERROR|WARNING: Bad encapsulated packet length)\b).*$/';
737
+	                   }
738
+
739
+	                   if ($getjail == 'wordpress') {
740
+
741
+	                       $loglinearr1 = [];
742
+	                       $reslinesarr = [];
743
+	                       foreach ($getlogdata1 as $getwkey => $getwvalue) {
744
+	                           if (is_array($getwvalue)) {
745
+	                              foreach ($getwvalue as $lkey1 => $lvalue1) {
746
+	                                  preg_match_all($regpattern, $lvalue1, $reslinesarr);
747
+	                                  if (isset($reslinesarr[0][0]) && $reslinesarr[0][0] != '') {
748
+	                                      $loglinearr1[] = $reslinesarr[0][0];
749
+	                                  }
750
+	                              }
751
+	                           }
752
+	                       }
753
+
754
+	                   } elseif ($getjail == 'nextcloud' || $getjail == 'proftdp' || $getjail == 'asterisk' || $getjail == 'named-refused' || $getjail == 'openvpn') {
755
+	                             $loglinearr1 = [];
756
+	                             $reslinesarr = [];
757
+	                             foreach ($getlogdata2 as $lkey2 => $lvalue2) {
758
+	                                  preg_match_all($regpattern, $lvalue2, $reslinesarr);
759
+	                                  if (isset($reslinesarr[0][0]) && $reslinesarr[0][0] != '') {
760
+	                                      $loglinearr1[] = $reslinesarr[0][0];
761
+	                                  }
762
+	                             }
763
+	                   }
764
+
765
+
766
+	                   // If at least 20 log entries were found for the current IP, collect the last 20 log entries and don't search in the rotated log file
767
+	                   if (count($loglinearr1) > 19) {
768
+	                          $loglinearrauxinit = array_slice($loglinearr1, 0, 20);
769
+	                          $loglinearraux = array_reverse($loglinearrauxinit);
770
+	                          $loglinearrfin = implode("<br></b>", $loglinearraux);
771
+                                  $loglinearrfinpt = implode("\n ", $loglinearraux);
772
+
773
+	                   // If less than 20 log entries were found in the current log file, search for the current IP in the rotated log file
774
+	                   } else {
775
+	                           if ($getjail == 'wordpress') {
776
+	                               $resloglsec = [];
777
+	                               foreach ($getlogdata1sec as $getwkeysec => $getwvaluesec) {
778
+	                                  if (is_array($getwvaluesec)) {
779
+	                                     foreach ($getwvaluesec as $lkey1sec => $lvalue1sec) {
780
+	                                        preg_match_all($regpattern, $lvalue1sec, $resloglsec);
781
+	                                        if (isset($resloglsec[0][0]) && $resloglsec[0][0] != '') {
782
+	                                            $loglinearr1[] = $resloglsec[0][0];
783
+	                                        }
784
+	                                     }
785
+	                                  }
786
+	                               }
787
+	                           } elseif ($getjail == 'nextcloud' || $getjail == 'proftdp' || $getjail == 'asterisk' || $getjail == 'named-refused' || $getjail == 'openvpn') {
788
+	                                  $resloglsec = [];
789
+	                                  foreach ($getlogdata2sec as $getwkeysec => $getwvaluesec) {
790
+	                                         preg_match_all($regpattern, $getwvaluesec, $resloglsec);
791
+	                                         if (isset($resloglsec[0][0]) && $resloglsec[0][0] != '') {
792
+	                                             $loglinearr1[] = $resloglsec[0][0];
793
+	                                         }
794
+	                                  }
795
+	                           }
796
+
797
+	                          // Collect only the last 20 entries if there are more
798
+	                          if (count($loglinearr1) > 19) {
799
+	                              $loglinearrauxinit = array_slice($loglinearr1, 0, 20);
800
+	                              $loglinearraux = array_reverse($loglinearrauxinit);
801
+	                              $loglinearrfin = implode("<br></b>", $loglinearraux);
802
+                                      $loglinearrfinpt = implode("\n ", $loglinearraux);
803
+	                          } else {
804
+	                              $loglinearrsec = array_reverse($loglinearr1);
805
+	                              $loglinearrfin = implode("<br></b>", $loglinearrsec);
806
+                                      $loglinearrfinpt = implode("\n ", $loglinearrsec);
807
+	                          }
808
+	                   }
809
+	                   $loglinearrcount = count($loglinearr1);
810
+
811
+
812
+	                // If the current jail is different from 'wordpress', 'nextcloud', 'proftpd', 'asterisk', 'named-refused' or 'openvpn', get the last 20 log entries containing the current IP
813
+	                } else {
814
+	                      $loglinearr2 = [];
815
+	                      foreach ($getlogdata2 as $lkey2 => $lvalue2) {
816
+	                          if (strpos($lvalue2, $getip) !== false) {
817
+	                              $loglinearr2[] = $lvalue2;
818
+	                          }
819
+	                      }
820
+
821
+	                      if (count($loglinearr2) > 19) {
822
+	                          $loglinearruninit = array_slice($loglinearr2, 0, 20);
823
+	                          $loglinearrun = array_reverse($loglinearruninit);
824
+	                          $loglinearrfin = implode("<br></b>", $loglinearrun);
825
+                                  $loglinearrfinpt = implode("\n ", $loglinearrun);
826
+
827
+	                      // If less than 20 log entries were found in the current log file, search for the current IP in the rotated log file
828
+	                      } else {
829
+	                             foreach ($getlogdata2sec as $lkey2sec => $lvalue2sec) {
830
+	                                  if (strpos($lvalue2sec, $getip) !== false) {
831
+	                                      $loglinearr2[] = $lvalue2sec;
832
+	                                  }
833
+	                             }
834
+	                             // Collect only the last 20 entries and remove the rest if there are more
835
+	                             if (count($loglinearr2) > 19) {
836
+	                                 $loglinearrun = array_slice($loglinearr2, 0, 20);
837
+	                                 $loglinearrot = array_reverse($loglinearrun);
838
+	                                 $loglinearrfin = implode("<br></b>", $loglinearrot);
839
+                                         $loglinearrfinpt = implode("\n ", $loglinearrot);
840
+	                             } else {
841
+	                                 $loglinearruts = array_reverse($loglinearr2);
842
+	                                 $loglinearrfin = implode("<br></b>", $loglinearruts);
843
+                                         $loglinearrfinpt = implode("\n ", $loglinearruts);
844
+	                             }
845
+	                      }
846
+	                      $loglinearrcount = count($loglinearr2);
847
+	                }
848
+
849
+	                // Get the 'whois' data for the current IP
850
+	                $whoisinfo = shell_exec("whois " . $getip);
851
+	                $whoisexpl = preg_split('/\r\n|\r|\n/', $whoisinfo);
852
+
853
+	                // Extract all the email addresses from the 'whois' data
854
+	                $whoisimplinit = implode(" ", $whoisexpl);
855
+
856
+			$emregpattern = "/[\._a-zA-Z0-9-]+@[\._a-zA-Z0-9-]+/i";
857
+			preg_match_all($emregpattern, $whoisinfo, $ematches);
858
+
859
+	                $allemailsarr = [];
860
+			foreach ($ematches[0] as $thisemail) {
861
+				 $allemailsarr[] = $thisemail;
862
+			}
863
+
864
+	                $finemailarray = array_unique($allemailsarr);
865
+	                $finemails = array_values($finemailarray);
866
+
867
+	                $whoisimpl = implode("<br></b>", $whoisexpl);
868
+
869
+	                // Search for the 'abuse' email address in the 'whois' data
870
+	                $foundabusemail = '';
871
+
872
+	                foreach ($whoisexpl as $whkey => $whvalue) {
873
+	                    if (($foundabusemail == '') && (strpos($whvalue, 'Abuse contact for') !== false)) {
874
+
875
+	                        $wfirstextr = strstr($whvalue, 'Abuse contact for');
876
+	                        $wlinesplit = explode("'", $wfirstextr);
877
+	                        $whotrimmed = array_filter(array_map('trim', $wlinesplit));
878
+	                        $whoreverse = array_reverse($whotrimmed);
879
+	                        if ($whoreverse[0] != 'abuse@ripe.net' && $whoreverse[0] != 'no-email@apnic.net') {
880
+	                            $foundabusemail = $whoreverse[0];
881
+	                        }
882
+	                        break;
883
+	                    }
884
+	                }
885
+
886
+	                if (($foundabusemail == '') && (strpos($whoisinfo, 'abuse-mailbox') !== false)) {
887
+
888
+	                    $wfirstextr = strstr($whoisinfo, 'abuse-mailbox');
889
+	                    $wextsplit = preg_split('/\r\n|\r|\n/', $wfirstextr);
890
+	                    $wlinesplit = explode(' ', $wextsplit[0]);
891
+	                    $whotrimmed = array_filter(array_map('trim', $wlinesplit));
892
+	                    $whoreverse = array_reverse($whotrimmed);
893
+	                    if ($whoreverse[0] != 'abuse@ripe.net' && $whoreverse[0] != 'no-email@apnic.net') {
894
+	                        $foundabusemail = $whoreverse[0];
895
+	                    }
896
+	                }
897
+
898
+	                if (($foundabusemail == '') && (strpos($whoisinfo, 'OrgAbuseEmail') !== false)) {
899
+
900
+	                    $wfirstextr = strstr($whoisinfo, 'OrgAbuseEmail');
901
+	                    $wextsplit = preg_split('/\r\n|\r|\n/', $wfirstextr);
902
+	                    $wlinesplit = explode(' ', $wextsplit[0]);
903
+	                    $whotrimmed = array_filter(array_map('trim', $wlinesplit));
904
+	                    $whoreverse = array_reverse($whotrimmed);
905
+	                    if ($whoreverse[0] != 'abuse@ripe.net' && $whoreverse[0] != 'no-email@apnic.net') {
906
+	                        $foundabusemail = $whoreverse[0];
907
+	                    }
908
+	                }
909
+
910
+	                if ($foundabusemail == '') {
911
+	                    foreach ($finemails as $finkey => $finvalue) {
912
+	                         if (strpos($finvalue, "abuse@") !== false && $finvalue != "abuse@ripe.net" && $finvalue != "no-email@apnic.net") {
913
+	                             $foundabusemail = $finvalue;
914
+	                             break 1;
915
+	                         }
916
+	                    }
917
+	                }
918
+
919
+	                // If no log entries were found for the current IP, include an explanation in the email
920
+	                if ($loglinearrcount != 0) {
921
+	                    $foundlglnchck = null;
922
+	                } else {
923
+	                    $logdirectoryinit = explode("/", $jaillogarr[$getjail]);
924
+	                    array_pop($logdirectoryinit);
925
+	                    $logdirectory = implode("/", $logdirectoryinit);
926
+
927
+	                    $foundlglnchck = "(No log entries were included in the draft email because no entries could be found for this IP
928
+	                                      in the current log and in the most recent rotated log file. If you want to send an abuse report for
929
+	                                      this IP, you will have to search for these log entries manually in the archived log files located
930
+	                                      in '" . $logdirectory . "'.)";
931
+	                }
932
+
933
+	                /**
934
+	                 * Get the ban moment that will be displayed in the draft abuse report email. It's better to take this timestamp from the last
935
+	                 * found log line containing the current IP, which will also be listed at the end of the email.
936
+	                 */
937
+	                $gmtindinit = "UTC " . shell_exec('date +\'%:z\''); // UTC time offset
938
+                        $gmtind = str_replace("\n", "", $gmtindinit);
939
+
940
+	                // Extract the timestamp differently, according to the log format
941
+	                if ($loglinearrcount != 0) {
942
+
943
+	                    if ($getjail == 'postfix' || $getjail == 'postfix-sasl' || $getjail == 'sshd') {
944
+	                        $exploglinesinit = explode("<br></b>", $loglinearrfin);
945
+	                        $exploglines = array_reverse($exploglinesinit);
946
+	                        $firstlinelg = $exploglines[0];
947
+	                        $getdatexpinit = explode(".", $firstlinelg);
948
+	                        $getdatefrlinit = array_filter(array_map('trim', $getdatexpinit));
949
+	                        $getdatefrl = array_values($getdatefrlinit);
950
+	                        $getdatexp = explode("T", $getdatefrl[0]);
951
+	                        $lastbandateproc = $getdatexp[0] . ", " . $getdatexp[1] . ", " . $gmtind;
952
+	                    } elseif ($getjail == 'dovecot') {
953
+	                        $exploglinesinit = explode("<br></b>", $loglinearrfin);
954
+	                        $exploglines = array_reverse($exploglinesinit);
955
+	                        $firstlinelg = $exploglines[0];
956
+	                        $getdatexp = explode(" ", $firstlinelg);
957
+	                        $getdatefrlinit = array_filter(array_map('trim', $getdatexp));
958
+	                        $getdatefrl = array_values($getdatefrlinit);
959
+	                        $lastbandateproc = $getdatefrl[0] . ", " . $getdatefrl[1] . ", " . $gmtind;
960
+	                    } elseif ($getjail == 'named-refused') {
961
+	                        $exploglinesinit = explode("<br></b>", $loglinearrfin);
962
+	                        $exploglines = array_reverse($exploglinesinit);
963
+	                        $firstlinelg = $exploglines[0];
964
+	                        $getdatexp = explode(" ", $firstlinelg);
965
+	                        $getdatefrlinit = array_filter(array_map('trim', $getdatexp));
966
+	                        $getdatefrl = array_values($getdatefrlinit);
967
+	                        $lastbandateproc = $getdatefrl[0] . ", " . $getdatefrl[1] . ", " . $gmtind;
968
+	                    } elseif ($getjail == 'wordpress' || $getjail == 'mailman' || $getjail == 'dolibarr' || $getjail == 'phplist' ||
969
+	                              $getjail == 'phpmyadmin' || $getjail == 'looladmin' || $getjail == 'matomo') {
970
+	                        $exploglinesinit = explode("<br></b>", $loglinearrfin);
971
+	                        $exploglines = array_reverse($exploglinesinit);
972
+	                        $firstlinelg = $exploglines[0];
973
+	                        $getdatefrl = explode("[", $firstlinelg);
974
+	                        $getdatefrlsec = explode("]", $getdatefrl[1]);
975
+	                        $getdatefrlthird = explode(" ", $getdatefrlsec[0]);
976
+	                        $lastbandateproc = $getdatefrlthird[0] . ", " . $gmtind;
977
+	                    } elseif ($getjail == 'asterisk') {
978
+	                        $exploglinesinit = explode("<br></b>", $loglinearrfin);
979
+	                        $exploglines = array_reverse($exploglinesinit);
980
+	                        $firstlinelg = $exploglines[0];
981
+	                        $getdatefrl = explode("[", $firstlinelg);
982
+	                        $getdatefrlsec = explode("]", $getdatefrl[1]);
983
+	                        $lastbandateproc = $getdatefrlsec[0] . ", " . $gmtind;
984
+	                    } elseif ($getjail == 'roundcube') {
985
+	                        $exploglinesinit = explode("<br></b>", $loglinearrfin);
986
+	                        $exploglines = array_reverse($exploglinesinit);
987
+	                        $firstlinelg = $exploglines[0];
988
+	                        $getdatefrl = explode("[", $firstlinelg);
989
+	                        $getdatefrlsec = explode("]", $getdatefrl[1]);
990
+	                        $getdatefrlthird = explode(" ", $getdatefrlsec[0]);
991
+	                        $lastbandateproc = $getdatefrlthird[0] . ", " . $getdatefrlthird[1] . ", " . $gmtind;
992
+	                    } elseif ($getjail == 'nextcloud') {
993
+	                        $exploglinesinit = explode("<br></b>", $loglinearrfin);
994
+	                        $exploglines = array_reverse($exploglinesinit);
995
+	                        $firstlinelg = $exploglines[0];
996
+	                        $getdatefrl = explode("\"time\":", $firstlinelg);
997
+	                        $getdatefrlsec = explode("\"", $getdatefrl[1]);
998
+	                        $getdatefrlthird = explode("+", $getdatefrlsec[1]);
999
+	                        $getdatefrlfourth = explode("T", $getdatefrlthird[0]);
1000
+	                        $lastbandateproc = $getdatefrlfourth[0] . ", " . $getdatefrlfourth[1] . ", " . $gmtind;
1001
+	                    } elseif ($getjail == 'proftpd') {
1002
+	                        $exploglinesinit = explode("<br></b>", $loglinearrfin);
1003
+	                        $exploglines = array_reverse($exploglinesinit);
1004
+	                        $firstlinelg = $exploglines[0];
1005
+	                        $getdatefrl = explode(",", $firstlinelg);
1006
+	                        $getdatefrlsec = explode(" ", $getdatefrl[0]);
1007
+	                        $lastbandateproc = $getdatefrlsec[0] . ", " . $getdatefrlsec[1] . ", " . $gmtind;
1008
+	                    } elseif ($getjail == 'openvpn') {
1009
+	                        $exploglinesinit = explode("<br></b>", $loglinearrfin);
1010
+	                        $exploglines = array_reverse($exploglinesinit);
1011
+	                        $firstlinelg = $exploglines[0];
1012
+	                        $getdatefrl = explode(" us=", $firstlinelg);
1013
+	                        $getdatefrlsec = explode(" ", $getdatefrl[0]);
1014
+	                        $lastbandateproc = $getdatefrlsec[0] . ", " . $getdatefrlsec[1] . ", " . $gmtind;
1015
+	                    }
1016
+	                } else  $lastbandateproc = $lastbandatesec;
1017
+
1018
+	                // Add a warning about the possibility of disclosing sensitive information in the log lines included in the abuse report email
1019
+	                if ($loglinearrcount != 0) {
1020
+	                    $senswarn = "It's recommended to check if the log lines included in the draft email from below contain sensitive information, such as custom
1021
+	                                 WordPress login URLs, usernames used for HTTP authentication, etc. If such information exists, you can replace it with asterisks or
1022
+	                                 other placeholders before sending the email.";
1023
+	                } else { $senswarn = null; }
1024
+
1025
+	                // If the 'abuse' email address has been found in the 'whois' database, include a warning text in the email
1026
+	                if ($foundabusemail != '') {
1027
+	                    $foundornotinfo = "The 'abuse' email address for this IP has been found in the data output of the 'whois ip' command. It is:<br><br><b>" .
1028
+	                                       $foundabusemail . "</b><br><br>This address was found automatically and <b>may be incorrect</b>. You can verify it
1029
+	                                       against the 'whois' data from above before sending the abuse notification.<br>" . $foundlglnchck . "<br>" . $senswarn . "<br>";
1030
+
1031
+	                // If no 'abuse' email address has been found, include an explanation in the email
1032
+	                } else {
1033
+	                     $foundornotinfo = "System Health and Security Probe couldn't find the 'abuse' email address for this IP. You can look again at the
1034
+	                                        'whois' data for this IP from above, and try to identify the 'abuse' email address which may have a different
1035
+	                                        format than the standard 'abuse@...'. <br>" . $foundlglnchck . "<br>" . $senswarn . "<br>";
1036
+	                }
1037
+
1038
+	                // HTML version of the email that can be sent to the 'abuse' email address for the current IP
1039
+	                $abusereportemail = "<!DOCTYPE html>
1040
+					     <html>
1041
+					       <head>
1042
+					         <meta http-equiv='content-type' content='text/html; charset=UTF-8'>
1043
+					       </head>
1044
+					       <body text='#000000' bgcolor='#FFFFFF'>
1045
+					         <br>Hello,<br><br>
1046
+	                                         The machine with the IP  <b>" . $getip . "</b>  has attacked our server on the service " . $getjail . ", <br>
1047
+	                                         on port " . $jailsports[$getjail]  . ", on  " . $lastbandateproc . " . The IP was blocked automatically.<br><br>
1048
+
1049
+	                                         Please check the machine with the IP  <b>" . $getip . "</b>  to fix this problem.<br><br>
1050
+
1051
+	                                         Below you can find the log lines showing the failed log in attempts on our system.<br><br>
1052
+
1053
+	                                         Lines containing  <b>" . $getip . "</b>  :<br><br>"  . $loglinearrfin . "<br><br>
1054
+
1055
+	                                         You can contact us at " . $emailtofirst . "<br><br>
1056
+
1057
+	                                         Thank you,<br>
1058
+                                                 " . $sysadminname . "<br>
1059
+	                                         The System Administrator <br>
1060
+					       </body>
1061
+					     </html>";
1062
+
1063
+	                // Plain text version of the email that can be sent to the 'abuse' email address for the current IP
1064
+	                $abusereportemailpt = "\n Hello,\n\n The machine with the IP  " . $getip . "  has attacked our server on the service " . $getjail . ", \n on port " . $jailsports[$getjail]  . ", on " . $lastbandateproc . ". The IP was blocked automatically. \n\n Please check the machine with the IP  " . $getip . "  to fix this problem. \n\n Below you can find the log lines showing the failed log in attempts on our system. \n\n Lines containing  " . $getip . " : \n\n " . $loglinearrfinpt . " \n\n You can contact us at " . $emailtofirst . " \n\n Thank you, \n " . $sysadminname . " \n The System Administrator \n";
1065
+
1066
+	                // Write the paragraph containing the email that can be sent to the 'abuse' email address for the current IP
1067
+	                if ($getjail != 'wordpress') {
1068
+	                    if ($getjail != 'named-refused') {
1069
+	                        $jaillognamefirst = $jaillogarr[$getjail];
1070
+	                        $jaillognamesec = $jaillognamefirst . ".1";
1071
+	                    } else {
1072
+	                        $jaillognamefirst = $jaillogarr['named-refused'];
1073
+	                        $jaillognamesec = $jaillognamefirst . ".0";
1074
+	                    }
1075
+	                } else {
1076
+	                    $jaillognamefirst = $jaillogarr['wordpress'][0];
1077
+	                    $jaillognamesec = $jaillogarr['wordpress'][1];
1078
+	                }
1079
+
1080
+	                if ($loglinearrcount != 0) {
1081
+			          $variantabmail = "</b><br>
1082
+			                            If you haven't enabled automatic sending of abuse reports, you can send manually an abuse report to the entity that owns
1083
+			                            this offending IP. Below is a draft of the abuse report that you can send for this IP. " . $foundornotinfo . "</b><br>
1084
+
1085
+			                            <p style='border:2px; border-style:solid; border-color:#19aa64; padding: 1em; word-wrap: break-word;'> " . $abusereportemail . "</p></b><br>";
1086
+	                } else {
1087
+	                         $variantabmail = "Unfortunately, the repeated attacks of " . $getip . " couldn't be found in the most recent log files: '" . $jaillognamefirst . "'
1088
+	                                           and '" . $jaillognamesec . "'. It seems that these attacks took place some time ago and the log files in which they were
1089
+	                                           recorded have been already archived.<br><br>";
1090
+	                }
1091
+
1092
+	                // Write the 'information about IP' paragraph
1093
+	                $finwhoisdata[] = "<b><h3>Information about  " . $getip . "</h3></b><b><br><br>" . $getip . " has been banned by Fail2ban " . $totalbanspr .
1094
+	                                  " times in the timespan of " . $timespanall . " days (between " . $firstbandatesec . " and " . $lastbandatesec . ")
1095
+	                                  due to repeated failed log in attempts against '" . $getjail . "'. As a rule, these attempts can be found in '" . $jaillognamefirst . "' or
1096
+	                                  in '" . $jaillognamesec . "'.<br><br>'Whois' data for " . $getip . " :</b><br><br>
1097
+	                                  <p style='border:2px; border-style:solid; border-color:#0393bf; padding: 1em; word-wrap: break-word;'>" . $whoisimpl . "</p><br><br>" . $variantabmail;
1098
+
1099
+	                // If the settings in the 'config' file require it, send the abuse report email to the ISP of the current offending IP
1100
+	                $automaticemailproc = strtolower($automaticemail);
1101
+	                $excludedipsarr = explode(",", $excludedips);
1102
+
1103
+	                if ($automaticemailproc == 'yes' && $foundabusemail != '' && $loglinearrcount != 0) {
1104
+	                    if (($ipisindatabase != '') && ($logspantime <= $runinterval) && ($restartcheck == 0)) {
1105
+	                         if (!in_array($jaillogarr[$getjail], $excludedjails)) {
1106
+	                             if (!in_array($getip, $excludedipsarr)) {
1107
+
1108
+                                         if ($abusereportstoadmin == "yes") {
1109
+                                             $toisp = $foundabusemail . "," . implode(",", $emailtoarr);
1110
+                                         } else { $toisp = $foundabusemail; }
1111
+
1112
+	                                 $subjectisp = 'Abuse Report';
1113
+
1114
+				         // Create a unique alphanumeric string to use as a boundary
1115
+					 $msgboundary = bin2hex(openssl_random_pseudo_bytes(16));
1116
+
1117
+					 // Add the headers
1118
+					 $headersisp = "MIME-Version: 1.0" . "\r\n";
1119
+					 $headersisp .= "From: " . $emailsender . "\r\n";
1120
+					 $headersisp .= "To: " . $toisp . "\r\n";
1121
+					 $headersisp .= "Content-Type: multipart/alternative;boundary=" . $msgboundary . "\r\n";
1122
+
1123
+                                         $messageisp = "This is a MIME encoded message." . "\r\n\r\n";
1124
+                                         $messageisp .= "--". $msgboundary ."\r\n";
1125
+                                         $messageisp .= "Content-type: text/plain;charset=utf-8" . "\r\n";
1126
+					 $messageisp .= "Content-Transfer-Encoding: 7bit" . "\r\n\r\n";
1127
+                                         // Plain text message body
1128
+					 $messageisp .= $abusereportemailpt . "\r\n\r\n";
1129
+					 $messageisp .= "--". $msgboundary ."\r\n";
1130
+
1131
+					 $messageisp .= "Content-Type: text/html;charset=UTF-8" . "\r\n";
1132
+					 $messageisp .= "Content-Transfer-Encoding: 7bit" . "\r\n\r\n";
1133
+                                         // HTML message body
1134
+					 $messageisp .= $abusereportemail . "\r\n\r\n";
1135
+					 $messageisp .= "--". $msgboundary ."--";
1136
+
1137
+					 // Send the abuse report email
1138
+					 mail('', $subjectisp, $messageisp, $headersisp, "-f " . $emailsender . "");
1139
+
1140
+	                                 $abreportsentcheck = 1;
1141
+
1142
+	                                 // Increment the number of sent abuse report emails for the current IP, in the 'bannedipstable'
1143
+	                                 $updateabno = $mysqli->prepare("UPDATE bannedipstable SET emails_isp = emails_isp + 1 WHERE IP = ? AND jail = ?");
1144
+                                         $updateabno->bind_param("ss",$getip, $getjail);
1145
+                                         $updateabno->execute();
1146
+                                         $updateabno->close();
1147
+	                             }
1148
+	                         }
1149
+	                    }
1150
+	                }
1151
+	             }
1152
+
1153
+	             // Color the total number of bans for the current IP in red if it exceeds 1
1154
+	             if ($totalbanspr == 1) {
1155
+	                 $totalbanscolored = "<td align='center' style='color:#000000;'><b>1</b></td>";
1156
+	             } else $totalbanscolored = "<td align='center'><b><font style='color:#ff0000;'>" . $totalbanspr . "</font></b></td>";
1157
+
1158
+	             // Get from the database the number of abuse report emails that were sent to the ISP of the current IP
1159
+		     $getispemailsno = $mysqli->prepare("SELECT IP, jail, emails_isp FROM bannedipstable WHERE IP = ? AND jail = ?");
1160
+                     $getispemailsno->bind_param("ss", $getip, $getjail);
1161
+                     $getispemailsno->execute();
1162
+                     $resgetispml = $getispemailsno->get_result();
1163
+                     $fetchresispml = $resgetispml->fetch_row();
1164
+		     $totalispemails = $fetchresispml[2];
1165
+                     $getispemailsno->close();
1166
+
1167
+	             // Add a row corresponding to the current IP and jail, to the blocked IPs table
1168
+	             $blockedipsrows[] = "<tr>
1169
+	                                  <td>" . $j . "</td>
1170
+	                                  <td style='padding-left: 7px;'>" . $getip . "</td>
1171
+	                                  <td style='padding-left: 4px;'>" . $getjail . "</td>
1172
+	                                  <td style='padding-left: 4px;'>" . $first_ban_proc . "</td>
1173
+	                                  <td style='padding-left: 4px;'>" . $lastbandatesec . "</td>
1174
+	                                  <td align='center'>" . $timespanall . "</td>" . $totalbanscolored . "<td align='center'>" . $totalispemails . "</td>
1175
+	                                  </tr>";
1176
+	             $j++;
1177
+	         }
1178
+	         unset($jailbantime, $totalbanscolored, $loglinearrfin, $loglinearrfinpt);
1179
+	     }
1180
+
1181
+	     // Get from the database all the banned IPs for the current jail that were banned when the script ran last time
1182
+	     $getbrl = $mysqli->prepare("SELECT id, jail, bannedips FROM jailsandips WHERE jail = ?");
1183
+             $getbrl->bind_param("s", $getjail);
1184
+             $getbrl->execute();
1185
+             $resgetbrl = $getbrl->get_result();
1186
+             $fetchgetbrl = $resgetbrl->fetch_row();
1187
+	     $lastsentipsperjail = $fetchgetbrl[2];
1188
+	     $lastsentipsarr = explode("|", $lastsentipsperjail);
1189
+             $getbrl->close();
1190
+
1191
+	     /**
1192
+	      * Compare the IPs that were banned last time the script ran with the IPs that are banned now. If the IPs banned now are among those banned last
1193
+	      * time, then the check counter will remain as it is, otherwise the counter will be increased to signal that new IPs were banned since the last
1194
+	      * script run
1195
+	      */
1196
+	     if ($lastsentipsperjail != '') {
1197
+	         $arrintersect = array_intersect($lastsentipsarr, $ipsforjail);
1198
+	         $countarrintersect = count($arrintersect);
1199
+	         $countipsforjail = count($ipsforjail);
1200
+
1201
+	         if ($countarrintersect != $countipsforjail) {
1202
+	             $banipschck++;
1203
+	         }
1204
+
1205
+	     } else { $banipschck++; }
1206
+
1207
+	     // Insert into the 'jailsandips' table all the banned IPs for the current jail
1208
+	     $ipsforjailimpl = implode("|", $ipsforjail);
1209
+
1210
+             if ($fetchgetbrl) {
1211
+
1212
+	         $upbanips = $mysqli->prepare("UPDATE jailsandips SET bannedips = ? WHERE jail = ?");
1213
+                 $upbanips->bind_param("ss", $ipsforjailimpl, $getjail);
1214
+                 $upbanips->execute();
1215
+                 $upbanips->close();
1216
+
1217
+	     } else {
1218
+
1219
+	         $insbanips = "INSERT INTO jailsandips (jail, bannedips) VALUES (?, ?);";
1220
+	         $insbanips->bind_param("ss", $getjail, $ipsforjailimpl);
1221
+                 $insbanips->execute();
1222
+                 $insbanips->close();
1223
+	     }
1224
+	  }
1225
+      }
1226
+   }
1227
+
1228
+   // List the whois data for the IPs that were banned more than once, in the appropriate paragraph of the email
1229
+   if (count($finwhoisdata) != 0) {
1230
+       $whoisdataforips = implode("<br><br>", $finwhoisdata);
1231
+
1232
+       $ipsbmrthrtms = "<br><br><b><h2>Information about the IPs that were banned more than once</h2></b><br>
1233
+	                If you consider sending abuse reports to the organizations that own the IPs that are currently banned and were also banned
1234
+	                at least once in the past, you can find draft emails under the 'whois' information for each IP, below:<br><br>" . $whoisdataforips;
1235
+
1236
+  } else { $ipsbmrthrtms = null; }
1237
+
1238
+  // Create the blocked IPs paragraph of the email
1239
+  $blockedipstable = implode("", $blockedipsrows);
1240
+  $getblockedips = "<ul><li style='color:#225aad;font-weight:700;'>The following IP addresses <u>are currently banned</u> by Fail2ban due to repeated failed log in
1241
+	            attempts against the services displayed in the 'Jail' column:</li><br><br>
1242
+	            <table bgcolor='#f1f9ff' border='1' style='border-collapse:collapse;' width='100%' cellpadding='2'>
1243
+	            <tr>
1244
+	            <th style='text-align:center;'>No.</th>
1245
+	            <th style='text-align:center;'>IP</th>
1246
+	            <th style='text-align:center;'>Jail</th>
1247
+	            <th style='text-align:center;'>First<br>Ban Date</th>
1248
+	            <th style='text-align:center;'>Last<br>Ban Date</th>
1249
+	            <th style='text-align:center;'>Days<br>between<br>first and<br>last ban</th>
1250
+	            <th style='text-align:center;'>Total Number<br>of Bans</th>
1251
+	            <th style='text-align:center;'>Total Number<br>of Emails<br>Automatically<br>Sent to ISP</th>
1252
+	            </tr>" . $blockedipstable . "</table>" . $ipsbmrthrtms . "</ul>";
1253
+
1254
+ } else { $getblockedips = null; }
1255
+
1256
+
1257
+ // Get the total free storage space (in kibibytes) and if it is below the threshold specified in the 'config' file (in kibibytes), include a warning in the email
1258
+ $freedisk = exec("df -x tmpfs --total | awk '{print $4}' | tail -1");
1259
+ $totalspace = exec("df -x tmpfs --total | awk '{print $2}' | tail -1");
1260
+ $freediskgb = round($freedisk / 1048576);
1261
+ $totaldiskgb = round($totalspace / 1048576);
1262
+
1263
+ if ($freedisk <= $diskthreshold){
1264
+     $diskwarn = "<ul><li style='color:#225aad;font-weight:700;'>The total free storage space on all partitions of your system is
1265
+	          (approximately): " . $freediskgb . " gibibytes from a total of " . $totaldiskgb . " gibibytes.</li> You may consider
1266
+	          removing unnecessary files and directories, optimizing data storage processes, upgrading your server's storage or upgrading your server.</ul><br><br>";
1267
+ } else { $diskwarn = null; }
1268
+
1269
+ // Include an info line about the free storage space in the email
1270
+ $infodisk = "• The total free storage space on all partitions of your system is (approximately): " . $freediskgb . " gibibytes from a total
1271
+	      of " . $totaldiskgb . " gibibytes.</b>";
1272
+
1273
+ // Get the system uptime and the average CPU load in the last 15 minutes
1274
+ $uptimeinit = exec("uptime | awk '{print $3,$4}'");
1275
+ $uptimesplit = explode(" ", $uptimeinit);
1276
+
1277
+ if ($uptimesplit[1] == 'days,') {
1278
+     $uptimefin = $uptimesplit[0] . " days.";
1279
+ } elseif ($uptimesplit[1] == 'min,') {
1280
+	   $uptimefin = $uptimesplit[0] . " min.";
1281
+ } elseif ($uptimesplit[1] == 'day,') {
1282
+	   $uptimefin = $uptimesplit[0] . " day.";
1283
+ } elseif (strpos($uptimeinit, ':') !== false) {
1284
+	          $uptimesec = explode(":", $uptimesplit[0]);
1285
+	          $uptimefin = $uptimesec[0] . " hours.";
1286
+ }
1287
+
1288
+ $updaystext = "• The system has been up for " . $uptimefin;
1289
+ $averageload = exec("awk '{print $3}'< /proc/loadavg");
1290
+ $cpunumber = exec("cat /proc/cpuinfo | awk '/^processor/{print $3}' | wc -l");
1291
+
1292
+ /**
1293
+  *  If the average CPU load in the last 15 minutes is greater than 1 x (the number of CPU's), or if there are any other problems detected,
1294
+  *  list the average load in a paragraph of the email
1295
+  */
1296
+ $sortedbanspans = sort($ipstimespans);
1297
+
1298
+ if ($averageload > $cpunumber) {
1299
+     $averageloadwarn = "<ul><li style='color:#225aad;font-weight:700;'>• The average CPU load in the last 15 minutes is: " . $averageload . "  (The average
1300
+	                 CPU load is considered high if it stays constantly over " . $cpunumber . " )</li></ul>";
1301
+   } else { $averageloadwarn = null; }
1302
+
1303
+ // Include an info line about the average CPU load in the last 15 minutes in the 'General System Information' paragraph of the email
1304
+ $averageloadgen = "• The average CPU load in the last 15 minutes is: " . $averageload . "  (The average CPU load is considered high only if it stays
1305
+	            constantly over " . $cpunumber . ")";
1306
+
1307
+ // Get the base64 encoded logo
1308
+ $base64Logo = file_get_contents(dirname(__FILE__) . "/img/base64LogoImg.txt");
1309
+
1310
+ // Create a boundary string for the email report
1311
+ $separator = bin2hex(openssl_random_pseudo_bytes(16));
1312
+
1313
+ // Set the email headers
1314
+ $headers = "MIME-Version: 1.0" . "\r\n";
1315
+ $headers .= "From: " . $emailsender . "\r\n";
1316
+ $headers .= "Return-Path: " . $emailsender . "\r\n";
1317
+ $headers .= "Reply-To: " . $emailsender . "\r\n";
1318
+
1319
+ $headers .= "Content-Type: multipart/related;" . "\r\n";
1320
+ $headers .= " boundary=------------". $separator . "\r\n";
1321
+ $headers .= "--------------". $separator . "\r\n";
1322
+ $headers .= "Content-Type: text/html; charset=UTF-8" . "\r\n";
1323
+ $headers .= "Content-Transfer-Encoding: 7bit" . "\r\n";
1324
+
1325
+ // Write the email to report the problems found
1326
+ $message = "
1327
+ <!DOCTYPE html>
1328
+ <html>
1329
+ <head>
1330
+ <title>System Health and Security Report</title>
1331
+ </head>
1332
+ <body bgcolor='#f1f9ff'>
1333
+ <div style='background-color:#f1f9ff;padding:4px 8px;'>
1334
+ <div style='display: block; margin: 6px auto; width: 229px; height: 170px;'><img src='cid:logo-". $separator ."'></div>
1335
+ <p>Hello,</p>
1336
+ <p>This is an automated message sent by System Health and Security Probe v. 1.0.0. Host: " . $nameofhost  . ".<br><br>
1337
+ System Health and Security Probe runs regularly and investigates if any service running on the server is in failed state, if ClamAV
1338
+ antivirus has detected any virus in the incoming emails or in the files uploaded to Nextcloud, if any IP address has been banned due to repeated
1339
+ failed log in attempts against one of the applications monitored by Fail2ban, if the free storage space on all partitions is under a certain
1340
+ threshold, and if the average CPU load in the last 15 minutes exceeds 100% utilization of all the CPU cores. <br><br>
1341
+ The problems currently detected are listed below:<br><br></p>
1342
+
1343
+ <p>$getfailedserv</p>
1344
+
1345
+ <p>$clamavperiodicdetect</p>
1346
+
1347
+ <p>$clamavdetections</p>
1348
+
1349
+ <p>$getblockedips</p>
1350
+
1351
+ <p>$diskwarn</p>
1352
+
1353
+ <p>$averageloadwarn</p>
1354
+
1355
+ <h4>General System Information:</h4>
1356
+
1357
+ <p>$infodisk</p>
1358
+
1359
+ <p>$averageloadgen</p>
1360
+
1361
+ <p>$updaystext</p>
1362
+
1363
+ <br>Yours,<br>
1364
+ System Health and Security Probe<br>
1365
+ Host: " . $nameofhost . "<br><br>
1366
+ </div>
1367
+ </body>
1368
+ </html>
1369
+--------------". $separator ."
1370
+Content-Type: image/svg+xml; name='k9zg7dfQsjhcrp1lr.svg'
1371
+Content-Disposition: inline; filename='k9zg7dfQsjhcrp1lr.svg'
1372
+Content-Id: <logo-". $separator .">
1373
+Content-Transfer-Encoding: base64
1374
+
1375
+". $base64Logo ."
1376
+
1377
+--------------". $separator ."--
1378
+
1379
+";
1380
+
1381
+ /**
1382
+  * Extract a fragment from the newly created email, excluding some elements which almost always change from one script run to the other. This fragment will be stored in the
1383
+  * database to be compared with every similar fragment in the future emails prepared to be sent. If the fragment in the new email is identical with the one stored in the
1384
+  * database, in certain situations the new message will not be sent because all the data it contains has been already included in the previous email(s). The new message will
1385
+  * be always sent if the average CPU load in the last 15 minutes exceeds 100% utilization of all the CPU cores, or if the free storage space is below the critical threshold.
1386
+  */
1387
+ $message_light = "
1388
+
1389
+ <p>$getfailedserv</p>
1390
+
1391
+ <p>$clamavperiodicdetect</p>
1392
+
1393
+ <p>$clamavdetections</p>
1394
+
1395
+ <p>$diskwarn</p>
1396
+
1397
+ <p>$averageloadwarn</p>
1398
+
1399
+ ";
1400
+
1401
+  $new_message_enc = base64_encode($message_light);
1402
+
1403
+  // Get the last sent email from the 'lastsentemail' table
1404
+  $getlsml = "SELECT id, old_message FROM lastsentemail WHERE id = 1;";
1405
+  $resgetlsml = $mysqli->query($getlsml);
1406
+  $resfetchlsml = $resgetlsml->fetch_array();
1407
+  $old_message_enc = $resfetchlsml[1];
1408
+
1409
+
1410
+ /**
1411
+  * Send the current email if any new IP has been banned since the last run, or if the average CPU load in the last 15 minutes exceeds 100% utilization of all the
1412
+  * CPU cores, or if the free storage space is below the critical threshold, or if ClamAV detected any viruses in emails or in the files uploaded to Nextcloud.
1413
+  * If the timespan between the last IP ban and the current time is longer than the run interval and the banned IPs are the only problem the system has, then the
1414
+  * email shouldn't be sent, because the report about all the currently banned IPs has been already sent on the previous script run.
1415
+  */
1416
+ if (($banipschck != 0) || ($averageload > $cpunumber) || ($freedisk <= $diskthreshold) || ($abreportsentcheck != 0) || ((strcmp($new_message_enc, $old_message_enc) !== 0) &&
1417
+    (($getfailedservtert[0] != 0) || (($nbinfctdflsmail != 0) && ($maildetlnbr_enc != $old_mailvirdetect_enc)) || (($nbinfctdflsnext != 0) &&
1418
+    ($nextdetlnbr_enc != $old_nextvirdetect_enc)) || (count($mailloglines) != 0) || (count($nextloglines) != 0) || ((count($jailsarr) != 0) && ($ipstimespans[0] <= $runinterval))))) {
1419
+
1420
+    mail($emailto, $subject, $message, $headers, "-f " . $emailsender . "");
1421
+
1422
+    // Store the 'light' version of the last sent email in the 'lastsentemail' table
1423
+    $nmid = 1;
1424
+    $rplnmenc = $mysqli->prepare("REPLACE INTO lastsentemail (id, old_message) VALUES (?, ?);");
1425
+    $rplnmenc->bind_param("is", $nmid, $new_message_enc);
1426
+    $rplnmenc->execute();
1427
+    $rplnmenc->close();
1428
+
1429
+    /**
1430
+     * From the email that has just been sent, take the log lines and report lines containing virus detections, take the last read log lines and store them
1431
+     * in the appropriate fields, in the 'sentreadlines' table
1432
+     */
1433
+    $strlglns = $mysqli->prepare("REPLACE INTO sentreadlines (id, mail_loglines, nextcloud_loglines, lastmailline, lastnextline, lastpersdetmail, lastpersdetnext) VALUES
1434
+	        (?, ?, ?, ?, ?, ?, ?);");
1435
+    $strlglns->bind_param("issssss", $nmid, $maildetections_enc, $newlastreadmailline, $nextdetections_enc, $newlastreadnextline, $maildetlnbr_enc, $nextdetlnbr_enc);
1436
+    $strlglns->execute();
1437
+    $strlglns->close();
1438
+ }
1439
+
1440
+  $getlsml = "SELECT id, old_message FROM lastsentemail WHERE id = 1;";
1441
+  $resgetlsml = $mysqli->query($getlsml);
1442
+  $resfetchlsml = $resgetlsml->fetch_array();
1443
+  $old_message_enc = $resfetchlsml[1];
1444
+
1445
+ // Update the last read log lines at every script run, even if the current email hasn't been sent because it was identical with the last sent one
1446
+ $chcklstl = "SELECT * FROM sentreadlines;";
1447
+ $reschcklstl = $mysqli->query($chcklstl);
1448
+ $fetchchcklstl = $reschcklstl->fetch_array();
1449
+
1450
+ if ($fetchchcklstl) {
1451
+     $lnid = 1;
1452
+     $upnlmnln = $mysqli->prepare("UPDATE sentreadlines SET lastmailline = ?, lastnextline = ? WHERE id = ?");
1453
+     $upnlmnln->bind_param("ssi", $newlastreadmailline, $newlastreadnextline, $lnid);
1454
+     $upnlmnln->execute();
1455
+     $upnlmnln->close();
1456
+ }
1457
+
1458
+ /**
1459
+  * If the 'bannedipstable' table has more than 100000000 rows, first backup the current database, then remove the first 5000000 rows, so as to avoid working with an
1460
+  * excessively large database. If you want to save the backup in a directory different from '/srv/shas-probe-db-backup', then specify it in the 'config' file, in the
1461
+  * $backup_directory parameter
1462
+  */
1463
+ $bptcount = "SELECT COUNT(id) FROM bannedipstable";
1464
+ $resbptcount = $mysqli->query($bptcount);
1465
+ $fetchbpt = $resbptcount->fetch_array();
1466
+ $rownb = $fetchbpt[0];
1467
+
1468
+ if ($rownb > 100000000) {
1469
+
1470
+     $date2 = date("Y-m-d");
1471
+
1472
+     if (!is_dir($backupdirectory)) {
1473
+	 exec("mkdir -p " . $backupdirectory);
1474
+     }
1475
+
1476
+     $backupname = "bannedipsdb-" . $date2 . ".sql";
1477
+
1478
+     $dbbackup =  'mysqldump --user=' . $bannedipsuser . ' --password=' . $bannedipspswd . ' --databases ' . $bannedipsdb . ' > ' . $backupdirectory . '/' . $backupname . '';
1479
+     $runcommand = exec($dbbackup);
1480
+
1481
+     $dlrows = "DELETE FROM bannedipstable ORDER BY id ASC limit 5000000";
1482
+     $resdlrows = $mysqli->query($dlrows);
1483
+ }
1484
+
1485
+} else { exit("Error. No configuration file."); }
1486
+
1487
+?>