Showing preview only (697K chars total). Download the full file or copy to clipboard to get everything.
Repository: akosma/eBook-Template
Branch: master
Commit: 6736a8a2bbcd
Files: 29
Total size: 676.5 KB
Directory structure:
gitextract_mgrstzv9/
├── .gitignore
├── Dockerfile
├── LICENSE.adoc
├── Makefile
├── README.adoc
├── _conf/
│ └── umlconfig.txt
├── _resources/
│ ├── epubstyles/
│ │ ├── epub3-css3-only.css
│ │ └── epub3.css
│ └── pdfstyles/
│ └── default-theme.yml
├── chapters/
│ ├── appendix.adoc
│ ├── bibliography.adoc
│ ├── chapter_01.adoc
│ ├── chapter_02.adoc
│ ├── colophon.adoc
│ ├── dedication.adoc
│ ├── epigraph.adoc
│ ├── glossary.adoc
│ ├── index.adoc
│ ├── preface.adoc
│ ├── qanda.adoc
│ └── shortcuts.adoc
├── code/
│ └── code.swift
├── data/
│ └── tracks.csv
├── master.adoc
└── samples/
├── book.1
├── book.epub
├── book.html
├── book.mobi
└── raw_book.html
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
?
.DS_Store
_build
.asciidoctor
chapters/images
stem-*.png
stem-*.svg
diag-*.png
diag-*.svg
================================================
FILE: Dockerfile
================================================
# docker build -t "ebook-template" .
# docker run -v ${PWD}:/workdir ebook-template
FROM ubuntu:18.04
MAINTAINER Adrian Kosmaczewski "akosma@me.com"
# Update packages
RUN apt-get update
RUN apt-get upgrade -y
# Install basics
RUN apt-get install -y build-essential
# Install Ruby and Python
RUN apt-get install -y ruby ruby-dev
RUN apt-get install -y python
# Install specifics
RUN apt-get install -y ghostscript
RUN apt-get install -y plantuml cmake bison flex
RUN apt-get install -y libxml2-dev libcairo2-dev libpango1.0-dev libgdk-pixbuf2.0-dev libffi-dev
RUN apt-get install -y fonts-lyx intltool
# Update Rubygems
RUN gem update --system
RUN gem update
# Install Ruby gems
RUN gem install rake
RUN gem install pygments.rb kindlegen asciimath asciidoctor epubcheck
RUN gem install asciidoctor-pdf asciidoctor-epub3 --pre
RUN MATHEMATICAL_SKIP_STRDUP=1 gem install mathematical
RUN gem install asciidoctor-mathematical asciidoctor-diagram
WORKDIR /workdir
# Done
ENTRYPOINT ["make"]
================================================
FILE: LICENSE.adoc
================================================
= License
This work is placed in the public domain. It belongs to mankind and to nobody
in particular. Use it to write poetry, arts, science books and novels. You
shall not use it to spread hatred or to write bad things.
Just in case, the author does not take any responsibility about any bad things
that might happen when using this template. Hopefully this will not be the
case.
Use, share, transform, as much as you want. I hope you find it useful!
================================================
FILE: Makefile
================================================
DIR = _build
INPUT = master
OUTPUT = book
DIAGRAM = --require=asciidoctor-diagram
MATH = --require=asciidoctor-mathematical
#REQUIRES = ${DIAGRAM} ${MATH}
REQUIRES =
OUTPUT_FOLDER = --destination-dir=${DIR}
MANPAGE = --backend=manpage
HTML = --backend=html5 -a max-width=55em
RAW_HTML = --backend=html5 -a stylesheet! -a source-highlighter!
PDF = --backend=pdf --require=asciidoctor-pdf
EPUB = --backend=epub3 --require=asciidoctor-epub3
KINDLE = ${EPUB} -a ebook-format=kf8
# Public targets
all: manpage html raw_html pdf compressed_pdf epub kindle
manpage: _build/book.1
html: _build/book.html
raw_html: _build/raw_book.html
pdf: _build/book.pdf
compressed_pdf: _build/compressed_book.pdf
epub: _build/book.epub
kindle: _build/book.mobi
stats:
wc -w course/*.adoc
clean:
if [ -d ".asciidoctor" ]; \
then rm -r .asciidoctor; \
fi; \
if [ -d "${DIR}" ]; \
then rm -r ${DIR}; \
fi; \
# Private targets
_build/book.1:
asciidoctor ${MANPAGE} ${OUTPUT_FOLDER} --out-file=${OUTPUT}.1 ${INPUT}.adoc; \
_build/book.html:
asciidoctor ${HTML} ${REQUIRES} ${OUTPUT_FOLDER} --out-file=${OUTPUT}.html ${INPUT}.adoc; \
_build/raw_book.html:
asciidoctor ${RAW_HTML} ${REQUIRES} ${OUTPUT_FOLDER} --out-file=raw_${OUTPUT}.html ${INPUT}.adoc; \
_build/book.pdf:
asciidoctor ${PDF} ${REQUIRES} ${OUTPUT_FOLDER} --out-file=${OUTPUT}.pdf ${INPUT}.adoc; \
# Courtesy of
# http://www.smartjava.org/content/compress-pdf-mac-using-command-line-free
# Requires `brew install ghostscript`
_build/compressed_book.pdf: _build/book.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=${DIR}/compressed_book.pdf ${DIR}/book.pdf; \
_build/book.epub:
asciidoctor ${EPUB} ${REQUIRES} ${OUTPUT_FOLDER} --out-file=${OUTPUT}.epub ${INPUT}.adoc; \
_build/book.mobi:
asciidoctor ${KINDLE} ${REQUIRES} ${OUTPUT_FOLDER} --out-file=${OUTPUT}.mobi ${INPUT}.adoc; \
if [ -e "${DIR}/${OUTPUT}-kf8.epub" ]; \
then rm ${DIR}/${OUTPUT}-kf8.epub; \
fi; \
================================================
FILE: README.adoc
================================================
= Template for Writing an eBook
This is a new version of the classic template for eBooks. You can use this
code to kickstart your writing project from scratch.
== Design Guidelines
Why using such a complex setup instead of just using a simpler tool like
Word or Pages?
The primary motivation of this template is versioning. Being able to use
plain text files as input for the book brings the possibility of
versioning each change individually using Git, Subversion or any other
similar tool. This also opens up the door to collaboration among team
members when editing a document.
The second motivation is to separate the presentation and the layout of
the final book from its contents. Other output file types could be added
in the future.
This also brings the possibility of using any text editor in just about
any operating system; files are just plain text files that can be edited
with gEdit, Notepad, Emacs, Vim, TextEdit, or any other similar tool.
Markup languages like Markdown or Asciidoc (used in this template) are
simpler and more readable than LaTeX or other SGML-like languages, making
the files readable and lean even when edited in a text editor without any
syntax highlighting or formatting support.
Finally, being able to streamline the creation of the three versions of
the book in just one command-line operation allows the whole setup to be
automatized.
The choice of http://asciidoctor.org[Asciidoctor] comes from the following
features:
- Syntax highlighting of https://swift.org[Swift] and
https://kotlinlang.org[Kotlin] code in all outputs
(http://pandoc.org[Pandoc] does not support Swift at the moment.)
- Multi-file projects (Pandoc, because of Markdown, does not support the
`include` mechanism that AsciiDoc provides.)
== History
This toolkit started as a pure LaTeX workflow in 2009. In late 2011 the
system moved to Markdown and it used Pandoc to generate the artifacts. In
2012 the choice was http://asciidoc.org[AsciiDoc], and in 2016 this new
system was finally developed, using AsciiDoctor.
== How To Use
The `master.asciidoc` file at the root of this project provides the
guiding structure of the book. Chapters can be shuffled around,
independently of their contents or internal structure.
Individual chapters are stored in the `chapters` folder, one file per
chapter.
Images are stored as PNG files in the `images` folder. Data files (XML,
CSV, etc,) are located in the `data` folder.
The Makefile creates a temporary `_build` folder, copies all the different
elements in it (the master file, the chapters and the images) and commands
the execution of the whole toolchain in order to get the final result:
- Unix `man` page
- Self-contained HTML5
- PDF
- EPUB3
- Kindle (.mobi)
UML diagrams are generated by text through http://plantuml.com[PlantUML].
1. Execute the `make` command. This will create the PDF, ePub and HTML
versions of the book.
2. `make pdf`, `make html`, `make epub` and `make kindle` each generate
the specified version of the booklet.
3. `make clean` removes the `_build` folder.
After the build process completes, the compiled eBooks will be available
at the `_build` subfolder.
== Requirements and Installation Instructions
This section explains the different required libraries, for both macOS and
Ubuntu Linux.
=== macOS (Sierra)
Before using this template, make sure to have Homebrew and Rubygems installed,
then run the following commands to install the required dependencies:
$ xcode-select --install # (required for nokogiri, itself a requirement for asciidoc-epub3)
$ brew install plantuml glib gdk-pixbuf cairo pango cmake libxml2
$ gem install pygments.rb kindlegen asciimath asciidoctor asciidoctor-diagram asciidoctor-mathematical epubcheck
$ gem install asciidoctor-pdf asciidoctor-epub3 --pre
Install the font dependencies for `asciidoctor-mathematical`:
cd ~/Library/Fonts; \
curl -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmex10.ttf \
-LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmmi10.ttf \
-LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmr10.ttf \
-LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmsy10.ttf \
-LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/esint10.ttf \
-LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/eufm10.ttf \
-LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/msam10.ttf \
-LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/msbm10.ttf
If you experience compilation problems with `asciidoctor-mathematical` you can
`brew link gettext --force` if needed. Follow the installation instructions from
the https://github.com/asciidoctor/asciidoctor-mathematical[project] in case of
issues.
=== Ubuntu Linux (16.04/16.10/18.04)
Install the following libraries:
sudo apt-get install -y plantuml cmake ruby-dev libxml2-dev libcairo2-dev \
libpango1.0-dev bison flex libgdk-pixbuf2.0-dev libffi-dev ttf-lyx \
intltool
sudo gem install pygments.rb kindlegen asciimath asciidoctor \
asciidoctor-diagram epubcheck
sudo gem install asciidoctor-pdf asciidoctor-epub3 --pre
sudo MATHEMATICAL_SKIP_STRDUP=1 gem install mathematical
sudo gem install asciidoctor-mathematical
[Unfortunately](https://github.com/asciidoctor/asciidoctor-epub3/issues/179)
the current versions of Asciidoctor on Ubuntu exhibit a weird behaviour when
using asciidoctor-diagram during the generation of EPUB output.
=== Docker
The project includes a `Dockerfile` which can be built using the following
command:
`docker build -t "ebook-template" .`
Once built, the Docker container can be used as follows on the local folder
where the Makefile is located:
`docker run -v ${PWD}:/workdir ebook-template`
== License
See the LICENSE.adoc file.
================================================
FILE: _conf/umlconfig.txt
================================================
hide empty members
skinparam defaultFontName Helvetica
skinparam backgroundColor transparent
skinparam monochrome true
skinparam class {
BackgroundColor White
ArrowColor Black
BorderColor Black
}
skinparam legend {
BackgroundColor LightGray
ArrowColor Black
BorderColor Black
}
skinparam note {
BackgroundColor LightGray
ArrowColor Black
BorderColor Black
}
skinparam stereotype {
CBackgroundColor LightGray
}
skinparam state {
BackgroundColor White
ArrowColor Black
BorderColor Black
}
skinparam shadowing false
================================================
FILE: _resources/epubstyles/epub3-css3-only.css
================================================
/* Gitden & Namo default to 16px font-size; bump it to 20px (125%) */
body.gitden-reader,
body.namo-epub-library {
font-size: 125%;
}
/* Gitden doesn't give us much margin, so let's match Kindle */
body.gitden-reader {
margin: 0 25pt;
}
/* Namo has the same margin problem, except setting side margins doesn't work */
/*body.namo-epub-library > section.chapter {
margin: 0 25pt;
}*/
/* Use tighter margins and smaller font (18px) on phones (Nexus 4 and smaller) */
@media only screen and (max-device-width: 768px) and (max-device-height: 1280px),
only screen and (max-device-width: 1280px) and (max-device-height: 768px) {
body.gitden-reader,
body.namo-epub-library {
font-size: 112.5%;
}
body.gitden-reader {
margin: 0 5pt;
}
/*body.namo-epub-library > section.chapter {
margin: 0 5pt;
}*/
}
body h1, body h2, body h3:not(.list-heading), body h4, body h5, body h6,
h1 :not(code), h2 :not(code), h3:not(.list-heading) :not(code), h4 :not(code), h5 :not(code), h6 :not(code) {
/* !important required to override custom font setting in Kindle / Gitden / Namo */
/* Gitden requires the extra weight of a parent selector; it also makes headings bold when custom font is specified */
/* Kindle and Gitden require the override on heading child elements */
font-family: "M+ 1p", sans-serif !important;
}
/* QUESTION what about nested elements inside code? */
body code, body kbd, body pre, pre :not(code) {
/* !important required to override custom font setting in Kindle / Gitden / Namo */
/* Gitden requires the extra weight of a parent selector */
/* Kindle and Gitden require the override on pre child elements */
font-family: "M+ 1mn", monospace !important;
}
@media amzn-kf8 {
/* Kindle does its own margin management, so don't use an explicit margin */
/*body {
margin: 0 !important;
}*/
/* text-rendering is the only way to enable kerning in Kindle (and Calibre, though it seems to kern automatically) */
/* personally, I think Kindle overdoes kerning, but we're running with it for now */
/* text-rendering: optimizeLegibility kills certain Kindle eInk devices */
/*h1, h2, h3, h4, h5, h6,
body p, li, dd, blockquote > footer,
th, td, figcaption, caption {
text-rendering: optimizeLegibility;
}*/
/* hack line height of subtitle using floats on Kindle */
h1.chapter-title .subtitle {
margin-top: -0.2em;
margin-bottom: 0.3em; /* compensate for reduced line height */
}
/* NOTE using b instead of span since Firefox ePubReader applies immutable styles to span */
h1.chapter-title .subtitle > b {
float: left;
display: inline-block;
margin-bottom: -0.3em; /* reduce the line height */
padding-right: 0.2em; /* spacing between words */
}
h1.chapter-title .subtitle > b:last-child {
padding-right: 0;
}
h1.chapter-title .subtitle::after {
display: table;
content: ' ';
clear: both;
}
}
.chapter-header p.byline {
height: auto; /* Aldiko requires this value to be 0; reset it for all others */
}
/* Font-based icons */
.icon {
display: inline-block;
/* !important required to override custom font setting in Kindle (since .icon can appear inside a span) */
font-family: "FontAwesome" !important;
font-style: normal !important;
font-weight: normal !important;
line-height: 1;
}
.icon-1_5x {
padding: 0 0.25em;
-webkit-transform: scale(1.5, 1.5);
transform: scale(1.5, 1.5);
}
.icon-2x {
padding: 0 0.5em;
-webkit-transform: scale(2, 2);
transform: scale(2, 2);
}
.icon-small {
font-size: 0.85em;
vertical-align: 0.075em;
}
.icon-1_5em {
font-size: 1.5em;
}
.icon-2em {
font-size: 2em;
}
.icon-3em {
font-size: 3em;
}
.icon-4em {
font-size: 4em;
}
.icon-rotate-90 {
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
}
.icon-rotate-90i {
-webkit-transform: scale(-1, 1) rotate(90deg);
transform: scale(-1, 1) rotate(90deg);
}
.icon-rotate-180 {
-webkit-transform: rotate(180deg);
transform: rotate(180deg);
}
.icon-rotate-180i {
-webkit-transform: scale(-1, 1) rotate(180deg);
transform: scale(-1, 1) rotate(180deg);
}
.icon-rotate-270 {
-webkit-transform: rotate(270deg);
transform: rotate(270deg);
}
.icon-rotate-270i {
-webkit-transform: scale(-1, 1) rotate(270deg);
transform: scale(-1, 1) rotate(270deg);
}
.icon-flip-h {
-webkit-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.icon-flip-v {
-webkit-transform: scale(1, -1);
transform: scale(1, -1);
}
================================================
FILE: _resources/epubstyles/epub3.css
================================================
@import url("epub3-fonts.css");
*, *:before, *:after {
box-sizing: border-box;
}
/* educate older readers about tags introduced in HTML5 */
article, aside, details, figcaption, figure,
footer, header, nav, section, summary {
display: block;
}
/* html and body declarations must be separate entries for some readers */
html {
margin: 0 !important;
padding: 0 !important;
/* set the em base (and relative em anchor) by setting the font-size on html */
/* TODO set font-size > 100% except for Kindle */
font-size: 100%;
-webkit-text-size-adjust: 100%;
}
/* don't set margin on body as that's how many readers frame reading area */
/* can't set the font-family on body in Kindle */
body {
padding: 0 !important;
/* add margin to ~ match Kindle's narrow setting */
/* don't use !important on margin as it breaks calibre */
margin: 0;
font-size: 100%;
/* NOTE putting optimizeLegibility on the body slows down rendering considerably */
text-rendering: optimizeSpeed;
/* -webkit-font-smoothing has no noticable effect and is controversial, so leaving it off */
}
/* disables night mode in Aldiko, hoo-ha! */
html body {
background-color: #FFFFFF;
}
/* sets minimum margin permitted */
/* @page not supported by Kindle or GitDen */
@page {
/* push the top & bottom margins down in Aldiko to emulate Kindle (Kindle uses ~ 10% of screen by default )*/
margin: 1cm;
}
div, p, blockquote, pre, figure, figcaption,
h1, h2, h3, h4, h5, h6,
dl, dt, dd, ol, ul, li,
table, caption, thead, tfoot, tbody, tr, th, td {
margin: 0;
padding: 0;
font-size: 100%;
vertical-align: baseline;
}
a, abbr, address, cite, code, em, kbd, span, strong {
font-size: 100%;
}
a {
background: transparent;
}
a:active, a:hover {
outline: 0;
}
abbr[title] {
border-bottom: 1px dotted;
}
address {
white-space: pre-line;
}
b, strong {
font-weight: bold;
}
b.button {
font-weight: normal;
text-shadow: 1px 0 0 #B3B3B1;
color: #191918;
white-space: nowrap;
}
b.button .label {
padding: 0 0.25em;
}
kbd {
display: inline-block;
font-size: 0.8em;
line-height: 1;
background-color: #F7F7F7; /* #FAFAFA */
border: 1px solid #BEBEBC;
-webkit-border-radius: 3px;
border-radius: 3px;
-webkit-box-shadow: 1px 1px 0 rgba(102, 102, 101, 0.25), 0 0 0 1px white inset;
box-shadow: 1px 1px 0 rgba(102, 102, 101, 0.25), 0 0 0 1px white inset;
margin: 0 0.15em;
padding: 0.25em 0.4em 0.2em 0.4em;
vertical-align: 0.15em;
}
.keyseq {
white-space: nowrap;
}
.menuseq .caret {
/*
font-family: "FontAwesome";
font-size: 0.7em;
line-height: 1;
font-weight: bold;
vertical-align: 0.08rem;
*/
font-weight: bold;
}
.menuseq span[class~="caret"] {
visibility: hidden;
}
.menuseq .caret::before {
font-family: "FontAwesome";
content: "\f054";
font-size: 0.6em;
vertical-align: 0.15em;
visibility: visible;
display: inline-block;
width: 0;
padding-right: 0.15em;
}
img {
border: 0;
}
mark {
background-color: #FFC14F;
color: #191918;
}
small {
font-size: 80%;
}
sub, sup {
font-size: 0.75em;
line-height: 1;
}
sup {
/* position: relative not permitted on Kindle */
/*
position: relative;
top: -0.5em;
*/
/* alternate approach #1 */
/*
display: inline-block;
vertical-align: text-top;
padding-top: .25em;
*/
/* alternate approach #2 */
line-height: 1;
vertical-align: text-top;
}
sub {
/* position: relative not permitted on Kindle */
/*
position: relative;
bottom: -0.25em;
*/
/* alternate approach #1 */
/*
display: inline-block;
vertical-align: text-bottom;
padding-bottom: .5em;
*/
/* alternate approach #2 */
line-height: 1;
vertical-align: text-bottom;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
td, th {
padding: 0;
}
body a:link {
color: #333332;
/* hack for font color in iBooks and Gitden (though Gitden would accept color !important too) */
-webkit-text-fill-color: #333332;
/* Kindle requires the !important on text-decoration */
/* In night mode, the only indicator of a link is the underline, so we need it or a background image */
text-decoration: none !important;
border-bottom: 1px dashed #666665;
/* allow URLs to break anywhere if they don't fit on a line; but how do we know it's a URL? */
/*
word-break: break-all;
*/
}
body:first-of-type a:link {
border-bottom: none;
background-repeat: no-repeat;
background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, #666665 5%, #666665 95%, rgba(255,255,255,0) 100%);
background-image: linear-gradient(to right, rgba(255,255,255,0) 0%, #666665 5%, #666665 95%, rgba(255,255,255,0) 100%);
background-size: 100% 1px;
background-position: 0 1.2em;
}
body a:visited {
color: #666665;
/* hack for font color in iBooks */
-webkit-text-fill-color: #666665;
}
code.literal {
/* don't let it affect line spacing */
/* disable since M+ 1mn won't interrupt line height */
/*line-height: 1;*/
/*
white-space: nowrap;
*/
word-wrap: break-word;
}
h1, h2, h3, h4, h5, h6 {
font-family: "M+ 1p", sans-serif;
font-weight: 400;
letter-spacing: -0.01em;
/* NOTE Kindle doesn't allow the line-height to be less than the font size (refer to heading font sizes) */
line-height: 1.4; /* or 1.2125 */
text-align: left;
-webkit-hyphens: none; /* disable hyphenation where supported (e.g., iBooks) */
word-wrap: break-word; /* break in middle of long word if no other break opportunities are available */
/* avoiding page breaks does not seem to work in Kindle */
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
-webkit-column-break-after: avoid;
page-break-after: avoid;
}
/* Aldiko requires a higher precedence rule to set margin and text-indent, hence the body prefix */
/* We'll just use the stronger rule for all paragraph-related stuff to be sure */
body p {
margin: 1em 0 0 0;
text-align: justify;
text-indent: 0;
widows: 2;
orphans: 2;
}
body p,
ul, ol, li, dl, dt, dd, footer,
div.verse .attribution, table.table th, table.table td,
figcaption, caption {
color: #333332;
/* NOTE iBooks will forcefully override font-family of text inside div, p and span elements when font other than Original is selected */
/* NOTE iBooks honors Original font for prose text if declared in display-options.xml */
font-family: "Noto Serif", serif;
}
body p, li, dt, dd, footer {
line-height: 1.6;
}
code, kbd, pre {
color: #191918;
font-family: "M+ 1mn", monospace;
-webkit-hyphens: none; /* disable hyphenation where supported (e.g., iBooks) */
}
/* QUESTION should we kern preformatted text blocks? */
h1, h2, h3, h4, h5, h6,
body p, li, dd, blockquote > footer,
th, td, figcaption, caption {
/* forward-compatible CSS to enable kerning (if we want ligatures, add "liga" and "dlig") */
/* WebKits that don't recognize these properties don't kern well, hence why we don't simply enable kerning via text-rendering */
-webkit-font-feature-settings: "kern";
font-feature-settings: "kern";
font-kerning: normal;
/* NOTE see Kindle hack in epub3-css3-only.css for additional kerning settings (disabled) */
}
p.last::after {
color: #57AD68;
display: inline-block;
font-family: "FontAwesome";
font-size: 1em;
content: "\f121"; /* i.e., </> */
margin-left: 0.25em;
}
ul li, ol li {
/* minimum margin in case there is no paragraph content */
margin-top: 0.4em;
}
/* use paragraph-size gaps between list items */
.complex > ul > li,
.complex > ol > li {
margin-top: 1em;
}
/* squeeze content in complex lists */
/*
li > figure,
li > p {
margin-top: 0.4em;
}
*/
dl {
margin-top: 0;
margin-bottom: 0;
}
dt {
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
-webkit-column-break-after: avoid;
page-break-after: avoid;
}
dt > span.term {
font-style: italic;
}
/*
dt > span.term > code.literal {
font-style: normal;
}
*/
dt {
margin-top: 0.75em; /* balances 0.25em to term */
}
dl dd {
/* minimum margin in case there is no paragraph content */
margin-top: 0.25em;
}
div.callout-list {
margin-top: 0.5em;
}
div.callout-list ol {
font-size: 80%;
margin-left: 1.5em !important;
list-style-type: none;
}
div.callout-list ol li {
text-align: left;
}
i.conum {
color: #468C54;
font-family: "M+ 1mn", monospace;
font-style: normal;
}
/* don't let conum affect line spacing; REVIEW may not need this! */
/*pre i.conum {
line-height: 1;
}*/
div.callout-list li > i.conum {
float: left;
margin-left: -1.25em;
display: block;
width: 1.25em;
}
div.itemized-list, div.ordered-list, div.description-list {
margin-top: 1em;
padding-bottom: 0.25em; /* REVIEW maybe, maybe not */
}
/* QUESTION should we add the class "list" so we can style these generically? */
div.itemized-list div.itemized-list,
div.itemized-list div.ordered-list,
div.itemized-list div.description-list,
div.ordered-list div.itemized-list,
div.ordered-list div.ordered-list,
div.ordered-list div.description-list {
margin-top: 0;
}
/*div.description-list div.itemized-list,
div.description-list div.ordered-list,
div.description-list div.description-list {
}*/
h3.list-heading {
font-size: 1em;
font-family: "Noto Serif", serif;
font-weight: bold;
line-height: 1.6;
margin-top: 1em;
margin-bottom: -0.25em;
letter-spacing: 0;
}
div.stack li strong.subject,
div.stack-subject li strong.subject {
display: block;
}
ul {
/* QUESTION do we need important here? */
margin-left: 1em !important;
list-style-type: square;
}
ul ul {
list-style-type: circle;
}
ul ul ul {
list-style-type: disc;
}
/* disable list style type for CSS3-enabled clients */
body:first-of-type ul,
body:first-of-type ul ul,
body:first-of-type ul ul ul {
list-style-type: none;
}
ul > li::before {
float: left;
margin-left: -1em;
margin-top: -0.05em;
padding-left: 0.25em;
/* guarantee it's out of the flow */
width: 0;
display: block;
}
ul > li::before {
content: "\25AA"; /* small black square */
color: #666665;
}
ul ul > li::before {
content: "\25E6"; /* small white circle */
color: #57AD68;
}
ul ul ul > li::before {
content: "\2022"; /* small black circle */
color: #666665;
}
ul ul ul ul > li::before {
content: "\25AB"; /* small white square */
color: #57AD68;
}
ol {
margin-left: 1.75em !important;
}
ol {
list-style-type: decimal;
}
ol ol {
list-style-type: lower-alpha;
}
ol ol ol {
list-style-type: lower-roman;
}
/* REVIEW */
dd {
margin-left: 1.5rem !important;
}
/* Kindle does not justify list-item element, must wrap in nested block element */
li > span.principal, dd > span.principal {
display: block;
text-align: justify;
}
ol.brief > li > span.principal,
ul.brief > li > span.principal {
text-align: left;
}
/* REVIEW still considering keeping this one */
/* disable justify within a link */
/*
li strong.subject a:link {
white-space: pre-wrap;
word-spacing: 0.1em;
}*/
/*
.bibliography ul li,
.references ul li {
text-align: left;
}
*/
ul.bibliography > li > span.principal,
ul.references > li > span.principal {
text-align: left;
}
/* sized based on the major third modular scale (4:5, 16px, 24px) */
h1, h2 {
color: #333332;
font-size: 1.5em;
word-spacing: -0.075em;
margin-top: 1em; /* 1.5rem */
margin-bottom: -0.3333em; /* -0.5rem, 0.5rem to content */
}
h3 {
color: #333332;
font-size: 1.25em;
margin-top: 0.84em; /* 1.05rem */
margin-bottom: -0.5em; /* -0.625rem, 0.375rem to content */
}
h4 {
color: #4F4F4C;
font-weight: 200;
font-size: 1.1em;
margin-top: 1em; /* 1.1rem */
margin-bottom: -0.818em; /* -0.9rem, 0.1rem to content */
font-size: 1.2em;
margin-top: .917em; /* 1.1rem */
margin-top: 0.875em; /* 1.05rem */
/*margin-bottom: -0.75em;*/ /* -0.9rem, 0.1rem to content */
margin-bottom: -0.625em; /* -0.75rem, 0.25rem to content */
}
h5 {
color: #666665;
/*
font-size: 1em;
text-transform: uppercase;
margin-top: 1em;
margin-bottom: -1em;
*/
font-size: 0.9em;
font-weight: 700;
text-transform: uppercase;
margin-top: 1.11em; /* 1rem */
margin-bottom: -0.972em; /* -0.875rem */
}
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
color: inherit;
}
h5 code {
text-transform: none;
}
/* Kindle strips (or unwraps) <header> tags, so we use an inner div to style */
.chapter-header {
background-color: #333332;
/* NOTE div must have at least 1px top padding for background to fill */
padding: 0.75em 1.5em 0.25em 1.5em; /* would like to use 1.5vh 1.5em */
margin-bottom: 2.5em;
/* TODO maybe what we need to get articles to start in left column
-webkit-column-break-before: left;
page-break-before: left;
*/
}
h1.chapter-title {
font-weight: 200;
font-size: 1.2em;
margin-top: 3.5em; /* 4.2rem - would like to use 9vh */
margin-bottom: 0;
padding-bottom: 0.8333em; /* 1.2rem */
color: #B3B3B1;
text-transform: uppercase;
word-spacing: -0.075em;
letter-spacing: -0.01em;
border-bottom: 1px solid #DCDCDE;
}
h1.chapter-title .subtitle {
font-weight: 400;
color: #FFFFFF;
display: block;
font-size: 1.5em;
margin: 0 0 0 0.75em; /* would like to use 2vw */
line-height: 1.2; /* line-height will remain 1.4 on Kindle, see hack in media query */
}
h1.chapter-title em {
color: #57AD68;
font-style: normal;
}
h1.chapter-title b {
font-weight: inherit;
}
.chapter-header p.byline {
color: #DCDCDE;
/* float left and height 0 takes this line out of the flow */
float: left;
height: 0;
width: 100%;
text-align: right;
margin-top: 0;
line-height: 2;
}
.chapter-header p.byline b {
font-weight: normal;
padding-left: 0.2em; /* 0.25rem */
font-size: 0.8em;
line-height: 2.5; /* 2rem */
}
.chapter-header p.byline img {
-webkit-border-radius: 0.5em;
border-radius: 0.5em;
vertical-align: middle;
/* some readers like to resize images; we don't want the author images resized */
height: 2em !important;
width: 2em !important;
}
/* HACK: Solves a problem in the current implementation of asciidoctor-epub3 */
p.byline {
display: none;
}
/* HACK: Solves a problem in the current implementation of asciidoctor-epub3 */
div.abstract {
margin: 5% 1.5em 2.5em 1.5em;
}
div.abstract > p {
color: #666665;
font-size: 1.05em; /* or 1.1em? */
line-height: 1.75;
}
div.abstract > p a:link {
color: #666665;
/* hack for font color in iBooks */
-webkit-text-fill-color: #666665;
}
div.abstract > p:first-child::first-line {
font-weight: bold;
-webkit-font-feature-settings: "kern" off;
font-feature-settings: "kern" off;
font-kerning: none;
/* and for Kindle... */
text-rendering: optimizeSpeed;
}
div.abstract p strong {
font-weight: inherit;
font-style: italic;
}
p.lead {
font-size: 1.05em;
line-height: 1.75;
}
hr.thematicbreak {
display: none;
}
hr.thematicbreak + p {
margin-top: 1.5em;
}
/* TODO finish layout of first-letter */
hr.thematicbreak + p::first-letter {
font-size: 200%;
}
p.stack > strong.head,
p.stack-head > strong.head {
display: block;
}
p.signature {
font-size: 0.9em;
}
figure,
aside.sidebar {
margin-top: 1em;
}
/*
aside.sidebar {
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
float: left;
margin-bottom: 1em;
}
*/
figure.image {
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
}
figure.image img {
max-width: 100%;
}
figure.coalesce {
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
}
figcaption,
caption {
font-size: 0.9em;
font-style: italic;
color: #666665;
letter-spacing: -0.01em;
line-height: 1.4;
text-align: left;
padding-left: 0.1em;
page-break-inside: avoid;
-webkit-column-break-after: avoid;
page-break-after: avoid;
}
figure.image figcaption {
padding-left: 0;
margin-top: 0.2em;
-webkit-column-break-after: auto;
page-break-after: auto;
}
p + figure.listing,
span.principal + figure.listing {
margin-top: 0.75em; /* 0.75rem */
}
figure.listing > pre {
margin-top: 0;
}
/* REVIEW TODO put margin bottom on the figcaption instead */
figure.listing > figcaption + pre {
margin-top: 0.294em; /* 0.25rem */
}
aside.sidebar {
border: 1px solid #B3B3B1;
padding: 0 1.5em;
font-size: 0.9em;
background-color: #F2F2F2;
text-align: right; /* aligns heading to right */
/*
-webkit-box-shadow: 0px 1px 1px rgba(102, 102, 101, 0.15);
box-shadow: 0px 1px 1px rgba(102, 102, 101, 0.15);
*/
}
body:first-of-type aside.sidebar {
background-color: rgba(0, 0, 0, 0.05); /* using transparency is night-mode friendly */
/*background-color: rgba(51, 51, 50, 0.06);*/ /* using transparency is night-mode friendly */
}
/* a bit of a cheat; could use aside.sidebar[title] instead, but not on Aldiko */
aside.sidebar.titled {
margin-top: 2em;
}
aside.sidebar > h2 {
/*text-transform: uppercase;*/ /* uppercase done manually to support Aldiko */
font-size: 1em;
/*
font-weight: 700;
*/
font-weight: 400;
letter-spacing: 0;
display: inline-block;
white-space: nowrap; /* for some reason it's wrapping prematurely */
border: 1px solid #B3B3B1;
padding: 1.5em .75em .5em .75em;
margin: -1em 0.5em -0.25em 0.5em;
background-color: #FFFFFF;
/*
-webkit-box-shadow: 0px 1px 1px rgba(102, 102, 101, 0.1);
box-shadow: 0px 1px 1px rgba(102, 102, 101, 0.1);
*/
}
/* doesn't work
body:first-of-type aside.sidebar > h2 {
background-color: rgba(255, 255, 255, 1);
}
*/
aside.sidebar > div.content {
margin-bottom: 1em;
text-align: justify; /* restore text alignment in content */
}
/* QUESTION same for ordered-list? */
aside.sidebar > div.content > div.itemized-list > ul {
margin-left: 0.5em !important;
}
div.blockquote {
padding: 0 1em;
margin: 1.25em auto;
}
/* display: table causes quotes to be repeated in Aldiko, so we hide this part */
div[class~="blockquote"] {
display: table;
}
blockquote > p {
color: #191918;
font-style: italic;
/*
font-size: 1.2em;
word-spacing: 0.1em;
*/
font-size: 1.15em;
word-spacing: 0.1em;
margin-top: 0;
line-height: 1.75;
}
/* hide explicit open quote for CSS3-enabled clients */
blockquote span.open-quote:not(:empty) {
display: none;
}
/* NOTE if we mapped the font icon to "\201c", we could just style the .open-quote */
blockquote > p:first-of-type::before {
display: inline-block;
color: #666665;
text-shadow: 0 1px 2px rgba(102, 102, 101, 0.3);
/* using serif quote from entypo */
font-family: "FontIcons";
/*content: "\f10e";*/ /* quote-right from Entypo */
/*
-webkit-transform: rotate(180deg);
transform: rotate(180deg);
padding-left: .3em;
padding-right: .2em;
*/
content: "\f10d"; /* quote-left, a flipped version of the quote-right from Entypo */
padding-right: .5em;
font-size: 1.5em;
line-height: 1.3;
margin-top: -0.5em;
vertical-align: text-bottom;
}
blockquote footer {
font-size: 0.9em;
font-style: italic;
margin-top: 0.5rem;
text-align: right;
}
blockquote footer .context {
font-size: 0.9em;
letter-spacing: -0.1em;
color: #666665;
}
/* Kindle requires text-align: center on surrounding div to align image to center */
figure.image div.content {
text-align: center;
}
/* in the event the viewer adds display: block to the image */
figure.image img {
/* max-width not supported in Kindle, need to use a media query to add */
/*max-width: 95%;*/
margin: 0 auto;
}
pre {
text-align: left; /* fix for Namo */
margin-top: 1em; /* 0.85rem */
/*margin-top: 1.176em;*/ /* 1rem */
white-space: pre-wrap;
/*word-break: break-all;*/ /* break at the end of the line, no matter what */
word-wrap: break-word; /* break in middle of long word if no other break opportunities are available */
font-size: 0.85em;
line-height: 1.4; /* matches what Kindle uses and can't go less */
background-color: #F2F2F2;
padding: 0.5rem 0.75rem;
/*
border-top: 3px solid #DCDCDE;
*/
/* QUESTION #B3B3B1? */
border-top: 1px solid #DCDCDE;
border-right: 1px solid #DCDCDE;
}
body:first-of-type pre {
background-color: rgba(0, 0, 0, 0.05); /* using transparency is night-mode friendly */
/*background-color: rgba(51, 51, 50, 0.06);*/ /* using transparency is night-mode friendly */
}
/* TODO what we really want is for pre w/o caption to be unbreakable */
pre.screen {
/*
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
*/
orphans: 3;
widows: 3; /* widows doesn't seem to work here */
}
pre.source {
orphans: 3;
widows: 3; /* widows doesn't seem to work here */
}
div.verse {
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
}
/* TODO we may want to reenable hyphens here, but not for kf8 */
div.verse > pre {
background-color: transparent;
border: none;
font-size: 1.2em;
text-align: center;
}
div.verse .attribution {
display: block;
margin-top: 1.4em;
}
aside.admonition {
margin-top: 1em;
padding: 1em;
border-left: 0.5em solid transparent;
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
}
/* overrides for CSS3-enabled clients */
aside[class~="admonition"] {
margin: 1.5em 2em; /* even if admonition is at bottom of block, we want that extra space below */
padding: 0;
border-width: 0;
background: none !important;
}
aside.note {
border-left-color: #B3B3B1;
background-color: #E1E1E1; /* 25% opacity of border */
}
aside.tip {
border-left-color: #57AD68;
background-color: #D4EAD9; /* 25% opacity of border */
}
aside.caution {
border-left-color: #666665;
background-color: #D8D8D8; /* 25% opacity of border */
}
aside.warning {
border-left-color: #C83737;
background-color: #F1CCCC; /* 25% opacity of border */
}
aside.important {
border-left-color: #FFC14F;
background-color: #FFEFD2; /* 25% opacity of border */
}
aside.admonition::before {
display: block;
font-family: "FontAwesome";
font-size: 2em;
line-height: 1;
width: 1em;
text-align: center;
margin-bottom: -0.25em;
margin-left: -0.5em;
text-shadow: 0px 1px 2px rgba(102, 102, 101, 0.3);
}
aside.admonition > div.content {
font-size: 90%;
margin-top: -1em; /* prevent at top of content when using block form of admonition */
}
aside[class~="admonition"] > div[class~="content"] {
margin-top: 0;
padding-bottom: 1em;
background-size: 100% 1px;
background-repeat: no-repeat;
background-position: 0 bottom;
/* template
background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 42.5%, <color> 45%, <color> 55%, rgba(255,255,255,0) 57.5%);
background-image: linear-gradient(to right, rgba(255,255,255,0) 42.5%, <color> 45%, <color> 55%, rgba(255,255,255,0) 57.5%);
*/
}
aside.note::before {
/*content: "\f0f4";*/ /* fa-coffee */
content: "\f040"; /* fa-pencil */
color: #B3B3B1; /* 179,179,177 */
}
aside[class~="note"] > div[class~="content"] {
background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 42.5%, #B3B3B1 45%, #B3B3B1 55%, rgba(255,255,255,0) 57.5%);
background-image: linear-gradient(to right, rgba(255,255,255,0) 42.5%, #B3B3B1 45%, #B3B3B1 55%, rgba(255,255,255,0) 57.5%);
}
aside.tip::before {
/*content: "\f069";*/ /* fa-asterisk */
/*content: "\f0d6";*/ /* fa-money */
content: "\f15a"; /* fa-bitcoin */
color: #57AD68; /* 87,173,104 */
}
aside[class~="tip"] > div[class~="content"] {
background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 42.5%, #57AD68 45%, #57AD68 55%, rgba(255,255,255,0) 57.5%);
background-image: linear-gradient(to right, rgba(255,255,255,0) 42.5%, #57AD68 45%, #57AD68 55%, rgba(255,255,255,0) 57.5%);
}
aside.caution::before {
content: "\f0c2"; /* fa-cloud */
color: #666665; /* 102,102,101 */
}
aside[class~="caution"] > div[class~="content"] {
background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 42.5%, #666665 45%, #666665 55%, rgba(255,255,255,0) 57.5%);
background-image: linear-gradient(to right, rgba(255,255,255,0) 42.5%, #666665 45%, #666665 55%, rgba(255,255,255,0) 57.5%);
}
aside.warning::before {
content: "\f0e7"; /* fa-bolt */
color: #C83737; /* 200,55,55 */
}
aside[class~="warning"] > div[class~="content"] {
background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 42.5%, #C83737 45%, #C83737 55%, rgba(255,255,255,0) 57.5%);
background-image: linear-gradient(to right, rgba(255,255,255,0) 42.5%, #C83737 45%, #C83737 55%, rgba(255,255,255,0) 57.5%);
}
aside.important::before {
content: "\f12a"; /* fa-exclamation */
color: #FFC14F; /* 255,193,79 */
}
aside[class~="important"] > div[class~="content"] {
background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 42.5%, #FFC14F 45%, #FFC14F 55%, rgba(255,255,255,0) 57.5%);
background-image: linear-gradient(to right, rgba(255,255,255,0) 42.5%, #FFC14F 45%, #FFC14F 55%, rgba(255,255,255,0) 57.5%);
}
aside.admonition > h2 {
margin-top: 0;
margin-bottom: 1.5em;
font-size: 1em;
text-align: center;
}
aside[class~="admonition"] > h2 {
float: left;
width: 100%;
margin-top: -1.25em;
margin-bottom: 0;
}
div.table {
margin-top: 1em;
}
table.table thead,
table.table tbody,
table.table tfoot {
font-size: 0.8em;
}
table.table > caption {
padding-bottom: 0.1em;
}
table.table th,
table.table td {
line-height: 1.4;
padding: 0.5em 0.5em 1em 0.1em;
vertical-align: top;
text-align: left;
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
}
table.table th {
font-weight: bold;
}
table.table thead th {
border-bottom: 1px solid #80807F;
}
table.table td > p {
margin-top: 0;
text-align: left;
}
/* REVIEW */
table.table td > p + p {
margin-top: 1em;
}
table.table-framed {
border-width: 1px;
border-style: solid;
border-color: #80807F;
}
table.table-framed-topbot {
border-width: 1px 0;
border-style: solid;
border-color: #80807F;
}
table.table-framed-sides {
border-width: 0 1px;
border-style: solid;
border-color: #80807F;
}
table.table-grid th,
table.table-grid td {
border-width: 0 1px 1px 0;
border-style: solid;
border-color: #80807F;
}
table.table-grid thead tr > *:last-child {
border-right-width: 0;
}
table.table-grid tbody tr:last-child > th,
table.table-grid tbody tr:last-child > td {
border-bottom-width: 0;
}
table.table-grid-rows tbody th,
table.table-grid-rows tbody td {
border-width: 1px 0 0 0;
border-style: solid;
border-color: #80807F;
}
table.table-grid-cols th,
table.table-grid-cols td {
border-width: 0 1px 0 0;
border-style: solid;
border-color: #80807F;
}
table.table-grid-cols thead th:last-child {
border-right-width: 0;
}
table.table-grid-cols tbody tr > td:last-child {
border-right-width: 0;
}
hr.pagebreak {
-webkit-column-break-after: always;
page-break-after: always;
border: none;
margin: 0;
}
/* REVIEW */
hr.pagebreak + * {
margin-top: 0 !important;
}
#_about_the_author {
-webkit-column-break-before: always;
page-break-before: always;
border-bottom: 1px solid #B3B3B3;
}
img.headshot {
float: left;
border: 1px solid #80807F;
padding: 1px;
margin: 0.35em 1em 0.15em 0;
height: 5em !important;
width: 5em !important;
}
/* Kindle refuses to style footer (perhaps stripped), so we use an explicit class */
.chapter-footer {
-webkit-column-break-before: always;
page-break-before: always;
}
div.footnotes {
margin-top: 1em;
}
div.footnotes p {
font-size: 0.8rem;
margin-top: 0.4rem;
}
div.footnotes sup.noteref {
font-weight: bold;
font-size: 0.9em;
}
/*div.footnotes sup.noteref a {*/
sup.noteref a {
/* Kindle wants to underline these links */
text-decoration: none !important;
background-image: none;
}
nav#toc ol {
list-style-type: none;
}
.icon {
display: none;
}
@media amzn-mobi {
/* NOTE mobi7 doesn't support custom fonts, so revert to generic ones */
body p, ul, ol, li, dl, dt, dd, figcaption, caption, footer,
table.table th, table.table td, div.verse .attribution {
font-family: serif;
}
h1, h2, h3, h4, h5, h6 {
font-family: sans-serif;
}
code, kbd, pre, i.conum {
font-family: monospace;
}
}
================================================
FILE: _resources/pdfstyles/default-theme.yml
================================================
font:
catalog:
# Noto Serif supports Latin, Latin-1 Supplement, Latin Extended-A, Greek, Cyrillic, Vietnamese & an assortment of symbols
Noto Serif:
normal: notoserif-regular-subset.ttf
bold: notoserif-bold-subset.ttf
italic: notoserif-italic-subset.ttf
bold_italic: notoserif-bold_italic-subset.ttf
# M+ 1mn supports ASCII and the circled numbers used for conums
M+ 1mn:
normal: mplus1mn-regular-ascii-conums.ttf
bold: mplus1mn-bold-ascii.ttf
italic: mplus1mn-italic-ascii.ttf
bold_italic: mplus1mn-bold_italic-ascii.ttf
# M+ 1p supports Latin, Latin-1 Supplement, Latin Extended, Greek, Cyrillic, Vietnamese, Japanese & an assortment of symbols
# It also provides arrows for ->, <-, => and <= replacements in case these glyphs are missing from font
M+ 1p Fallback:
normal: mplus1p-regular-fallback.ttf
bold: mplus1p-regular-fallback.ttf
italic: mplus1p-regular-fallback.ttf
bold_italic: mplus1p-regular-fallback.ttf
fallbacks:
- M+ 1p Fallback
page:
background_color: ffffff
layout: portrait
margin: [0.5in, 0.67in, 0.67in, 0.67in]
margin_inner: 0.75in
margin_outer: 0.59in
size: A4
base:
align: justify
# color as hex string (leading # is optional)
font_color: 333333
# color as RGB array
#font_color: [51, 51, 51]
# color as CMYK array (approximated)
#font_color: [0, 0, 0, 0.92]
#font_color: [0, 0, 0, 92%]
font_family: Noto Serif
# choose one of these font_size/line_height_length combinations
font_size: 14
line_height_length: 20
#font_size: 11.25
#line_height_length: 18
#font_size: 11.2
#line_height_length: 16
#font_size: 10.5
#line_height_length: 15
# correct line height for Noto Serif metrics
#line_height_length: 12
#font_size: 11.25
#line_height_length: 18
line_height: $base_line_height_length / $base_font_size
font_size_large: round($base_font_size * 1.25)
font_size_small: round($base_font_size * 0.85)
font_size_min: $base_font_size * 0.75
font_style: normal
border_color: eeeeee
border_radius: 4
border_width: 0.5
# FIXME vertical_rhythm is weird; we should think in terms of ems
#vertical_rhythm: $base_line_height_length * 2 / 3
# correct line height for Noto Serif metrics (comes with built-in line height)
vertical_rhythm: $base_line_height_length
horizontal_rhythm: $base_line_height_length
# QUESTION should vertical_spacing be block_spacing instead?
vertical_spacing: $vertical_rhythm
link:
font_color: 428bca
# literal is currently used for inline monospaced in prose and table cells
literal:
font_color: b12146
font_family: M+ 1mn
menu_caret_content: " <font size=\"1.15em\"><color rgb=\"b12146\">\u203a</color></font> "
heading:
#font_color: 181818
font_color: $base_font_color
font_family: M+ 1p Fallback
font_style: bold
# h1 is used for part titles (book doctype only)
h1_font_size: floor($base_font_size * 2.6)
# h2 is used for chapter titles (book doctype only)
h2_font_size: floor($base_font_size * 2.15)
h3_font_size: round($base_font_size * 1.7)
h4_font_size: $base_font_size_large
h5_font_size: $base_font_size
h6_font_size: $base_font_size_small
#line_height: 1.4
# correct line height for Noto Serif metrics (comes with built-in line height)
line_height: 1
margin_top: $vertical_rhythm * 0.4
margin_bottom: $vertical_rhythm * 0.9
title_page:
align: right
logo:
top: 10%
title:
top: 55%
font_size: $heading_h1_font_size
font_color: 999999
line_height: 0.9
subtitle:
font_size: $heading_h3_font_size
font_style: bold_italic
line_height: 1
authors:
margin_top: $base_font_size * 1.25
font_size: $base_font_size_large
font_color: 181818
revision:
margin_top: $base_font_size * 1.25
block:
margin_top: 0
margin_bottom: $vertical_rhythm
caption:
align: left
font_style: italic
# FIXME perhaps set line_height instead of / in addition to margins?
margin_inside: $vertical_rhythm / 3
#margin_inside: $vertical_rhythm / 4
margin_outside: 0
lead:
font_size: $base_font_size_large
line_height: 1.4
abstract:
font_color: 5c6266
font_size: $lead_font_size
line_height: $lead_line_height
font_style: italic
first_line_font_style: bold
admonition:
border_color: $base_border_color
border_width: $base_border_width
padding: [0, $horizontal_rhythm, 0, $horizontal_rhythm]
# icon:
# tip:
# name: fa-lightbulb-o
# stroke_color: 111111
# size: 24
blockquote:
font_color: $base_font_color
font_size: $base_font_size_large
border_color: $base_border_color
border_width: 5
padding: [$vertical_rhythm / 2, $horizontal_rhythm, $vertical_rhythm / -2, $horizontal_rhythm + $blockquote_border_width / 2]
cite_font_size: $base_font_size_small
cite_font_color: 999999
# code is used for source blocks (perhaps change to source or listing?)
code:
font_color: $base_font_color
font_family: $literal_font_family
font_size: ceil($base_font_size)
padding: $code_font_size
line_height: 1.25
background_color: f5f5f5
border_color: cccccc
border_radius: $base_border_radius
border_width: 0.75
conum:
font_family: M+ 1mn
font_color: $literal_font_color
font_size: $base_font_size
line_height: 4 / 3
example:
border_color: $base_border_color
border_radius: $base_border_radius
border_width: 0.75
background_color: transparent
# FIXME reenable margin bottom once margin collapsing is implemented
padding: [$vertical_rhythm, $horizontal_rhythm, 0, $horizontal_rhythm]
image:
align: left
prose:
margin_top: 0
margin_bottom: $vertical_rhythm
sidebar:
border_color: $page_background_color
border_radius: $base_border_radius
border_width: $base_border_width
background_color: eeeeee
# FIXME reenable margin bottom once margin collapsing is implemented
padding: [$vertical_rhythm, $vertical_rhythm * 1.25, 0, $vertical_rhythm * 1.25]
title:
align: center
font_color: $heading_font_color
font_family: $heading_font_family
font_size: $heading_h4_font_size
font_style: $heading_font_style
thematic_break:
border_color: $base_border_color
border_style: solid
border_width: $base_border_width
margin_top: $vertical_rhythm * 0.5
margin_bottom: $vertical_rhythm * 1.5
description_list:
term_font_style: italic
term_spacing: $vertical_rhythm / 4
description_indent: $horizontal_rhythm * 1.25
outline_list:
indent: $horizontal_rhythm * 1.5
# NOTE item_spacing applies to list items that do not have complex content
item_spacing: $vertical_rhythm / 2
#marker_font_color: 404040
table:
background_color: $page_background_color
#head_background_color: <hex value>
#head_font_color: $base_font_color
head_font_style: bold
even_row_background_color: f9f9f9
#odd_row_background_color: <hex value>
foot_background_color: f0f0f0
border_color: dddddd
border_width: $base_border_width
# HACK accounting for line-height
cell_padding: [3, 3, 6, 3]
toc:
dot_leader_color: dddddd
#dot_leader_content: '. '
indent: $horizontal_rhythm
line_height: 1.4
# NOTE In addition to footer, header is also supported
footer:
font_size: $base_font_size_small
font_color: $base_font_color
# NOTE if background_color is set, background and border will span width of page
border_color: dddddd
border_width: 0.25
height: $base_line_height_length * 2.5
line_height: 1
padding: [$base_line_height_length / 2, 1, 0, 1]
vertical_align: top
#image_vertical_align: <alignment> or <number>
# additional attributes for content:
# * {page-count}
# * {page-number}
# * {document-title}
# * {document-subtitle}
# * {chapter-title}
# * {section-title}
# * {section-or-chapter-title}
recto_content:
#right: '{section-or-chapter-title} | {page-number}'
#right: '{document-title} | {page-number}'
right: '{page-number}'
#center: '{page-number}'
verso_content:
#left: '{page-number} | {chapter-title}'
left: '{page-number}'
#center: '{page-number}'
================================================
FILE: chapters/appendix.adoc
================================================
[appendix]
= Copyright and License
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
================================================
FILE: chapters/bibliography.adoc
================================================
[chapter]
= Bibliography
.Books
[bibliography]
- [[[flanagan]]] David Flanagan.
http://oreilly.com/catalog/9780596805531[JavaScript: The Definitive Guide,
Sixth Edition]. O'Reilly. 2011. ISBN 0-596-80552-7
- [[[crockford]]] Douglas Crockford.
http://oreilly.com/catalog/9780596517748[JavaScript: The Good Parts].
O'Reilly. 2008. ISBN 0-596-51774-2.
- [[[stefanov]]] Stoyan Stefanov.
http://shop.oreilly.com/product/9780596806767.do[JavaScript Patterns].
O'Reilly. 2010. ISBN 0-596-80675-2.
- [[[keith]]] Jeremy Keith.
http://www.abookapart.com/products/html5-for-web-designers[HTML5 for Web
Designers]. A Book Apart. 2010. ISBN 978-0-9844425-0-8.
- [[[cederholm]]] Dan Cederholm
http://www.abookapart.com/products/css3-for-web-designers[CSS3 for Web
Designers]. A Book Apart. 2011. ISBN 978-0-9844425-2-2.
- [[[prag]]] Andy Hunt & Dave Thomas. The Pragmatic Programmer: From Journeyman
to Master. Addison-Wesley. 1999.
- [[[seam]]] Dan Allen. Seam in Action. Manning Publications. 2008.
.Websites
[bibliography]
- http://nodejs.org/[Official Node.js Website]
- http://nodejs.org/docs/latest/api/index.html[Latest Node.js documentation]
- http://nodeguide.com/style.html[Node.js Style Guide]
- http://www.nodebeginner.org/[Node.js Tutorial]
================================================
FILE: chapters/chapter_01.adoc
================================================
= The Book of the Thrills
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
[format="csv", options="header"]
|===
include::{datadir}/tracks.csv[]
|===
Lorem (((Something, Whatever, Lorem)))ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa
qui officia ((deserunt)) mollit anim id est laborum.
[plantuml,diagram-classes,png]
.UIResponder Hierarchy Diagram
....
title UIResponder Hierarchy Diagram
legend right
<b>UIViewController</b> and <b>UIView</b>
are subclasses of UIResponder
endlegend
note right of NSObject : In Swift, every class\nextends this one.
class NSObject << (P,LightGray) >>
class UIResponder
class UIView
class UIViewController
NSObject <|-- UIResponder
UIResponder <|-- UIView
UIResponder <|-- UIViewController
....
== Conclusion
Chapter one is over. But before we leave, a checklist of stuff not to forget:
- [*] buy milk
- [x] buy bread
- [ ] call mum
================================================
FILE: chapters/chapter_02.adoc
================================================
[[chapter-2]]
= More About Jane
Chapter two has just begun.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
== Mathematics
This are very important equations; make sure you learn them by heart.
[stem]
++++
k_{n+1} = n^2 + k_n^2 - k_{n-1}
++++
Another one:
[stem]
++++
\cos (2 \theta) = \cos^2 \theta - \sin^2 \theta
++++
Let's continue:
[stem]
++++
f(n) = n^5 + 4n^2 + 2 |_{n=17}
++++
And we can infer that:
[stem]
++++
\frac{n!}{k!(n-k)!} = \binom{n}{k}
++++
But since:
[stem]
++++
x = a_0 + \cfrac{1}{a_1
+ \cfrac{1}{a_2
+ \cfrac{1}{a_3 + \cfrac{1}{a_4} } } }
++++
We can then write that:
[stem]
++++
M = \begin{bmatrix}
\frac{5}{6} & \frac{1}{6} & 0 \\[0.3em]
\frac{5}{6} & 0 & \frac{1}{6} \\[0.3em]
0 & \frac{5}{6} & \frac{1}{6}
\end{bmatrix}
++++
Without forgetting:
[stem]
++++
\left(\!
\begin{array}{c}
n \\
r
\end{array}
\!\right) = \frac{n!}{r!(n-r)!}
++++
((Lorem)) ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
_The Pragmatic Programmer_ <<prag>> should be required reading for all
developers.
.Some image here
image::image.png[]
[[section-1]]
== Some code samples
This is section 1 of chapter 2. We are going to add more JavaScript code, but
before, some Swift.
[source,swift,numberLines,indent=1]
----
include::{codedir}/code.swift[tags=contains]
----
<1> This is very important!
NOTE: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim id est laborum.
More code:
[source,javascript,numberLines,indent=1]
----
function test() {
var boom = "boom";
alert(boom);
}
----
================================================
FILE: chapters/colophon.adoc
================================================
[colophon]
= Colophon
The Asciidoctor Press, Ceres and Denver
(C) 2013 by The Asciidoctor Press
Published in the Milky Way Galaxy
This book is designed by Dagger Flush, Denver, Colorado.
The types are handset Chinchilla and Dust, designed by Leeloo.
Leeloo designed the typefaces to soften the bluntness of documentation.
Created in Asciidoctor and Fedora 19.
The printing and binding is by Ceres Lithographing, Inc., Ceres, Milky Way.
================================================
FILE: chapters/dedication.adoc
================================================
[dedication]
= Dedication
For S.S.T.--
thank you for the plague of archetypes.
================================================
FILE: chapters/epigraph.adoc
================================================
[epigraph]
= Epigraph
Thanks for reading!
================================================
FILE: chapters/glossary.adoc
================================================
[glossary]
= Glossary
[glossary]
mud:: wet, cold dirt
rain::
water falling from the sky
================================================
FILE: chapters/index.adoc
================================================
[index]
= Index
================================================
FILE: chapters/preface.adoc
================================================
[preface]
= Preface
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
================================================
FILE: chapters/qanda.adoc
================================================
[chapter]
= Questions And Answers
[qanda]
What is Asciidoctor?::
An implementation of the AsciiDoc processor in Ruby.
What is the answer to the Ultimate Question?:: 42
video::rPQoq7ThGAU[youtube]
[cols="1,1,2", options="header"]
.Applications
|===
|Name
|Category
|Description
|Firefox
|Browser
|Mozilla Firefox is an open-source web browser.
It's designed for standards compliance,
performance, portability.
|Arquillian
|Testing
|An innovative and highly extensible testing platform.
Empowers developers to easily create real, automated tests.
|===
================================================
FILE: chapters/shortcuts.adoc
================================================
[appendix]
= Shortcuts
|===
|Shortcut |Purpose
|kbd:[F11]
|Toggle fullscreen
|kbd:[Ctrl+T]
|Open a new tab
|kbd:[Cmd+Option+N]
|New incognito window
|kbd:[Cmd + +]
|Increase zoom
|===
================================================
FILE: code/code.swift
================================================
class Boom {
// tag::contains[]
func test() -> String { // <1>
return "Yeah"
}
// end::contains[]
}
================================================
FILE: data/tracks.csv
================================================
Artist,Track,Genre
Baauer,Harlem Shake,Hip Hop
The Lumineers,Ho Hey,Folk Rock
================================================
FILE: master.adoc
================================================
:author: Adrian Kosmaczewski
:revdate: {docdate}
:revnumber: 1.0
:email: email@server.com
:copyright: CC-BY-SA 3.0
:doctype: book
:doctitle: The Quest Of Life: A journey through sea and land
:producer: Adrian Kosmaczewski
:creator: Adrian Kosmaczewski
:description: A guide to survive in this world
:keywords: Asciidoctor, samples, e-book, EPUB3, MOBI
:front-cover-image: images/cover.png
:title-logo-image: image:logo.png[Logo,100,100]
:lang: en
:toc: left
:toclevels: 2
:sectnumlevels: 2
:numbered:
:icons: font
:icon-set: fi
:imagesdir: {docdir}/images
:source-language: swift
:source-highlighter: rouge
:codedir: {docdir}/code
:datadir: {docdir}/data
:experimental:
:stem: latexmath
:hide-uri-scheme:
:chapter-label: Chapter
:appendix-caption: Appendix
:plantuml-config: {docdir}/_conf/umlconfig.txt
ifdef::backend-html5[]
:data-uri:
:mathematical-format: svg
:mathematical-ppi: 300
endif::[]
ifdef::backend-pdf[]
:media: prepress
:pdf-stylesdir: _resources/pdfstyles
:pdf-style: default
:mathematical-format: svg
endif::[]
ifdef::backend-epub3[]
:imagesdir: images
:epub3-stylesdir: _resources/epubstyles
:ebook-validate:
:mathematical-format: svg
:mathematical-inline: true
endif::[]
ifdef::ebook-format-kf8[]
// Settings for Kindle
endif::[]
////
Do not use ":pygments-css: class" in the block above, as this blocks
the generation and/or display of highlighted code in EPUB output.
Also, the ":pygments-style: xcode" is required, since by default the
EPUB generation uses the "bw" style (i.e., black and white.)
////
= {doctitle}
:sectnums!:
include::chapters/colophon.adoc[]
// Abstract and Dedication MUST have a level-0 heading in EPUB and Kindle
// but level-1 in PDF and HTML
ifndef::backend-epub3[:leveloffset: +1]
include::chapters/dedication.adoc[]
ifndef::backend-epub3[:leveloffset: -1]
include::chapters/preface.adoc[]
:sectnums:
ifndef::backend-epub3[]
= The Attack of the Clones
[partintro]
--
This is the introduction to the first part of our mud-encrusted journey.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
[plantuml,diagram-state,png]
.UIViewController States
....
title UIViewController States
legend right
We use states to make the code easier to understand
endlegend
[*] --> Idle
Idle --> [*]
Idle : Right after starting
Idle -> Done
Done : Right before stopping
Done --> [*]
....
--
endif::[]
ifndef::backend-epub3[:leveloffset: +1]
include::chapters/chapter_01.adoc[]
include::chapters/chapter_02.adoc[]
ifndef::backend-epub3[:leveloffset: -1]
include::chapters/epigraph.adoc[]
include::chapters/appendix.adoc[]
include::chapters/shortcuts.adoc[]
include::chapters/glossary.adoc[]
include::chapters/qanda.adoc[]
include::chapters/bibliography.adoc[]
ifdef::backend-pdf[]
include::chapters/index.adoc[]
endif::[]
================================================
FILE: samples/book.1
================================================
'\" t
.\" Title: The Quest Of Life: A journey through sea and land
.\" Author: Adrian Kosmaczewski
.\" Generator: Asciidoctor 1.5.6.1
.\" Date: 2017-08-22
.\" Manual: \ \&
.\" Source: \ \&
.\" Language: English
.\"
.TH "THE QUEST OF LIFE: A JOURNEY THROUGH SEA AND LAND" "1" "2017-08-22" "\ \&" "\ \&"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\\$2 \(laURL: \\$1 \(ra\\$3
..
.if \n[.g] .mso www.tmac
.LINKSTYLE blue R < >
.SH "COLOPHON"
.sp
The Asciidoctor Press, Ceres and Denver
.sp
\(co 2013 by The Asciidoctor Press
.sp
Published in the Milky Way Galaxy
.sp
This book is designed by Dagger Flush, Denver, Colorado.
The types are handset Chinchilla and Dust, designed by Leeloo.
Leeloo designed the typefaces to soften the bluntness of documentation.
Created in Asciidoctor and Fedora 19.
The printing and binding is by Ceres Lithographing, Inc., Ceres, Milky Way.
.SH "DEDICATION"
.sp
For S.S.T.\-\-
.sp
thank you for the plague of archetypes.
.SH "PREFACE"
.sp
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
.SH "THE ATTACK OF THE CLONES"
.sp
This is the introduction to the first part of our mud\-encrusted journey.
.sp
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
.sp
.B UIViewController States
.br
.sp
.if n \{\
.RS 4
.\}
.nf
title UIViewController States
legend right
We use states to make the code easier to understand
endlegend
[*] \-\-> Idle
Idle \-\-> [*]
Idle : Right after starting
Idle \-> Done
Done : Right before stopping
Done \-\-> [*]
.fi
.if n \{\
.RE
.\}
.SH "THE BOOK OF THE THRILLS"
.sp
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
.TS
allbox tab(:);
lt lt lt.
T{
.sp
Artist
T}:T{
.sp
Track
T}:T{
.sp
Genre
T}
T{
.sp
Baauer
T}:T{
.sp
Harlem Shake
T}:T{
.sp
Hip Hop
T}
T{
.sp
The Lumineers
T}:T{
.sp
Ho Hey
T}:T{
.sp
Folk Rock
T}
.TE
.sp
.sp
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum.
.sp
.B UIResponder Hierarchy Diagram
.br
.sp
.if n \{\
.RS 4
.\}
.nf
title UIResponder Hierarchy Diagram
legend right
<b>UIViewController</b> and <b>UIView</b>
are subclasses of UIResponder
endlegend
note right of NSObject : In Swift, every class\(rsnextends this one.
class NSObject << (P,LightGray) >>
class UIResponder
class UIView
class UIViewController
NSObject <|\-\- UIResponder
UIResponder <|\-\- UIView
UIResponder <|\-\- UIViewController
.fi
.if n \{\
.RE
.\}
.SS "Conclusion"
.sp
Chapter one is over. But before we leave, a checklist of stuff not to forget:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
buy milk
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
buy bread
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
call mum
.RE
.SH "MORE ABOUT JANE"
.sp
Chapter two has just begun.
.sp
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
.SS "Mathematics"
.sp
This are very important equations; make sure you learn them by heart.
\[k_{n+1} = n^2 + k_n^2 - k_{n-1}\]
\[\cos (2\theta) = \cos^2 \theta - \sin^2 \theta\]
\[f(n) = n^5 + 4n^2 + 2 |_{n=17}\]
\[\frac{n!}{k!(n-k)!} = \binom{n}{k}\]
\[ x = a_0 + \cfrac{1}{a_1
+ \cfrac{1}{a_2
+ \cfrac{1}{a_3 + \cfrac{1}{a_4} } } }\]
\[M = \begin{bmatrix}
\frac{5}{6} & \frac{1}{6} & 0 \\[0.3em]
\frac{5}{6} & 0 & \frac{1}{6} \\[0.3em]
0 & \frac{5}{6} & \frac{1}{6}
\end{bmatrix}\]
\[\left(\!
\begin{array}{c}
n \\
r
\end{array}
\!\right) = \frac{n!}{r!(n-r)!}\]
.sp
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
.sp
\fIThe Pragmatic Programmer\fP [prag] should be required reading for all
developers.
.SS "Some code samples"
.sp
This is section 1 of chapter 2. We are going to add more JavaScript code, but
before, some Swift.
.sp
.if n \{\
.RS 4
.\}
.nf
func test() \-> String { \fB(1)\fP
return "Yeah"
}
.fi
.if n \{\
.RE
.\}
.TS
tab(:);
r lw(\n(.lu*75u/100u).
\fB(1)\fP\h'-2n':T{
This is very important!
T}
.TE
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
.B Note
.ps -1
.br
.sp
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim id est laborum.
.sp .5v
.RE
.sp
More code:
.sp
.if n \{\
.RS 4
.\}
.nf
function test() {
var boom = "boom";
alert(boom);
}
.fi
.if n \{\
.RE
.\}
.SH "EPIGRAPH"
.sp
Thanks for reading!
.SH "COPYRIGHT AND LICENSE"
.sp
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
.SH "SHORTCUTS"
.TS
allbox tab(:);
lt lt.
T{
.sp
Shortcut
T}:T{
.sp
Purpose
T}
T{
.sp
F11
T}:T{
.sp
Toggle fullscreen
T}
T{
.sp
Ctrl\0+\0T
T}:T{
.sp
Open a new tab
T}
T{
.sp
Cmd\0+\0Option\0+\0N
T}:T{
.sp
New incognito window
T}
T{
.sp
Cmd\0+\0+
T}:T{
.sp
Increase zoom
T}
.TE
.sp
.SH "GLOSSARY"
.sp
mud
.RS 4
wet, cold dirt
.RE
.sp
rain
.RS 4
water falling from the sky
.RE
.SH "QUESTIONS AND ANSWERS"
.sp
1. What is Asciidoctor?
.RS 4
An implementation of the AsciiDoc processor in Ruby.
.RE
.sp
2. What is the answer to the Ultimate Question?
.RS 4
42
.RE
</Users/akosma/Dropbox/Current/eBook-Template/images/rPQoq7ThGAU> (video)
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.B Table 1. Applications
.TS
allbox tab(:);
lt lt lt.
T{
.sp
Name
T}:T{
.sp
Category
T}:T{
.sp
Description
T}
T{
.sp
Firefox
T}:T{
.sp
Browser
T}:T{
.sp
Mozilla Firefox is an open\-source web browser.
It\(cqs designed for standards compliance,
performance, portability.
T}
T{
.sp
Arquillian
T}:T{
.sp
Testing
T}:T{
.sp
An innovative and highly extensible testing platform.
Empowers developers to easily create real, automated tests.
T}
.TE
.sp
.SH "BIBLIOGRAPHY"
.sp
.B Books
.br
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
David Flanagan.
\c
.URL "http://oreilly.com/catalog/9780596805531" "JavaScript: The Definitive Guide,
Sixth Edition" . O\(cqReilly. 2011. ISBN 0\-596\-80552\-7
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Douglas Crockford.
.URL "http://oreilly.com/catalog/9780596517748" "JavaScript: The Good Parts" "."
O\(cqReilly. 2008. ISBN 0\-596\-51774\-2.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Stoyan Stefanov.
.URL "http://shop.oreilly.com/product/9780596806767.do" "JavaScript Patterns" "."
O\(cqReilly. 2010. ISBN 0\-596\-80675\-2.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Jeremy Keith.
\c
.URL "http://www.abookapart.com/products/html5\-for\-web\-designers" "HTML5 for Web
Designers" . A Book Apart. 2010. ISBN 978\-0\-9844425\-0\-8.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Dan Cederholm
\c
.URL "http://www.abookapart.com/products/css3\-for\-web\-designers" "CSS3 for Web
Designers" . A Book Apart. 2011. ISBN 978\-0\-9844425\-2\-2.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Andy Hunt & Dave Thomas. The Pragmatic Programmer: From Journeyman
to Master. Addison\-Wesley. 1999.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Dan Allen. Seam in Action. Manning Publications. 2008.
.RE
.sp
.B Websites
.br
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
.URL "http://nodejs.org/" "Official Node.js Website" ""
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
.URL "http://nodejs.org/docs/latest/api/index.html" "Latest Node.js documentation" ""
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
.URL "http://nodeguide.com/style.html" "Node.js Style Guide" ""
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
.URL "http://www.nodebeginner.org/" "Node.js Tutorial" ""
.RE
.SH "AUTHOR(S)"
.sp
\fBAdrian Kosmaczewski\fP
.RS 4
Author(s).
.RE
================================================
FILE: samples/book.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 1.5.6.1">
<meta name="description" content="A guide to survive in this world">
<meta name="keywords" content="Asciidoctor, samples, e-book, EPUB3, MOBI">
<meta name="author" content="Adrian Kosmaczewski">
<meta name="copyright" content="CC-BY-SA 3.0">
<title>The Quest Of Life: A journey through sea and land</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<style>
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
/* Remove comment around @import statement below when using as a custom stylesheet */
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
audio,canvas,video{display:inline-block}
audio:not([controls]){display:none;height:0}
[hidden],template{display:none}
script{display:none!important}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
a{background:transparent}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.center{margin-left:auto;margin-right:auto}
.spread{width:100%}
p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:none}
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
abbr{text-transform:none}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
blockquote cite:before{content:"\2014 \0020"}
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
table thead,table tfoot{background:#f7f8f7;font-weight:bold}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
.clearfix:after,.float-group:after{clear:both}
*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
*:not(pre)>code.nobreak{word-wrap:normal}
*:not(pre)>code.nowrap{white-space:nowrap}
pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
b.button:before{content:"[";padding:0 3px 0 2px}
b.button:after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
#content{margin-top:1.25em}
#content:before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span:before{content:"\00a0\2013\00a0"}
#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark:before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber:after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}
@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
.sect1{padding-bottom:.625em}
@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}
.sect1+.sect1{border-top:1px solid #efefed}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:initial}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}
@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}
.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.listingblock>.content{position:relative}
.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
.listingblock:hover code[data-lang]:before{display:block}
.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
table.pyhltable td.code{padding-left:.75em;padding-right:0}
pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
pre.pygments .lineno{display:inline-block;margin-right:.25em}
table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
.quoteblock .quoteblock blockquote:before{display:none}
.verseblock{margin:0 1em 1.25em 1em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
table.tableblock{max-width:100%;border-collapse:separate}
table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px 0}
table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0 0}
table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
table.frame-all{border-width:1px}
table.frame-sides{border-width:0 1px}
table.frame-topbot{border-width:1px 0}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
td>div.verse{white-space:pre}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
ul.checklist{margin-left:.625em}
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
ul.inline>li>*{display:block}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist>table tr>td:first-of-type{padding:.4em .75em 0 .75em;line-height:1;vertical-align:top}
.colist>table tr>td:first-of-type img{max-width:initial}
.colist>table tr>td:last-of-type{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;text-indent:-1.05em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background-color:#00fafa}
.black{color:#000}
.black-background{background-color:#000}
.blue{color:#0000bf}
.blue-background{background-color:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background-color:#fa00fa}
.gray{color:#606060}
.gray-background{background-color:#7d7d7d}
.green{color:#006000}
.green-background{background-color:#007d00}
.lime{color:#00bf00}
.lime-background{background-color:#00fa00}
.maroon{color:#600000}
.maroon-background{background-color:#7d0000}
.navy{color:#000060}
.navy-background{background-color:#00007d}
.olive{color:#606000}
.olive-background{background-color:#7d7d00}
.purple{color:#600060}
.purple-background{background-color:#7d007d}
.red{color:#bf0000}
.red-background{background-color:#fa0000}
.silver{color:#909090}
.silver-background{background-color:#bcbcbc}
.teal{color:#006060}
.teal-background{background-color:#007d7d}
.white{color:#bfbfbf}
.white-background{background-color:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background-color:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]:after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@media print{@page{margin:1.25cm .75cm}
*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]:after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
.sect1{padding-bottom:0!important}
.sect1+.sect1{border:0!important}
#header>h1:first-child{margin-top:1.25rem}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span:before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]:before{display:block}
#footer{background:none!important;padding:0 .9375em}
#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css">
<style>
.listingblock .pygments .hll { background-color: #ffffcc }
.listingblock .pygments, .listingblock .pygments code { background: #ffffff; }
.listingblock .pygments .tok-c { color: #177500 } /* Comment */
.listingblock .pygments .tok-err { color: #000000 } /* Error */
.listingblock .pygments .tok-k { color: #A90D91 } /* Keyword */
.listingblock .pygments .tok-l { color: #1C01CE } /* Literal */
.listingblock .pygments .tok-n { color: #000000 } /* Name */
.listingblock .pygments .tok-o { color: #000000 } /* Operator */
.listingblock .pygments .tok-ch { color: #177500 } /* Comment.Hashbang */
.listingblock .pygments .tok-cm { color: #177500 } /* Comment.Multiline */
.listingblock .pygments .tok-cp { color: #633820 } /* Comment.Preproc */
.listingblock .pygments .tok-cpf { color: #177500 } /* Comment.PreprocFile */
.listingblock .pygments .tok-c1 { color: #177500 } /* Comment.Single */
.listingblock .pygments .tok-cs { color: #177500 } /* Comment.Special */
.listingblock .pygments .tok-kc { color: #A90D91 } /* Keyword.Constant */
.listingblock .pygments .tok-kd { color: #A90D91 } /* Keyword.Declaration */
.listingblock .pygments .tok-kn { color: #A90D91 } /* Keyword.Namespace */
.listingblock .pygments .tok-kp { color: #A90D91 } /* Keyword.Pseudo */
.listingblock .pygments .tok-kr { color: #A90D91 } /* Keyword.Reserved */
.listingblock .pygments .tok-kt { color: #A90D91 } /* Keyword.Type */
.listingblock .pygments .tok-ld { color: #1C01CE } /* Literal.Date */
.listingblock .pygments .tok-m { color: #1C01CE } /* Literal.Number */
.listingblock .pygments .tok-s { color: #C41A16 } /* Literal.String */
.listingblock .pygments .tok-na { color: #836C28 } /* Name.Attribute */
.listingblock .pygments .tok-nb { color: #A90D91 } /* Name.Builtin */
.listingblock .pygments .tok-nc { color: #3F6E75 } /* Name.Class */
.listingblock .pygments .tok-no { color: #000000 } /* Name.Constant */
.listingblock .pygments .tok-nd { color: #000000 } /* Name.Decorator */
.listingblock .pygments .tok-ni { color: #000000 } /* Name.Entity */
.listingblock .pygments .tok-ne { color: #000000 } /* Name.Exception */
.listingblock .pygments .tok-nf { color: #000000 } /* Name.Function */
.listingblock .pygments .tok-nl { color: #000000 } /* Name.Label */
.listingblock .pygments .tok-nn { color: #000000 } /* Name.Namespace */
.listingblock .pygments .tok-nx { color: #000000 } /* Name.Other */
.listingblock .pygments .tok-py { color: #000000 } /* Name.Property */
.listingblock .pygments .tok-nt { color: #000000 } /* Name.Tag */
.listingblock .pygments .tok-nv { color: #000000 } /* Name.Variable */
.listingblock .pygments .tok-ow { color: #000000 } /* Operator.Word */
.listingblock .pygments .tok-mb { color: #1C01CE } /* Literal.Number.Bin */
.listingblock .pygments .tok-mf { color: #1C01CE } /* Literal.Number.Float */
.listingblock .pygments .tok-mh { color: #1C01CE } /* Literal.Number.Hex */
.listingblock .pygments .tok-mi { color: #1C01CE } /* Literal.Number.Integer */
.listingblock .pygments .tok-mo { color: #1C01CE } /* Literal.Number.Oct */
.listingblock .pygments .tok-sa { color: #C41A16 } /* Literal.String.Affix */
.listingblock .pygments .tok-sb { color: #C41A16 } /* Literal.String.Backtick */
.listingblock .pygments .tok-sc { color: #2300CE } /* Literal.String.Char */
.listingblock .pygments .tok-dl { color: #C41A16 } /* Literal.String.Delimiter */
.listingblock .pygments .tok-sd { color: #C41A16 } /* Literal.String.Doc */
.listingblock .pygments .tok-s2 { color: #C41A16 } /* Literal.String.Double */
.listingblock .pygments .tok-se { color: #C41A16 } /* Literal.String.Escape */
.listingblock .pygments .tok-sh { color: #C41A16 } /* Literal.String.Heredoc */
.listingblock .pygments .tok-si { color: #C41A16 } /* Literal.String.Interpol */
.listingblock .pygments .tok-sx { color: #C41A16 } /* Literal.String.Other */
.listingblock .pygments .tok-sr { color: #C41A16 } /* Literal.String.Regex */
.listingblock .pygments .tok-s1 { color: #C41A16 } /* Literal.String.Single */
.listingblock .pygments .tok-ss { color: #C41A16 } /* Literal.String.Symbol */
.listingblock .pygments .tok-bp { color: #5B269A } /* Name.Builtin.Pseudo */
.listingblock .pygments .tok-fm { color: #000000 } /* Name.Function.Magic */
.listingblock .pygments .tok-vc { color: #000000 } /* Name.Variable.Class */
.listingblock .pygments .tok-vg { color: #000000 } /* Name.Variable.Global */
.listingblock .pygments .tok-vi { color: #000000 } /* Name.Variable.Instance */
.listingblock .pygments .tok-vm { color: #000000 } /* Name.Variable.Magic */
.listingblock .pygments .tok-il { color: #1C01CE } /* Literal.Number.Integer.Long */
</style>
</head>
<body class="book toc2 toc-left" style="max-width: 55em;">
<div id="header">
<h1>The Quest Of Life: A journey through sea and land</h1>
<div class="details">
<span id="author" class="author">Adrian Kosmaczewski</span><br>
<span id="email" class="email"><a href="mailto:email@server.com">email@server.com</a></span><br>
<span id="revnumber">version 1.0,</span>
<span id="revdate">2017-08-22</span>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#_colophon">Colophon</a></li>
<li><a href="#_dedication">Dedication</a></li>
<li><a href="#_preface">Preface</a></li>
<li><a href="#_the_attack_of_the_clones">The Attack of the Clones</a>
<ul class="sectlevel1">
<li><a href="#_the_book_of_the_thrills">1. The Book of the Thrills</a>
<ul class="sectlevel2">
<li><a href="#_conclusion">1.1. Conclusion</a></li>
</ul>
</li>
<li><a href="#_more_about_jane">More About Jane</a>
<ul class="sectlevel2">
<li><a href="#_mathematics">Mathematics</a></li>
<li><a href="#_some_code_samples">Some code samples</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_epigraph">Epigraph</a></li>
<li><a href="#_copyright_and_license">Appendix A: Copyright and License</a></li>
<li><a href="#_shortcuts">Appendix B: Shortcuts</a></li>
<li><a href="#_glossary">Glossary</a></li>
<li><a href="#_questions_and_answers">Questions And Answers</a></li>
<li><a href="#_bibliography">Bibliography</a></li>
</ul>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_colophon">Colophon</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The Asciidoctor Press, Ceres and Denver</p>
</div>
<div class="paragraph">
<p>© 2013 by The Asciidoctor Press</p>
</div>
<div class="paragraph">
<p>Published in the Milky Way Galaxy</p>
</div>
<div class="paragraph">
<p>This book is designed by Dagger Flush, Denver, Colorado.
The types are handset Chinchilla and Dust, designed by Leeloo.
Leeloo designed the typefaces to soften the bluntness of documentation.
Created in Asciidoctor and Fedora 19.
The printing and binding is by Ceres Lithographing, Inc., Ceres, Milky Way.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_dedication">Dedication</h2>
<div class="sectionbody">
<div class="paragraph">
<p>For S.S.T.--</p>
</div>
<div class="paragraph">
<p>thank you for the plague of archetypes.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_preface">Preface</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
</div>
<h1 id="_the_attack_of_the_clones" class="sect0">The Attack of the Clones</h1>
<div class="openblock partintro">
<div class="content">
<div class="paragraph">
<p>This is the introduction to the first part of our mud-encrusted journey.</p>
</div>
<div class="paragraph">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="data:image/png;base64,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peuIqyZMmJBqZ0DEV6OXR07lOdTxsxoS8TPOOCPzWX4lP1t//fXNmDFjUOh0+2uqmOK2IFYFQw2lIOIff/yxOfjgg83GG29sDj30UHPppZfmFPEff/zR/OMf/zDdu3c3vXr18oa4pb1107FjR034NQc/qz0R95kxY4Zp1KiRWb58ufdZoaODDjrItGvXznTt2tWcfvrp5ueff/b2ff7552a77bYzzz//vBk4cKD3APj973/vbfcpNf9Mib+mKpTy9r777pv64HBQxFetWmUUdy0vLzdXXnmlGT58uGnevHlOEf/DH/5gNtlkE3PttdeaWbNmmU6dOplTTz011eWhcbluF/9/xdJFLRU/SyLiH330kedfd911l/fepUePHmbQoEHmiSeeMLfddptZb731zLhx4yodq7QUhrnssstMmzZtzNFHH51JrxT9s9j9NU10kgOVwpM9KOLz5s3zKsbSpUsz+10BySriagHp/6eeeipz7MyZM03btm1TPW5ZgmC7qOX4We2KuBoRipFPnz7d3H777d59+PTTTyv5l+LnamH7In7ddddl9k+aNEljqb3/S9U/i9xfU0VPFdzs2bNLSsT1xtsXbJ9LLrkkq4irpd60aVOvMp555pme/e1vf/P2L1u2LLXloV/KOcWz/FzJ+FkSEdcoKeV3wYIFnj8ppBfkjTfe8Pa//vrrGREPvp+55pprMr5aqv5Z5P6aKlRgXgGWkoiPHDnS7LjjjpX233jjjVlF/NxzzzXrrLOOF3MM2yeffEKlwM/yFvF7773XG7Xy7bffmtGjR5tdd9210v7XXnttDRF/9913s4p4qfonIk7lihTx888/3zRr1izz8kgoxphNxG+66Sb9aqzSuOUPP/zQ696pW0ylwM/yEXGNFdeLya233tr7fPHFF5sWLVpUCn0odFJWVuaNM48T8VL1T0ScyhUp4u+9954Xc/zXv/7lfX788ce9l0nZRPzrr7827du3N3//+9/NN998Y95//30zePBgs9tuu1Ep8LNYET/mmGPMs88+65la4Bph0rJlS6+1LeRPTZo08YRZKA6uXqLmixFxIl6q/omIU7kiRVxomJeEfN111/VaQool5hqdcv/995sOHTp4lU8vpFTJgi9FqRT4WS4RdwLTrXbs2NEcdthh5rHHHqt03PXXX2/WXntts+GGG3qjpORffigkTsRL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" alt="UIViewController States" width="369" height="288">
</div>
<div class="title">UIViewController States</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_the_book_of_the_thrills">1. The Book of the Thrills</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Artist</th>
<th class="tableblock halign-left valign-top">Track</th>
<th class="tableblock halign-left valign-top">Genre</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Baauer</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Harlem Shake</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hip Hop</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">The Lumineers</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Ho Hey</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Folk Rock</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="data:image/png;base64,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" alt="UIResponder Hierarchy Diagram" width="345" height="312">
</div>
<div class="title">UIResponder Hierarchy Diagram</div>
</div>
<div class="sect2">
<h3 id="_conclusion">1.1. Conclusion</h3>
<div class="paragraph">
<p>Chapter one is over. But before we leave, a checklist of stuff not to forget:</p>
</div>
<div class="ulist checklist">
<ul class="checklist">
<li>
<p><i class="fa fa-check-square-o"></i> buy milk</p>
</li>
<li>
<p><i class="fa fa-check-square-o"></i> buy bread</p>
</li>
<li>
<p><i class="fa fa-square-o"></i> call mum</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_more_about_jane">More About Jane</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Chapter two has just begun.</p>
</div>
<div class="paragraph">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div class="sect2">
<h3 id="_mathematics">Mathematics</h3>
<div class="paragraph">
<p>This are very important equations; make sure you learn them by heart.</p>
</div>
<div class="imageblock" style="text-align: center">
<div class="content">
<img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTEzLjY3NTE4OHB0IiBoZWlnaHQ9IjEzLjQxMTEzM3B0IiB2aWV3Qm94PSIwIDAgMTEzLjY3NTE4OCAxMy40MTExMzMiIHZlcnNpb249IjEuMSI+CjxkZWZzPgo8Zz4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoMC0wIj4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iIi8+Cjwvc3ltYm9sPgo8c3ltYm9sIG92ZXJmbG93PSJ2aXNpYmxlIiBpZD0iZ2x5cGgwLTEiPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOm5vbmU7IiBkPSJNIDAuMTY0MDYyIDAgTCAyLjAzOTA2MiAtNy4xMDkzNzUgQyAyLjA0Njg3NSAtNy4xNDQ1MzEgMi4wNTQ2ODggLTcuMTc1NzgxIDIuMDU4NTk0IC03LjIxMDkzOCBDIDIuMDY2NDA2IC03LjI0MjE4OCAyLjA3MDMxMiAtNy4yNzczNDQgMi4wNzAzMTIgLTcuMzEyNSBDIDIuMDcwMzEyIC03LjQ4NDM3NSAyLjAxOTUzMSAtNy41ODU5MzggMS45MTc5NjkgLTcuNjI1IEMgMS44MjAzMTIgLTcuNjYwMTU2IDEuNjA1NDY5IC03LjY3MTg3NSAxLjI3NzM0NCAtNy42NjQwNjIgTCAxLjI3NzM0NCAtNy44NTkzNzUgQyAxLjUgLTcuODg2NzE5IDEuNzE0ODQ0IC03LjkxNDA2MiAxLjkyMTg3NSAtNy45NDE0MDYgQyAyLjEyODkwNiAtNy45NzI2NTYgMi4yODkwNjIgLTcuOTk2MDk0IDIuNDAyMzQ0IC04LjAxNTYyNSBDIDIuNDM3NSAtOC4wMjM0MzggMi41NzAzMTIgLTguMDU0Njg4IDIuODA0Njg4IC04LjEwMTU2MiBDIDMuMDM5MDYyIC04LjE1MjM0NCAzLjE3MTg3NSAtOC4xNzk2ODggMy4xOTUzMTIgLTguMTc5Njg4IEwgMy4yMDMxMjUgLTguMTIxMDk0IEwgMS43MzQzNzUgLTIuNjI1IEMgMi42MTcxODggLTMuMzIwMzEyIDMuMjE0ODQ0IC0zLjgwNDY4OCAzLjUyNzM0NCAtNC4wODU5MzggQyAzLjgzOTg0NCAtNC4zNjMyODEgMy45OTYwOTQgLTQuNTcwMzEyIDMuOTk2MDk0IC00LjcxMDkzOCBDIDMuOTk2MDk0IC00LjgwNDY4OCAzLjk1MzEyNSAtNC44NjMyODEgMy44NzEwOTQgLTQuODg2NzE5IEMgMy43ODUxNTYgLTQuOTEwMTU2IDMuNjA1NDY5IC00LjkyOTY4OCAzLjMyODEyNSAtNC45Mzc1IEwgMy4zMjgxMjUgLTUuMTQwNjI1IEwgNS41MjM0MzggLTUuMTQwNjI1IEwgNS41MjM0MzggLTQuOTM3NSBDIDUuMjM0Mzc1IC00LjkyMTg3NSA0Ljk2ODc1IC00LjgyODEyNSA0LjcyMjY1NiAtNC42NTYyNSBDIDQuNDc2NTYyIC00LjQ4NDM3NSAzLjg0Mzc1IC0zLjk2NDg0NCAyLjgyODEyNSAtMy4wOTM3NSBDIDMuMzU5Mzc1IC0xLjg1NTQ2OSAzLjY5NTMxMiAtMS4xMDkzNzUgMy44MjgxMjUgLTAuODU5Mzc1IEMgMy45NjA5MzggLTAuNjA1NDY5IDQuMDkzNzUgLTAuNDgwNDY5IDQuMjMwNDY5IC0wLjQ4MDQ2OSBDIDQuMzQ3NjU2IC0wLjQ4MDQ2OSA0LjQ2ODc1IC0wLjU2MjUgNC42MDE1NjIgLTAuNzI2NTYyIEMgNC42ODc1IC0wLjgzMjAzMSA0LjgwODU5NCAtMS4wMjM0MzggNC45Njg3NSAtMS4zMDA3ODEgTCA1LjE0ODQzOCAtMS4xNzk2ODggQyA0Ljg5ODQzOCAtMC43MjI2NTYgNC42Nzk2ODggLTAuMzg2NzE5IDQuNDg0Mzc1IC0wLjE3NTc4MSBDIDQuMjkyOTY5IDAuMDM1MTU2MiA0LjA3MDMxMiAwLjE0MDYyNSAzLjgxMjUgMC4xNDA2MjUgQyAzLjY0ODQzOCAwLjE0MDYyNSAzLjUgMC4wNzgxMjUgMy4zNjcxODggLTAuMDUwNzgxMiBDIDMuMjM0Mzc1IC0wLjE3NTc4MSAzLjA1ODU5NCAtMC40NzI2NTYgMi44MzU5MzggLTAuOTM3NSBDIDIuNzQ2MDk0IC0xLjExNzE4OCAyLjY0MDYyNSAtMS4zNDM3NSAyLjUyMzQzOCAtMS42MTcxODggQyAyLjQwMjM0NCAtMS44OTA2MjUgMi4yODEyNSAtMi4xOTUzMTIgMi4xNDg0MzggLTIuNTM5MDYyIEwgMS42MDU0NjkgLTIuMTQwNjI1IEwgMS4wNjY0MDYgMCBaIE0gMC4xNjQwNjIgMCAiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDAtMiI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9Ik0gMC4yMTg3NSAwIEwgMS4yMzA0NjkgLTMuNjIxMDk0IEMgMS4zMTY0MDYgLTMuOTI1NzgxIDEuMzY3MTg4IC00LjEwOTM3NSAxLjM3ODkwNiAtNC4xNzU3ODEgQyAxLjM5NDUzMSAtNC4yMzgyODEgMS4zOTg0MzggLTQuMzA4NTk0IDEuMzk4NDM4IC00LjM4MjgxMiBDIDEuMzk4NDM4IC00LjQ5NjA5NCAxLjM2NzE4OCAtNC41ODU5MzggMS4zMDQ2ODggLTQuNjQ4NDM4IEMgMS4yMzgyODEgLTQuNzE0ODQ0IDEuMTEzMjgxIC00Ljc0NjA5NCAwLjkyNTc4MSAtNC43NDYwOTQgQyAwLjg3ODkwNiAtNC43NDYwOTQgMC44MzIwMzEgLTQuNzQyMTg4IDAuNzg5MDYyIC00LjczODI4MSBDIDAuNzQyMTg4IC00LjczMDQ2OSAwLjY5NTMxMiAtNC43MjY1NjIgMC42NDA2MjUgLTQuNzE4NzUgTCAwLjY0MDYyNSAtNC45MTQwNjIgQyAwLjg5NDUzMSAtNC45NTMxMjUgMS4wNzQyMTkgLTQuOTg0Mzc1IDEuMTc5Njg4IC01LjAwMzkwNiBDIDEuMjg5MDYyIC01LjAyMzQzOCAxLjQwNjI1IC01LjA0Njg3NSAxLjUzMTI1IC01LjA3NDIxOSBMIDIuNTc4MTI1IC01LjMwNDY4OCBDIDIuNjAxNTYyIC01LjI4OTA2MiAyLjYxNzE4OCAtNS4yNjk1MzEgMi42MjUgLTUuMjUgTCAxLjg0Mzc1IC0yLjczMDQ2OSBDIDIuMzIwMzEyIC0zLjQ2MDkzOCAyLjcxODc1IC00LjAwMzkwNiAzLjAzOTA2MiAtNC4zNTkzNzUgQyAzLjYwMTU2MiAtNC45ODgyODEgNC4xMDkzNzUgLTUuMzA0Njg4IDQuNTU0Njg4IC01LjMwNDY4OCBDIDQuNzI2NTYyIC01LjMwNDY4OCA0Ljg3NSAtNS4yNjk1MzEgNSAtNS4yMDMxMjUgQyA1LjIzODI4MSAtNS4wNzQyMTkgNS4zNTU0NjkgLTQuODQzNzUgNS4zNTU0NjkgLTQuNTA3ODEyIEMgNS4zNTU0NjkgLTQuNDE0MDYyIDUuMzQzNzUgLTQuMzEyNSA1LjMyODEyNSAtNC4yMTA5MzggQyA1LjMwODU5NCAtNC4xMDkzNzUgNS4yODEyNSAtNCA1LjI1IC0zLjg4MjgxMiBMIDQuNDg0Mzc1IC0xLjA3ODEyNSBDIDQuNDY4NzUgLTEuMDE5NTMxIDQuNDQ5MjE5IC0wLjk0OTIxOSA0LjQyOTY4OCAtMC44NjMyODEgQyA0LjQxMDE1NiAtMC43ODEyNSA0LjM5ODQzOCAtMC43MTg3NSA0LjM5ODQzOCAtMC42ODc1IEMgNC4zOTg0MzggLTAuNjI4OTA2IDQuNDE0MDYyIC0wLjU3NDIxOSA0LjQ0MTQwNiAtMC41MjczNDQgQyA0LjQ2ODc1IC0wLjQ4MDQ2OSA0LjUxNTYyNSAtMC40NTcwMzEgNC41NzgxMjUgLTAuNDU3MDMxIEMgNC42Nzk2ODggLTAuNDU3MDMxIDQuNzk2ODc1IC0wLjUxNTYyNSA0LjkyOTY4OCAtMC42MzY3MTkgQyA1LjA2MjUgLTAuNzUzOTA2IDUuMjc3MzQ0IC0xLjAwNzgxMiA1LjU3ODEyNSAtMS4zOTg0MzggTCA1Ljc1IC0xLjI1IEMgNS40Mjk2ODggLTAuODE2NDA2IDUuMTcxODc1IC0wLjUwNzgxMiA0Ljk4NDM3NSAtMC4zMzU5MzggQyA0LjY2NDA2MiAtMC4wMjczNDM4IDQuMzU5Mzc1IDAuMTI4OTA2IDQuMDY2NDA2IDAuMTI4OTA2IEMgMy45MzM1OTQgMC4xMjg5MDYgMy44MDQ2ODggMC4wODU5Mzc1IDMuNjgzNTk0IC0wLjAwMzkwNjI1IEMgMy41NTg1OTQgLTAuMDg5ODQzOCAzLjUgLTAuMjUgMy41IC0wLjQ4MDQ2OSBDIDMuNSAtMC41NDY4NzUgMy41MDM5MDYgLTAuNjE3MTg4IDMuNTExNzE5IC0wLjY5MTQwNiBDIDMuNTIzNDM4IC0wLjc2NTYyNSAzLjUzNTE1NiAtMC44MjgxMjUgMy41NTA3ODEgLTAuODgyODEyIEwgNC4yODkwNjIgLTMuNzM0Mzc1IEMgNC4zMjgxMjUgLTMuODkwNjI1IDQuMzU1NDY5IC00LjAxNTYyNSA0LjM2NzE4OCAtNC4xMTcxODggQyA0LjM4MjgxMiAtNC4yMTQ4NDQgNC4zOTA2MjUgLTQuMjg5MDYyIDQuMzkwNjI1IC00LjMyODEyNSBDIDQuMzkwNjI1IC00LjQyMTg3NSA0LjM2NzE4OCAtNC41MDM5MDYgNC4zMjAzMTIgLTQuNTc0MjE5IEMgNC4yNzczNDQgLTQuNjQwNjI1IDQuMTk1MzEyIC00LjY3NTc4MSA0LjA4NTkzOCAtNC42NzU3ODEgQyAzLjc5Mjk2OSAtNC42NzU3ODEgMy40MjE4NzUgLTQuNDEwMTU2IDIuOTc2NTYyIC0zLjg3ODkwNiBDIDIuNzE0ODQ0IC0zLjU2MjUgMi40NDkyMTkgLTMuMTg3NSAyLjE3OTY4OCAtMi43NSBDIDEuOTcyNjU2IC0yLjQxMDE1NiAxLjgwODU5NCAtMi4wNzgxMjUgMS42OTE0MDYgLTEuNzUzOTA2IEMgMS41NzAzMTIgLTEuNDMzNTk0IDEuMzgyODEyIC0wLjg0NzY1NiAxLjEyNSAwIFogTSAwLjIxODc1IDAgIi8+Cjwvc3ltYm9sPgo8c3ltYm9sIG92ZXJmbG93PSJ2aXNpYmxlIiBpZD0iZ2x5cGgxLTAiPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOm5vbmU7IiBkPSIiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDEtMSI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9Ik0gMC4xNTIzNDQgMCBMIDAuODc1IC0yLjU3MDMxMiBDIDAuOTMzNTk0IC0yLjc4NTE1NiAwLjk2ODc1IC0yLjkxNzk2OSAwLjk4MDQ2OSAtMi45NjQ4NDQgQyAwLjk4ODI4MSAtMy4wMTE3MTkgMC45OTYwOTQgLTMuMDU4NTk0IDAuOTk2MDk0IC0zLjExMzI4MSBDIDAuOTk2MDk0IC0zLjE5MTQwNiAwLjk3MjY1NiAtMy4yNTM5MDYgMC45MjU3ODEgLTMuMzAwNzgxIEMgMC44Nzg5MDYgLTMuMzQ3NjU2IDAuNzg5MDYyIC0zLjM3MTA5NCAwLjY1NjI1IC0zLjM3MTA5NCBDIDAuNjI1IC0zLjM3MTA5NCAwLjU4OTg0NCAtMy4zNjcxODggMC41NTg1OTQgLTMuMzYzMjgxIEMgMC41MjczNDQgLTMuMzU5Mzc1IDAuNDkyMTg4IC0zLjM1NTQ2OSAwLjQ1MzEyNSAtMy4zNDc2NTYgTCAwLjQ1MzEyNSAtMy40ODgyODEgQyAwLjYzMjgxMiAtMy41MTU2MjUgMC43NjE3MTkgLTMuNTM5MDYyIDAuODM5ODQ0IC0zLjU1MDc4MSBDIDAuOTE0MDYyIC0zLjU2NjQwNiAwLjk5NjA5NCAtMy41ODIwMzEgMS4wODU5MzggLTMuNjAxNTYyIEwgMS44MzIwMzEgLTMuNzY1NjI1IEMgMS44NDc2NTYgLTMuNzUzOTA2IDEuODU5Mzc1IC0zLjc0MjE4OCAxLjg2MzI4MSAtMy43MjY1NjIgTCAxLjMwODU5NCAtMS45Mzc1IEMgMS42NDg0MzggLTIuNDU3MDMxIDEuOTI5Njg4IC0yLjg0Mzc1IDIuMTYwMTU2IC0zLjA5Mzc1IEMgMi41NTg1OTQgLTMuNTQyOTY5IDIuOTE3OTY5IC0zLjc2NTYyNSAzLjIzMDQ2OSAtMy43NjU2MjUgQyAzLjM1NTQ2OSAtMy43NjU2MjUgMy40NjA5MzggLTMuNzQyMTg4IDMuNTQ2ODc1IC0zLjY5NTMxMiBDIDMuNzE4NzUgLTMuNjAxNTYyIDMuODAwNzgxIC0zLjQzNzUgMy44MDA3ODEgLTMuMTk5MjE5IEMgMy44MDA3ODEgLTMuMTMyODEyIDMuNzk2ODc1IC0zLjA2MjUgMy43ODEyNSAtMi45OTIxODggQyAzLjc2NTYyNSAtMi45MTc5NjkgMy43NSAtMi44Mzk4NDQgMy43MjY1NjIgLTIuNzU3ODEyIEwgMy4xODM1OTQgLTAuNzY1NjI1IEMgMy4xNzE4NzUgLTAuNzIyNjU2IDMuMTYwMTU2IC0wLjY3MTg3NSAzLjE0NDUzMSAtMC42MTMyODEgQyAzLjEzMjgxMiAtMC41NTQ2ODggMy4xMjUgLTAuNTExNzE5IDMuMTI1IC0wLjQ4ODI4MSBDIDMuMTI1IC0wLjQ0NTMxMiAzLjEzMjgxMiAtMC40MDYyNSAzLjE1MjM0NCAtMC4zNzUgQyAzLjE3MTg3NSAtMC4zMzk4NDQgMy4yMDMxMjUgLTAuMzI0MjE5IDMuMjUgLTAuMzI0MjE5IEMgMy4zMjAzMTIgLTAuMzI0MjE5IDMuNDAyMzQ0IC0wLjM2NzE4OCAzLjUgLTAuNDUzMTI1IEMgMy41OTM3NSAtMC41MzUxNTYgMy43NDYwOTQgLTAuNzE4NzUgMy45NjA5MzggLTAuOTk2MDk0IEwgNC4wODIwMzEgLTAuODg2NzE5IEMgMy44NTU0NjkgLTAuNTc4MTI1IDMuNjcxODc1IC0wLjM2MzI4MSAzLjUzOTA2MiAtMC4yMzgyODEgQyAzLjMxMjUgLTAuMDE5NTMxMiAzLjA5Mzc1IDAuMDg5ODQzOCAyLjg4NjcxOSAwLjA4OTg0MzggQyAyLjc5Mjk2OSAwLjA4OTg0MzggMi43MDMxMjUgMC4wNTg1OTM4IDIuNjEzMjgxIC0wLjAwMzkwNjI1IEMgMi41MjczNDQgLTAuMDY2NDA2MiAyLjQ4NDM3NSAtMC4xNzU3ODEgMi40ODQzNzUgLTAuMzM5ODQ0IEMgMi40ODQzNzUgLTAuMzg2NzE5IDIuNDg4MjgxIC0wLjQzNzUgMi40OTIxODggLTAuNDkyMTg4IEMgMi41IC0wLjU0Mjk2OSAyLjUxMTcxOSAtMC41ODk4NDQgMi41MTk1MzEgLTAuNjI4OTA2IEwgMy4wNDY4NzUgLTIuNjQ4NDM4IEMgMy4wNzQyMTkgLTIuNzYxNzE5IDMuMDg5ODQ0IC0yLjg1MTU2MiAzLjEwMTU2MiAtMi45MjE4NzUgQyAzLjEwOTM3NSAtMi45OTIxODggMy4xMTcxODggLTMuMDQyOTY5IDMuMTE3MTg4IC0zLjA3NDIxOSBDIDMuMTE3MTg4IC0zLjE0MDYyNSAzLjEwMTU2MiAtMy4xOTkyMTkgMy4wNjY0MDYgLTMuMjQ2MDk0IEMgMy4wMzUxNTYgLTMuMjk2ODc1IDIuOTgwNDY5IC0zLjMyMDMxMiAyLjg5ODQzOCAtMy4zMjAzMTIgQyAyLjY5MTQwNiAtMy4zMjAzMTIgMi40Mjk2ODggLTMuMTMyODEyIDIuMTEzMjgxIC0yLjc1MzkwNiBDIDEuOTI1NzgxIC0yLjUyNzM0NCAxLjczODI4MSAtMi4yNjE3MTkgMS41NDY4NzUgLTEuOTQ5MjE5IEMgMS4zOTg0MzggLTEuNzEwOTM4IDEuMjg1MTU2IC0xLjQ3NjU2MiAxLjE5OTIxOSAtMS4yNDYwOTQgQyAxLjExNzE4OCAtMS4wMTU2MjUgMC45ODA0NjkgLTAuNjAxNTYyIDAuNzk2ODc1IDAgWiBNIDAuMTUyMzQ0IDAgIi8+Cjwvc3ltYm9sPgo8c3ltYm9sIG92ZXJmbG93PSJ2aXNpYmxlIiBpZD0iZ2x5cGgyLTAiPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOm5vbmU7IiBkPSIiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDItMSI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9Ik0gMi4xMTcxODggLTQuMzA0Njg4IEwgMi42OTkyMTkgLTQuMzA0Njg4IEwgMi42OTkyMTkgLTIuNDQxNDA2IEwgNC41NTQ2ODggLTIuNDQxNDA2IEwgNC41NTQ2ODggLTEuODU5Mzc1IEwgMi42OTkyMTkgLTEuODU5Mzc1IEwgMi42OTkyMTkgMCBMIDIuMTE3MTg4IDAgTCAyLjExNzE4OCAtMS44NTkzNzUgTCAwLjI1MzkwNiAtMS44NTkzNzUgTCAwLjI1MzkwNiAtMi40NDE0MDYgTCAyLjExNzE4OCAtMi40NDE0MDYgWiBNIDIuMTE3MTg4IC00LjMwNDY4OCAiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDItMiI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9Ik0gMC4yNTM5MDYgLTIuNDQxNDA2IEwgNC41NTQ2ODggLTIuNDQxNDA2IEwgNC41NTQ2ODggLTEuODU5Mzc1IEwgMC4yNTM5MDYgLTEuODU5Mzc1IFogTSAwLjI1MzkwNiAtMi40NDE0MDYgIi8+Cjwvc3ltYm9sPgo8c3ltYm9sIG92ZXJmbG93PSJ2aXNpYmxlIiBpZD0iZ2x5cGgzLTAiPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOm5vbmU7IiBkPSIiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDMtMSI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9Ik0gMi41MzkwNjIgLTUuNjgzNTk0IEMgMi41MzkwNjIgLTUuNjc1NzgxIDIuNTQyOTY5IC01LjY2MDE1NiAyLjU0Mjk2OSAtNS42MzY3MTkgTCAyLjU0Mjk2OSAtMC42Mjg5MDYgQyAyLjU0Mjk2OSAtMC40MTQwNjIgMi41OTc2NTYgLTAuMjc3MzQ0IDIuNzEwOTM4IC0wLjIxODc1IEMgMi44MjQyMTkgLTAuMTYwMTU2IDMuMDM5MDYyIC0wLjEyODkwNiAzLjM0NzY1NiAtMC4xMTcxODggTCAzLjM0NzY1NiAwIEwgMS4wMDM5MDYgMCBMIDEuMDAzOTA2IC0wLjEyNSBDIDEuMzM5ODQ0IC0wLjE0MDYyNSAxLjU1ODU5NCAtMC4xODc1IDEuNjYwMTU2IC0wLjI2MTcxOSBDIDEuNzYxNzE5IC0wLjMzNTkzOCAxLjgxMjUgLTAuNSAxLjgxMjUgLTAuNzUgTCAxLjgxMjUgLTQuNjAxNTYyIEMgMS44MTI1IC00LjczNDM3NSAxLjc5Njg3NSAtNC44MzU5MzggMS43NjU2MjUgLTQuOTA2MjUgQyAxLjczMDQ2OSAtNC45NzI2NTYgMS42NjAxNTYgLTUuMDA3ODEyIDEuNTQ2ODc1IC01LjAwNzgxMiBDIDEuNDc2NTYyIC01LjAwNzgxMiAxLjM4MjgxMiAtNC45ODgyODEgMS4yNjU2MjUgLTQuOTQ5MjE5IEMgMS4xNTIzNDQgLTQuOTEwMTU2IDEuMDQyOTY5IC00Ljg2NzE4OCAwLjk0NTMxMiAtNC44MjAzMTIgTCAwLjk0NTMxMiAtNC45Mzc1IEwgMi40NzI2NTYgLTUuNzE0ODQ0IEwgMi41MTk1MzEgLTUuNzE0ODQ0IEMgMi41MzEyNSAtNS43MDMxMjUgMi41MzkwNjIgLTUuNjkxNDA2IDIuNTM5MDYyIC01LjY4MzU5NCBaIE0gMi41MzkwNjIgLTUuNjgzNTk0ICIvPgo8L3N5bWJvbD4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoMy0yIj4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iTSAwLjI1MzkwNiAtMC4wOTM3NSBDIDEuMjY5NTMxIC0xLjE0ODQzOCAxLjk1NzAzMSAtMS45MjE4NzUgMi4zMjAzMTIgLTIuNDE3OTY5IEMgMi42ODM1OTQgLTIuOTEwMTU2IDIuODY3MTg4IC0zLjM5MDYyNSAyLjg2NzE4OCAtMy44NTkzNzUgQyAyLjg2NzE4OCAtNC4yNjk1MzEgMi43NTM5MDYgLTQuNTgyMDMxIDIuNTM1MTU2IC00Ljc5Njg3NSBDIDIuMzEyNSAtNS4wMTE3MTkgMi4wNDY4NzUgLTUuMTIxMDk0IDEuNzM4MjgxIC01LjEyMTA5NCBDIDEuMzU5Mzc1IC01LjEyMTA5NCAxLjA1MDc4MSAtNC45ODA0NjkgMC44MTY0MDYgLTQuNzAzMTI1IEMgMC42ODM1OTQgLTQuNTUwNzgxIDAuNTU4NTk0IC00LjMxNjQwNiAwLjQ0MTQwNiAtNCBMIDAuMjYxNzE5IC00LjAzOTA2MiBDIDAuNDAyMzQ0IC00LjY3NTc4MSAwLjYzNjcxOSAtNS4xMjEwOTQgMC45Njg3NSAtNS4zNjcxODggQyAxLjMwMDc4MSAtNS42MTcxODggMS42NTIzNDQgLTUuNzQyMTg4IDIuMDM1MTU2IC01Ljc0MjE4OCBDIDIuNTAzOTA2IC01Ljc0MjE4OCAyLjg4MjgxMiAtNS41OTM3NSAzLjE3MTg3NSAtNS4yOTY4NzUgQyAzLjQ2MDkzOCAtNS4wMDM5MDYgMy42MDU0NjkgLTQuNjQwNjI1IDMuNjA1NDY5IC00LjIxNDg0NCBDIDMuNjA1NDY5IC0zLjc1NzgxMiAzLjQ0OTIxOSAtMy4zMjAzMTIgMy4xMzY3MTkgLTIuODk4NDM4IEMgMi44MjQyMTkgLTIuNDc2NTYyIDIuMTQwNjI1IC0xLjcyNjU2MiAxLjA5Mzc1IC0wLjY0ODQzOCBMIDMuMDAzOTA2IC0wLjY0ODQzOCBDIDMuMjY5NTMxIC0wLjY0ODQzOCAzLjQ1NzAzMSAtMC42Nzk2ODggMy41NjY0MDYgLTAuNzQ2MDk0IEMgMy42NzE4NzUgLTAuODA4NTk0IDMuNzk2ODc1IC0wLjk2NDg0NCAzLjkyOTY4OCAtMS4yMTA5MzggTCA0LjAzOTA2MiAtMS4xNjAxNTYgTCAzLjU3ODEyNSAwIEwgMC4yNTM5MDYgMCBaIE0gMC4yNTM5MDYgLTAuMDkzNzUgIi8+Cjwvc3ltYm9sPgo8c3ltYm9sIG92ZXJmbG93PSJ2aXNpYmxlIiBpZD0iZ2x5cGg0LTAiPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOm5vbmU7IiBkPSIiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDQtMSI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9Ik0gNi40MTQwNjIgLTIuMjM0Mzc1IEwgNi40MTQwNjIgLTEuNDE0MDYyIEwgMC4zNTkzNzUgLTEuNDE0MDYyIEwgMC4zNTkzNzUgLTIuMjM0Mzc1IFogTSA2LjQxNDA2MiAtNC42NTIzNDQgTCA2LjQxNDA2MiAtMy44MzIwMzEgTCAwLjM1OTM3NSAtMy44MzIwMzEgTCAwLjM1OTM3NSAtNC42NTIzNDQgWiBNIDYuNDE0MDYyIC00LjY1MjM0NCAiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDQtMiI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9Ik0gMi45ODQzNzUgLTYuMDYyNSBMIDMuODA0Njg4IC02LjA2MjUgTCAzLjgwNDY4OCAtMy40Mzc1IEwgNi40MTQwNjIgLTMuNDM3NSBMIDYuNDE0MDYyIC0yLjYxNzE4OCBMIDMuODA0Njg4IC0yLjYxNzE4OCBMIDMuODA0Njg4IDAgTCAyLjk4NDM3NSAwIEwgMi45ODQzNzUgLTIuNjE3MTg4IEwgMC4zNTkzNzUgLTIuNjE3MTg4IEwgMC4zNTkzNzUgLTMuNDM3NSBMIDIuOTg0Mzc1IC0zLjQzNzUgWiBNIDIuOTg0Mzc1IC02LjA2MjUgIi8+Cjwvc3ltYm9sPgo8c3ltYm9sIG92ZXJmbG93PSJ2aXNpYmxlIiBpZD0iZ2x5cGg0LTMiPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOm5vbmU7IiBkPSJNIDAuMzU5Mzc1IC0zLjQzNzUgTCA2LjQxNDA2MiAtMy40Mzc1IEwgNi40MTQwNjIgLTIuNjE3MTg4IEwgMC4zNTkzNzUgLTIuNjE3MTg4IFogTSAwLjM1OTM3NSAtMy40Mzc1ICIvPgo8L3N5bWJvbD4KPC9nPgo8L2RlZnM+CjxnIGlkPSJzdXJmYWNlMSI+CjxnIHN0eWxlPSJmaWxsOnJnYigwJSwwJSwwJSk7ZmlsbC1vcGFjaXR5OjE7Ij4KICA8dXNlIHhsaW5rOmhyZWY9IiNnbHlwaDAtMSIgeD0iMC41MDM5MDYiIHk9IjEwLjYzMjgxMiIvPgo8L2c+CjxnIHN0eWxlPSJmaWxsOnJnYigwJSwwJSwwJSk7ZmlsbC1vcGFjaXR5OjE7Ij4KICA8dXNlIHhsaW5rOmhyZWY9IiNnbHlwaDEtMSIgeD0iNy4wMTU2MjUiIHk9IjEzLjMxOTMzNiIvPgo8L2c+CjxnIHN0eWxlPSJmaWxsOnJnYigwJSwwJSwwJSk7ZmlsbC1vcGFjaXR5OjE7Ij4KICA8dXNlIHhsaW5rOmhyZWY9IiNnbHlwaDItMSIgeD0iMTQuNDUzMTI1IiB5PSIxMy4zMTkzMzYiLz4KPC9nPgo8ZyBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyI+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGgzLTEiIHg9IjIxLjY3OTY4OCIgeT0iMTMuMzE5MzM2Ii8+CjwvZz4KPGcgc3R5bGU9ImZpbGw6cmdiKDAlLDAlLDAlKTtmaWxsLW9wYWNpdHk6MTsiPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoNC0xIiB4PSIyOS4xNDA2MjUiIHk9IjEwLjYzMjgxMiIvPgo8L2c+CjxnIHN0eWxlPSJmaWxsOnJnYigwJSwwJSwwJSk7ZmlsbC1vcGFjaXR5OjE7Ij4KICA8dXNlIHhsaW5rOmhyZWY9IiNnbHlwaDAtMiIgeD0iNDAuMDA3ODEyIiB5PSIxMC42MzI4MTIiLz4KPC9nPgo8ZyBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyI+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGgzLTIiIHg9IjQ2LjY0NDUzMSIgeT0iNS43NDEyMTEiLz4KPC9nPgo8ZyBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyI+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGg0LTIiIHg9IjU0LjEyODkwNiIgeT0iMTAuNjMyODEyIi8+CjwvZz4KPGcgc3R5bGU9ImZpbGw6cmdiKDAlLDAlLDAlKTtmaWxsLW9wYWNpdHk6MTsiPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoMC0xIiB4PSI2NC4zODI4MTIiIHk9IjEwLjYzMjgxMiIvPgo8L2c+CjxnIHN0eWxlPSJmaWxsOnJnYigwJSwwJSwwJSk7ZmlsbC1vcGFjaXR5OjE7Ij4KICA8dXNlIHhsaW5rOmhyZWY9IiNnbHlwaDEtMSIgeD0iNzAuODk0NTMxIiB5PSIxMy4yNTY4MzYiLz4KPC9nPgo8ZyBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyI+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGgzLTIiIHg9IjcwLjc5Njg3NSIgeT0iNS43NDEyMTEiLz4KPC9nPgo8ZyBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyI+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGg0LTMiIHg9Ijc4LjQyMTg3NSIgeT0iMTAuNjMyODEyIi8+CjwvZz4KPGcgc3R5bGU9ImZpbGw6cmdiKDAlLDAlLDAlKTtmaWxsLW9wYWNpdHk6MTsiPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoMC0xIiB4PSI4OC42NzU3ODEiIHk9IjEwLjYzMjgxMiIvPgo8L2c+CjxnIHN0eWxlPSJmaWxsOnJnYigwJSwwJSwwJSk7ZmlsbC1vcGFjaXR5OjE7Ij4KICA8dXNlIHhsaW5rOmhyZWY9IiNnbHlwaDEtMSIgeD0iOTUuMTg3NSIgeT0iMTMuMzE5MzM2Ii8+CjwvZz4KPGcgc3R5bGU9ImZpbGw6cmdiKDAlLDAlLDAlKTtmaWxsLW9wYWNpdHk6MTsiPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoMi0yIiB4PSIxMDIuNjI4OTA2IiB5PSIxMy4zMTkzMzYiLz4KPC9nPgo8ZyBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyI+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGgzLTEiIHg9IjEwOS44NTE1NjIiIHk9IjEzLjMxOTMzNiIvPgo8L2c+CjwvZz4KPC9zdmc+Cg==" alt="$$k_{n+1} = n^2 + k_n^2 - k_{n-1}$$">
</div>
</div>
<div class="imageblock" style="text-align: center">
<div class="content">
<img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTE5LjcwMjU2MnB0IiBoZWlnaHQ9IjEzLjYwMzUxNnB0IiB2aWV3Qm94PSIwIDAgMTE5LjcwMjU2MiAxMy42MDM1MTYiIHZlcnNpb249IjEuMSI+CjxkZWZzPgo8Zz4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoMC0wIj4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iIi8+Cjwvc3ltYm9sPgo8c3ltYm9sIG92ZXJmbG93PSJ2aXNpYmxlIiBpZD0iZ2x5cGgwLTEiPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOm5vbmU7IiBkPSJNIDQuMjQ2MDk0IC01LjE0ODQzOCBDIDQuNTk3NjU2IC00Ljg5NDUzMSA0Ljc3MzQzOCAtNC42MTcxODggNC43NzM0MzggLTQuMzIwMzEyIEMgNC43NzM0MzggLTQuMTkxNDA2IDQuNzMwNDY5IC00LjA3MDMxMiA0LjY0MDYyNSAtMy45NTcwMzEgQyA0LjU1MDc4MSAtMy44NDc2NTYgNC40MTQwNjIgLTMuNzg5MDYyIDQuMjI2NTYyIC0zLjc4OTA2MiBDIDQuMDg5ODQ0IC0zLjc4OTA2MiAzLjk2ODc1IC0zLjgzNTkzOCAzLjg2MzI4MSAtMy45Mjk2ODggQyAzLjc2MTcxOSAtNC4wMjM0MzggMy42ODc1IC00LjE2NDA2MiAzLjY0MDYyNSAtNC4zNDM3NSBMIDMuNTcwMzEyIC00LjYyNSBDIDMuNTE5NTMxIC00LjgzMjAzMSAzLjQyOTY4OCAtNC45NzY1NjIgMy4zMDQ2ODggLTUuMDYyNSBDIDMuMTc1NzgxIC01LjE0NDUzMSAzLjAwNzgxMiAtNS4xODc1IDIuNzk2ODc1IC01LjE4NzUgQyAyLjM1MTU2MiAtNS4xODc1IDEuOTcyNjU2IC00Ljk5MjE4OCAxLjY2Nzk2OSAtNC42MDE1NjIgQyAxLjM1OTM3NSAtNC4yMTQ4NDQgMS4yMDcwMzEgLTMuNjk1MzEyIDEuMjA3MDMxIC0zLjA1NDY4OCBDIDEuMjA3MDMxIC0yLjQ2NDg0NCAxLjM3NSAtMS45MzM1OTQgMS43MTQ4NDQgLTEuNDY0ODQ0IEMgMi4wNTA3ODEgLTAuOTk2MDk0IDIuNTA3ODEyIC0wLjc2MTcxOSAzLjA4MjAzMSAtMC43NjE3MTkgQyAzLjQ4ODI4MSAtMC43NjE3MTkgMy44NTE1NjIgLTAuODk0NTMxIDQuMTY0MDYyIC0xLjE2MDE1NiBDIDQuMzQzNzUgLTEuMzEyNSA0LjU0Njg3NSAtMS41NTQ2ODggNC43NzM0MzggLTEuODg2NzE5IEwgNC45Mzc1IC0xLjc4OTA2MiBDIDQuNzE0ODQ0IC0xLjMyMDMxMiA0LjQ4NDM3NSAtMC45NDUzMTIgNC4yMzQzNzUgLTAuNjcxODc1IEMgMy43NjE3MTkgLTAuMTQ4NDM4IDMuMjE4NzUgMC4xMDkzNzUgMi41OTM3NSAwLjEwOTM3NSBDIDEuOTg0Mzc1IDAuMTA5Mzc1IDEuNDQ1MzEyIC0wLjEyODkwNiAwLjk3NjU2MiAtMC42MDkzNzUgQyAwLjUwNzgxMiAtMS4wODk4NDQgMC4yNzM0MzggLTEuNzQyMTg4IDAuMjczNDM4IC0yLjU2NjQwNiBDIDAuMjczNDM4IC0zLjM3NSAwLjUzMTI1IC00LjA3MDMxMiAxLjA0Mjk2OSAtNC42NTIzNDQgQyAxLjU1NDY4OCAtNS4yMzQzNzUgMi4yMDMxMjUgLTUuNTIzNDM4IDIuOTg0Mzc1IC01LjUyMzQzOCBDIDMuNDcyNjU2IC01LjUyMzQzOCAzLjg5MDYyNSAtNS4zOTg0MzggNC4yNDYwOTQgLTUuMTQ4NDM4IFogTSA0LjI0NjA5NCAtNS4xNDg0MzggIi8+Cjwvc3ltYm9sPgo8c3ltYm9sIG92ZXJmbG93PSJ2aXNpYmxlIiBpZD0iZ2x5cGgwLTIiPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOm5vbmU7IiBkPSJNIDEuMDQ2ODc1IC00LjY5MTQwNiBDIDEuNTM5MDYyIC01LjIyNjU2MiAyLjE3NTc4MSAtNS40OTYwOTQgMi45NTMxMjUgLTUuNDk2MDk0IEMgMy43MjY1NjIgLTUuNDk2MDk0IDQuMzY3MTg4IC01LjI0MjE4OCA0Ljg3NSAtNC43MzQzNzUgQyA1LjM4MjgxMiAtNC4yMjY1NjIgNS42MzY3MTkgLTMuNTUwNzgxIDUuNjM2NzE5IC0yLjcwNzAzMSBDIDUuNjM2NzE5IC0xLjkyOTY4OCA1LjM5MDYyNSAtMS4yNTM5MDYgNC44OTg0MzggLTAuNjc5Njg4IEMgNC40MDYyNSAtMC4xMDU0NjkgMy43Njk1MzEgMC4xNzk2ODggMi45ODgyODEgMC4xNzk2ODggQyAyLjIzODI4MSAwLjE3OTY4OCAxLjYwMTU2MiAtMC4wOTM3NSAxLjA4NTkzOCAtMC42NDQ1MzEgQyAwLjU2NjQwNiAtMS4xOTUzMTIgMC4zMDQ2ODggLTEuODg2NzE5IDAuMzA0Njg4IC0yLjcxODc1IEMgMC4zMDQ2ODggLTMuNDk2MDk0IDAuNTUwNzgxIC00LjE1MjM0NCAxLjA0Njg3NSAtNC42OTE0MDYgWiBNIDEuOTg0Mzc1IC00LjgzOTg0NCBDIDEuNTkzNzUgLTQuNDg0Mzc1IDEuMzk4NDM4IC0zLjg3MTA5NCAxLjM5ODQzOCAtMyBDIDEuMzk4NDM4IC0yLjMwNDY4OCAxLjU1ODU5NCAtMS42NTYyNSAxLjg3MTA5NCAtMS4wNTQ2ODggQyAyLjE4NzUgLTAuNDUzMTI1IDIuNjI1IC0wLjE1MjM0NCAzLjE3OTY4OCAtMC4xNTIzNDQgQyAzLjYxNzE4OCAtMC4xNTIzNDQgMy45NTcwMzEgLTAuMzUxNTYyIDQuMTkxNDA2IC0wLjc1NzgxMiBDIDQuNDI5Njg4IC0xLjE2MDE1NiA0LjU0Njg3NSAtMS42ODc1IDQuNTQ2ODc1IC0yLjMzNTkzOCBDIDQuNTQ2ODc1IC0zLjAxMTcxOSA0LjM5ODQzOCAtMy42NDg0MzggNC4wOTM3NSAtNC4yNSBDIDMuNzkyOTY5IC00Ljg0NzY1NiAzLjM1OTM3NSAtNS4xNDQ1MzEgMi43ODkwNjIgLTUuMTQ0NTMxIEMgMi40ODA0NjkgLTUuMTQ0NTMxIDIuMjEwOTM4IC01LjA0Mjk2OSAxLjk4NDM3NSAtNC44Mzk4NDQgWiBNIDEuOTg0Mzc1IC00LjgzOTg0NCAiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDAtMyI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9Ik0gMC42MjEwOTQgLTEuODQzNzUgTCAwLjgxMjUgLTEuODQzNzUgQyAwLjkwMjM0NCAtMS4zOTg0MzggMS4wMjM0MzggLTEuMDU4NTk0IDEuMTc5Njg4IC0wLjgyMDMxMiBDIDEuNDUzMTI1IC0wLjM4MjgxMiAxLjg1MTU2MiAtMC4xNjQwNjIgMi4zNzg5MDYgLTAuMTY0MDYyIEMgMi42NzE4NzUgLTAuMTY0MDYyIDIuOTAyMzQ0IC0wLjI0NjA5NCAzLjA3NDIxOSAtMC40MDYyNSBDIDMuMjQyMTg4IC0wLjU3MDMxMiAzLjMyODEyNSAtMC43ODEyNSAzLjMyODEyNSAtMS4wMzkwNjIgQyAzLjMyODEyNSAtMS4yMDMxMjUgMy4yODEyNSAtMS4zNTkzNzUgMy4xNzk2ODggLTEuNTExNzE5IEMgMy4wODIwMzEgLTEuNjY0MDYyIDIuOTE0MDYyIC0xLjgxMjUgMi42NjQwNjIgLTEuOTU3MDMxIEwgMi4wMDc4MTIgLTIuMzMyMDMxIEMgMS41MjczNDQgLTIuNTg5ODQ0IDEuMTc1NzgxIC0yLjg1MTU2MiAwLjk0OTIxOSAtMy4xMDkzNzUgQyAwLjcyMjY1NiAtMy4zNzEwOTQgMC42MDkzNzUgLTMuNjc5Njg4IDAuNjA5Mzc1IC00LjAzOTA2MiBDIDAuNjA5Mzc1IC00LjQ3NjU2MiAwLjc2NTYyNSAtNC44MzU5MzggMS4wNzgxMjUgLTUuMTE3MTg4IEMgMS4zOTA2MjUgLTUuMzk4NDM4IDEuNzgxMjUgLTUuNTM5MDYyIDIuMjU3ODEyIC01LjUzOTA2MiBDIDIuNDY0ODQ0IC01LjUzOTA2MiAyLjY5MTQwNiAtNS41IDIuOTM3NSAtNS40MjE4NzUgQyAzLjE4NzUgLTUuMzQzNzUgMy4zMjgxMjUgLTUuMzA0Njg4IDMuMzU5Mzc1IC01LjMwNDY4OCBDIDMuNDI5Njg4IC01LjMwNDY4OCAzLjQ3NjU2MiAtNS4zMTI1IDMuNTA3ODEyIC01LjMzMjAzMSBDIDMuNTM5MDYyIC01LjM1MTU2MiAzLjU3MDMxMiAtNS4zODI4MTIgMy41OTM3NSAtNS40MjU3ODEgTCAzLjczNDM3NSAtNS40MjU3ODEgTCAzLjc3MzQzOCAtMy43ODkwNjIgTCAzLjU5Mzc1IC0zLjc4OTA2MiBDIDMuNTE1NjI1IC00LjE2Nzk2OSAzLjQwNjI1IC00LjQ2NDg0NCAzLjI3MzQzOCAtNC42NzU3ODEgQyAzLjAzMTI1IC01LjA2NjQwNiAyLjY4MzU5NCAtNS4yNjE3MTkgMi4yMjY1NjIgLTUuMjYxNzE5IEMgMS45NTMxMjUgLTUuMjYxNzE5IDEuNzM4MjgxIC01LjE3OTY4OCAxLjU4MjAzMSAtNS4wMDc4MTIgQyAxLjQyNTc4MSAtNC44Mzk4NDQgMS4zNDc2NTYgLTQuNjQ0NTMxIDEuMzQ3NjU2IC00LjQxNzk2OSBDIDEuMzQ3NjU2IC00LjA1ODU5NCAxLjYxNzE4OCAtMy43MzgyODEgMi4xNTYyNSAtMy40NTcwMzEgTCAyLjkyOTY4OCAtMy4wMzkwNjIgQyAzLjc2MTcxOSAtMi41ODU5MzggNC4xNzk2ODggLTIuMDYyNSA0LjE3OTY4OCAtMS40NjA5MzggQyA0LjE3OTY4OCAtMSA0LjAwMzkwNiAtMC42MjEwOTQgMy42NjAxNTYgLTAuMzI4MTI1IEMgMy4zMTI1IC0wLjAzNTE1NjIgMi44NTkzNzUgMC4xMDkzNzUgMi4zMDQ2ODggMC4xMDkzNzUgQyAyLjA3MDMxMiAwLjEwOTM3NSAxLjgwNDY4OCAwLjA3MDMxMjUgMS41MDc4MTIgLTAuMDA3ODEyNSBDIDEuMjEwOTM4IC0wLjA4NTkzNzUgMS4wMzEyNSAtMC4xMjUgMC45NzY1NjIgLTAuMTI1IEMgMC45Mjk2ODggLTAuMTI1IDAuODkwNjI1IC0wLjEwNTQ2OSAwLjg1NTQ2OSAtMC4wNzQyMTg4IEMgMC44MjAzMTIgLTAuMDM5MDYyNSAwLjc5Mjk2OSAwIDAuNzczNDM4IDAuMDQ2ODc1IEwgMC42MjEwOTQgMC4wNDY4NzUgWiBNIDAuNjIxMDk0IC0xLjg0Mzc1ICIvPgo8L3N5bWJvbD4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoMC00Ij4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iTSAwLjM1OTM3NSAtMC4xMzI4MTIgQyAxLjc4OTA2MiAtMS42MTcxODggMi43NTc4MTIgLTIuNzEwOTM4IDMuMjY5NTMxIC0zLjQwNjI1IEMgMy43ODEyNSAtNC4xMDE1NjIgNC4wMzkwNjIgLTQuNzc3MzQ0IDQuMDM5MDYyIC01LjQzNzUgQyA0LjAzOTA2MiAtNi4wMTU2MjUgMy44ODI4MTIgLTYuNDU3MDMxIDMuNTcwMzEyIC02Ljc1NzgxMiBDIDMuMjU3ODEyIC03LjA2MjUgMi44ODI4MTIgLTcuMjEwOTM4IDIuNDQ5MjE5IC03LjIxMDkzOCBDIDEuOTE0MDYyIC03LjIxMDkzOCAxLjQ4MDQ2OSAtNy4wMTU2MjUgMS4xNDg0MzggLTYuNjI1IEMgMC45NjQ4NDQgLTYuNDEwMTU2IDAuNzg5MDYyIC02LjA4MjAzMSAwLjYyMTA5NCAtNS42MzY3MTkgTCAwLjM2NzE4OCAtNS42ODc1IEMgMC41NjI1IC02LjU4NTkzOCAwLjg5NDUzMSAtNy4yMTA5MzggMS4zNjMyODEgLTcuNTYyNSBDIDEuODI4MTI1IC03LjkxMDE1NiAyLjMyODEyNSAtOC4wODU5MzggMi44NjcxODggLTguMDg1OTM4IEMgMy41MjczNDQgLTguMDg1OTM4IDQuMDU4NTk0IC03Ljg3ODkwNiA0LjQ2ODc1IC03LjQ2MDkzOCBDIDQuODc1IC03LjA0Njg3NSA1LjA3ODEyNSAtNi41MzkwNjIgNS4wNzgxMjUgLTUuOTM3NSBDIDUuMDc4MTI1IC01LjI5Njg3NSA0Ljg1OTM3NSAtNC42Nzk2ODggNC40MTc5NjkgLTQuMDg1OTM4IEMgMy45NzY1NjIgLTMuNDkyMTg4IDMuMDE1NjI1IC0yLjQzMzU5NCAxLjUzOTA2MiAtMC45MTQwNjIgTCA0LjIzMDQ2OSAtMC45MTQwNjIgQyA0LjYwNTQ2OSAtMC45MTQwNjIgNC44NjcxODggLTAuOTYwOTM4IDUuMDIzNDM4IC0xLjA0Njg3NSBDIDUuMTc1NzgxIC0xLjEzNjcxOSA1LjM0Mzc1IC0xLjM1OTM3NSA1LjUzOTA2MiAtMS43MDMxMjUgTCA1LjY4NzUgLTEuNjMyODEyIEwgNS4wMzkwNjIgMCBMIDAuMzU5Mzc1IDAgWiBNIDAuMzU5Mzc1IC0wLjEzMjgxMiAiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDAtNSI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9Ik0gMS4xNjAxNTYgLTggQyAxLjI3NzM0NCAtOC4xMjEwOTQgMS40MjE4NzUgLTguMTc5Njg4IDEuNTkzNzUgLTguMTc5Njg4IEMgMS43NjE3MTkgLTguMTc5Njg4IDEuOTA2MjUgLTguMTIxMDk0IDIuMDIzNDM4IC04IEMgMi4xNDQ1MzEgLTcuODgyODEyIDIuMjAzMTI1IC03LjczNDM3NSAyLjIwMzEyNSAtNy41NjI1IEMgMi4yMDMxMjUgLTcuMzk0NTMxIDIuMTQ0NTMxIC03LjI1MzkwNiAyLjAyMzQzOCAtNy4xMzI4MTIgQyAxLjkwNjI1IC03LjAxNTYyNSAxLjc2MTcxOSAtNi45NTMxMjUgMS41OTM3NSAtNi45NTMxMjUgQyAxLjQyMTg3NSAtNi45NTMxMjUgMS4yNzczNDQgLTcuMDE1NjI1IDEuMTYwMTU2IC03LjEzMjgxMiBDIDEuMDQyOTY5IC03LjI1MzkwNiAwLjk4NDM3NSAtNy4zOTg0MzggMC45ODQzNzUgLTcuNTYyNSBDIDAuOTg0Mzc1IC03LjczMDQ2OSAxLjA0Mjk2OSAtNy44NzUgMS4xNjAxNTYgLTggWiBNIDAuMjM0Mzc1IC0wLjE2NDA2MiBDIDAuNjUyMzQ0IC0wLjIwMzEyNSAwLjkxNDA2MiAtMC4yNzM0MzggMS4wMjM0MzggLTAuMzc4OTA2IEMgMS4xMzI4MTIgLTAuNDgwNDY5IDEuMTg3NSAtMC43NjE3MTkgMS4xODc1IC0xLjIxODc1IEwgMS4xODc1IC00LjAxNTYyNSBDIDEuMTg3NSAtNC4yNjk1MzEgMS4xNzE4NzUgLTQuNDQ1MzEyIDEuMTM2NzE5IC00LjUzOTA2MiBDIDEuMDc4MTI1IC00LjY5OTIxOSAwLjk1MzEyNSAtNC43ODEyNSAwLjc2NTYyNSAtNC43ODEyNSBDIDAuNzIyNjU2IC00Ljc4MTI1IDAuNjgzNTk0IC00Ljc3NzM0NCAwLjY0MDYyNSAtNC43Njk1MzEgQyAwLjYwMTU2MiAtNC43NjE3MTkgMC40ODQzNzUgLTQuNzMwNDY5IDAuMjg5MDYyIC00LjY3NTc4MSBMIDAuMjg5MDYyIC00Ljg1OTM3NSBMIDAuNTM5MDYyIC00LjkzNzUgQyAxLjIyMjY1NiAtNS4xNjAxNTYgMS42OTkyMTkgLTUuMzI4MTI1IDEuOTY4NzUgLTUuNDQ1MzEyIEMgMi4wNzgxMjUgLTUuNDkyMTg4IDIuMTQ4NDM4IC01LjUxNTYyNSAyLjE3OTY4OCAtNS41MTU2MjUgQyAyLjE4NzUgLTUuNDg4MjgxIDIuMTkxNDA2IC01LjQ1NzAzMSAyLjE5MTQwNiAtNS40MjU3ODEgTCAyLjE5MTQwNiAtMS4yMTg3NSBDIDIuMTkxNDA2IC0wLjc3MzQzOCAyLjI0NjA5NCAtMC40OTIxODggMi4zNTE1NjIgLTAuMzgyODEyIEMgMi40NjA5MzggLTAuMjY5NTMxIDIuNzAzMTI1IC0wLjE5NTMxMiAzLjA4MjAzMSAtMC4xNjQwNjIgTCAzLjA4MjAzMSAwIEwgMC4yMzQzNzUgMCBaIE0gMC4yMzQzNzUgLTAuMTY0MDYyICIvPgo8L3N5bWJvbD4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoMC02Ij4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iTSAwLjIxODc1IC0wLjE2NDA2MiBDIDAuNDk2MDk0IC0wLjE5OTIxOSAwLjY4NzUgLTAuMjY5NTMxIDAuODAwNzgxIC0wLjM3MTA5NCBDIDAuOTEwMTU2IC0wLjQ3NjU2MiAwLjk2ODc1IC0wLjcwNzAzMSAwLjk2ODc1IC0xLjA2NjQwNiBMIDAuOTY4NzUgLTQuMDM5MDYyIEMgMC45Njg3NSAtNC4yODkwNjIgMC45NDUzMTIgLTQuNDYwOTM4IDAuODk4NDM4IC00LjU2MjUgQyAwLjgyNDIxOSAtNC43MTA5MzggMC42NzE4NzUgLTQuNzg5MDYyIDAuNDM3NSAtNC43ODkwNjIgQyAwLjQwMjM0NCAtNC43ODkwNjIgMC4zNjcxODggLTQuNzg1MTU2IDAuMzMyMDMxIC00Ljc4MTI1IEMgMC4yOTI5NjkgLTQuNzc3MzQ0IDAuMjUgLTQuNzczNDM4IDAuMTk1MzEyIC00Ljc2NTYyNSBMIDAuMTk1MzEyIC00Ljk2ODc1IEMgMC4zNTU0NjkgLTUuMDE1NjI1IDAuNzM0Mzc1IC01LjEzNjcxOSAxLjMyODEyNSAtNS4zMzIwMzEgTCAxLjg4MjgxMiAtNS41MTU2MjUgQyAxLjkxMDE1NiAtNS41MTU2MjUgMS45MjU3ODEgLTUuNTAzOTA2IDEuOTI5Njg4IC01LjQ4NDM3NSBDIDEuOTM3NSAtNS40NjQ4NDQgMS45Mzc1IC01LjQzNzUgMS45Mzc1IC01LjQwMjM0NCBMIDEuOTM3NSAtNC41MzkwNjIgQyAyLjI5Njg3NSAtNC44NzUgMi41NzgxMjUgLTUuMTA5Mzc1IDIuNzgxMjUgLTUuMjM0Mzc1IEMgMy4wODU5MzggLTUuNDI1NzgxIDMuNDA2MjUgLTUuNTE5NTMxIDMuNzM0Mzc1IC01LjUxOTUzMSBDIDQgLTUuNTE5NTMxIDQuMjQyMTg4IC01LjQ0NTMxMiA0LjQ2MDkzOCAtNS4yODkwNjIgQyA0Ljg4MjgxMiAtNC45OTIxODggNS4wOTM3NSAtNC40NjQ4NDQgNS4wOTM3NSAtMy43MDMxMjUgTCA1LjA5Mzc1IC0wLjk2ODc1IEMgNS4wOTM3NSAtMC42ODc1IDUuMTQ4NDM4IC0wLjQ4NDM3NSA1LjI2MTcxOSAtMC4zNTkzNzUgQyA1LjM3NSAtMC4yMzQzNzUgNS41NjI1IC0wLjE2Nzk2OSA1LjgyODEyNSAtMC4xNjQwNjIgTCA1LjgyODEyNSAwIEwgMy4zMjgxMjUgMCBMIDMuMzI4MTI1IC0wLjE2NDA2MiBDIDMuNjEzMjgxIC0wLjIwMzEyNSAzLjgxMjUgLTAuMjgxMjUgMy45MjU3ODEgLTAuNDAyMzQ0IEMgNC4wMzkwNjIgLTAuNTE5NTMxIDQuMDkzNzUgLTAuNzgxMjUgNC4wOTM3NSAtMS4xNzk2ODggTCA0LjA5Mzc1IC0zLjY3OTY4OCBDIDQuMDkzNzUgLTQuMDE1NjI1IDQuMDMxMjUgLTQuMjkyOTY5IDMuOTA2MjUgLTQuNTE1NjI1IEMgMy43ODEyNSAtNC43MzQzNzUgMy41NTQ2ODggLTQuODQzNzUgMy4yMTg3NSAtNC44NDM3NSBDIDIuOTg4MjgxIC00Ljg0Mzc1IDIuNzUgLTQuNzY1NjI1IDIuNTE1NjI1IC00LjYwOTM3NSBDIDIuMzgyODEyIC00LjUxOTUzMSAyLjIxMDkzOCAtNC4zNzUgMiAtNC4xNjQwNjIgTCAyIC0wLjg4MjgxMiBDIDIgLTAuNjAxNTYyIDIuMDYyNSAtMC40MTQwNjIgMi4xODc1IC0wLjMyMDMxMiBDIDIuMzEyNSAtMC4yMjI2NTYgMi41MDc4MTIgLTAuMTcxODc1IDIuNzc3MzQ0IC0wLjE2NDA2MiBMIDIuNzc3MzQ0IDAgTCAwLjIxODc1IDAgWiBNIDAuMjE4NzUgLTAuMTY0MDYyICIvPgo8L3N5bWJvbD4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoMS0wIj4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iIi8+Cjwvc3ltYm9sPgo8c3ltYm9sIG92ZXJmbG93PSJ2aXNpYmxlIiBpZD0iZ2x5cGgxLTEiPgo8cGF0aCBzdHlsZT0ic3Ryb2tlOm5vbmU7IiBkPSJNIDQuMTcxODc1IDExLjU3ODEyNSBDIDMuMjkyOTY5IDEwLjg5MDYyNSAyLjY0ODQzOCAxMC4wMTk1MzEgMi4yMzgyODEgOC45NjQ4NDQgQyAxLjgyODEyNSA3LjkxNDA2MiAxLjYyMTA5NCA2Ljc5Mjk2OSAxLjYyMTA5NCA1LjYwNTQ2OSBDIDEuNjIxMDk0IDQuNDA2MjUgMS44MjQyMTkgMy4yODEyNSAyLjIzODI4MSAyLjIyNjU2MiBDIDIuNjQ4NDM4IDEuMTcxODc1IDMuMjkyOTY5IDAuMzA0Njg4IDQuMTcxODc1IC0wLjM4MjgxMiBDIDQuMTcxODc1IC0wLjM5NDUzMSA0LjE5MTQwNiAtMC40MDIzNDQgNC4yMjY1NjIgLTAuNDAyMzQ0IEwgNC4zNTU0NjkgLTAuNDAyMzQ0IEMgNC4zNzUgLTAuNDAyMzQ0IDQuMzk0NTMxIC0wLjM5MDYyNSA0LjQxNDA2MiAtMC4zNjcxODggQyA0LjQyOTY4OCAtMC4zNDc2NTYgNC40Mzc1IC0wLjMyODEyNSA0LjQzNzUgLTAuMzA4NTk0IEMgNC40Mzc1IC0wLjI4MTI1IDQuNDI5Njg4IC0wLjI2MTcxOSA0LjQxNzk2OSAtMC4yNSBDIDQuMDMxMjUgMC4xMjUgMy43MDcwMzEgMC41NDI5NjkgMy40NDUzMTIgMSBDIDMuMTgzNTk0IDEuNDYwOTM4IDIuOTc2NTYyIDEuOTM3NSAyLjgyODEyNSAyLjQyOTY4OCBDIDIuNjc1NzgxIDIuOTI1NzgxIDIuNTY2NDA2IDMuNDQxNDA2IDIuNSAzLjk3NjU2MiBDIDIuNDMzNTk0IDQuNTE1NjI1IDIuNDAyMzQ0IDUuMDU4NTk0IDIuNDAyMzQ0IDUuNjEzMjgxIEMgMi40MDIzNDQgOC4xOTkyMTkgMy4wNzQyMTkgMTAuMTQ0NTMxIDQuNDE3OTY5IDExLjQ0OTIxOSBDIDQuNDMzNTk0IDExLjQ2MDkzOCA0LjQzNzUgMTEuNDgwNDY5IDQuNDM3NSAxMS41MDc4MTIgQyA0LjQzNzUgMTEuNTI3MzQ0IDQuNDI5Njg4IDExLjU0Njg3NSA0LjQxMDE1NiAxMS41NjY0MDYgQyA0LjM5MDYyNSAxMS41ODk4NDQgNC4zNzEwOTQgMTEuNTk3NjU2IDQuMzU1NDY5IDExLjU5NzY1NiBMIDQuMjI2NTYyIDExLjU5NzY1NiBDIDQuMTkxNDA2IDExLjU5NzY1NiA0LjE3MTg3NSAxMS41OTM3NSA0LjE3MTg3NSAxMS41NzgxMjUgWiBNIDQuMTcxODc1IDExLjU3ODEyNSAiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDEtMiI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9Ik0gMC41MzEyNSAxMS41OTc2NTYgQyAwLjQ2ODc1IDExLjU5NzY1NiAwLjQzNzUgMTEuNTcwMzEyIDAuNDM3NSAxMS41MDc4MTIgQyAwLjQzNzUgMTEuNDgwNDY5IDAuNDQ1MzEyIDExLjQ2MDkzOCAwLjQ1NzAzMSAxMS40NDkyMTkgQyAwLjk2ODc1IDEwLjk0OTIxOSAxLjM3MTA5NCAxMC4zODI4MTIgMS42Njc5NjkgOS43NSBDIDEuOTY0ODQ0IDkuMTE3MTg4IDIuMTc1NzgxIDguNDUzMTI1IDIuMjkyOTY5IDcuNzU3ODEyIEMgMi40MTQwNjIgNy4wNjI1IDIuNDcyNjU2IDYuMzM5ODQ0IDIuNDcyNjU2IDUuNTkzNzUgQyAyLjQ3MjY1NiAzIDEuODAwNzgxIDEuMDU0Njg4IDAuNDU3MDMxIC0wLjI1IEMgMC40NDUzMTIgLTAuMjYxNzE5IDAuNDM3NSAtMC4yODEyNSAwLjQzNzUgLTAuMzA4NTk0IEMgMC40Mzc1IC0wLjM3MTA5NCAwLjQ2ODc1IC0wLjQwMjM0NCAwLjUzMTI1IC0wLjQwMjM0NCBMIDAuNjYwMTU2IC0wLjQwMjM0NCBDIDAuNjgzNTk0IC0wLjQwMjM0NCAwLjY5OTIxOSAtMC4zOTQ1MzEgMC43MTQ4NDQgLTAuMzgyODEyIEMgMS41ODk4NDQgMC4zMDA3ODEgMi4yMzA0NjkgMS4xNzE4NzUgMi42NDA2MjUgMi4yMjY1NjIgQyAzLjA1MDc4MSAzLjI4MTI1IDMuMjU3ODEyIDQuNDA2MjUgMy4yNTc4MTIgNS42MDU0NjkgQyAzLjI1NzgxMiA2Ljc5Mjk2OSAzLjA1MDc4MSA3LjkxNDA2MiAyLjY0NDUzMSA4Ljk2NDg0NCBDIDIuMjM0Mzc1IDEwLjAxOTUzMSAxLjU5Mzc1IDEwLjg5MDYyNSAwLjcxNDg0NCAxMS41NzgxMjUgQyAwLjY5OTIxOSAxMS41OTM3NSAwLjY4MzU5NCAxMS41OTc2NTYgMC42NjAxNTYgMTEuNTk3NjU2IFogTSAwLjUzMTI1IDExLjU5NzY1NiAiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDItMCI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9IiIvPgo8L3N5bWJvbD4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoMi0xIj4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iTSA2LjMyMDMxMiAtNS43ODEyNSBDIDYuMzEyNSAtNC41MDc4MTIgNS45NjA5MzggLTMuMjM0Mzc1IDUuMjY1NjI1IC0xLjk1NzAzMSBDIDQuOTI5Njg4IC0xLjM1NTQ2OSA0LjUzNTE1NiAtMC44NjMyODEgNC4wNzgxMjUgLTAuNDgwNDY5IEMgMy42MDU0NjkgLTAuMDg5ODQzOCAzLjA5Mzc1IDAuMTA5Mzc1IDIuNTQyOTY5IDAuMTE3MTg4IEMgMi4xNjc5NjkgMC4xMDkzNzUgMS44NTkzNzUgMC4wMTU2MjUgMS42MTcxODggLTAuMTU2MjUgQyAxLjM3ODkwNiAtMC4zMzIwMzEgMS4xOTUzMTIgLTAuNTYyNSAxLjA2NjQwNiAtMC44MzU5MzggQyAwLjkzNzUgLTEuMTE3MTg4IDAuODUxNTYyIC0xLjQyMTg3NSAwLjgwNDY4OCAtMS43NDIxODggQyAwLjc1NzgxMiAtMi4wNjI1IDAuNzM0Mzc1IC0yLjM2NzE4OCAwLjczNDM3NSAtMi42NjQwNjIgQyAwLjc1IC0zLjkzMzU5NCAxLjEwOTM3NSAtNS4xODc1IDEuODIwMzEyIC02LjQyMTg3NSBDIDIuMTY0MDYyIC03LjAwMzkwNiAyLjU2NjQwNiAtNy40NzY1NjIgMy4wMjM0MzggLTcuODQzNzUgQyAzLjQ3MjY1NiAtOC4yMDMxMjUgMy45NTcwMzEgLTguMzkwNjI1IDQuNDc2NTYyIC04LjM5ODQzOCBDIDQuODU5Mzc1IC04LjM5ODQzOCA1LjE3NTc4MSAtOC4zMjAzMTIgNS40MjU3ODEgLTguMTY0MDYyIEMgNS42NjQwNjIgLTguMDAzOTA2IDUuODQ3NjU2IC03Ljc5Mjk2OSA1Ljk3NjU2MiAtNy41MzUxNTYgQyA2LjIxNDg0NCAtNi45ODQzNzUgNi4zMjgxMjUgLTYuMzk4NDM4IDYuMzIwMzEyIC01Ljc4MTI1IFogTSAyLjEwOTM3NSAtNC4xMjUgQyAxLjg1NTQ2OSAtMy4zOTA2MjUgMS43MTg3NSAtMi40NjA5MzggMS42OTUzMTIgLTEuMzI4MTI1IEMgMS42OTUzMTIgLTEuMDM1MTU2IDEuNzY5NTMxIC0wLjc3MzQzOCAxLjkyMTg3NSAtMC41MzkwNjIgQyAyLjA2NjQwNiAtMC4zMDg1OTQgMi4yOTY4NzUgLTAuMTg3NSAyLjYxMzI4MSAtMC4xNzk2ODggQyAyLjc3MzQzOCAtMC4xNzk2ODggMi45MjU3ODEgLTAuMjI2NTYyIDMuMDcwMzEyIC0wLjMyMDMxMiBDIDMuMjE0ODQ0IC0wLjQxMDE1NiAzLjM1MTU2MiAtMC41MzEyNSAzLjQ4MDQ2OSAtMC42ODc1IEMgMy43MzQzNzUgLTEgMy45NjA5MzggLTEuMzc1IDQuMTU2MjUgLTEuODIwMzEyIEMgNC41NjI1IC0yLjgwNDY4OCA0LjgyMDMxMiAtMy41NzQyMTkgNC45MzM1OTQgLTQuMTI1IFogTSA1LjAzOTA2MiAtNC41MjM0MzggQyA1LjEyMTA5NCAtNC44ODI4MTIgNS4xOTUzMTIgLTUuMjQyMTg4IDUuMjY1NjI1IC01LjYwMTU2MiBDIDUuMzI4MTI1IC01Ljk1MzEyNSA1LjM1OTM3NSAtNi4zMDQ2ODggNS4zNTkzNzUgLTYuNjQ4NDM4IEMgNS4zNjcxODggLTcgNS4zMzU5MzggLTcuMzI4MTI1IDUuMjU3ODEyIC03LjYyODkwNiBDIDUuMjAzMTI1IC03Ljc3MzQzOCA1LjExMzI4MSAtNy44OTA2MjUgNC45OTIxODggLTcuOTgwNDY5IEMgNC44NjMyODEgLTguMDU4NTk0IDQuNjkxNDA2IC04LjA5NzY1NiA0LjQ3NjU2MiAtOC4wOTc2NTYgQyA0LjE3MTg3NSAtOC4wODk4NDQgMy44OTg0MzggLTcuOTYwOTM4IDMuNjY0MDYyIC03LjcwMzEyNSBDIDMuNDE0MDYyIC03LjQzNzUgMy4xOTUzMTIgLTcuMTA5Mzc1IDMuMDExNzE5IC02LjcxODc1IEMgMi44MjgxMjUgLTYuMzM1OTM4IDIuNjc1NzgxIC01Ljk0OTIxOSAyLjU1NDY4OCAtNS41NTQ2ODggQyAyLjQxNzk2OSAtNS4xNTYyNSAyLjMxMjUgLTQuODEyNSAyLjI0MjE4OCAtNC41MjM0MzggWiBNIDUuMDM5MDYyIC00LjUyMzQzOCAiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDMtMCI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9IiIvPgo8L3N5bWJvbD4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoMy0xIj4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iTSA2LjQxNDA2MiAtMi4yMzQzNzUgTCA2LjQxNDA2MiAtMS40MTQwNjIgTCAwLjM1OTM3NSAtMS40MTQwNjIgTCAwLjM1OTM3NSAtMi4yMzQzNzUgWiBNIDYuNDE0MDYyIC00LjY1MjM0NCBMIDYuNDE0MDYyIC0zLjgzMjAzMSBMIDAuMzU5Mzc1IC0zLjgzMjAzMSBMIDAuMzU5Mzc1IC00LjY1MjM0NCBaIE0gNi40MTQwNjIgLTQuNjUyMzQ0ICIvPgo8L3N5bWJvbD4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoMy0yIj4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iTSAwLjM1OTM3NSAtMy40Mzc1IEwgNi40MTQwNjIgLTMuNDM3NSBMIDYuNDE0MDYyIC0yLjYxNzE4OCBMIDAuMzU5Mzc1IC0yLjYxNzE4OCBaIE0gMC4zNTkzNzUgLTMuNDM3NSAiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDQtMCI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9IiIvPgo8L3N5bWJvbD4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoNC0xIj4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iTSAwLjI1MzkwNiAtMC4wOTM3NSBDIDEuMjY5NTMxIC0xLjE0ODQzOCAxLjk1NzAzMSAtMS45MjE4NzUgMi4zMjAzMTIgLTIuNDE3OTY5IEMgMi42ODM1OTQgLTIuOTEwMTU2IDIuODY3MTg4IC0zLjM5MDYyNSAyLjg2NzE4OCAtMy44NTkzNzUgQyAyLjg2NzE4OCAtNC4yNjk1MzEgMi43NTM5MDYgLTQuNTgyMDMxIDIuNTM1MTU2IC00Ljc5Njg3NSBDIDIuMzEyNSAtNS4wMTE3MTkgMi4wNDY4NzUgLTUuMTIxMDk0IDEuNzM4MjgxIC01LjEyMTA5NCBDIDEuMzU5Mzc1IC01LjEyMTA5NCAxLjA1MDc4MSAtNC45ODA0NjkgMC44MTY0MDYgLTQuNzAzMTI1IEMgMC42ODM1OTQgLTQuNTUwNzgxIDAuNTU4NTk0IC00LjMxNjQwNiAwLjQ0MTQwNiAtNCBMIDAuMjYxNzE5IC00LjAzOTA2MiBDIDAuNDAyMzQ0IC00LjY3NTc4MSAwLjYzNjcxOSAtNS4xMjEwOTQgMC45Njg3NSAtNS4zNjcxODggQyAxLjMwMDc4MSAtNS42MTcxODggMS42NTIzNDQgLTUuNzQyMTg4IDIuMDM1MTU2IC01Ljc0MjE4OCBDIDIuNTAzOTA2IC01Ljc0MjE4OCAyLjg4MjgxMiAtNS41OTM3NSAzLjE3MTg3NSAtNS4yOTY4NzUgQyAzLjQ2MDkzOCAtNS4wMDM5MDYgMy42MDU0NjkgLTQuNjQwNjI1IDMuNjA1NDY5IC00LjIxNDg0NCBDIDMuNjA1NDY5IC0zLjc1NzgxMiAzLjQ0OTIxOSAtMy4zMjAzMTIgMy4xMzY3MTkgLTIuODk4NDM4IEMgMi44MjQyMTkgLTIuNDc2NTYyIDIuMTQwNjI1IC0xLjcyNjU2MiAxLjA5Mzc1IC0wLjY0ODQzOCBMIDMuMDAzOTA2IC0wLjY0ODQzOCBDIDMuMjY5NTMxIC0wLjY0ODQzOCAzLjQ1NzAzMSAtMC42Nzk2ODggMy41NjY0MDYgLTAuNzQ2MDk0IEMgMy42NzE4NzUgLTAuODA4NTk0IDMuNzk2ODc1IC0wLjk2NDg0NCAzLjkyOTY4OCAtMS4yMTA5MzggTCA0LjAzOTA2MiAtMS4xNjAxNTYgTCAzLjU3ODEyNSAwIEwgMC4yNTM5MDYgMCBaIE0gMC4yNTM5MDYgLTAuMDkzNzUgIi8+Cjwvc3ltYm9sPgo8L2c+CjwvZGVmcz4KPGcgaWQ9InN1cmZhY2U1Ij4KPGcgc3R5bGU9ImZpbGw6cmdiKDAlLDAlLDAlKTtmaWxsLW9wYWNpdHk6MTsiPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoMC0xIiB4PSIwLjM5MDYyNSIgeT0iMTAuNjMyODEyIi8+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGgwLTIiIHg9IjUuNzE2Nzk3IiB5PSIxMC42MzI4MTIiLz4KICA8dXNlIHhsaW5rOmhyZWY9IiNnbHlwaDAtMyIgeD0iMTEuNzE2Nzk3IiB5PSIxMC42MzI4MTIiLz4KPC9nPgo8ZyBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyI+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGgxLTEiIHg9IjE1LjYwNTQ2OSIgeT0iMi4wMDIwOTkiLz4KPC9nPgo8ZyBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyI+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGgwLTQiIHg9IjIxLjAyMzQzOCIgeT0iMTAuNjMyODEyIi8+CjwvZz4KPGcgc3R5bGU9ImZpbGw6cmdiKDAlLDAlLDAlKTtmaWxsLW9wYWNpdHk6MTsiPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoMi0xIiB4PSIyNy4zMTI1IiB5PSIxMC42MzI4MTIiLz4KPC9nPgo8ZyBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyI+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGgxLTIiIHg9IjM0LjU0Mjk2OSIgeT0iMi4wMDIwOTkiLz4KPC9nPgo8ZyBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyI+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGgzLTEiIHg9IjQyLjEwNTQ2OSIgeT0iMTAuNjMyODEyIi8+CjwvZz4KPGcgc3R5bGU9ImZpbGw6cmdiKDAlLDAlLDAlKTtmaWxsLW9wYWNpdHk6MTsiPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoMC0xIiB4PSI1Mi45MTQwNjIiIHk9IjEwLjYzMjgxMiIvPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoMC0yIiB4PSI1OC4yNDAyMzQiIHk9IjEwLjYzMjgxMiIvPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoMC0zIiB4PSI2NC4yNDAyMzQiIHk9IjEwLjYzMjgxMiIvPgo8L2c+CjxnIHN0eWxlPSJmaWxsOnJnYigwJSwwJSwwJSk7ZmlsbC1vcGFjaXR5OjE7Ij4KICA8dXNlIHhsaW5rOmhyZWY9IiNnbHlwaDQtMSIgeD0iNjkuMzA0Njg4IiB5PSI1Ljc0MTIxMSIvPgo8L2c+CjxnIHN0eWxlPSJmaWxsOnJnYigwJSwwJSwwJSk7ZmlsbC1vcGFjaXR5OjE7Ij4KICA8dXNlIHhsaW5rOmhyZWY9IiNnbHlwaDItMSIgeD0iNzMuNzUzOTA2IiB5PSIxMC42MzI4MTIiLz4KPC9nPgo8ZyBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyI+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGgzLTIiIHg9IjgzLjcyNjU2MiIgeT0iMTAuNjMyODEyIi8+CjwvZz4KPGcgc3R5bGU9ImZpbGw6cmdiKDAlLDAlLDAlKTtmaWxsLW9wYWNpdHk6MTsiPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoMC0zIiB4PSI5My41MzUxNTYiIHk9IjEwLjYzMjgxMiIvPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoMC01IiB4PSI5OC4yMDUwNzgiIHk9IjEwLjYzMjgxMiIvPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoMC02IiB4PSIxMDEuNTM5MDYyIiB5PSIxMC42MzI4MTIiLz4KPC9nPgo8ZyBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyI+CiAgPHVzZSB4bGluazpocmVmPSIjZ2x5cGg0LTEiIHg9IjEwOC4yNTM5MDYiIHk9IjUuNzQxMjExIi8+CjwvZz4KPGcgc3R5bGU9ImZpbGw6cmdiKDAlLDAlLDAlKTtmaWxsLW9wYWNpdHk6MTsiPgogIDx1c2UgeGxpbms6aHJlZj0iI2dseXBoMi0xIiB4PSIxMTIuNzAzMTI1IiB5PSIxMC42MzI4MTIiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo=" alt="$$\cos (2\theta) = \cos^2 \theta - \sin^2 \theta$$">
</div>
</div>
<div class="imageblock" style="text-align: center">
<div class="content">
<img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTI2LjQ3NjQ3N3B0IiBoZWlnaHQ9IjEzLjcxNTgycHQiIHZpZXdCb3g9IjAgMCAxMjYuNDc2NDc3IDEzLjcxNTgyIiB2ZXJzaW9uPSIxLjEiPgo8ZGVmcz4KPGc+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDAtMCI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9IiIvPgo8L3N5bWJvbD4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoMC0xIj4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iTSA0Ljk1MzEyNSAtNy4wMzkwNjIgQyA0Ljg2NzE4OCAtNi45Mjk2ODggNC43NDYwOTQgLTYuODc1IDQuNTkzNzUgLTYuODc1IEMgNC40NjA5MzggLTYuODc1IDQuMzUxNTYyIC02LjkxNDA2MiA0LjI2NTYyNSAtNyBDIDQuMTc5Njg4IC03LjA4MjAzMSA0LjEzNjcxOSAtNy4xNzk2ODggNC4xMzY3MTkgLTcuMjk2ODc1IEMgNC4xMzY3MTkgLTcuMzc1IDQuMTcxODc1IC03LjUwNzgxMiA0LjI1IC03LjY5OTIxOSBDIDQuMjUgLTcuNzUgNC4yMjI2NTYgLTcuNzk2ODc1IDQuMTcxODc1IC03LjgzNTkzOCBDIDQuMTIxMDk0IC03Ljg3MTA5NCA0LjA1NDY4OCAtNy44ODY3MTkgMy45NzI2NTYgLTcuODg2NzE5IEMgMy41ODk4NDQgLTcuODg2NzE5IDMuMjY5NTMxIC03LjU3MDMxMiAzLjAxMTcxOSAtNi45NDUzMTIgQyAyLjg2NzE4OCAtNi41ODIwMzEgMi43MDMxMjUgLTUuOTY4NzUgMi41MjM0MzggLTUuMTA5Mzc1IEwgMy44MzIwMzEgLTUuMTA5Mzc1IEwgMy43NSAtNC43MTg3NSBMIDIuNDQ1MzEyIC00LjcxODc1IEwgMS41ODIwMzEgLTAuOTE0MDYyIEMgMS4zNTE1NjIgMC4xMDU0NjkgMS4wNDI5NjkgMC45Mjk2ODggMC42NTIzNDQgMS41NTg1OTQgQyAwLjI2NTYyNSAyLjE4NzUgLTAuMjM0Mzc1IDIuNSAtMC44MzU5MzggMi41IEMgLTEuMTEzMjgxIDIuNSAtMS4zNDM3NSAyLjQyNTc4MSAtMS41MTk1MzEgMi4yNzM0MzggQyAtMS42OTkyMTkgMi4xMjEwOTQgLTEuNzg5MDYyIDEuOTUzMTI1IC0xLjc4OTA2MiAxLjc2NTYyNSBDIC0xLjc4OTA2MiAxLjY0ODQzOCAtMS43NSAxLjUzOTA2MiAtMS42NzE4NzUgMS40Mzc1IEMgLTEuNTk3NjU2IDEuMzM1OTM4IC0xLjQ4NDM3NSAxLjI4MTI1IC0xLjMyODEyNSAxLjI4MTI1IEMgLTEuMTk1MzEyIDEuMjgxMjUgLTEuMDg1OTM4IDEuMzI4MTI1IC0wLjk5MjE4OCAxLjQxNDA2MiBDIC0wLjkwMjM0NCAxLjUwMzkwNiAtMC44NTU0NjkgMS42MDkzNzUgLTAuODU1NDY5IDEuNzQyMTg4IEMgLTAuODU1NDY5IDEuODEyNSAtMC44NzUgMS44ODI4MTIgLTAuOTE3OTY5IDEuOTUzMTI1IEMgLTAuOTU3MDMxIDIuMDI3MzQ0IC0wLjk3NjU2MiAyLjA3ODEyNSAtMC45NzY1NjIgMi4xMDE1NjIgQyAtMC45NzY1NjIgMi4xMzY3MTkgLTAuOTU3MDMxIDIuMTY3OTY5IC0wLjkxMDE1NiAyLjE5MTQwNiBDIC0wLjg2NzE4OCAyLjIxNDg0NCAtMC44MDg1OTQgMi4yMjY1NjIgLTAuNzM4MjgxIDIuMjI2NTYyIEMgLTAuNDA2MjUgMi4yMjY1NjIgLTAuMTI1IDEuOTY0ODQ0IDAuMTA1NDY5IDEuNDQxNDA2IEMgMC4yMjY1NjIgMS4xNjc5NjkgMC4zMzU5MzggMC43ODkwNjIgMC40Mzc1IDAuMzEyNSBMIDEuNSAtNC43MTg3NSBMIDAuNDE0MDYyIC00LjcxODc1IEwgMC41IC01LjEwOTM3NSBMIDEuNjA1NDY5IC01LjEwOTM3NSBDIDEuODQzNzUgLTYuMDE5NTMxIDIuMTA5Mzc1IC02LjY5NTMxMiAyLjQwNjI1IC03LjEzMjgxMiBDIDIuODQ3NjU2IC03LjgwNDY4OCAzLjM5NDUzMSAtOC4xNDA2MjUgNC4wNDI5NjkgLTguMTQwNjI1IEMgNC4zMzk4NDQgLTguMTQwNjI1IDQuNTg1OTM4IC04LjA2MjUgNC43ODUxNTYgLTcuOTEwMTU2IEMgNC45ODA0NjkgLTcuNzU3ODEyIDUuMDc4MTI1IC03LjU4NTkzOCA1LjA3ODEyNSAtNy4zOTA2MjUgQyA1LjA3ODEyNSAtNy4yNjU2MjUgNS4wMzkwNjIgLTcuMTQ4NDM4IDQuOTUzMTI1IC03LjAzOTA2MiBaIE0gNC45NTMxMjUgLTcuMDM5MDYyICIvPgo8L3N5bWJvbD4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoMC0yIj4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iTSAwLjIxODc1IDAgTCAxLjIzMDQ2OSAtMy42MjEwOTQgQyAxLjMxNjQwNiAtMy45MjU3ODEgMS4zNjcxODggLTQuMTA5Mzc1IDEuMzc4OTA2IC00LjE3NTc4MSBDIDEuMzk0NTMxIC00LjIzODI4MSAxLjM5ODQzOCAtNC4zMDg1OTQgMS4zOTg0MzggLTQuMzgyODEyIEMgMS4zOTg0MzggLTQuNDk2MDk0IDEuMzY3MTg4IC00LjU4NTkzOCAxLjMwNDY4OCAtNC42NDg0MzggQyAxLjIzODI4MSAtNC43MTQ4NDQgMS4xMTMyODEgLTQuNzQ2MDk0IDAuOTI1NzgxIC00Ljc0NjA5NCBDIDAuODc4OTA2IC00Ljc0NjA5NCAwLjgzMjAzMSAtNC43NDIxODggMC43ODkwNjIgLTQuNzM4MjgxIEMgMC43NDIxODggLTQuNzMwNDY5IDAuNjk1MzEyIC00LjcyNjU2MiAwLjY0MDYyNSAtNC43MTg3NSBMIDAuNjQwNjI1IC00LjkxNDA2MiBDIDAuODk0NTMxIC00Ljk1MzEyNSAxLjA3NDIxOSAtNC45ODQzNzUgMS4xNzk2ODggLTUuMDAzOTA2IEMgMS4yODkwNjIgLTUuMDIzNDM4IDEuNDA2MjUgLTUuMDQ2ODc1IDEuNTMxMjUgLTUuMDc0MjE5IEwgMi41NzgxMjUgLTUuMzA0Njg4IEMgMi42MDE1NjIgLTUuMjg5MDYyIDIuNjE3MTg4IC01LjI2OTUzMSAyLjYyNSAtNS4yNSBMIDEuODQzNzUgLTIuNzMwNDY5IEMgMi4zMjAzMTIgLTMuNDYwOTM4IDIuNzE4NzUgLTQuMDAzOTA2IDMuMDM5MDYyIC00LjM1OTM3NSBDIDMuNjAxNTYyIC00Ljk4ODI4MSA0LjEwOTM3NSAtNS4zMDQ2ODggNC41NTQ2ODggLTUuMzA0Njg4IEMgNC43MjY1NjIgLTUuMzA0Njg4IDQuODc1IC01LjI2OTUzMSA1IC01LjIwMzEyNSBDIDUuMjM4MjgxIC01LjA3NDIxOSA1LjM1NTQ2OSAtNC44NDM3NSA1LjM1NTQ2OSAtNC41MDc4MTIgQyA1LjM1NTQ2OSAtNC40MTQwNjIgNS4zNDM3NSAtNC4zMTI1IDUuMzI4MTI1IC00LjIxMDkzOCBDIDUuMzA4NTk0IC00LjEwOTM3NSA1LjI4MTI1IC00IDUuMjUgLTMuODgyODEyIEwgNC40ODQzNzUgLTEuMDc4MTI1IEMgNC40Njg3NSAtMS4wMTk1MzEgNC40NDkyMTkgLTAuOTQ5MjE5IDQuNDI5Njg4IC0wLjg2MzI4MSBDIDQuNDEwMTU2IC0wLjc4MTI1IDQuMzk4NDM4IC0wLjcxODc1IDQuMzk4NDM4IC0wLjY4NzUgQyA0LjM5ODQzOCAtMC42Mjg5MDYgNC40MTQwNjIgLTAuNTc0MjE5IDQuNDQxNDA2IC0wLjUyNzM0NCBDIDQuNDY4NzUgLTAuNDgwNDY5IDQuNTE1NjI1IC0wLjQ1NzAzMSA0LjU3ODEyNSAtMC40NTcwMzEgQyA0LjY3OTY4OCAtMC40NTcwMzEgNC43OTY4NzUgLTAuNTE1NjI1IDQuOTI5Njg4IC0wLjYzNjcxOSBDIDUuMDYyNSAtMC43NTM5MDYgNS4yNzczNDQgLTEuMDA3ODEyIDUuNTc4MTI1IC0xLjM5ODQzOCBMIDUuNzUgLTEuMjUgQyA1LjQyOTY4OCAtMC44MTY0MDYgNS4xNzE4NzUgLTAuNTA3ODEyIDQuOTg0Mzc1IC0wLjMzNTkzOCBDIDQuNjY0MDYyIC0wLjAyNzM0MzggNC4zNTkzNzUgMC4xMjg5MDYgNC4wNjY0MDYgMC4xMjg5MDYgQyAzLjkzMzU5NCAwLjEyODkwNiAzLjgwNDY4OCAwLjA4NTkzNzUgMy42ODM1OTQgLTAuMDAzOTA2MjUgQyAzLjU1ODU5NCAtMC4wODk4NDM4IDMuNSAtMC4yNSAzLjUgLTAuNDgwNDY5IEMgMy41IC0wLjU0Njg3NSAzLjUwMzkwNiAtMC42MTcxODggMy41MTE3MTkgLTAuNjkxNDA2IEMgMy41MjM0MzggLTAuNzY1NjI1IDMuNTM1MTU2IC0wLjgyODEyNSAzLjU1MDc4MSAtMC44ODI4MTIgTCA0LjI4OTA2MiAtMy43MzQzNzUgQyA0LjMyODEyNSAtMy44OTA2MjUgNC4zNTU0NjkgLTQuMDE1NjI1IDQuMzY3MTg4IC00LjExNzE4OCBDIDQuMzgyODEyIC00LjIxNDg0NCA0LjM5MDYyNSAtNC4yODkwNjIgNC4zOTA2MjUgLTQuMzI4MTI1IEMgNC4zOTA2MjUgLTQuNDIxODc1IDQuMzY3MTg4IC00LjUwMzkwNiA0LjMyMDMxMiAtNC41NzQyMTkgQyA0LjI3NzM0NCAtNC42NDA2MjUgNC4xOTUzMTIgLTQuNjc1NzgxIDQuMDg1OTM4IC00LjY3NTc4MSBDIDMuNzkyOTY5IC00LjY3NTc4MSAzLjQyMTg3NSAtNC40MTAxNTYgMi45NzY1NjIgLTMuODc4OTA2IEMgMi43MTQ4NDQgLTMuNTYyNSAyLjQ0OTIxOSAtMy4xODc1IDIuMTc5Njg4IC0yLjc1IEMgMS45NzI2NTYgLTIuNDEwMTU2IDEuODA4NTk0IC0yLjA3ODEyNSAxLjY5MTQwNiAtMS43NTM5MDYgQyAxLjU3MDMxMiAtMS40MzM1OTQgMS4zODI4MTIgLTAuODQ3NjU2IDEuMTI1IDAgWiBNIDAuMjE4NzUgMCAiLz4KPC9zeW1ib2w+CjxzeW1ib2wgb3ZlcmZsb3c9InZpc2libGUiIGlkPSJnbHlwaDEtMCI+CjxwYXRoIHN0eWxlPSJzdHJva2U6bm9uZTsiIGQ9IiIvPgo8L3N5bWJvbD4KPHN5bWJvbCBvdmVyZmxvdz0idmlzaWJsZSIgaWQ9ImdseXBoMS0xIj4KPHBhdGggc3R5bGU9InN0cm9rZTpub25lOyIgZD0iTSA0LjE3MTg3NSAxMS41NzgxMjUgQyAzLjI5Mjk2OSAxMC44OTA2MjUgMi42NDg0MzggMTAuMDE5NTMxIDIuMjM4MjgxIDguOTY0ODQ0IEMgMS44MjgxMjUgNy45MTQwNjIgMS42MjEwOTQgNi43OTI5NjkgMS42MjEwOTQgNS42MDU0NjkgQyAxLjYyMTA5NCA0LjQwNjI1IDEuODI0MjE5IDMuMjgxMjUgMi4yMzgyODEgMi4yMjY1NjIgQyAyLjY0ODQzOCAxLjE3MTg3NSAzLjI5Mjk2OSAwLjMwNDY4OCA0LjE3MTg3NSAtMC4zODI4MTIgQyA0LjE3MTg3NSAtMC4zOTQ1MzEgNC4xOTE0MDYgLTAuNDAyMzQ0IDQuMjI2NTYyIC0wLjQwMjM0NCBMIDQuMzU1
gitextract_mgrstzv9/
├── .gitignore
├── Dockerfile
├── LICENSE.adoc
├── Makefile
├── README.adoc
├── _conf/
│ └── umlconfig.txt
├── _resources/
│ ├── epubstyles/
│ │ ├── epub3-css3-only.css
│ │ └── epub3.css
│ └── pdfstyles/
│ └── default-theme.yml
├── chapters/
│ ├── appendix.adoc
│ ├── bibliography.adoc
│ ├── chapter_01.adoc
│ ├── chapter_02.adoc
│ ├── colophon.adoc
│ ├── dedication.adoc
│ ├── epigraph.adoc
│ ├── glossary.adoc
│ ├── index.adoc
│ ├── preface.adoc
│ ├── qanda.adoc
│ └── shortcuts.adoc
├── code/
│ └── code.swift
├── data/
│ └── tracks.csv
├── master.adoc
└── samples/
├── book.1
├── book.epub
├── book.html
├── book.mobi
└── raw_book.html
Condensed preview — 29 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (701K chars).
[
{
"path": ".gitignore",
"chars": 93,
"preview": "?\n.DS_Store\n_build\n.asciidoctor\nchapters/images\nstem-*.png\nstem-*.svg\ndiag-*.png\ndiag-*.svg\n\n"
},
{
"path": "Dockerfile",
"chars": 995,
"preview": "# docker build -t \"ebook-template\" .\n# docker run -v ${PWD}:/workdir ebook-template\nFROM ubuntu:18.04\nMAINTAINER Adrian "
},
{
"path": "LICENSE.adoc",
"chars": 456,
"preview": "= License\n\nThis work is placed in the public domain. It belongs to mankind and to nobody\nin particular. Use it to write "
},
{
"path": "Makefile",
"chars": 2006,
"preview": "DIR = _build\nINPUT = master\nOUTPUT = book\nDIAGRAM = --require=asciidoctor-diagram\nMATH = --require=asciidoctor-mathemati"
},
{
"path": "README.adoc",
"chars": 5862,
"preview": "= Template for Writing an eBook\n\nThis is a new version of the classic template for eBooks. You can use this\ncode to kick"
},
{
"path": "_conf/umlconfig.txt",
"chars": 566,
"preview": "hide empty members\nskinparam defaultFontName Helvetica\nskinparam backgroundColor transparent\nskinparam monochrome true\ns"
},
{
"path": "_resources/epubstyles/epub3-css3-only.css",
"chars": 4506,
"preview": "/* Gitden & Namo default to 16px font-size; bump it to 20px (125%) */\nbody.gitden-reader,\nbody.namo-epub-library {\n fon"
},
{
"path": "_resources/epubstyles/epub3.css",
"chars": 28090,
"preview": "@import url(\"epub3-fonts.css\");\n\n*, *:before, *:after {\n box-sizing: border-box;\n}\n\n/* educate older readers about tags"
},
{
"path": "_resources/pdfstyles/default-theme.yml",
"chars": 8037,
"preview": "font:\n catalog:\n # Noto Serif supports Latin, Latin-1 Supplement, Latin Extended-A, Greek, Cyrillic, Vietnamese & an"
},
{
"path": "chapters/appendix.adoc",
"chars": 484,
"preview": "[appendix]\n= Copyright and License\n\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor\ninci"
},
{
"path": "chapters/bibliography.adoc",
"chars": 1268,
"preview": "[chapter]\n= Bibliography\n\n.Books\n\n[bibliography]\n- [[[flanagan]]] David Flanagan.\n http://oreilly.com/catalog/978059680"
},
{
"path": "chapters/chapter_01.adoc",
"chars": 1623,
"preview": "= The Book of the Thrills\n\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor\nincididunt ut"
},
{
"path": "chapters/chapter_02.adoc",
"chars": 2719,
"preview": "[[chapter-2]]\n= More About Jane\n\nChapter two has just begun.\n\nLorem ipsum dolor sit amet, consectetur adipisicing elit, "
},
{
"path": "chapters/colophon.adoc",
"chars": 440,
"preview": "[colophon]\n= Colophon\n\nThe Asciidoctor Press, Ceres and Denver\n\n(C) 2013 by The Asciidoctor Press\n\nPublished in the Milk"
},
{
"path": "chapters/dedication.adoc",
"chars": 82,
"preview": "[dedication]\n= Dedication\n\nFor S.S.T.--\n\nthank you for the plague of archetypes.\n\n"
},
{
"path": "chapters/epigraph.adoc",
"chars": 45,
"preview": "[epigraph]\n= Epigraph\n\nThanks for reading!\n\n\n"
},
{
"path": "chapters/glossary.adoc",
"chars": 94,
"preview": "[glossary]\n= Glossary\n\n[glossary]\nmud:: wet, cold dirt\nrain::\n water falling from the sky\n\n"
},
{
"path": "chapters/index.adoc",
"chars": 17,
"preview": "[index]\n= Index\n\n"
},
{
"path": "chapters/preface.adoc",
"chars": 469,
"preview": "[preface]\n= Preface\n\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor\nincididunt ut labor"
},
{
"path": "chapters/qanda.adoc",
"chars": 560,
"preview": "[chapter]\n= Questions And Answers\n\n[qanda]\nWhat is Asciidoctor?::\n An implementation of the AsciiDoc processor in Ruby."
},
{
"path": "chapters/shortcuts.adoc",
"chars": 190,
"preview": "[appendix]\n= Shortcuts\n\n|===\n|Shortcut |Purpose\n\n|kbd:[F11]\n|Toggle fullscreen\n\n|kbd:[Ctrl+T]\n|Open a new tab\n\n|kbd:[Cmd"
},
{
"path": "code/code.swift",
"chars": 109,
"preview": "class Boom {\n\n\t// tag::contains[]\n\tfunc test() -> String { // <1>\n\t\treturn \"Yeah\"\n\t}\n\t// end::contains[]\n\n}\n\n"
},
{
"path": "data/tracks.csv",
"chars": 78,
"preview": "Artist,Track,Genre\nBaauer,Harlem Shake,Hip Hop\nThe Lumineers,Ho Hey,Folk Rock\n"
},
{
"path": "master.adoc",
"chars": 3176,
"preview": ":author: Adrian Kosmaczewski\n:revdate: {docdate}\n:revnumber: 1.0\n:email: email@server.com\n:copyright: CC-BY-SA 3.0\n:doc"
},
{
"path": "samples/book.1",
"chars": 10953,
"preview": "'\\\" t\n.\\\" Title: The Quest Of Life: A journey through sea and land\n.\\\" Author: Adrian Kosmaczewski\n.\\\" Generator:"
},
{
"path": "samples/book.html",
"chars": 327767,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<!--[if IE]><meta http-equiv=\"X-UA-Compatible\" content=\"I"
},
{
"path": "samples/raw_book.html",
"chars": 292004,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<!--[if IE]><meta http-equiv=\"X-UA-Compatible\" content=\"I"
}
]
// ... and 2 more files (download for full content)
About this extraction
This page contains the full source code of the akosma/eBook-Template GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 29 files (676.5 KB), approximately 406.1k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.