1 2<!doctype html> 3<html lang="en" class="no-js"> 4 <head> 5 6 <meta charset="utf-8"> 7 <meta name="viewport" content="width=device-width,initial-scale=1"> 8 9 <meta name="description" content="Malt Render Engine"> 10 11 12 <meta name="author" content="Miguel Pozo"> 13 14 15 <link rel="canonical" href="https://malt3d.com/"> 16 17 <link rel="icon" href="images/cube-solid.svg"> 18 <meta name="generator" content="mkdocs-1.3.1, mkdocs-material-8.2.8"> 19 20 21 22 <title>Malt</title> 23 24 25 26 <link rel="stylesheet" href="assets/stylesheets/main.644de097.min.css"> 27 28 29 <link rel="stylesheet" href="assets/stylesheets/palette.e6a45f82.min.css"> 30 31 32 33 34 35 36 37 38 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 39 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"> 40 <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> 41 42 43 44 <link rel="stylesheet" href="extra/extra.css"> 45 46
46<script>__md_scope=new URL(".",location),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
46 47 48 49 50 51 52 </head> 53 54 55 56 57 58 59 60 61 62 <body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="teal" data-md-color-accent=""> 63 64 65 66
66<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
66 67 68 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> 69 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> 70 <label class="md-overlay" for="__drawer"></label> 71 <div data-md-component="skip"> 72 73 74 <a href="#malt" class="md-skip"> 75 Skip to content 76 </a> 77 78 </div> 79 <div data-md-component="announce"> 80 81 </div> 82 83 84 85 86<header class="md-header" data-md-component="header"> 87 <nav class="md-header__inner md-grid" aria-label="Header"> 88 <a href="." title="Malt" class="md-header__button md-logo" aria-label="Malt" data-md-component="logo"> 89 90 <img src="images/cube-solid.svg" alt="logo"> 91 92 </a> 93 <label class="md-header__button md-icon" for="__drawer"> 94 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> 95 </label> 96 <div class="md-header__title" data-md-component="header-title"> 97 <div class="md-header__ellipsis"> 98 <div class="md-header__topic"> 99 <span class="md-ellipsis"> 100 Malt 101 </span> 102 </div> 103 <div class="md-header__topic" data-md-component="header-topic"> 104 <span class="md-ellipsis"> 105 106 Malt 107 108 </span> 109 </div> 110 </div> 111 </div> 112 113 <form class="md-header__option" data-md-component="palette"> 114 115 116 117 <input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="teal" data-md-color-accent="" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1"> 118 119 <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_2" hidden> 120 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg> 121 </label> 122 123 124 125 126 <input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="teal" data-md-color-accent="" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_2"> 127 128 <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden> 129 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3z"/></svg> 130 </label> 131 132 133 </form> 134 135 136 137 <label class="md-header__button md-icon" for="__search"> 138 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg> 139 </label> 140 <div class="md-search" data-md-component="search" role="dialog"> 141 <label class="md-search__overlay" for="__search"></label> 142 <div class="md-search__inner" role="search"> 143 <form class="md-search__form" name="search"> 144 <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required> 145 <label class="md-search__icon md-icon" for="__search"> 146 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg> 147 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
147<path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> 148 </label> 149 <nav class="md-search__options" aria-label="Search"> 150 151 <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1"> 152 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg> 153 </button> 154 </nav> 155 156 </form> 157 <div class="md-search__output"> 158 <div class="md-search__scrollwrap" data-md-scrollfix> 159 <div class="md-search-result" data-md-component="search-result"> 160 <div class="md-search-result__meta"> 161 Initializing search 162 </div> 163 <ol class="md-search-result__list"></ol> 164 </div> 165 </div> 166 </div> 167 </div> 168</div> 169 170 171 <div class="md-header__source"> 172 <a href="https://github.com/bnpr/Malt" title="Go to repository" class="md-source" data-md-component="source"> 173 <div class="md-source__icon md-icon"> 174 175 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> 176 </div> 177 <div class="md-source__repository"> 178 bnpr/Malt 179 </div> 180</a> 181 </div> 182 183 </nav> 184 185</header> 186 187 <div class="md-container" data-md-component="container"> 188 189 190 191 192 193<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs"> 194 <div class="md-tabs__inner md-grid"> 195 <ul class="md-tabs__list"> 196 197 198 199 200 201 202 203 204 <li class="md-tabs__item"> 205 <a href="." class="md-tabs__link md-tabs__link--active"> 206 Malt 207 </a> 208 </li> 209 210 211 212 213 214 215 216 217 218 219 <li class="md-tabs__item"> 220 <a href="Documentation/Getting%20Started/" class="md-tabs__link"> 221 Documentation 222 </a> 223 </li> 224 225 226 227 228 229 230 231 232 <li class="md-tabs__item"> 233 <a href="https://github.com/bnpr/Malt/discussions" class="md-tabs__link"> 234 Discussions - Q&A 235 </a> 236 </li> 237 238 239 240 241 242 243 244 <li class="md-tabs__item"> 245 <a href="https://patreon.com/pragma37" class="md-tabs__link"> 246 Patreon 247 </a> 248 </li> 249 250 251 252 253 254 255 256 <li class="md-tabs__item"> 257 <a href="https://github.com/bnpr/Malt/releases/tag/Release-latest" class="md-tabs__link"> 258 Download 259 </a> 260 </li> 261 262 263 </ul> 264 </div> 265</nav> 266 267 268 269 <main class="md-main" data-md-component="main"> 270 <div class="md-main__inner md-grid"> 271 272 273 274 <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > 275 <div class="md-sidebar__scrollwrap"> 276 <div class="md-sidebar__inner"> 277 278 279 280 281 282<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0"> 283 <label class="md-nav__title" for="__drawer"> 284 <a href="." title="Malt" class="md-nav__button md-logo" aria-label="Malt" data-md-component="logo"> 285 286 <img src="images/cube-solid.svg" alt="logo"> 287 288 </a> 289 Malt 290 </label> 291 292 <div class="md-nav__source"> 293 <a href="https://github.com/bnpr/Malt" title="Go to repository" class="md-source" data-md-component="source"> 294 <div class="md-source__icon md-icon"> 295 296 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> 297 </div> 298 <div class="md-source__repository"> 299 bnpr/Malt 300 </div> 301</a> 302 </div> 303 304 <ul class="md-nav__list" data-md-scrollfix> 305 306 307 308 309 310 311 312 313 314 315 <li class="md-nav__item md-nav__item--active"> 316 317 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc"> 318 319 320 321 322 323 <a href="." class="md-nav__link md-nav__link--active"> 324 Malt 325 </a> 326 327 </li> 328 329 330 331 332 333 334 335 336 337 338 339 <li class="md-nav__item md-nav__item--nested"> 340 341 342 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" > 343 344 345 346 347 <label class="md-nav__link" for="__nav_2"> 348 Documentation
349 <span class="md-nav__icon md-icon"></span> 350 </label> 351 352 <nav class="md-nav" aria-label="Documentation" data-md-level="1"> 353 <label class="md-nav__title" for="__nav_2"> 354 <span class="md-nav__icon md-icon"></span> 355 Documentation 356 </label> 357 <ul class="md-nav__list" data-md-scrollfix> 358 359 360 361 362 363 364 <li class="md-nav__item"> 365 <a href="Documentation/Getting%20Started/" class="md-nav__link"> 366 Gettting Started 367 </a> 368 </li> 369 370 371 372 373 374 375 376 377 378 <li class="md-nav__item"> 379 <a href="Documentation/Settings/" class="md-nav__link"> 380 Setup & Settings 381 </a> 382 </li> 383 384 385 386 387 388 389 390 391 392 <li class="md-nav__item"> 393 <a href="Documentation/Graphs/" class="md-nav__link"> 394 Graphs & Nodes 395 </a> 396 </li> 397 398 399 400 401 402 403 404 405 406 407 <li class="md-nav__item md-nav__item--nested"> 408 409 410 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_4" type="checkbox" id="__nav_2_4" > 411 412 413 414 415 <label class="md-nav__link" for="__nav_2_4"> 416 Reference 417 <span class="md-nav__icon md-icon"></span> 418 </label> 419 420 <nav class="md-nav" aria-label="Reference" data-md-level="2"> 421 <label class="md-nav__title" for="__nav_2_4"> 422 <span class="md-nav__icon md-icon"></span> 423 Reference 424 </label> 425 <ul class="md-nav__list" data-md-scrollfix> 426 427 428 429 430 431 432 <li class="md-nav__item"> 433 <a href="reference/settings/" class="md-nav__link"> 434 Malt Settings 435 </a> 436 </li> 437 438 439 440 441 442 443 444 445 446 <li class="md-nav__item"> 447 <a href="reference/Mesh-graph/" class="md-nav__link"> 448 Mesh Graph Reference 449 </a> 450 </li> 451 452 453 454 455 456 457 458 459 460 <li class="md-nav__item"> 461 <a href="reference/Screen-graph/" class="md-nav__link"> 462 Screen Graph Reference 463 </a> 464 </li> 465 466 467 468 469 470 471 472 473 474 <li class="md-nav__item"> 475 <a href="reference/Light-graph/" class="md-nav__link"> 476 Light Graph Reference 477 </a> 478 </li> 479 480 481 482 483 484 485 486 487 488 <li class="md-nav__item"> 489 <a href="reference/Render-graph/" class="md-nav__link"> 490 Render Graph Reference 491 </a> 492 </li> 493 494 495 496 497 498 499 500 501 502 <li class="md-nav__item"> 503 <a href="reference/Render%20Layer-graph/" class="md-nav__link"> 504 Render Layer Graph Reference 505 </a> 506 </li> 507 508 509 510 511 </ul> 512 </nav> 513 </li> 514 515 516 517 518 519 520 521 522 523 <li class="md-nav__item"> 524 <a href="Documentation/Plugins/" class="md-nav__link"> 525 Plugins 526 </a> 527 </li> 528 529 530 531 532 533 534 535 536 537 <li class="md-nav__item"> 538 <a href="Documentation/Tooling/" class="md-nav__link"> 539 External Tools 540 </a> 541 </li> 542 543 544 545 546 </ul> 547 </nav> 548 </li> 549 550 551 552 553 554 555 556 557 558 559 <li class="md-nav__item"> 560 <a href="https://github.com/bnpr/Malt/discussions" class="md-nav__link"> 561 Discussions - Q&A 562 </a> 563 </li> 564 565 566 567 568 569 570 571 572 573 574 <li class="md-nav__item"> 575 <a href="https://patreon.com/pragma37" class="md-nav__link"> 576 Patreon 577 </a> 578 </li> 579 580 581 582 583 584 585 586 587 588 589 <li class="md-nav__item"> 590 <a href="https://github.com/bnpr/Malt/releases/tag/Release-latest" class="md-nav__link"> 591 Download 592 </a> 593 </li> 594 595 596 597 </ul> 598</nav> 599 </div> 600 </div> 601 </div> 602 603 604 605 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > 606 <div class="md-sidebar__scrollwrap"> 607 <div class="md-sidebar__inner"> 608 609 610<nav class="md-nav md-nav--secondary" aria-label="Table of contents"> 611 612
613 614 615 616 617</nav> 618 </div> 619 </div> 620 </div> 621 622 623 <div class="md-content" data-md-component="content"> 624 <article class="md-content__inner md-typeset"> 625 626 627<a href="https://github.com/bnpr/Malt/edit/master/docs/index.md" title="Edit this page" class="md-content__button md-icon"> 628 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg> 629</a> 630 631 632 633<h1 id="malt">Malt</h1> 634<p><strong><em>Malt</em></strong> is a fully <strong><em>customizable real-time rendering</em></strong> framework for animation and illustration.<br /> 635It's aimed at artists who want more control over their workflow and/or their art style, with special care put into the needs of <strong><em>stylized non photorealistic rendering</em></strong>. </p> 636<p>Designed as a community effort to expand the possibility space of 3d rendering, it provides graphics programmers and technical artist an enjoyable <em>âshadertoy-likeâ</em> workflow inside <strong><em>Blender</em></strong>, while still allowing to effortlessly share their work with non technical artists through <strong><em>Python</em></strong> and <strong><em>GLSL</em></strong> plugins.</p> 637<hr /> 638<figure class="video_container"> 639 <video autoplay muted loop style="max-height:50vh; max-width: 100%; border-radius: 5rem;"> 640 <source src="https://www.pragma37.com/docs/rtc2021/explorer.mp4" type="video/mp4"> 641 </video> 642 <figcaption style="max-width: 100%; text-align: center; margin: 0; font-size: small"> 643 <a href="https://twitter.com/pragma37" target="_blank" style="color: grey;">@pragma37</a> 644 </figcaption> 645</figure> 646 647<hr /> 648<ul> 649<li>Free and <strong>Open Source</strong>. <em>MIT License</em></li> 650<li><strong>Real Time Rendering</strong></li> 651<li>Full <strong>Blender</strong> integration</li> 652<li>Built-in Pipeline for <strong>Stylized Non Photorealistic Rendering</strong> <ul> 653<li>Stylized shading models</li> 654<li>Light Groups</li> 655<li>Line Rendering</li> 656<li>Fully customizable through nodes <em>(Materials, Light shaders, Screen shaders and even the render pipeline itself)</em></li> 657</ul> 658</li> 659<li>Code as a <em>First Class Citizen</em> <ul> 660<li><em>Auto-reloading</em> for everything</li> 661<li><strong>VSCode</strong> (including <strong>GLSL</strong> <em>intellisense</em>) and <strong>Renderdoc</strong> integration</li> 662<li>Automatic generation of nodes from plain GLSL functions</li> 663<li>Automatic UI for Shader and Pipeline parameters</li> 664<li>100% customizable Python Render Pipelines</li> 665</ul> 666</li> 667</ul> 668<hr /> 669<figure class="video_container"> 670 <video controls autoplay muted loop style="max-height:75vh; max-width:100%; margin: auto; border-radius: 1rem;"> 671 <source src="https://www.pragma37.com/docs/rtc2021/pixel-art.mp4" type="video/mp4"> 672 </video> 673 <figcaption style="max-width: 100%; text-align: center; margin: 0; font-size: small"> 674 <a href="https://twitter.com/pragma37" target="_blank" style="color: grey;">@pragma37</a> 675 </figcaption> 676</figure> 677 678<hr /> 679<figure class="video_container"> 680 <video controls autoplay muted loop style="max-height:75vh; max-width:100%; margin: auto; border-radius: 1rem;"> 681 <source src="https://www.pragma37.com/docs/rtc2021/renato3xl.mp4" type="video/mp4"> 682 </video> 683 <figcaption style="max-width: 100%; text-align: center; margin: 0; font-size: small"> 684 <a href="https://linktr.ee/Renato3xl" target="_blank" style="color: grey;">@Renato3xl</a> 685 </figcaption> 686</figure> 687 688 689 </article> 690 </div> 691 </div> 692 693 </main> 694 695 <footer class="md-footer"> 696 697 <nav class="md-footer__inner md-grid" aria-label="Footer"> 698 699 700 701 <a href="Documentation/Getting%20Started/" class="md-footer__link md-footer__link--next" aria-label="Next: Gettting Started" rel="next"> 702 <div class="md-footer__title"> 703 <div class="md-ellipsis">
704 <span class="md-footer__direction"> 705 Next 706 </span> 707 Gettting Started 708 </div> 709 </div> 710 <div class="md-footer__button md-icon"> 711 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg> 712 </div> 713 </a> 714 715 </nav> 716 717 <div class="md-footer-meta md-typeset"> 718 <div class="md-footer-meta__inner md-grid"> 719 <div class="md-copyright"> 720 721 722</div> 723 724 <div class="md-social"> 725 726 727 728 729 730 731 <a href="https://github.com/bnpr/Malt" target="_blank" rel="noopener" title="github.com" class="md-social__link"> 732 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> 733 </a> 734 735 736 737 738 739 740 <a href="https://www.youtube.com/channel/UCNjoz44PbgbQPqFrqy7Y4mg" target="_blank" rel="noopener" title="www.youtube.com" class="md-social__link"> 741 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg> 742 </a> 743 744 745 746 747 748 749 <a href="https://twitter.com/pragma37" target="_blank" rel="noopener" title="twitter.com" class="md-social__link"> 750 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg> 751 </a> 752 753 754 755 756 757 758 <a href="https://www.patreon.com/pragma37" target="_blank" rel="noopener" title="www.patreon.com" class="md-social__link"> 759 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"/></svg> 760 </a> 761 762</div> 763 764 </div> 765 </div> 766</footer> 767 768 </div> 769 <div class="md-dialog" data-md-component="dialog"> 770 <div class="md-dialog__inner md-typeset"></div> 771 </div> 772
772<script id="__config" type="application/json">{"base": ".", "features": ["navigation.instant", "navigation.tabs"], "search": "assets/javascripts/workers/search.5e67fbfe.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
772 773 774 775
775<script src="assets/javascripts/bundle.c44cc438.min.js"></script>
775 776 777
777<script src="extra/extra.js"></script>
777 778 779 780 </body> 781</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.