diff --git a/config.yaml b/config.yaml
new file mode 100644
index 0000000..16490da
--- /dev/null
+++ b/config.yaml
@@ -0,0 +1,23 @@
+baseURL: https://digitalstudium.com
+theme: ds
+
+languages:
+ en:
+ language_name: English
+ title: Digital Studium
+ description: Blog about Linux, DevOps and cloud technologies
+ author: Konstantin Shutkin
+ github: digitalstudium
+
+ ru:
+ language_name: Русский
+ title: Digital Studium
+ description: Блог о Linux, DevOps и облачных технологиях
+ author: Константин Шуткин
+ github: digitalstudium
+ youtube: digitalstudium
+ telegram: digitalstudium
+
+schema:
+ type: TechArticle
+ copyright: http://creativecommons.org/licenses/by/4.0/
diff --git a/config/_default/config.yaml b/config/_default/config.yaml
deleted file mode 100644
index ab4eca6..0000000
--- a/config/_default/config.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-title: Digital Studium
-baseURL: https://digitalstudium.com
-theme: ds
-
-defaultContentLanguageInSubdir: true
-languages:
- en:
- contentDir: content/en
- languageName: English
- params:
- author: Konstantin Shutkin
- description: Blog about Linux, DevOps and cloud technologies
- github: digitalstudium
- ru:
- contentDir: content/ru
- languageName: Русский
- params:
- author: Константин Шуткин
- description: Блог о Linux, DevOps и облачных технологиях
- github: digitalstudium
- youtube: digitalstudium
- telegram: digitalstudium
-
-params:
- authorPage: /about-author
- logo: /static/images/logo.svg
- schemaType: TechArticle
- copyright: http://creativecommons.org/licenses/by/4.0/
- includeJS: ['copy.js']
-
-# deployment:
-# targets:
-# - name: yandex cloud
-# URL: s3://digitalstudium.com?region=ru-central1&endpoint=storage.yandexcloud.net
-
-enableRobotsTXT: true
\ No newline at end of file
diff --git a/config/production/config.yaml b/config/production/config.yaml
deleted file mode 100644
index 4503cf6..0000000
--- a/config/production/config.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-module:
- mounts:
- - source: "static"
- target: "static"
- excludeFiles: "admin"
\ No newline at end of file
diff --git a/content/en/about-author.md b/content/en/about-author.md
index 45ca6b7..11d327a 100644
--- a/content/en/about-author.md
+++ b/content/en/about-author.md
@@ -2,7 +2,7 @@
title: About author
category: /
filename: about-author
-featured_image: /images/kostya.jpg
+image: /images/kostya.jpg
date: 2023-02-18
---
My name is Konstantin Shutkin, I am from Moscow, Russia and I am a DevOps engineer. Since 2016, I have worked in this position in companies such as Severstal, Sberbank, Nvidia. My main subject of research and work is Linux, Docker, Kubernetes, Python programming and more. I share my knowledge on this blog.
diff --git a/content/en/ubuntu-lifehacks/ubuntu-how-to-upgrade-kernel.md b/content/en/ubuntu-lifehacks/ubuntu-how-to-upgrade-kernel.md
index 9c078a9..0634b84 100644
--- a/content/en/ubuntu-lifehacks/ubuntu-how-to-upgrade-kernel.md
+++ b/content/en/ubuntu-lifehacks/ubuntu-how-to-upgrade-kernel.md
@@ -6,11 +6,11 @@ date: 2022-05-14
---
This article describes how to upgrade Linux kernel on Ubuntu operating system via command line interface.
-```
### First method
The first method is very simple. We need to enter only one command in the terminal:
```bash
sudo apt update && sudo apt -y upgrade
+```
The `sudo apt update` command will update the repository cache, and the `sudo apt -y upgrade` command will install new versions of all installed programs, including the linux kernel. The advantage of this method is that the latest version of the linux kernel, officially supported by Ubuntu OS, will be installed. The disadvantage of this method is that the officially supported kernel is usually not the newest. Sometimes it happens that it is necessary to install the latest version of the linux kernel. Real world example: your new laptop may have a CPU which is only supported in linux kernel version 5.12, while the officially supported version is older. And here the second method comes to the rescue.
### Second method
The first step is to go to https://kernel.ubuntu.com/~kernel-ppa/mainline/. On this site, you need to select the folder with the latest version of the linux kernel (at the very bottom of the page). Note that it is recommended to select the version without the "rc" suffix. The "rc" suffix means "release candidate", which in turn means that the given kernel version is not stable. On the page that opens, select the folder with the architecture of your processor. The architecture can be found using the `uname -p` command. If the output of this command is "x86_64", then select the amd64 folder. On the opened page there will be links to .deb files. We need to download 4 of them:
diff --git a/content/ru/about-author.md b/content/ru/about-author.md
index aced57d..22dba72 100644
--- a/content/ru/about-author.md
+++ b/content/ru/about-author.md
@@ -2,10 +2,9 @@
title: Об авторе
category: /
filename: about-author
-featured_image: /images/kostya.jpg
+image: /images/kostya.jpg
date: 2023-02-18
---
-{{< figure src="/images/kostya.jpg" width="100px" class="floatleft alignleft" >}}
Меня зовут Константин Шуткин, я живу в городе Москва и я DevOps-инженер. С 2016 года я работал на этой должности в таких компаниях, как Северсталь, Сбербанк, Nvidia. Мой основной предмет исследований и работы это Linux, Docker, Kubernetes, программирование на Python и т. д., и я делюсь своими знаниями в этих областях на этом сайте и на ютуб канале.
Мой youtube канал: https://youtube.com/DigitalStudium
diff --git a/deploy b/deploy
index db0dbd7..8fdc3e3 100755
--- a/deploy
+++ b/deploy
@@ -3,6 +3,6 @@ USER=root
HOST=digitalstudium.com
DIR=/srv/$HOST # the directory where your web site files should go
-hugo --minify && rsync -avz --delete public/ ${USER}@${HOST}:${DIR} # this will delete everything on the server that's not in the local public folder
+crater -p && rsync -avz --delete public/ ${USER}@${HOST}:${DIR} # this will delete everything on the server that's not in the local public folder
exit 0
\ No newline at end of file
diff --git a/i18n/en.yaml b/i18n/en.yaml
deleted file mode 100644
index d81d371..0000000
--- a/i18n/en.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-bash-lifehacks:
- other: BASH lifehacks
-nginx-lifehacks:
- other: Nginx lifehacks
-linux-lifehacks:
- other: Linux lifehacks
-ubuntu-lifehacks:
- other: Ubuntu lifehacks
-python-lifehacks:
- other: Python lifehacks
\ No newline at end of file
diff --git a/i18n/ru.yaml b/i18n/ru.yaml
deleted file mode 100644
index 19e12e3..0000000
--- a/i18n/ru.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-bash-lifehacks:
- other: BASH лайфхаки
-nginx-lifehacks:
- other: Nginx лайфхаки
-linux-lifehacks:
- other: Linux лайфхаки
-ubuntu-lifehacks:
- other: Ubuntu лайфхаки
-python-lifehacks:
- other: Python лайфхаки
\ No newline at end of file
diff --git a/static/admin/config.yml b/static/admin/config.yml
deleted file mode 100644
index 3def80a..0000000
--- a/static/admin/config.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-backend:
- name: git-gateway
-
-local_backend: true
-
-media_folder: "static/images" # Media files will be stored in the repo under static/images
-public_folder: "/images" # The src attribute for uploaded media will begin with /images
-
-i18n:
- structure: multiple_folders
- locales: [en, ru]
-
-collections:
- - name: posts
- label: Posts
- label_singular: Post
- folder: content
- path: '{{category}}/{{slug}}'
- slug: '{{filename}}{{extension}}'
- create: true
- i18n: true
- view_groups:
- - label: Year
- field: date
- pattern: \d{4}
- - label: Category
- field: category
- fields:
- - label: Title
- name: title
- widget: string
- i18n: true
- - label: "Category"
- name: "category"
- widget: "select"
- options: ["/", "linux-lifehacks", "nginx-lifehacks", "python-lifehacks", "ubuntu-lifehacks", "bash-lifehacks"]
- i18n: duplicate
- - label: Filename
- name: filename
- widget: string
- i18n: duplicate
- # - label: "Featured Image"
- # name: "featured_image"
- # widget: "image"
- # media_folder: "/assets/images"
- # public_folder: "/images"
- # i18n: duplicate
- - label: Date
- name: date
- widget: datetime
- i18n: duplicate
- - label: Body
- name: body
- widget: markdown
- i18n: true
\ No newline at end of file
diff --git a/static/admin/index.html b/static/admin/index.html
deleted file mode 100644
index 47c02e0..0000000
--- a/static/admin/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
- Content Manager
-
-
-
-
-
-
\ No newline at end of file
diff --git a/static/admin/netlify-cms.js b/static/admin/netlify-cms.js
deleted file mode 100644
index 47cfb9b..0000000
--- a/static/admin/netlify-cms.js
+++ /dev/null
@@ -1,723 +0,0 @@
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("NetlifyCms",[],t):"object"==typeof exports?exports.NetlifyCms=t():e.NetlifyCms=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1934)}([function(e,t,n){"use strict";e.exports=n(792)},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}n.d(t,"a",(function(){return S})),n.d(t,"b",(function(){return M})),n.d(t,"c",(function(){return z})),n.d(t,"d",(function(){return I})),n.d(t,"e",(function(){return O})),n.d(t,"f",(function(){return F})),n.d(t,"g",(function(){return E})),n.d(t,"h",(function(){return r})),n.d(t,"i",(function(){return a})),n.d(t,"j",(function(){return i})),n.d(t,"k",(function(){return C})),n.d(t,"l",(function(){return s})),n.d(t,"m",(function(){return B})),n.d(t,"n",(function(){return N})),n.d(t,"o",(function(){return y})),n.d(t,"p",(function(){return L})),n.d(t,"q",(function(){return l})),n.d(t,"r",(function(){return g})),n.d(t,"s",(function(){return v})),n.d(t,"t",(function(){return u})),n.d(t,"u",(function(){return T})),n.d(t,"v",(function(){return D})),n.d(t,"w",(function(){return h})),n.d(t,"x",(function(){return b})),n.d(t,"y",(function(){return m}));var S={ANCHOR:"&",COMMENT:"#",TAG:"!",DIRECTIVES_END:"-",DOCUMENT_END:"."},O={ALIAS:"ALIAS",BLANK_LINE:"BLANK_LINE",BLOCK_FOLDED:"BLOCK_FOLDED",BLOCK_LITERAL:"BLOCK_LITERAL",COMMENT:"COMMENT",DIRECTIVE:"DIRECTIVE",DOCUMENT:"DOCUMENT",FLOW_MAP:"FLOW_MAP",FLOW_SEQ:"FLOW_SEQ",MAP:"MAP",MAP_KEY:"MAP_KEY",MAP_VALUE:"MAP_VALUE",PLAIN:"PLAIN",QUOTE_DOUBLE:"QUOTE_DOUBLE",QUOTE_SINGLE:"QUOTE_SINGLE",SEQ:"SEQ",SEQ_ITEM:"SEQ_ITEM"},C="tag:yaml.org,2002:",T={MAP:"tag:yaml.org,2002:map",SEQ:"tag:yaml.org,2002:seq",STR:"tag:yaml.org,2002:str"};function A(e){for(var t=[0],n=e.indexOf("\n");-1!==n;)n+=1,t.push(n),n=e.indexOf("\n",n);return t}function P(e){var t,n;return"string"==typeof e?(t=A(e),n=e):(Array.isArray(e)&&(e=e[0]),e&&e.context&&(e.lineStarts||(e.lineStarts=A(e.context.src)),t=e.lineStarts,n=e.context.src)),{lineStarts:t,src:n}}function R(e,t){if("number"!=typeof e||e<0)return null;var n=P(t),r=n.lineStarts,i=n.src;if(!r||!i||e>i.length)return null;for(var o=0;o=1)||e>r.length)return null;for(var o=r[e-1],a=r[e];a&&a>o&&"\n"===i[a-1];)--a;return i.slice(o,a)}var I=function(){function e(t,n){i(this,e),this.start=t,this.end=n||t}return a(e,[{key:"isEmpty",value:function(){return"number"!=typeof this.start||!this.end||this.end<=this.start}},{key:"setOrigRange",value:function(e,t){var n=this.start,r=this.end;if(0===e.length||r<=e[0])return this.origStart=n,this.origEnd=r,t;for(var i=t;in);)++i;this.origStart=n+i;for(var o=i;i=r);)++i;return this.origEnd=r+i,o}}],[{key:"copy",value:function(t){return new e(t.start,t.end)}}]),e}(),M=function(){function e(t,n,r){i(this,e),Object.defineProperty(this,"context",{value:r||null,writable:!0}),this.error=null,this.range=null,this.valueRange=null,this.props=n||[],this.type=t,this.value=null}return a(e,[{key:"getPropValue",value:function(e,t,n){if(!this.context)return null;var r=this.context.src,i=this.props[e];return i&&r[i.start]===t?r.slice(i.start+(n?1:0),i.end):null}},{key:"anchor",get:function(){for(var e=0;e0?e.join("\n"):null}},{key:"commentHasRequiredWhitespace",value:function(t){var n=this.context.src;if(this.header&&t===this.header.end)return!1;if(!this.valueRange)return!1;var r=this.valueRange.end;return t!==r||e.atBlank(n,r-1)}},{key:"hasComment",get:function(){if(this.context)for(var e=this.context.src,t=0;t=t.length||"\n"===t[i]?r+"\n":r}},{key:"atDocumentBoundary",value:function(e,t,n){var r=e[t];if(!r)return!0;var i=e[t-1];if(i&&"\n"!==i)return!1;if(n){if(r!==n)return!1}else if(r!==S.DIRECTIVES_END&&r!==S.DOCUMENT_END)return!1;var o=e[t+1],a=e[t+2];if(o!==r||a!==r)return!1;var s=e[t+3];return!s||"\n"===s||"\t"===s||" "===s}},{key:"endOfIdentifier",value:function(e,t){for(var n=e[t],r="<"===n,i=r?["\n","\t"," ",">"]:["\n","\t"," ","[","]","{","}",","];n&&-1===i.indexOf(n);)n=e[t+=1];return r&&">"===n&&(t+=1),t}},{key:"endOfIndent",value:function(e,t){for(var n=e[t];" "===n;)n=e[t+=1];return t}},{key:"endOfLine",value:function(e,t){for(var n=e[t];n&&"\n"!==n;)n=e[t+=1];return t}},{key:"endOfWhiteSpace",value:function(e,t){for(var n=e[t];"\t"===n||" "===n;)n=e[t+=1];return t}},{key:"startOfLine",value:function(e,t){var n=e[t-1];if("\n"===n)return t;for(;n&&"\n"!==n;)n=e[t-=1];return t+1}},{key:"endOfBlockIndent",value:function(t,n,r){var i=e.endOfIndent(t,r);if(i>r+n)return i;var o=e.endOfWhiteSpace(t,i),a=t[o];return a&&"\n"!==a?null:o}},{key:"atBlank",value:function(e,t,n){var r=e[t];return"\n"===r||"\t"===r||" "===r||n&&!r}},{key:"nextNodeIsIndented",value:function(e,t,n){return!(!e||t<0)&&(t>0||n&&"-"===e)}},{key:"normalizeOffset",value:function(t,n){var r=t[n];return r?"\n"!==r&&"\n"===t[n-1]?n-1:e.endOfWhiteSpace(t,n):n}},{key:"foldNewline",value:function(t,n,r){for(var i=0,o=!1,a="",s=t[n+1];" "===s||"\t"===s||"\n"===s;){switch(s){case"\n":i=0,n+=1,a+="\n";break;case"\t":i<=r&&(o=!0),n=e.endOfWhiteSpace(t,n+2)-1;break;case" ":i+=1,n+=1}s=t[n+1]}return a||(a=" "),s&&i<=r&&(o=!0),{fold:a,offset:n,error:o}}}]),e}(),L=function(e){l(n,e);var t=g(n);function n(e,r,o){var a;if(i(this,n),!(o&&r instanceof M))throw new Error("Invalid arguments for new ".concat(e));return(a=t.call(this)).name=e,a.message=o,a.source=r,a}return a(n,[{key:"makePretty",value:function(){if(this.source){this.nodeType=this.source.type;var e=this.source.context&&this.source.context.root;if("number"==typeof this.offset){this.range=new I(this.offset,this.offset+1);var t=e&&R(this.offset,e);if(t){var n={line:t.line,col:t.col+1};this.linePos={start:t,end:n}}delete this.offset}else this.range=this.source.range,this.linePos=this.source.rangeAsLinePos;if(this.linePos){var r=this.linePos.start,i=r.line,o=r.col;this.message+=" at line ".concat(i,", column ").concat(o);var a=e&&function(e,t){var n=e.start,r=e.end,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:80,o=j(n.line,t);if(!o)return null;var a=n.col;if(o.length>i)if(a<=i-10)o=o.substr(0,i-1)+"…";else{var s=Math.round(i/2);o.length>a+s&&(o=o.substr(0,a+s-1)+"…"),a-=o.length-i,o="…"+o.substr(1-i)}var l=1,u="";r&&(r.line===n.line&&a+(r.col-n.col)<=i+1?l=r.col-n.col:(l=Math.min(o.length+1,i)-a,u="…"));var c=a>1?" ".repeat(a-1):"",d="^".repeat(l);return"".concat(o,"\n").concat(c).concat(d).concat(u)}(this.linePos,e);a&&(this.message+=":\n\n".concat(a,"\n"))}delete this.source}}}]),n}(p(Error)),D=function(e){l(n,e);var t=g(n);function n(e,r){return i(this,n),t.call(this,"YAMLReferenceError",e,r)}return n}(L),N=function(e){l(n,e);var t=g(n);function n(e,r){return i(this,n),t.call(this,"YAMLSemanticError",e,r)}return n}(L),F=function(e){l(n,e);var t=g(n);function n(e,r){return i(this,n),t.call(this,"YAMLSyntaxError",e,r)}return n}(L),B=function(e){l(n,e);var t=g(n);function n(e,r){return i(this,n),t.call(this,"YAMLWarning",e,r)}return n}(L),z=function(e){l(n,e);var t=g(n);function n(){return i(this,n),t.apply(this,arguments)}return a(n,[{key:"strValue",get:function(){if(!this.valueRange||!this.context)return null;for(var e=this.valueRange,t=e.start,n=e.end,r=this.context.src,i=r[n-1];tu?r.slice(u,a+1):s)}else o+=s}var d=r[t];switch(d){case"\t":return{errors:[new N(this,"Plain value cannot start with a tab character")],str:o};case"@":case"`":var f="Plain value cannot start with reserved character ".concat(d);return{errors:[new N(this,f)],str:o};default:return o}}},{key:"parseBlockValue",value:function(e){for(var t=this.context,r=t.indent,i=t.inFlow,o=t.src,a=e,s=e,l=o[a];"\n"===l&&!M.atDocumentBoundary(o,a+1);l=o[a]){var u=M.endOfBlockIndent(o,r,a+1);if(null===u||"#"===o[u])break;a="\n"===o[u]?u:s=n.endOfLine(o,u,i)}return this.valueRange.isEmpty()&&(this.valueRange.start=e),this.valueRange.end=s,s}},{key:"parse",value:function(e,t){this.context=e;var r=e.inFlow,i=e.src,o=t,a=i[o];return a&&"#"!==a&&"\n"!==a&&(o=n.endOfLine(i,t,r)),this.valueRange=new I(t,o),o=M.endOfWhiteSpace(i,o),o=this.parseComment(o),this.hasComment&&!this.valueRange.isEmpty()||(o=this.parseBlockValue(o)),o}}],[{key:"endOfLine",value:function(e,t,n){for(var r=e[t],i=t;r&&"\n"!==r&&(!n||"["!==r&&"]"!==r&&"{"!==r&&"}"!==r&&","!==r);){var o=e[i+1];if(":"===r&&(!o||"\n"===o||"\t"===o||" "===o||n&&","===o))break;if((" "===r||"\t"===r)&&"#"===o)break;i+=1,r=o}return i}}]),n}(M)},function(e,t,n){e.exports=n(800)()},function(e,t,n){"use strict";n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return s})),n.d(t,"d",(function(){return l})),n.d(t,"e",(function(){return u})),n.d(t,"f",(function(){return c})),n.d(t,"g",(function(){return d})),n.d(t,"h",(function(){return f})),n.d(t,"i",(function(){return p})),n.d(t,"j",(function(){return h})),n.d(t,"k",(function(){return m})),n.d(t,"l",(function(){return g})),n.d(t,"m",(function(){return v})),n.d(t,"n",(function(){return y})),n.d(t,"o",(function(){return b})),n.d(t,"p",(function(){return _})),n.d(t,"q",(function(){return w})),n.d(t,"r",(function(){return x})),n.d(t,"s",(function(){return E})),n.d(t,"t",(function(){return S})),n.d(t,"u",(function(){return O})),n.d(t,"v",(function(){return C})),n.d(t,"w",(function(){return T})),n.d(t,"x",(function(){return A})),n.d(t,"y",(function(){return P})),n.d(t,"z",(function(){return R})),n.d(t,"A",(function(){return j})),n.d(t,"B",(function(){return I})),n.d(t,"C",(function(){return M})),n.d(t,"D",(function(){return L})),n.d(t,"E",(function(){return D})),n.d(t,"G",(function(){return N})),n.d(t,"H",(function(){return F})),n.d(t,"F",(function(){return B})),n.d(t,"a",(function(){return z})),n.d(t,"I",(function(){return U}));var r=n(206),i=n(67),o=n(23);function a(e){for(var t=h(),n=0,r=e.length;no&&(u|=i.a.RIGHT),la&&(u|=i.a.ABOVE),u===i.a.UNKNOWN&&(u=i.a.INTERSECTING),u}function h(){return[1/0,1/0,-1/0,-1/0]}function m(e,t,n,r,i){return i?(i[0]=e,i[1]=t,i[2]=n,i[3]=r,i):[e,t,n,r]}function g(e){return m(1/0,1/0,-1/0,-1/0,e)}function v(e,t){var n=e[0],r=e[1];return m(n,r,n,r,t)}function y(e,t,n,r,i){return x(g(i),e,t,n,r)}function b(e,t){return e[0]==t[0]&&e[2]==t[2]&&e[1]==t[1]&&e[3]==t[3]}function _(e,t){return t[0]e[2]&&(e[2]=t[2]),t[1]e[3]&&(e[3]=t[3]),e}function w(e,t){t[0]e[2]&&(e[2]=t[0]),t[1]e[3]&&(e[3]=t[1])}function x(e,t,n,r,i){for(;nt[0]?r[0]=e[0]:r[0]=t[0],e[1]>t[1]?r[1]=e[1]:r[1]=t[1],e[2]=t[0]&&e[1]<=t[3]&&e[3]>=t[1]}function N(e){return e[2]=s&&v<=u),r||!(a&i.a.RIGHT)||o&i.a.RIGHT||(r=(y=m-(h-u)*g)>=l&&y<=c),r||!(a&i.a.BELOW)||o&i.a.BELOW||(r=(v=h-(m-l)/g)>=s&&v<=u),r||!(a&i.a.LEFT)||o&i.a.LEFT||(r=(y=m-(h-s)*g)>=l&&y<=c)}return r}function z(e,t,n,r){var i=[];if(r>1)for(var o=e[2]-e[0],a=e[3]-e[1],s=0;s=n[2])){var i=L(n),o=Math.floor((r[0]-n[0])/i)*i;e[0]-=o,e[2]-=o}return e}},function(e,t,n){e.exports=function(){"use strict";var e=Array.prototype.slice;function t(e,t){t&&(e.prototype=Object.create(t.prototype)),e.prototype.constructor=e}function n(e){return a(e)?e:q(e)}function r(e){return s(e)?e:W(e)}function i(e){return l(e)?e:H(e)}function o(e){return a(e)&&!u(e)?e:$(e)}function a(e){return!(!e||!e[d])}function s(e){return!(!e||!e[f])}function l(e){return!(!e||!e[p])}function u(e){return s(e)||l(e)}function c(e){return!(!e||!e[h])}t(r,n),t(i,n),t(o,n),n.isIterable=a,n.isKeyed=s,n.isIndexed=l,n.isAssociative=u,n.isOrdered=c,n.Keyed=r,n.Indexed=i,n.Set=o;var d="@@__IMMUTABLE_ITERABLE__@@",f="@@__IMMUTABLE_KEYED__@@",p="@@__IMMUTABLE_INDEXED__@@",h="@@__IMMUTABLE_ORDERED__@@",m={},g={value:!1},v={value:!1};function y(e){return e.value=!1,e}function b(e){e&&(e.value=!0)}function _(){}function w(e,t){t=t||0;for(var n=Math.max(0,e.length-t),r=new Array(n),i=0;i>>0;if(""+n!==t||4294967295===n)return NaN;t=n}return t<0?x(e)+t:t}function E(){return!0}function S(e,t,n){return(0===e||void 0!==n&&e<=-n)&&(void 0===t||void 0!==n&&t>=n)}function O(e,t){return T(e,t,0)}function C(e,t){return T(e,t,t)}function T(e,t,n){return void 0===e?n:e<0?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}var A,P,R,j="function"==typeof Symbol&&Symbol.iterator,I=j||"@@iterator";function M(e){this.next=e}function L(e,t,n,r){var i=0===e?t:1===e?n:[t,n];return r?r.value=i:r={value:i,done:!1},r}function D(){return{value:void 0,done:!0}}function N(e){return!!z(e)}function F(e){return e&&"function"==typeof e.next}function B(e){var t=z(e);return t&&t.call(e)}function z(e){var t=e&&(j&&e[j]||e["@@iterator"]);if("function"==typeof t)return t}function U(e){return e&&"number"==typeof e.length}function q(e){return null==e?X():a(e)?e.toSeq():function(e){var t=ee(e)||"object"==typeof e&&new G(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}(e)}function W(e){return null==e?X().toKeyedSeq():a(e)?s(e)?e.toSeq():e.fromEntrySeq():Z(e)}function H(e){return null==e?X():a(e)?s(e)?e.entrySeq():e.toIndexedSeq():J(e)}function $(e){return(null==e?X():a(e)?s(e)?e.entrySeq():e:J(e)).toSetSeq()}function V(e){this._array=e,this.size=e.length}function G(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function K(e){this._iterable=e,this.size=e.length||e.size}function Y(e){this._iterator=e,this._iteratorCache=[]}function Q(e){return!(!e||!e["@@__IMMUTABLE_SEQ__@@"])}function X(){return A||(A=new V([]))}function Z(e){var t=Array.isArray(e)?new V(e).fromEntrySeq():F(e)?new Y(e).fromEntrySeq():N(e)?new K(e).fromEntrySeq():"object"==typeof e?new G(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function J(e){var t=ee(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function ee(e){return U(e)?new V(e):F(e)?new Y(e):N(e)?new K(e):void 0}function te(e,t,n,r){var i=e._cache;if(i){for(var o=i.length-1,a=0;a<=o;a++){var s=i[n?o-a:a];if(!1===t(s[1],r?s[0]:a,e))return a+1}return a}return e.__iterateUncached(t,n)}function ne(e,t,n,r){var i=e._cache;if(i){var o=i.length-1,a=0;return new M((function(){var e=i[n?o-a:a];return a++>o?{value:void 0,done:!0}:L(t,r?e[0]:a-1,e[1])}))}return e.__iteratorUncached(t,n)}function re(e,t){return t?function e(t,n,r,i){return Array.isArray(n)?t.call(i,r,H(n).map((function(r,i){return e(t,r,i,n)}))):oe(n)?t.call(i,r,W(n).map((function(r,i){return e(t,r,i,n)}))):n}(t,e,"",{"":e}):ie(e)}function ie(e){return Array.isArray(e)?H(e).map(ie).toList():oe(e)?W(e).map(ie).toMap():e}function oe(e){return e&&(e.constructor===Object||void 0===e.constructor)}function ae(e,t){if(e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if((e=e.valueOf())===(t=t.valueOf())||e!=e&&t!=t)return!0;if(!e||!t)return!1}return!("function"!=typeof e.equals||"function"!=typeof t.equals||!e.equals(t))}function se(e,t){if(e===t)return!0;if(!a(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||s(e)!==s(t)||l(e)!==l(t)||c(e)!==c(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!u(e);if(c(e)){var r=e.entries();return t.every((function(e,t){var i=r.next().value;return i&&ae(i[1],e)&&(n||ae(i[0],t))}))&&r.next().done}var i=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{i=!0;var o=e;e=t,t=o}var d=!0,f=t.__iterate((function(t,r){if(n?!e.has(t):i?!ae(t,e.get(r,m)):!ae(e.get(r,m),t))return d=!1,!1}));return d&&e.size===f}function le(e,t){if(!(this instanceof le))return new le(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(P)return P;P=this}}function ue(e,t){if(!e)throw new Error(t)}function ce(e,t,n){if(!(this instanceof ce))return new ce(e,t,n);if(ue(0!==n,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),n=void 0===n?1:Math.abs(n),tr?{value:void 0,done:!0}:L(e,i,n[t?r-i++:i++])}))},t(G,W),G.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},G.prototype.has=function(e){return this._object.hasOwnProperty(e)},G.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,i=r.length-1,o=0;o<=i;o++){var a=r[t?i-o:o];if(!1===e(n[a],a,this))return o+1}return o},G.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,i=r.length-1,o=0;return new M((function(){var a=r[t?i-o:o];return o++>i?{value:void 0,done:!0}:L(e,a,n[a])}))},G.prototype[h]=!0,t(K,H),K.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=B(this._iterable),r=0;if(F(n))for(var i;!(i=n.next()).done&&!1!==e(i.value,r++,this););return r},K.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=B(this._iterable);if(!F(n))return new M(D);var r=0;return new M((function(){var t=n.next();return t.done?t:L(e,r++,t.value)}))},t(Y,H),Y.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var n,r=this._iterator,i=this._iteratorCache,o=0;o=r.length){var t=n.next();if(t.done)return t;r[i]=t.value}return L(e,i,r[i++])}))},t(le,H),le.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},le.prototype.get=function(e,t){return this.has(e)?this._value:t},le.prototype.includes=function(e){return ae(this._value,e)},le.prototype.slice=function(e,t){var n=this.size;return S(e,t,n)?this:new le(this._value,C(t,n)-O(e,n))},le.prototype.reverse=function(){return this},le.prototype.indexOf=function(e){return ae(this._value,e)?0:-1},le.prototype.lastIndexOf=function(e){return ae(this._value,e)?this.size:-1},le.prototype.__iterate=function(e,t){for(var n=0;n=0&&t=0&&nn?{value:void 0,done:!0}:L(e,o++,a)}))},ce.prototype.equals=function(e){return e instanceof ce?this._start===e._start&&this._end===e._end&&this._step===e._step:se(this,e)},t(de,n),t(fe,de),t(pe,de),t(he,de),de.Keyed=fe,de.Indexed=pe,de.Set=he;var me="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){var n=65535&(e|=0),r=65535&(t|=0);return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0};function ge(e){return e>>>1&1073741824|3221225471&e}function ve(e){if(!1===e||null==e)return 0;if("function"==typeof e.valueOf&&(!1===(e=e.valueOf())||null==e))return 0;if(!0===e)return 1;var t=typeof e;if("number"===t){if(e!=e||e===1/0)return 0;var n=0|e;for(n!==e&&(n^=4294967295*e);e>4294967295;)n^=e/=4294967295;return ge(n)}if("string"===t)return e.length>Se?function(e){var t=Te[e];return void 0===t&&(t=ye(e),Ce===Oe&&(Ce=0,Te={}),Ce++,Te[e]=t),t}(e):ye(e);if("function"==typeof e.hashCode)return e.hashCode();if("object"===t)return function(e){var t;if(xe&&void 0!==(t=be.get(e)))return t;if(void 0!==(t=e[Ee]))return t;if(!we){if(void 0!==(t=e.propertyIsEnumerable&&e.propertyIsEnumerable[Ee]))return t;if(void 0!==(t=function(e){if(e&&e.nodeType>0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}(e)))return t}if(t=++ke,1073741824&ke&&(ke=0),xe)be.set(e,t);else{if(void 0!==_e&&!1===_e(e))throw new Error("Non-extensible objects are not allowed as keys.");if(we)Object.defineProperty(e,Ee,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(void 0!==e.propertyIsEnumerable&&e.propertyIsEnumerable===e.constructor.prototype.propertyIsEnumerable)e.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},e.propertyIsEnumerable[Ee]=t;else{if(void 0===e.nodeType)throw new Error("Unable to set a non-enumerable property on object.");e[Ee]=t}}return t}(e);if("function"==typeof e.toString)return ye(e.toString());throw new Error("Value type "+t+" cannot be hashed.")}function ye(e){for(var t=0,n=0;n=t.length)throw new Error("Missing value for key: "+t[n]);e.set(t[n],t[n+1])}}))},Pe.prototype.toString=function(){return this.__toString("Map {","}")},Pe.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},Pe.prototype.set=function(e,t){return $e(this,e,t)},Pe.prototype.setIn=function(e,t){return this.updateIn(e,m,(function(){return t}))},Pe.prototype.remove=function(e){return $e(this,e,m)},Pe.prototype.deleteIn=function(e){return this.updateIn(e,(function(){return m}))},Pe.prototype.update=function(e,t,n){return 1===arguments.length?e(this):this.updateIn([e],t,n)},Pe.prototype.updateIn=function(e,t,n){n||(n=t,t=void 0);var r=function e(t,n,r,i){var o=t===m,a=n.next();if(a.done){var s=o?r:t,l=i(s);return l===s?t:l}ue(o||t&&t.set,"invalid keyPath");var u=a.value,c=o?m:t.get(u,m),d=e(c,n,r,i);return d===c?t:d===m?t.remove(u):(o?He():t).set(u,d)}(this,Yt(e),t,n);return r===m?void 0:r},Pe.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):He()},Pe.prototype.merge=function(){return Ye(this,void 0,arguments)},Pe.prototype.mergeWith=function(t){var n=e.call(arguments,1);return Ye(this,t,n)},Pe.prototype.mergeIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,He(),(function(e){return"function"==typeof e.merge?e.merge.apply(e,n):n[n.length-1]}))},Pe.prototype.mergeDeep=function(){return Ye(this,Qe,arguments)},Pe.prototype.mergeDeepWith=function(t){var n=e.call(arguments,1);return Ye(this,Xe(t),n)},Pe.prototype.mergeDeepIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,He(),(function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,n):n[n.length-1]}))},Pe.prototype.sort=function(e){return wt(Ft(this,e))},Pe.prototype.sortBy=function(e,t){return wt(Ft(this,t,e))},Pe.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},Pe.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new _)},Pe.prototype.asImmutable=function(){return this.__ensureOwner()},Pe.prototype.wasAltered=function(){return this.__altered},Pe.prototype.__iterator=function(e,t){return new ze(this,e,t)},Pe.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate((function(t){return r++,e(t[1],t[0],n)}),t),r},Pe.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?We(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},Pe.isMap=Re;var je,Ie="@@__IMMUTABLE_MAP__@@",Me=Pe.prototype;function Le(e,t){this.ownerID=e,this.entries=t}function De(e,t,n){this.ownerID=e,this.bitmap=t,this.nodes=n}function Ne(e,t,n){this.ownerID=e,this.count=t,this.nodes=n}function Fe(e,t,n){this.ownerID=e,this.keyHash=t,this.entries=n}function Be(e,t,n){this.ownerID=e,this.keyHash=t,this.entry=n}function ze(e,t,n){this._type=t,this._reverse=n,this._stack=e._root&&qe(e._root)}function Ue(e,t){return L(e,t[0],t[1])}function qe(e,t){return{node:e,index:0,__prev:t}}function We(e,t,n,r){var i=Object.create(Me);return i.size=e,i._root=t,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function He(){return je||(je=We(0))}function $e(e,t,n){var r,i;if(e._root){var o=y(g),a=y(v);if(r=Ve(e._root,e.__ownerID,0,void 0,t,n,o,a),!a.value)return e;i=e.size+(o.value?n===m?-1:1:0)}else{if(n===m)return e;i=1,r=new Le(e.__ownerID,[[t,n]])}return e.__ownerID?(e.size=i,e._root=r,e.__hash=void 0,e.__altered=!0,e):r?We(i,r):He()}function Ve(e,t,n,r,i,o,a,s){return e?e.update(t,n,r,i,o,a,s):o===m?e:(b(s),b(a),new Be(t,r,[i,o]))}function Ge(e){return e.constructor===Be||e.constructor===Fe}function Ke(e,t,n,r,i){if(e.keyHash===r)return new Fe(t,r,[e.entry,i]);var o,a=31&(0===n?e.keyHash:e.keyHash>>>n),s=31&(0===n?r:r>>>n);return new De(t,1<>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135,e+=e>>8,127&(e+=e>>16)}function et(e,t,n,r){var i=r?e:w(e);return i[t]=n,i}Me[Ie]=!0,Me.delete=Me.remove,Me.removeIn=Me.deleteIn,Le.prototype.get=function(e,t,n,r){for(var i=this.entries,o=0,a=i.length;o=tt)return function(e,t,n,r){e||(e=new _);for(var i=new Be(e,ve(n),[n,r]),o=0;o>>e)),o=this.bitmap;return 0==(o&i)?r:this.nodes[Je(o&i-1)].get(e+5,t,n,r)},De.prototype.update=function(e,t,n,r,i,o,a){void 0===n&&(n=ve(r));var s=31&(0===t?n:n>>>t),l=1<=nt)return function(e,t,n,r,i){for(var o=0,a=new Array(32),s=0;0!==n;s++,n>>>=1)a[s]=1&n?t[o++]:void 0;return a[r]=i,new Ne(e,o+1,a)}(e,f,u,s,h);if(c&&!h&&2===f.length&&Ge(f[1^d]))return f[1^d];if(c&&h&&1===f.length&&Ge(h))return h;var g=e&&e===this.ownerID,v=c?h?u:u^l:u|l,y=c?h?et(f,d,h,g):function(e,t,n){var r=e.length-1;if(n&&t===r)return e.pop(),e;for(var i=new Array(r),o=0,a=0;a>>e),o=this.nodes[i];return o?o.get(e+5,t,n,r):r},Ne.prototype.update=function(e,t,n,r,i,o,a){void 0===n&&(n=ve(r));var s=31&(0===t?n:n>>>t),l=i===m,u=this.nodes,c=u[s];if(l&&!c)return this;var d=Ve(c,e,t+5,n,r,i,o,a);if(d===c)return this;var f=this.count;if(c){if(!d&&--f