@networkpro/blog 1.0.5 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/2015/01/04/secure-secure-shell/index.html +1552 -0
  2. package/2025/04/30/were-live/index.html +1220 -0
  3. package/2025/05/11/the-network-pro-blog-has-moved/index.html +1202 -0
  4. package/2025/05/15/building-a-better-web-experience/index.html +1200 -0
  5. package/2025/05/16/progressive-web-app-is-live/index.html +1234 -0
  6. package/2025/05/26/welcome-to-the-future-of-network-pro/index.html +1202 -0
  7. package/404.html +970 -0
  8. package/archive/2015/index.html +1141 -0
  9. package/archive/2025/index.html +1379 -0
  10. package/assets/external/avatars.githubusercontent.com/u/170266279.png +0 -0
  11. package/assets/external/unpkg.com/mermaid@11/dist/mermaid.min.js +2607 -0
  12. package/assets/images/favicon.png +0 -0
  13. package/assets/javascripts/bundle.13a4f30d.min.js +16 -0
  14. package/assets/javascripts/bundle.13a4f30d.min.js.map +7 -0
  15. package/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
  16. package/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
  17. package/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
  18. package/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
  19. package/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
  20. package/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
  21. package/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
  22. package/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
  23. package/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
  24. package/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
  25. package/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
  26. package/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
  27. package/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
  28. package/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
  29. package/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
  30. package/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
  31. package/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
  32. package/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
  33. package/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
  34. package/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
  35. package/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
  36. package/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
  37. package/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
  38. package/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
  39. package/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
  40. package/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
  41. package/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
  42. package/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
  43. package/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
  44. package/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
  45. package/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
  46. package/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
  47. package/assets/javascripts/lunr/tinyseg.js +206 -0
  48. package/assets/javascripts/lunr/wordcut.js +6708 -0
  49. package/assets/javascripts/workers/search.d50fe291.min.js +42 -0
  50. package/assets/javascripts/workers/search.d50fe291.min.js.map +7 -0
  51. package/assets/stylesheets/main.342714a4.min.css +1 -0
  52. package/assets/stylesheets/main.342714a4.min.css.map +1 -0
  53. package/assets/stylesheets/palette.06af60db.min.css +1 -0
  54. package/assets/stylesheets/palette.06af60db.min.css.map +1 -0
  55. package/category/security/index.html +1141 -0
  56. package/contributing/index.html +1306 -0
  57. package/feed_json_created.json +1 -0
  58. package/feed_json_updated.json +1 -0
  59. package/feed_rss_created.xml +1 -0
  60. package/feed_rss_updated.xml +1 -0
  61. package/index.html +1461 -0
  62. package/package.json +1 -1
  63. package/search/search_index.json +1 -0
  64. package/sitemap.xml +51 -0
  65. package/sitemap.xml.gz +0 -0
  66. package/tags/index.html +1450 -0
  67. package/.browserslistrc +0 -12
  68. package/.editorconfig +0 -60
  69. package/.gitattributes +0 -199
  70. package/.github/workflows/auto-assign.yml +0 -32
  71. package/.github/workflows/build-and-deploy.yml +0 -117
  72. package/.github/workflows/dependency-review.yml +0 -20
  73. package/.github/workflows/publish.yml +0 -143
  74. package/.markdownlint.jsonc +0 -19
  75. package/.prettierignore +0 -38
  76. package/.prettierrc +0 -20
  77. package/.stylelintignore +0 -34
  78. package/.vscode/settings.json +0 -81
  79. package/CNAME +0 -1
  80. package/LICENSE.md +0 -265
  81. package/MKDOCS.md +0 -20
  82. package/assets/.gitkeep +0 -0
  83. package/assets/consulting-terms.pdf +0 -0
  84. package/assets/license/CC-BY-4.0-rdfa.xml +0 -741
  85. package/assets/license/CC-BY-4.0.xml +0 -25
  86. package/assets/license/COPYING-rdfa.xml +0 -1187
  87. package/assets/license/COPYING.odt +0 -0
  88. package/assets/linksheet.json +0 -8
  89. package/assets/pgp/contact.vcf +0 -13
  90. package/assets/pgp/contact@s.neteng.pro.aexpk +0 -17
  91. package/assets/pgp/contact@s.neteng.pro.asc +0 -17
  92. package/assets/pgp/github@sl.neteng.cc.aexpk +0 -29
  93. package/assets/pgp/github@sl.neteng.cc.asc +0 -29
  94. package/assets/pgp/support@neteng.pro.aexpk +0 -47
  95. package/assets/pgp/support@neteng.pro.asc +0 -47
  96. package/docs/LICENSE.md +0 -296
  97. package/docs/PRIVACY.md +0 -212
  98. package/docs/README.md +0 -115
  99. package/docs/TERMS-COND.md +0 -277
  100. package/docs/TERMS-USE.md +0 -212
  101. package/docs/license/CC-BY-4.0.html +0 -1235
  102. package/docs/license/CC-BY-4.0.md +0 -367
  103. package/docs/license/CC-BY-4.0.txt +0 -156
  104. package/docs/license/COPYING.html +0 -1413
  105. package/docs/license/COPYING.md +0 -611
  106. package/docs/license/COPYING.txt +0 -232
  107. package/docs_raw/.authors.yml +0 -11
  108. package/docs_raw/contributing.md +0 -166
  109. package/docs_raw/index.md +0 -28
  110. package/docs_raw/posts/betterweb.md +0 -59
  111. package/docs_raw/posts/drafts/.meta.yml +0 -1
  112. package/docs_raw/posts/live.md +0 -83
  113. package/docs_raw/posts/moved.md +0 -74
  114. package/docs_raw/posts/pwa.md +0 -65
  115. package/docs_raw/posts/secure-secure-shell.md +0 -561
  116. package/docs_raw/sitemap.xml +0 -83
  117. package/docs_raw/tags.md +0 -12
  118. package/eslint.config.mjs +0 -80
  119. package/mkdocs.yml +0 -115
  120. package/postcss.config.mjs +0 -5
  121. package/ref/README.md +0 -56
  122. package/ref/help.md +0 -17
  123. package/stylelint.config.js +0 -109
  124. /package/assets/{nsa-happy-dance.png → external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/nsa-happy-dance.png} +0 -0
  125. /package/{docs_raw/ext → ext}/__init__.py +0 -0
  126. /package/{docs_raw/ext → ext}/slugs.py +0 -0
  127. /package/{docs_raw/favicon.ico → favicon.ico} +0 -0
  128. /package/{docs_raw/favicon.svg → favicon.svg} +0 -0
  129. /package/{docs_raw/fontawesome → fontawesome}/LICENSE.txt +0 -0
  130. /package/{docs_raw/fontawesome → fontawesome}/brands/facebook.svg +0 -0
  131. /package/{docs_raw/fontawesome → fontawesome}/brands/instagram.svg +0 -0
  132. /package/{docs_raw/fontawesome → fontawesome}/brands/linkedin.svg +0 -0
  133. /package/{docs_raw/fontawesome → fontawesome}/brands/mastodon.svg +0 -0
  134. /package/{docs_raw/fontawesome → fontawesome}/solid/at.svg +0 -0
  135. /package/{docs_raw/hooks → hooks}/socialmedia.py +0 -0
  136. /package/{docs_raw/icon-180x180.png → icon-180x180.png} +0 -0
  137. /package/{docs_raw/icon-192x192.png → icon-192x192.png} +0 -0
  138. /package/{docs_raw/icon-512x512-maskable.png → icon-512x512-maskable.png} +0 -0
  139. /package/{docs_raw/icon-512x512.png → icon-512x512.png} +0 -0
  140. /package/{docs_raw/icon-splash.png → icon-splash.png} +0 -0
  141. /package/{docs_raw/img → img}/acode.png +0 -0
  142. /package/{docs_raw/img → img}/blog-move.png +0 -0
  143. /package/{docs_raw/img → img}/favicon.png +0 -0
  144. /package/{docs_raw/img → img}/linksheet.png +0 -0
  145. /package/{docs_raw/img → img}/logo.png +0 -0
  146. /package/{docs_raw/img → img}/pmx.png +0 -0
  147. /package/{docs_raw/img → img}/tosdr.png +0 -0
  148. /package/{docs_raw/img → img}/urlcheck.png +0 -0
  149. /package/{docs_raw/manifest.json → manifest.json} +0 -0
  150. /package/{docs_raw/robots.txt → robots.txt} +0 -0
  151. /package/{docs_raw/styles → styles}/default.css +0 -0
  152. /package/{docs_raw/styles → styles}/global.css +0 -0
  153. /package/{docs_raw/styles → styles}/normalize.css +0 -0
  154. /package/{docs_raw/styles → styles}/style.css +0 -0
@@ -0,0 +1,1202 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en" class="no-js">
4
+ <head>
5
+
6
+ <meta charset="utf-8">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
+
9
+
10
+
11
+ <link rel="canonical" href="https://blog.netwk.pro/2025/05/26/welcome-to-the-future-of-network-pro/">
12
+
13
+
14
+ <link rel="prev" href="../../16/progressive-web-app-is-live/">
15
+
16
+
17
+
18
+ <link rel="alternate" type="application/rss+xml" title="RSS feed" href="../../../../feed_rss_created.xml">
19
+ <link rel="alternate" type="application/rss+xml" title="RSS feed of updated content" href="../../../../feed_rss_updated.xml">
20
+
21
+ <link rel="icon" href="/favicon.svg">
22
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.14">
23
+
24
+
25
+
26
+ <title>Welcome to the Future of Network Pro™ - Network Pro™ Blog</title>
27
+
28
+
29
+
30
+ <link rel="stylesheet" href="../../../../assets/stylesheets/main.342714a4.min.css">
31
+
32
+
33
+ <link rel="stylesheet" href="../../../../assets/stylesheets/palette.06af60db.min.css">
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+ <script>__md_scope=new URL("../../../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
47
+
48
+
49
+
50
+
51
+
52
+
53
+ </head>
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+ <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="amber" data-md-color-accent="yellow">
64
+
65
+
66
+ <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
67
+ <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
68
+ <label class="md-overlay" for="__drawer"></label>
69
+ <div data-md-component="skip">
70
+
71
+
72
+ <a href="#our-new-web-experience-is-live-welcome-to-the-future-of-network-protm" class="md-skip">
73
+ Skip to content
74
+ </a>
75
+
76
+ </div>
77
+ <div data-md-component="announce">
78
+
79
+ </div>
80
+
81
+
82
+
83
+
84
+ <header class="md-header" data-md-component="header">
85
+ <nav class="md-header__inner md-grid" aria-label="Header">
86
+ <a href="../../../.." title="Network Pro™ Blog" class="md-header__button md-logo" aria-label="Network Pro™ Blog" data-md-component="logo">
87
+
88
+ <img src="/icon-512x512.png" alt="logo">
89
+
90
+ </a>
91
+ <label class="md-header__button md-icon" for="__drawer">
92
+
93
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
94
+ </label>
95
+ <div class="md-header__title" data-md-component="header-title">
96
+ <div class="md-header__ellipsis">
97
+ <div class="md-header__topic">
98
+ <span class="md-ellipsis">
99
+ Network Pro™ Blog
100
+ </span>
101
+ </div>
102
+ <div class="md-header__topic" data-md-component="header-topic">
103
+ <span class="md-ellipsis">
104
+
105
+ Welcome to the Future of Network Pro™
106
+
107
+ </span>
108
+ </div>
109
+ </div>
110
+ </div>
111
+
112
+
113
+ <form class="md-header__option" data-md-component="palette">
114
+
115
+
116
+
117
+
118
+ <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="amber" data-md-color-accent="yellow" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
119
+
120
+ <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
121
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m14.3 16-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zm-9.15 3.96h2.3L12 9z"/></svg>
122
+ </label>
123
+
124
+
125
+
126
+
127
+
128
+ <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="amber" data-md-color-accent="yellow" aria-label="Switch to system preference" type="radio" name="__palette" id="__palette_1">
129
+
130
+ <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_2" hidden>
131
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
132
+ </label>
133
+
134
+
135
+
136
+
137
+
138
+ <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="amber" data-md-color-accent="yellow" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_2">
139
+
140
+ <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_0" hidden>
141
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
142
+ </label>
143
+
144
+
145
+ </form>
146
+
147
+
148
+
149
+ <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
150
+
151
+
152
+
153
+
154
+
155
+ <label class="md-header__button md-icon" for="__search">
156
+
157
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
158
+ </label>
159
+ <div class="md-search" data-md-component="search" role="dialog">
160
+ <label class="md-search__overlay" for="__search"></label>
161
+ <div class="md-search__inner" role="search">
162
+ <form class="md-search__form" name="search">
163
+ <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
164
+ <label class="md-search__icon md-icon" for="__search">
165
+
166
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
167
+
168
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
169
+ </label>
170
+ <nav class="md-search__options" aria-label="Search">
171
+
172
+ <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
173
+
174
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
175
+ </button>
176
+ </nav>
177
+
178
+ <div class="md-search__suggest" data-md-component="search-suggest"></div>
179
+
180
+ </form>
181
+ <div class="md-search__output">
182
+ <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
183
+ <div class="md-search-result" data-md-component="search-result">
184
+ <div class="md-search-result__meta">
185
+ Initializing search
186
+ </div>
187
+ <ol class="md-search-result__list" role="presentation"></ol>
188
+ </div>
189
+ </div>
190
+ </div>
191
+ </div>
192
+ </div>
193
+
194
+
195
+
196
+ <div class="md-header__source">
197
+ <a href="https://github.com/netwk-pro/netwk-pro.github.io" title="Go to repository" class="md-source" data-md-component="source">
198
+ <div class="md-source__icon md-icon">
199
+
200
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
201
+ </div>
202
+ <div class="md-source__repository">
203
+ GitHub
204
+ </div>
205
+ </a>
206
+ </div>
207
+
208
+ </nav>
209
+
210
+ </header>
211
+
212
+ <div class="md-container" data-md-component="container">
213
+
214
+
215
+
216
+
217
+
218
+ <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
219
+ <div class="md-grid">
220
+ <ul class="md-tabs__list">
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+ <li class="md-tabs__item md-tabs__item--active">
230
+ <a href="../../../.." class="md-tabs__link">
231
+
232
+
233
+
234
+
235
+
236
+ Home
237
+
238
+ </a>
239
+ </li>
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+ <li class="md-tabs__item">
251
+ <a href="../../../../contributing/" class="md-tabs__link">
252
+
253
+
254
+
255
+
256
+
257
+ Contributing
258
+
259
+ </a>
260
+ </li>
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+ <li class="md-tabs__item">
273
+ <a href="../../../../tags/" class="md-tabs__link">
274
+
275
+
276
+
277
+
278
+
279
+ Tags
280
+
281
+ </a>
282
+ </li>
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+ <li class="md-tabs__item">
293
+ <a href="https://netwk.pro" class="md-tabs__link">
294
+
295
+
296
+
297
+
298
+
299
+ Website
300
+
301
+ </a>
302
+ </li>
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+ <li class="md-tabs__item">
314
+ <a href="../../../../archive/2025/" class="md-tabs__link">
315
+
316
+
317
+
318
+
319
+
320
+ Archive
321
+
322
+ </a>
323
+ </li>
324
+
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+ <li class="md-tabs__item">
336
+ <a href="../../../../category/security/" class="md-tabs__link">
337
+
338
+
339
+
340
+
341
+
342
+ Categories
343
+
344
+ </a>
345
+ </li>
346
+
347
+
348
+
349
+
350
+ </ul>
351
+ </div>
352
+ </nav>
353
+
354
+
355
+
356
+ <main class="md-main" data-md-component="main">
357
+ <div class="md-main__inner md-grid">
358
+
359
+
360
+
361
+
362
+
363
+ <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" hidden>
364
+ <div class="md-sidebar__scrollwrap">
365
+ <div class="md-sidebar__inner">
366
+
367
+
368
+
369
+
370
+
371
+
372
+ <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
373
+ <label class="md-nav__title" for="__drawer">
374
+ <a href="../../../.." title="Network Pro™ Blog" class="md-nav__button md-logo" aria-label="Network Pro™ Blog" data-md-component="logo">
375
+
376
+ <img src="/icon-512x512.png" alt="logo">
377
+
378
+ </a>
379
+ Network Pro™ Blog
380
+ </label>
381
+
382
+ <div class="md-nav__source">
383
+ <a href="https://github.com/netwk-pro/netwk-pro.github.io" title="Go to repository" class="md-source" data-md-component="source">
384
+ <div class="md-source__icon md-icon">
385
+
386
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
387
+ </div>
388
+ <div class="md-source__repository">
389
+ GitHub
390
+ </div>
391
+ </a>
392
+ </div>
393
+
394
+ <ul class="md-nav__list" data-md-scrollfix>
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+ <li class="md-nav__item md-nav__item--active">
407
+ <a href="../../../.." class="md-nav__link">
408
+
409
+
410
+
411
+ <span class="md-ellipsis">
412
+ Home
413
+
414
+ </span>
415
+
416
+
417
+ </a>
418
+ </li>
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+
431
+
432
+
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+ <li class="md-nav__item md-nav__item--nested">
441
+
442
+
443
+
444
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
445
+
446
+
447
+ <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
448
+
449
+
450
+
451
+ <span class="md-ellipsis">
452
+ Contributing
453
+
454
+ </span>
455
+
456
+
457
+ <span class="md-nav__icon md-icon"></span>
458
+ </label>
459
+
460
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
461
+ <label class="md-nav__title" for="__nav_2">
462
+ <span class="md-nav__icon md-icon"></span>
463
+ Contributing
464
+ </label>
465
+ <ul class="md-nav__list" data-md-scrollfix>
466
+
467
+
468
+
469
+
470
+
471
+
472
+
473
+ <li class="md-nav__item">
474
+ <a href="../../../../contributing/" class="md-nav__link">
475
+
476
+
477
+
478
+ <span class="md-ellipsis">
479
+ Code of Conduct
480
+
481
+ </span>
482
+
483
+
484
+ </a>
485
+ </li>
486
+
487
+
488
+
489
+
490
+ </ul>
491
+ </nav>
492
+
493
+ </li>
494
+
495
+
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+
513
+
514
+
515
+ <li class="md-nav__item md-nav__item--nested">
516
+
517
+
518
+
519
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
520
+
521
+
522
+ <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
523
+
524
+
525
+
526
+ <span class="md-ellipsis">
527
+ Tags
528
+
529
+ </span>
530
+
531
+
532
+ <span class="md-nav__icon md-icon"></span>
533
+ </label>
534
+
535
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
536
+ <label class="md-nav__title" for="__nav_3">
537
+ <span class="md-nav__icon md-icon"></span>
538
+ Tags
539
+ </label>
540
+ <ul class="md-nav__list" data-md-scrollfix>
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+ <li class="md-nav__item">
549
+ <a href="../../../../tags/" class="md-nav__link">
550
+
551
+
552
+
553
+ <span class="md-ellipsis">
554
+ Tag Index
555
+
556
+ </span>
557
+
558
+
559
+ </a>
560
+ </li>
561
+
562
+
563
+
564
+
565
+ </ul>
566
+ </nav>
567
+
568
+ </li>
569
+
570
+
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+ <li class="md-nav__item">
579
+ <a href="https://netwk.pro" class="md-nav__link">
580
+
581
+
582
+
583
+ <span class="md-ellipsis">
584
+ Website
585
+
586
+ </span>
587
+
588
+
589
+ </a>
590
+ </li>
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+ <li class="md-nav__item md-nav__item--nested">
615
+
616
+
617
+
618
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
619
+
620
+
621
+ <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
622
+
623
+
624
+
625
+ <span class="md-ellipsis">
626
+ Archive
627
+
628
+ </span>
629
+
630
+
631
+ <span class="md-nav__icon md-icon"></span>
632
+ </label>
633
+
634
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
635
+ <label class="md-nav__title" for="__nav_5">
636
+ <span class="md-nav__icon md-icon"></span>
637
+ Archive
638
+ </label>
639
+ <ul class="md-nav__list" data-md-scrollfix>
640
+
641
+
642
+
643
+
644
+
645
+
646
+
647
+
648
+
649
+ <li class="md-nav__item">
650
+ <a href="../../../../archive/2025/" class="md-nav__link">
651
+
652
+
653
+
654
+ <span class="md-ellipsis">
655
+ May 2025
656
+
657
+ </span>
658
+
659
+
660
+ </a>
661
+ </li>
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+ <li class="md-nav__item">
675
+ <a href="../../../../archive/2015/" class="md-nav__link">
676
+
677
+
678
+
679
+ <span class="md-ellipsis">
680
+ January 2015
681
+
682
+ </span>
683
+
684
+
685
+ </a>
686
+ </li>
687
+
688
+
689
+
690
+
691
+ </ul>
692
+ </nav>
693
+
694
+ </li>
695
+
696
+
697
+
698
+
699
+
700
+
701
+
702
+
703
+
704
+
705
+
706
+
707
+
708
+
709
+
710
+
711
+
712
+
713
+
714
+
715
+
716
+ <li class="md-nav__item md-nav__item--nested">
717
+
718
+
719
+
720
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
721
+
722
+
723
+ <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
724
+
725
+
726
+
727
+ <span class="md-ellipsis">
728
+ Categories
729
+
730
+ </span>
731
+
732
+
733
+ <span class="md-nav__icon md-icon"></span>
734
+ </label>
735
+
736
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
737
+ <label class="md-nav__title" for="__nav_6">
738
+ <span class="md-nav__icon md-icon"></span>
739
+ Categories
740
+ </label>
741
+ <ul class="md-nav__list" data-md-scrollfix>
742
+
743
+
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+ <li class="md-nav__item">
752
+ <a href="../../../../category/security/" class="md-nav__link">
753
+
754
+
755
+
756
+ <span class="md-ellipsis">
757
+ Security
758
+
759
+ </span>
760
+
761
+
762
+ </a>
763
+ </li>
764
+
765
+
766
+
767
+
768
+ </ul>
769
+ </nav>
770
+
771
+ </li>
772
+
773
+
774
+
775
+ </ul>
776
+ </nav>
777
+ </div>
778
+ </div>
779
+ </div>
780
+
781
+
782
+
783
+
784
+
785
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
786
+ <div class="md-sidebar__scrollwrap">
787
+ <div class="md-sidebar__inner">
788
+
789
+
790
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
791
+
792
+
793
+
794
+
795
+
796
+
797
+ <label class="md-nav__title" for="__toc">
798
+ <span class="md-nav__icon md-icon"></span>
799
+ Table of contents
800
+ </label>
801
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
802
+
803
+ <li class="md-nav__item">
804
+ <a href="#the-next-chapter-of-our-web-evolution-has-arrived" class="md-nav__link">
805
+ <span class="md-ellipsis">
806
+ 🚀 The Next Chapter of Our Web Evolution Has Arrived
807
+ </span>
808
+ </a>
809
+
810
+ </li>
811
+
812
+ <li class="md-nav__item">
813
+ <a href="#a-seamless-future-ready-experience" class="md-nav__link">
814
+ <span class="md-ellipsis">
815
+ 🔍 A Seamless, Future-Ready Experience
816
+ </span>
817
+ </a>
818
+
819
+ <nav class="md-nav" aria-label="🔍 A Seamless, Future-Ready Experience">
820
+ <ul class="md-nav__list">
821
+
822
+ <li class="md-nav__item">
823
+ <a href="#whats-new" class="md-nav__link">
824
+ <span class="md-ellipsis">
825
+ What’s New:
826
+ </span>
827
+ </a>
828
+
829
+ </li>
830
+
831
+ </ul>
832
+ </nav>
833
+
834
+ </li>
835
+
836
+ <li class="md-nav__item">
837
+ <a href="#why-we-made-this-change" class="md-nav__link">
838
+ <span class="md-ellipsis">
839
+ 🎯 Why We Made This Change
840
+ </span>
841
+ </a>
842
+
843
+ </li>
844
+
845
+ <li class="md-nav__item">
846
+ <a href="#check-out-the-new-site" class="md-nav__link">
847
+ <span class="md-ellipsis">
848
+ 📣 Check Out the New Site
849
+ </span>
850
+ </a>
851
+
852
+ </li>
853
+
854
+ </ul>
855
+
856
+ </nav>
857
+ </div>
858
+ </div>
859
+ </div>
860
+
861
+
862
+
863
+ <div class="md-content md-content--post" data-md-component="content">
864
+ <div class="md-sidebar md-sidebar--post" data-md-component="sidebar" data-md-type="navigation">
865
+ <div class="md-sidebar__scrollwrap">
866
+ <div class="md-sidebar__inner md-post">
867
+ <nav class="md-nav md-nav--primary">
868
+ <div class="md-post__back">
869
+ <div class="md-nav__title md-nav__container">
870
+ <a href="../../../.." class="md-nav__link">
871
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
872
+ <span class="md-ellipsis">
873
+ Back to index
874
+ </span>
875
+ </a>
876
+ </div>
877
+ </div>
878
+
879
+ <div class="md-post__authors md-typeset">
880
+
881
+ <div class="md-profile md-post__profile">
882
+ <span class="md-author md-author--long">
883
+ <img src="../../../../assets/external/avatars.githubusercontent.com/u/170266279.png" alt="Network Pro">
884
+ </span>
885
+ <span class="md-profile__description">
886
+ <strong>
887
+
888
+ <a href="https://netwk.pro/">Network Pro</a>
889
+
890
+ </strong>
891
+ <br>
892
+ Creator
893
+ </span>
894
+ </div>
895
+
896
+ </div>
897
+
898
+ <ul class="md-post__meta md-nav__list">
899
+ <li class="md-nav__item md-nav__item--section">
900
+ <div class="md-post__title">
901
+ <span class="md-ellipsis">
902
+ Metadata
903
+ </span>
904
+ </div>
905
+ <nav class="md-nav">
906
+ <ul class="md-nav__list">
907
+ <li class="md-nav__item">
908
+ <div class="md-nav__link">
909
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1m-1 11h-5v5h5z"/></svg>
910
+ <time datetime="2025-05-26 00:00:00+00:00" class="md-ellipsis">May 26, 2025</time>
911
+ </div>
912
+ </li>
913
+
914
+
915
+
916
+
917
+ <li class="md-nav__item">
918
+ <div class="md-nav__link">
919
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 20a8 8 0 0 0 8-8 8 8 0 0 0-8-8 8 8 0 0 0-8 8 8 8 0 0 0 8 8m0-18a10 10 0 0 1 10 10 10 10 0 0 1-10 10C6.47 22 2 17.5 2 12A10 10 0 0 1 12 2m.5 5v5.25l4.5 2.67-.75 1.23L11 13V7z"/></svg>
920
+ <span class="md-ellipsis">
921
+
922
+ 2 min read
923
+
924
+ </span>
925
+ </div>
926
+ </li>
927
+
928
+ </ul>
929
+ </nav>
930
+ </li>
931
+ </ul>
932
+
933
+ </nav>
934
+
935
+ </div>
936
+ </div>
937
+ </div>
938
+ <article class="md-content__inner md-typeset">
939
+
940
+
941
+
942
+
943
+
944
+ <nav class="md-tags" >
945
+
946
+
947
+
948
+
949
+ <a href="../../../../tags/#tag:network-pro" class="md-tag">network-pro</a>
950
+
951
+
952
+
953
+
954
+
955
+ <a href="../../../../tags/#tag:sveltekit" class="md-tag">sveltekit</a>
956
+
957
+
958
+
959
+
960
+
961
+ <a href="../../../../tags/#tag:website" class="md-tag">website</a>
962
+
963
+
964
+ </nav>
965
+
966
+
967
+
968
+
969
+
970
+
971
+ <h1 id="our-new-web-experience-is-live-welcome-to-the-future-of-network-protm">🌐 Our New Web Experience Is Live — Welcome to the Future of Network Pro™</h1>
972
+ <h2 id="the-next-chapter-of-our-web-evolution-has-arrived">🚀 The Next Chapter of Our Web Evolution Has Arrived</h2>
973
+ <p>We’re thrilled to announce that the new version of our website is officially live and ready for you to explore! At <strong>Network Pro Strategies</strong>, we've been working diligently to bring you an even faster, smoother, and more intuitive online experience, and we’re excited to finally unveil it. 🎉</p>
974
+ <h2 id="a-seamless-future-ready-experience">🔍 A Seamless, Future-Ready Experience</h2>
975
+ <p>As you already know, we’ve rebuilt the entire site using <a href="https://svelte.dev/docs/kit/introduction">SvelteKit</a>, and we’re proud of the results. Thanks to the incredible capabilities of SvelteKit, the site is now optimized for both performance and user experience—delivering lightning-fast load times and easy navigation at every click.</p>
976
+ <!-- more -->
977
+
978
+ <!-- markdownlint-disable MD026 -->
979
+
980
+ <h3 id="whats-new">What’s New:</h3>
981
+ <!-- markdownlint-enable MD026 -->
982
+
983
+ <p>💨 <strong>Super-Fast Load Times</strong>: Say goodbye to slow page loads! The website now loads instantly, even on mobile devices or less-than-ideal internet connections.<br />
984
+ 🌍 <strong>Enhanced Navigation</strong>: Enjoy a fluid, seamless browsing experience. Every interaction feels natural and responsive, making it easier to access information and services.<br />
985
+ 📱 <strong>Mobile-Friendly Design</strong>: Whether you're browsing from your desktop or on-the-go, our website adapts to every screen size and device with perfect precision.<br />
986
+ 🔧 <strong>Ongoing Improvements</strong>: The work doesn’t stop here. As we continue to evolve, we’ll be rolling out even more features and updates, all designed to make your experience even better. Stay tuned for personalized content and enhanced functionalities!</p>
987
+ <h2 id="why-we-made-this-change">🎯 Why We Made This Change</h2>
988
+ <p>We’re always striving to improve, and upgrading our web experience is part of our ongoing commitment to you—our valued community. By using <strong>SvelteKit</strong>, we’ve ensured that our site isn’t just faster, but also future-proof, allowing us to continuously evolve with cutting-edge web technologies.</p>
989
+ <p>It’s about providing you with the best tools and information in the most efficient and user-friendly way possible. This isn’t just about looks—this is about optimizing performance, improving accessibility, and ensuring that our website works better for you in every possible way.</p>
990
+ <h2 id="check-out-the-new-site">📣 Check Out the New Site</h2>
991
+ <p>Ready to experience the future? Head over to our new site now at <a href="https://netwk.pro">netwk.pro</a> to explore all the new features.</p>
992
+ <p>Your feedback matters to us—if you have any suggestions or thoughts on how we can continue to improve, don’t hesitate to get in touch!</p>
993
+ <p>Thanks for being part of the journey with us. The best is yet to come! 🚀</p>
994
+ <p>&nbsp;</p>
995
+ <p><strong>Network Pro™</strong> | <em>Cybersecurity that respects your values.</em></p>
996
+ <hr />
997
+ <div style="font-size: 12px; text-align: center;">
998
+
999
+ <p>Network Pro&trade;, the shield logo, and the "Locking Down Networks&trade;" slogan are <a href="https://netwk.pro/license#trademark" target="_self">trademarks</a> of Network Pro Strategies.</p>
1000
+
1001
+ <p>Licensed under <a href="https://netwk.pro/license#cc-by" target="_self"><strong>CC BY 4.0</strong></a> and the <a href="https://netwk.pro/license#gnu-gpl" target="_self"><strong>GNU GPL</strong></a>, as published by the <a rel="noopener noreferrer" href="https://fsf.org" target="_blank">Free Software Foundation</a>, either version 3 of the License, or (at your option) any later version.</p>
1002
+
1003
+ </div>
1004
+
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+
1020
+
1021
+
1022
+ </article>
1023
+ </div>
1024
+
1025
+
1026
+ <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
1027
+ </div>
1028
+
1029
+ <button type="button" class="md-top md-icon" data-md-component="top" hidden>
1030
+
1031
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
1032
+ Back to top
1033
+ </button>
1034
+
1035
+ </main>
1036
+
1037
+ <footer class="md-footer">
1038
+
1039
+ <div class="md-footer-meta md-typeset">
1040
+ <div class="md-footer-meta__inner md-grid">
1041
+ <div class="md-copyright">
1042
+
1043
+ <div class="md-copyright__highlight">
1044
+ Copyright &copy; 2025 Network Pro Strategies (Network Pro&trade;) – <a href="#__consent">Change cookie settings</a>
1045
+
1046
+ </div>
1047
+
1048
+
1049
+ Made with
1050
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1051
+ Material for MkDocs
1052
+ </a>
1053
+
1054
+ </div>
1055
+
1056
+ <div class="md-social">
1057
+
1058
+
1059
+
1060
+
1061
+
1062
+ <a href="https://instagram.com/netwk_pro/" target="_blank" rel="noopener" title="Network Pro on Instagram" class="md-social__link">
1063
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141m0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7m146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8m76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8M398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1"/></svg>
1064
+ </a>
1065
+
1066
+
1067
+
1068
+
1069
+
1070
+ <a href="https://facebook.com/neteng.pro/" target="_blank" rel="noopener" title="Network Pro on Facebook" class="md-social__link">
1071
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256c0 120 82.7 220.8 194.2 248.5V334.2h-52.8V256h52.8v-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287v175.9C413.8 494.8 512 386.9 512 256"/></svg>
1072
+ </a>
1073
+
1074
+
1075
+
1076
+
1077
+
1078
+ <a href="https://linkedin.com/company/netwk-pro/" target="_blank" rel="noopener" title="Network Pro on LinkedIn" class="md-social__link">
1079
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3M135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5m282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9z"/></svg>
1080
+ </a>
1081
+
1082
+
1083
+
1084
+
1085
+
1086
+
1087
+
1088
+ <a href="https://noc.social/@neteng_pro/" target="_blank" rel="noopener me" title="Network Pro on Mastoon" class="md-social__link">
1089
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"/></svg>
1090
+ </a>
1091
+
1092
+
1093
+
1094
+
1095
+
1096
+ <a href="https://contact.neteng.pro/" target="_blank" rel="noopener" title="Contact Us" class="md-social__link">
1097
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0s256 114.6 256 256v32c0 53-43 96-96 96-29.3 0-55.6-13.2-73.2-33.9-22.8 21-53.3 33.9-86.8 33.9-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1 5.7-5 13.1-8.1 21.3-8.1 17.7 0 32 14.3 32 32v112c0 17.7 14.3 32 32 32s32-14.3 32-32v-32c0-106-86-192-192-192m64 192a64 64 0 1 0-128 0 64 64 0 1 0 128 0"/></svg>
1098
+ </a>
1099
+
1100
+ </div>
1101
+
1102
+ </div>
1103
+ </div>
1104
+ </footer>
1105
+
1106
+ </div>
1107
+ <div class="md-dialog" data-md-component="dialog">
1108
+ <div class="md-dialog__inner md-typeset"></div>
1109
+ </div>
1110
+
1111
+
1112
+ <div class="md-consent" data-md-component="consent" id="__consent" hidden>
1113
+ <div class="md-consent__overlay"></div>
1114
+ <aside class="md-consent__inner">
1115
+ <form class="md-consent__form md-grid md-typeset" name="consent">
1116
+
1117
+
1118
+
1119
+
1120
+ <h4>Cookie Consent</h4>
1121
+ <p>We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for. With your consent, you're helping us to make our documentation better.</p>
1122
+ <input class="md-toggle" type="checkbox" id="__settings" >
1123
+ <div class="md-consent__settings">
1124
+ <ul class="task-list">
1125
+
1126
+
1127
+
1128
+
1129
+
1130
+
1131
+
1132
+
1133
+
1134
+
1135
+
1136
+ <li class="task-list-item">
1137
+ <label class="task-list-control">
1138
+ <input type="checkbox" name="analytics" >
1139
+ <span class="task-list-indicator"></span>
1140
+ Google Analytics
1141
+ </label>
1142
+ </li>
1143
+
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+
1150
+
1151
+
1152
+
1153
+
1154
+
1155
+ <li class="task-list-item">
1156
+ <label class="task-list-control">
1157
+ <input type="checkbox" name="github" checked>
1158
+ <span class="task-list-indicator"></span>
1159
+ GitHub
1160
+ </label>
1161
+ </li>
1162
+
1163
+
1164
+
1165
+ </ul>
1166
+ </div>
1167
+ <div class="md-consent__controls">
1168
+
1169
+
1170
+
1171
+ <button type="reset" class="md-button md-button--primary">Reject</button>
1172
+
1173
+
1174
+
1175
+
1176
+ <button class="md-button md-button--primary">Accept</button>
1177
+
1178
+
1179
+
1180
+
1181
+
1182
+
1183
+
1184
+ <label class="md-button" for="__settings">Manage settings</label>
1185
+
1186
+
1187
+ </div>
1188
+ </form>
1189
+ </aside>
1190
+ </div>
1191
+ <script>var consent=__md_get("__consent");if(consent)for(var input of document.forms.consent.elements)input.name&&(input.checked=consent[input.name]||!1);else"file:"!==location.protocol&&setTimeout((function(){document.querySelector("[data-md-component=consent]").hidden=!1}),250);var form=document.forms.consent;for(var action of["submit","reset"])form.addEventListener(action,(function(e){if(e.preventDefault(),"reset"===e.type)for(var n of document.forms.consent.elements)n.name&&(n.checked=!1);__md_set("__consent",Object.fromEntries(Array.from(new FormData(form).keys()).map((function(e){return[e,!0]})))),location.hash="",location.reload()}))</script>
1192
+
1193
+
1194
+
1195
+ <script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.instant", "navigation.tracking", "navigation.tabs", "navigation.indexes", "toc.follow", "navigation.top", "search.suggest"], "search": "../../../../assets/javascripts/workers/search.d50fe291.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
1196
+
1197
+
1198
+ <script src="../../../../assets/javascripts/bundle.13a4f30d.min.js"></script>
1199
+
1200
+
1201
+ </body>
1202
+ </html>