diff --git a/book/Makefile b/book/Makefile
index 26e99b2..4f8796b 100644
--- a/book/Makefile
+++ b/book/Makefile
@@ -6,6 +6,9 @@ help: ## This help.
.PHONY: final
final: reset toc ## full document of the book for final print
+.PHONY: single
+single: reset plain ## full document run once, ensuring everything's reset
+
.PHONY: proof
proof: engage-letter engage-frame engage-draft toc reset ## full proof document of the book with frames and watermark
diff --git a/book/assets/static/ArapahoeRidgePark.jpg b/book/assets/static/ArapahoeRidgePark.jpg
new file mode 100644
index 0000000..e4f9b50
Binary files /dev/null and b/book/assets/static/ArapahoeRidgePark.jpg differ
diff --git a/book/assets/static/bird/1.jpg b/book/assets/static/bird/1.jpg
new file mode 100644
index 0000000..780b719
Binary files /dev/null and b/book/assets/static/bird/1.jpg differ
diff --git a/book/assets/static/bird/2.jpg b/book/assets/static/bird/2.jpg
new file mode 100644
index 0000000..4940413
Binary files /dev/null and b/book/assets/static/bird/2.jpg differ
diff --git a/book/assets/static/bird/3.jpg b/book/assets/static/bird/3.jpg
new file mode 100644
index 0000000..f5fd433
Binary files /dev/null and b/book/assets/static/bird/3.jpg differ
diff --git a/book/assets/static/bird/4.jpg b/book/assets/static/bird/4.jpg
new file mode 100644
index 0000000..3c8835c
Binary files /dev/null and b/book/assets/static/bird/4.jpg differ
diff --git a/book/assets/static/bird/5.jpg b/book/assets/static/bird/5.jpg
new file mode 100644
index 0000000..2c06640
Binary files /dev/null and b/book/assets/static/bird/5.jpg differ
diff --git a/book/assets/static/bird/6.jpg b/book/assets/static/bird/6.jpg
new file mode 100644
index 0000000..c8df714
Binary files /dev/null and b/book/assets/static/bird/6.jpg differ
diff --git a/book/assets/static/bird/geese.jpg b/book/assets/static/bird/geese.jpg
new file mode 100644
index 0000000..4f019ae
Binary files /dev/null and b/book/assets/static/bird/geese.jpg differ
diff --git a/book/assets/static/color/blue_flag.jpg b/book/assets/static/color/blue_flag.jpg
new file mode 100644
index 0000000..e81bd18
Binary files /dev/null and b/book/assets/static/color/blue_flag.jpg differ
diff --git a/book/assets/static/color/blue_flag.pdf b/book/assets/static/color/blue_flag.pdf
new file mode 100644
index 0000000..2936701
Binary files /dev/null and b/book/assets/static/color/blue_flag.pdf differ
diff --git a/book/assets/static/color/bw1.jpg b/book/assets/static/color/bw1.jpg
new file mode 100644
index 0000000..dcbb194
Binary files /dev/null and b/book/assets/static/color/bw1.jpg differ
diff --git a/book/assets/static/color/bw1.pdf b/book/assets/static/color/bw1.pdf
new file mode 100644
index 0000000..e44510f
Binary files /dev/null and b/book/assets/static/color/bw1.pdf differ
diff --git a/book/assets/static/color/bw2.jpg b/book/assets/static/color/bw2.jpg
new file mode 100644
index 0000000..7bc5a7c
Binary files /dev/null and b/book/assets/static/color/bw2.jpg differ
diff --git a/book/assets/static/color/bw2.pdf b/book/assets/static/color/bw2.pdf
new file mode 100644
index 0000000..59ffc7a
Binary files /dev/null and b/book/assets/static/color/bw2.pdf differ
diff --git a/book/assets/static/color/bw3.jpg b/book/assets/static/color/bw3.jpg
new file mode 100644
index 0000000..15d1aee
Binary files /dev/null and b/book/assets/static/color/bw3.jpg differ
diff --git a/book/assets/static/color/bw3.pdf b/book/assets/static/color/bw3.pdf
new file mode 100644
index 0000000..ca0ec1a
Binary files /dev/null and b/book/assets/static/color/bw3.pdf differ
diff --git a/book/assets/static/color/green_door.jpg b/book/assets/static/color/green_door.jpg
new file mode 100644
index 0000000..9d2845b
Binary files /dev/null and b/book/assets/static/color/green_door.jpg differ
diff --git a/book/assets/static/color/green_door.pdf b/book/assets/static/color/green_door.pdf
new file mode 100644
index 0000000..9754b57
Binary files /dev/null and b/book/assets/static/color/green_door.pdf differ
diff --git a/book/assets/static/color/orange_eyes.jpg b/book/assets/static/color/orange_eyes.jpg
new file mode 100644
index 0000000..8b7f695
Binary files /dev/null and b/book/assets/static/color/orange_eyes.jpg differ
diff --git a/book/assets/static/color/orange_eyes.pdf b/book/assets/static/color/orange_eyes.pdf
new file mode 100644
index 0000000..d7e20ea
Binary files /dev/null and b/book/assets/static/color/orange_eyes.pdf differ
diff --git a/book/assets/static/color/window_view.pdf b/book/assets/static/color/window_view.pdf
new file mode 100644
index 0000000..3bac1e6
Binary files /dev/null and b/book/assets/static/color/window_view.pdf differ
diff --git a/book/assets/static/color/window_view.png b/book/assets/static/color/window_view.png
new file mode 100644
index 0000000..3d95436
Binary files /dev/null and b/book/assets/static/color/window_view.png differ
diff --git a/book/assets/static/confusion.mp3 b/book/assets/static/confusion.mp3
new file mode 100644
index 0000000..b752004
Binary files /dev/null and b/book/assets/static/confusion.mp3 differ
diff --git a/book/assets/static/dreams/1.png b/book/assets/static/dreams/1.png
new file mode 100644
index 0000000..29a29a9
Binary files /dev/null and b/book/assets/static/dreams/1.png differ
diff --git a/book/assets/static/dreams/2.png b/book/assets/static/dreams/2.png
new file mode 100644
index 0000000..ba63a43
Binary files /dev/null and b/book/assets/static/dreams/2.png differ
diff --git a/book/assets/static/dreams/3.png b/book/assets/static/dreams/3.png
new file mode 100644
index 0000000..8864c53
Binary files /dev/null and b/book/assets/static/dreams/3.png differ
diff --git a/book/assets/static/emb-menu.pdf b/book/assets/static/emb-menu.pdf
new file mode 100644
index 0000000..ca919aa
Binary files /dev/null and b/book/assets/static/emb-menu.pdf differ
diff --git a/book/assets/static/fursonas/ephah.gif b/book/assets/static/fursonas/ephah.gif
new file mode 100644
index 0000000..53712a5
Binary files /dev/null and b/book/assets/static/fursonas/ephah.gif differ
diff --git a/book/assets/static/fursonas/happenstance.gif b/book/assets/static/fursonas/happenstance.gif
new file mode 100644
index 0000000..c92c509
Binary files /dev/null and b/book/assets/static/fursonas/happenstance.gif differ
diff --git a/book/assets/static/fursonas/macchi.gif b/book/assets/static/fursonas/macchi.gif
new file mode 100644
index 0000000..b63d33e
Binary files /dev/null and b/book/assets/static/fursonas/macchi.gif differ
diff --git a/book/assets/static/fursonas/maddy.gif b/book/assets/static/fursonas/maddy.gif
new file mode 100644
index 0000000..cbfb73f
Binary files /dev/null and b/book/assets/static/fursonas/maddy.gif differ
diff --git a/book/assets/static/fursonas/makyo.gif b/book/assets/static/fursonas/makyo.gif
new file mode 100644
index 0000000..a9b71ce
Binary files /dev/null and b/book/assets/static/fursonas/makyo.gif differ
diff --git a/book/assets/static/fursonas/ranna.gif b/book/assets/static/fursonas/ranna.gif
new file mode 100644
index 0000000..31323af
Binary files /dev/null and b/book/assets/static/fursonas/ranna.gif differ
diff --git a/book/assets/static/fursonas/younes.gif b/book/assets/static/fursonas/younes.gif
new file mode 100644
index 0000000..7b40bec
Binary files /dev/null and b/book/assets/static/fursonas/younes.gif differ
diff --git a/book/assets/static/grey--running-away-big--makyo.jpg b/book/assets/static/grey--running-away-big--makyo.jpg
new file mode 100644
index 0000000..2103120
Binary files /dev/null and b/book/assets/static/grey--running-away-big--makyo.jpg differ
diff --git a/book/assets/static/grey--running-away-big--makyo.pdf b/book/assets/static/grey--running-away-big--makyo.pdf
new file mode 100644
index 0000000..33371c0
Binary files /dev/null and b/book/assets/static/grey--running-away-big--makyo.pdf differ
diff --git a/book/assets/static/growth.jpg b/book/assets/static/growth.jpg
new file mode 100644
index 0000000..2f8e2bf
Binary files /dev/null and b/book/assets/static/growth.jpg differ
diff --git a/book/assets/static/healthy-sound.png b/book/assets/static/healthy-sound.png
new file mode 100644
index 0000000..0499e2d
Binary files /dev/null and b/book/assets/static/healthy-sound.png differ
diff --git a/book/assets/static/healthy-sound.svg b/book/assets/static/healthy-sound.svg
new file mode 100644
index 0000000..a36bf20
--- /dev/null
+++ b/book/assets/static/healthy-sound.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/book/assets/static/js/marked-0.3.6/marked.min.js b/book/assets/static/js/marked-0.3.6/marked.min.js
new file mode 100644
index 0000000..555c1dc
--- /dev/null
+++ b/book/assets/static/js/marked-0.3.6/marked.min.js
@@ -0,0 +1,6 @@
+/**
+ * marked - a markdown parser
+ * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed)
+ * https://github.com/chjj/marked
+ */
+(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")();block.blockquote=replace(block.blockquote)("def",block.def)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";block.html=replace(block.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/ "+text+"
"}return'"+(escaped?code:escape(code,true))+"\n
\n"};Renderer.prototype.blockquote=function(quote){return"'+(escaped?code:escape(code,true))+"\n\n"+quote+"
\n"};Renderer.prototype.html=function(html){return html};Renderer.prototype.heading=function(text,level,raw){return"
\n":"
\n"};Renderer.prototype.list=function(body,ordered){var type=ordered?"ol":"ul";return"<"+type+">\n"+body+""+type+">\n"};Renderer.prototype.listitem=function(text){return"\n"+"\n"+header+"\n"+"\n"+body+"\n"+"
\n"};Renderer.prototype.tablerow=function(content){return"\n"+content+" \n"};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?"th":"td";var tag=flags.align?"<"+type+' style="text-align:'+flags.align+'">':"<"+type+">";return tag+content+""+type+">\n"};Renderer.prototype.strong=function(text){return""+text+""};Renderer.prototype.em=function(text){return""+text+""};Renderer.prototype.codespan=function(text){return""+text+""};Renderer.prototype.br=function(){return this.options.xhtml?"
":"
"};Renderer.prototype.del=function(text){return""+text+""};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(prot.indexOf("javascript:")===0||prot.indexOf("vbscript:")===0){return""}}var out='"+text+"";return out};Renderer.prototype.image=function(href,title,text){var out='":">";return out};Renderer.prototype.text=function(text){return text};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options}Parser.parse=function(src,options,renderer){var parser=new Parser(options,renderer);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options,this.renderer);this.tokens=src.reverse();var out="";while(this.next()){out+=this.tok()}return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;while(this.peek().type==="text"){body+="\n"+this.next().text}return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case"space":{return""}case"hr":{return this.renderer.hr()}case"heading":{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text)}case"code":{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped)}case"table":{var header="",body="",i,row,cell,flags,j;cell="";for(i=0;i
"+escape(e.message+"",true)+""}throw e}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,sanitizer:null,mangle:true,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof module!=="undefined"&&typeof exports==="object"){module.exports=marked}else if(typeof define==="function"&&define.amd){define(function(){return marked})}else{this.marked=marked}}).call(function(){return this||(typeof window!=="undefined"?window:global)}()); \ No newline at end of file diff --git a/book/assets/static/js/sjcl-1.0.6/sjcl.js b/book/assets/static/js/sjcl-1.0.6/sjcl.js new file mode 100644 index 0000000..55107ad --- /dev/null +++ b/book/assets/static/js/sjcl-1.0.6/sjcl.js @@ -0,0 +1,60 @@ +"use strict";var sjcl={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(a){this.toString=function(){return"CORRUPT: "+this.message};this.message=a},invalid:function(a){this.toString=function(){return"INVALID: "+this.message};this.message=a},bug:function(a){this.toString=function(){return"BUG: "+this.message};this.message=a},notReady:function(a){this.toString=function(){return"NOT READY: "+this.message};this.message=a}}}; +sjcl.cipher.aes=function(a){this.s[0][0][0]||this.O();var b,c,d,e,f=this.s[0][4],g=this.s[1];b=a.length;var h=1;if(4!==b&&6!==b&&8!==b)throw new sjcl.exception.invalid("invalid aes key size");this.b=[d=a.slice(0),e=[]];for(a=b;a<4*b+28;a++){c=d[a-1];if(0===a%b||8===b&&4===a%b)c=f[c>>>24]<<24^f[c>>16&255]<<16^f[c>>8&255]<<8^f[c&255],0===a%b&&(c=c<<8^c>>>24^h<<24,h=h<<1^283*(h>>7));d[a]=d[a-b]^c}for(b=0;a;b++,a--)c=d[b&3?a:a-4],e[b]=4>=a||4>b?c:g[0][f[c>>>24]]^g[1][f[c>>16&255]]^g[2][f[c>>8&255]]^g[3][f[c& +255]]}; +sjcl.cipher.aes.prototype={encrypt:function(a){return t(this,a,0)},decrypt:function(a){return t(this,a,1)},s:[[[],[],[],[],[]],[[],[],[],[],[]]],O:function(){var a=this.s[0],b=this.s[1],c=a[4],d=b[4],e,f,g,h=[],k=[],l,n,m,p;for(e=0;0x100>e;e++)k[(h[e]=e<<1^283*(e>>7))^e]=e;for(f=g=0;!c[f];f^=l||1,g=k[g]||1)for(m=g^g<<1^g<<2^g<<3^g<<4,m=m>>8^m&255^99,c[f]=m,d[m]=f,n=h[e=h[l=h[f]]],p=0x1010101*n^0x10001*e^0x101*l^0x1010100*f,n=0x101*h[m]^0x1010100*m,e=0;4>e;e++)a[e][f]=n=n<<24^n>>>8,b[e][m]=p=p<<24^p>>>8;for(e= +0;5>e;e++)a[e]=a[e].slice(0),b[e]=b[e].slice(0)}}; +function t(a,b,c){if(4!==b.length)throw new sjcl.exception.invalid("invalid aes block size");var d=a.b[c],e=b[0]^d[0],f=b[c?3:1]^d[1],g=b[2]^d[2];b=b[c?1:3]^d[3];var h,k,l,n=d.length/4-2,m,p=4,r=[0,0,0,0];h=a.s[c];a=h[0];var q=h[1],v=h[2],w=h[3],x=h[4];for(m=0;m