33 Commits

Author SHA1 Message Date
InsanusMokrassar
afd6b6b6f8 deploy: c95f3251bb 2025-08-18 05:19:39 +00:00
InsanusMokrassar
dbb4d28db9 deploy: 7e886d5e65 2025-08-06 11:48:02 +00:00
InsanusMokrassar
228a3a8b8c deploy: a6097e6784 2025-06-30 08:03:39 +00:00
InsanusMokrassar
e1f19c4f9a deploy: 2c97740abb 2025-06-25 10:28:17 +00:00
InsanusMokrassar
c293c4b7db deploy: a2798c3b2e 2025-02-15 14:58:28 +00:00
InsanusMokrassar
623cadaeed deploy: 34abb664b9 2025-01-03 04:48:13 +00:00
InsanusMokrassar
2aadb1f12f deploy: 1149abc79f 2024-12-26 02:49:30 +00:00
InsanusMokrassar
54750b546f deploy: faa3573546 2024-11-01 18:03:07 +00:00
InsanusMokrassar
32fff399de deploy: 6e7cf1cb0e 2024-09-22 18:48:37 +00:00
InsanusMokrassar
dd61ef849f deploy: c7e552ebb5 2024-09-22 18:24:19 +00:00
InsanusMokrassar
c93596e55a deploy: 329a9ba310 2024-08-26 02:32:24 +00:00
InsanusMokrassar
1c202c7188 deploy: c74bafb4a3 2024-08-26 02:30:15 +00:00
InsanusMokrassar
772a3d5069 deploy: 256226044f 2024-08-26 02:12:26 +00:00
InsanusMokrassar
df85105a99 deploy: 7b0a171bd3 2024-06-27 01:27:28 +00:00
InsanusMokrassar
8781c0ee8f deploy: 4410bb3b28 2024-06-01 07:56:45 +00:00
InsanusMokrassar
89c68ad618 deploy: 0931cbd97d 2024-05-29 10:32:24 +00:00
InsanusMokrassar
dc46ca1d49 deploy: 228c7704f5 2024-05-15 12:33:54 +00:00
InsanusMokrassar
0fa418280c deploy: 6377aefb6a 2024-05-10 14:01:35 +00:00
InsanusMokrassar
17ad37b2cb deploy: 3c433daa6b 2024-05-05 11:03:15 +00:00
InsanusMokrassar
3d95ab16ba deploy: a6c1aacf40 2024-05-04 17:58:25 +00:00
InsanusMokrassar
e1167177ec deploy: 4dd90738ba 2024-05-04 16:29:16 +00:00
InsanusMokrassar
1c1602fd90 deploy: 68426c126d 2024-05-04 15:57:58 +00:00
InsanusMokrassar
87625064c3 deploy: ca7eedbb74 2024-05-04 15:03:58 +00:00
InsanusMokrassar
1c24ddc1ff deploy: 006f0b69d8 2024-05-02 12:46:42 +00:00
InsanusMokrassar
72207a4cc9 deploy: df2812a04d 2024-04-22 10:45:00 +00:00
InsanusMokrassar
6a37e39576 deploy: 9ec30af2ad 2024-03-06 11:32:57 +00:00
InsanusMokrassar
df1a56053f deploy: c8caed5b3a 2024-02-16 19:55:19 +00:00
InsanusMokrassar
10630d52fa deploy: c0e7ac5f27 2024-02-11 06:20:56 +00:00
InsanusMokrassar
9f76ac3298 deploy: 55e8840a27 2024-01-30 18:21:11 +00:00
InsanusMokrassar
935c4049d6 deploy: 08871f9dc1 2024-01-30 17:51:12 +00:00
InsanusMokrassar
7cbd944f06 deploy: af5685678f 2024-01-12 08:59:10 +00:00
InsanusMokrassar
042a9c17d3 deploy: fce4d336c0 2024-01-11 12:02:47 +00:00
InsanusMokrassar
46d3ac4ce3 deploy: 6dc843337b 2024-01-11 11:59:34 +00:00
60 changed files with 29048 additions and 6396 deletions

453
404.html

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -10,16 +10,16 @@
<link href="https://docs.inmo.dev/index.html" rel="canonical"/> <link href="https://docs.inmo.dev/index.html" rel="canonical"/>
<link href="micro_utils/index.html" rel="next"/> <link href="micro_utils/index.html" rel="next"/>
<link href="/resources/images/favicon.png" rel="icon"/> <link href="/resources/images/favicon.png" rel="icon"/>
<meta content="mkdocs-1.5.3, mkdocs-material-9.5.1" name="generator"/> <meta content="mkdocs-1.6.1, mkdocs-material-9.6.17" name="generator"/>
<title>InMo Docs</title> <title>InMo Docs</title>
<link href="assets/stylesheets/main.45e1311d.min.css" rel="stylesheet"/> <link href="assets/stylesheets/main.7e37652d.min.css" rel="stylesheet"/>
<link href="assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link href="/resources/stylesheets/navigation.css" rel="stylesheet"/> <link href="/resources/stylesheets/navigation.css" rel="stylesheet"/>
<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> <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>
<script id="__analytics">function __md_analytics(){function n(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],n("js",new Date),n("config","G-615VY8CQSM"),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){this.value&&n("event","search",{search_term:this.value})}),document$.subscribe(function(){var a=document.forms.feedback;if(void 0!==a)for(var e of a.querySelectorAll("[type=submit]"))e.addEventListener("click",function(e){e.preventDefault();var t=document.location.pathname,e=this.getAttribute("data-md-value");n("event","feedback",{page:t,data:e}),a.firstElementChild.disabled=!0;e=a.querySelector(".md-feedback__note [data-md-value='"+e+"']");e&&(e.hidden=!1)}),a.hidden=!1}),location$.subscribe(function(e){n("config","G-615VY8CQSM",{page_path:e.pathname})})});var e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=G-615VY8CQSM",document.getElementById("__analytics").insertAdjacentElement("afterEnd",e)}</script> <script id="__analytics">function __md_analytics(){function e(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],e("js",new Date),e("config","G-615VY8CQSM"),document.addEventListener("DOMContentLoaded",(function(){document.forms.search&&document.forms.search.query.addEventListener("blur",(function(){this.value&&e("event","search",{search_term:this.value})}));document$.subscribe((function(){var t=document.forms.feedback;if(void 0!==t)for(var a of t.querySelectorAll("[type=submit]"))a.addEventListener("click",(function(a){a.preventDefault();var n=document.location.pathname,d=this.getAttribute("data-md-value");e("event","feedback",{page:n,data:d}),t.firstElementChild.disabled=!0;var r=t.querySelector(".md-feedback__note [data-md-value='"+d+"']");r&&(r.hidden=!1)})),t.hidden=!1})),location$.subscribe((function(t){e("config","G-615VY8CQSM",{page_path:t.pathname})}))}));var t=document.createElement("script");t.async=!0,t.src="https://www.googletagmanager.com/gtag/js?id=G-615VY8CQSM",document.getElementById("__analytics").insertAdjacentElement("afterEnd",t)}</script>
<script>"undefined"!=typeof __md_analytics&&__md_analytics()</script> <script>"undefined"!=typeof __md_analytics&&__md_analytics()</script>
</head> </head>
<body data-md-color-accent="cyan" data-md-color-primary="teal" data-md-color-scheme="default" dir="ltr"> <body data-md-color-accent="cyan" data-md-color-primary="teal" data-md-color-scheme="default" dir="ltr">
@@ -39,7 +39,7 @@
<img alt="logo" src="/resources/images/logo.png"/> <img alt="logo" src="/resources/images/logo.png"/>
</a> </a>
<label class="md-header__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg>
</label> </label>
<div class="md-header__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis"> <div class="md-header__ellipsis">
@@ -60,16 +60,16 @@
<form class="md-header__option" data-md-component="palette"> <form class="md-header__option" data-md-component="palette">
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="cyan" data-md-color-media="" data-md-color-primary="teal" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/> <input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="cyan" data-md-color-media="" data-md-color-primary="teal" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to dark mode"> <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to dark mode">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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 12 20 8.69Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
</label> </label>
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="light-blue" data-md-color-media="" data-md-color-primary="blue-grey" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/> <input aria-label="Switch to light mode" class="md-option" data-md-color-accent="light-blue" data-md-color-media="" data-md-color-primary="blue-grey" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to light mode"> <label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to light mode">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-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 12 20 8.69Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
</label> </label>
</form> </form>
<script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(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([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <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>
<label class="md-header__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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.516 6.516 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 5Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
</label> </label>
<div class="md-search" data-md-component="search" role="dialog"> <div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label> <label class="md-search__overlay" for="__search"></label>
@@ -77,21 +77,21 @@
<form class="md-search__form" name="search"> <form class="md-search__form" name="search">
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/> <input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search"> <label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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.516 6.516 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 5Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg>
</label> </label>
<nav aria-label="Search" class="md-search__options"> <nav aria-label="Search" class="md-search__options">
<a aria-label="Share" class="md-search__icon md-icon" data-clipboard="" data-clipboard-text="" data-md-component="search-share" href="javascript:void(0)" tabindex="-1" title="Share"> <a aria-label="Share" class="md-search__icon md-icon" data-clipboard="" data-clipboard-text="" data-md-component="search-share" href="javascript:void(0)" tabindex="-1" title="Share">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91 1.61 0 2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"></path></svg>
</a> </a>
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset"> <button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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 12 19 6.41Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
</button> </button>
</nav> </nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div> <div class="md-search__suggest" data-md-component="search-suggest"></div>
</form> </form>
<div class="md-search__output"> <div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix=""> <div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0">
<div class="md-search-result" data-md-component="search-result"> <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta"> <div class="md-search-result__meta">
Initializing search Initializing search
@@ -105,7 +105,7 @@
<div class="md-header__source"> <div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://github.com/InsanusMokrassar/docs" title="Go to repository"> <a class="md-source" data-md-component="source" href="https://github.com/InsanusMokrassar/docs" title="Go to repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 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.81z"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4" fill="currentColor"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
InsanusMokrassar/docs InsanusMokrassar/docs
@@ -124,6 +124,7 @@
Home Home
</a> </a>
@@ -134,6 +135,7 @@
MicroUtils MicroUtils
</a> </a>
@@ -144,6 +146,7 @@
Telegram Bot API Telegram Bot API
</a> </a>
@@ -154,6 +157,7 @@
PlaguBot (TBD) PlaguBot (TBD)
</a> </a>
@@ -164,6 +168,7 @@
Krontab Krontab
</a> </a>
@@ -174,12 +179,14 @@
KSLog KSLog
</a> </a>
</li> </li>
<li class="md-tabs__item"> <li class="md-tabs__item">
<a class="md-tabs__link" href="navigation/index.html"> <a class="md-tabs__link" href="https://insanusmokrassar.github.io/navigation/">
@@ -194,6 +201,7 @@
Services Services
</a> </a>
@@ -216,7 +224,7 @@
<div class="md-nav__source"> <div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://github.com/InsanusMokrassar/docs" title="Go to repository"> <a class="md-source" data-md-component="source" href="https://github.com/InsanusMokrassar/docs" title="Go to repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 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.81z"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4" fill="currentColor"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
InsanusMokrassar/docs InsanusMokrassar/docs
@@ -229,12 +237,14 @@
<label class="md-nav__link md-nav__link--active" for="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis"> <span class="md-ellipsis">
Home Home
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
<a class="md-nav__link md-nav__link--active" href="index.html"> <a class="md-nav__link md-nav__link--active" href="index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Home Home
</span> </span>
</a> </a>
<nav aria-label="Table of contents" class="md-nav md-nav--secondary"> <nav aria-label="Table of contents" class="md-nav md-nav--secondary">
@@ -260,15 +270,16 @@
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_2" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_2" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="micro_utils/index.html"> <a class="md-nav__link" href="micro_utils/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
MicroUtils MicroUtils
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex=""> <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -279,24 +290,80 @@
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="https://microutils.inmo.dev/index.html">
<span class="md-ellipsis">
KDocs
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="micro_utils/resources.html"> <a class="md-nav__link" href="micro_utils/resources.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Resources Resources
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="micro_utils/startup.html">
<span class="md-ellipsis">
Startup
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="micro_utils/colors.html">
<span class="md-ellipsis">
Colors
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_2_6" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="micro_utils/repos/index.html">
<span class="md-ellipsis">
Repos
</span>
</a>
<label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_2_6_label" class="md-nav" data-md-level="2">
<label class="md-nav__title" for="__nav_2_6">
<span class="md-nav__icon md-icon"></span>
Repos
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="micro_utils/repos/inmemory.html">
<span class="md-ellipsis">
In memory
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> </ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="tgbotapi/index.html"> <a class="md-nav__link" href="tgbotapi/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Telegram Bot API Telegram Bot API
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex=""> <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -310,6 +377,7 @@
<a class="md-nav__link" href="https://tgbotapi.inmo.dev"> <a class="md-nav__link" href="https://tgbotapi.inmo.dev">
<span class="md-ellipsis"> <span class="md-ellipsis">
KDocs KDocs
</span> </span>
</a> </a>
</li> </li>
@@ -317,6 +385,7 @@
<a class="md-nav__link" href="tgbotapi/faq.html"> <a class="md-nav__link" href="tgbotapi/faq.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
FAQ FAQ
</span> </span>
</a> </a>
</li> </li>
@@ -324,14 +393,16 @@
<a class="md-nav__link" href="tgbotapi/logs.html"> <a class="md-nav__link" href="tgbotapi/logs.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Logging Logging
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_5" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_5" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_5" id="__nav_3_5_label" tabindex=""> <label class="md-nav__link" for="__nav_3_5" id="__nav_3_5_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Introduction Introduction
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -345,6 +416,7 @@
<a class="md-nav__link" href="tgbotapi/introduction/before-any-bot-project.html"> <a class="md-nav__link" href="tgbotapi/introduction/before-any-bot-project.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Before any bot project Before any bot project
</span> </span>
</a> </a>
</li> </li>
@@ -352,6 +424,7 @@
<a class="md-nav__link" href="tgbotapi/introduction/including-in-your-project.html"> <a class="md-nav__link" href="tgbotapi/introduction/including-in-your-project.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Including in your project Including in your project
</span> </span>
</a> </a>
</li> </li>
@@ -359,6 +432,7 @@
<a class="md-nav__link" href="tgbotapi/introduction/proxy-setup.html"> <a class="md-nav__link" href="tgbotapi/introduction/proxy-setup.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Proxy setup Proxy setup
</span> </span>
</a> </a>
</li> </li>
@@ -366,17 +440,19 @@
<a class="md-nav__link" href="tgbotapi/introduction/first-bot.html"> <a class="md-nav__link" href="tgbotapi/introduction/first-bot.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
First bot First bot
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_6" id="__nav_3_6_label" tabindex=""> <label class="md-nav__link" for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Guides Guides
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -390,17 +466,19 @@
<a class="md-nav__link" href="tgbotapi/guides/keyboards.html"> <a class="md-nav__link" href="tgbotapi/guides/keyboards.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Keyboards Guide Keyboards Guide
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_7" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_7" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_7" id="__nav_3_7_label" tabindex=""> <label class="md-nav__link" for="__nav_3_7" id="__nav_3_7_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Updates retrieving Updates retrieving
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -414,6 +492,7 @@
<a class="md-nav__link" href="tgbotapi/updates/updates-filters.html"> <a class="md-nav__link" href="tgbotapi/updates/updates-filters.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Updates filters Updates filters
</span> </span>
</a> </a>
</li> </li>
@@ -421,6 +500,7 @@
<a class="md-nav__link" href="tgbotapi/updates/long-polling.html"> <a class="md-nav__link" href="tgbotapi/updates/long-polling.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Long polling Long polling
</span> </span>
</a> </a>
</li> </li>
@@ -428,6 +508,7 @@
<a class="md-nav__link" href="tgbotapi/updates/webhooks.html"> <a class="md-nav__link" href="tgbotapi/updates/webhooks.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Webhooks Webhooks
</span> </span>
</a> </a>
</li> </li>
@@ -435,17 +516,19 @@
<a class="md-nav__link" href="tgbotapi/updates/heroku.html"> <a class="md-nav__link" href="tgbotapi/updates/heroku.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Heroku Heroku
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_8" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_8" id="__nav_3_8_label" tabindex=""> <label class="md-nav__link" for="__nav_3_8" id="__nav_3_8_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Logic handling Logic handling
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -459,6 +542,7 @@
<a class="md-nav__link" href="tgbotapi/logic/api-extensions.html"> <a class="md-nav__link" href="tgbotapi/logic/api-extensions.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
API Extensions API Extensions
</span> </span>
</a> </a>
</li> </li>
@@ -466,6 +550,7 @@
<a class="md-nav__link" href="tgbotapi/logic/behaviour-builder-with-fsm.html"> <a class="md-nav__link" href="tgbotapi/logic/behaviour-builder-with-fsm.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Behaviour Builder with FSM Behaviour Builder with FSM
</span> </span>
</a> </a>
</li> </li>
@@ -473,6 +558,7 @@
<a class="md-nav__link" href="tgbotapi/logic/behaviour-builder.html"> <a class="md-nav__link" href="tgbotapi/logic/behaviour-builder.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Behaviour Builder Behaviour Builder
</span> </span>
</a> </a>
</li> </li>
@@ -480,6 +566,7 @@
<a class="md-nav__link" href="tgbotapi/logic/exceptions-handling.html"> <a class="md-nav__link" href="tgbotapi/logic/exceptions-handling.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Exceptions handling Exceptions handling
</span> </span>
</a> </a>
</li> </li>
@@ -487,6 +574,7 @@
<a class="md-nav__link" href="tgbotapi/logic/files-handling.html"> <a class="md-nav__link" href="tgbotapi/logic/files-handling.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Files handling Files handling
</span> </span>
</a> </a>
</li> </li>
@@ -494,6 +582,7 @@
<a class="md-nav__link" href="tgbotapi/logic/low-level-work-with-bots.html"> <a class="md-nav__link" href="tgbotapi/logic/low-level-work-with-bots.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Low-level work with bots Low-level work with bots
</span> </span>
</a> </a>
</li> </li>
@@ -501,6 +590,7 @@
<a class="md-nav__link" href="tgbotapi/logic/media-groups.html"> <a class="md-nav__link" href="tgbotapi/logic/media-groups.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Media Groups Media Groups
</span> </span>
</a> </a>
</li> </li>
@@ -508,6 +598,7 @@
<a class="md-nav__link" href="tgbotapi/logic/types-conversations.html"> <a class="md-nav__link" href="tgbotapi/logic/types-conversations.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Types conversations Types conversations
</span> </span>
</a> </a>
</li> </li>
@@ -515,17 +606,19 @@
<a class="md-nav__link" href="tgbotapi/logic/updates-with-flows.html"> <a class="md-nav__link" href="tgbotapi/logic/updates-with-flows.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Updates with flows Updates with flows
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_9" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_9" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_9" id="__nav_3_9_label" tabindex=""> <label class="md-nav__link" for="__nav_3_9" id="__nav_3_9_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
DSLs DSLs
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -539,6 +632,7 @@
<a class="md-nav__link" href="tgbotapi/dsls/keyboards.html"> <a class="md-nav__link" href="tgbotapi/dsls/keyboards.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Keyboards Keyboards
</span> </span>
</a> </a>
</li> </li>
@@ -546,6 +640,7 @@
<a class="md-nav__link" href="tgbotapi/dsls/live-location.html"> <a class="md-nav__link" href="tgbotapi/dsls/live-location.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Live Location Live Location
</span> </span>
</a> </a>
</li> </li>
@@ -553,6 +648,7 @@
<a class="md-nav__link" href="tgbotapi/dsls/text.html"> <a class="md-nav__link" href="tgbotapi/dsls/text.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Text Text
</span> </span>
</a> </a>
</li> </li>
@@ -562,15 +658,16 @@
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_4" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_4" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="plagubot/index.html"> <a class="md-nav__link" href="plagubot/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
PlaguBot (TBD) PlaguBot (TBD)
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex=""> <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -584,21 +681,23 @@
<a class="md-nav__link" href="plagubot/opportunities_out_of_the_box.html"> <a class="md-nav__link" href="plagubot/opportunities_out_of_the_box.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Opportunities out of the box Opportunities out of the box
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_5" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_5" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="krontab/index.html"> <a class="md-nav__link" href="krontab/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Krontab Krontab
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex=""> <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -612,6 +711,7 @@
<a class="md-nav__link" href="https://krontab.inmo.dev/"> <a class="md-nav__link" href="https://krontab.inmo.dev/">
<span class="md-ellipsis"> <span class="md-ellipsis">
KDocs KDocs
</span> </span>
</a> </a>
</li> </li>
@@ -619,14 +719,16 @@
<a class="md-nav__link" href="https://insanusmokrassar.github.io/KrontabPredictor"> <a class="md-nav__link" href="https://insanusmokrassar.github.io/KrontabPredictor">
<span class="md-ellipsis"> <span class="md-ellipsis">
Predictor Predictor
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_5_4" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_5_4" type="checkbox"/>
<label class="md-nav__link" for="__nav_5_4" id="__nav_5_4_label" tabindex=""> <label class="md-nav__link" for="__nav_5_4" id="__nav_5_4_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Introduction Introduction
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -640,6 +742,7 @@
<a class="md-nav__link" href="krontab/introduction/including-in-project.html"> <a class="md-nav__link" href="krontab/introduction/including-in-project.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Including in project Including in project
</span> </span>
</a> </a>
</li> </li>
@@ -647,6 +750,7 @@
<a class="md-nav__link" href="krontab/introduction/how-to-use.html"> <a class="md-nav__link" href="krontab/introduction/how-to-use.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
How to use How to use
</span> </span>
</a> </a>
</li> </li>
@@ -654,17 +758,19 @@
<a class="md-nav__link" href="krontab/introduction/faq.html"> <a class="md-nav__link" href="krontab/introduction/faq.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
FAQ FAQ
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_5_5" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_5_5" type="checkbox"/>
<label class="md-nav__link" for="__nav_5_5" id="__nav_5_5_label" tabindex=""> <label class="md-nav__link" for="__nav_5_5" id="__nav_5_5_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Describing Describing
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -678,6 +784,7 @@
<a class="md-nav__link" href="krontab/describing/string-format.html"> <a class="md-nav__link" href="krontab/describing/string-format.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
String format String format
</span> </span>
</a> </a>
</li> </li>
@@ -685,6 +792,7 @@
<a class="md-nav__link" href="krontab/describing/krontabscheduler.html"> <a class="md-nav__link" href="krontab/describing/krontabscheduler.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
KrontabScheduler KrontabScheduler
</span> </span>
</a> </a>
</li> </li>
@@ -694,15 +802,16 @@
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_6" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="kslog/index.html"> <a class="md-nav__link" href="kslog/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
KSLog KSLog
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex=""> <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -716,6 +825,7 @@
<a class="md-nav__link" href="https://kslog.inmo.dev/"> <a class="md-nav__link" href="https://kslog.inmo.dev/">
<span class="md-ellipsis"> <span class="md-ellipsis">
KDocs KDocs
</span> </span>
</a> </a>
</li> </li>
@@ -723,6 +833,7 @@
<a class="md-nav__link" href="kslog/setup.html"> <a class="md-nav__link" href="kslog/setup.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Setup Setup
</span> </span>
</a> </a>
</li> </li>
@@ -730,21 +841,23 @@
<a class="md-nav__link" href="kslog/logging.html"> <a class="md-nav__link" href="kslog/logging.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Logging Logging
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_7" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_7" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="navigation/index.html"> <a class="md-nav__link" href="navigation/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Navigation Navigation
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex=""> <label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -755,21 +868,31 @@
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="https://insanusmokrassar.github.io/navigation/">
<span class="md-ellipsis">
Sample
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="navigation/getting-started.html"> <a class="md-nav__link" href="navigation/getting-started.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Getting started (TBD) Getting started (TBD)
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_8" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_8" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="services/index.html"> <a class="md-nav__link" href="services/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Services Services
</span> </span>
</a> </a>
</div> </div>
@@ -817,11 +940,11 @@
</div> </div>
<div class="md-content" data-md-component="content"> <div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset"> <article class="md-content__inner md-typeset">
<a class="md-content__button md-icon" href="https://github.com/InsanusMokrassar/docs/edit/master/docs/index.md" title="Edit this page"> <a class="md-content__button md-icon" href="https://github.com/InsanusMokrassar/docs/edit/master/docs/index.md" rel="edit" title="Edit this page">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4v-2m10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1 2.1 2.1Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"></path></svg>
</a> </a>
<a class="md-content__button md-icon" href="https://github.com/InsanusMokrassar/docs/raw/master/docs/index.md" title="View source of this page"> <a class="md-content__button md-icon" href="https://github.com/InsanusMokrassar/docs/raw/master/docs/index.md" title="View source of this page">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.15 8.15 0 0 1-1.23-2Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"></path></svg>
</a> </a>
<h1 id="insanus-mokrassar-libraries-home">Insanus Mokrassar libraries home<a class="headerlink" href="#insanus-mokrassar-libraries-home" title="Permanent link"></a></h1> <h1 id="insanus-mokrassar-libraries-home">Insanus Mokrassar libraries home<a class="headerlink" href="#insanus-mokrassar-libraries-home" title="Permanent link"></a></h1>
<p>Hello :) It is my libraries docs place and I glad to welcome you here. I hope, this documentation place will help you.</p> <p>Hello :) It is my libraries docs place and I glad to welcome you here. I hope, this documentation place will help you.</p>
@@ -916,10 +1039,11 @@ flowchart TB
</div> </div>
</article> </article>
</div> </div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div> </div>
<button class="md-top md-icon" data-md-component="top" hidden="" type="button"> <button class="md-top md-icon" data-md-component="top" hidden="" type="button">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"></path></svg>
Back to top Back to top
</button> </button>
</main> </main>
@@ -935,7 +1059,7 @@ flowchart TB
</div> </div>
</div> </div>
<div class="md-footer__button md-icon"> <div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"></path></svg>
</div> </div>
</a> </a>
</nav> </nav>
@@ -951,16 +1075,16 @@ flowchart TB
</div> </div>
<div class="md-social"> <div class="md-social">
<a class="md-social__link" href="https://github.com/InsanusMokrassar" rel="noopener" target="_blank" title="github.com"> <a class="md-social__link" href="https://github.com/InsanusMokrassar" rel="noopener" target="_blank" title="github.com">
<svg viewbox="0 0 496 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg> <svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2" fill="currentColor"></path></svg>
</a> </a>
<a class="md-social__link" href="https://hub.docker.com/r/insanusmokrassar" rel="noopener" target="_blank" title="hub.docker.com"> <a class="md-social__link" href="https://hub.docker.com/r/insanusmokrassar" rel="noopener" target="_blank" title="hub.docker.com">
<svg viewbox="0 0 640 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 Fonticons, Inc.--><path d="M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"></path></svg> <svg viewbox="0 0 640 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M349.9 236.3h-66.1v-59.4h66.1zm0-204.3h-66.1v60.7h66.1zm78.2 144.8H362v59.4h66.1zm-156.3-72.1h-66.1v60.1h66.1zm78.1 0h-66.1v60.1h66.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1zm78.1 0h-66.1v59.4h66.1zm-78.1-72.1h-66.1v60.1h66.1z" fill="currentColor"></path></svg>
</a> </a>
<a class="md-social__link" href="https://t.me/InsanusMokrassar" rel="noopener" target="_blank" title="t.me"> <a class="md-social__link" href="https://t.me/InsanusMokrassar" rel="noopener" target="_blank" title="t.me">
<svg viewbox="0 0 496 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 Fonticons, Inc.--><path d="M248 8C111.033 8 0 119.033 0 256s111.033 248 248 248 248-111.033 248-248S384.967 8 248 8Zm114.952 168.66c-3.732 39.215-19.881 134.378-28.1 178.3-3.476 18.584-10.322 24.816-16.948 25.425-14.4 1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25 5.342-39.5 3.652-3.793 67.107-61.51 68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608 69.142-14.845 10.194-26.894 9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7 18.45-13.7 108.446-47.248 144.628-62.3c68.872-28.647 83.183-33.623 92.511-33.789 2.052-.034 6.639.474 9.61 2.885a10.452 10.452 0 0 1 3.53 6.716 43.765 43.765 0 0 1 .417 9.769Z"></path></svg> <svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496m115 168.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7.2-.7.3-3.1-1.2-4.4s-3.6-.8-5.1-.5c-2.2.5-37.1 23.5-104.6 69.1-9.9 6.8-18.9 10.1-26.9 9.9-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3.6-4.5 6.7-9 18.4-13.7 72.3-31.5 120.5-52.3 144.6-62.3 68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6.5 9.6 2.9 2 1.7 3.2 4.1 3.5 6.7.5 3.2.6 6.5.4 9.8z" fill="currentColor"></path></svg>
</a> </a>
<a class="md-social__link" href="https://twitter.com/InsanusMokrassa" rel="noopener" target="_blank" title="twitter.com"> <a class="md-social__link" href="https://twitter.com/InsanusMokrassa" rel="noopener" target="_blank" title="twitter.com">
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg> <svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3" fill="currentColor"></path></svg>
</a> </a>
</div> </div>
</div> </div>
@@ -970,8 +1094,8 @@ flowchart TB
<div class="md-dialog" data-md-component="dialog"> <div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": ".", "features": ["announce.dismiss", "content.action.edit", "content.action.view", "content.code.annotate", "content.code.copy", "content.tooltips", "navigation.footer", "navigation.indexes", "navigation.sections", "navigation.tabs", "navigation.top", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "search": "assets/javascripts/workers/search.f886a092.min.js", "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"}}</script> <script id="__config" type="application/json">{"base": ".", "features": ["announce.dismiss", "content.action.edit", "content.action.view", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "navigation.footer", "navigation.indexes", "navigation.sections", "navigation.tabs", "navigation.top", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "search": "assets/javascripts/workers/search.973d3a69.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>
<script src="assets/javascripts/bundle.d7c377c4.min.js"></script> <script src="assets/javascripts/bundle.92b07e13.min.js"></script>
<script type="module">import mermaid from "https://unpkg.com/mermaid@10.4.0/dist/mermaid.esm.min.mjs"; <script type="module">import mermaid from "https://unpkg.com/mermaid@10.4.0/dist/mermaid.esm.min.mjs";
mermaid.initialize({ mermaid.initialize({
theme: (JSON.parse(__md_get("__palette").index == 1)) ? 'dark' : 'light' theme: (JSON.parse(__md_get("__palette").index == 1)) ? 'dark' : 'light'

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2682
micro_utils/colors.html Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1162
micro_utils/repos/index.html Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1102
micro_utils/startup.html Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -11,16 +11,16 @@
<link href="../kslog/logging.html" rel="prev"/> <link href="../kslog/logging.html" rel="prev"/>
<link href="getting-started.html" rel="next"/> <link href="getting-started.html" rel="next"/>
<link href="/resources/images/favicon.png" rel="icon"/> <link href="/resources/images/favicon.png" rel="icon"/>
<meta content="mkdocs-1.5.3, mkdocs-material-9.5.1" name="generator"/> <meta content="mkdocs-1.6.1, mkdocs-material-9.6.17" name="generator"/>
<title>Navigation - InMo Docs</title> <title>Navigation - InMo Docs</title>
<link href="../assets/stylesheets/main.45e1311d.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.7e37652d.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link href="/resources/stylesheets/navigation.css" rel="stylesheet"/> <link href="/resources/stylesheets/navigation.css" rel="stylesheet"/>
<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> <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>
<script id="__analytics">function __md_analytics(){function n(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],n("js",new Date),n("config","G-615VY8CQSM"),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){this.value&&n("event","search",{search_term:this.value})}),document$.subscribe(function(){var a=document.forms.feedback;if(void 0!==a)for(var e of a.querySelectorAll("[type=submit]"))e.addEventListener("click",function(e){e.preventDefault();var t=document.location.pathname,e=this.getAttribute("data-md-value");n("event","feedback",{page:t,data:e}),a.firstElementChild.disabled=!0;e=a.querySelector(".md-feedback__note [data-md-value='"+e+"']");e&&(e.hidden=!1)}),a.hidden=!1}),location$.subscribe(function(e){n("config","G-615VY8CQSM",{page_path:e.pathname})})});var e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=G-615VY8CQSM",document.getElementById("__analytics").insertAdjacentElement("afterEnd",e)}</script> <script id="__analytics">function __md_analytics(){function e(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],e("js",new Date),e("config","G-615VY8CQSM"),document.addEventListener("DOMContentLoaded",(function(){document.forms.search&&document.forms.search.query.addEventListener("blur",(function(){this.value&&e("event","search",{search_term:this.value})}));document$.subscribe((function(){var t=document.forms.feedback;if(void 0!==t)for(var a of t.querySelectorAll("[type=submit]"))a.addEventListener("click",(function(a){a.preventDefault();var n=document.location.pathname,d=this.getAttribute("data-md-value");e("event","feedback",{page:n,data:d}),t.firstElementChild.disabled=!0;var r=t.querySelector(".md-feedback__note [data-md-value='"+d+"']");r&&(r.hidden=!1)})),t.hidden=!1})),location$.subscribe((function(t){e("config","G-615VY8CQSM",{page_path:t.pathname})}))}));var t=document.createElement("script");t.async=!0,t.src="https://www.googletagmanager.com/gtag/js?id=G-615VY8CQSM",document.getElementById("__analytics").insertAdjacentElement("afterEnd",t)}</script>
<script>"undefined"!=typeof __md_analytics&&__md_analytics()</script> <script>"undefined"!=typeof __md_analytics&&__md_analytics()</script>
</head> </head>
<body data-md-color-accent="cyan" data-md-color-primary="teal" data-md-color-scheme="default" dir="ltr"> <body data-md-color-accent="cyan" data-md-color-primary="teal" data-md-color-scheme="default" dir="ltr">
@@ -40,7 +40,7 @@
<img alt="logo" src="/resources/images/logo.png"/> <img alt="logo" src="/resources/images/logo.png"/>
</a> </a>
<label class="md-header__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg>
</label> </label>
<div class="md-header__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis"> <div class="md-header__ellipsis">
@@ -61,16 +61,16 @@
<form class="md-header__option" data-md-component="palette"> <form class="md-header__option" data-md-component="palette">
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="cyan" data-md-color-media="" data-md-color-primary="teal" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/> <input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="cyan" data-md-color-media="" data-md-color-primary="teal" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to dark mode"> <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to dark mode">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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 12 20 8.69Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
</label> </label>
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="light-blue" data-md-color-media="" data-md-color-primary="blue-grey" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/> <input aria-label="Switch to light mode" class="md-option" data-md-color-accent="light-blue" data-md-color-media="" data-md-color-primary="blue-grey" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to light mode"> <label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to light mode">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-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 12 20 8.69Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
</label> </label>
</form> </form>
<script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(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([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <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>
<label class="md-header__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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.516 6.516 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 5Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
</label> </label>
<div class="md-search" data-md-component="search" role="dialog"> <div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label> <label class="md-search__overlay" for="__search"></label>
@@ -78,21 +78,21 @@
<form class="md-search__form" name="search"> <form class="md-search__form" name="search">
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/> <input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search"> <label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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.516 6.516 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 5Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg>
</label> </label>
<nav aria-label="Search" class="md-search__options"> <nav aria-label="Search" class="md-search__options">
<a aria-label="Share" class="md-search__icon md-icon" data-clipboard="" data-clipboard-text="" data-md-component="search-share" href="javascript:void(0)" tabindex="-1" title="Share"> <a aria-label="Share" class="md-search__icon md-icon" data-clipboard="" data-clipboard-text="" data-md-component="search-share" href="javascript:void(0)" tabindex="-1" title="Share">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91 1.61 0 2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"></path></svg>
</a> </a>
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset"> <button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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 12 19 6.41Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
</button> </button>
</nav> </nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div> <div class="md-search__suggest" data-md-component="search-suggest"></div>
</form> </form>
<div class="md-search__output"> <div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix=""> <div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0">
<div class="md-search-result" data-md-component="search-result"> <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta"> <div class="md-search-result__meta">
Initializing search Initializing search
@@ -106,7 +106,7 @@
<div class="md-header__source"> <div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://github.com/InsanusMokrassar/docs" title="Go to repository"> <a class="md-source" data-md-component="source" href="https://github.com/InsanusMokrassar/docs" title="Go to repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 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.81z"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4" fill="currentColor"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
InsanusMokrassar/docs InsanusMokrassar/docs
@@ -125,6 +125,7 @@
Home Home
</a> </a>
@@ -135,6 +136,7 @@
MicroUtils MicroUtils
</a> </a>
@@ -145,6 +147,7 @@
Telegram Bot API Telegram Bot API
</a> </a>
@@ -155,6 +158,7 @@
PlaguBot (TBD) PlaguBot (TBD)
</a> </a>
@@ -165,6 +169,7 @@
Krontab Krontab
</a> </a>
@@ -175,12 +180,14 @@
KSLog KSLog
</a> </a>
</li> </li>
<li class="md-tabs__item md-tabs__item--active"> <li class="md-tabs__item md-tabs__item--active">
<a class="md-tabs__link" href="index.html"> <a class="md-tabs__link" href="https://insanusmokrassar.github.io/navigation/">
@@ -195,6 +202,7 @@
Services Services
</a> </a>
@@ -217,7 +225,7 @@
<div class="md-nav__source"> <div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://github.com/InsanusMokrassar/docs" title="Go to repository"> <a class="md-source" data-md-component="source" href="https://github.com/InsanusMokrassar/docs" title="Go to repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 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.81z"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4" fill="currentColor"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
InsanusMokrassar/docs InsanusMokrassar/docs
@@ -229,18 +237,20 @@
<a class="md-nav__link" href="../index.html"> <a class="md-nav__link" href="../index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Home Home
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_2" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_2" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../micro_utils/index.html"> <a class="md-nav__link" href="../micro_utils/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
MicroUtils MicroUtils
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex=""> <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -251,24 +261,80 @@
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="https://microutils.inmo.dev/index.html">
<span class="md-ellipsis">
KDocs
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../micro_utils/resources.html"> <a class="md-nav__link" href="../micro_utils/resources.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Resources Resources
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../micro_utils/startup.html">
<span class="md-ellipsis">
Startup
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../micro_utils/colors.html">
<span class="md-ellipsis">
Colors
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_2_6" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../micro_utils/repos/index.html">
<span class="md-ellipsis">
Repos
</span>
</a>
<label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_2_6_label" class="md-nav" data-md-level="2">
<label class="md-nav__title" for="__nav_2_6">
<span class="md-nav__icon md-icon"></span>
Repos
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../micro_utils/repos/inmemory.html">
<span class="md-ellipsis">
In memory
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> </ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../tgbotapi/index.html"> <a class="md-nav__link" href="../tgbotapi/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Telegram Bot API Telegram Bot API
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex=""> <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -282,6 +348,7 @@
<a class="md-nav__link" href="https://tgbotapi.inmo.dev"> <a class="md-nav__link" href="https://tgbotapi.inmo.dev">
<span class="md-ellipsis"> <span class="md-ellipsis">
KDocs KDocs
</span> </span>
</a> </a>
</li> </li>
@@ -289,6 +356,7 @@
<a class="md-nav__link" href="../tgbotapi/faq.html"> <a class="md-nav__link" href="../tgbotapi/faq.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
FAQ FAQ
</span> </span>
</a> </a>
</li> </li>
@@ -296,14 +364,16 @@
<a class="md-nav__link" href="../tgbotapi/logs.html"> <a class="md-nav__link" href="../tgbotapi/logs.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Logging Logging
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_5" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_5" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_5" id="__nav_3_5_label" tabindex=""> <label class="md-nav__link" for="__nav_3_5" id="__nav_3_5_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Introduction Introduction
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -317,6 +387,7 @@
<a class="md-nav__link" href="../tgbotapi/introduction/before-any-bot-project.html"> <a class="md-nav__link" href="../tgbotapi/introduction/before-any-bot-project.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Before any bot project Before any bot project
</span> </span>
</a> </a>
</li> </li>
@@ -324,6 +395,7 @@
<a class="md-nav__link" href="../tgbotapi/introduction/including-in-your-project.html"> <a class="md-nav__link" href="../tgbotapi/introduction/including-in-your-project.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Including in your project Including in your project
</span> </span>
</a> </a>
</li> </li>
@@ -331,6 +403,7 @@
<a class="md-nav__link" href="../tgbotapi/introduction/proxy-setup.html"> <a class="md-nav__link" href="../tgbotapi/introduction/proxy-setup.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Proxy setup Proxy setup
</span> </span>
</a> </a>
</li> </li>
@@ -338,17 +411,19 @@
<a class="md-nav__link" href="../tgbotapi/introduction/first-bot.html"> <a class="md-nav__link" href="../tgbotapi/introduction/first-bot.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
First bot First bot
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_6" id="__nav_3_6_label" tabindex=""> <label class="md-nav__link" for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Guides Guides
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -362,17 +437,19 @@
<a class="md-nav__link" href="../tgbotapi/guides/keyboards.html"> <a class="md-nav__link" href="../tgbotapi/guides/keyboards.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Keyboards Guide Keyboards Guide
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_7" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_7" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_7" id="__nav_3_7_label" tabindex=""> <label class="md-nav__link" for="__nav_3_7" id="__nav_3_7_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Updates retrieving Updates retrieving
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -386,6 +463,7 @@
<a class="md-nav__link" href="../tgbotapi/updates/updates-filters.html"> <a class="md-nav__link" href="../tgbotapi/updates/updates-filters.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Updates filters Updates filters
</span> </span>
</a> </a>
</li> </li>
@@ -393,6 +471,7 @@
<a class="md-nav__link" href="../tgbotapi/updates/long-polling.html"> <a class="md-nav__link" href="../tgbotapi/updates/long-polling.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Long polling Long polling
</span> </span>
</a> </a>
</li> </li>
@@ -400,6 +479,7 @@
<a class="md-nav__link" href="../tgbotapi/updates/webhooks.html"> <a class="md-nav__link" href="../tgbotapi/updates/webhooks.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Webhooks Webhooks
</span> </span>
</a> </a>
</li> </li>
@@ -407,17 +487,19 @@
<a class="md-nav__link" href="../tgbotapi/updates/heroku.html"> <a class="md-nav__link" href="../tgbotapi/updates/heroku.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Heroku Heroku
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_8" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_8" id="__nav_3_8_label" tabindex=""> <label class="md-nav__link" for="__nav_3_8" id="__nav_3_8_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Logic handling Logic handling
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -431,6 +513,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/api-extensions.html"> <a class="md-nav__link" href="../tgbotapi/logic/api-extensions.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
API Extensions API Extensions
</span> </span>
</a> </a>
</li> </li>
@@ -438,6 +521,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/behaviour-builder-with-fsm.html"> <a class="md-nav__link" href="../tgbotapi/logic/behaviour-builder-with-fsm.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Behaviour Builder with FSM Behaviour Builder with FSM
</span> </span>
</a> </a>
</li> </li>
@@ -445,6 +529,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/behaviour-builder.html"> <a class="md-nav__link" href="../tgbotapi/logic/behaviour-builder.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Behaviour Builder Behaviour Builder
</span> </span>
</a> </a>
</li> </li>
@@ -452,6 +537,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/exceptions-handling.html"> <a class="md-nav__link" href="../tgbotapi/logic/exceptions-handling.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Exceptions handling Exceptions handling
</span> </span>
</a> </a>
</li> </li>
@@ -459,6 +545,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/files-handling.html"> <a class="md-nav__link" href="../tgbotapi/logic/files-handling.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Files handling Files handling
</span> </span>
</a> </a>
</li> </li>
@@ -466,6 +553,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/low-level-work-with-bots.html"> <a class="md-nav__link" href="../tgbotapi/logic/low-level-work-with-bots.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Low-level work with bots Low-level work with bots
</span> </span>
</a> </a>
</li> </li>
@@ -473,6 +561,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/media-groups.html"> <a class="md-nav__link" href="../tgbotapi/logic/media-groups.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Media Groups Media Groups
</span> </span>
</a> </a>
</li> </li>
@@ -480,6 +569,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/types-conversations.html"> <a class="md-nav__link" href="../tgbotapi/logic/types-conversations.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Types conversations Types conversations
</span> </span>
</a> </a>
</li> </li>
@@ -487,17 +577,19 @@
<a class="md-nav__link" href="../tgbotapi/logic/updates-with-flows.html"> <a class="md-nav__link" href="../tgbotapi/logic/updates-with-flows.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Updates with flows Updates with flows
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_9" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_9" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_9" id="__nav_3_9_label" tabindex=""> <label class="md-nav__link" for="__nav_3_9" id="__nav_3_9_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
DSLs DSLs
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -511,6 +603,7 @@
<a class="md-nav__link" href="../tgbotapi/dsls/keyboards.html"> <a class="md-nav__link" href="../tgbotapi/dsls/keyboards.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Keyboards Keyboards
</span> </span>
</a> </a>
</li> </li>
@@ -518,6 +611,7 @@
<a class="md-nav__link" href="../tgbotapi/dsls/live-location.html"> <a class="md-nav__link" href="../tgbotapi/dsls/live-location.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Live Location Live Location
</span> </span>
</a> </a>
</li> </li>
@@ -525,6 +619,7 @@
<a class="md-nav__link" href="../tgbotapi/dsls/text.html"> <a class="md-nav__link" href="../tgbotapi/dsls/text.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Text Text
</span> </span>
</a> </a>
</li> </li>
@@ -534,15 +629,16 @@
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_4" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_4" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../plagubot/index.html"> <a class="md-nav__link" href="../plagubot/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
PlaguBot (TBD) PlaguBot (TBD)
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex=""> <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -556,21 +652,23 @@
<a class="md-nav__link" href="../plagubot/opportunities_out_of_the_box.html"> <a class="md-nav__link" href="../plagubot/opportunities_out_of_the_box.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Opportunities out of the box Opportunities out of the box
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_5" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_5" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../krontab/index.html"> <a class="md-nav__link" href="../krontab/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Krontab Krontab
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex=""> <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -584,6 +682,7 @@
<a class="md-nav__link" href="https://krontab.inmo.dev/"> <a class="md-nav__link" href="https://krontab.inmo.dev/">
<span class="md-ellipsis"> <span class="md-ellipsis">
KDocs KDocs
</span> </span>
</a> </a>
</li> </li>
@@ -591,14 +690,16 @@
<a class="md-nav__link" href="https://insanusmokrassar.github.io/KrontabPredictor"> <a class="md-nav__link" href="https://insanusmokrassar.github.io/KrontabPredictor">
<span class="md-ellipsis"> <span class="md-ellipsis">
Predictor Predictor
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_5_4" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_5_4" type="checkbox"/>
<label class="md-nav__link" for="__nav_5_4" id="__nav_5_4_label" tabindex=""> <label class="md-nav__link" for="__nav_5_4" id="__nav_5_4_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Introduction Introduction
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -612,6 +713,7 @@
<a class="md-nav__link" href="../krontab/introduction/including-in-project.html"> <a class="md-nav__link" href="../krontab/introduction/including-in-project.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Including in project Including in project
</span> </span>
</a> </a>
</li> </li>
@@ -619,6 +721,7 @@
<a class="md-nav__link" href="../krontab/introduction/how-to-use.html"> <a class="md-nav__link" href="../krontab/introduction/how-to-use.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
How to use How to use
</span> </span>
</a> </a>
</li> </li>
@@ -626,17 +729,19 @@
<a class="md-nav__link" href="../krontab/introduction/faq.html"> <a class="md-nav__link" href="../krontab/introduction/faq.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
FAQ FAQ
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_5_5" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_5_5" type="checkbox"/>
<label class="md-nav__link" for="__nav_5_5" id="__nav_5_5_label" tabindex=""> <label class="md-nav__link" for="__nav_5_5" id="__nav_5_5_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Describing Describing
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -650,6 +755,7 @@
<a class="md-nav__link" href="../krontab/describing/string-format.html"> <a class="md-nav__link" href="../krontab/describing/string-format.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
String format String format
</span> </span>
</a> </a>
</li> </li>
@@ -657,6 +763,7 @@
<a class="md-nav__link" href="../krontab/describing/krontabscheduler.html"> <a class="md-nav__link" href="../krontab/describing/krontabscheduler.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
KrontabScheduler KrontabScheduler
</span> </span>
</a> </a>
</li> </li>
@@ -666,15 +773,16 @@
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_6" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../kslog/index.html"> <a class="md-nav__link" href="../kslog/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
KSLog KSLog
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex=""> <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -688,6 +796,7 @@
<a class="md-nav__link" href="https://kslog.inmo.dev/"> <a class="md-nav__link" href="https://kslog.inmo.dev/">
<span class="md-ellipsis"> <span class="md-ellipsis">
KDocs KDocs
</span> </span>
</a> </a>
</li> </li>
@@ -695,6 +804,7 @@
<a class="md-nav__link" href="../kslog/setup.html"> <a class="md-nav__link" href="../kslog/setup.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Setup Setup
</span> </span>
</a> </a>
</li> </li>
@@ -702,6 +812,7 @@
<a class="md-nav__link" href="../kslog/logging.html"> <a class="md-nav__link" href="../kslog/logging.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Logging Logging
</span> </span>
</a> </a>
</li> </li>
@@ -714,6 +825,7 @@
<a class="md-nav__link md-nav__link--active" href="index.html"> <a class="md-nav__link md-nav__link--active" href="index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Navigation Navigation
</span> </span>
</a> </a>
<label class="md-nav__link md-nav__link--active" for="__nav_7" id="__nav_7_label" tabindex=""> <label class="md-nav__link md-nav__link--active" for="__nav_7" id="__nav_7_label" tabindex="">
@@ -727,21 +839,31 @@
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="https://insanusmokrassar.github.io/navigation/">
<span class="md-ellipsis">
Sample
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="getting-started.html"> <a class="md-nav__link" href="getting-started.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Getting started (TBD) Getting started (TBD)
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_8" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_8" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../services/index.html"> <a class="md-nav__link" href="../services/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Services Services
</span> </span>
</a> </a>
</div> </div>
@@ -807,11 +929,11 @@
</div> </div>
<div class="md-content" data-md-component="content"> <div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset"> <article class="md-content__inner md-typeset">
<a class="md-content__button md-icon" href="https://github.com/InsanusMokrassar/docs/edit/master/docs/navigation/index.md" title="Edit this page"> <a class="md-content__button md-icon" href="https://github.com/InsanusMokrassar/docs/edit/master/docs/navigation/index.md" rel="edit" title="Edit this page">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4v-2m10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1 2.1 2.1Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"></path></svg>
</a> </a>
<a class="md-content__button md-icon" href="https://github.com/InsanusMokrassar/docs/raw/master/docs/navigation/index.md" title="View source of this page"> <a class="md-content__button md-icon" href="https://github.com/InsanusMokrassar/docs/raw/master/docs/navigation/index.md" title="View source of this page">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.15 8.15 0 0 1-1.23-2Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"></path></svg>
</a> </a>
<h1 id="navigation">Navigation<a class="headerlink" href="#navigation" title="Permanent link"></a></h1> <h1 id="navigation">Navigation<a class="headerlink" href="#navigation" title="Permanent link"></a></h1>
<p><strong>This library uses koin as preferred DI in MVVM part</strong></p> <p><strong>This library uses koin as preferred DI in MVVM part</strong></p>
@@ -1149,10 +1271,11 @@ Whole tree will look like:</p>
</div> </div>
</article> </article>
</div> </div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div> </div>
<button class="md-top md-icon" data-md-component="top" hidden="" type="button"> <button class="md-top md-icon" data-md-component="top" hidden="" type="button">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"></path></svg>
Back to top Back to top
</button> </button>
</main> </main>
@@ -1160,7 +1283,7 @@ Whole tree will look like:</p>
<nav aria-label="Footer" class="md-footer__inner md-grid"> <nav aria-label="Footer" class="md-footer__inner md-grid">
<a aria-label="Previous: Logging" class="md-footer__link md-footer__link--prev" href="../kslog/logging.html"> <a aria-label="Previous: Logging" class="md-footer__link md-footer__link--prev" href="../kslog/logging.html">
<div class="md-footer__button md-icon"> <div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg>
</div> </div>
<div class="md-footer__title"> <div class="md-footer__title">
<span class="md-footer__direction"> <span class="md-footer__direction">
@@ -1181,7 +1304,7 @@ Whole tree will look like:</p>
</div> </div>
</div> </div>
<div class="md-footer__button md-icon"> <div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"></path></svg>
</div> </div>
</a> </a>
</nav> </nav>
@@ -1197,16 +1320,16 @@ Whole tree will look like:</p>
</div> </div>
<div class="md-social"> <div class="md-social">
<a class="md-social__link" href="https://github.com/InsanusMokrassar" rel="noopener" target="_blank" title="github.com"> <a class="md-social__link" href="https://github.com/InsanusMokrassar" rel="noopener" target="_blank" title="github.com">
<svg viewbox="0 0 496 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg> <svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2" fill="currentColor"></path></svg>
</a> </a>
<a class="md-social__link" href="https://hub.docker.com/r/insanusmokrassar" rel="noopener" target="_blank" title="hub.docker.com"> <a class="md-social__link" href="https://hub.docker.com/r/insanusmokrassar" rel="noopener" target="_blank" title="hub.docker.com">
<svg viewbox="0 0 640 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 Fonticons, Inc.--><path d="M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"></path></svg> <svg viewbox="0 0 640 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M349.9 236.3h-66.1v-59.4h66.1zm0-204.3h-66.1v60.7h66.1zm78.2 144.8H362v59.4h66.1zm-156.3-72.1h-66.1v60.1h66.1zm78.1 0h-66.1v60.1h66.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1zm78.1 0h-66.1v59.4h66.1zm-78.1-72.1h-66.1v60.1h66.1z" fill="currentColor"></path></svg>
</a> </a>
<a class="md-social__link" href="https://t.me/InsanusMokrassar" rel="noopener" target="_blank" title="t.me"> <a class="md-social__link" href="https://t.me/InsanusMokrassar" rel="noopener" target="_blank" title="t.me">
<svg viewbox="0 0 496 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 Fonticons, Inc.--><path d="M248 8C111.033 8 0 119.033 0 256s111.033 248 248 248 248-111.033 248-248S384.967 8 248 8Zm114.952 168.66c-3.732 39.215-19.881 134.378-28.1 178.3-3.476 18.584-10.322 24.816-16.948 25.425-14.4 1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25 5.342-39.5 3.652-3.793 67.107-61.51 68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608 69.142-14.845 10.194-26.894 9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7 18.45-13.7 108.446-47.248 144.628-62.3c68.872-28.647 83.183-33.623 92.511-33.789 2.052-.034 6.639.474 9.61 2.885a10.452 10.452 0 0 1 3.53 6.716 43.765 43.765 0 0 1 .417 9.769Z"></path></svg> <svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496m115 168.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7.2-.7.3-3.1-1.2-4.4s-3.6-.8-5.1-.5c-2.2.5-37.1 23.5-104.6 69.1-9.9 6.8-18.9 10.1-26.9 9.9-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3.6-4.5 6.7-9 18.4-13.7 72.3-31.5 120.5-52.3 144.6-62.3 68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6.5 9.6 2.9 2 1.7 3.2 4.1 3.5 6.7.5 3.2.6 6.5.4 9.8z" fill="currentColor"></path></svg>
</a> </a>
<a class="md-social__link" href="https://twitter.com/InsanusMokrassa" rel="noopener" target="_blank" title="twitter.com"> <a class="md-social__link" href="https://twitter.com/InsanusMokrassa" rel="noopener" target="_blank" title="twitter.com">
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg> <svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3" fill="currentColor"></path></svg>
</a> </a>
</div> </div>
</div> </div>
@@ -1216,8 +1339,8 @@ Whole tree will look like:</p>
<div class="md-dialog" data-md-component="dialog"> <div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.action.edit", "content.action.view", "content.code.annotate", "content.code.copy", "content.tooltips", "navigation.footer", "navigation.indexes", "navigation.sections", "navigation.tabs", "navigation.top", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "search": "../assets/javascripts/workers/search.f886a092.min.js", "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"}}</script> <script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.action.edit", "content.action.view", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "navigation.footer", "navigation.indexes", "navigation.sections", "navigation.tabs", "navigation.top", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "search": "../assets/javascripts/workers/search.973d3a69.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>
<script src="../assets/javascripts/bundle.d7c377c4.min.js"></script> <script src="../assets/javascripts/bundle.92b07e13.min.js"></script>
<script type="module">import mermaid from "https://unpkg.com/mermaid@10.4.0/dist/mermaid.esm.min.mjs"; <script type="module">import mermaid from "https://unpkg.com/mermaid@10.4.0/dist/mermaid.esm.min.mjs";
mermaid.initialize({ mermaid.initialize({
theme: (JSON.parse(__md_get("__palette").index == 1)) ? 'dark' : 'light' theme: (JSON.parse(__md_get("__palette").index == 1)) ? 'dark' : 'light'

View File

@@ -11,16 +11,16 @@
<link href="../tgbotapi/dsls/text.html" rel="prev"/> <link href="../tgbotapi/dsls/text.html" rel="prev"/>
<link href="opportunities_out_of_the_box.html" rel="next"/> <link href="opportunities_out_of_the_box.html" rel="next"/>
<link href="/resources/images/favicon.png" rel="icon"/> <link href="/resources/images/favicon.png" rel="icon"/>
<meta content="mkdocs-1.5.3, mkdocs-material-9.5.1" name="generator"/> <meta content="mkdocs-1.6.1, mkdocs-material-9.6.17" name="generator"/>
<title>PlaguBot - InMo Docs</title> <title>PlaguBot - InMo Docs</title>
<link href="../assets/stylesheets/main.45e1311d.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.7e37652d.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link href="/resources/stylesheets/navigation.css" rel="stylesheet"/> <link href="/resources/stylesheets/navigation.css" rel="stylesheet"/>
<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> <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>
<script id="__analytics">function __md_analytics(){function n(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],n("js",new Date),n("config","G-615VY8CQSM"),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){this.value&&n("event","search",{search_term:this.value})}),document$.subscribe(function(){var a=document.forms.feedback;if(void 0!==a)for(var e of a.querySelectorAll("[type=submit]"))e.addEventListener("click",function(e){e.preventDefault();var t=document.location.pathname,e=this.getAttribute("data-md-value");n("event","feedback",{page:t,data:e}),a.firstElementChild.disabled=!0;e=a.querySelector(".md-feedback__note [data-md-value='"+e+"']");e&&(e.hidden=!1)}),a.hidden=!1}),location$.subscribe(function(e){n("config","G-615VY8CQSM",{page_path:e.pathname})})});var e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=G-615VY8CQSM",document.getElementById("__analytics").insertAdjacentElement("afterEnd",e)}</script> <script id="__analytics">function __md_analytics(){function e(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],e("js",new Date),e("config","G-615VY8CQSM"),document.addEventListener("DOMContentLoaded",(function(){document.forms.search&&document.forms.search.query.addEventListener("blur",(function(){this.value&&e("event","search",{search_term:this.value})}));document$.subscribe((function(){var t=document.forms.feedback;if(void 0!==t)for(var a of t.querySelectorAll("[type=submit]"))a.addEventListener("click",(function(a){a.preventDefault();var n=document.location.pathname,d=this.getAttribute("data-md-value");e("event","feedback",{page:n,data:d}),t.firstElementChild.disabled=!0;var r=t.querySelector(".md-feedback__note [data-md-value='"+d+"']");r&&(r.hidden=!1)})),t.hidden=!1})),location$.subscribe((function(t){e("config","G-615VY8CQSM",{page_path:t.pathname})}))}));var t=document.createElement("script");t.async=!0,t.src="https://www.googletagmanager.com/gtag/js?id=G-615VY8CQSM",document.getElementById("__analytics").insertAdjacentElement("afterEnd",t)}</script>
<script>"undefined"!=typeof __md_analytics&&__md_analytics()</script> <script>"undefined"!=typeof __md_analytics&&__md_analytics()</script>
</head> </head>
<body data-md-color-accent="cyan" data-md-color-primary="teal" data-md-color-scheme="default" dir="ltr"> <body data-md-color-accent="cyan" data-md-color-primary="teal" data-md-color-scheme="default" dir="ltr">
@@ -40,7 +40,7 @@
<img alt="logo" src="/resources/images/logo.png"/> <img alt="logo" src="/resources/images/logo.png"/>
</a> </a>
<label class="md-header__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg>
</label> </label>
<div class="md-header__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis"> <div class="md-header__ellipsis">
@@ -61,16 +61,16 @@
<form class="md-header__option" data-md-component="palette"> <form class="md-header__option" data-md-component="palette">
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="cyan" data-md-color-media="" data-md-color-primary="teal" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/> <input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="cyan" data-md-color-media="" data-md-color-primary="teal" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to dark mode"> <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to dark mode">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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 12 20 8.69Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
</label> </label>
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="light-blue" data-md-color-media="" data-md-color-primary="blue-grey" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/> <input aria-label="Switch to light mode" class="md-option" data-md-color-accent="light-blue" data-md-color-media="" data-md-color-primary="blue-grey" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to light mode"> <label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to light mode">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-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 12 20 8.69Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
</label> </label>
</form> </form>
<script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(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([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <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>
<label class="md-header__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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.516 6.516 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 5Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
</label> </label>
<div class="md-search" data-md-component="search" role="dialog"> <div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label> <label class="md-search__overlay" for="__search"></label>
@@ -78,21 +78,21 @@
<form class="md-search__form" name="search"> <form class="md-search__form" name="search">
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/> <input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search"> <label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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.516 6.516 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 5Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg>
</label> </label>
<nav aria-label="Search" class="md-search__options"> <nav aria-label="Search" class="md-search__options">
<a aria-label="Share" class="md-search__icon md-icon" data-clipboard="" data-clipboard-text="" data-md-component="search-share" href="javascript:void(0)" tabindex="-1" title="Share"> <a aria-label="Share" class="md-search__icon md-icon" data-clipboard="" data-clipboard-text="" data-md-component="search-share" href="javascript:void(0)" tabindex="-1" title="Share">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91 1.61 0 2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"></path></svg>
</a> </a>
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset"> <button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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 12 19 6.41Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><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"></path></svg>
</button> </button>
</nav> </nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div> <div class="md-search__suggest" data-md-component="search-suggest"></div>
</form> </form>
<div class="md-search__output"> <div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix=""> <div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0">
<div class="md-search-result" data-md-component="search-result"> <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta"> <div class="md-search-result__meta">
Initializing search Initializing search
@@ -106,7 +106,7 @@
<div class="md-header__source"> <div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://github.com/InsanusMokrassar/docs" title="Go to repository"> <a class="md-source" data-md-component="source" href="https://github.com/InsanusMokrassar/docs" title="Go to repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 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.81z"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4" fill="currentColor"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
InsanusMokrassar/docs InsanusMokrassar/docs
@@ -125,6 +125,7 @@
Home Home
</a> </a>
@@ -135,6 +136,7 @@
MicroUtils MicroUtils
</a> </a>
@@ -145,6 +147,7 @@
Telegram Bot API Telegram Bot API
</a> </a>
@@ -155,6 +158,7 @@
PlaguBot (TBD) PlaguBot (TBD)
</a> </a>
@@ -165,6 +169,7 @@
Krontab Krontab
</a> </a>
@@ -175,12 +180,14 @@
KSLog KSLog
</a> </a>
</li> </li>
<li class="md-tabs__item"> <li class="md-tabs__item">
<a class="md-tabs__link" href="../navigation/index.html"> <a class="md-tabs__link" href="https://insanusmokrassar.github.io/navigation/">
@@ -195,6 +202,7 @@
Services Services
</a> </a>
@@ -217,7 +225,7 @@
<div class="md-nav__source"> <div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://github.com/InsanusMokrassar/docs" title="Go to repository"> <a class="md-source" data-md-component="source" href="https://github.com/InsanusMokrassar/docs" title="Go to repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 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.81z"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4" fill="currentColor"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
InsanusMokrassar/docs InsanusMokrassar/docs
@@ -229,18 +237,20 @@
<a class="md-nav__link" href="../index.html"> <a class="md-nav__link" href="../index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Home Home
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_2" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_2" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../micro_utils/index.html"> <a class="md-nav__link" href="../micro_utils/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
MicroUtils MicroUtils
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex=""> <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -251,24 +261,80 @@
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="https://microutils.inmo.dev/index.html">
<span class="md-ellipsis">
KDocs
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../micro_utils/resources.html"> <a class="md-nav__link" href="../micro_utils/resources.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Resources Resources
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../micro_utils/startup.html">
<span class="md-ellipsis">
Startup
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../micro_utils/colors.html">
<span class="md-ellipsis">
Colors
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_2_6" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../micro_utils/repos/index.html">
<span class="md-ellipsis">
Repos
</span>
</a>
<label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_2_6_label" class="md-nav" data-md-level="2">
<label class="md-nav__title" for="__nav_2_6">
<span class="md-nav__icon md-icon"></span>
Repos
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../micro_utils/repos/inmemory.html">
<span class="md-ellipsis">
In memory
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> </ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../tgbotapi/index.html"> <a class="md-nav__link" href="../tgbotapi/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Telegram Bot API Telegram Bot API
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex=""> <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -282,6 +348,7 @@
<a class="md-nav__link" href="https://tgbotapi.inmo.dev"> <a class="md-nav__link" href="https://tgbotapi.inmo.dev">
<span class="md-ellipsis"> <span class="md-ellipsis">
KDocs KDocs
</span> </span>
</a> </a>
</li> </li>
@@ -289,6 +356,7 @@
<a class="md-nav__link" href="../tgbotapi/faq.html"> <a class="md-nav__link" href="../tgbotapi/faq.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
FAQ FAQ
</span> </span>
</a> </a>
</li> </li>
@@ -296,14 +364,16 @@
<a class="md-nav__link" href="../tgbotapi/logs.html"> <a class="md-nav__link" href="../tgbotapi/logs.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Logging Logging
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_5" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_5" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_5" id="__nav_3_5_label" tabindex=""> <label class="md-nav__link" for="__nav_3_5" id="__nav_3_5_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Introduction Introduction
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -317,6 +387,7 @@
<a class="md-nav__link" href="../tgbotapi/introduction/before-any-bot-project.html"> <a class="md-nav__link" href="../tgbotapi/introduction/before-any-bot-project.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Before any bot project Before any bot project
</span> </span>
</a> </a>
</li> </li>
@@ -324,6 +395,7 @@
<a class="md-nav__link" href="../tgbotapi/introduction/including-in-your-project.html"> <a class="md-nav__link" href="../tgbotapi/introduction/including-in-your-project.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Including in your project Including in your project
</span> </span>
</a> </a>
</li> </li>
@@ -331,6 +403,7 @@
<a class="md-nav__link" href="../tgbotapi/introduction/proxy-setup.html"> <a class="md-nav__link" href="../tgbotapi/introduction/proxy-setup.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Proxy setup Proxy setup
</span> </span>
</a> </a>
</li> </li>
@@ -338,17 +411,19 @@
<a class="md-nav__link" href="../tgbotapi/introduction/first-bot.html"> <a class="md-nav__link" href="../tgbotapi/introduction/first-bot.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
First bot First bot
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_6" id="__nav_3_6_label" tabindex=""> <label class="md-nav__link" for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Guides Guides
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -362,17 +437,19 @@
<a class="md-nav__link" href="../tgbotapi/guides/keyboards.html"> <a class="md-nav__link" href="../tgbotapi/guides/keyboards.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Keyboards Guide Keyboards Guide
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_7" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_7" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_7" id="__nav_3_7_label" tabindex=""> <label class="md-nav__link" for="__nav_3_7" id="__nav_3_7_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Updates retrieving Updates retrieving
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -386,6 +463,7 @@
<a class="md-nav__link" href="../tgbotapi/updates/updates-filters.html"> <a class="md-nav__link" href="../tgbotapi/updates/updates-filters.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Updates filters Updates filters
</span> </span>
</a> </a>
</li> </li>
@@ -393,6 +471,7 @@
<a class="md-nav__link" href="../tgbotapi/updates/long-polling.html"> <a class="md-nav__link" href="../tgbotapi/updates/long-polling.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Long polling Long polling
</span> </span>
</a> </a>
</li> </li>
@@ -400,6 +479,7 @@
<a class="md-nav__link" href="../tgbotapi/updates/webhooks.html"> <a class="md-nav__link" href="../tgbotapi/updates/webhooks.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Webhooks Webhooks
</span> </span>
</a> </a>
</li> </li>
@@ -407,17 +487,19 @@
<a class="md-nav__link" href="../tgbotapi/updates/heroku.html"> <a class="md-nav__link" href="../tgbotapi/updates/heroku.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Heroku Heroku
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_8" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_8" id="__nav_3_8_label" tabindex=""> <label class="md-nav__link" for="__nav_3_8" id="__nav_3_8_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Logic handling Logic handling
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -431,6 +513,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/api-extensions.html"> <a class="md-nav__link" href="../tgbotapi/logic/api-extensions.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
API Extensions API Extensions
</span> </span>
</a> </a>
</li> </li>
@@ -438,6 +521,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/behaviour-builder-with-fsm.html"> <a class="md-nav__link" href="../tgbotapi/logic/behaviour-builder-with-fsm.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Behaviour Builder with FSM Behaviour Builder with FSM
</span> </span>
</a> </a>
</li> </li>
@@ -445,6 +529,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/behaviour-builder.html"> <a class="md-nav__link" href="../tgbotapi/logic/behaviour-builder.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Behaviour Builder Behaviour Builder
</span> </span>
</a> </a>
</li> </li>
@@ -452,6 +537,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/exceptions-handling.html"> <a class="md-nav__link" href="../tgbotapi/logic/exceptions-handling.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Exceptions handling Exceptions handling
</span> </span>
</a> </a>
</li> </li>
@@ -459,6 +545,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/files-handling.html"> <a class="md-nav__link" href="../tgbotapi/logic/files-handling.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Files handling Files handling
</span> </span>
</a> </a>
</li> </li>
@@ -466,6 +553,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/low-level-work-with-bots.html"> <a class="md-nav__link" href="../tgbotapi/logic/low-level-work-with-bots.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Low-level work with bots Low-level work with bots
</span> </span>
</a> </a>
</li> </li>
@@ -473,6 +561,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/media-groups.html"> <a class="md-nav__link" href="../tgbotapi/logic/media-groups.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Media Groups Media Groups
</span> </span>
</a> </a>
</li> </li>
@@ -480,6 +569,7 @@
<a class="md-nav__link" href="../tgbotapi/logic/types-conversations.html"> <a class="md-nav__link" href="../tgbotapi/logic/types-conversations.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Types conversations Types conversations
</span> </span>
</a> </a>
</li> </li>
@@ -487,17 +577,19 @@
<a class="md-nav__link" href="../tgbotapi/logic/updates-with-flows.html"> <a class="md-nav__link" href="../tgbotapi/logic/updates-with-flows.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Updates with flows Updates with flows
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3_9" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_3_9" type="checkbox"/>
<label class="md-nav__link" for="__nav_3_9" id="__nav_3_9_label" tabindex=""> <label class="md-nav__link" for="__nav_3_9" id="__nav_3_9_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
DSLs DSLs
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -511,6 +603,7 @@
<a class="md-nav__link" href="../tgbotapi/dsls/keyboards.html"> <a class="md-nav__link" href="../tgbotapi/dsls/keyboards.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Keyboards Keyboards
</span> </span>
</a> </a>
</li> </li>
@@ -518,6 +611,7 @@
<a class="md-nav__link" href="../tgbotapi/dsls/live-location.html"> <a class="md-nav__link" href="../tgbotapi/dsls/live-location.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Live Location Live Location
</span> </span>
</a> </a>
</li> </li>
@@ -525,6 +619,7 @@
<a class="md-nav__link" href="../tgbotapi/dsls/text.html"> <a class="md-nav__link" href="../tgbotapi/dsls/text.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Text Text
</span> </span>
</a> </a>
</li> </li>
@@ -540,6 +635,7 @@
<a class="md-nav__link md-nav__link--active" href="index.html"> <a class="md-nav__link md-nav__link--active" href="index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
PlaguBot (TBD) PlaguBot (TBD)
</span> </span>
</a> </a>
<label class="md-nav__link md-nav__link--active" for="__nav_4" id="__nav_4_label" tabindex=""> <label class="md-nav__link md-nav__link--active" for="__nav_4" id="__nav_4_label" tabindex="">
@@ -556,21 +652,23 @@
<a class="md-nav__link" href="opportunities_out_of_the_box.html"> <a class="md-nav__link" href="opportunities_out_of_the_box.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Opportunities out of the box Opportunities out of the box
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_5" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_5" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../krontab/index.html"> <a class="md-nav__link" href="../krontab/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Krontab Krontab
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex=""> <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -584,6 +682,7 @@
<a class="md-nav__link" href="https://krontab.inmo.dev/"> <a class="md-nav__link" href="https://krontab.inmo.dev/">
<span class="md-ellipsis"> <span class="md-ellipsis">
KDocs KDocs
</span> </span>
</a> </a>
</li> </li>
@@ -591,14 +690,16 @@
<a class="md-nav__link" href="https://insanusmokrassar.github.io/KrontabPredictor"> <a class="md-nav__link" href="https://insanusmokrassar.github.io/KrontabPredictor">
<span class="md-ellipsis"> <span class="md-ellipsis">
Predictor Predictor
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_5_4" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_5_4" type="checkbox"/>
<label class="md-nav__link" for="__nav_5_4" id="__nav_5_4_label" tabindex=""> <label class="md-nav__link" for="__nav_5_4" id="__nav_5_4_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Introduction Introduction
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -612,6 +713,7 @@
<a class="md-nav__link" href="../krontab/introduction/including-in-project.html"> <a class="md-nav__link" href="../krontab/introduction/including-in-project.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Including in project Including in project
</span> </span>
</a> </a>
</li> </li>
@@ -619,6 +721,7 @@
<a class="md-nav__link" href="../krontab/introduction/how-to-use.html"> <a class="md-nav__link" href="../krontab/introduction/how-to-use.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
How to use How to use
</span> </span>
</a> </a>
</li> </li>
@@ -626,17 +729,19 @@
<a class="md-nav__link" href="../krontab/introduction/faq.html"> <a class="md-nav__link" href="../krontab/introduction/faq.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
FAQ FAQ
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_5_5" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_5_5" type="checkbox"/>
<label class="md-nav__link" for="__nav_5_5" id="__nav_5_5_label" tabindex=""> <label class="md-nav__link" for="__nav_5_5" id="__nav_5_5_label" tabindex="0">
<span class="md-ellipsis"> <span class="md-ellipsis">
Describing Describing
</span> </span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@@ -650,6 +755,7 @@
<a class="md-nav__link" href="../krontab/describing/string-format.html"> <a class="md-nav__link" href="../krontab/describing/string-format.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
String format String format
</span> </span>
</a> </a>
</li> </li>
@@ -657,6 +763,7 @@
<a class="md-nav__link" href="../krontab/describing/krontabscheduler.html"> <a class="md-nav__link" href="../krontab/describing/krontabscheduler.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
KrontabScheduler KrontabScheduler
</span> </span>
</a> </a>
</li> </li>
@@ -666,15 +773,16 @@
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_6" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../kslog/index.html"> <a class="md-nav__link" href="../kslog/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
KSLog KSLog
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex=""> <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -688,6 +796,7 @@
<a class="md-nav__link" href="https://kslog.inmo.dev/"> <a class="md-nav__link" href="https://kslog.inmo.dev/">
<span class="md-ellipsis"> <span class="md-ellipsis">
KDocs KDocs
</span> </span>
</a> </a>
</li> </li>
@@ -695,6 +804,7 @@
<a class="md-nav__link" href="../kslog/setup.html"> <a class="md-nav__link" href="../kslog/setup.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Setup Setup
</span> </span>
</a> </a>
</li> </li>
@@ -702,21 +812,23 @@
<a class="md-nav__link" href="../kslog/logging.html"> <a class="md-nav__link" href="../kslog/logging.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Logging Logging
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_7" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_7" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../navigation/index.html"> <a class="md-nav__link" href="../navigation/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Navigation Navigation
</span> </span>
</a> </a>
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex=""> <label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
</div> </div>
@@ -727,21 +839,31 @@
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="https://insanusmokrassar.github.io/navigation/">
<span class="md-ellipsis">
Sample
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../navigation/getting-started.html"> <a class="md-nav__link" href="../navigation/getting-started.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Getting started (TBD) Getting started (TBD)
</span> </span>
</a> </a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_8" type="checkbox"/> <input class="md-nav__toggle md-toggle" id="__nav_8" type="checkbox"/>
<div class="md-nav__link md-nav__container"> <div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../services/index.html"> <a class="md-nav__link" href="../services/index.html">
<span class="md-ellipsis"> <span class="md-ellipsis">
Services Services
</span> </span>
</a> </a>
</div> </div>
@@ -789,11 +911,11 @@
</div> </div>
<div class="md-content" data-md-component="content"> <div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset"> <article class="md-content__inner md-typeset">
<a class="md-content__button md-icon" href="https://github.com/InsanusMokrassar/docs/edit/master/docs/plagubot/index.md" title="Edit this page"> <a class="md-content__button md-icon" href="https://github.com/InsanusMokrassar/docs/edit/master/docs/plagubot/index.md" rel="edit" title="Edit this page">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4v-2m10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1 2.1 2.1Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"></path></svg>
</a> </a>
<a class="md-content__button md-icon" href="https://github.com/InsanusMokrassar/docs/raw/master/docs/plagubot/index.md" title="View source of this page"> <a class="md-content__button md-icon" href="https://github.com/InsanusMokrassar/docs/raw/master/docs/plagubot/index.md" title="View source of this page">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.15 8.15 0 0 1-1.23-2Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"></path></svg>
</a> </a>
<h1 id="plagubot">PlaguBot<a class="headerlink" href="#plagubot" title="Permanent link"></a></h1> <h1 id="plagubot">PlaguBot<a class="headerlink" href="#plagubot" title="Permanent link"></a></h1>
<p><a href="https://github.com/InsanusMokrassar/PlaguBot">PlaguBot</a> is a small framework for unifying developing of modules of bots. It is built with two parts:</p> <p><a href="https://github.com/InsanusMokrassar/PlaguBot">PlaguBot</a> is a small framework for unifying developing of modules of bots. It is built with two parts:</p>
@@ -804,13 +926,17 @@
<h2 id="plugin">Plugin<a class="headerlink" href="#plugin" title="Permanent link"></a></h2> <h2 id="plugin">Plugin<a class="headerlink" href="#plugin" title="Permanent link"></a></h2>
<p>Plugin is a partially independent part of bot. Plugin have several parts:</p> <p>Plugin is a partially independent part of bot. Plugin have several parts:</p>
<ul> <ul>
<li><code>setupDI</code> - this method should be used to configure DI part of module</li> <li><code>setupBotClient</code> - method to configure telegram bot in case you need it. Called synchronously when <code>TelegramBot</code>
<li><code>setupBotPlugin</code> - method to start/configure your bot actions</li> initializing in <code>single</code> in <code>setupDI</code> of <code>PlaguBot</code></li>
<li><code>setupBotPlugin</code> - method to start/configure your <strong>bot</strong> actions. Called asynchronously in <code>buildBehaviourWithFSM</code>
in <code>startPlugin</code> of <code>PlaguBot</code></li>
</ul> </ul>
<p>Plugin realization should be an <code>object</code> or <code>class</code> with empty constructor.</p> <p>Plugin realization should be an <code>object</code> or <code>class</code> with empty constructor.</p>
<h2 id="bot">Bot<a class="headerlink" href="#bot" title="Permanent link"></a></h2> <h2 id="bot">Bot<a class="headerlink" href="#bot" title="Permanent link"></a></h2>
<p>Most important of bot is <code>main</code> function (full reference: <code>dev.inmo.plagubot.AppKt</code>). It consumes one argument - path to config.</p> <p>Most important of bot is <code>main</code> function (full reference: <code>dev.inmo.plagubot.AppKt</code>). It consumes one argument - path to config.</p>
<p>Bot is initializing with the next algorithm:</p> <p>Bot is initializing with the next algorithm:</p>
<hr/>
<p><strong>OLD</strong></p>
<div class="mermaid">flowchart TB <div class="mermaid">flowchart TB
main["Main"] main["Main"]
Join["Endless join bot work"] Join["Endless join bot work"]
@@ -885,10 +1011,11 @@
</div> </div>
</article> </article>
</div> </div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div> </div>
<button class="md-top md-icon" data-md-component="top" hidden="" type="button"> <button class="md-top md-icon" data-md-component="top" hidden="" type="button">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"></path></svg>
Back to top Back to top
</button> </button>
</main> </main>
@@ -896,7 +1023,7 @@
<nav aria-label="Footer" class="md-footer__inner md-grid"> <nav aria-label="Footer" class="md-footer__inner md-grid">
<a aria-label="Previous: Text" class="md-footer__link md-footer__link--prev" href="../tgbotapi/dsls/text.html"> <a aria-label="Previous: Text" class="md-footer__link md-footer__link--prev" href="../tgbotapi/dsls/text.html">
<div class="md-footer__button md-icon"> <div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg>
</div> </div>
<div class="md-footer__title"> <div class="md-footer__title">
<span class="md-footer__direction"> <span class="md-footer__direction">
@@ -917,7 +1044,7 @@
</div> </div>
</div> </div>
<div class="md-footer__button md-icon"> <div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"></path></svg>
</div> </div>
</a> </a>
</nav> </nav>
@@ -933,16 +1060,16 @@
</div> </div>
<div class="md-social"> <div class="md-social">
<a class="md-social__link" href="https://github.com/InsanusMokrassar" rel="noopener" target="_blank" title="github.com"> <a class="md-social__link" href="https://github.com/InsanusMokrassar" rel="noopener" target="_blank" title="github.com">
<svg viewbox="0 0 496 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg> <svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2" fill="currentColor"></path></svg>
</a> </a>
<a class="md-social__link" href="https://hub.docker.com/r/insanusmokrassar" rel="noopener" target="_blank" title="hub.docker.com"> <a class="md-social__link" href="https://hub.docker.com/r/insanusmokrassar" rel="noopener" target="_blank" title="hub.docker.com">
<svg viewbox="0 0 640 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 Fonticons, Inc.--><path d="M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"></path></svg> <svg viewbox="0 0 640 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M349.9 236.3h-66.1v-59.4h66.1zm0-204.3h-66.1v60.7h66.1zm78.2 144.8H362v59.4h66.1zm-156.3-72.1h-66.1v60.1h66.1zm78.1 0h-66.1v60.1h66.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1zm78.1 0h-66.1v59.4h66.1zm-78.1-72.1h-66.1v60.1h66.1z" fill="currentColor"></path></svg>
</a> </a>
<a class="md-social__link" href="https://t.me/InsanusMokrassar" rel="noopener" target="_blank" title="t.me"> <a class="md-social__link" href="https://t.me/InsanusMokrassar" rel="noopener" target="_blank" title="t.me">
<svg viewbox="0 0 496 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 Fonticons, Inc.--><path d="M248 8C111.033 8 0 119.033 0 256s111.033 248 248 248 248-111.033 248-248S384.967 8 248 8Zm114.952 168.66c-3.732 39.215-19.881 134.378-28.1 178.3-3.476 18.584-10.322 24.816-16.948 25.425-14.4 1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25 5.342-39.5 3.652-3.793 67.107-61.51 68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608 69.142-14.845 10.194-26.894 9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7 18.45-13.7 108.446-47.248 144.628-62.3c68.872-28.647 83.183-33.623 92.511-33.789 2.052-.034 6.639.474 9.61 2.885a10.452 10.452 0 0 1 3.53 6.716 43.765 43.765 0 0 1 .417 9.769Z"></path></svg> <svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496m115 168.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7.2-.7.3-3.1-1.2-4.4s-3.6-.8-5.1-.5c-2.2.5-37.1 23.5-104.6 69.1-9.9 6.8-18.9 10.1-26.9 9.9-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3.6-4.5 6.7-9 18.4-13.7 72.3-31.5 120.5-52.3 144.6-62.3 68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6.5 9.6 2.9 2 1.7 3.2 4.1 3.5 6.7.5 3.2.6 6.5.4 9.8z" fill="currentColor"></path></svg>
</a> </a>
<a class="md-social__link" href="https://twitter.com/InsanusMokrassa" rel="noopener" target="_blank" title="twitter.com"> <a class="md-social__link" href="https://twitter.com/InsanusMokrassa" rel="noopener" target="_blank" title="twitter.com">
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.5.1 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 2023 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg> <svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.0.0 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 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3" fill="currentColor"></path></svg>
</a> </a>
</div> </div>
</div> </div>
@@ -952,8 +1079,8 @@
<div class="md-dialog" data-md-component="dialog"> <div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.action.edit", "content.action.view", "content.code.annotate", "content.code.copy", "content.tooltips", "navigation.footer", "navigation.indexes", "navigation.sections", "navigation.tabs", "navigation.top", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "search": "../assets/javascripts/workers/search.f886a092.min.js", "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"}}</script> <script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.action.edit", "content.action.view", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "navigation.footer", "navigation.indexes", "navigation.sections", "navigation.tabs", "navigation.top", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "search": "../assets/javascripts/workers/search.973d3a69.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>
<script src="../assets/javascripts/bundle.d7c377c4.min.js"></script> <script src="../assets/javascripts/bundle.92b07e13.min.js"></script>
<script type="module">import mermaid from "https://unpkg.com/mermaid@10.4.0/dist/mermaid.esm.min.mjs"; <script type="module">import mermaid from "https://unpkg.com/mermaid@10.4.0/dist/mermaid.esm.min.mjs";
mermaid.initialize({ mermaid.initialize({
theme: (JSON.parse(__md_get("__palette").index == 1)) ? 'dark' : 'light' theme: (JSON.parse(__md_get("__palette").index == 1)) ? 'dark' : 'light'

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -2,207 +2,186 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url> <url>
<loc>https://docs.inmo.dev/index.html</loc> <loc>https://docs.inmo.dev/index.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/krontab/index.html</loc> <loc>https://docs.inmo.dev/krontab/index.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/krontab/describing/krontabscheduler.html</loc> <loc>https://docs.inmo.dev/krontab/describing/krontabscheduler.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/krontab/describing/string-format.html</loc> <loc>https://docs.inmo.dev/krontab/describing/string-format.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/krontab/introduction/faq.html</loc> <loc>https://docs.inmo.dev/krontab/introduction/faq.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/krontab/introduction/how-to-use.html</loc> <loc>https://docs.inmo.dev/krontab/introduction/how-to-use.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/krontab/introduction/including-in-project.html</loc> <loc>https://docs.inmo.dev/krontab/introduction/including-in-project.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/kslog/index.html</loc> <loc>https://docs.inmo.dev/kslog/index.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/kslog/logging.html</loc> <loc>https://docs.inmo.dev/kslog/logging.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/kslog/setup.html</loc> <loc>https://docs.inmo.dev/kslog/setup.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/micro_utils/index.html</loc> <loc>https://docs.inmo.dev/micro_utils/index.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq> </url>
<url>
<loc>https://docs.inmo.dev/micro_utils/colors.ktstemplate.html</loc>
<lastmod>2025-08-18</lastmod>
</url>
<url>
<loc>https://docs.inmo.dev/micro_utils/colors.html</loc>
<lastmod>2025-08-18</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/micro_utils/resources.html</loc> <loc>https://docs.inmo.dev/micro_utils/resources.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq> </url>
<url>
<loc>https://docs.inmo.dev/micro_utils/startup.html</loc>
<lastmod>2025-08-18</lastmod>
</url>
<url>
<loc>https://docs.inmo.dev/micro_utils/repos/index.html</loc>
<lastmod>2025-08-18</lastmod>
</url>
<url>
<loc>https://docs.inmo.dev/micro_utils/repos/inmemory.html</loc>
<lastmod>2025-08-18</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/navigation/index.html</loc> <loc>https://docs.inmo.dev/navigation/index.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/navigation/getting-started.html</loc> <loc>https://docs.inmo.dev/navigation/getting-started.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/plagubot/index.html</loc> <loc>https://docs.inmo.dev/plagubot/index.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/plagubot/opportunities_out_of_the_box.html</loc> <loc>https://docs.inmo.dev/plagubot/opportunities_out_of_the_box.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/services/index.html</loc> <loc>https://docs.inmo.dev/services/index.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/index.html</loc> <loc>https://docs.inmo.dev/tgbotapi/index.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/faq.html</loc> <loc>https://docs.inmo.dev/tgbotapi/faq.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/logs.html</loc> <loc>https://docs.inmo.dev/tgbotapi/logs.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/dsls/keyboards.html</loc> <loc>https://docs.inmo.dev/tgbotapi/dsls/keyboards.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/dsls/live-location.html</loc> <loc>https://docs.inmo.dev/tgbotapi/dsls/live-location.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/dsls/text.html</loc> <loc>https://docs.inmo.dev/tgbotapi/dsls/text.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/guides/keyboards.html</loc> <loc>https://docs.inmo.dev/tgbotapi/guides/keyboards.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/introduction/before-any-bot-project.html</loc> <loc>https://docs.inmo.dev/tgbotapi/introduction/before-any-bot-project.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/introduction/first-bot.html</loc> <loc>https://docs.inmo.dev/tgbotapi/introduction/first-bot.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/introduction/including-in-your-project.html</loc> <loc>https://docs.inmo.dev/tgbotapi/introduction/including-in-your-project.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/introduction/proxy-setup.html</loc> <loc>https://docs.inmo.dev/tgbotapi/introduction/proxy-setup.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/logic/api-extensions.html</loc> <loc>https://docs.inmo.dev/tgbotapi/logic/api-extensions.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/logic/behaviour-builder-with-fsm.html</loc> <loc>https://docs.inmo.dev/tgbotapi/logic/behaviour-builder-with-fsm.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/logic/behaviour-builder.html</loc> <loc>https://docs.inmo.dev/tgbotapi/logic/behaviour-builder.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/logic/exceptions-handling.html</loc> <loc>https://docs.inmo.dev/tgbotapi/logic/exceptions-handling.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/logic/files-handling.html</loc> <loc>https://docs.inmo.dev/tgbotapi/logic/files-handling.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/logic/low-level-work-with-bots.html</loc> <loc>https://docs.inmo.dev/tgbotapi/logic/low-level-work-with-bots.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/logic/media-groups.html</loc> <loc>https://docs.inmo.dev/tgbotapi/logic/media-groups.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/logic/types-conversations.html</loc> <loc>https://docs.inmo.dev/tgbotapi/logic/types-conversations.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/logic/updates-with-flows.html</loc> <loc>https://docs.inmo.dev/tgbotapi/logic/updates-with-flows.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/updates/heroku.html</loc> <loc>https://docs.inmo.dev/tgbotapi/updates/heroku.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/updates/long-polling.html</loc> <loc>https://docs.inmo.dev/tgbotapi/updates/long-polling.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/updates/updates-filters.html</loc> <loc>https://docs.inmo.dev/tgbotapi/updates/updates-filters.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://docs.inmo.dev/tgbotapi/updates/webhooks.html</loc> <loc>https://docs.inmo.dev/tgbotapi/updates/webhooks.html</loc>
<lastmod>2023-12-21</lastmod> <lastmod>2025-08-18</lastmod>
<changefreq>daily</changefreq>
</url> </url>
</urlset> </urlset>

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff