lighstorm 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.env.example +5 -0
- data/.gitignore +1 -0
- data/.rspec +1 -0
- data/.rubocop.yml +10 -0
- data/Gemfile +5 -1
- data/Gemfile.lock +32 -8
- data/README.md +30 -341
- data/adapters/connections/channel_node/fee.rb +26 -0
- data/adapters/connections/channel_node.rb +52 -0
- data/adapters/connections/payment_channel.rb +28 -0
- data/adapters/edges/channel.rb +80 -0
- data/adapters/edges/forward.rb +41 -0
- data/adapters/edges/payment/purpose.rb +34 -0
- data/adapters/edges/payment.rb +53 -0
- data/adapters/invoice.rb +50 -0
- data/adapters/nodes/node.rb +77 -0
- data/adapters/payment_request.rb +77 -0
- data/components/cache.rb +3 -2
- data/components/lnd.rb +5 -1
- data/controllers/channel/actions/update_fee.rb +76 -0
- data/controllers/channel/all.rb +79 -0
- data/controllers/channel/find_by_id.rb +153 -0
- data/controllers/channel/mine.rb +114 -0
- data/controllers/channel.rb +23 -0
- data/controllers/forward/all.rb +244 -0
- data/controllers/forward/group_by_channel.rb +89 -0
- data/controllers/forward.rb +28 -0
- data/controllers/invoice/actions/create.rb +36 -0
- data/controllers/invoice/actions/pay.rb +28 -0
- data/controllers/invoice/actions/pay_through_route.rb +71 -0
- data/controllers/invoice/all.rb +70 -0
- data/controllers/invoice/find_by_secret_hash.rb +42 -0
- data/controllers/invoice.rb +36 -0
- data/controllers/node/all.rb +63 -0
- data/controllers/node/find_by_public_key.rb +49 -0
- data/controllers/node/myself.rb +34 -0
- data/controllers/node.rb +23 -0
- data/controllers/payment/all.rb +352 -0
- data/controllers/payment.rb +21 -0
- data/docs/.nojekyll +0 -0
- data/docs/README.md +655 -0
- data/docs/_coverpage.md +12 -0
- data/docs/index.html +26 -0
- data/docs/vendor/docsify/docsify@4.js +1 -0
- data/docs/vendor/docsify-themeable/theme-simple-dark.css +3 -0
- data/docs/vendor/docsify-themeable/theme-simple-dark.css.map +1 -0
- data/docs/vendor/prismjs/prism-bash.min.js +1 -0
- data/docs/vendor/prismjs/prism-ruby.min.js +1 -0
- data/docs/vendor/prismjs/prism-tomorrow.min.css +1 -0
- data/lighstorm.gemspec +4 -2
- data/models/connections/channel_node/accounting.rb +3 -12
- data/models/connections/channel_node/fee.rb +44 -56
- data/models/connections/channel_node/htlc.rb +52 -0
- data/models/connections/channel_node/policy.rb +11 -12
- data/models/connections/channel_node.rb +20 -19
- data/models/connections/forward_channel.rb +8 -43
- data/models/connections/payment_channel.rb +18 -39
- data/models/edges/channel/accounting.rb +42 -18
- data/models/edges/channel/hop.rb +65 -0
- data/models/edges/channel.rb +98 -120
- data/models/edges/forward.rb +9 -118
- data/models/edges/groups/{analysis.rb → channel_forwards/analysis.rb} +9 -9
- data/models/edges/groups/channel_forwards.rb +10 -40
- data/models/edges/payment.rb +29 -214
- data/models/errors.rb +29 -0
- data/models/invoice.rb +49 -0
- data/models/nodes/node/lightning.rb +5 -16
- data/models/nodes/node/platform.rb +7 -13
- data/models/nodes/node.rb +19 -56
- data/models/payment_request.rb +69 -0
- data/models/rate.rb +11 -1
- data/models/satoshis.rb +5 -6
- data/ports/dsl/lighstorm/errors.rb +5 -0
- data/ports/dsl/lighstorm.rb +12 -8
- data/ports/grpc.rb +62 -0
- data/static/cache.rb +12 -0
- data/static/spec.rb +3 -1
- metadata +58 -8
- data/models/connections/channel_node/constraints.rb +0 -24
@@ -0,0 +1,3 @@
|
|
1
|
+
.github-corner{position:absolute;z-index:40;top:0;right:0;border-bottom:0;text-decoration:none}.github-corner svg{height:70px;width:70px;fill:var(--theme-color);color:var(--base-background-color)}.github-corner:hover .octo-arm{-webkit-animation:octocat-wave 560ms ease-in-out;animation:octocat-wave 560ms ease-in-out}@-webkit-keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}.progress{position:fixed;z-index:2147483647;top:0;left:0;right:0;height:3px;width:0;background-color:var(--theme-color);transition:width var(--duration-fast),opacity calc(var(--duration-fast)*2)}body.ready-transition:after,body.ready-transition>*:not(.progress){opacity:0;transition:opacity var(--spinner-transition-duration)}body.ready-transition:after{content:"";position:absolute;z-index:1000;top:calc(50% - var(--spinner-size)/2);left:calc(50% - var(--spinner-size)/2);height:var(--spinner-size);width:var(--spinner-size);border:var(--spinner-track-width, 0) solid var(--spinner-track-color);border-left-color:var(--theme-color);border-left-color:var(--theme-color);border-radius:50%;-webkit-animation:spinner var(--duration-slow) infinite linear;animation:spinner var(--duration-slow) infinite linear}body.ready-transition.ready-spinner:after{opacity:1}body.ready-transition.ready-fix:after{opacity:0}body.ready-transition.ready-fix>*:not(.progress){opacity:1;transition-delay:var(--spinner-transition-duration)}@-webkit-keyframes spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}*,*:before,*:after{box-sizing:inherit;font-size:inherit;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-webkit-touch-callout:none}:root{box-sizing:border-box;background-color:var(--base-background-color);font-size:var(--base-font-size);font-weight:var(--base-font-weight);line-height:var(--base-line-height);letter-spacing:var(--base-letter-spacing);color:var(--base-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:antialiased}html,button,input,optgroup,select,textarea{font-family:var(--base-font-family)}button,input,optgroup,select,textarea{font-size:100%;margin:0}a{text-decoration:none;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}body{margin:0}hr{height:0;margin:2em 0;border:none;border-bottom:var(--hr-border, 0)}img{max-width:100%;border:0}main{display:block}main.hidden{display:none}mark{background:var(--mark-background);color:var(--mark-color)}pre{font-family:var(--pre-font-family);font-size:var(--pre-font-size);font-weight:var(--pre-font-weight);line-height:var(--pre-line-height)}small{display:inline-block;font-size:var(--small-font-size)}strong{font-weight:var(--strong-font-weight);color:var(--strong-color, currentColor)}sub,sup{font-size:var(--subsup-font-size);line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}body:not([data-platform^=Mac]) *{scrollbar-color:hsla(var(--mono-hue), var(--mono-saturation), 50%, 0.3) hsla(var(--mono-hue), var(--mono-saturation), 50%, 0.1);scrollbar-width:thin}body:not([data-platform^=Mac]) * ::-webkit-scrollbar{width:5px;height:5px}body:not([data-platform^=Mac]) * ::-webkit-scrollbar-thumb{background:hsla(var(--mono-hue), var(--mono-saturation), 50%, 0.3)}body:not([data-platform^=Mac]) * ::-webkit-scrollbar-track{background:hsla(var(--mono-hue), var(--mono-saturation), 50%, 0.1)}::-moz-selection{background:var(--selection-color)}::selection{background:var(--selection-color)}.emoji{height:var(--emoji-size);vertical-align:middle}.task-list-item{list-style:none}.task-list-item input{margin-right:.5em;margin-left:0;vertical-align:.075em}.markdown-section code[class*=lang-],.markdown-section pre[data-lang]{font-family:var(--code-font-family);font-size:var(--code-font-size);font-weight:var(--code-font-weight);letter-spacing:normal;line-height:var(--code-block-line-height);-moz-tab-size:var(--code-tab-size);-o-tab-size:var(--code-tab-size);tab-size:var(--code-tab-size);text-align:left;white-space:pre;word-spacing:normal;word-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none}.markdown-section pre[data-lang]{position:relative;overflow:hidden;margin:var(--code-block-margin);padding:0;border-radius:var(--code-block-border-radius)}.markdown-section pre[data-lang]::after{content:attr(data-lang);position:absolute;top:.75em;right:.75em;opacity:.6;color:inherit;font-size:var(--font-size-s);line-height:1}.markdown-section pre[data-lang] code{display:block;overflow:auto;padding:var(--code-block-padding)}code[class*=lang-],pre[data-lang]{color:var(--code-theme-text)}pre[data-lang]::-moz-selection,pre[data-lang] ::-moz-selection,code[class*=lang-]::-moz-selection,code[class*=lang-] ::-moz-selection{background:var(--code-theme-selection, var(--selection-color))}pre[data-lang]::-moz-selection, pre[data-lang] ::-moz-selection, code[class*=lang-]::-moz-selection, code[class*=lang-] ::-moz-selection{background:var(--code-theme-selection, var(--selection-color))}pre[data-lang]::selection,pre[data-lang] ::selection,code[class*=lang-]::selection,code[class*=lang-] ::selection{background:var(--code-theme-selection, var(--selection-color))}:not(pre)>code[class*=lang-],pre[data-lang]{background:var(--code-theme-background)}.namespace{opacity:.7}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:var(--code-theme-comment)}.token.punctuation{color:var(--code-theme-punctuation)}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:var(--code-theme-tag)}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:var(--code-theme-selector)}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:var(--code-theme-operator)}.token.atrule,.token.attr-value,.token.keyword{color:var(--code-theme-keyword)}.token.function{color:var(--code-theme-function)}.token.regex,.token.important,.token.variable{color:var(--code-theme-variable)}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.entity{cursor:help}.markdown-section{position:relative;max-width:var(--content-max-width);margin:0 auto;padding:2rem 45px}.app-nav:not(:empty)~main .markdown-section{padding-top:3.5rem}.markdown-section figure,.markdown-section p,.markdown-section ol,.markdown-section ul{margin:1em 0}.markdown-section ol,.markdown-section ul{padding-left:1.5rem}.markdown-section ol ol,.markdown-section ol ul,.markdown-section ul ol,.markdown-section ul ul{margin-top:.15rem;margin-bottom:.15rem}.markdown-section a{border-bottom:var(--link-border-bottom);color:var(--link-color);-webkit-text-decoration:var(--link-text-decoration);text-decoration:var(--link-text-decoration);-webkit-text-decoration-color:var(--link-text-decoration-color);text-decoration-color:var(--link-text-decoration-color)}.markdown-section a:hover{border-bottom:var(--link-border-bottom--hover, var(--link-border-bottom, 0));color:var(--link-color--hover, var(--link-color));-webkit-text-decoration:var(--link-text-decoration--hover, var(--link-text-decoration));text-decoration:var(--link-text-decoration--hover, var(--link-text-decoration));-webkit-text-decoration-color:var(--link-text-decoration-color--hover, var(--link-text-decoration-color));text-decoration-color:var(--link-text-decoration-color--hover, var(--link-text-decoration-color))}.markdown-section a.anchor{border-bottom:0;color:inherit;text-decoration:none}.markdown-section a.anchor:hover{text-decoration:underline}.markdown-section blockquote{overflow:visible;margin:2em 0;padding:var(--blockquote-padding);border-width:var(--blockquote-border-width, 0);border-style:var(--blockquote-border-style);border-color:var(--blockquote-border-color);border-radius:var(--blockquote-border-radius);background:var(--blockquote-background);color:var(--blockquote-color);font-family:var(--blockquote-font-family);font-size:var(--blockquote-font-size);font-style:var(--blockquote-font-style);font-weight:var(--blockquote-font-weight);quotes:"“" "”" "‘" "’"}.markdown-section blockquote em{font-family:var(--blockquote-em-font-family);font-size:var(--blockquote-em-font-size);font-style:var(--blockquote-em-font-style);font-weight:var(--blockquote-em-font-weight)}.markdown-section blockquote p:first-child{margin-top:0}.markdown-section blockquote p:first-child:before,.markdown-section blockquote p:first-child:after{color:var(--blockquote-quotes-color);font-family:var(--blockquote-quotes-font-family);font-size:var(--blockquote-quotes-font-size);line-height:0}.markdown-section blockquote p:first-child:before{content:var(--blockquote-quotes-open);margin-right:.15em;vertical-align:-0.45em}.markdown-section blockquote p:first-child:after{content:var(--blockquote-quotes-close);margin-left:.15em;vertical-align:-0.55em}.markdown-section blockquote p:last-child{margin-bottom:0}.markdown-section code{font-family:var(--code-font-family);font-size:var(--code-font-size);font-weight:var(--code-font-weight);line-height:inherit}.markdown-section code:not([class*=lang-]):not([class*=language-]){margin:var(--code-inline-margin);padding:var(--code-inline-padding);border-radius:var(--code-inline-border-radius);background:var(--code-inline-background);color:var(--code-inline-color, currentColor);white-space:nowrap}.markdown-section h1:first-child,.markdown-section h2:first-child,.markdown-section h3:first-child,.markdown-section h4:first-child,.markdown-section h5:first-child,.markdown-section h6:first-child{margin-top:0}.markdown-section h1 a[data-id],.markdown-section h2 a[data-id],.markdown-section h3 a[data-id],.markdown-section h4 a[data-id],.markdown-section h5 a[data-id],.markdown-section h6 a[data-id]{display:inline-block}.markdown-section h1 code,.markdown-section h2 code,.markdown-section h3 code,.markdown-section h4 code,.markdown-section h5 code,.markdown-section h6 code{font-size:.875em}.markdown-section h1+h2,.markdown-section h1+h3,.markdown-section h1+h4,.markdown-section h1+h5,.markdown-section h1+h6,.markdown-section h2+h3,.markdown-section h2+h4,.markdown-section h2+h5,.markdown-section h2+h6,.markdown-section h3+h4,.markdown-section h3+h5,.markdown-section h3+h6,.markdown-section h4+h5,.markdown-section h4+h6,.markdown-section h5+h6{margin-top:1rem}.markdown-section h1{margin:var(--heading-h1-margin, var(--heading-margin));padding:var(--heading-h1-padding, var(--heading-padding));border-width:var(--heading-h1-border-width, 0);border-style:var(--heading-h1-border-style);border-color:var(--heading-h1-border-color);font-family:var(--heading-h1-font-family, var(--heading-font-family));font-size:var(--heading-h1-font-size);font-weight:var(--heading-h1-font-weight, var(--heading-font-weight));line-height:var(--base-line-height);color:var(--heading-h1-color, var(--heading-color))}.markdown-section h2{margin:var(--heading-h2-margin, var(--heading-margin));padding:var(--heading-h2-padding, var(--heading-padding));border-width:var(--heading-h2-border-width, 0);border-style:var(--heading-h2-border-style);border-color:var(--heading-h2-border-color);font-family:var(--heading-h2-font-family, var(--heading-font-family));font-size:var(--heading-h2-font-size);font-weight:var(--heading-h2-font-weight, var(--heading-font-weight));line-height:var(--base-line-height);color:var(--heading-h2-color, var(--heading-color))}.markdown-section h3{margin:var(--heading-h3-margin, var(--heading-margin));padding:var(--heading-h3-padding, var(--heading-padding));border-width:var(--heading-h3-border-width, 0);border-style:var(--heading-h3-border-style);border-color:var(--heading-h3-border-color);font-family:var(--heading-h3-font-family, var(--heading-font-family));font-size:var(--heading-h3-font-size);font-weight:var(--heading-h3-font-weight, var(--heading-font-weight));color:var(--heading-h3-color, var(--heading-color))}.markdown-section h4{margin:var(--heading-h4-margin, var(--heading-margin));padding:var(--heading-h4-padding, var(--heading-padding));border-width:var(--heading-h4-border-width, 0);border-style:var(--heading-h4-border-style);border-color:var(--heading-h4-border-color);font-family:var(--heading-h4-font-family, var(--heading-font-family));font-size:var(--heading-h4-font-size);font-weight:var(--heading-h4-font-weight, var(--heading-font-weight));color:var(--heading-h4-color, var(--heading-color))}.markdown-section h5{margin:var(--heading-h5-margin, var(--heading-margin));padding:var(--heading-h5-padding, var(--heading-padding));border-width:var(--heading-h5-border-width, 0);border-style:var(--heading-h5-border-style);border-color:var(--heading-h5-border-color);font-family:var(--heading-h5-font-family, var(--heading-font-family));font-size:var(--heading-h5-font-size);font-weight:var(--heading-h5-font-weight, var(--heading-font-weight));color:var(--heading-h5-color, var(--heading-color))}.markdown-section h6{margin:var(--heading-h6-margin, var(--heading-margin));padding:var(--heading-h6-padding, var(--heading-padding));border-width:var(--heading-h6-border-width, 0);border-style:var(--heading-h6-border-style);border-color:var(--heading-h6-border-color);font-family:var(--heading-h6-font-family, var(--heading-font-family));font-size:var(--heading-h6-font-size);font-weight:var(--heading-h6-font-weight, var(--heading-font-weight));color:var(--heading-h6-color, var(--heading-color))}.markdown-section iframe{margin:1em 0}.markdown-section img{max-width:100%}.markdown-section kbd{display:inline-block;min-width:var(--kbd-min-width);margin:var(--kbd-margin);padding:var(--kbd-padding);border:var(--kbd-border);border-radius:var(--kbd-border-radius);background:var(--kbd-background);font-family:inherit;font-size:var(--kbd-font-size);text-align:center;letter-spacing:0;line-height:1;color:var(--kbd-color)}.markdown-section kbd+kbd{margin-left:-0.15em}.markdown-section table{display:block;overflow:auto;margin:1rem 0;border-spacing:0;border-collapse:collapse}.markdown-section th,.markdown-section td{padding:var(--table-cell-padding)}.markdown-section th:not([align]){text-align:left}.markdown-section thead{border-color:var(--table-head-border-color);border-style:solid;border-width:var(--table-head-border-width, 0);background:var(--table-head-background)}.markdown-section th{font-weight:var(--table-head-font-weight);color:var(--strong-color)}.markdown-section td{border-color:var(--table-cell-border-color);border-style:solid;border-width:var(--table-cell-border-width, 0)}.markdown-section tbody{border-color:var(--table-body-border-color);border-style:solid;border-width:var(--table-body-border-width, 0)}.markdown-section tbody tr:nth-child(odd){background:var(--table-row-odd-background)}.markdown-section tbody tr:nth-child(even){background:var(--table-row-even-background)}.markdown-section>ul .task-list-item{margin-left:-1.25em}.markdown-section>ul .task-list-item .task-list-item{margin-left:0}.markdown-section .table-wrapper{overflow-x:auto}.markdown-section .table-wrapper table{display:table;width:100%}.markdown-section .table-wrapper td::before{display:none}@media(max-width: 30em){.markdown-section .table-wrapper tbody,.markdown-section .table-wrapper tr,.markdown-section .table-wrapper td{display:block}.markdown-section .table-wrapper th,.markdown-section .table-wrapper td{border:none}.markdown-section .table-wrapper thead{display:none}.markdown-section .table-wrapper tr{border-color:var(--table-cell-border-color);border-style:solid;border-width:var(--table-cell-border-width, 0);padding:var(--table-cell-padding)}.markdown-section .table-wrapper tr:not(:last-child){border-bottom:0}.markdown-section .table-wrapper td{padding:.15em 0 .15em 8em}.markdown-section .table-wrapper td::before{display:inline-block;float:left;width:8em;margin-left:-8em;font-weight:bold;text-align:left}}.markdown-section .tip,.markdown-section .warn{position:relative;margin:2em 0;padding:var(--notice-padding);border-width:var(--notice-border-width, 0);border-style:var(--notice-border-style);border-color:var(--notice-border-color);border-radius:var(--notice-border-radius);background:var(--notice-background);font-family:var(--notice-font-family);font-weight:var(--notice-font-weight);color:var(--notice-color)}.markdown-section .tip:before,.markdown-section .warn:before{display:inline-block;position:var(--notice-before-position, relative);top:var(--notice-before-top);left:var(--notice-before-left);height:var(--notice-before-height);width:var(--notice-before-width);margin:var(--notice-before-margin);padding:var(--notice-before-padding);border-radius:var(--notice-before-border-radius);line-height:var(--notice-before-line-height);font-family:var(--notice-before-font-family);font-size:var(--notice-before-font-size);font-weight:var(--notice-before-font-weight);text-align:center}.markdown-section .tip{border-width:var(--notice-important-border-width, var(--notice-border-width, 0));border-style:var(--notice-important-border-style, var(--notice-border-style));border-color:var(--notice-important-border-color, var(--notice-border-color));background:var(--notice-important-background, var(--notice-background));color:var(--notice-important-color, var(--notice-color))}.markdown-section .tip:before{content:var(--notice-important-before-content, var(--notice-before-content));background:var(--notice-important-before-background, var(--notice-before-background));color:var(--notice-important-before-color, var(--notice-before-color))}.markdown-section .warn{border-width:var(--notice-tip-border-width, var(--notice-border-width, 0));border-style:var(--notice-tip-border-style, var(--notice-border-style));border-color:var(--notice-tip-border-color, var(--notice-border-color));background:var(--notice-tip-background, var(--notice-background));color:var(--notice-tip-color, var(--notice-color))}.markdown-section .warn:before{content:var(--notice-tip-before-content, var(--notice-before-content));background:var(--notice-tip-before-background, var(--notice-before-background));color:var(--notice-tip-before-color, var(--notice-before-color))}.cover{display:none;position:relative;z-index:20;min-height:100vh;flex-direction:column;align-items:center;justify-content:center;padding:calc(var(--cover-border-inset, 0px) + var(--cover-border-width, 0px));color:var(--cover-color);text-align:var(--cover-text-align)}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.cover{height:100vh}}.cover:before,.cover:after{content:"";position:absolute}.cover:before{top:0;bottom:0;left:0;right:0;background-blend-mode:var(--cover-background-blend-mode);background-color:var(--cover-background-color);background-image:var(--cover-background-image);background-position:var(--cover-background-position);background-repeat:var(--cover-background-repeat);background-size:var(--cover-background-size)}.cover:after{top:var(--cover-border-inset, 0);bottom:var(--cover-border-inset, 0);left:var(--cover-border-inset, 0);right:var(--cover-border-inset, 0);border-width:var(--cover-border-width, 0);border-style:solid;border-color:var(--cover-border-color)}.cover a{border-bottom:var(--cover-link-border-bottom);color:var(--cover-link-color);-webkit-text-decoration:var(--cover-link-text-decoration);text-decoration:var(--cover-link-text-decoration);-webkit-text-decoration-color:var(--cover-link-text-decoration-color);text-decoration-color:var(--cover-link-text-decoration-color)}.cover a:hover{border-bottom:var(--cover-link-border-bottom--hover, var(--cover-link-border-bottom));color:var(--cover-link-color--hover, var(--cover-link-color));-webkit-text-decoration:var(--cover-link-text-decoration--hover, var(--cover-link-text-decoration));text-decoration:var(--cover-link-text-decoration--hover, var(--cover-link-text-decoration));-webkit-text-decoration-color:var(--cover-link-text-decoration-color--hover, var(--cover-link-text-decoration-color));text-decoration-color:var(--cover-link-text-decoration-color--hover, var(--cover-link-text-decoration-color))}.cover h1{color:var(--cover-heading-color);position:relative;margin:0;font-size:var(--cover-heading-font-size);font-weight:var(--cover-heading-font-weight);line-height:1.2}.cover h1 a,.cover h1 a:hover{display:block;border-bottom:none;color:inherit;text-decoration:none}.cover h1 small{position:absolute;bottom:0;margin-left:.5em}.cover h1 span{font-size:calc(var(--cover-heading-font-size-min)*1px)}@media(min-width: 26em){.cover h1 span{font-size:calc(var(--cover-heading-font-size-min)*1px + (var(--cover-heading-font-size-max) - var(--cover-heading-font-size-min))*(100vw - 420px)/604)}}@media(min-width: 64em){.cover h1 span{font-size:calc(var(--cover-heading-font-size-max)*1px)}}.cover blockquote{margin:0;color:var(--cover-blockquote-color);font-size:var(--cover-blockquote-font-size)}.cover blockquote a{color:inherit}.cover ul{padding:0;list-style-type:none}.cover .cover-main{position:relative;z-index:1;max-width:var(--cover-max-width);margin:var(--cover-margin);padding:0 45px}.cover .cover-main>p:last-child{margin:1.25em -0.25em}.cover .cover-main>p:last-child a{display:block;margin:.375em .25em;padding:var(--cover-button-padding);border:var(--cover-button-border);border-radius:var(--cover-button-border-radius);box-shadow:var(--cover-button-box-shadow);background:var(--cover-button-background);text-align:center;-webkit-text-decoration:var(--cover-button-text-decoration);text-decoration:var(--cover-button-text-decoration);-webkit-text-decoration-color:var(--cover-button-text-decoration-color);text-decoration-color:var(--cover-button-text-decoration-color);color:var(--cover-button-color);white-space:nowrap;transition:var(--cover-button-transition)}.cover .cover-main>p:last-child a:hover{border:var(--cover-button-border--hover, var(--cover-button-border));box-shadow:var(--cover-button-box-shadow--hover, var(--cover-button-box-shadow));background:var(--cover-button-background--hover, var(--cover-button-background));-webkit-text-decoration:var(--cover-button-text-decoration--hover, var(--cover-button-text-decoration));text-decoration:var(--cover-button-text-decoration--hover, var(--cover-button-text-decoration));-webkit-text-decoration-color:var(--cover-button-text-decoration-color--hover, var(--cover-button-text-decoration-color));text-decoration-color:var(--cover-button-text-decoration-color--hover, var(--cover-button-text-decoration-color));color:var(--cover-button-color--hover, var(--cover-button-color))}.cover .cover-main>p:last-child a:first-child{border:var(--cover-button-primary-border, var(--cover-button-border));box-shadow:var(--cover-button-primary-box-shadow, var(--cover-button-box-shadow));background:var(--cover-button-primary-background, var(--cover-button-background));-webkit-text-decoration:var(--cover-button-primary-text-decoration, var(--cover-button-text-decoration));text-decoration:var(--cover-button-primary-text-decoration, var(--cover-button-text-decoration));-webkit-text-decoration-color:var(--cover-button-primary-text-decoration-color, var(--cover-button-text-decoration-color));text-decoration-color:var(--cover-button-primary-text-decoration-color, var(--cover-button-text-decoration-color));color:var(--cover-button-primary-color, var(--cover-button-color))}.cover .cover-main>p:last-child a:first-child:hover{border:var(--cover-button-primary-border--hover, var(--cover-button-border--hover, var(--cover-button-primary-border, var(--cover-button-border))));box-shadow:var(--cover-button-primary-box-shadow--hover, var(--cover-button-box-shadow--hover, var(--cover-button-primary-box-shadow, var(--cover-button-box-shadow))));background:var(--cover-button-primary-background--hover, var(--cover-button-background--hover, var(--cover-button-primary-background, var(--cover-button-background))));-webkit-text-decoration:var(--cover-button-primary-text-decoration--hover, var(--cover-button-text-decoration--hover, var(--cover-button-primary-text-decoration, var(--cover-button-text-decoration))));text-decoration:var(--cover-button-primary-text-decoration--hover, var(--cover-button-text-decoration--hover, var(--cover-button-primary-text-decoration, var(--cover-button-text-decoration))));-webkit-text-decoration-color:var(--cover-button-primary-text-decoration-color--hover, var(--cover-button-text-decoration-color--hover, var(--cover-button-primary-text-decoration-color, var(--cover-button-text-decoration-color))));text-decoration-color:var(--cover-button-primary-text-decoration-color--hover, var(--cover-button-text-decoration-color--hover, var(--cover-button-primary-text-decoration-color, var(--cover-button-text-decoration-color))));color:var(--cover-button-primary-color--hover, var(--cover-button-color--hover, var(--cover-button-primary-color, var(--cover-button-color))))}@media(min-width: 30.01em){.cover .cover-main>p:last-child a{display:inline-block}}.cover .mask{visibility:var(--cover-background-mask-visibility, hidden);position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--cover-background-mask-color);opacity:var(--cover-background-mask-opacity)}.cover.has-mask .mask{visibility:visible}.cover.show{display:flex}.app-nav{position:absolute;z-index:30;top:calc(35px - .5em*var(--base-line-height));left:45px;right:80px;text-align:right}.app-nav.no-badge{right:45px}.app-nav li>img,.app-nav li>a>img{margin-top:-0.25em;vertical-align:middle}.app-nav li>img:first-child,.app-nav li>a>img:first-child{margin-right:.5em}.app-nav ul,.app-nav li{margin:0;padding:0;list-style:none}.app-nav li{position:relative}.app-nav li a{display:block;line-height:1;transition:var(--navbar-root-transition)}.app-nav>ul>li{display:inline-block;margin:var(--navbar-root-margin)}.app-nav>ul>li:first-child{margin-left:0}.app-nav>ul>li:last-child{margin-right:0}.app-nav>ul>li>a,.app-nav>ul>li>span{padding:var(--navbar-root-padding);border-width:var(--navbar-root-border-width, 0);border-style:var(--navbar-root-border-style);border-color:var(--navbar-root-border-color);border-radius:var(--navbar-root-border-radius);background:var(--navbar-root-background);color:var(--navbar-root-color);-webkit-text-decoration:var(--navbar-root-text-decoration);text-decoration:var(--navbar-root-text-decoration);-webkit-text-decoration-color:var(--navbar-root-text-decoration-color);text-decoration-color:var(--navbar-root-text-decoration-color)}.app-nav>ul>li>a:hover,.app-nav>ul>li>span:hover{background:var(--navbar-root-background--hover, var(--navbar-root-background));border-style:var(--navbar-root-border-style--hover, var(--navbar-root-border-style));border-color:var(--navbar-root-border-color--hover, var(--navbar-root-border-color));color:var(--navbar-root-color--hover, var(--navbar-root-color));-webkit-text-decoration:var(--navbar-root-text-decoration--hover, var(--navbar-root-text-decoration));text-decoration:var(--navbar-root-text-decoration--hover, var(--navbar-root-text-decoration));-webkit-text-decoration-color:var(--navbar-root-text-decoration-color--hover, var(--navbar-root-text-decoration-color));text-decoration-color:var(--navbar-root-text-decoration-color--hover, var(--navbar-root-text-decoration-color))}.app-nav>ul>li>a:not(:last-child),.app-nav>ul>li>span:not(:last-child){padding:var(--navbar-menu-root-padding, var(--navbar-root-padding));background:var(--navbar-menu-root-background, var(--navbar-root-background))}.app-nav>ul>li>a:not(:last-child):hover,.app-nav>ul>li>span:not(:last-child):hover{background:var(--navbar-menu-root-background--hover, var(--navbar-menu-root-background, var(--navbar-root-background--hover, var(--navbar-root-background))))}.app-nav>ul>li>a.active{background:var(--navbar-root-background--active, var(--navbar-root-background));border-style:var(--navbar-root-border-style--active, var(--navbar-root-border-style));border-color:var(--navbar-root-border-color--active, var(--navbar-root-border-color));color:var(--navbar-root-color--active, var(--navbar-root-color));-webkit-text-decoration:var(--navbar-root-text-decoration--active, var(--navbar-root-text-decoration));text-decoration:var(--navbar-root-text-decoration--active, var(--navbar-root-text-decoration));-webkit-text-decoration-color:var(--navbar-root-text-decoration-color--active, var(--navbar-root-text-decoration-color));text-decoration-color:var(--navbar-root-text-decoration-color--active, var(--navbar-root-text-decoration-color))}.app-nav>ul>li>a.active:not(:last-child):hover{background:var(--navbar-menu-root-background--active, var(--navbar-menu-root-background, var(--navbar-root-background--active, var(--navbar-root-background))))}.app-nav>ul>li ul{visibility:hidden;position:absolute;top:100%;right:50%;overflow-y:auto;box-sizing:border-box;max-height:50vh;padding:var(--navbar-menu-padding);border-width:var(--navbar-menu-border-width, 0);border-style:solid;border-color:var(--navbar-menu-border-color);border-radius:var(--navbar-menu-border-radius);background:var(--navbar-menu-background);box-shadow:var(--navbar-menu-box-shadow);text-align:left;white-space:nowrap;opacity:0;transform:translate(50%, -0.35em);transition:var(--navbar-menu-transition)}.app-nav>ul>li ul li{white-space:nowrap}.app-nav>ul>li ul a{margin:var(--navbar-menu-link-margin);padding:var(--navbar-menu-link-padding);border-width:var(--navbar-menu-link-border-width, 0);border-style:var(--navbar-menu-link-border-style);border-color:var(--navbar-menu-link-border-color);border-radius:var(--navbar-menu-link-border-radius);background:var(--navbar-menu-link-background);color:var(--navbar-menu-link-color);-webkit-text-decoration:var(--navbar-menu-link-text-decoration);text-decoration:var(--navbar-menu-link-text-decoration);-webkit-text-decoration-color:var(--navbar-menu-link-text-decoration-color);text-decoration-color:var(--navbar-menu-link-text-decoration-color)}.app-nav>ul>li ul a:hover{background:var(--navbar-menu-link-background--hover, var(--navbar-menu-link-background));border-style:var(--navbar-menu-link-border-style--hover, var(--navbar-menu-link-border-style));border-color:var(--navbar-menu-link-border-color--hover, var(--navbar-menu-link-border-color));color:var(--navbar-menu-link-color--hover, var(--navbar-menu-link-color));-webkit-text-decoration:var(--navbar-menu-link-text-decoration--hover, var(--navbar-menu-link-text-decoration));text-decoration:var(--navbar-menu-link-text-decoration--hover, var(--navbar-menu-link-text-decoration));-webkit-text-decoration-color:var(--navbar-menu-link-text-decoration-color--hover, var(--navbar-menu-link-text-decoration-color));text-decoration-color:var(--navbar-menu-link-text-decoration-color--hover, var(--navbar-menu-link-text-decoration-color))}.app-nav>ul>li ul a.active{background:var(--navbar-menu-link-background--active, var(--navbar-menu-link-background));border-style:var(--navbar-menu-link-border-style--active, var(--navbar-menu-link-border-style));border-color:var(--navbar-menu-link-border-color--active, var(--navbar-menu-link-border-color));color:var(--navbar-menu-link-color--active, var(--navbar-menu-link-color));-webkit-text-decoration:var(--navbar-menu-link-text-decoration--active, var(--navbar-menu-link-text-decoration));text-decoration:var(--navbar-menu-link-text-decoration--active, var(--navbar-menu-link-text-decoration));-webkit-text-decoration-color:var(--navbar-menu-link-text-decoration-color--active, var(--navbar-menu-link-text-decoration-color));text-decoration-color:var(--navbar-menu-link-text-decoration-color--active, var(--navbar-menu-link-text-decoration-color))}.app-nav>ul>li:hover ul,.app-nav>ul>li:focus ul,.app-nav>ul>li.focus-within ul{visibility:visible;opacity:1;transform:translate(50%, 0)}@media(min-width: 48em){nav.app-nav{margin-left:var(--sidebar-width)}}main{position:relative;overflow-x:hidden;min-height:100vh}.sidebar,.sidebar-toggle,.sidebar+.content{transition:all var(--sidebar-transition-duration) ease-out}@media(min-width: 48em){.sidebar+.content{margin-left:var(--sidebar-width)}}.sidebar{display:flex;flex-direction:column;position:fixed;z-index:10;top:0;right:100%;overflow-x:hidden;overflow-y:auto;height:100vh;width:var(--sidebar-width);padding:var(--sidebar-padding);border-width:var(--sidebar-border-width);border-style:solid;border-color:var(--sidebar-border-color);background:var(--sidebar-background)}.sidebar>h1{margin:0;margin:var(--sidebar-name-margin);padding:var(--sidebar-name-padding);background:var(--sidebar-name-background);color:var(--sidebar-name-color);font-family:var(--sidebar-name-font-family);font-size:var(--sidebar-name-font-size);font-weight:var(--sidebar-name-font-weight);text-align:var(--sidebar-name-text-align)}.sidebar>h1 img{max-width:100%}.sidebar>h1 .app-name-link{color:var(--sidebar-name-color)}body:not([data-platform^=Mac]) .sidebar::-webkit-scrollbar{width:5px}body:not([data-platform^=Mac]) .sidebar::-webkit-scrollbar-thumb{border-radius:50vw}@media(min-width: 48em){.sidebar{position:absolute;transform:translateX(var(--sidebar-width))}}@media print{.sidebar{display:none}}.sidebar-nav,.sidebar nav{order:1;margin:var(--sidebar-nav-margin);padding:var(--sidebar-nav-padding);background:var(--sidebar-nav-background)}.sidebar-nav ul,.sidebar nav ul{margin:0;padding:0;list-style:none}.sidebar-nav ul ul,.sidebar nav ul ul{margin-left:var(--sidebar-nav-indent)}.sidebar-nav a,.sidebar nav a{display:block;overflow:hidden;margin:var(--sidebar-nav-link-margin);padding:var(--sidebar-nav-link-padding);border-width:var(--sidebar-nav-link-border-width, 0);border-style:var(--sidebar-nav-link-border-style);border-color:var(--sidebar-nav-link-border-color);border-radius:var(--sidebar-nav-link-border-radius);background:var(--sidebar-nav-link-background);color:var(--sidebar-nav-link-color);font-weight:var(--sidebar-nav-link-font-weight);white-space:nowrap;-webkit-text-decoration:var(--sidebar-nav-link-text-decoration);text-decoration:var(--sidebar-nav-link-text-decoration);-webkit-text-decoration-color:var(--sidebar-nav-link-text-decoration-color);text-decoration-color:var(--sidebar-nav-link-text-decoration-color);text-overflow:ellipsis;transition:var(--sidebar-nav-link-transition)}.sidebar-nav a img,.sidebar nav a img{margin-top:-0.25em;vertical-align:middle}.sidebar-nav a img:first-child,.sidebar nav a img:first-child{margin-right:.5em}.sidebar-nav a:hover,.sidebar nav a:hover{border-width:var(--sidebar-nav-link-border-width--hover, var(--sidebar-nav-link-border-width, 0));border-style:var(--sidebar-nav-link-border-style--hover, var(--sidebar-nav-link-border-style));border-color:var(--sidebar-nav-link-border-color--hover, var(--sidebar-nav-link-border-color));background:var(--sidebar-nav-link-background--hover, var(--sidebar-nav-link-background));color:var(--sidebar-nav-link-color--hover, var(--sidebar-nav-link-color));font-weight:var(--sidebar-nav-link-font-weight--hover, var(--sidebar-nav-link-font-weight));-webkit-text-decoration:var(--sidebar-nav-link-text-decoration--hover, var(--sidebar-nav-link-text-decoration));text-decoration:var(--sidebar-nav-link-text-decoration--hover, var(--sidebar-nav-link-text-decoration));-webkit-text-decoration-color:var(--sidebar-nav-link-text-decoration-color);text-decoration-color:var(--sidebar-nav-link-text-decoration-color)}.sidebar-nav ul>li>span,.sidebar-nav ul>li>strong,.sidebar nav ul>li>span,.sidebar nav ul>li>strong{display:block;margin:var(--sidebar-nav-strong-margin);padding:var(--sidebar-nav-strong-padding);border-width:var(--sidebar-nav-strong-border-width, 0);border-style:solid;border-color:var(--sidebar-nav-strong-border-color);color:var(--sidebar-nav-strong-color);font-size:var(--sidebar-nav-strong-font-size);font-weight:var(--sidebar-nav-strong-font-weight);text-transform:var(--sidebar-nav-strong-text-transform)}.sidebar-nav ul>li>span+ul,.sidebar-nav ul>li>strong+ul,.sidebar nav ul>li>span+ul,.sidebar nav ul>li>strong+ul{margin-left:0}.sidebar-nav ul>li:first-child>span,.sidebar-nav ul>li:first-child>strong,.sidebar nav ul>li:first-child>span,.sidebar nav ul>li:first-child>strong{margin-top:0}.sidebar-nav::-webkit-scrollbar,.sidebar nav::-webkit-scrollbar{width:0}@supports(width: env(safe-area-inset)){@media only screen and (orientation: landscape){.sidebar-nav,.sidebar nav{margin-left:calc(env(safe-area-inset-left)/2)}}}.sidebar-nav li>a:before,.sidebar-nav li>strong:before{display:inline-block}.sidebar-nav li>a{background-repeat:var(--sidebar-nav-pagelink-background-repeat);background-size:var(--sidebar-nav-pagelink-background-size)}.sidebar-nav li>a[href^="/"]:not([href*="?id="]),.sidebar-nav li>a[href^="#/"]:not([href*="?id="]){transition:var(--sidebar-nav-pagelink-transition)}.sidebar-nav li>a[href^="/"]:not([href*="?id="]),.sidebar-nav li>a[href^="/"]:not([href*="?id="])~ul a,.sidebar-nav li>a[href^="#/"]:not([href*="?id="]),.sidebar-nav li>a[href^="#/"]:not([href*="?id="])~ul a{padding:var(--sidebar-nav-pagelink-padding, var(--sidebar-nav-link-padding))}.sidebar-nav li>a[href^="/"]:not([href*="?id="]):only-child,.sidebar-nav li>a[href^="#/"]:not([href*="?id="]):only-child{background:var(--sidebar-nav-pagelink-background)}.sidebar-nav li>a[href^="/"]:not([href*="?id="]):not(:only-child),.sidebar-nav li>a[href^="#/"]:not([href*="?id="]):not(:only-child){background:var(--sidebar-nav-pagelink-background--loaded, var(--sidebar-nav-pagelink-background))}.sidebar-nav li.active>a,.sidebar-nav li.collapse>a{border-width:var(--sidebar-nav-link-border-width--active, var(--sidebar-nav-link-border-width));border-style:var(--sidebar-nav-link-border-style--active, var(--sidebar-nav-link-border-style));border-color:var(--sidebar-nav-link-border-color--active, var(--sidebar-nav-link-border-color));background:var(--sidebar-nav-link-background--active, var(--sidebar-nav-link-background));color:var(--sidebar-nav-link-color--active, var(--sidebar-nav-link-color));font-weight:var(--sidebar-nav-link-font-weight--active, var(--sidebar-nav-link-font-weight));-webkit-text-decoration:var(--sidebar-nav-link-text-decoration--active, var(--sidebar-nav-link-text-decoration));text-decoration:var(--sidebar-nav-link-text-decoration--active, var(--sidebar-nav-link-text-decoration));-webkit-text-decoration-color:var(--sidebar-nav-link-text-decoration-color);text-decoration-color:var(--sidebar-nav-link-text-decoration-color)}.sidebar-nav li.active>a[href^="/"]:not([href*="?id="]):not(:only-child),.sidebar-nav li.active>a[href^="#/"]:not([href*="?id="]):not(:only-child){background:var(--sidebar-nav-pagelink-background--active, var(--sidebar-nav-pagelink-background--loaded, var(--sidebar-nav-pagelink-background)))}.sidebar-nav li.collapse>a[href^="/"]:not([href*="?id="]):not(:only-child),.sidebar-nav li.collapse>a[href^="#/"]:not([href*="?id="]):not(:only-child){background:var(--sidebar-nav-pagelink-background--collapse, var(--sidebar-nav-pagelink-background--loaded, var(--sidebar-nav-pagelink-background)))}.sidebar-nav li.collapse .app-sub-sidebar{display:none}.sidebar-nav>ul>li>a:before{content:var(--sidebar-nav-link-before-content-l1, var(--sidebar-nav-link-before-content));margin:var(--sidebar-nav-link-before-margin-l1, var(--sidebar-nav-link-before-margin));color:var(--sidebar-nav-link-before-color-l1, var(--sidebar-nav-link-before-color))}.sidebar-nav>ul>li.active>a:before{content:var(--sidebar-nav-link-before-content-l1--active, var(--sidebar-nav-link-before-content--active, var(--sidebar-nav-link-before-content-l1, var(--sidebar-nav-link-before-content))));color:var(--sidebar-nav-link-before-color-l1--active, var(--sidebar-nav-link-before-color--active, var(--sidebar-nav-link-before-color-l1, var(--sidebar-nav-link-before-color))))}.sidebar-nav>ul>li>ul>li>a:before{content:var(--sidebar-nav-link-before-content-l2, var(--sidebar-nav-link-before-content));margin:var(--sidebar-nav-link-before-margin-l2, var(--sidebar-nav-link-before-margin));color:var(--sidebar-nav-link-before-color-l2, var(--sidebar-nav-link-before-color))}.sidebar-nav>ul>li>ul>li.active>a:before{content:var(--sidebar-nav-link-before-content-l2--active, var(--sidebar-nav-link-before-content--active, var(--sidebar-nav-link-before-content-l2, var(--sidebar-nav-link-before-content))));color:var(--sidebar-nav-link-before-color-l2--active, var(--sidebar-nav-link-before-color--active, var(--sidebar-nav-link-before-color-l2, var(--sidebar-nav-link-before-color))))}.sidebar-nav>ul>li>ul>li>ul>li>a:before{content:var(--sidebar-nav-link-before-content-l3, var(--sidebar-nav-link-before-content));margin:var(--sidebar-nav-link-before-margin-l3, var(--sidebar-nav-link-before-margin));color:var(--sidebar-nav-link-before-color-l3, var(--sidebar-nav-link-before-color))}.sidebar-nav>ul>li>ul>li>ul>li.active>a:before{content:var(--sidebar-nav-link-before-content-l3--active, var(--sidebar-nav-link-before-content--active, var(--sidebar-nav-link-before-content-l3, var(--sidebar-nav-link-before-content))));color:var(--sidebar-nav-link-before-color-l3--active, var(--sidebar-nav-link-before-color--active, var(--sidebar-nav-link-before-color-l3, var(--sidebar-nav-link-before-color))))}.sidebar-nav>ul>li>ul>li>ul>li>ul>li>a:before{content:var(--sidebar-nav-link-before-content-l4, var(--sidebar-nav-link-before-content));margin:var(--sidebar-nav-link-before-margin-l4, var(--sidebar-nav-link-before-margin));color:var(--sidebar-nav-link-before-color-l4, var(--sidebar-nav-link-before-color))}.sidebar-nav>ul>li>ul>li>ul>li>ul>li.active>a:before{content:var(--sidebar-nav-link-before-content-l4--active, var(--sidebar-nav-link-before-content--active, var(--sidebar-nav-link-before-content-l4, var(--sidebar-nav-link-before-content))));color:var(--sidebar-nav-link-before-color-l4--active, var(--sidebar-nav-link-before-color--active, var(--sidebar-nav-link-before-color-l4, var(--sidebar-nav-link-before-color))))}.sidebar-nav>:last-child{margin-bottom:2rem}.sidebar-toggle,.sidebar-toggle-button{width:var(--sidebar-toggle-width);outline:none}.sidebar-toggle{position:fixed;z-index:11;top:0;bottom:0;left:0;max-width:40px;margin:0;padding:0;border:0;background:rgba(0,0,0,0);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.sidebar-toggle .sidebar-toggle-button{position:absolute;top:var(--sidebar-toggle-offset-top);left:var(--sidebar-toggle-offset-left);height:var(--sidebar-toggle-height);border-radius:var(--sidebar-toggle-border-radius);border-width:var(--sidebar-toggle-border-width);border-style:var(--sidebar-toggle-border-style);border-color:var(--sidebar-toggle-border-color);background:var(--sidebar-toggle-background, transparent);color:var(--sidebar-toggle-icon-color)}.sidebar-toggle span{position:absolute;top:calc(50% - var(--sidebar-toggle-icon-stroke-width)/2);left:calc(50% - var(--sidebar-toggle-icon-width)/2);height:var(--sidebar-toggle-icon-stroke-width);width:var(--sidebar-toggle-icon-width);background-color:currentColor}.sidebar-toggle span:nth-child(1){margin-top:calc(0px - var(--sidebar-toggle-icon-height)/2)}.sidebar-toggle span:nth-child(3){margin-top:calc(var(--sidebar-toggle-icon-height)/2)}@media(min-width: 48em){.sidebar-toggle{position:absolute;overflow:visible;top:var(--sidebar-toggle-offset-top);bottom:auto;left:0;height:var(--sidebar-toggle-height);transform:translateX(var(--sidebar-width))}.sidebar-toggle .sidebar-toggle-button{top:0}}@media print{.sidebar-toggle{display:none}}@media(max-width: 47.99em){body.close .sidebar,body.close .sidebar-toggle,body.close .sidebar+.content{transform:translateX(var(--sidebar-width))}}@media(min-width: 48em){body.close .sidebar+.content{transform:translateX(0)}}@media(max-width: 47.99em){body.close nav.app-nav,body.close .github-corner{display:none}}@media(min-width: 48em){body.close .sidebar,body.close .sidebar-toggle{transform:translateX(0)}}@media(min-width: 48em){body.close nav.app-nav{margin-left:0}}@media(max-width: 47.99em){body.close .sidebar-toggle{width:100%;max-width:none}body.close .sidebar-toggle span{margin-top:0}body.close .sidebar-toggle span:nth-child(1){transform:rotate(45deg)}body.close .sidebar-toggle span:nth-child(2){display:none}body.close .sidebar-toggle span:nth-child(3){transform:rotate(-45deg)}}@media(min-width: 48em){body.close .sidebar+.content{margin-left:0}}@media(min-width: 48em){body.sticky .sidebar,body.sticky .sidebar-toggle{position:fixed}}body .docsify-copy-code-button,body .docsify-copy-code-button:after{border-radius:var(--border-radius-m, 0);border-top-left-radius:0;border-bottom-right-radius:0;background:var(--copycode-background);color:var(--copycode-color)}body .docsify-copy-code-button span{border-radius:var(--border-radius-s, 0)}body .docsify-pagination-container{border-top:var(--pagination-border-top);color:var(--pagination-color)}body .pagination-item-label{font-size:var(--pagination-label-font-size)}body .pagination-item-label svg{color:var(--pagination-label-color);height:var(--pagination-chevron-height);stroke:var(--pagination-chevron-stroke);stroke-linecap:var(--pagination-chevron-stroke-linecap);stroke-linejoin:var(--pagination-chevron-stroke-linecap);stroke-width:var(--pagination-chevron-stroke-width)}body .pagination-item-title{color:var(--pagination-title-color);font-size:var(--pagination-title-font-size)}body .app-name.hide{display:block}body .sidebar{padding:var(--sidebar-padding)}.sidebar .search{margin:0;padding:0;border:0}.sidebar .search input{padding:0;line-height:1;font-size:inherit}.sidebar .search .clear-button{width:auto}.sidebar .search .clear-button svg{transform:scale(1)}.sidebar .search .matching-post{border:none}.sidebar .search p{font-size:inherit}.sidebar .search{order:var(--search-flex-order);margin:var(--search-margin);padding:var(--search-padding);background:var(--search-background)}.sidebar .search a{color:inherit}.sidebar .search h2{margin:var(--search-result-heading-margin);font-size:var(--search-result-heading-font-size);font-weight:var(--search-result-heading-font-weight);color:var(--search-result-heading-color)}.sidebar .search .input-wrap{align-items:stretch;margin:var(--search-input-margin);background-color:var(--search-input-background-color);border-width:var(--search-input-border-width, 0);border-style:solid;border-color:var(--search-input-border-color);border-radius:var(--search-input-border-radius)}.sidebar .search input[type=search]{min-width:0;padding:var(--search-input-padding);border:none;background-color:rgba(0,0,0,0);background-image:var(--search-input-background-image);background-position:var(--search-input-background-position);background-repeat:var(--search-input-background-repeat);background-size:var(--search-input-background-size);font-size:var(--search-input-font-size);color:var(--search-input-color);transition:var(--search-input-transition)}.sidebar .search input[type=search]::-ms-clear{display:none}.sidebar .search input[type=search]::-moz-placeholder{color:var(--search-input-placeholder-color, #808080)}.sidebar .search input[type=search]::placeholder{color:var(--search-input-placeholder-color, #808080)}.sidebar .search input[type=search]::-webkit-input-placeholder{line-height:normal}.sidebar .search input[type=search]:focus{background-color:var(--search-input-background-color--focus, var(--search-input-background-color));background-image:var(--search-input-background-image--focus, var(--search-input-background-image));background-position:var(--search-input-background-position--focus, var(--search-input-background-position));background-size:var(--search-input-background-size--focus, var(--search-input-background-size))}@supports(width: env(safe-area-inset)){@media only screen and (orientation: landscape){.sidebar .search input[type=search]{margin-left:calc(env(safe-area-inset-left)/2)}}}.sidebar .search p{overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}.sidebar .search p:empty{text-align:center}.sidebar .search .clear-button{margin:0;padding:0 10px;border:none;line-height:1;background:rgba(0,0,0,0);cursor:pointer}.sidebar .search .clear-button svg circle{fill:var(--search-clear-icon-color1, #808080)}.sidebar .search .clear-button svg path{stroke:var(--search-clear-icon-color2, #fff)}.sidebar .search.show~*:not(h1){display:none}.sidebar .search .results-panel{display:none;color:var(--search-result-item-color);font-size:var(--search-result-item-font-size);font-weight:var(--search-result-item-font-weight)}.sidebar .search .results-panel.show{display:block}.sidebar .search .matching-post{margin:var(--search-result-item-margin);padding:var(--search-result-item-padding)}.sidebar .search .matching-post,.sidebar .search .matching-post:last-child{border-width:var(--search-result-item-border-width, 0) !important;border-style:var(--search-result-item-border-style);border-color:var(--search-result-item-border-color)}.sidebar .search .matching-post p{margin:0}.sidebar .search .search-keyword{margin:var(--search-result-keyword-margin);padding:var(--search-result-keyword-padding);border-radius:var(--search-result-keyword-border-radius);background-color:var(--search-result-keyword-background);color:var(--search-result-keyword-color, currentColor);font-style:normal;font-weight:var(--search-result-keyword-font-weight)}.medium-zoom-overlay,.medium-zoom-image--open,.medium-zoom-image--opened{z-index:2147483646 !important}.medium-zoom-overlay{background:var(--zoomimage-overlay-background) !important}:root{--mono-hue: 113;--mono-saturation: 0%;--mono-shade3: hsl(var(--mono-hue), var(--mono-saturation), 20%);--mono-shade2: hsl(var(--mono-hue), var(--mono-saturation), 30%);--mono-shade1: hsl(var(--mono-hue), var(--mono-saturation), 40%);--mono-base: hsl(var(--mono-hue), var(--mono-saturation), 50%);--mono-tint1: hsl(var(--mono-hue), var(--mono-saturation), 70%);--mono-tint2: hsl(var(--mono-hue), var(--mono-saturation), 89%);--mono-tint3: hsl(var(--mono-hue), var(--mono-saturation), 97%);--theme-hue: 204;--theme-saturation: 90%;--theme-lightness: 45%;--theme-color: hsl(var(--theme-hue), var(--theme-saturation), var(--theme-lightness));--modular-scale: 1.333;--modular-scale--2: calc(var(--modular-scale--1) / var(--modular-scale));--modular-scale--1: calc(var(--modular-scale-1) / var(--modular-scale));--modular-scale-1: 1rem;--modular-scale-2: calc(var(--modular-scale-1) * var(--modular-scale));--modular-scale-3: calc(var(--modular-scale-2) * var(--modular-scale));--modular-scale-4: calc(var(--modular-scale-3) * var(--modular-scale));--modular-scale-5: calc(var(--modular-scale-4) * var(--modular-scale));--font-size-xxxl: var(--modular-scale-5);--font-size-xxl: var(--modular-scale-4);--font-size-xl: var(--modular-scale-3);--font-size-l: var(--modular-scale-2);--font-size-m: var(--modular-scale-1);--font-size-s: var(--modular-scale--1);--font-size-xs: var(--modular-scale--2);--duration-slow: 1s;--duration-medium: 0.5s;--duration-fast: 0.25s;--spinner-size: 60px;--spinner-track-width: 4px;--spinner-track-color: rgba(0, 0, 0, 0.15);--spinner-transition-duration: var(--duration-medium)}:root{--base-background-color: #fff;--base-color: var(--mono-shade2);--base-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--base-font-size: 16px;--base-font-weight: normal;--base-line-height: 1.7;--emoji-size: calc(var(--base-line-height) * 1em);--hr-border: 1px solid var(--mono-tint2);--mark-background: #ffecb3;--pre-font-family: var(--code-font-family);--pre-font-size: var(--code-font-size);--pre-font-weight: normal;--selection-color: #b4d5fe;--small-font-size: var(--font-size-s);--strong-color: var(--heading-color);--strong-font-weight: 600;--subsup-font-size: var(--font-size-s)}:root{--content-max-width: 55em;--blockquote-background: var(--mono-tint3);--blockquote-border-style: solid;--blockquote-border-radius: var(--border-radius-m);--blockquote-em-font-weight: normal;--blockquote-font-weight: normal;--blockquote-padding: 1.5em;--code-font-family: Inconsolata, Consolas, Menlo, Monaco, "Andale Mono WT", "Andale Mono", "Lucida Console", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace;--code-font-size: calc(var(--font-size-m) * 0.95);--code-font-weight: normal;--code-tab-size: 4;--code-block-border-radius: var(--border-radius-m);--code-block-line-height: var(--base-line-height);--code-block-margin: 1em 0;--code-block-padding: 1.75em 1.5em 1.5em 1.5em;--code-inline-background: var(--code-theme-background);--code-inline-border-radius: var(--border-radius-s);--code-inline-color: var(--code-theme-text);--code-inline-margin: 0 0.15em;--code-inline-padding: 0.125em 0.4em;--code-theme-background: var(--mono-tint3);--heading-color: var(--mono-shade3);--heading-margin: 2.5rem 0 0;--heading-h1-border-style: solid;--heading-h1-font-size: var(--font-size-xxl);--heading-h2-border-style: solid;--heading-h2-font-size: var(--font-size-xl);--heading-h3-border-style: solid;--heading-h3-font-size: var(--font-size-l);--heading-h4-border-style: solid;--heading-h4-font-size: var(--font-size-m);--heading-h5-border-style: solid;--heading-h5-font-size: var(--font-size-s);--heading-h6-border-style: solid;--heading-h6-font-size: var(--font-size-xs);--kbd-background: var(--mono-tint3);--kbd-border-radius: var(--border-radius-m);--kbd-margin: 0 0.3em;--kbd-min-width: 2.5em;--kbd-padding: 0.65em 0.5em;--link-text-decoration: underline;--notice-background: var(--mono-tint3);--notice-border-radius: var(--border-radius-m);--notice-border-style: solid;--notice-font-weight: normal;--notice-padding: 1em 1.5em;--notice-before-font-weight: normal;--table-cell-padding: 0.75em 0.5em;--table-head-border-color: var(--table-cell-border-color);--table-head-font-weight: var(--strong-font-weight);--table-row-odd-background: var(--mono-tint3)}:root{--cover-margin: 0 auto;--cover-max-width: 40em;--cover-text-align: center;--cover-background-color: var(--base-background-color);--cover-background-mask-color: var(--base-background-color);--cover-background-mask-opacity: 0.8;--cover-background-position: center center;--cover-background-repeat: no-repeat;--cover-background-size: cover;--cover-blockquote-font-size: var(--font-size-l);--cover-border-color: var(--theme-color);--cover-button-border: 1px solid var(--theme-color);--cover-button-border-radius: var(--border-radius-m);--cover-button-color: var(--theme-color);--cover-button-padding: 0.5em 2rem;--cover-button-text-decoration: none;--cover-button-transition: all var(--duration-fast) ease-in-out;--cover-button-primary-background: var(--theme-color);--cover-button-primary-border: 1px solid var(--theme-color);--cover-button-primary-color: #fff;--cover-heading-color: var(--theme-color);--cover-heading-font-size: var(--font-size-xxl);--cover-heading-font-weight: normal;--cover-link-text-decoration: underline}:root{--navbar-root-border-style: solid;--navbar-root-margin: 0 0 0 1.5em;--navbar-root-transition: all var(--duration-fast);--navbar-menu-background: var(--base-background-color);--navbar-menu-border-radius: var(--border-radius-m);--navbar-menu-box-shadow: rgba(45,45,45,0.05) 0px 0px 1px, rgba(49,49,49,0.05) 0px 1px 2px, rgba(42,42,42,0.05) 0px 2px 4px, rgba(32,32,32,0.05) 0px 4px 8px, rgba(49,49,49,0.05) 0px 8px 16px, rgba(35,35,35,0.05) 0px 16px 32px;--navbar-menu-padding: 0.5em;--navbar-menu-transition: all var(--duration-fast);--navbar-menu-link-border-style: solid;--navbar-menu-link-margin: 0.75em 0.5em;--navbar-menu-link-padding: 0.2em 0}:root{--copycode-background: #808080;--copycode-color: #fff}:root{--docsifytabs-border-color: var(--mono-tint2);--docsifytabs-border-radius-px: var(--border-radius-s);--docsifytabs-tab-background: var(--mono-tint3);--docsifytabs-tab-color: var(--mono-tint1)}:root{--pagination-border-top: 1px solid var(--mono-tint2);--pagination-chevron-height: 0.8em;--pagination-chevron-stroke: currentColor;--pagination-chevron-stroke-linecap: round;--pagination-chevron-stroke-width: 1px;--pagination-label-font-size: var(--font-size-s);--pagination-title-font-size: var(--font-size-l)}:root{--search-margin: 1.5rem 0 0;--search-input-background-repeat: no-repeat;--search-input-border-color: var(--mono-tint1);--search-input-border-width: 1px;--search-input-padding: 0.5em;--search-flex-order: 1;--search-result-heading-color: var(--heading-color);--search-result-heading-font-size: var(--base-font-size);--search-result-heading-font-weight: normal;--search-result-heading-margin: 0 0 0.25em;--search-result-item-border-color: var(--mono-tint2);--search-result-item-border-style: solid;--search-result-item-border-width: 0 0 1px 0;--search-result-item-font-weight: normal;--search-result-item-padding: 1em 0;--search-result-keyword-background: var(--mark-background);--search-result-keyword-border-radius: var(--border-radius-s);--search-result-keyword-color: var(--mark-color);--search-result-keyword-font-weight: normal;--search-result-keyword-margin: 0 0.1em;--search-result-keyword-padding: 0.2em 0}:root{--zoomimage-overlay-background: rgba(0, 0, 0, 0.875)}:root{--sidebar-background: var(--base-background-color);--sidebar-border-width: 0;--sidebar-padding: 0 25px;--sidebar-transition-duration: var(--duration-fast);--sidebar-width: 17rem;--sidebar-name-font-size: var(--font-size-l);--sidebar-name-font-weight: normal;--sidebar-name-margin: 1.5rem 0 0;--sidebar-name-text-align: center;--sidebar-nav-strong-border-color: var(--sidebar-border-color);--sidebar-nav-strong-color: var(--heading-color);--sidebar-nav-strong-font-weight: var(--strong-font-weight);--sidebar-nav-strong-margin: 1.5em 0 0.5em;--sidebar-nav-strong-padding: 0.25em 0;--sidebar-nav-indent: 1em;--sidebar-nav-margin: 1.5rem 0 0;--sidebar-nav-link-border-style: solid;--sidebar-nav-link-border-width: 0;--sidebar-nav-link-color: var(--base-color);--sidebar-nav-link-font-weight: normal;--sidebar-nav-link-padding: 0.25em 0;--sidebar-nav-link-text-decoration--active: underline;--sidebar-nav-link-text-decoration--hover: underline;--sidebar-nav-link-before-margin: 0 0.35em 0 0;--sidebar-nav-pagelink-transition: var(--sidebar-nav-link-transition);--sidebar-toggle-border-radius: var(--border-radius-s);--sidebar-toggle-border-style: solid;--sidebar-toggle-border-width: 0;--sidebar-toggle-height: 36px;--sidebar-toggle-icon-color: var(--base-color);--sidebar-toggle-icon-height: 10px;--sidebar-toggle-icon-stroke-width: 1px;--sidebar-toggle-icon-width: 16px;--sidebar-toggle-offset-left: 0;--sidebar-toggle-offset-top: calc(35px - (var(--sidebar-toggle-height) / 2));--sidebar-toggle-width: 44px}:root{--code-theme-background: #f3f3f3;--code-theme-comment: #6e8090;--code-theme-function: #dd4a68;--code-theme-keyword: #07a;--code-theme-operator: #a67f59;--code-theme-punctuation: #999;--code-theme-selector: #690;--code-theme-tag: #905;--code-theme-text: #333;--code-theme-variable: #e90}:root{--border-radius-s: 2px;--border-radius-m: 4px;--border-radius-l: 8px;--strong-font-weight: 600;--blockquote-border-color: var(--theme-color);--blockquote-border-radius: 0 var(--border-radius-m) var(--border-radius-m) 0;--blockquote-border-width: 0 0 0 4px;--code-inline-background: var(--mono-tint2);--code-theme-background: var(--mono-tint3);--heading-font-weight: var(--strong-font-weight);--heading-h1-font-weight: 400;--heading-h2-font-weight: 400;--heading-h2-border-color: var(--mono-tint2);--heading-h2-border-width: 0 0 1px 0;--heading-h2-margin: 2.5rem 0 1.5rem;--heading-h2-padding: 0 0 1rem 0;--kbd-border: 1px solid var(--mono-tint2);--notice-border-radius: 0 var(--border-radius-m) var(--border-radius-m) 0;--notice-border-width: 0 0 0 4px;--notice-padding: 1em 1.5em 1em 3em;--notice-before-border-radius: 100%;--notice-before-font-weight: bold;--notice-before-height: 1.5em;--notice-before-left: 0.75em;--notice-before-line-height: 1.5;--notice-before-margin: 0 0.25em 0 0;--notice-before-position: absolute;--notice-before-width: var(--notice-before-height);--notice-important-background: hsl(340, 60%, 96%);--notice-important-border-color: hsl(340, 90%, 45%);--notice-important-before-background: var(--notice-important-border-color) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M10 14C10 15.1 9.1 16 8 16 6.9 16 6 15.1 6 14 6 12.9 6.9 12 8 12 9.1 12 10 12.9 10 14Z'/%3E%3Cpath d='M10 1.6C10 1.2 9.8 0.9 9.6 0.7 9.2 0.3 8.6 0 8 0 7.4 0 6.8 0.2 6.5 0.6 6.2 0.9 6 1.2 6 1.6 6 1.7 6 1.8 6 1.9L6.8 9.6C6.9 9.9 7 10.1 7.2 10.2 7.4 10.4 7.7 10.5 8 10.5 8.3 10.5 8.6 10.4 8.8 10.3 9 10.1 9.1 9.9 9.2 9.6L10 1.9C10 1.8 10 1.7 10 1.6Z'/%3E%3C/svg%3E") center / 0.875em no-repeat;--notice-important-before-color: #fff;--notice-important-before-content: "";--notice-tip-background: hsl(204, 60%, 96%);--notice-tip-border-color: hsl(204, 90%, 45%);--notice-tip-before-background: var(--notice-tip-border-color) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M9.1 0C10.2 0 10.7 0.7 10.7 1.6 10.7 2.6 9.8 3.6 8.6 3.6 7.6 3.6 7 3 7 2 7 1.1 7.7 0 9.1 0Z'/%3E%3Cpath d='M5.8 16C5 16 4.4 15.5 5 13.2L5.9 9.1C6.1 8.5 6.1 8.2 5.9 8.2 5.7 8.2 4.6 8.6 3.9 9.1L3.5 8.4C5.6 6.6 7.9 5.6 8.9 5.6 9.8 5.6 9.9 6.6 9.5 8.2L8.4 12.5C8.2 13.2 8.3 13.5 8.5 13.5 8.7 13.5 9.6 13.2 10.4 12.5L10.9 13.2C8.9 15.2 6.7 16 5.8 16Z'/%3E%3C/svg%3E") center / 0.875em no-repeat;--notice-tip-before-color: #fff;--notice-tip-before-content: "";--table-cell-border-color: var(--mono-tint2);--table-cell-border-width: 1px 0;--cover-background-color: hsl(var(--theme-hue), 25%, 60%);--cover-background-image: radial-gradient(ellipse at center 115%, rgba(255, 255, 255, 0.9), transparent);--cover-blockquote-color: var(--strong-color);--cover-heading-color: #fff;--cover-heading-font-size-max: 56;--cover-heading-font-size-min: 34;--cover-heading-font-weight: 200;--navbar-root-color--active: var(--theme-color);--navbar-menu-border-radius: var(--border-radius-m);--navbar-menu-root-background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9.6' height='6' viewBox='0 0 9.6 6'%3E%3Cpath d='M1.5 1.5l3.3 3 3.3-3' stroke-width='1.5' stroke='rgb%28179, 179, 179%29' fill='none' stroke-linecap='square' stroke-linejoin='miter' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") right no-repeat;--navbar-menu-root-padding: 0 18px 0 0;--search-input-background-color: #fff;--search-input-background-image: url("data:image/svg+xml,%3Csvg height='20px' width='20px' viewBox='0 0 24 24' fill='none' stroke='rgba(0, 0, 0, 0.3)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' preserveAspectRatio='xMidYMid meet' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10.5' cy='10.5' r='7.5' vector-effect='non-scaling-stroke'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='15.8' y2='15.8' vector-effect='non-scaling-stroke'%3E%3C/line%3E%3C/svg%3E");--search-input-background-position: 21px center;--search-input-border-color: var(--sidebar-border-color);--search-input-border-width: 1px 0;--search-input-margin: 0 -25px;--search-input-padding: 0.65em 1em 0.65em 50px;--search-input-placeholder-color: rgba(0, 0, 0, 0.4);--search-clear-icon-color1: rgba(0, 0, 0, 0.3);--search-result-heading-font-weight: var(--strong-font-weight);--search-result-item-border-color: var(--sidebar-border-color);--search-result-keyword-border-radius: var(--border-radius-s);--sidebar-background: var(--mono-tint3);--sidebar-border-color: var(--mono-tint2);--sidebar-border-width: 0 1px 0 0;--sidebar-name-color: var(--theme-color);--sidebar-name-font-weight: 300;--sidebar-nav-strong-border-width: 0 0 1px 0;--sidebar-nav-strong-font-size: smaller;--sidebar-nav-strong-margin: 2em -25px 0.75em 0;--sidebar-nav-strong-padding: 0.25em 0 0.75em 0;--sidebar-nav-strong-text-transform: uppercase;--sidebar-nav-link-border-color: transparent;--sidebar-nav-link-border-color--active: var(--theme-color);--sidebar-nav-link-border-width: 0 4px 0 0;--sidebar-nav-link-color--active: var(--theme-color);--sidebar-nav-link-margin: 0 -25px 0 0;--sidebar-nav-link-text-decoration: none;--sidebar-nav-link-text-decoration--active: none;--sidebar-nav-link-text-decoration--hover: underline;--sidebar-nav-pagelink-background: no-repeat 2px calc(50% - 2.5px) / 6px 5px linear-gradient(45deg, transparent 2.75px, var(--mono-tint1) 2.75px 4.25px, transparent 4px), no-repeat 2px calc(50% + 2.5px) / 6px 5px linear-gradient(135deg, transparent 2.75px, var(--mono-tint1) 2.75px 4.25px, transparent 4px);--sidebar-nav-pagelink-background--active: no-repeat 0px center / 5px 6px linear-gradient(225deg, transparent 2.75px, var(--theme-color) 2.75px 4.25px, transparent 4.25px), no-repeat 5px center / 5px 6px linear-gradient(135deg, transparent 2.75px, var(--theme-color) 2.75px 4.25px, transparent 4.25px);--sidebar-nav-pagelink-background--collapse: no-repeat 2px calc(50% - 2.5px) / 6px 5px linear-gradient(45deg, transparent 2.75px, var(--theme-color) 2.75px 4.25px, transparent 4px), no-repeat 2px calc(50% + 2.5px) / 6px 5px linear-gradient(135deg, transparent 2.75px, var(--theme-color) 2.75px 4.25px, transparent 4px);--sidebar-nav-pagelink-background--loaded: no-repeat 0px center / 5px 6px linear-gradient(225deg, transparent 2.75px, var(--mono-tint1) 2.75px 4.25px, transparent 4.25px), no-repeat 5px center / 5px 6px linear-gradient(135deg, transparent 2.75px, var(--mono-tint1) 2.75px 4.25px, transparent 4.25px);--sidebar-nav-pagelink-padding: 0.25em 0 0.25em 20px;--sidebar-nav-pagelink-transition: none;--sidebar-toggle-background: var(--sidebar-border-color);--sidebar-toggle-border-radius: 0 var(--border-radius-s) var(--border-radius-s) 0;--sidebar-toggle-width: 32px}:root{--code-theme-background: #222;--code-theme-comment: #516e7a;--code-theme-function: #f07178;--code-theme-keyword: #c2e78c;--code-theme-operator: #ffcb6b;--code-theme-punctuation: #89ddff;--code-theme-selector: #ffcb6b;--code-theme-tag: #f07178;--code-theme-text: #f3f3f3;--code-theme-variable: #ffcb6b}:root{--mono-hue: 201;--mono-saturation: 18%;--mono-shade3: hsl(var(--mono-hue), var(--mono-saturation), 13%);--mono-shade2: hsl(var(--mono-hue), var(--mono-saturation), 15%);--mono-shade1: hsl(var(--mono-hue), var(--mono-saturation), 17%);--mono-base: hsl(var(--mono-hue), var(--mono-saturation), 19%);--mono-tint1: hsl(var(--mono-hue), var(--mono-saturation), 25%);--mono-tint2: hsl(var(--mono-hue), var(--mono-saturation), 35%);--mono-tint3: hsl(var(--mono-hue), var(--mono-saturation), 43%);--spinner-track-color: rgba(255, 255, 255, 0.15);--base-background-color: var(--mono-base);--base-color: #d3d3d3;--hr-border: 1px solid var(--mono-tint2);--mark-background: #ffcb6b;--mark-color: var(--base-background-color);--selection-color: rgba(94, 131, 175, 0.75);--blockquote-background: var(--mono-shade2);--code-inline-background: var(--mono-tint1);--code-theme-background: var(--mono-shade2);--heading-color: #fff;--heading-h2-border-color: var(--mono-tint2);--kbd-background: var(--mono-shade2);--kbd-border: none;--kbd-color: var(--strong-color);--notice-important-background: var(--mono-shade2);--notice-tip-background: var(--mono-shade2);--table-cell-border-color: var(--mono-tint1);--table-row-odd-background: var(--mono-shade2);--cover-background-color: var(--base-background-color);--cover-background-image: radial-gradient(ellipse at center bottom, var(--mono-tint3), transparent);--cover-blockquote-color: var(--mark-background);--cover-button-border: 1px solid var(--mono-tint3);--cover-button-color: #fff;--navbar-menu-background: var(--mono-tint1);--navbar-menu-box-shadow: rgba(0,0,0,0.05) 0px 0px 1px, rgba(0,0,0,0.05) 0px 1px 2px, rgba(0,0,0,0.05) 0px 2px 4px, rgba(0,0,0,0.05) 0px 4px 8px, rgba(0,0,0,0.05) 0px 8px 16px, rgba(0,0,0,0.05) 0px 16px 32px;--copycode-background: var(--mono-tint1);--copycode-color: #fff;--docsifytabs-border-color: var(--mono-tint2);--docsifytabs-tab-background: var(--mono-shade1);--docsifytabs-tab-color: var(--mono-tint2);--pagination-border-top: 1px solid var(--mono-tint2);--pagination-title-color: #fff;--search-input-background-color: var(--mono-shade2);--search-input-background-image: url("data:image/svg+xml,%3Csvg height='20px' width='20px' viewBox='0 0 24 24' fill='none' stroke='rgba(255, 255, 255, 0.3)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' preserveAspectRatio='xMidYMid meet' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10.5' cy='10.5' r='7.5' vector-effect='non-scaling-stroke'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='15.8' y2='15.8' vector-effect='non-scaling-stroke'%3E%3C/line%3E%3C/svg%3E");--search-input-border-color: var(--mono-tint1);--search-input-placeholder-color: rgba(255, 255, 255, 0.4);--search-clear-icon-color1: rgba(255, 255, 255, 0.3);--sidebar-background: var(--mono-shade1);--sidebar-border-color: var(--mono-tint1);--sidebar-nav-pagelink-background: no-repeat 2px calc(50% - 2.5px) / 6px 5px linear-gradient(45deg, transparent 2.75px, var(--mono-tint2) 2.75px 4.25px, transparent 4px), no-repeat 2px calc(50% + 2.5px) / 6px 5px linear-gradient(135deg, transparent 2.75px, var(--mono-tint2) 2.75px 4.25px, transparent 4px);--sidebar-nav-pagelink-background--loaded: no-repeat 0px center / 5px 6px linear-gradient(225deg, transparent 2.75px, var(--mono-tint2) 2.75px 4.25px, transparent 4.25px), no-repeat 5px center / 5px 6px linear-gradient(135deg, transparent 2.75px, var(--mono-tint2) 2.75px 4.25px, transparent 4.25px)}
|
2
|
+
|
3
|
+
/*# sourceMappingURL=theme-simple-dark.css.map */
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../build/css/theme-simple-dark.css","../../src/scss/app/_app.scss","../../src/scss/app/_base.scss","../../src/scss/app/__variables.scss","../../src/scss/app/_code.scss","../../src/scss/app/_content.scss","../../node_modules/include-media/dist/_include-media.scss","../../src/scss/app/_cover.scss","../../src/scss/app/_navbar.scss","../../src/scss/app/_sidebar.scss","../../src/scss/app/_plugin-copy-code.scss","../../src/scss/app/_plugin-pagination.scss","../../src/scss/app/_plugin-search.scss","../../src/scss/app/_plugin-zoom-image.scss","../../src/scss/themes/defaults/_app.css","../../src/scss/themes/defaults/_base.css","../../src/scss/themes/defaults/_content.css","../../src/scss/themes/defaults/_cover.css","../../src/scss/themes/defaults/_navbar.css","../../src/scss/themes/defaults/_plugin-copy-code.css","../../src/scss/themes/defaults/_plugin-docsify-tabs.css","../../src/scss/themes/defaults/_plugin-pagination.css","../../src/scss/themes/defaults/_plugin-search.css","../../src/scss/themes/defaults/_plugin-zoom-image.css","../../src/scss/themes/defaults/_sidebar.css","../../src/scss/themes/shared/_code-light.scss","../../src/scss/themes/theme-simple.scss","../../src/scss/themes/shared/_code-dark.scss","../../src/scss/themes/theme-simple-dark.scss"],"names":[],"mappings":"AAAA,eCKA,iBACI,CAAA,UACA,CAAA,KACA,CAAA,OACA,CAAA,eACA,CAAA,oBACA,CAAA,mBAEA,WACI,CAAA,UACA,CAAA,uBACA,CAAA,kCACA,CAAA,+BAIA,gDACI,CADJ,wCACI,CAAA,gCAKZ,QACI,mBACI,CAAA,QAEJ,wBACI,CAAA,QAEJ,uBACI,CAAA,CAbI,wBAKZ,QACI,mBACI,CAAA,QAEJ,wBACI,CAAA,QAEJ,uBACI,CAAA,CAAA,UAOR,cACI,CAAA,kBACA,CAAA,KACA,CAAA,MACA,CAAA,OACA,CAAA,UACA,CAAA,OACA,CAAA,mCACA,CAAA,0EACA,CAAA,mEAOA,SAEI,CAAA,qDACA,CAAA,4BAIJ,UACI,CAAA,iBACA,CAAA,YACA,CAAA,qCACA,CAAA,sCACA,CAAA,0BACA,CAAA,yBACA,CAAA,qEACA,CAAA,oCACA,CAAA,oCACA,CAAA,iBACA,CAAA,8DACA,CADA,sDACA,CAAA,0CAKA,SACI,CAAA,sCAKJ,SACI,CAAA,iDAGJ,SACI,CAAA,mDACA,CAAA,2BAKZ,GACI,sBACI,CAAA,KAEJ,wBACI,CAAA,CAVI,mBAKZ,GACI,sBACI,CAAA,KAEJ,wBACI,CAAA,CAAA,mBCpGR,kBAGI,CAAA,iBACA,CAAA,gCACA,CAAA,yCACA,CAAA,6BACA,CAAA,0BACA,CAAA,MAGJ,qBACI,CAAA,6CACA,CAAA,+BACA,CAAA,mCACA,CAAA,mCACA,CAAA,yCACA,CAAA,uBACA,CAAA,kCAEA,CAAA,iCACA,CAAA,0BACA,CAAA,2CAGJ,mCAMI,CAAA,sCAGJ,cAKI,CAAA,QACA,CAAA,EAGJ,oBACI,CAAA,gCACA,CADA,6BACA,CAAA,KAGJ,QACI,CAAA,GAGJ,QACI,CAAA,YACA,CAAA,WACA,CAAA,iCACA,CAAA,IAGJ,cACI,CAAA,QACA,CAAA,KAGJ,aACI,CAAA,YAEA,YACI,CAAA,KAIR,iCACI,CAAA,uBACA,CAAA,IAGJ,kCACI,CAAA,8BACA,CAAA,kCACA,CAAA,kCACA,CAAA,MAGJ,oBACI,CAAA,gCACA,CAAA,OAGJ,qCACI,CAAA,uCACA,CAAA,QAGJ,iCAEI,CAAA,aACA,CAAA,iBACA,CAAA,uBACA,CAAA,IAGJ,cACI,CAAA,IAGJ,UACI,CAAA,iCAOA,+HACI,CAAA,oBACA,CAAA,qDAEA,SCxHU,CAAA,UAAA,CAAA,2DD4HV,kEACI,CAAA,2DAEJ,kEACI,CAAA,iBAKZ,iCACI,CANQ,YAKZ,iCACI,CAAA,OAKJ,wBACI,CAAA,qBACA,CAAA,gBAGJ,eACI,CAAA,sBAEA,iBACI,CAAA,aACA,CAAA,qBACA,CAAA,sEEpJJ,mCAEI,CAAA,+BACA,CAAA,mCACA,CAAA,qBACA,CAAA,yCACA,CAAA,kCACA,CADA,gCACA,CADA,6BACA,CAAA,eACA,CAAA,eACA,CAAA,mBACA,CAAA,gBACA,CAAA,iBACA,CAAA,oBACA,CADA,YACA,CAAA,iCAGJ,iBACI,CAAA,eACA,CAAA,+BACA,CAAA,SACA,CAAA,6CACA,CAAA,wCAEA,uBACI,CAAA,iBACA,CAAA,SACA,CAAA,WACA,CAAA,UACA,CAAA,aACA,CAAA,4BACA,CAAA,aACA,CAAA,sCAGJ,aACI,CAAA,aACA,CAAA,iCACA,CAAA,kCAMZ,4BAEI,CAAA,sIAGJ,8DAII,CAAA,yIAGJ,8DAII,CAPA,kHAGJ,8DAII,CAAA,4CAGJ,uCAEI,CAAA,WAGJ,UACI,CAAA,yDAIA,+BAII,CAAA,mBAGJ,mCACI,CAAA,qGAGJ,2BAOI,CAAA,0FAGJ,gCAMI,CAAA,0FAGJ,gCAKI,CAAA,+CAGJ,+BAGI,CAAA,gBAGJ,gCACI,CAAA,8CAGJ,gCAGI,CAAA,6BAGJ,gBAEI,CAAA,cAGJ,iBACI,CAAA,cAGJ,WACI,CAAA,kBCxIR,iBACI,CAAA,kCACA,CAAA,aACA,CAAA,iBACA,CAAA,4CAEA,kBACI,CAAA,uFAGJ,YAII,CAAA,0CAGJ,mBAEI,CAAA,gGAEA,iBAEI,CAAA,oBACA,CAAA,oBAIR,uCACI,CAAA,uBACA,CAAA,mDACA,CADA,2CACA,CAAA,+DACA,CADA,uDACA,CAAA,0BAEA,4EACI,CAAA,iDACA,CAAA,uFACA,CADA,+EACA,CAAA,yGACA,CADA,iGACA,CAAA,2BAGJ,eACI,CAAA,aACA,CAAA,oBACA,CAAA,iCAEA,yBACI,CAAA,6BAKZ,gBACI,CAAA,YACA,CAAA,iCACA,CAAA,8CACA,CAAA,2CACA,CAAA,2CACA,CAAA,6CACA,CAAA,uCACA,CAAA,6BACA,CAAA,yCACA,CAAA,qCACA,CAAA,uCACA,CAAA,yCACA,CAAA,sBACA,CAAA,gCAEA,4CACI,CAAA,wCACA,CAAA,0CACA,CAAA,4CACA,CAAA,2CAIA,YACI,CAAA,mGAEA,oCAEI,CAAA,gDACA,CAAA,4CACA,CAAA,aACA,CAAA,kDAGJ,qCACI,CAAA,kBACA,CAAA,sBACA,CAAA,iDAGJ,sCACI,CAAA,iBACA,CAAA,sBACA,CAAA,0CAIR,eACI,CAAA,uBAKZ,mCACI,CAAA,+BACA,CAAA,mCACA,CAAA,mBACA,CAAA,mEAEA,gCACI,CAAA,kCACA,CAAA,8CACA,CAAA,wCACA,CAAA,4CACA,CAAA,kBACA,CAAA,sMAUJ,YACI,CAAA,gMAGJ,oBACI,CAAA,4JAGJ,gBACI,CAAA,wWAIR,eAeI,CAAA,qBAGJ,sDACI,CAAA,yDACA,CAAA,8CACA,CAAA,2CACA,CAAA,2CACA,CAAA,qEACA,CAAA,qCACA,CAAA,qEACA,CAAA,mCACA,CAAA,mDACA,CAAA,qBAGJ,sDACI,CAAA,yDACA,CAAA,8CACA,CAAA,2CACA,CAAA,2CACA,CAAA,qEACA,CAAA,qCACA,CAAA,qEACA,CAAA,mCACA,CAAA,mDACA,CAAA,qBAGJ,sDACI,CAAA,yDACA,CAAA,8CACA,CAAA,2CACA,CAAA,2CACA,CAAA,qEACA,CAAA,qCACA,CAAA,qEACA,CAAA,mDACA,CAAA,qBAGJ,sDACI,CAAA,yDACA,CAAA,8CACA,CAAA,2CACA,CAAA,2CACA,CAAA,qEACA,CAAA,qCACA,CAAA,qEACA,CAAA,mDACA,CAAA,qBAGJ,sDACI,CAAA,yDACA,CAAA,8CACA,CAAA,2CACA,CAAA,2CACA,CAAA,qEACA,CAAA,qCACA,CAAA,qEACA,CAAA,mDACA,CAAA,qBAGJ,sDACI,CAAA,yDACA,CAAA,8CACA,CAAA,2CACA,CAAA,2CACA,CAAA,qEACA,CAAA,qCACA,CAAA,qEACA,CAAA,mDACA,CAAA,yBAGJ,YACI,CAAA,sBAGJ,cACI,CAAA,sBAGJ,oBACI,CAAA,8BACA,CAAA,wBACA,CAAA,0BACA,CAAA,wBACA,CAAA,sCACA,CAAA,gCACA,CAAA,mBACA,CAAA,8BACA,CAAA,iBACA,CAAA,gBACA,CAAA,aACA,CAAA,sBACA,CAAA,0BAEA,mBACI,CAAA,wBAIR,aACI,CAAA,aACA,CAAA,aACA,CAAA,gBACA,CAAA,wBACA,CAAA,0CAGJ,iCAEI,CAAA,kCAGJ,eACI,CAAA,wBAGJ,2CACI,CAAA,kBACA,CAAA,8CACA,CAAA,uCACA,CAAA,qBAGJ,yCACI,CAAA,yBACA,CAAA,qBAGJ,2CACI,CAAA,kBACA,CAAA,8CACA,CAAA,wBAGJ,2CACI,CAAA,kBACA,CAAA,8CACA,CAAA,0CAGI,0CACI,CAAA,2CAEJ,2CACI,CAAA,qCAMR,mBACI,CAAA,qDAEA,aACI,CAAA,iCAKZ,eACI,CAAA,uCAEA,aACI,CAAA,UACA,CAAA,4CAIA,YACI,CAAA,wBCwPZ,+GDnPQ,aAGI,CAAA,wEAGJ,WAEI,CAAA,uCAGJ,YACI,CAAA,oCAGJ,2CACI,CAAA,kBACA,CAAA,8CACA,CAAA,iCACA,CAAA,qDAEA,eACI,CAAA,oCAIR,yBAGI,CAAA,4CAEA,oBACI,CAAA,UACA,CAAA,SANU,CAAA,gBAQV,CAAA,gBACA,CAAA,eACA,CAAA,CAAA,+CAMhB,iBAEI,CAAA,YACA,CAAA,6BACA,CAAA,0CACA,CAAA,uCACA,CAAA,uCACA,CAAA,yCACA,CAAA,mCACA,CAAA,qCACA,CAAA,qCACA,CAAA,yBACA,CAAA,6DAEA,oBACI,CAAA,gDACA,CAAA,4BACA,CAAA,8BACA,CAAA,kCACA,CAAA,gCACA,CAAA,kCACA,CAAA,oCACA,CAAA,gDACA,CAAA,4CACA,CAAA,4CACA,CAAA,wCACA,CAAA,4CACA,CAAA,iBACA,CAAA,uBAIR,gFACI,CAAA,6EACA,CAAA,6EACA,CAAA,uEACA,CAAA,wDACA,CAAA,8BAEA,4EACI,CAAA,qFACA,CAAA,sEACA,CAAA,wBAIR,0EACI,CAAA,uEACA,CAAA,uEACA,CAAA,iEACA,CAAA,kDACA,CAAA,+BAEA,sEACI,CAAA,+EACA,CAAA,gEACA,CAAA,OElbZ,YACI,CAAA,iBACA,CAAA,UACA,CAAA,gBACA,CAAA,qBACA,CAAA,kBACA,CAAA,sBACA,CAAA,6EACA,CAAA,wBACA,CAAA,kCACA,CAAA,mFAGA,OAbJ,YAcQ,CAAA,CAAA,2BAGJ,UAEI,CAAA,iBACA,CAAA,cAGJ,KACI,CAAA,QACA,CAAA,MACA,CAAA,OACA,CAAA,wDACA,CAAA,8CACA,CAAA,8CACA,CAAA,oDACA,CAAA,gDACA,CAAA,4CACA,CAAA,aAGJ,gCACI,CAAA,mCACA,CAAA,iCACA,CAAA,kCACA,CAAA,yCACA,CAAA,kBACA,CAAA,sCACA,CAAA,SAGJ,6CACI,CAAA,6BACA,CAAA,yDACA,CADA,iDACA,CAAA,qEACA,CADA,6DACA,CAAA,eAEA,qFACI,CAAA,6DACA,CAAA,mGACA,CADA,2FACA,CAAA,qHACA,CADA,6GACA,CAAA,UAIR,gCACI,CAAA,iBACA,CAAA,QACA,CAAA,wCACA,CAAA,4CACA,CAAA,eACA,CAAA,8BAEA,aAEI,CAAA,kBACA,CAAA,aACA,CAAA,oBACA,CAAA,gBAGJ,iBACI,CAAA,QACA,CAAA,gBACA,CAAA,eAIJ,sDACI,CAAA,wBD8eR,eC/eI,sJAIQ,CAAA,CAAA,wBD2eZ,eC/eI,sDAQQ,CAAA,CAAA,kBAKZ,QACI,CAAA,mCACA,CAAA,2CACA,CAAA,oBAEA,aACI,CAAA,UAIR,SACI,CAAA,oBACA,CAAA,mBAGJ,iBACI,CAAA,SACA,CAAA,gCACA,CAAA,0BACA,CAAA,cACA,CAAA,gCAGA,qBAGI,CAAA,kCAEA,aACI,CAAA,mBACA,CAAA,mCACA,CAAA,iCACA,CAAA,+CACA,CAAA,yCACA,CAAA,yCACA,CAAA,iBACA,CAAA,2DACA,CADA,mDACA,CAAA,uEACA,CADA,+DACA,CAAA,+BACA,CAAA,kBACA,CAAA,yCACA,CAAA,wCAEA,oEACI,CAAA,gFACA,CAAA,gFACA,CAAA,uGACA,CADA,+FACA,CAAA,yHACA,CADA,iHACA,CAAA,iEACA,CAAA,8CAIJ,qEACI,CAAA,iFACA,CAAA,iFACA,CAAA,wGACA,CADA,gGACA,CAAA,0HACA,CADA,kHACA,CAAA,kEACA,CAAA,oDAEA,mJACI,CAAA,uKACA,CAAA,uKACA,CAAA,wMACA,CADA,gMACA,CAAA,sOACA,CADA,8NACA,CAAA,8IACA,CAAA,2BD+ZpB,kCCtcQ,oBA4CQ,CAAA,CAAA,aAMhB,0DACI,CAAA,iBACA,CAAA,KACA,CAAA,QACA,CAAA,MACA,CAAA,OACA,CAAA,mDACA,CAAA,4CACA,CAAA,sBAQA,kBACI,CAAA,YAIR,YACI,CAAA,SCpMR,iBACI,CAAA,UACA,CAAA,6CACA,CAAA,SACA,CAAA,UACA,CAAA,gBACA,CAAA,kBAEA,UACI,CAAA,kCAGJ,kBAEI,CAAA,qBACA,CAAA,0DAEA,iBACI,CAAA,wBAIR,QAEI,CAAA,SACA,CAAA,eACA,CAAA,YAGJ,iBACI,CAAA,cAEA,aACI,CAAA,aACA,CAAA,wCACA,CAAA,eAKJ,oBACI,CAAA,gCACA,CAAA,2BAEA,aACI,CAAA,0BAGJ,cACI,CAAA,qCAIJ,kCAEI,CAAA,+CACA,CAAA,4CACA,CAAA,4CACA,CAAA,8CACA,CAAA,wCACA,CAAA,8BACA,CAAA,0DACA,CADA,kDACA,CAAA,sEACA,CADA,8DACA,CAAA,iDAEA,8EACI,CAAA,oFACA,CAAA,oFACA,CAAA,+DACA,CAAA,qGACA,CADA,6FACA,CAAA,uHACA,CADA,+GACA,CAAA,uEAIJ,mEACI,CAAA,4EACA,CAAA,mFAEA,6JACI,CAAA,wBAMR,+EACI,CAAA,qFACA,CAAA,qFACA,CAAA,gEACA,CAAA,sGACA,CADA,8FACA,CAAA,wHACA,CADA,gHACA,CAAA,+CAII,+JACI,CAAA,kBAMhB,iBACI,CAAA,iBACA,CAAA,QACA,CAAA,SACA,CAAA,eACA,CAAA,qBACA,CAAA,eACA,CAAA,kCACA,CAAA,+CACA,CAAA,kBACA,CAAA,4CACA,CAAA,8CACA,CAAA,wCACA,CAAA,wCACA,CAAA,eACA,CAAA,kBACA,CAAA,SACA,CAAA,iCACA,CAAA,wCACA,CAAA,qBAEA,kBACI,CAAA,oBAGJ,qCACI,CAAA,uCACA,CAAA,oDACA,CAAA,iDACA,CAAA,iDACA,CAAA,mDACA,CAAA,6CACA,CAAA,mCACA,CAAA,+DACA,CADA,uDACA,CAAA,2EACA,CADA,mEACA,CAAA,0BAEA,wFACI,CAAA,8FACA,CAAA,8FACA,CAAA,yEACA,CAAA,+GACA,CADA,uGACA,CAAA,iIACA,CADA,yHACA,CAAA,2BAGJ,yFACI,CAAA,+FACA,CAAA,+FACA,CAAA,0EACA,CAAA,gHACA,CADA,wGACA,CAAA,kIACA,CADA,0HACA,CAAA,+EAQR,kBACI,CAAA,SACA,CAAA,2BACA,CAAA,wBF4ZhB,YGlkBJ,gCAEQ,CAAA,CAAA,KAIR,iBACI,CAAA,iBACA,CAAA,gBACA,CAAA,2CAGJ,0DAGI,CAAA,wBHmjBA,kBGhjBJ,gCAEQ,CAAA,CAAA,SAaR,YACI,CAAA,qBACA,CAAA,cACA,CAAA,UACA,CAAA,KACA,CAAA,UACA,CAAA,iBACA,CAAA,eACA,CAAA,YACA,CAAA,0BACA,CAAA,8BACA,CAAA,wCACA,CAAA,kBACA,CAAA,wCACA,CAAA,oCACA,CAAA,YAEA,QACI,CAAA,iCACA,CAAA,mCACA,CAAA,yCACA,CAAA,+BACA,CAAA,2CACA,CAAA,uCACA,CAAA,2CACA,CAAA,yCACA,CAAA,gBAEA,cACI,CAAA,2BAGJ,+BACI,CAAA,2DAMJ,SN3EU,CAAA,iEM8EV,kBACI,CAAA,wBHsfR,SGjiBJ,iBAgDQ,CAAA,0CACA,CAAA,CAAA,aAGJ,SApDJ,YAqDQ,CAAA,CAAA,0BAMR,OAEI,CAAA,gCACA,CAAA,kCACA,CAAA,wCACA,CAAA,gCAEA,QACI,CAAA,SACA,CAAA,eACA,CAAA,sCAEA,qCACI,CAAA,8BAIR,aACI,CAAA,eACA,CAAA,qCACA,CAAA,uCACA,CAAA,oDACA,CAAA,iDACA,CAAA,iDACA,CAAA,mDACA,CAAA,6CACA,CAAA,mCACA,CAAA,+CACA,CAAA,kBACA,CAAA,+DACA,CADA,uDACA,CAAA,2EACA,CADA,mEACA,CAAA,sBACA,CAAA,6CACA,CAAA,sCAEA,kBACI,CAAA,qBACA,CAAA,8DAEA,iBACI,CAAA,0CAIR,iGACI,CAAA,8FACA,CAAA,8FACA,CAAA,wFACA,CAAA,yEACA,CAAA,2FACA,CAAA,+GACA,CADA,uGACA,CAAA,2EACA,CADA,mEACA,CAAA,oGAMJ,aAEI,CAAA,uCACA,CAAA,yCACA,CAAA,sDACA,CAAA,kBACA,CAAA,mDACA,CAAA,qCACA,CAAA,6CACA,CAAA,iDACA,CAAA,uDACA,CAAA,gHAEA,aACI,CAAA,oJAKJ,YAEI,CAAA,gEAKZ,OACI,CAAA,uCAGJ,gDACI,0BAzFR,6CA0FY,CAAA,CAAA,CAAA,uDAUA,oBACI,CAAA,kBAQR,+DACI,CAAA,2DACA,CAAA,mGAGA,iDAEI,CAAA,gNAEA,4EAEI,CAAA,yHAIJ,iDACI,CAAA,qIAIJ,iGACI,CAAA,oDAOR,+FACI,CAAA,+FACA,CAAA,+FACA,CAAA,yFACA,CAAA,0EACA,CAAA,4FACA,CAAA,gHACA,CADA,wGACA,CAAA,2EACA,CADA,mEACA,CAAA,mJAUI,iJACI,CAAA,uJAYJ,mJACI,CAAA,0CAKZ,YACI,CAAA,4BAWA,yFACI,CAAA,sFACA,CAAA,mFACA,CAAA,mCAMA,4LACI,CAAA,kLACA,CAAA,kCAXR,yFACI,CAAA,sFACA,CAAA,mFACA,CAAA,yCAMA,4LACI,CAAA,kLACA,CAAA,wCAXR,yFACI,CAAA,sFACA,CAAA,mFACA,CAAA,+CAMA,4LACI,CAAA,kLACA,CAAA,8CAXR,yFACI,CAAA,sFACA,CAAA,mFACA,CAAA,qDAMA,4LACI,CAAA,kLACA,CAAA,yBASpB,kBACI,CAAA,uCAMR,iCAEI,CAAA,YACA,CAAA,gBAGJ,cACI,CAAA,UACA,CAAA,KACA,CAAA,QACA,CAAA,MACA,CAAA,cACA,CAAA,QACA,CAAA,SACA,CAAA,QACA,CAAA,wBACA,CAAA,uBACA,CADA,oBACA,CADA,eACA,CAAA,cACA,CAAA,uCAEA,iBACI,CAAA,oCACA,CAAA,sCACA,CAAA,mCACA,CAAA,iDACA,CAAA,+CACA,CAAA,+CACA,CAAA,+CACA,CAAA,wDACA,CAAA,sCACA,CAAA,qBAGJ,iBACI,CAAA,yDACA,CAAA,mDACA,CAAA,8CACA,CAAA,sCACA,CAAA,6BACA,CAAA,kCAEA,0DACI,CAAA,kCAEJ,oDACI,CAAA,wBHoOR,gBG3QJ,iBA4CQ,CAAA,gBACA,CAAA,oCACA,CAAA,WACA,CAAA,MACA,CAAA,mCACA,CAAA,0CACA,CAAA,uCAEA,KACI,CAAA,CAAA,aAIR,gBAzDJ,YA0DQ,CAAA,CAAA,2BHiNJ,4EGrMA,0CAIQ,CAAA,CAAA,wBHiMR,6BG7LA,uBAEQ,CAAA,CAAA,2BH2LR,iDGvLA,YAGQ,CAAA,CAAA,wBHoLR,+CGhLA,uBAGQ,CAAA,CAAA,wBH6KR,uBGzKA,aAEQ,CAAA,CAAA,2BHuKR,2BGnKA,UAEQ,CAAA,cACA,CAAA,gCAEA,YACI,CAAA,6CAEA,uBACI,CAAA,6CAEJ,YACI,CAAA,6CAEJ,wBACI,CAAA,CAAA,wBHoJhB,6BG9IA,aAEQ,CAAA,CAAA,wBH4IR,iDGtIA,cAGQ,CAAA,CAAA,oECpVR,uCAEI,CAAA,wBACA,CAAA,4BACA,CAAA,qCACA,CAAA,2BACA,CAAA,oCAIA,uCACI,CAAA,mCCjCR,uCACI,CAAA,6BACA,CAAA,4BAGJ,2CACI,CAAA,gCAGJ,mCACI,CAAA,uCACA,CAAA,uCACA,CAAA,uDACA,CAAA,wDACA,CAAA,mDACA,CAAA,4BAGJ,mCACI,CAAA,2CACA,CAAA,oBCtGJ,aAII,CAAA,cAGJ,8BAII,CAAA,iBAKJ,QAMI,CAAA,SACA,CAAA,QACA,CAAA,uBAeA,SASI,CAAA,aACA,CAAA,iBACA,CAAA,+BAWJ,UAMI,CAAA,mCAMA,kBAII,CAAA,gCAcR,WAII,CAAA,mBAOJ,iBASI,CAAA,iBAeR,8BACI,CAAA,2BACA,CAAA,6BACA,CAAA,mCACA,CAAA,mBAEA,aACI,CAAA,oBAGJ,0CACI,CAAA,gDACA,CAAA,oDACA,CAAA,wCACA,CAAA,6BAGJ,mBACI,CAAA,iCACA,CAAA,qDACA,CAAA,gDACA,CAAA,kBACA,CAAA,6CACA,CAAA,+CACA,CAAA,oCAGJ,WACI,CAAA,mCACA,CAAA,WACA,CAAA,8BACA,CAAA,qDACA,CAAA,2DACA,CAAA,uDACA,CAAA,mDACA,CAAA,uCACA,CAAA,+BACA,CAAA,yCACA,CAAA,+CAEA,YACI,CAAA,sDAGJ,oDACI,CAJA,iDAGJ,oDACI,CAAA,+DAGJ,kBAEI,CAAA,0CAGJ,kGACI,CAAA,kGACA,CAAA,2GACA,CAAA,+FACA,CAAA,uCAGJ,gDACI,oCAlCR,6CAmCY,CAAA,CAAA,CAAA,mBAKZ,eACI,CAAA,sBACA,CAAA,2BACA,CAAA,oBACA,CAAA,yBAEA,iBACI,CAAA,+BAIR,QACI,CAAA,cACA,CAAA,WACA,CAAA,aACA,CAAA,wBACA,CAAA,cACA,CAAA,0CAGI,6CACI,CAAA,wCAGJ,4CACI,CAAA,gCAMR,YACI,CAAA,gCAMR,YACI,CAAA,qCACA,CAAA,6CACA,CAAA,iDACA,CAAA,qCAEA,aACI,CAAA,gCAIR,uCACI,CAAA,yCACA,CAAA,2EAIA,iEAEI,CAAA,mDACA,CAAA,mDACA,CAAA,kCAGJ,QACI,CAAA,iCAIR,0CACI,CAAA,4CACA,CAAA,wDACA,CAAA,wDACA,CAAA,sDACA,CAAA,iBACA,CAAA,oDACA,CAAA,yECrOZ,6BAGI,CAAA,qBAGJ,yDACI,CAAA,MCnDJ,eAII,CAAA,qBACA,CAAA,gEAGA,CAAA,gEACA,CAAA,gEACA,CAAA,8DACA,CAAA,+DACA,CAAA,+DACA,CAAA,+DACA,CAAA,gBAGA,CAAA,uBACA,CAAA,sBACA,CAAA,qFACA,CAAA,sBAKA,CAAA,wEAGA,CAAA,uEACA,CAAA,uBACA,CAAA,sEACA,CAAA,sEACA,CAAA,sEACA,CAAA,sEACA,CAAA,wCAGA,CAAA,uCACA,CAAA,sCACA,CAAA,qCACA,CAAA,qCACA,CAAA,sCACA,CAAA,uCACA,CAOA,mBAGA,CAAA,uBACA,CAAA,sBACA,CAAA,oBAKA,CAAA,0BACA,CAAA,0CACA,CAAA,qDACA,CAAA,MC/DJ,6BACI,CAAA,gCACA,CAAA,yJACA,CAAA,sBACA,CAAA,0BACA,CACA,uBACA,CAAA,iDAGA,CAAA,wCAGA,CAAA,0BAGA,CACA,0CAGA,CAAA,sCACA,CAAA,yBACA,CACA,0BAGA,CAAA,qCAGA,CAAA,oCAGA,CAAA,yBACA,CAAA,sCAGA,CAAA,MCpCJ,yBACI,CAAA,0CAGA,CACA,gCACA,CACA,kDACA,CAIA,mCACA,CAGA,gCACA,CAKA,2BACA,CAAA,8LAGA,CAAA,iDACA,CAAA,0BACA,CAAA,kBACA,CAAA,kDAEA,CAAA,iDACA,CAAA,0BACA,CAAA,8CACA,CAAA,sDAEA,CAAA,mDACA,CAAA,2CACA,CAAA,8BACA,CAAA,oCACA,CAAA,0CAEA,CAUA,mCAGA,CAEA,4BACA,CAEA,gCACA,CAGA,4CACA,CAIA,gCACA,CAGA,2CACA,CAIA,gCACA,CAGA,0CACA,CAIA,gCACA,CAGA,0CACA,CAKA,gCACA,CAGA,0CACA,CAKA,gCACA,CAGA,2CACA,CAGA,mCAGA,CACA,2CACA,CAEA,qBACA,CAAA,sBACA,CAAA,2BACA,CAMA,iCACA,CAGA,sCAGA,CACA,8CACA,CAAA,4BACA,CAGA,4BACA,CAAA,2BACA,CAQA,mCACA,CAsCA,kCACA,CACA,yDACA,CACA,mDACA,CACA,6CACA,CAAA,MCvMA,sBACA,CAAA,uBACA,CAAA,0BACA,CAGA,sDACA,CACA,2DACA,CAAA,oCACA,CACA,0CACA,CAAA,oCACA,CAAA,8BACA,CAGA,gDACA,CAGA,wCACA,CAKA,mDACA,CACA,oDACA,CAEA,wCACA,CACA,kCACA,CAAA,oCACA,CAGA,+DACA,CAAA,qDAGA,CACA,2DACA,CAGA,kCACA,CAKA,yCAGA,CAAA,+CACA,CAEA,mCACA,CAMA,uCAIA,CAAA,MChEA,iCACA,CAMA,iCACA,CACA,kDACA,CAMA,sDAGA,CACA,mDACA,CACA,iOACA,CAAA,4BACA,CAAA,kDACA,CAeA,sCACA,CAMA,uCACA,CAAA,mCAOA,CAAA,MC/DJ,8BACI,CAAA,sBACA,CAAA,MCFJ,6CAEI,CAAA,sDACA,CAAA,+CAGA,CAAA,0CACA,CAAA,MCPJ,oDACI,CAAA,kCACA,CAAA,yCACA,CAAA,0CACA,CAAA,sCACA,CACA,gDACA,CACA,gDACA,CAAA,MCRA,2BACA,CAaA,2CACA,CAEA,8CACA,CACA,gCACA,CAGA,6BACA,CAEA,sBAGA,CAAA,mDAGA,CAAA,wDACA,CAAA,2CACA,CAAA,0CACA,CAAA,oDACA,CAAA,wCACA,CAAA,4CACA,CAEA,wCACA,CACA,mCACA,CAAA,0DACA,CAAA,6DACA,CAAA,gDACA,CAAA,2CACA,CAAA,uCACA,CAAA,wCACA,CAAA,MClDJ,oDACI,CAAA,MCDJ,kDACI,CACA,yBACA,CAAA,yBACA,CAAA,mDACA,CAAA,sBACA,CAKA,4CACA,CAAA,kCACA,CAAA,iCACA,CACA,iCACA,CAAA,8DAGA,CACA,gDACA,CACA,2DACA,CAAA,0CACA,CAAA,sCACA,CAIA,yBACA,CAAA,gCACA,CAUA,sCACA,CAEA,kCACA,CAEA,2CACA,CAEA,sCACA,CAGA,oCACA,CACA,qDACA,CAAA,oDACA,CA0BA,8CACA,CAWA,qEACA,CAIA,sDACA,CAAA,oCACA,CAAA,gCACA,CAAA,6BACA,CAAA,8CACA,CAAA,kCACA,CAAA,uCACA,CAAA,iCACA,CAAA,+BACA,CAAA,4EACA,CAAA,4BACA,CAAA,MChHJ,gCAEI,CAAA,6BACA,CAAA,8BACA,CAAA,0BACA,CAAA,8BACA,CAAA,8BACA,CAAA,2BACA,CAAA,sBACA,CAAA,uBACA,CAAA,2BACA,CAAA,MCFJ,sBAII,CAAA,sBACA,CAAA,sBACA,CAAA,yBAMA,CAAA,6CAMA,CAAA,6EACA,CAAA,oCACA,CAAA,2CAGA,CAAA,0CACA,CAAA,gDAGA,CAAA,6BACA,CAAA,6BACA,CAAA,4CACA,CAAA,oCACA,CAAA,oCACA,CAAA,gCACA,CAAA,yCAGA,CAAA,yEAGA,CAAA,gCACA,CAAA,mCACA,CAAA,mCAGA,CAAA,iCACA,CAAA,6BACA,CAAA,4BACA,CAAA,gCACA,CAAA,oCACA,CAAA,kCACA,CAAA,kDACA,CAAA,iDAGA,CAAA,mDACA,CAAA,kkBAGA,CAAA,qCACA,CAAA,qCACA,CAAA,2CAGA,CAAA,6CACA,CAAA,qjBAGA,CAAA,+BACA,CAAA,+BACA,CAAA,4CAGA,CAAA,gCACA,CAAA,yDAMA,CAAA,wGACA,CAAA,6CAGA,CAAA,2BAGA,CAAA,iCACA,CAAA,iCACA,CAAA,gCACA,CAAA,+CAMA,CAAA,mDAGA,CAAA,gWAGA,CAAA,sCACA,CAAA,qCAMA,CAAA,keACA,CAAA,+CACA,CAAA,wDACA,CAAA,kCACA,CAAA,8BACA,CAAA,8CACA,CAAA,oDACA,CAAA,8CAGA,CAAA,8DAGA,CAAA,8DACA,CAAA,6DACA,CAAA,uCAKA,CAAA,yCACA,CAAA,iCACA,CAAA,wCAGA,CAAA,+BACA,CAAA,4CAGA,CAAA,uCACA,CAAA,+CACA,CAAA,+CACA,CAAA,8CACA,CAAA,4CAGA,CAAA,2DACA,CAAA,0CACA,CAAA,oDACA,CAAA,sCACA,CAAA,wCACA,CAAA,gDACA,CAAA,oDACA,CAGA,kTAIA,CAAA,6SAMA,CAAA,8TAMA,CAAA,2SAMA,CAAA,oDAKA,CAAA,uCACA,CAAA,wDAGA,CAAA,iFACA,CAAA,4BACA,CAAA,MCpMJ,6BAEI,CAAA,6BACA,CAAA,8BACA,CAAA,6BACA,CAAA,8BACA,CAAA,iCACA,CAAA,8BACA,CAAA,yBACA,CAAA,0BACA,CAAA,8BACA,CAAA,MCFJ,eAII,CAAA,sBACA,CAAA,gEAGA,CAAA,gEACA,CAAA,gEACA,CAAA,8DACA,CAAA,+DACA,CAAA,+DACA,CAAA,+DACA,CAAA,gDAGA,CAAA,yCAKA,CAAA,qBACA,CAAA,wCAGA,CAAA,0BAGA,CAAA,0CACA,CAAA,2CAGA,CAAA,2CAMA,CAAA,2CAGA,CAAA,2CACA,CAAA,qBAGA,CAAA,4CACA,CAAA,oCAGA,CAAA,kBACA,CAAA,gCACA,CAAA,iDAGA,CAAA,2CAGA,CAAA,4CAGA,CAAA,8CACA,CAAA,sDAMA,CAAA,mGACA,CAAA,gDAGA,CAAA,kDAGA,CAAA,0BACA,CAAA,2CAMA,CAAA,+MACA,CAAA,wCAKA,CAAA,sBACA,CAAA,6CAMA,CAAA,gDAGA,CAAA,0CACA,CAAA,oDAKA,CAAA,8BACA,CAAA,mDAMA,CAAA,weACA,CAAA,8CACA,CAAA,0DACA,CAAA,oDAGA,CAAA,wCAKA,CAAA,yCACA,CAAA,kTAIA,CAAA,2SAMA","file":"theme-simple-dark.css"}
|
@@ -0,0 +1 @@
|
|
1
|
+
!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",a={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},n={bash:a,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:a}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:n},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:n.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},a.inside=e.languages.bash;for(var s=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=n.variable[1].inside,i=0;i<s.length;i++)o[s[i]]=e.languages.bash[s[i]];e.languages.sh=e.languages.bash,e.languages.shell=e.languages.bash}(Prism);
|
@@ -0,0 +1 @@
|
|
1
|
+
!function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var n={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var t="(?:"+["([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[^])*\\1","\\((?:[^()\\\\]|\\\\[^]|\\((?:[^()\\\\]|\\\\[^])*\\))*\\)","\\{(?:[^{}\\\\]|\\\\[^]|\\{(?:[^{}\\\\]|\\\\[^])*\\})*\\}","\\[(?:[^\\[\\]\\\\]|\\\\[^]|\\[(?:[^\\[\\]\\\\]|\\\\[^])*\\])*\\]","<(?:[^<>\\\\]|\\\\[^]|<(?:[^<>\\\\]|\\\\[^])*>)*>"].join("|")+")",i='(?:"(?:\\\\.|[^"\\\\\r\n])*"|(?:\\b[a-zA-Z_]\\w*|[^\\s\0-\\x7F]+)[?!]?|\\$.)';e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp("%r"+t+"[egimnosux]{0,6}"),greedy:!0,inside:{interpolation:n,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:n,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp("(^|[^:]):"+i),lookbehind:!0,greedy:!0},{pattern:RegExp("([\r\n{(,][ \t]*)"+i+"(?=:(?!:))"),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp("%[qQiIwWs]?"+t),greedy:!0,inside:{interpolation:n,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:n,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:n,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp("%x"+t),greedy:!0,inside:{interpolation:n,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:n,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby}(Prism);
|
@@ -0,0 +1 @@
|
|
1
|
+
code[class*=language-],pre[class*=language-]{color:#ccc;background:0 0;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}
|
data/lighstorm.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.summary = Lighstorm::Static::SPEC[:summary]
|
11
11
|
spec.description = Lighstorm::Static::SPEC[:description]
|
12
12
|
|
13
|
-
spec.homepage = Lighstorm::Static::SPEC[:
|
13
|
+
spec.homepage = Lighstorm::Static::SPEC[:documentation]
|
14
14
|
|
15
15
|
spec.license = Lighstorm::Static::SPEC[:license]
|
16
16
|
|
@@ -20,6 +20,8 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.metadata['homepage_uri'] = spec.homepage
|
22
22
|
spec.metadata['source_code_uri'] = Lighstorm::Static::SPEC[:github]
|
23
|
+
spec.metadata['documentation_uri'] = Lighstorm::Static::SPEC[:documentation]
|
24
|
+
spec.metadata['bug_tracker_uri'] = Lighstorm::Static::SPEC[:issues]
|
23
25
|
|
24
26
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
25
27
|
`git ls-files -z`.split("\x0").reject do |f|
|
@@ -30,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
30
32
|
spec.require_paths = ['ports/dsl']
|
31
33
|
|
32
34
|
spec.add_dependency 'dotenv', '~> 2.8', '>= 2.8.1'
|
33
|
-
spec.add_dependency 'lnd-client', '~> 0.0.
|
35
|
+
spec.add_dependency 'lnd-client', '~> 0.0.5'
|
34
36
|
spec.add_dependency 'zache', '~> 0.12.0'
|
35
37
|
|
36
38
|
spec.metadata['rubygems_mfa_required'] = 'true'
|
@@ -5,21 +5,12 @@ require_relative '../../satoshis'
|
|
5
5
|
module Lighstorm
|
6
6
|
module Models
|
7
7
|
class ChannelNodeAccounting
|
8
|
-
def initialize(
|
9
|
-
@
|
10
|
-
@node = node
|
8
|
+
def initialize(data)
|
9
|
+
@data = data
|
11
10
|
end
|
12
11
|
|
13
12
|
def balance
|
14
|
-
@balance ||=
|
15
|
-
Satoshis.new(milisatoshis: (
|
16
|
-
@channel.data[:list_channels][:channels].first.local_balance.to_f * 1000.0
|
17
|
-
))
|
18
|
-
else
|
19
|
-
Satoshis.new(milisatoshis: (
|
20
|
-
@channel.data[:list_channels][:channels].first.remote_balance.to_f * 1000.0
|
21
|
-
))
|
22
|
-
end
|
13
|
+
@balance ||= Satoshis.new(milisatoshis: @data[:balance][:milisatoshis])
|
23
14
|
end
|
24
15
|
|
25
16
|
def to_h
|
@@ -1,79 +1,67 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'securerandom'
|
4
|
+
|
3
5
|
require_relative '../../satoshis'
|
4
6
|
require_relative '../../rate'
|
5
7
|
|
6
8
|
require_relative '../../../components/lnd'
|
9
|
+
require_relative '../../../controllers/channel/actions/update_fee'
|
7
10
|
|
8
11
|
module Lighstorm
|
9
12
|
module Models
|
10
13
|
class Fee
|
11
|
-
|
12
|
-
|
13
|
-
def initialize(policy, channel, node)
|
14
|
-
@channel = channel
|
14
|
+
def initialize(policy, data)
|
15
15
|
@policy = policy
|
16
|
-
|
17
|
-
@base = Satoshis.new(
|
18
|
-
milisatoshis: channel.data[:fee_report][:channel_fees].first.base_fee_msat
|
19
|
-
)
|
20
|
-
|
21
|
-
@rate = Rate.new(
|
22
|
-
parts_per_million: channel.data[:fee_report][:channel_fees].first.fee_per_mil
|
23
|
-
)
|
24
|
-
else
|
25
|
-
@base = Satoshis.new(milisatoshis: policy.data.fee_base_msat)
|
26
|
-
|
27
|
-
@rate = Rate.new(parts_per_million: policy.data.fee_rate_milli_msat)
|
28
|
-
end
|
16
|
+
@data = data
|
29
17
|
end
|
30
18
|
|
31
|
-
def
|
32
|
-
|
33
|
-
|
34
|
-
# add_message "lnrpc.PolicyUpdateRequest" do
|
35
|
-
# optional :base_fee_msat, :int64, 3
|
36
|
-
# optional :fee_rate, :double, 4
|
37
|
-
# optional :fee_rate_ppm, :uint32, 9
|
38
|
-
# optional :time_lock_delta, :uint32, 5
|
39
|
-
# optional :max_htlc_msat, :uint64, 6
|
40
|
-
# optional :min_htlc_msat, :uint64, 7
|
41
|
-
# optional :min_htlc_msat_specified, :bool, 8
|
42
|
-
# oneof :scope do
|
43
|
-
# optional :global, :bool, 1
|
44
|
-
# optional :chan_point, :message, 2, "lnrpc.ChannelPoint"
|
45
|
-
# end
|
46
|
-
# end
|
47
|
-
|
48
|
-
grpc_request = {
|
49
|
-
method: :update_channel_policy,
|
50
|
-
params: {
|
51
|
-
chan_point: {
|
52
|
-
funding_txid_str: chan_point[0],
|
53
|
-
output_index: chan_point[1].to_i
|
54
|
-
},
|
55
|
-
fee_rate_ppm: @policy.data.fee_rate_milli_msat,
|
56
|
-
base_fee_msat: @policy.data.fee_base_msat,
|
57
|
-
time_lock_delta: @policy.data.time_lock_delta,
|
58
|
-
max_htlc_msat: @policy.data.max_htlc_msat
|
59
|
-
}
|
60
|
-
}
|
61
|
-
|
62
|
-
grpc_request[:params][:fee_rate_ppm] = params[:rate][:parts_per_million]
|
63
|
-
|
64
|
-
return grpc_request if preview
|
19
|
+
def base
|
20
|
+
@base ||= Satoshis.new(milisatoshis: @data[:base][:milisatoshis])
|
21
|
+
end
|
65
22
|
|
66
|
-
|
67
|
-
|
68
|
-
end
|
23
|
+
def rate
|
24
|
+
@rate ||= Rate.new(parts_per_million: @data[:rate][:parts_per_million])
|
69
25
|
end
|
70
26
|
|
71
27
|
def to_h
|
72
28
|
{
|
73
|
-
base:
|
74
|
-
rate:
|
29
|
+
base: base.to_h,
|
30
|
+
rate: rate.to_h
|
75
31
|
}
|
76
32
|
end
|
33
|
+
|
34
|
+
def update(params, preview: false, fake: false)
|
35
|
+
Controllers::Channel::UpdateFee.perform(
|
36
|
+
@policy, params, preview: preview, fake: fake
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
40
|
+
def base=(value)
|
41
|
+
validate_token!(value)
|
42
|
+
|
43
|
+
@base = value[:value]
|
44
|
+
end
|
45
|
+
|
46
|
+
def rate=(value)
|
47
|
+
validate_token!(value)
|
48
|
+
|
49
|
+
@rate = value[:value]
|
50
|
+
end
|
51
|
+
|
52
|
+
def prepare_token!(token)
|
53
|
+
@token = token
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def validate_token!(value)
|
59
|
+
token = value.is_a?(Hash) ? value[:token] : nil
|
60
|
+
|
61
|
+
raise OperationNotAllowedError if token.nil? || @token.nil? || token != @token
|
62
|
+
|
63
|
+
@token = nil
|
64
|
+
end
|
77
65
|
end
|
78
66
|
end
|
79
67
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../satoshis'
|
4
|
+
require_relative '../../rate'
|
5
|
+
|
6
|
+
require_relative '../../../components/lnd'
|
7
|
+
|
8
|
+
module Lighstorm
|
9
|
+
module Models
|
10
|
+
class HTLC
|
11
|
+
def initialize(data)
|
12
|
+
@data = data
|
13
|
+
end
|
14
|
+
|
15
|
+
def minimum
|
16
|
+
@minimum ||= Satoshis.new(milisatoshis: @data[:minimum][:milisatoshis])
|
17
|
+
end
|
18
|
+
|
19
|
+
def maximum
|
20
|
+
@maximum ||= Satoshis.new(milisatoshis: @data[:maximum][:milisatoshis])
|
21
|
+
end
|
22
|
+
|
23
|
+
def blocks
|
24
|
+
@blocks ||= Struct.new(:data) do
|
25
|
+
def delta
|
26
|
+
Struct.new(:data) do
|
27
|
+
def minimum
|
28
|
+
data[:minimum]
|
29
|
+
end
|
30
|
+
|
31
|
+
def to_h
|
32
|
+
{ minimum: minimum }
|
33
|
+
end
|
34
|
+
end.new(data[:delta])
|
35
|
+
end
|
36
|
+
|
37
|
+
def to_h
|
38
|
+
{ delta: delta.to_h }
|
39
|
+
end
|
40
|
+
end.new(@data[:blocks])
|
41
|
+
end
|
42
|
+
|
43
|
+
def to_h
|
44
|
+
{
|
45
|
+
minimum: minimum.to_h,
|
46
|
+
maximum: maximum.to_h,
|
47
|
+
blocks: blocks.to_h
|
48
|
+
}
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -1,29 +1,28 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative 'fee'
|
4
|
+
require_relative 'htlc'
|
4
5
|
|
5
6
|
module Lighstorm
|
6
7
|
module Models
|
7
8
|
class Policy
|
8
|
-
|
9
|
-
@channel = channel
|
10
|
-
@node = node
|
11
|
-
end
|
9
|
+
attr_reader :transaction
|
12
10
|
|
13
|
-
def data
|
14
|
-
@data
|
15
|
-
|
16
|
-
else
|
17
|
-
@channel.data[:get_chan_info].node2_policy
|
18
|
-
end
|
11
|
+
def initialize(data, transaction)
|
12
|
+
@data = data
|
13
|
+
@transaction = transaction
|
19
14
|
end
|
20
15
|
|
21
16
|
def fee
|
22
|
-
@fee ||= Fee.new(self, @
|
17
|
+
@fee ||= @data ? Fee.new(self, @data[:fee]) : nil
|
18
|
+
end
|
19
|
+
|
20
|
+
def htlc
|
21
|
+
@htlc ||= @data ? HTLC.new(@data[:htlc]) : nil
|
23
22
|
end
|
24
23
|
|
25
24
|
def to_h
|
26
|
-
{ fee: fee.to_h }
|
25
|
+
{ fee: fee.to_h, htlc: htlc.to_h }
|
27
26
|
end
|
28
27
|
end
|
29
28
|
end
|
@@ -1,40 +1,41 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative 'channel_node/constraints'
|
4
3
|
require_relative 'channel_node/policy'
|
5
4
|
require_relative 'channel_node/accounting'
|
6
5
|
|
6
|
+
require_relative '../nodes/node'
|
7
|
+
require_relative '../errors'
|
8
|
+
|
7
9
|
module Lighstorm
|
8
10
|
module Models
|
9
11
|
class ChannelNode
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
def initialize(channel, node)
|
15
|
-
@channel = channel
|
16
|
-
@node = node
|
12
|
+
def initialize(data, is_mine, transaction)
|
13
|
+
@data = data
|
14
|
+
@is_mine = is_mine
|
15
|
+
@transaction = transaction
|
17
16
|
end
|
18
17
|
|
19
|
-
def
|
20
|
-
@
|
18
|
+
def node
|
19
|
+
@node ||= Node.new(@data[:node])
|
21
20
|
end
|
22
21
|
|
23
|
-
def
|
24
|
-
@
|
22
|
+
def policy
|
23
|
+
@policy ||= Policy.new(@data[:policy], @transaction)
|
25
24
|
end
|
26
25
|
|
27
26
|
def accounting
|
28
|
-
|
27
|
+
raise Errors::NotYourChannelError unless @is_mine
|
28
|
+
|
29
|
+
@accounting ||= @data[:accounting] ? ChannelNodeAccounting.new(@data[:accounting]) : nil
|
29
30
|
end
|
30
31
|
|
31
32
|
def to_h
|
32
|
-
{
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
33
|
+
restult = { node: node.to_h }
|
34
|
+
|
35
|
+
restult[:accounting] = accounting.to_h if @is_mine
|
36
|
+
restult[:policy] = policy.to_h if @data[:policy]
|
37
|
+
|
38
|
+
restult
|
38
39
|
end
|
39
40
|
end
|
40
41
|
end
|
@@ -5,58 +5,23 @@ require_relative '../edges/channel'
|
|
5
5
|
module Lighstorm
|
6
6
|
module Models
|
7
7
|
class ForwardChannel
|
8
|
-
|
9
|
-
|
10
|
-
def initialize(direction, forward, respond_info: true)
|
11
|
-
@respond_info = respond_info
|
12
|
-
@direction = direction
|
13
|
-
@forward = forward
|
8
|
+
def initialize(data)
|
9
|
+
@data = data
|
14
10
|
end
|
15
11
|
|
16
|
-
def
|
17
|
-
@
|
12
|
+
def amount
|
13
|
+
@amount ||= Satoshis.new(milisatoshis: @data[:amount][:milisatoshis])
|
18
14
|
end
|
19
15
|
|
20
|
-
def
|
21
|
-
@
|
22
|
-
Satoshis.new(milisatoshis:
|
23
|
-
@forward.data[:forwarding_history][:forwarding_events].first.amt_in_msat)
|
24
|
-
else
|
25
|
-
Satoshis.new(milisatoshis:
|
26
|
-
@forward.data[:forwarding_history][:forwarding_events].first.amt_out_msat)
|
27
|
-
end
|
16
|
+
def channel
|
17
|
+
@channel ||= Channel.new(@data[:channel])
|
28
18
|
end
|
29
19
|
|
30
20
|
def to_h
|
31
|
-
|
21
|
+
{
|
32
22
|
amount: amount.to_h,
|
33
|
-
channel:
|
34
|
-
}
|
35
|
-
|
36
|
-
return response unless @respond_info
|
37
|
-
|
38
|
-
response[:channel] = {
|
39
|
-
id: channel.id,
|
40
|
-
partner: {
|
41
|
-
node: {
|
42
|
-
alias: channel.partner&.node&.alias,
|
43
|
-
public_key: channel.partner&.node&.public_key,
|
44
|
-
color: channel.partner&.node&.color
|
45
|
-
}
|
46
|
-
}
|
23
|
+
channel: channel.to_h
|
47
24
|
}
|
48
|
-
|
49
|
-
response
|
50
|
-
end
|
51
|
-
|
52
|
-
private
|
53
|
-
|
54
|
-
def channel_id
|
55
|
-
if @direction == :in
|
56
|
-
@forward.data[:forwarding_history][:forwarding_events].first.chan_id_in.to_s
|
57
|
-
else
|
58
|
-
@forward.data[:forwarding_history][:forwarding_events].first.chan_id_out.to_s
|
59
|
-
end
|
60
25
|
end
|
61
26
|
end
|
62
27
|
end
|