From ebd075af08ab022123b6b8cd0b9c56e96401a8be Mon Sep 17 00:00:00 2001 From: Mathieu David Date: Tue, 28 Jun 2016 16:38:12 +0200 Subject: [PATCH 01/46] Add structs holding metadata for the books --- src/book/metadata.rs | 71 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/book/metadata.rs diff --git a/src/book/metadata.rs b/src/book/metadata.rs new file mode 100644 index 0000000000..0be79be73d --- /dev/null +++ b/src/book/metadata.rs @@ -0,0 +1,71 @@ +#[derive(Debug, Clone)] +pub struct BookMetadata { + pub title: String, + pub description: String, + + pub language: Language, + + authors: Vec, + translators: Vec, +} + +#[derive(Debug, Clone)] +pub struct Author { + name: String, + email: Option, +} + +#[derive(Debug, Clone)] +pub struct Language { + name: String, + code: String, +} + + +impl BookMetadata { + pub fn new(title: &str) -> Self { + BookMetadata { + title: title.to_owned(), + description: String::new(), + + language: Language::default(), + + authors: Vec::new(), + translators: Vec::new(), + } + } + + pub fn set_description(&mut self, description: &str) -> &mut Self { + self.description = description.to_owned(); + self + } + + pub fn add_author(&mut self, author: Author) -> &mut Self { + self.authors.push(author); + self + } +} + +impl Author { + pub fn new(name: &str) -> Self { + Author { + name: name.to_owned(), + email: None, + } + } + + pub fn with_email(mut self, email: &str) -> Self { + self.email = Some(email.to_owned()); + self + } +} + + +impl Default for Language { + fn default() -> Self { + Language { + name: String::from("English"), + code: String::from("en"), + } + } +} From e5848580ae476cf1a3aa2401a376f17e1d60de5b Mon Sep 17 00:00:00 2001 From: Mathieu David Date: Tue, 28 Jun 2016 17:02:49 +0200 Subject: [PATCH 02/46] Add a new Chapter struct for the new Book struct --- src/book/chapter.rs | 52 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/book/chapter.rs diff --git a/src/book/chapter.rs b/src/book/chapter.rs new file mode 100644 index 0000000000..bd37ccac05 --- /dev/null +++ b/src/book/chapter.rs @@ -0,0 +1,52 @@ +use book::metadata::BookMetadata; + +use std::path; + +/// The Chapter struct holds the title of the chapter as written in the SUMMARY.md file, +/// the location of the markdown file containing the content and eventually sub-chapters +pub struct Chapter { + title: String, + file: path::PathBuf, + + sub_chapters: Vec, +} + + +impl Chapter { + /// Creates a new chapter with the given title and source file and no sub-chapters + pub fn new(title: &str, file: &path::Path) -> Self { + Chapter { + title: title.to_owned(), + file: file.to_owned(), + + sub_chapters: Vec::new(), + } + } + + /// This function takes a slice `&[x,y,z]` and returns the corresponding sub-chapter if it exists. + /// + /// For example: `chapter.get_sub_chapter(&[1,3])` will return the third sub-chapter of the first sub-chapter. + pub fn get_sub_chapter(&self, section: &[usize]) -> Option<&Chapter> { + match section.len() { + 0 => None, + 1 => self.sub_chapters.get(section[0]), + _ => { + // The lengt of the slice is more than one, this means that we want a sub-chapter of a sub-chapter + // We call `get_sub_chapter` recursively until we are deep enough and return the asked sub-chapter + self.sub_chapters + .get(section[0]) + .and_then(|ch| ch.get_sub_chapter(§ion[1..])) + }, + } + } + + pub fn title(&self) -> &str { + &self.title + } + pub fn file(&self) -> &path::Path { + &self.file + } + pub fn sub_chapters(&self) -> &[Chapter] { + &self.sub_chapters + } +} From c69161cef88baaf33fa0b20c4c855202cbb54ef8 Mon Sep 17 00:00:00 2001 From: Mathieu David Date: Tue, 28 Jun 2016 18:59:13 +0200 Subject: [PATCH 03/46] Add the new book struct --- src/book/book.rs | 77 +++++++++++++++++++++++++++++++++++++++++++++ src/book/chapter.rs | 2 -- src/book/mod.rs | 7 +++++ 3 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 src/book/book.rs diff --git a/src/book/book.rs b/src/book/book.rs new file mode 100644 index 0000000000..c5e46de8b4 --- /dev/null +++ b/src/book/book.rs @@ -0,0 +1,77 @@ +use book::metadata::BookMetadata; +use book::chapter::Chapter; + + +/// The `Book` struct contains the metadata and chapters for one language of the book. +/// Multiple `Book` structs are combined in the `MDBook` struct to support multi-language books. +pub struct Book { + metadata: BookMetadata, + + preface: Vec, + chapters: Vec, + appendix: Vec, +} + +impl Book { + /// Creates a new book with the given title, chapters are added with the `add_chapter` method + pub fn new(title: &str) -> Self { + Book { + metadata: BookMetadata::new(title), + + preface: Vec::new(), + chapters: Vec::new(), + appendix: Vec::new(), + } + } + + /// Adds a new chapter at the end of the book + pub fn add_chapter(&mut self, chapter: Chapter) -> &mut Self { + self.chapters.push(chapter); + self + } + + /// Adds a new preface chapter to the book, the preface chapters are in the order they were added + pub fn add_preface_chapter(&mut self, chapter: Chapter) -> &mut Self { + self.preface.push(chapter); + self + } + + /// Adds a new appendix chapter to the book, they are in de order they are added + pub fn add_appendix_chapter(&mut self, chapter: Chapter) -> &mut Self { + self.appendix.push(chapter); + self + } + + + /// This method takes a slice `&[x, y, z]` as parameter and returns the corresponding chapter. + /// For example, to retrieve chapter 2.3 we would use: + /// ``` + /// #extern crate mdbook; + /// #use mdbook::book::Book; + /// #fn main() { + /// #let book = Book::new("Test"); + /// let chapter_2_3 = book.get_chapter(&[2, 3]); + /// #} + /// ``` + pub fn get_chapter(&self, section: &[usize]) -> Option<&Chapter> { + match section.len() { + 0 => None, + 1 => self.chapters.get(section[0]), + _ => { + self.chapters + .get(section[0]) + .and_then(|ch| ch.get_sub_chapter(§ion[1..])) + }, + } + } + + /// Returns a mutable reference to the metadata for modification + pub fn mut_metadata(&mut self) -> &mut BookMetadata { + &mut self.metadata + } + + // Returns a reference to the metadata + pub fn metadata(&self) -> &BookMetadata { + &self.metadata + } +} diff --git a/src/book/chapter.rs b/src/book/chapter.rs index bd37ccac05..23244cb577 100644 --- a/src/book/chapter.rs +++ b/src/book/chapter.rs @@ -1,5 +1,3 @@ -use book::metadata::BookMetadata; - use std::path; /// The Chapter struct holds the title of the chapter as written in the SUMMARY.md file, diff --git a/src/book/mod.rs b/src/book/mod.rs index 4e64092cd0..4ce695a136 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -1,5 +1,12 @@ pub mod bookitem; pub mod bookconfig; +pub mod metadata; +pub mod chapter; +pub mod book; + +pub use self::metadata::{Author, Language, BookMetadata}; +pub use self::chapter::Chapter; +pub use self::book::Book; pub use self::bookitem::{BookItem, BookItems}; pub use self::bookconfig::BookConfig; From d664618e9f307a401275144f3f07a0d4e03426a7 Mon Sep 17 00:00:00 2001 From: Mathieu David Date: Tue, 28 Jun 2016 19:36:06 +0200 Subject: [PATCH 04/46] Derive Clone and Debug for Chapter and Book --- src/book/book.rs | 1 + src/book/chapter.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/book/book.rs b/src/book/book.rs index c5e46de8b4..18572545ff 100644 --- a/src/book/book.rs +++ b/src/book/book.rs @@ -4,6 +4,7 @@ use book::chapter::Chapter; /// The `Book` struct contains the metadata and chapters for one language of the book. /// Multiple `Book` structs are combined in the `MDBook` struct to support multi-language books. +#[derive(Debug, Clone)] pub struct Book { metadata: BookMetadata, diff --git a/src/book/chapter.rs b/src/book/chapter.rs index 23244cb577..db8ce3ea5d 100644 --- a/src/book/chapter.rs +++ b/src/book/chapter.rs @@ -2,6 +2,7 @@ use std::path; /// The Chapter struct holds the title of the chapter as written in the SUMMARY.md file, /// the location of the markdown file containing the content and eventually sub-chapters +#[derive(Debug, Clone)] pub struct Chapter { title: String, file: path::PathBuf, From 3e0dca5ff63fbb8a338b61be283e1f8db3a3777d Mon Sep 17 00:00:00 2001 From: Mathieu David Date: Tue, 28 Jun 2016 22:54:26 +0200 Subject: [PATCH 05/46] Include the new Book struct in a hashmap alongside the old representation --- src/book/mod.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/book/mod.rs b/src/book/mod.rs index 4ce695a136..c6c8612998 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -18,12 +18,13 @@ use std::io; use std::io::Write; use std::io::ErrorKind; use std::process::Command; +use std::collections::HashMap; use {theme, parse, utils}; use renderer::{Renderer, HtmlHandlebars}; -pub struct MDBook { +pub struct MDBook<'a> { root: PathBuf, dest: PathBuf, src: PathBuf, @@ -33,12 +34,13 @@ pub struct MDBook { pub description: String, pub content: Vec, + books: HashMap<&'a str, Book>, renderer: Box, livereload: Option, } -impl MDBook { +impl<'a> MDBook<'a> { /// Create a new `MDBook` struct with root directory `root` /// /// - The default source directory is set to `root/src` @@ -62,6 +64,7 @@ impl MDBook { description: String::new(), content: vec![], + books: HashMap::new(), renderer: Box::new(HtmlHandlebars::new()), livereload: None, From 7862dc02853ddc1708b582eca609c096331c4783 Mon Sep 17 00:00:00 2001 From: Mathieu David Date: Tue, 28 Jun 2016 16:38:12 +0200 Subject: [PATCH 06/46] Add structs holding metadata for the books --- src/book/metadata.rs | 71 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/book/metadata.rs diff --git a/src/book/metadata.rs b/src/book/metadata.rs new file mode 100644 index 0000000000..0be79be73d --- /dev/null +++ b/src/book/metadata.rs @@ -0,0 +1,71 @@ +#[derive(Debug, Clone)] +pub struct BookMetadata { + pub title: String, + pub description: String, + + pub language: Language, + + authors: Vec, + translators: Vec, +} + +#[derive(Debug, Clone)] +pub struct Author { + name: String, + email: Option, +} + +#[derive(Debug, Clone)] +pub struct Language { + name: String, + code: String, +} + + +impl BookMetadata { + pub fn new(title: &str) -> Self { + BookMetadata { + title: title.to_owned(), + description: String::new(), + + language: Language::default(), + + authors: Vec::new(), + translators: Vec::new(), + } + } + + pub fn set_description(&mut self, description: &str) -> &mut Self { + self.description = description.to_owned(); + self + } + + pub fn add_author(&mut self, author: Author) -> &mut Self { + self.authors.push(author); + self + } +} + +impl Author { + pub fn new(name: &str) -> Self { + Author { + name: name.to_owned(), + email: None, + } + } + + pub fn with_email(mut self, email: &str) -> Self { + self.email = Some(email.to_owned()); + self + } +} + + +impl Default for Language { + fn default() -> Self { + Language { + name: String::from("English"), + code: String::from("en"), + } + } +} From 9f99ba29090f2868e705b937aa572b2696176838 Mon Sep 17 00:00:00 2001 From: Mathieu David Date: Tue, 28 Jun 2016 17:02:49 +0200 Subject: [PATCH 07/46] Add a new Chapter struct for the new Book struct --- src/book/chapter.rs | 52 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/book/chapter.rs diff --git a/src/book/chapter.rs b/src/book/chapter.rs new file mode 100644 index 0000000000..bd37ccac05 --- /dev/null +++ b/src/book/chapter.rs @@ -0,0 +1,52 @@ +use book::metadata::BookMetadata; + +use std::path; + +/// The Chapter struct holds the title of the chapter as written in the SUMMARY.md file, +/// the location of the markdown file containing the content and eventually sub-chapters +pub struct Chapter { + title: String, + file: path::PathBuf, + + sub_chapters: Vec, +} + + +impl Chapter { + /// Creates a new chapter with the given title and source file and no sub-chapters + pub fn new(title: &str, file: &path::Path) -> Self { + Chapter { + title: title.to_owned(), + file: file.to_owned(), + + sub_chapters: Vec::new(), + } + } + + /// This function takes a slice `&[x,y,z]` and returns the corresponding sub-chapter if it exists. + /// + /// For example: `chapter.get_sub_chapter(&[1,3])` will return the third sub-chapter of the first sub-chapter. + pub fn get_sub_chapter(&self, section: &[usize]) -> Option<&Chapter> { + match section.len() { + 0 => None, + 1 => self.sub_chapters.get(section[0]), + _ => { + // The lengt of the slice is more than one, this means that we want a sub-chapter of a sub-chapter + // We call `get_sub_chapter` recursively until we are deep enough and return the asked sub-chapter + self.sub_chapters + .get(section[0]) + .and_then(|ch| ch.get_sub_chapter(§ion[1..])) + }, + } + } + + pub fn title(&self) -> &str { + &self.title + } + pub fn file(&self) -> &path::Path { + &self.file + } + pub fn sub_chapters(&self) -> &[Chapter] { + &self.sub_chapters + } +} From 42909cf0124b5b536d9af842e3166b800e0a7957 Mon Sep 17 00:00:00 2001 From: Mathieu David Date: Tue, 28 Jun 2016 18:59:13 +0200 Subject: [PATCH 08/46] Add the new book struct --- src/book/book.rs | 77 +++++++++++++++++++++++++++++++++++++++++++++ src/book/chapter.rs | 2 -- src/book/mod.rs | 7 +++++ 3 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 src/book/book.rs diff --git a/src/book/book.rs b/src/book/book.rs new file mode 100644 index 0000000000..c5e46de8b4 --- /dev/null +++ b/src/book/book.rs @@ -0,0 +1,77 @@ +use book::metadata::BookMetadata; +use book::chapter::Chapter; + + +/// The `Book` struct contains the metadata and chapters for one language of the book. +/// Multiple `Book` structs are combined in the `MDBook` struct to support multi-language books. +pub struct Book { + metadata: BookMetadata, + + preface: Vec, + chapters: Vec, + appendix: Vec, +} + +impl Book { + /// Creates a new book with the given title, chapters are added with the `add_chapter` method + pub fn new(title: &str) -> Self { + Book { + metadata: BookMetadata::new(title), + + preface: Vec::new(), + chapters: Vec::new(), + appendix: Vec::new(), + } + } + + /// Adds a new chapter at the end of the book + pub fn add_chapter(&mut self, chapter: Chapter) -> &mut Self { + self.chapters.push(chapter); + self + } + + /// Adds a new preface chapter to the book, the preface chapters are in the order they were added + pub fn add_preface_chapter(&mut self, chapter: Chapter) -> &mut Self { + self.preface.push(chapter); + self + } + + /// Adds a new appendix chapter to the book, they are in de order they are added + pub fn add_appendix_chapter(&mut self, chapter: Chapter) -> &mut Self { + self.appendix.push(chapter); + self + } + + + /// This method takes a slice `&[x, y, z]` as parameter and returns the corresponding chapter. + /// For example, to retrieve chapter 2.3 we would use: + /// ``` + /// #extern crate mdbook; + /// #use mdbook::book::Book; + /// #fn main() { + /// #let book = Book::new("Test"); + /// let chapter_2_3 = book.get_chapter(&[2, 3]); + /// #} + /// ``` + pub fn get_chapter(&self, section: &[usize]) -> Option<&Chapter> { + match section.len() { + 0 => None, + 1 => self.chapters.get(section[0]), + _ => { + self.chapters + .get(section[0]) + .and_then(|ch| ch.get_sub_chapter(§ion[1..])) + }, + } + } + + /// Returns a mutable reference to the metadata for modification + pub fn mut_metadata(&mut self) -> &mut BookMetadata { + &mut self.metadata + } + + // Returns a reference to the metadata + pub fn metadata(&self) -> &BookMetadata { + &self.metadata + } +} diff --git a/src/book/chapter.rs b/src/book/chapter.rs index bd37ccac05..23244cb577 100644 --- a/src/book/chapter.rs +++ b/src/book/chapter.rs @@ -1,5 +1,3 @@ -use book::metadata::BookMetadata; - use std::path; /// The Chapter struct holds the title of the chapter as written in the SUMMARY.md file, diff --git a/src/book/mod.rs b/src/book/mod.rs index c35943009e..cf9147f01e 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -1,5 +1,12 @@ pub mod bookitem; pub mod bookconfig; +pub mod metadata; +pub mod chapter; +pub mod book; + +pub use self::metadata::{Author, Language, BookMetadata}; +pub use self::chapter::Chapter; +pub use self::book::Book; pub use self::bookitem::{BookItem, BookItems}; pub use self::bookconfig::BookConfig; From 99e808289137ac482bac04ab692a11d8dd479a48 Mon Sep 17 00:00:00 2001 From: Mathieu David Date: Tue, 28 Jun 2016 19:36:06 +0200 Subject: [PATCH 09/46] Derive Clone and Debug for Chapter and Book --- src/book/book.rs | 1 + src/book/chapter.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/book/book.rs b/src/book/book.rs index c5e46de8b4..18572545ff 100644 --- a/src/book/book.rs +++ b/src/book/book.rs @@ -4,6 +4,7 @@ use book::chapter::Chapter; /// The `Book` struct contains the metadata and chapters for one language of the book. /// Multiple `Book` structs are combined in the `MDBook` struct to support multi-language books. +#[derive(Debug, Clone)] pub struct Book { metadata: BookMetadata, diff --git a/src/book/chapter.rs b/src/book/chapter.rs index 23244cb577..db8ce3ea5d 100644 --- a/src/book/chapter.rs +++ b/src/book/chapter.rs @@ -2,6 +2,7 @@ use std::path; /// The Chapter struct holds the title of the chapter as written in the SUMMARY.md file, /// the location of the markdown file containing the content and eventually sub-chapters +#[derive(Debug, Clone)] pub struct Chapter { title: String, file: path::PathBuf, From efc2644f84469bb5c04d77b4356db74fe1bf065d Mon Sep 17 00:00:00 2001 From: Mathieu David Date: Tue, 28 Jun 2016 22:54:26 +0200 Subject: [PATCH 10/46] Include the new Book struct in a hashmap alongside the old representation --- src/book/mod.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/book/mod.rs b/src/book/mod.rs index cf9147f01e..c7130ce756 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -18,12 +18,13 @@ use std::io; use std::io::Write; use std::io::ErrorKind; use std::process::Command; +use std::collections::HashMap; use {theme, parse, utils}; use renderer::{Renderer, HtmlHandlebars}; -pub struct MDBook { +pub struct MDBook<'a> { root: PathBuf, dest: PathBuf, src: PathBuf, @@ -34,12 +35,13 @@ pub struct MDBook { pub description: String, pub content: Vec, + books: HashMap<&'a str, Book>, renderer: Box, livereload: Option, } -impl MDBook { +impl<'a> MDBook<'a> { /// Create a new `MDBook` struct with root directory `root` /// /// Default directory paths: @@ -67,6 +69,7 @@ impl MDBook { description: String::new(), content: vec![], + books: HashMap::new(), renderer: Box::new(HtmlHandlebars::new()), livereload: None, From 9189053bbfbc40f6f61c06ae2442788e2004bfe7 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Tue, 20 Dec 2016 20:44:38 +0000 Subject: [PATCH 11/46] frontmatter, mainmatter, backmatter --- book-example/src/SUMMARY.md | 2 ++ book-example/src/misc/introduction.md | 3 ++ src/book/book.rs | 41 +++++++++++++++------------ 3 files changed, 28 insertions(+), 18 deletions(-) create mode 100644 book-example/src/misc/introduction.md diff --git a/book-example/src/SUMMARY.md b/book-example/src/SUMMARY.md index ff3911c72c..8d7bdcdd56 100644 --- a/book-example/src/SUMMARY.md +++ b/book-example/src/SUMMARY.md @@ -1,5 +1,7 @@ # Summary +[Introduction](misc/introduction.md) + - [mdBook](README.md) - [Command Line Tool](cli/cli-tool.md) - [init](cli/init.md) diff --git a/book-example/src/misc/introduction.md b/book-example/src/misc/introduction.md new file mode 100644 index 0000000000..3649538276 --- /dev/null +++ b/book-example/src/misc/introduction.md @@ -0,0 +1,3 @@ +# Introduction + +A frontmatter chapter. diff --git a/src/book/book.rs b/src/book/book.rs index 18572545ff..540203622b 100644 --- a/src/book/book.rs +++ b/src/book/book.rs @@ -8,38 +8,43 @@ use book::chapter::Chapter; pub struct Book { metadata: BookMetadata, - preface: Vec, - chapters: Vec, - appendix: Vec, + //preface: Vec, + frontmatter: Vec, + //chapters: Vec, + mainmatter: Vec, + //appendix: Vec, + backmatter: Vec, } impl Book { - /// Creates a new book with the given title, chapters are added with the `add_chapter` method + /// Creates a new book with the given title, chapters are added with the + /// `add_frontmatter_chapter`, `add_mainmatter_chapter`, + /// `add_backmatter_chapter` methods pub fn new(title: &str) -> Self { Book { metadata: BookMetadata::new(title), - preface: Vec::new(), - chapters: Vec::new(), - appendix: Vec::new(), + frontmatter: Vec::new(), + mainmatter: Vec::new(), + backmatter: Vec::new(), } } - /// Adds a new chapter at the end of the book - pub fn add_chapter(&mut self, chapter: Chapter) -> &mut Self { - self.chapters.push(chapter); + /// Adds a new mainmatter chapter + pub fn add_mainmatter_chapter(&mut self, chapter: Chapter) -> &mut Self { + self.mainmatter.push(chapter); self } - /// Adds a new preface chapter to the book, the preface chapters are in the order they were added - pub fn add_preface_chapter(&mut self, chapter: Chapter) -> &mut Self { - self.preface.push(chapter); + /// Adds a new frontmatter chapter + pub fn add_frontmatter_chapter(&mut self, chapter: Chapter) -> &mut Self { + self.frontmatter.push(chapter); self } - /// Adds a new appendix chapter to the book, they are in de order they are added - pub fn add_appendix_chapter(&mut self, chapter: Chapter) -> &mut Self { - self.appendix.push(chapter); + /// Adds a new backmatter chapter + pub fn add_backmatter_chapter(&mut self, chapter: Chapter) -> &mut Self { + self.backmatter.push(chapter); self } @@ -57,9 +62,9 @@ impl Book { pub fn get_chapter(&self, section: &[usize]) -> Option<&Chapter> { match section.len() { 0 => None, - 1 => self.chapters.get(section[0]), + 1 => self.mainmatter.get(section[0]), _ => { - self.chapters + self.mainmatter .get(section[0]) .and_then(|ch| ch.get_sub_chapter(§ion[1..])) }, From bfdc70c1f05d56636fc0364e2908968a734bd6bc Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Tue, 20 Dec 2016 21:25:44 +0000 Subject: [PATCH 12/46] preparing structs --- src/book/book.rs | 3 --- src/book/chapter.rs | 30 +++++++++++++++++++---- src/book/metadata.rs | 58 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 8 deletions(-) diff --git a/src/book/book.rs b/src/book/book.rs index 540203622b..6b6ce03b03 100644 --- a/src/book/book.rs +++ b/src/book/book.rs @@ -8,11 +8,8 @@ use book::chapter::Chapter; pub struct Book { metadata: BookMetadata, - //preface: Vec, frontmatter: Vec, - //chapters: Vec, mainmatter: Vec, - //appendix: Vec, backmatter: Vec, } diff --git a/src/book/chapter.rs b/src/book/chapter.rs index db8ce3ea5d..7afb3610eb 100644 --- a/src/book/chapter.rs +++ b/src/book/chapter.rs @@ -1,24 +1,44 @@ -use std::path; +use std::path::{Path, PathBuf}; +use book::metadata::Author; /// The Chapter struct holds the title of the chapter as written in the SUMMARY.md file, /// the location of the markdown file containing the content and eventually sub-chapters + +/// TODO use in template: author, description, index, class + #[derive(Debug, Clone)] pub struct Chapter { + /// The title of the chapter. title: String, - file: path::PathBuf, + /// Path to chapter's markdown file. + file: PathBuf, + + /// TODO The author of the chapter, or the book. + author: Author, + /// TODO The description of the chapter. + description: String, + /// TODO Index number of the chapter in its level. This is the Vec index + 1. + index: i32, + /// TODO CSS class that will be added to the page-level wrap div to allow customized chapter styles. + class: String, sub_chapters: Vec, } - impl Chapter { /// Creates a new chapter with the given title and source file and no sub-chapters - pub fn new(title: &str, file: &path::Path) -> Self { + pub fn new(title: &str, file: &Path) -> Self { Chapter { title: title.to_owned(), file: file.to_owned(), sub_chapters: Vec::new(), + + // TODO placeholder values for now + author: Author::new(""), + description: "".to_string(), + index: 0, + class: "".to_string(), } } @@ -42,7 +62,7 @@ impl Chapter { pub fn title(&self) -> &str { &self.title } - pub fn file(&self) -> &path::Path { + pub fn file(&self) -> &Path { &self.file } pub fn sub_chapters(&self) -> &[Chapter] { diff --git a/src/book/metadata.rs b/src/book/metadata.rs index 0be79be73d..6fe837cd0c 100644 --- a/src/book/metadata.rs +++ b/src/book/metadata.rs @@ -1,12 +1,32 @@ +use std::path::PathBuf; + +/// TODO use in template: subtitle, description, publisher, number_format, section_names + #[derive(Debug, Clone)] pub struct BookMetadata { + /// The title of the book. pub title: String, + + /// TODO The subtitle, when titles are in the form of "The Immense Journey: An + /// Imaginative Naturalist Explores the Mysteries of Man and Nature" + pub subtitle: String, + + /// TODO A brief description or summary. pub description: String, + /// TODO Publisher's info + pub publisher: Publisher, + pub language: Language, authors: Vec, translators: Vec, + + /// TODO Chapter numbering scheme + number_format: NumberFormat, + /// TODO Section names for nested Vec structures, such as `[ + /// "Part", "Chapter", "Section" ]` + section_names: Vec, } #[derive(Debug, Clone)] @@ -21,6 +41,38 @@ pub struct Language { code: String, } +/// TODO use Publisher in template. + +#[derive(Debug, Clone)] +pub struct Publisher { + name: String, + /// link to the sublisher's site + url: String, + /// path to publisher's logo image + logo_src: PathBuf, +} + +impl Publisher { + pub fn default() -> Publisher { + Publisher { + name: "".to_string(), + url: "".to_string(), + logo_src: PathBuf::new(), + } + } +} + +/// TODO use NumberFormat when rendering chapter titles. + +#[derive(Debug, Clone)] +pub enum NumberFormat { + /// 19 + Arabic, + /// XIX + Roman, + /// Nineteen + Word, +} impl BookMetadata { pub fn new(title: &str) -> Self { @@ -32,6 +84,12 @@ impl BookMetadata { authors: Vec::new(), translators: Vec::new(), + + // TODO placeholder values for now + subtitle: "".to_string(), + publisher: Publisher::default(), + number_format: NumberFormat::Arabic, + section_names: vec![], } } From 7edee4205377daf050efcf30a9d4dde01c6f6480 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Thu, 22 Dec 2016 07:22:18 +0000 Subject: [PATCH 13/46] docs for refactoring design --- doc/assets/bookdata.graphml | 533 ++++++++++++++++++++++++++++++++++++ doc/assets/bookdata.png | Bin 0 -> 63004 bytes doc/assets/structs.png | Bin 0 -> 58969 bytes doc/assets/structs.pum | 142 ++++++++++ doc/doc.md | 78 ++++++ 5 files changed, 753 insertions(+) create mode 100644 doc/assets/bookdata.graphml create mode 100644 doc/assets/bookdata.png create mode 100644 doc/assets/structs.png create mode 100644 doc/assets/structs.pum create mode 100644 doc/doc.md diff --git a/doc/assets/bookdata.graphml b/doc/assets/bookdata.graphml new file mode 100644 index 0000000000..e60ad73c9c --- /dev/null +++ b/doc/assets/bookdata.graphml @@ -0,0 +1,533 @@ + + + + + + + + + + + + + + + + + + + + + + + Config + + + + + + + + + + + + Book Content + + + + + + + + + + + CLI Args + + + + + + + + + + + + + + + + book.toml + + + + + + + + + + + + + + + + SUMMARY.md + + + + + + + + + + + + + + + + markdown +chapters + + + + + + + + + + + + + + + + template assets + + + + + + + + + + + + + + + + BookConfig + root +src +dest +template +renderer + + + + + + + + + + + + + + + + + + + Book + metadata +chapters + + + + + + + + + + + + + + + + + + + Renderer + render(book, config) + + + + + + + + + + + + + + + + + + + MDBook + books +config + + + + + + + + + + + + + + + + + + + images + + + + + + + + + + + + + + + + BookMetadata + title +author +publisher + + + + + + + + + + + + + + + + + + + Vec<Chapter> + title +file +sub_chapters + + + + + + + + + + + + + + + + + + + YAML headers +(optional) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + behaviour control, +paths, target format + + + + + + + + + + + + + + paths + + + + + + + + + + + + + + metadata + + + + + + + + + + + + + + + + + + + + chapter list + + + + + + + + + + + + + + chapter attributes +chapter content + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + renderer specific +data + + + + + + + + + + + + template path + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/assets/bookdata.png b/doc/assets/bookdata.png new file mode 100644 index 0000000000000000000000000000000000000000..bcab50dc388f8cc39fe90aa74238f8318d5ab5ae GIT binary patch literal 63004 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 literal 0 HcmV?d00001 diff --git a/doc/assets/structs.png b/doc/assets/structs.png new file mode 100644 index 0000000000000000000000000000000000000000..c250d83200de90afd25b0f54f32bb84e2efa021f GIT binary patch literal 58969 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 literal 0 HcmV?d00001 diff --git a/doc/assets/structs.pum b/doc/assets/structs.pum new file mode 100644 index 0000000000..3637ee69f2 --- /dev/null +++ b/doc/assets/structs.pum @@ -0,0 +1,142 @@ +@startuml + +class book::MDBook { + root + dest + src + theme_path + title + author + description + content : Vec + books : HashMap<&'a str, Book> + renderer + livereload +} + +class book::book.Book { + metadata + frontmatter + mainmatter + backmatter + + new(title) +} + +class book::bookconfig.BookConfig { + root + dest + src + theme_path + title + author + description + indent_spaces + multilingual + + new(root) +} + +class book::chapter.Chapter { + title + file + author + description + index + class + sub_chapters + + new(title, file) +} + +namespace book::bookitem { + +enum BookItem { + Chapter "String, Chapter" + Affix "Chapter" + Spacer +} + +class BookItems { + items : &'a [BookItem] + current_index + stack : Vec<"&'a [BookItem], usize"> +} + +class Chapter { + name + path + sub_items + + new(name, path) +} + +} + +namespace book::metadata { + +class BookMetadata { + title + subtitle + description + publisher + language + authors + translators + number_format + section_names + new(title) +} + +class Author { + name + email + new(name) +} + +class Language { + name + code +} + +class Publisher { + name + url + logo_src +} + +enum NumberFormat { + Arabic + Roman + Word +} + +} + +class renderer::html_handlebars::HtmlHandlebars { + new() + render(book: MDBook) +} + +class theme::Theme { + index + css + favicon + js + highlight_css + tomorrow_night_css + highlight_js + jquery + new(src) +} + +book::book-[hidden]->book::bookconfig +book::book-[hidden]->book::chapter +book::book-[hidden]->book::bookitem +book::book-[hidden]->book::metadata + +book::bookitem.BookItems-[hidden]->book::bookitem.BookItem + +renderer::html_handlebars::HtmlHandlebars-[hidden]->theme::Theme + +@enduml diff --git a/doc/doc.md b/doc/doc.md new file mode 100644 index 0000000000..27ae47a557 --- /dev/null +++ b/doc/doc.md @@ -0,0 +1,78 @@ +# Doc + +Diagrams are with [yEd](http://www.yworks.com/products/yed) and [plantuml](http://plantuml.com). + +## Data + +![book data](assets/bookdata.png) + +### Renderer + +Takes data from: + +- a book's metadata and chapters (`Book`) +- paths and behaviour config (`BookConfig`) +- template assets (`template_path`) + +For generating pages: + +Book metadata, `BookMetadata` (title, author, publisher, etc.). Just recognize +those properties which can be easily anticipated. + +If Renderer needs more specific data, it can be supplied in `book.toml`. It's +the Renderer's job to open that and parse it out. + +Chapters, `Vec`. + +If the user wants to store attributes that are not anticipated with structs, +they can go in a hashmap with string keys, let them be accessible from the +templates with helpers. + +For generating output: + +- template assets, `template-path`, renderer does whatever it wants with it +- config (root, dest, etc. folders) + +Renderer is seleceted by CLI or default (html). Each book is passed to this +renderer. + +### Config + +Takes data from: + +- CLI args +- book.json + +## Structs + +### Currently + +Already almost good for implementing the above. + +Storing data attributes can be reorganized. + +Modules could be refactored to express intention more clearly. + +![structs](assets/structs.png) + +## Notes + +There could be less modules. Merge modules which express one intention. + +The two Chapter structs could be refactored out. + +Take config paths for as many things as possible. Let the user organize their +project folder differently, or allow `mdbook` to function in existing projects +with already established folders. + +Add config path for `SUMMARY.md`. Default is good to be in `src/`, it allows +chapter links to work when reading the file on Github. + +The init command should copy the assets folder by default, it is better to make +this choice for new users. + +The specific assets (CSS, templates, etc.) are closely coupled with the book +content when the user is writing it. If the templates change when mdbook +develops, this changes the output in a way the user doesn't expect, maybe even +breaking their book. + From 852fc1d872ae3a281a35df9be29f0e8902b5bea8 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Sun, 25 Dec 2016 04:40:37 +0000 Subject: [PATCH 14/46] plan for reorganizing structs --- doc/assets/bookdata.graphml | 253 +++++++++++++++++++---------- doc/assets/bookdata.png | Bin 63004 -> 74896 bytes doc/assets/structs-reorganized.png | Bin 0 -> 59306 bytes doc/assets/structs-reorganized.pum | 129 +++++++++++++++ doc/doc.md | 46 ++++-- 5 files changed, 327 insertions(+), 101 deletions(-) create mode 100644 doc/assets/structs-reorganized.png create mode 100644 doc/assets/structs-reorganized.pum diff --git a/doc/assets/bookdata.graphml b/doc/assets/bookdata.graphml index e60ad73c9c..a1722780d3 100644 --- a/doc/assets/bookdata.graphml +++ b/doc/assets/bookdata.graphml @@ -121,15 +121,15 @@ chapters - + - BookConfig - root -src -dest -template -renderer + BookConfig + lang +project_root +book_dest +book_src +template_path @@ -145,12 +145,13 @@ renderer - + Book - metadata -chapters + config +metadata +toc @@ -170,7 +171,7 @@ chapters Renderer - render(book, config) + render(book) @@ -186,12 +187,13 @@ chapters - + - MDBook - books -config + MDBook + project_root +books +renderer @@ -223,7 +225,7 @@ config - + BookMetadata @@ -245,13 +247,12 @@ publisher - + Vec<Chapter> - title -file -sub_chapters + title +file @@ -281,6 +282,48 @@ sub_chapters + + + + + + + + + summary +parser + + + + + + + + + + + + + + + + + + Vec<TocItem> + content +sub_items + + + + + + + + + + + + @@ -296,29 +339,29 @@ sub_chapters - - + + - behaviour control, + behaviour control, paths, target format - + - - + + - paths + paths - + @@ -326,11 +369,11 @@ paths, target format - + - metadata + metadata @@ -338,68 +381,68 @@ paths, target format - + - + - + - chapter list + chapter list - + - + - + - chapter attributes + chapter attributes chapter content - + - + - + - + - + - + - + - + - + @@ -407,15 +450,15 @@ chapter content - + - + - + @@ -431,82 +474,119 @@ chapter content - + - - + + - + - + - - - + + + - - + renderer specific +data + + + - + + + + + + + template path + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + + - + - + - + + - - - + + + - renderer specific -data - - - + + - + + - - + + + + - template path - - - + + - + + @@ -516,12 +596,13 @@ data - + + - + diff --git a/doc/assets/bookdata.png b/doc/assets/bookdata.png index bcab50dc388f8cc39fe90aa74238f8318d5ab5ae..f206399aea9a6e28ccf24f39d9fd76fa3c9b0870 100644 GIT binary patch literal 74896 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�=%=jf&FF3{6rA_L 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ℜA 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 Q86&sTg`%`)g1qa00mro%^Z)<= literal 63004 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 diff --git a/doc/assets/structs-reorganized.png b/doc/assets/structs-reorganized.png new file mode 100644 index 0000000000000000000000000000000000000000..cd33bb9c1e0202dc20bfc5d86f8f90c99cde27f0 GIT binary patch literal 59306 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 literal 0 HcmV?d00001 diff --git a/doc/assets/structs-reorganized.pum b/doc/assets/structs-reorganized.pum new file mode 100644 index 0000000000..6dc4de9310 --- /dev/null +++ b/doc/assets/structs-reorganized.pum @@ -0,0 +1,129 @@ +@startuml + +class book::MDBook { + project_root : PathBuf + + books : HashMap<&'a str, Book> + + renderer : Box + livereload : Option + indent_spaces: i32 + multilingual: bool + + new(root) +} + +class book::book.Book { + config : BookConfig + metadata : BookMetadata + + chapters: Vec + + new(title) +} + +class book::bookconfig.BookConfig { + lang : Language + + project_root : PathBuf + book_dest : PathBuf + book_src : PathBuf + template_path : PathBuf + + new(root) +} + +class book::chapter.Chapter { +title +file +author +description +css_class +index : Vec + +new(title, file) +} + +namespace book::toc { + +class TocItem { + content : TocContent + sub_items: Vec + new(content) +} + +enum TocContent { + Frontmatter "Chapter" + Mainmatter "Chapter" + Backmatter "Chapter" + Insert "Chapter" + Spacer +} + +} + +namespace book::metadata { + +class BookMetadata { + title + subtitle + description + publisher + language + authors + translators + number_format + section_names + new(title) +} + +class Author { + name + email + new(name) +} + +class Language { + name + code +} + +class Publisher { + name + url + logo_src +} + +enum NumberFormat { + Arabic + Roman + Word +} + +} + +class renderer::html_handlebars::HtmlHandlebars { + new() + render(book: MDBook) +} + +class theme::Theme { + index + css + favicon + js + highlight_css + tomorrow_night_css + highlight_js + jquery + new(src) +} + +book::book-[hidden]->book::bookconfig +book::book-[hidden]->book::chapter +book::book-[hidden]->book::toc +book::book-[hidden]->book::metadata + +renderer::html_handlebars::HtmlHandlebars-[hidden]->theme::Theme + +@enduml diff --git a/doc/doc.md b/doc/doc.md index 27ae47a557..961f4926c6 100644 --- a/doc/doc.md +++ b/doc/doc.md @@ -1,17 +1,38 @@ # Doc -Diagrams are with [yEd](http://www.yworks.com/products/yed) and [plantuml](http://plantuml.com). +Diagrams are with [yEd](http://www.yworks.com/products/yed) +and [plantuml](http://plantuml.com). ## Data +`MDBook::new(root)` parses CLI args and `book.toml` to create: + +- app config settings +- `Book` for each language + +Each `Book` is given their config setting with their source- and destination +paths. + +The renderer can then render each book. + +To render the TOC, renderer gets a Vec from summary parser. + +The renderer walks through the Vec. It can match content kinds in an enum and +this way knows whether to render: + +- front- back- or mainmatter +- spacer elements (vertical space in TOC but no chapter output) +- insert chapters (no TOC link, but the chapter is part of the reading sequence) + ![book data](assets/bookdata.png) ### Renderer -Takes data from: +Takes a book, which knows: -- a book's metadata and chapters (`Book`) -- paths and behaviour config (`BookConfig`) +- metadata +- toc with chapters +- config for paths - template assets (`template_path`) For generating pages: @@ -22,7 +43,8 @@ those properties which can be easily anticipated. If Renderer needs more specific data, it can be supplied in `book.toml`. It's the Renderer's job to open that and parse it out. -Chapters, `Vec`. +Chapters are represented in a `Vec`, each item has the chapter content +as payload. If the user wants to store attributes that are not anticipated with structs, they can go in a hashmap with string keys, let them be accessible from the @@ -41,26 +63,20 @@ renderer. Takes data from: - CLI args -- book.json +- book.toml ## Structs -### Currently - -Already almost good for implementing the above. +### Reorganized -Storing data attributes can be reorganized. +![structs reorganized](assets/structs-reorganized.png) -Modules could be refactored to express intention more clearly. +### Currently ![structs](assets/structs.png) ## Notes -There could be less modules. Merge modules which express one intention. - -The two Chapter structs could be refactored out. - Take config paths for as many things as possible. Let the user organize their project folder differently, or allow `mdbook` to function in existing projects with already established folders. From e7ba6fac85436fe6ca7a5966b6aeaf6a9023c155 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Sat, 31 Dec 2016 08:07:59 +0000 Subject: [PATCH 15/46] multilang parses toc and chapters renders html hbs helpers and asset embedding copy static assets by pattern review fix prev nav link copy local assets when found multilang renders is_multilang as property theme is template cli init and build bump version structs diagram --- .gitignore | 8 +- Cargo.toml | 13 +- .../assets/images/structs-v0-0-15.png | Bin .../assets/images/structs-v0-0-15.pum | 0 .../assets/images/structs-v0-0-16.png | Bin 0 -> 80143 bytes .../assets/images/structs-v0-0-16.pum | 114 +++ book-example/book.toml | 6 +- book-example/src/SUMMARY.md | 3 +- book-example/src/misc/introduction.md | 3 - book-example/src/structs/structs.md | 6 + build.rs | 19 +- .../html-template/_layouts/index-old.hbs | 0 data/html-template/_layouts/page.hbs | 99 +++ .../html-template/_stylus}/book.styl | 0 .../html-template/_stylus}/general.styl | 0 .../html-template/_stylus}/menu.styl | 0 .../html-template/_stylus}/nav-icons.styl | 0 .../html-template/_stylus}/page.styl | 0 .../html-template/_stylus}/print.styl | 0 .../html-template/_stylus}/sidebar.styl | 0 .../html-template/_stylus}/theme-popup.styl | 0 .../html-template/_stylus}/themes/base.styl | 0 .../html-template/_stylus}/themes/coal.styl | 0 .../html-template/_stylus}/themes/index.styl | 0 .../html-template/_stylus}/themes/light.styl | 0 .../html-template/_stylus}/themes/navy.styl | 0 .../html-template/_stylus}/themes/rust.styl | 0 .../html-template/_stylus}/variables.styl | 0 .../theme => data/html-template/css}/book.css | 0 .../html-template}/css/font-awesome.min.css | 0 .../html-template/css}/highlight.css | 0 .../html-template/css}/tomorrow-night.css | 0 .../html-template}/fonts/FontAwesome.otf | Bin .../fonts/fontawesome-webfont.eot | Bin .../fonts/fontawesome-webfont.svg | 0 .../fonts/fontawesome-webfont.ttf | Bin .../fonts/fontawesome-webfont.woff | Bin .../fonts/fontawesome-webfont.woff2 | Bin .../html-template/images}/favicon.png | Bin {src/theme => data/html-template/js}/book.js | 0 .../html-template/js}/highlight.js | 0 .../html-template/js}/jquery-2.1.4.min.js | 0 doc/assets/bookdata.graphml | 614 ------------- doc/assets/bookdata.png | Bin 74896 -> 0 bytes doc/assets/structs-reorganized.png | Bin 59306 -> 0 bytes doc/assets/structs-reorganized.pum | 129 --- doc/doc.md | 94 -- src/bin/mdbook.rs | 200 +---- src/book/book.rs | 154 ++-- src/book/bookconfig.rs | 428 ++++++--- src/book/bookitem.rs | 82 -- src/book/chapter.rs | 246 ++++-- src/book/metadata.rs | 129 --- src/book/mod.rs | 745 ++++++++-------- src/book/toc.rs | 76 ++ src/lib.rs | 12 +- src/parse/mod.rs | 2 +- src/parse/summary.rs | 160 ++-- src/renderer/html_handlebars/hbs_renderer.rs | 556 +++++++----- .../html_handlebars/helpers/navigation.rs | 7 +- src/renderer/html_handlebars/helpers/toc.rs | 6 +- src/renderer/mod.rs | 17 +- .../assets/html-template/_layouts/page.hbs | 99 +++ .../assets/html-template/css/book.css | 828 ++++++++++++++++++ src/tests/book-minimal-with-assets/book.toml | 3 + .../book-minimal-with-assets/src/SUMMARY.md | 11 + .../src/chronology.md | 1 + .../book-minimal-with-assets/src/essays.md | 1 + .../src/essays/kafka.md | 1 + .../book-minimal-with-assets/src/fictions.md | 1 + .../src/fictions/babel.md | 12 + .../src/fictions/ruins.md | 5 + .../src/introduction.md | 1 + src/tests/book-minimal/book.toml | 3 + src/tests/book-minimal/src/SUMMARY.md | 11 + src/tests/book-minimal/src/chronology.md | 1 + src/tests/book-minimal/src/essays.md | 1 + src/tests/book-minimal/src/essays/kafka.md | 1 + src/tests/book-minimal/src/fictions.md | 1 + src/tests/book-minimal/src/fictions/babel.md | 12 + src/tests/book-minimal/src/fictions/ruins.md | 5 + src/tests/book-minimal/src/introduction.md | 1 + .../assets/images/Queen.jpg | Bin 0 -> 118274 bytes .../assets/images/Rabbit.png | Bin 0 -> 143765 bytes .../assets/images/Tail.png | Bin 0 -> 351418 bytes .../assets/images/Tears.png | Bin 0 -> 165549 bytes src/tests/book-wonderland-multilang/book.toml | 17 + .../src/en/SUMMARY.md | 17 + .../src/en/long-tale.md | 15 + .../src/en/rabbit-hole.md | 13 + .../book-wonderland-multilang/src/en/tears.md | 18 + .../src/en/titlepage.md | 10 + .../src/fr/SUMMARY.md | 17 + .../src/fr/cocasse.md | 17 + .../src/fr/larmes.md | 18 + .../src/fr/terrier.md | 13 + .../book-wonderland-multilang/src/fr/titre.md | 18 + .../src/hu/SUMMARY.md | 17 + .../src/hu/cimoldal.md | 10 + .../src/hu/konnyto.md | 10 + .../src/hu/nyuszi.md | 14 + .../src/hu/tarka-farka.md | 17 + src/tests/bookconfig_test.rs | 16 + src/tests/chapter_test.rs | 22 + .../chapters/at-the-mountains-of-madness.md | 30 + src/tests/fs_test.rs | 50 ++ src/tests/hbs_renderer_multilang.rs | 53 ++ src/tests/hbs_renderer_test.rs | 79 ++ src/tests/mdbook_test.rs | 237 +++++ src/tests/mod.rs | 11 + src/tests/summary_test.rs | 400 +++++++++ src/tests/toc_test.rs | 13 + .../utils_test.rs} | 52 +- src/theme/mod.rs | 105 --- src/utils/fs.rs | 222 ++++- src/utils/mod.rs | 83 +- 116 files changed, 4221 insertions(+), 2320 deletions(-) rename doc/assets/structs.png => book-example/assets/images/structs-v0-0-15.png (100%) rename doc/assets/structs.pum => book-example/assets/images/structs-v0-0-15.pum (100%) create mode 100644 book-example/assets/images/structs-v0-0-16.png create mode 100644 book-example/assets/images/structs-v0-0-16.pum delete mode 100644 book-example/src/misc/introduction.md create mode 100644 book-example/src/structs/structs.md rename src/theme/index.hbs => data/html-template/_layouts/index-old.hbs (100%) create mode 100644 data/html-template/_layouts/page.hbs rename {src/theme/stylus => data/html-template/_stylus}/book.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/general.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/menu.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/nav-icons.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/page.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/print.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/sidebar.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/theme-popup.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/themes/base.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/themes/coal.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/themes/index.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/themes/light.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/themes/navy.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/themes/rust.styl (100%) rename {src/theme/stylus => data/html-template/_stylus}/variables.styl (100%) rename {src/theme => data/html-template/css}/book.css (100%) rename {src/theme/_FontAwesome => data/html-template}/css/font-awesome.min.css (100%) rename {src/theme => data/html-template/css}/highlight.css (100%) rename {src/theme => data/html-template/css}/tomorrow-night.css (100%) rename {src/theme/_FontAwesome => data/html-template}/fonts/FontAwesome.otf (100%) rename {src/theme/_FontAwesome => data/html-template}/fonts/fontawesome-webfont.eot (100%) rename {src/theme/_FontAwesome => data/html-template}/fonts/fontawesome-webfont.svg (100%) rename {src/theme/_FontAwesome => data/html-template}/fonts/fontawesome-webfont.ttf (100%) rename {src/theme/_FontAwesome => data/html-template}/fonts/fontawesome-webfont.woff (100%) rename {src/theme/_FontAwesome => data/html-template}/fonts/fontawesome-webfont.woff2 (100%) rename {src/theme => data/html-template/images}/favicon.png (100%) rename {src/theme => data/html-template/js}/book.js (100%) rename {src/theme => data/html-template/js}/highlight.js (100%) rename {src/theme => data/html-template/js}/jquery-2.1.4.min.js (100%) delete mode 100644 doc/assets/bookdata.graphml delete mode 100644 doc/assets/bookdata.png delete mode 100644 doc/assets/structs-reorganized.png delete mode 100644 doc/assets/structs-reorganized.pum delete mode 100644 doc/doc.md delete mode 100644 src/book/bookitem.rs delete mode 100644 src/book/metadata.rs create mode 100644 src/book/toc.rs create mode 100644 src/tests/book-minimal-with-assets/assets/html-template/_layouts/page.hbs create mode 100644 src/tests/book-minimal-with-assets/assets/html-template/css/book.css create mode 100644 src/tests/book-minimal-with-assets/book.toml create mode 100644 src/tests/book-minimal-with-assets/src/SUMMARY.md create mode 100644 src/tests/book-minimal-with-assets/src/chronology.md create mode 100644 src/tests/book-minimal-with-assets/src/essays.md create mode 100644 src/tests/book-minimal-with-assets/src/essays/kafka.md create mode 100644 src/tests/book-minimal-with-assets/src/fictions.md create mode 100644 src/tests/book-minimal-with-assets/src/fictions/babel.md create mode 100644 src/tests/book-minimal-with-assets/src/fictions/ruins.md create mode 100644 src/tests/book-minimal-with-assets/src/introduction.md create mode 100644 src/tests/book-minimal/book.toml create mode 100644 src/tests/book-minimal/src/SUMMARY.md create mode 100644 src/tests/book-minimal/src/chronology.md create mode 100644 src/tests/book-minimal/src/essays.md create mode 100644 src/tests/book-minimal/src/essays/kafka.md create mode 100644 src/tests/book-minimal/src/fictions.md create mode 100644 src/tests/book-minimal/src/fictions/babel.md create mode 100644 src/tests/book-minimal/src/fictions/ruins.md create mode 100644 src/tests/book-minimal/src/introduction.md create mode 100644 src/tests/book-wonderland-multilang/assets/images/Queen.jpg create mode 100644 src/tests/book-wonderland-multilang/assets/images/Rabbit.png create mode 100644 src/tests/book-wonderland-multilang/assets/images/Tail.png create mode 100644 src/tests/book-wonderland-multilang/assets/images/Tears.png create mode 100644 src/tests/book-wonderland-multilang/book.toml create mode 100644 src/tests/book-wonderland-multilang/src/en/SUMMARY.md create mode 100644 src/tests/book-wonderland-multilang/src/en/long-tale.md create mode 100644 src/tests/book-wonderland-multilang/src/en/rabbit-hole.md create mode 100644 src/tests/book-wonderland-multilang/src/en/tears.md create mode 100644 src/tests/book-wonderland-multilang/src/en/titlepage.md create mode 100644 src/tests/book-wonderland-multilang/src/fr/SUMMARY.md create mode 100644 src/tests/book-wonderland-multilang/src/fr/cocasse.md create mode 100644 src/tests/book-wonderland-multilang/src/fr/larmes.md create mode 100644 src/tests/book-wonderland-multilang/src/fr/terrier.md create mode 100644 src/tests/book-wonderland-multilang/src/fr/titre.md create mode 100644 src/tests/book-wonderland-multilang/src/hu/SUMMARY.md create mode 100644 src/tests/book-wonderland-multilang/src/hu/cimoldal.md create mode 100644 src/tests/book-wonderland-multilang/src/hu/konnyto.md create mode 100644 src/tests/book-wonderland-multilang/src/hu/nyuszi.md create mode 100644 src/tests/book-wonderland-multilang/src/hu/tarka-farka.md create mode 100644 src/tests/bookconfig_test.rs create mode 100644 src/tests/chapter_test.rs create mode 100644 src/tests/chapters/at-the-mountains-of-madness.md create mode 100644 src/tests/fs_test.rs create mode 100644 src/tests/hbs_renderer_multilang.rs create mode 100644 src/tests/hbs_renderer_test.rs create mode 100644 src/tests/mdbook_test.rs create mode 100644 src/tests/mod.rs create mode 100644 src/tests/summary_test.rs create mode 100644 src/tests/toc_test.rs rename src/{book/bookconfig_test.rs => tests/utils_test.rs} (84%) delete mode 100644 src/theme/mod.rs diff --git a/.gitignore b/.gitignore index fbe2812f57..734e5a61a3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,9 @@ +*.swp +.#* Cargo.lock target - -book-test +TAGS +src/tests/book-minimal/book +src/tests/book-minimal-with-assets/book +src/tests/book-wonderland-multilang/book book-example/book diff --git a/Cargo.toml b/Cargo.toml index b203f8fcbe..3922fc4701 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mdbook" -version = "0.0.15" +version = "0.0.16" authors = ["Mathieu David "] description = "create books from markdown files (like Gitbook)" documentation = "http://azerupi.github.io/mdBook/index.html" @@ -9,20 +9,26 @@ keywords = ["book", "gitbook", "rustbook", "markdown"] license = "MPL-2.0" readme = "README.md" build = "build.rs" +include = ["data"] exclude = [ "book-example/*", - "src/theme/stylus", + "data/html-template/_stylus", ] + [dependencies] clap = "2.19.2" handlebars = { version = "0.23.0", features = ["serde_type"] } serde = "0.8" serde_json = "0.8" pulldown-cmark = "0.0.8" +regex = "0.1" +glob = "0.2" log = "0.3" env_logger = "0.3" toml = { version = "0.2", features = ["serde"] } +phf = "0.7" +includedir = "0.2" # Watch feature notify = { version = "2.5.5", optional = true } @@ -34,6 +40,9 @@ iron = { version = "0.4", optional = true } staticfile = { version = "0.3", optional = true } ws = { version = "0.5.1", optional = true} +[build-dependencies] +includedir_codegen = "0.2" + # Tests [dev-dependencies] tempdir = "0.3.4" diff --git a/doc/assets/structs.png b/book-example/assets/images/structs-v0-0-15.png similarity index 100% rename from doc/assets/structs.png rename to book-example/assets/images/structs-v0-0-15.png diff --git a/doc/assets/structs.pum b/book-example/assets/images/structs-v0-0-15.pum similarity index 100% rename from doc/assets/structs.pum rename to book-example/assets/images/structs-v0-0-15.pum diff --git a/book-example/assets/images/structs-v0-0-16.png b/book-example/assets/images/structs-v0-0-16.png new file mode 100644 index 0000000000000000000000000000000000000000..9eb2cced4d95d04214519db04ecdfaad23d381c2 GIT binary patch literal 80143 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 literal 0 HcmV?d00001 diff --git a/book-example/assets/images/structs-v0-0-16.pum b/book-example/assets/images/structs-v0-0-16.pum new file mode 100644 index 0000000000..2ecab4b9b2 --- /dev/null +++ b/book-example/assets/images/structs-v0-0-16.pum @@ -0,0 +1,114 @@ +@startuml + +namespace book { + +class MDBook { + project_root: PathBuf, + template_dir: PathBuf, + dest_base: PathBuf, + render_intent: RenderIntent, + + translations: HashMap, + + indent_spaces: i32, + livereload: bool, + + new(project_root) +} + +class book::Book { + config: BookConfig, + toc: Vec, + + new(project_root) +} + +class book::Chapter { + title: String, + path: PathBuf, + dest_path: Option, + authors: Option>, + translators: Option>, + description: Option, + css_class: Option, + + new(title, path) +} + +} + +namespace book::bookconfig { + +class BookConfig { + dest: PathBuf, + src: PathBuf, + + title: String, + subtitle: Option, + description: Option, + language: Language, + authors: Vec, + translators: Option>, + publisher: Option, + number_format: NumberFormat, + section_names: Vec, + is_main_book: bool, + is_multilang: bool, + + new(project_root) +} + +class Author { + name: String, + file_as: String, + email: Option, + + new(name) +} + +class Language { + name: String, + code: String, + + new(name, code) +} + +class Publisher { + name: String, + url: Option, + logo_src: Option, + + new(name) +} + +enum NumberFormat { + Arabic + Roman + Word +} + +} + +namespace book::toc { + +class TocContent { + chapter: Chapter, + sub_items: Option>, + section: Option>, +} + +enum TocItem { + Numbered "TocContent", + Unnumbered "TocContent", + Unlisted "TocContent", + Spacer, +} + +} + +class Renderer { + build(&self, project_root: &PathBuf), + render(&self, book_project: &MDBook), +} + +@enduml diff --git a/book-example/book.toml b/book-example/book.toml index cac456db2c..996e730985 100644 --- a/book-example/book.toml +++ b/book-example/book.toml @@ -1,3 +1,5 @@ title = "mdBook Documentation" -description = "Create book from markdown files. Like Gitbook but implemented in Rust" -author = "Mathieu David" +description = "Create books from markdown files. Like Gitbook but implemented in Rust." + +[[authors]] +name = "Mathieu David" diff --git a/book-example/src/SUMMARY.md b/book-example/src/SUMMARY.md index 8d7bdcdd56..43ede57c27 100644 --- a/book-example/src/SUMMARY.md +++ b/book-example/src/SUMMARY.md @@ -1,7 +1,5 @@ # Summary -[Introduction](misc/introduction.md) - - [mdBook](README.md) - [Command Line Tool](cli/cli-tool.md) - [init](cli/init.md) @@ -18,5 +16,6 @@ - [MathJax Support](format/mathjax.md) - [Rust code specific features](format/rust.md) - [Rust Library](lib/lib.md) +- [Structs](structs/structs.md) ----------- [Contributors](misc/contributors.md) diff --git a/book-example/src/misc/introduction.md b/book-example/src/misc/introduction.md deleted file mode 100644 index 3649538276..0000000000 --- a/book-example/src/misc/introduction.md +++ /dev/null @@ -1,3 +0,0 @@ -# Introduction - -A frontmatter chapter. diff --git a/book-example/src/structs/structs.md b/book-example/src/structs/structs.md new file mode 100644 index 0000000000..49eacf4acc --- /dev/null +++ b/book-example/src/structs/structs.md @@ -0,0 +1,6 @@ +# Structs + +![structs reorganized](images/structs-v0-0-16.png) + +Diagram with [plantuml](http://plantuml.com) + diff --git a/build.rs b/build.rs index d3177444da..b558bb186a 100644 --- a/build.rs +++ b/build.rs @@ -1,23 +1,36 @@ // build.rs +extern crate includedir_codegen; + +use includedir_codegen::Compression; + use std::process::Command; use std::env; use std::path::Path; fn main() { + includedir_codegen::start("FILES") + .dir("data", Compression::Gzip) + .build("data.rs") + .unwrap(); + + // TODO this using cargo as a Makefile. This is only for development, it + // doesn't have to be part of the production auto-build. Use either a + // Makefile or an npm command if stylus comes from npm anyway. + if let Ok(_) = env::var("CARGO_FEATURE_REGENERATE_CSS") { // Compile stylus stylesheet to css let manifest_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); - let theme_dir = Path::new(&manifest_dir).join("src/theme/"); - let stylus_dir = theme_dir.join("stylus/book.styl"); + let template_dir = Path::new(&manifest_dir).join("data/html-template/"); + let stylus_dir = template_dir.join("_stylus/book.styl"); if !Command::new("stylus") .arg(format!("{}", stylus_dir.to_str().unwrap())) .arg("--out") - .arg(format!("{}", theme_dir.to_str().unwrap())) + .arg(format!("{}", template_dir.to_str().unwrap())) .arg("--use") .arg("nib") .status().unwrap() diff --git a/src/theme/index.hbs b/data/html-template/_layouts/index-old.hbs similarity index 100% rename from src/theme/index.hbs rename to data/html-template/_layouts/index-old.hbs diff --git a/data/html-template/_layouts/page.hbs b/data/html-template/_layouts/page.hbs new file mode 100644 index 0000000000..ec5a88ff6b --- /dev/null +++ b/data/html-template/_layouts/page.hbs @@ -0,0 +1,99 @@ + + + + + {{ title }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ +
+ + + + {{#previous}} + + {{/previous}} + + {{#next}} + + {{/next}} + +
+ + + + + diff --git a/src/theme/stylus/book.styl b/data/html-template/_stylus/book.styl similarity index 100% rename from src/theme/stylus/book.styl rename to data/html-template/_stylus/book.styl diff --git a/src/theme/stylus/general.styl b/data/html-template/_stylus/general.styl similarity index 100% rename from src/theme/stylus/general.styl rename to data/html-template/_stylus/general.styl diff --git a/src/theme/stylus/menu.styl b/data/html-template/_stylus/menu.styl similarity index 100% rename from src/theme/stylus/menu.styl rename to data/html-template/_stylus/menu.styl diff --git a/src/theme/stylus/nav-icons.styl b/data/html-template/_stylus/nav-icons.styl similarity index 100% rename from src/theme/stylus/nav-icons.styl rename to data/html-template/_stylus/nav-icons.styl diff --git a/src/theme/stylus/page.styl b/data/html-template/_stylus/page.styl similarity index 100% rename from src/theme/stylus/page.styl rename to data/html-template/_stylus/page.styl diff --git a/src/theme/stylus/print.styl b/data/html-template/_stylus/print.styl similarity index 100% rename from src/theme/stylus/print.styl rename to data/html-template/_stylus/print.styl diff --git a/src/theme/stylus/sidebar.styl b/data/html-template/_stylus/sidebar.styl similarity index 100% rename from src/theme/stylus/sidebar.styl rename to data/html-template/_stylus/sidebar.styl diff --git a/src/theme/stylus/theme-popup.styl b/data/html-template/_stylus/theme-popup.styl similarity index 100% rename from src/theme/stylus/theme-popup.styl rename to data/html-template/_stylus/theme-popup.styl diff --git a/src/theme/stylus/themes/base.styl b/data/html-template/_stylus/themes/base.styl similarity index 100% rename from src/theme/stylus/themes/base.styl rename to data/html-template/_stylus/themes/base.styl diff --git a/src/theme/stylus/themes/coal.styl b/data/html-template/_stylus/themes/coal.styl similarity index 100% rename from src/theme/stylus/themes/coal.styl rename to data/html-template/_stylus/themes/coal.styl diff --git a/src/theme/stylus/themes/index.styl b/data/html-template/_stylus/themes/index.styl similarity index 100% rename from src/theme/stylus/themes/index.styl rename to data/html-template/_stylus/themes/index.styl diff --git a/src/theme/stylus/themes/light.styl b/data/html-template/_stylus/themes/light.styl similarity index 100% rename from src/theme/stylus/themes/light.styl rename to data/html-template/_stylus/themes/light.styl diff --git a/src/theme/stylus/themes/navy.styl b/data/html-template/_stylus/themes/navy.styl similarity index 100% rename from src/theme/stylus/themes/navy.styl rename to data/html-template/_stylus/themes/navy.styl diff --git a/src/theme/stylus/themes/rust.styl b/data/html-template/_stylus/themes/rust.styl similarity index 100% rename from src/theme/stylus/themes/rust.styl rename to data/html-template/_stylus/themes/rust.styl diff --git a/src/theme/stylus/variables.styl b/data/html-template/_stylus/variables.styl similarity index 100% rename from src/theme/stylus/variables.styl rename to data/html-template/_stylus/variables.styl diff --git a/src/theme/book.css b/data/html-template/css/book.css similarity index 100% rename from src/theme/book.css rename to data/html-template/css/book.css diff --git a/src/theme/_FontAwesome/css/font-awesome.min.css b/data/html-template/css/font-awesome.min.css similarity index 100% rename from src/theme/_FontAwesome/css/font-awesome.min.css rename to data/html-template/css/font-awesome.min.css diff --git a/src/theme/highlight.css b/data/html-template/css/highlight.css similarity index 100% rename from src/theme/highlight.css rename to data/html-template/css/highlight.css diff --git a/src/theme/tomorrow-night.css b/data/html-template/css/tomorrow-night.css similarity index 100% rename from src/theme/tomorrow-night.css rename to data/html-template/css/tomorrow-night.css diff --git a/src/theme/_FontAwesome/fonts/FontAwesome.otf b/data/html-template/fonts/FontAwesome.otf similarity index 100% rename from src/theme/_FontAwesome/fonts/FontAwesome.otf rename to data/html-template/fonts/FontAwesome.otf diff --git a/src/theme/_FontAwesome/fonts/fontawesome-webfont.eot b/data/html-template/fonts/fontawesome-webfont.eot similarity index 100% rename from src/theme/_FontAwesome/fonts/fontawesome-webfont.eot rename to data/html-template/fonts/fontawesome-webfont.eot diff --git a/src/theme/_FontAwesome/fonts/fontawesome-webfont.svg b/data/html-template/fonts/fontawesome-webfont.svg similarity index 100% rename from src/theme/_FontAwesome/fonts/fontawesome-webfont.svg rename to data/html-template/fonts/fontawesome-webfont.svg diff --git a/src/theme/_FontAwesome/fonts/fontawesome-webfont.ttf b/data/html-template/fonts/fontawesome-webfont.ttf similarity index 100% rename from src/theme/_FontAwesome/fonts/fontawesome-webfont.ttf rename to data/html-template/fonts/fontawesome-webfont.ttf diff --git a/src/theme/_FontAwesome/fonts/fontawesome-webfont.woff b/data/html-template/fonts/fontawesome-webfont.woff similarity index 100% rename from src/theme/_FontAwesome/fonts/fontawesome-webfont.woff rename to data/html-template/fonts/fontawesome-webfont.woff diff --git a/src/theme/_FontAwesome/fonts/fontawesome-webfont.woff2 b/data/html-template/fonts/fontawesome-webfont.woff2 similarity index 100% rename from src/theme/_FontAwesome/fonts/fontawesome-webfont.woff2 rename to data/html-template/fonts/fontawesome-webfont.woff2 diff --git a/src/theme/favicon.png b/data/html-template/images/favicon.png similarity index 100% rename from src/theme/favicon.png rename to data/html-template/images/favicon.png diff --git a/src/theme/book.js b/data/html-template/js/book.js similarity index 100% rename from src/theme/book.js rename to data/html-template/js/book.js diff --git a/src/theme/highlight.js b/data/html-template/js/highlight.js similarity index 100% rename from src/theme/highlight.js rename to data/html-template/js/highlight.js diff --git a/src/theme/jquery-2.1.4.min.js b/data/html-template/js/jquery-2.1.4.min.js similarity index 100% rename from src/theme/jquery-2.1.4.min.js rename to data/html-template/js/jquery-2.1.4.min.js diff --git a/doc/assets/bookdata.graphml b/doc/assets/bookdata.graphml deleted file mode 100644 index a1722780d3..0000000000 --- a/doc/assets/bookdata.graphml +++ /dev/null @@ -1,614 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - Config - - - - - - - - - - - - Book Content - - - - - - - - - - - CLI Args - - - - - - - - - - - - - - - - book.toml - - - - - - - - - - - - - - - - SUMMARY.md - - - - - - - - - - - - - - - - markdown -chapters - - - - - - - - - - - - - - - - template assets - - - - - - - - - - - - - - - - BookConfig - lang -project_root -book_dest -book_src -template_path - - - - - - - - - - - - - - - - - - - Book - config -metadata -toc - - - - - - - - - - - - - - - - - - - Renderer - render(book) - - - - - - - - - - - - - - - - - - - MDBook - project_root -books -renderer - - - - - - - - - - - - - - - - - - - images - - - - - - - - - - - - - - - - BookMetadata - title -author -publisher - - - - - - - - - - - - - - - - - - - Vec<Chapter> - title -file - - - - - - - - - - - - - - - - - - - YAML headers -(optional) - - - - - - - - - - - - - - - - - - summary -parser - - - - - - - - - - - - - - - - - - Vec<TocItem> - content -sub_items - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - behaviour control, -paths, target format - - - - - - - - - - - - - - paths - - - - - - - - - - - - - - metadata - - - - - - - - - - - - - - - - - - - - chapter list - - - - - - - - - - - - - - chapter attributes -chapter content - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - renderer specific -data - - - - - - - - - - - - template path - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/assets/bookdata.png b/doc/assets/bookdata.png deleted file mode 100644 index f206399aea9a6e28ccf24f39d9fd76fa3c9b0870..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74896 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�=%=jf&FF3{6rA_L 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ℜA zUho=pG{d@&DqMkr*=k{$&PsUr(>FyMJA_{m?#h}lNg&PPt`;wqVa5Re*7#=J7LyR! z+2QZzTr~xJmELh^W-;i0X<+niM;K>e={N5IA9x3n`nuRRUa$!FKH^@kdfGM9ASf>bKo*Z-Fw_4m=_^QQ(+3pAXBov~ zLz`{e_2)o9DvcLxN_s1Y_et2G>@s)lbzaifuQjFGDrkzE$GhW-80 zEHv<#6t@rDF(i2OEdEAcWbfy#WUehn0fjjh3UAi3+CP~e0@Wo&xV&jiA(KUqz~|mO z@9mz$LdmcLOuhteuWH;`%up>)8^SO|SO)q01K{(E(4tf8tMdw^nGlZ4U;8W@dL!dS z>tP8V5vJLC_il>UAJ3F|`nm;$ldKzV&%N(J&?p?=y0Lo0*Jun!>-Zr6zZzFErDJd0 zK#zv2RK_^xE!vxjlesigLp_aPnJQRH@ld!y zll-1-zb7Gomw=}dn)+5)k&zh@7NjCqny4=-kdSRzp-7+h3VOVkjeo0_w7O*mp_$B4 zC$-s30=vF22${)_ZJMP=M|>FP-5omw9{+)b2y zC39@JHOvzoOm#6rPitAyHu(CnVU4|(W><%QZuuor8=F;W$577!I-52xE`l|y_->Xo z$#-L+2?6-ccp(cllYw6&AK+TqecFfX8SE(Bg&VY<+bgypu^->>`1WEfJH{bKY$Vyg z?I0Uuz3afjES~S)a?`V~Hs|IaPy&#MuXoPWx zLEW;8Ui>UP{E%_~%TjWcd!j$S`AZn+h|Mg0jRi&4j{n3sM%HGK+rFCHizJDEUK9{( z8g8`pto-t_qVg6;H7b`a8F15d8sKvTVzoM}Vhx(XA%5w>AX(D6bcZ1ucc-h}d)xz5 z_b3q=#~|8z3u>zOArb`!LIa#~ux@mpt8#diYaM0i_@EHmJ0`8{#KrKT6tlai1pGTb z1HmEySb+_p`+_3+>)sazm_tmiVo8+1cTk4aF*~H@iqCC-$Ff1=hCwy7eA+3ljC7fj zQ@XRhpZHKh0WbS_1(|@)lnL}B#z(Ko-v95>CdZb2N9v38RTVdWFj9UUf?G@a&mGI` zg9$K|5+OrEAtviZ^CKtDhafKQW*S{%+~60A)jCYlV5iB;!ffq${+4vP6OjKPD)!_S zH$ofsL!*=!c-WqcD%-@FR~clzHH^7Tqo@%UDi+{B&mU2WQOnsh_wt7ww=z4rY6o<;I=_9|3=gwgrlvBVF9MOKAN(S4JTMWu|HfiY$TyXwkF>`<-UBSaM+_+C*M(uwNz|4Wud4rJEy$5{ zFZ%_9eEJLQF#5TwX%$@-6eNWII|SOgdYNOQp-We6^a<~TV0PwVq5#&aCjsTy(dnXR ze&pFlyp?SMIWtWx9qo49z&+eLx<>&1E~j>AiWmbr+#2eyt-fdTBbmdK=PR-FRN2Fie>m1J%KqV` zdMx?sP!*J8fX7d)n;gJ^D@lg`#Q86LSMVom}meReo;kWeXYVX|LS>YV^&{{?%I1!H@?!H(u-cGq2>_gyC<6wb!9;i#GMb zxG2Fo)E28%o2DGxIbdb<9jU*Ntm}pqD2s|ZbCiRAJf`40I0r95f^6cWxBK?se*Nl& z|KvZsvruJ|?ST9>#cJI5P z=UFg$><=&!+B@58J`-P!Hj|_tzyf=65L1_M;X&_DTW%UKTk-z*TLn8eN20DIA*rb(NJCqM;Sy>`t9nizqRkp`#~)@F9<0&$`84 zf?mW*ugMRUr&I;0$4?#5`M#ZK;8hL--dlhMw^HcdGn+yAGp?&p$7!e3mDY7ZP2&at$8m zV`-1sijdc(4u3*i4l;@BE3)%UDriBm`SF81H^Mb)j-3TiRQQoh9j2}B&;a``w8|i- zrL(;J=gK`<^FQ#CUgMXcT@eyh&;M3TCIeajZ|_PiEr%9QAIyWy`)?3nnTStDnnIr6 z@fJhrR-N{Ie6ck3=R)J`@X+D2Z{|5aMjUpk!kY2G^EMR5P@*AvKXH#`IYDUqo=N=2&K^ADZ|1q^C*GBZL&r%%fM^2jDeGW(NhJ zavKBXmDIZRs3H~E4v^{n%k?h&?Uki;09O&p6|K3Rv#X@5VvKRA>g)2^-#o<4B>h?d zE(pdIVkBp@{u-8>z|A79J_j;oH;LE^@U2TFMsXlJ?(~CsWobD2<2*oFxP4?qLQIVQ z-x;UJmK7qIBhrgO11<-;qE&V0Z}xlNB+yzymsso86UYWV1tCVC0EJ*twS;tZq0v%6 z5cr>+mq5PJvJ)XRRi=TC-^ovw!W5-FOY9$7rPp>X8#8BXTDheMz6=1s2M0qG+;pw-Qy@P4%L2bwqk@X0aGg!*D@C0nFL?7suUz53~o-3ve^vrX5vWdd&|`}mdVlY60ZMy{49*f{ zX#?5O-=IO|SwfZB;(WU-;S@YzxcsVi+L|1Tmu4$!hy6_Ze1L@8&*TZf0-64X%)Gw~>j9f+ z`OlwZ1)tOP>4(?8CM6{S3;@nnBde6e?Y36zBf(3Tg*AYxgt3YW;7O_bhJJ_;xgPRw zb*^H?sS!^r9BbmDfBkJPuz3m~2FNTN(472y%AD`|q{MDN^jnGb zvVgimb@eegW`GkeWK!$3HBYrJBCFb;)ch0Z*%O-0{>?YX>S31l{19H&sCy;FDtrmS z!NHZU`cx`bN9BUL1(;}&5a0qzidzxg_&V543_8UJ>mWVJQ}`LbTj>$wh+9+k`at4h z163|5HfYHYO={~WrD0)ww|S$ZgM%g<U}8+WYixo?HukbgUj`yBWl| zsyuZ64RJL?k}scU@)otz6cn7>_-wVS$K;O-ip`-=S{74)XgaNZ*rswD1`fdbofcTb z0644gXO%=>NFOVs!+qf=qm#R5k1VP-R#-%P4s&uic0xJ@)6n5^-K(kA7pqY(Ok96W zsSiHucBe)V$#0QAz1g&)W?a$2(@2U$yj;kcFtPYUsRiyv%~1}=CdEPrEV+T)G9HJV zq&DE!=gB$`AOsJ3=>Tr89%U;-_rEivSNHRf+$9`L+8BCc-ji81QP143g zg#M26d61<+$(HFI*$NwKMk^uTFk6*>HHU}{F#<8?*W@AqYtaCC;GPOh=8+Hv7_~Y} zbsx!#g7lR(HnRVs5l}}5DW2Ki_CWxiBU$f4o59`sSpshdF)Il^ z8SvfjE_C=!shz0v1S!hQOc49GVxhnby2b8li$sJ0eBdv z?1Zu+gE49$l4i8_~D-;Vg9M*-uo#Rqd@WH@hvGSVW#>uJRF#E&vkAT2(-_(09sfYC?uGb6hHU?xA}+}zQ|$4d&`E`qG?5N z<2*$|{iX0ZM+fKLe*SicX-TX=X6mT!E1WGuSV1AgKQR{*u|E zX^(xknA2!Epy&hSafe1n&$ye?1+N*Z9&pKGB%{^Rc3H^fDX<+de1X77s~POUFk{S0 zIxj8oCg4;7JRaE5FK^F%hRJ)3h;t?f(Xg5A8yX;NVqUBdMD)po1UUl$p>zQV0AvR- z-nc+DGIF{K$p*qcM4r9~E?_Bm1(C~^Wi1pkuk1v^&0q^a#=d;y|Nr0wj}V-?i+rO)?^$O z)qr?`=r-Gg)__FH;uk_9GQgXW^FE|MBrv_{bFvd>%GIE3mWZ*BU;Tt`rq37PDOObf z<_{~sJ&(=*12hiby?bYD%ppqwIMLt+HbS^rPEPhF9Ro!Mcs>rjl=f6PPQS4}-fu!8 z#5EUx+kmd0^u?$6XoRB~*clT*-PX}L-#H+1z=i!Bji2&6U7yu`$fb2@o1`Z4aXA}?K$6#K)dd1JU z4AuoMCh!zZy_OZvKR4f#2*6INJcz8UdGN}9VZ@w)cB12FAd3J+xs0|@@gy_a7)QSH zFWf0*EzaLfUWO)z$+=_<@!qiQ)NcAfM5d&u7{X4Jf?=1r;FtcynE!PHUe?;E@+&^tW&C7JAtoy?~_Uo8i6bjG`Vny+v)H`D_F9 zG=YA0E6W(|pf4d2qri)|KyMo8j@~B&DlzXC`_l{z3}_!4UlReB_3_As^QVB7J_P^f zro_-Awi^bX)rsaMk>^QWwFd$ub-&v+mSbQ;{`Bi6aUqbK6cn5fxB{CE#5Tg3eZj^hD09BE-|(<^?*!A1RG`87dRC~4 zyg=(;3Gm(rU~~m#QB+FG`9b!*48&xERso)6dYR09Z+*H6%t@&jsif+>|5@45ZaSB2 zl%+tz(1id}aq0->08|jTFZ}rv{P!WCOl`R%3E4dw*mM7AA{H;NtgW^R2+QL=!$+2h zY8N=8t1YpDed`FfR{{8&(kCWWP+ohk>v+fdB|fEjPQE=&Jl5xsKM$~4J5D*|zK*>X zW_z}2^{^NR)&{uAolq|KJ#e7FKq~_4`oNDua~5BuNc5NsL=Ayp0u!1*;@F{wLZ{UJnES$!Kg-hwh(%jA)|9 z69n<8t(>fZ1C+@j~&0+i<*xuH{_BarrCbfNfy;dt2Z<)r$PK{vl3(jOUX(qCUtmRbvY zhXYpiTF#vdYHDa|wlgwZRal}Jd$_`!Tks?=F^{jEyPMP&V0Z(%|8$e;T`{8?Gu9o( zt=N2{s@8!s%c~{uNCVB{tK>-A7tESS}y@N>BKl_L~m`beNxJ|hDxGq|K z?RF%}0ci@D|J%!EXs%35zkqe?$^m;hI3ncJ?74nG?w~ekO>>4RH><7CvIOY60+?*P z{Q06k35JqUd1Z#-cuGzHZ!+xu!*&VxSB{ZDgrOd>tE&m2b^kba_S=#xt|@KGWT~DW zh$S2^whzo6{-DvXFt5>T=5B!Q0WAQ>+fp5)YJ%%}j=RU;i&ym*J*1%Dn`j)9i$oKS z<*&1eT2{zw;35Q-89cWGEC{YnaTArj{e%c2jV}R*@#OFg*mu%34sQ`Mj9ReLh4!5_ zpEI(H5u8|C8ulfxYXn!TNs=zZ8h-}7q+GkSD-3wBhYjnPsmJ?yhXl{0R39U*7qVx{ zQJzAiN@f{>HzDbLsG{WO@CZ!Y0r#@7Q0PCOTiz%7La~e!15^yEaEF{7V~4n^J3Pih z*(J_{)&@~0Ajf8OD~o*p@x-_o$O$MsU$uB$NsK)3u#v%jXbarZy0oAsaK7%U?TdblTKKJ}mo!4kZ@`=mxA_tt-!( z?Du#&@=ZWrEs$nfAeFF;lUnK-`*D-QswL|b$1Rh`h_nj<=_O$6v_~02T7b%zxTIv^ z&!39spzNm-h)>qP2_R2`i&#Z)MxM8V)`Pk@;{Y zMP9FeIEbO{C2CeWIRpv-gR1kJveF93**)^5Cd5>dc0RSll-_Dg)7hJ|9#{*9Tp;JY z5fY4AzS4z{gg&&U(nD0P#~6nG%M#EPiH3y)DOa9qE?=fsFSh-G=mcRaxvj(n(%rJY z2jI#W85I{7S5;L3{p`n-AZW=2z^NPfE%L!zZrH*)(!HoDoX*ki!i2iB{*?Vrt5@+x zo7}iGKQ+?d4hUHc6;AyKo7dlhNUNW}U7#f-nvLxQ^Ju?&eRZ4A2V8TB=;r0$^)K0) zc8H7MKtw`{oWYY-*ijgcfBcK_YCHvVXrxtB4~)GOEFArxGjNl;dwRf34{(eBUTIn@ z)KmbaW5HGbkCy{(h>PfG9}Q?}TN+BQto=;i1t-7r%qfYYn#mhxcGcY`hAK9GxB9s>lNxm+hYBFe%2DWepoXMAN%2jjAb`B z`By@{4GYLVgL?@7JF=T(XC!dEYBy7~omBKq;E`FwCI3_e0*|5*791Kn^y}B=`ue@U zdmD{U4P%jHF%6MV#sLzz)aLc3ow_9G(9@-doueF^km16*R&epQ71-5VMK}24)Tlnp zNXA{LzI&O#k@eWH2nzR&(Sq)QlLQXlw6;PO+i$RxW{`a-y8(6in-X|MnC1C}bjGJ~ zr4hdOE}xC`O$1tTD!M%qqV7Kz@N-l66Yx_jfcB?PF`NQ12M<>)ueb64rsU0c*|^8uQUs= zi%+TvWdU}{!omXmcY)6F9sn3WR*Q9dtn}m8Irzit_wsUHTG|y>){tfp=!3u>{8{D) z*FWe1IW4$74v~>>rmmkm@bl8=-|}Zp@0EHNSJ%Jy>EEwB|4o~qB6}N%-hl`H@2CC! zt7{;4prWD@5)wN9Z~(OY_lJU;256}Wi;0OzN-jtTGJXbWgJLoJ6V+%|)A84|!&f!dNqHl0XRUk7Q`dja>1yhQ&sr=(3i_FZ^(< z_qT;OxUPIWJ-Di(c@&lz7`QG;3pU_K1_c$Bj-DP3CFP^@2X0tFLfh6u+AcDcX3U5X zz?{2aUZI&J=+7OGInEmFZXP_is*><2Ec4lRU*F^NCeoFh%*3)tBSbl(1+jz#Eb zZ7TbkyQ+>}L|gkEEV;!^{8NnE_+t(+78PU9&`hPsD0+%lH-GxG7q$aoMhfl{f@GlS z=aozB6LOBj55Ws_4BoXFjdBkiF9BarLl=Ci`1+<@n$M}y^D!$fTXNWqOMusrrg4Mu zGxnd3G+iMnI7voiGa}}kkA_)hMVvcev=_%*ZIZ)og+4Ohf}X#t(-k6LIEa&KYUKJ9 zpKJW0m0gNgisK2|^$LP6g*ciRdUU#73=c@-3~ApraLnv0pASy^dqF% zVlEO-EEulU?$w&_)na#(rZf4geC}63DBHw3++_QE$37?HKLG$T&}yo!mG^2}?`-#j z+SyH$0u~iFH+RFwxVSiQt)K+!(=Au%u%CrFX5Y&SbLCaAZ^S=TCMtNv2otjzO?Ibz zTDrmPh|R?~x5Mbs9*3lpU3W4J0XxzdHBCUdo??#a)LmFF>! zEuGlTjRY;=P%#qjcLRa_Q$askZzn>DUC0>NdAIe02B_A`&oC@SK~W9AW%K+H@^QV9@qewA38TzDZc@Gc*A7E$S1rXzdIpoiFk5a4>UjmjV z>Mfqy4E6O5n;MU?aT)9cD%#~u7ICErTXXi8d(tCpQ2O@O%F@#*q|d4AB-G{3rMy7R z4W?TuHD1Gd;0L{YSiH3LYQYJ|)K4F*C$q6sOMmm2mExoEmfi||5u9BYCstEw^XNWJ zh1Ou0m0)oh#C4UT2=^i=jBj)e51FDqq6)L}i)w~fj<>@G!k~MAvkFS|J@E2d64UAJ z{xA>t>wn9b4wjL|984tum2J>FnGTGO_44+XMpHWkxnl}!adcfCm%>z4A7-cpwk1vM zhFl^adzNS~JK8BDCS$gc><xxD<-z5UXM4|gwx%aTw-L=I$DCO2n= z0I9@&TtKY66i_zo9W5I*Cxyk!-t+clUM{C<1Hh8K?TCP^A0vH2VuJE~KlOyZ_o!hb z$XYYUyVsgG;z`TBbp$a54UYvgEpPGhofP#*|7D$$_bY(ndt&@sX?FX(K_olid^%V$ z_y=l0t<7H9y|!Yx>OIya#HPx9IzC)bsV^dVa&ES0%^~Ug`|hr;J3vVsNP*7$j;;oY zCHRSFi+ zgt45ZbUU)F9YWy%81+CU41e#QD>XHBeEQc|f_y&Y*3M4Lr5m7}Ofhyqq8yfDQ(vrK z?4Xg^Ftjvu?T1{!Dx>a50Nz~9=$e1dF1svfNj{0T$w2oG3jGh0;|MT0KJ|SZ{Rn@2 z!`^fBJ8Ce>JwNW_n|1mt@pnE=4T?=5e1<^E+ zL7kzf0_vb=r&sF0ET<_opg?=V<B3u0K@%6Cok?ZD%@&6F=_u zhyaUMSQ%7S1lNyyljMH6TPRS^9=L~XWg&C@qp>dTYmbv8AAtw;#hy+Y3pluU4DISO6mcDtI3}r;NLtC_%zmR@kVoC&!LEY}S)5IGn5Y~OkFFI#HmXwtZ_xE3r+gh|`C(DCQ}UUepSmmy+@_GB5yIsZS}^sxD&9WV2>Bm@6$& zjHbLiTv2;1!ApFe=PnF}q1HArS^M(`+e!G9kpI^Z*-t&1T80N=we{FFB!Ap)>J?zmv0&v%WX%!R{+?2c+Av^h7oS{op z`qG&L3>MDr#|{w#MYJaGhxdFI0m1p@ZCQ3%G-#a@YcS-rFNyofY|Tg&go^=u)VXm@dB$ZnEp@F>iTW z?)^L2tAt%7`d~x?kluKdE||vYtbh9P;JTCz@6VRtwT@piQs-eluLUr71z^SpsK)Vf zb9azo8|bnxmEZtu1Qb}$Ky3~PSB{L1c1=d2VxglKVIms~3kKM3iE_g#FW1(Z2kRIl zY*)JgpBmJ6rH_C%f)Kg2PHl{AoEYlftiQtfeuEiuw6pNs-oI(0a?KGOa`hPHR%tty&KW_?u#L`$J{W6qBLCUIAkX!GKz3R#q@O0|rA9mEZJ-GP#wltIBA3 zLEXUEF>voUH#fnk7|>7dki7o4HrU)j$rHLm$00kPYo4pym5prQ8s z$8I=joQZG`%mM6%Cl!?TtlIJ>4`fB2M0J9;HbmP^%JDf z_8os5YLlSEb~8f>KnXA8ap&tcm3Q0P&O7pax=0k5_+enc64DawhI~Ugrr69A-p~5g zWH&T9@;l)1ea3eJ1`=qXer~H^r((`k_+~Bp(H!Nc942i*8zJp-fCMvGcF)S)Bpk() z&p6lijsh<~pnbp8?z0=>dPocF4h+g@eiUS;j*p67Q3E8K3m!pdF1 z1GP^ax9|JV1eLXFv;-tWgOliCNv|B{SrL!)SrG<&RA(h_ zc}7Y!Ki|i7$DD~=vZuhAA-KBaQ^>~Es{(6Q48^`HS$1loR=rBaGq;>}Y08Q29gK%- z>gt|P1JqrvC@rP8SGHUHB$Da&GU?>~xQqKrCQHo`O9TGu0G`--4C7_<^sZ#5dw!GK z%hliO4~q+Nf_n9MjtyMz8JcCpItBIRG0x*#sJ-5R8H96PN6#T^&>*gC7Y|X3H+Moc z;;X|0O6;-SGya@z6-D-m9R20s+vbxZzDYWqt{z#`qKo(>xJ?FHEwl&l6YU5y`?eL6 ze!SOhU1qFLze$Y&q8ECKflV?mt___t8H{MVhToZs~9V?cxwOV zO|z z+=5*~Za2pnb&~u6xBc!@cv~cv{YE)TXbQ$KE21D=o_96kGb*ue&opuXyN33z(!C$d za48rEX1&5Lcu4r!j~X}QsSnwPmnVo?g7az~pMOLR_y{EhuYE`0*Hcrky%MQ@=Zq?w zT$N#T1?td^b4xBk5m(zzY|!n+7Q8+CPJPo1%Mvj)9vmosTP_#W)E1wAPy|nTQ-u*b zF8mPO=TJ`!cYfdL%+nwmtG;Y`6lj(Uas=h}g{$|b%O|eE7;3~Tarx4mCGwuV)rwn8 zf>$7)pY-DouTrCz=i3ffUhYx2$}FGG%=Cn{1t_(uIHQ_xmuFBPjSr(l+?+A)-N8D` z0{Qc|$J|5zRN@|P*z56(;D2$%zFi%Em69mL3tJH6)`i&UWmoY&(P0ZhoquJ{C+x;; zp6SYpip8ZR7FO0fir*CFD&g-P9v+SvP5RP@u{vXyU9vnbQ58f^#FI0QT#60BwU663 z(Ht#G<<(7u$3wx_?O>F{Q*4KSlr8Oda4ClktPLL>|0e!}Fp@iYS@v3y^@xU9%RQ zW)e?bJR^0(zAYuhS*5;H=3JCf1v|m*8CWQonFfjj z&z?Pd^JW>0Y2sOg8LEzKp?_QTB%;WSQrjj^SJV_{U`Jj}$l@5QPvHC2GG65!Jk_2*9_2AkfyFOvJvQ7pI{5-0Fa$HynVmU82(lVO427h|vyUVzf#)^`CEnL}AYzdyq*NC56gp~+!xE@W+YFels^z6GnRqb-{n-v+d zOVLs(?}~dLCHwVNU~!gVzW&hZ`6KhOA~$Z__(;Q9P*}LOwpOU|*AjqOspp$ycGf6j zuWAkEqHtsQ&15kh{+@}ocZF)FlA!v?o;Gwr@ZFnQ40(B84VJINUDfYyXj@J)fZo{f z-e1wkXSOH1M+bv^1haDr3ItV*EiE%CQ1ETo;p8PQb)*FH&iQUM2E&| zOGa~rQPPttxU5h#X@O_DREtw@1D?QU#=h;AkkH=twwSQ6@ZGy$?%wMu!xt4sbWWfm z*lyP^xT+cOx)T12u}w4ozfW4KV)vieJv}|m%E|%_3xJBXFM8+hh~k-o?SKN_TgC`l zU=F8HM&YkfMqz@{@A!3-3cOmJDnf|u$q2?*#iOF4z`$lOM+6KE%C;x6Co9iGoqt(@ zKTP`e0_>J9f31`neiPcOg8_?3P=RC3%+5xL3oPE*;dF#lzzxR>VE(XYUK_Ut?n8!Q zC?&pd7cHIO*^A*Tjd%iI?B@?vVL(>~90M@6TIA+U@YwRa!1E^vwgi)q;lU-)$d`Jd z*5X9`_vF^&Z$39RUY(h_YuSDo;BnN|)en*K;{~|`#5n4f;NN#SGTzw-%}8zbAZ*#n zkIHR{);?hQguwV5F6Hnq4kaWDFpn0W=Uv}*n;jx@807nMUt>tV;>{WmK@ll(UrHY3 z4n?M98sGnA?JbgV-(2B$h%1RxS2sdF^>YKnDDZkyx%l2*E zA1Cl<+Uq4t8|n;^vK8>>F_Dp`c6L8=b1S_LHmeGu*B4<9pNs~!l*=xoswE%17iUEM z5WK(W|6bhOO?{uMc74G!ie~Rw|M>|m++fy$LFn6}1{E6%A`e|rz$7Uvw*j2Q4{@`1 zJAcaTaa91QQ-v8wjAY?pyJ(+Xt&v^wZs+w~Sp5S=q~+Jx<8bb^eEQn&H^MdzB~&s=7^|C_t4HN z_Tbr}pZdi)C!-lyX&ISt5%{>+SGCdv)p(@ycklc63E{7*5+ANj!F~`Lb=ce6lai8x zlib_e8=W-+QpI2%Y_Jm~p`~EV78c#CHew4K7JR|&^bPJ_Jp0k-+ZU|(yn84GfN|KB zYXzIPICW~UWnUi;UmYVNr5ty;MX%d7_JJ!3=eZ50RCRZCWw>$S_Ae&|VsmN1psbsY z01FCCZ$^mWVm26I0*TIunc zRC$c&DKYNQA!|NM_Lf?8Vq&zx_~HSbU->C;Lt(NU8OJTbI%qt7vA)x{62>;$i{%-6 zFs(Z(x1aX>0`p2`Mz=rm3kZDoK z4*q@Ql{he;6ijjwy?Ym6e;1S0tjReD%C+$K1eV}P(AHx^>tQ%Zu{bUdy+sFNMw%3bbQXyKvh}kG)}P9cS>&b=e{feDqrN7(C1PNz_uZUCyQ;9T0V;t_HqoemmT zKp7I6c6x1o*T1D}g;yP3yn(WV>{d8T0z@%*;gqGsFW5Bw;_?3&qY7Ay(~Zn?^Oad< zq3Nb>)bS+)3+D5*w6+3o`Wp2MVAKfU5;9zb~B= zlU`d?E)X7AR2&`19HOE(^o4z9wkx~NvmE(bmIG+pL2JRIw+yc2b1+NSd{O=Cx7H^rER|xD{5O!vz+@rj&?T%#W@E_Bo zCA|j{=m@9Z)r#A z^s)R&%J!qa2Xv#v_J@uT`a1wf5D3m2<9aJ`xpxw}=|O;H z&nr}M05d!dC_mc}G(wU8R%hFm8_UR+k5kxKT3EK~P3B#M4Y5EmtALp3)yOdS25pxIoP*9*!4=&Y{72A6G00C)~(Q zTqy2(jub7wB%gBEec#3z5{f0PFsi9!SGXfFJHQElE3@XZWoGUsDxNqlh&OXW!Ct&q zeyFlS`~3ef_1$4jE!*25Dk>^URcR_9DovzHD1stQLFpZ(sg%$YI#>_^>Cy?khu#8& zB1MYyUXswHlMtnMz6suYzu)=eJm-m?y=Tv?nYGrt-t|ridV3HqN%#1W+z~Q-JrvV* z2h~yFfUc!9M&qVw+haM!5zg?VWf{-M3eDxi`NHjl8xOr@|71?4V^>w4kq6Ls*h_rT zTO4|>=>Q4iKK;{v*)6Py`{{Y?>hDOVHlzVX_x7@&kBAZ+{VLO9AfK_AZE0I1y%4u~ zNuh5vlqu)UI>QYExj6w^o;*gL=n_PtLTlFVydyV=NeLNL+Z)=dSqfp@LmO=;Hcfci zHn;UrP+qb~(INWK&Uyf@Us@roL)w&W;|z$f@1vCS9nk1gPvG!TE;sJ1<&EnVy)}-pACS*1M*~CNd~TDzTA#ebFI1GzbI|^QvVvN_75a zeBljl;-f+RXe)4&1WyO8KLLv{KcJri?~C7@E}1j-FwVzZVwKv95Du1=UXy^uCeE=s zeF%PrsX|Ck7TEwWVdHT>%mESvtkuoj!G*Oz5+qM%IC#FVxdSeL1y>s?1E9UDOY(@1qb0%1f+DZgBjDFPb`l z3D~=40KK2~>2d5S_SSDnF3uU>YTeaV@KQTw(qg6oMT2UE~IjJ2Up8hyGrC>#sjZkW6nG~qgFR`;(hiJS%5RT9XqLRpo^yXP@|$cTyam#%=&7^@Nt)ehX`YTh^rJtK1f)+okC5Po&_#3Zlb@P#Qn6;Zxb7$fbUL{_6EQ@xbzAZkpoNl z{LB&3aAy_J7 zQ<5H26*v)R3p*M5DwK-@W?PA``b`?L$bs7fYQ40md~ih zr8ilIoSYma84EHj$*iB7gT=$Z{fK_lY*F98e~*slUfKlq-5;EqnhK(`^z`(Ym>3Y@ z8gMv&=$`PUVpPC`%fr;w)Ics|rdwkqH=J?vc%4f5T-EnmzhQ%W;B%3| z4DMVZdK9y&=UU#yeZ<(m(OotKw~klXO*ekNu(%2b#VM;~t=^n8T7|5?fKd*7!CmkV zh}_^;YD2zn-@Zj~S(`oY{1t>$9C?)r%Pzj5Y^^_kf~p1J8HjRo2d+LayD?LgUhaY zd3kMZZA(JIjj4O?1K_r?`;`=y=MX~6`Aet!-={|?W`Q_8i{qIR&i{cX$OpM<-4AyD zHu+I66{a0sWmIJ0r=gikNMNq64Lux?&$A>x0BIPD4`wJ0GsNlrG4fuNCf*2*qfs2d zmyN@*@Vh#EAXs=5d7lV7fBrlG8vt?*NWSTbUk*O4I)m!?Mr*$(zo_W;)ogmFW>U#nDl?V{KVlWnAYa@CN*fa1IeRWzb5 zMk5WJyH1bjVUQAWD=RCo2JY_rUVL8#GR zfvigT1U_A5Jiqi1p;nD*a|ruE05}>{n+>`xegmVY?wH*78eW);+rM04IrOWs-wjjX zxhf^^zP*GxWE|PZr8mub9zVSV?;jhIN2@O+hpx9arRt-G4a&P4HebG;Er-m)FfhX8 z!qur&_k;EF%aWV!j=Qw%6Qacl!rsRzQ_f7H1L|!A8Y2C1QImNOc|Cx@v~R3!MhIq>Zps|f)zKsF%#p=gfF;p(?9hEbrn*(drbPnEs{&Qt8d|11 z(Prs9K&@vxKxokB-1Uq7nzje&?`bo2oEAslPd2d6!qD6M-yUA?;cW4Gu)sbK1L946 zgxt5_5~fPUc@}X?qCFMBqtg;bd5_G>p^UY~w4KknRIDanVcyp#;lb{URMu=EeEj$k zfMd|tuOCx?FKfO*Mh0>S(gEfKiISFqGCqcC3uv`sgFzHp^^1V5`B=TQd4*TK6AqdD z{TzSFJCLJTS;4(?jmvF$`wj{n`Kn~(w*vpCI)m65upPoNyDZYGCX9|;(V7xVDU*Rj zSk5erWe2K#3pUZPpn&I_bZeF^1}5P~fIS2!5}#-~9;ywHmic*bMc-4Cg{7tQNQ&h4 zDwZp!NCPv$1uK7}cR&+7Q0{6=Fu@%toU2qPtF)jLNzDbDW`ttf_tFZdeQKdzorD?+ z)d&o(Mmy&FtC?l`PUEOA*i|pZ1Dr>fh)wOM?$A-WmUPQOPEp<{Mcu7gn0ADNB7UoqvR?`vgK3YFzEv5VzE%y2!?A$r4e&o* z!>3PA^SvgE%f`&nAGhoAmEZPqf13ZtRYkLdFWXu+&{w&@|E9jLTMm+1QBO~2rn+&c zKt;#K{Byt(fb%L@LKk70L}(p`1>#67$7s&09@GFp9-r^Y1J2+H&$Aaj+yRdipvQ+^ zD^NG%$Cf-7cokSOV}F=`)?8RRl)R@i#A;;5Owz)z6~R$Z9+ z&(^hp_F34*u*h}k3_q{J?Poz51Y$6A>4J}RZJ{X9ZmIVbTGOhF4OZR1@77s)4=hUR zlh|*fOh*&f=3&D0XsTaJunl)`Tm8RcdHB$qJQDI2Z=$_%5cYM{oGJiODa>hQm|~=X z=g60G(hnb1G>xY{efC4MqV;I^nDa97wi<2 z%Ls4AZ>C3Zn@)v$7t1Xpbsriu{tBO284N_aodJj_c{@}aBiViHX50v}Bct(S2#`8lJSm4*eWRfg~1=hWBN$HvBl*2n*qOW|}m_ zb3>mX1S#$twftGo4gQ@qMq01r8z@>AP)lBLoqJ~aVsczjINpNmKCDEg6lr*LnhO?o zK41n0A}HXx)14R?7-VE*WT||~$);dKRfgpQcvfxojaitRk)DEcCjB!MH~%aRkB&keNU3vidk zGt;rB%+)yeGYNTp99EVP@6F09j@nzQTP3QkVSgZ@u(-9O)0U1{gKv2W2wo4>`f z#VVm^Bczp0?L%5y4wR`aVX~3Ge0b1ceNGf=B*SQ`zUXNq0sFZ7O_#Nx>J?B!dOyE>i$ zlP?Ba#>!W~26%Yj$IC6v-LUqxw0gw8%TktBsdd}(s+ojQIW!HxPuShS#x#={46jl3 z!vk4nE*MiiMtrEzvUYW5}BC(*Guacqa*;o}MZ- zNh=0r!1W6fhbaWE`6$N%T(|Dgt~PDf^Q1=$X;VcV38RK}v4`z%ja6b~3oC9u*r4&p zwY-3UAWG_&*~g5{Q`E-;Bj&MT6#w=j*G_B@Tf`=$ePV>GF%{GF1A~Kjo8H!@{jXWJFGCV-AB9cKNvDM@dG2pcy8qZuCcbij&<^+m6s7h+RqUwp zlNX)y9D`@(TLIl+@)-T@xQ8}pafb-%9ZUGKhtRBqKZ|FHD2w!*&&VrylBsdtaj?`F z8^kkAYRR;?dg1|QVAc;3C-8}y z&}}4U`c+FN_O*oP>v)kv3b)_XYywKGyR^QSqJVuMoKWn%rRC*7eZw(Gg`I^%T-*)7 z#b6hLCPjc!1BwwKECL|8EtHI`ZIa*slFw*QRvtR^+xmqcGN0HqDuJ|L6AvAe+iJ;| zXC2==Wf_7H76Oh-0h*D}1y$%ahs6CTm_j!RLL*k-ON!z=#lw#uNgZ{wr<@jdi$W9a z?2ooBq{^ z!_BEz1=QIh|2<8&-J;|&Fq#)z(5x5m6Hk&ll5{H8s5*2-3XJ3-D=^K1gY)DlcaC8K zAhzJ~c#xO_dogRby-DQ+C@?4#+e5Q+IBk%%si@put{1li*~KHCV3SXl`%M>Jy-pPhT@l;RvT~FB$-*r zu&w&liz*3yDDZTz!xUeBY(4k|+dXhh=S-%;Cq)dp(cxJMAFZ(p*nPfC23uXvBp9$2 z*$;HL&kH_6A(y@}ld_Mm&X9(|?7A-$h7t#38)KMls_}{eak?wA#1$)1!S;18=XJDm z;Y)NxcXw^#b37lH*VYRWH8i@mSfNOS^1pL!CvTK&wr zvta&$Jyf2>2f(P9AP`%xw?XMMjVbJj61dc1TnyQ$&rlGKA)#MP!}-qYLWp4vS=Bb3o=f49Mv-|gJqGj5*qz{702dt_j2aMhZ<%grXQU%v(g|Ct$w&1KDt-Q;9+U4;AG zi2!Mg6ZG!IJfWm!ned)UW@?X3cj_cmrgHfms5vdZ!<@)8r*fP(0 zd=e2r@Q|AT>a;xcZ)s1OY7VYKfQB@k*fc_$7a7@IkePv#q2&xh!kr&I`)rLuQTgRd z<({M8dNZ}(Ddh~zKZ6BQSUL^yVY(M$0+qg^_i;w4@o?w6!3RrF+Lw9tly?;>(;WHT zs=Z29`K3Yqy4b-Qf*ZxwUU%AebZnS(QeIhs-LE?O+$#j2|AqTlJ~1&DAhdAj&K*#y zq3uVXp<}DO*}dFp@V=}3oObM( z1@~#_N#;{hiP#XPuu}6fAYbPaD~2%gCn(#`cg99?YcDS?*}E-(sKknbEV&K3-9keL z*{*EC)^K^AzaUer+~ewSkI#IiyY_0|`I11yJGLwCT(+}|#UBZ^eWrz63wH+j>>_Sk z_0gt;?3{cB5f=V)Rb?|!hFgZT`4?tb6?1Ln;a@;mpj1f5?OO+UPcn47=&_Sc@mrdo zDnAI#g}hpyvR~LJ4~;CYdtTz2`_J}k7o#b3BDqYt<~a>CpB(570k^C3QIq+kRQZTW$1_Rz*tje;|Lx#*pB|6wa~7@ExMIM06p!qy~bYMVLdz4i0UJrKJj zqV8^NTfrxt(3tJODDR5yrfsoJa=+k&IH>U3evR>gE$keogkCZXduh-^EqFF$$9Ci7 z#o${ngiGJrzvl7cWU-m3z$a&e(Ab~F5p7hvU&$gqvr0dhmUR>?N!dnt{+vrkM~`g{ zGQHDud3^dHGTyow+BtfDUeLmoS?Z`OGwHp1bH>v;O!++8(Ar_kJ?(iLA)ESK&^JPF zaYSi+Qatf5!d>!{iedJvz6d5^emAw1#1pIQ$ErA!MgWowvhS0G)6K!WGSg)v2su;l zF}R&i-&AO6v=9I^-qIDl!)s7+qv?@t1eL^T+j?iBKwwK;tUj;q(IebpI{|j+Rs{0j zE@{FWPaib#uh(G^VE<3(NHXWC*vfEPL52&|gRE5mc`W2r-KnErZEiYc=}fjG94pjTnJxs=O)=Iv}} z9JXIQ+|vwF&`z)i&#%!4OgvKcd%N@&>v9f>cCzbvLEQ z8R^N%=lph?7g&XM5a5r6_4*=~8~<4_5te(BO}ShoncxN>q0PdE9i`2xiX9jD_v}&( ze|<^?hmgl9)v(c@oNvQ=s+c#pP|CmVT4Pi?xNm-L=9}N57_S?_B~>9*rLfXHO)^UPxIy(6# zYX9|?L>kKPBCB}bv5$-Z>fx%S+p_D7|h zdxOOhvP{u!Ts!chuysDkTawN$*Bq(Ul1V$s@*ex79^O_pT1_VzHbO&Z0-^X9aiBjB z9^CLp^v|hkR2jlR)d^6`9#`R1@HBMr(f||gykPEk(R)Q3O0sSa&r)6rqaoBve3J?w z4oM#0I|m@m0xt6rCpDErUYT1wFnRn=L>`7zmzgdLrxMGFdyK|h2UqMg}M z$_fhLDyX~n@89R=_al97KOvo8ChQJ45tcfxXhJZgO@2r(d3E{XNrt)%V-m3zLOhTI z90mn^4CZ=BytS#R<5GV{b8|B#H7gw>V-talOlb)QPJL{I&G~>he}qR=awyQ@O6fk? zC8?qTts!jG*B>@J9n7-VA11~a^;YiE_H9N;+wWOs>c5`7HlPS(FQh&9HinSe5#iw_ zrKKReINn>~Crw5>mhZ{U8{CVqp#a2=`Pbao?`e0HUw$S08=zBKGU_o1FhKPvPS^@C zUNSPPoe0A=-3gC4V1Qd*XaAcd(FKxoP@n;lQMTgLmDj+4=U_90o#qd*@Xvd3fCU|MwCQ&ZzW#E#`=1_!K@U|G>@Mgh#b;uHhP6q+yN`UoF4 zNYy?-I{*^}A~g=zSb8&!R`4$Q5LQIWXi+^UH#avIm*2!bsI_pwfUXK7j{HjK8M3=c znDYU+#t`X84m0>vPHrCQn2u&>+HWmED&&$@>0t=sjS1@YU#_Fp9=-#Y-Ps($(bVEj zLctx2alY~-A?KE3&%-7w6xw(#qbVdJOIIcS4Z(R<2zA=Gt1%;yJPT}Wv$#2H8gx06 zcZ}Fjzx7_;r=t`DA=v6E2)zDfyl+QlcTveTSF$@R`Msk_VabFCrbw$36)e!A0Mm}>yN*T0vjJBOk69r%Fh|gvOSjEuf^7U zY9jzH0mvS|WKAl*)n)^iQGSx`j=+>d^WTq7zAHo@8;MF2RK!6M!Mb;~_SGG&;dN>k z$_PxK)GUkxX2HPrTqu5Z+0%N&h<|+dPqCwQ91Ecr9Wt%zF0oa4=D9%9qc^`cJQEu* z2uX&byu6-!P-|$e*R96akTY!9Eg+|F(6{!`Cs;phy-9v5& z=Nc&PtQ6KSs+wxad-F7dmaa$8t?L zU_3X_@7l9OsHE-`Q(dkdm3{Ji`0#cV6J*@11{9IFdW^Dy?BVO9Lg+$KLX3D*oSf;> zO~@8&b(oeDzEg92LC=9Num!pUMaTZk8@-R(e;<;C4M=P&V!cWlWp1tWgZ7B9=_Wrm z2n-*&_Q#ff$C!fbJBF}&z7pYWcP+4G)loXHVB&d}BO^HN2gl)yV(p!&4nIeeA20*} z_AIMayzeZmzH%>EB=!frh3 zO@x64r|?G$FiH>a2yXyKnXjD0vho1Czj*1=lGZ16ax$_@fHODW0)T7H6aNEprBpf9 z(EwnJB4L;=!4nFG)NlE33gldN|xs$MKM@C>bz%BA)uQ;L2902tJ8XX!{ zIF^}D?6admQ`x@A0i_(Zo*j`lpFQB{T>dapVW9^(sd->QONN5`&d zZG6UdYqk+)QK!#v!9E6lZ6f7oMu7YU>Pw)&GOa;I_L#krMSJ73BSdRsR_EQIe(nCn zYdaN7{{@#Q`2Rm9((aUi+6 zmv9CRpOX)pgI%~DWRsoBWgryQ44#Uja9#jxAK*onmX^fm$;f)&0dV?Vp3kWHS4PNK zTCqTQYVl^pY2WP869{%yM^`uBxSn+Z*yW8bf>}t*9p$er6XA40FQTsn1w~v5vT5VI z`#H6Eu)C#^gxRX}y36b9qe1&d)+zA6^bks{7=m7eUkR$c$9W_Ej?@h%q{2V1G{~Z^ zJ^+etza@Y{{6-_1-&q6D))G89k}ilhR9{GIp7ZY0pZ^AZ>-KF~W8?ao8s?M7juFfP zS}cZd-{2;uayb}&l)Za`=zI`2F*BPb5<^Je9xx62rMWR%0rvg5YC|#7oLUBkg!BNu z=2F2&(nbry!(PD7U$_N=UXVEFr^Nf$)p-GMnl#^cqcB4b=L6h-Rh*Vfh#`TlF3&|y zp7Eiyw6wTb;4BCg9t!}nLf_~{i^0cK7`R3H-wcc77glAliiksirvK{yVWLQDSNz6ptlJQHI0-|GNr z9H_g{m4RV`h}#aL`D0>YqOb4j{}~Y&3p;z-+M2`v9}!ex2{>R-;;_H}zh~P!IT@g! zEdS?&fuRBtHjush{~wI4@z`}}3%zyq>ec`M;|5SA9~&Q^0VmtPuUWfQ77l_60FTdf z{_nTq*9{+QY9v><4ITFKz`XhaDhf<1V8js6ff!qlu`)Y#Sh+B!HC!MzXs;_BP3|+6nYiX>y2K z2S!8;;KxdVjHD{&3>*z!MG&zX=7GcE6~*c4W&m_6GhgUN$U?c?u8bKgyc2zgSiFf6-BYR0-Jq|w+A=Gc0}I=9@~gj=_d^dDth@L@52tTY5I&OMn<9~x7OF0#GSI!*$1|ORN^@n89O7E_Xdw2 z`%J-#Rp0ZV_O~a!jqmZsi`b;D7g-MFlJqUrEROQYL@$wS{cbhJu*M}!Qp)SVrPQK} z)MF^KG!YmZjN%76i;e;S-A>}ih%1kmPhU*=$m zt%#3_Ime=2jq&$XYC^M=R(l`qE`Sus>s5pCuNJ^vJ4Hcptfn{mK5Jc-k@b*0W_Eg* zoMbngcIe(-AcJ#g2{(nxLx9$066Ouid+a1|u%t8abDZAHo1UI#fA-DJ&Ta~3(f3BA zLSE(0QX8mL0V@=CfPjxwK(T+gdvEu5DgQ9j2BGlmjgVEz$&zCaXD_cKa0n}I#!Sl) zNgFNsG*lj;1&Ewyo}_|sD*S|B32c#MpEjgJp3MZxwRE%G<<{k8t*Qqrz;GbUvvrCjHKZ|COWV-a#{c5k8GX1*YK-IE{hCZgAbQrCWH zc+edL2$$YJet;ZX!gcNQMIxA#c?))61Yqt9KpSJpg}u!cQK!Y1j*gCMqCkpO5h_ou zk|?3LucN0|a#&?>p_nq~CzbtEIXTczxU`B4t+=4VqaQN&^7?M$Op)Xxi*l(4+@MdS`W_L zbB3cy3(QN=Bnh;VH81pEX7GV6^xjI7J#u-!j`7W?Sybg7cbNF8>cSZP7iCcN+fb)5a4&|jJcjXoN1#D- zpg|kt_$u+>)C7@j%`2&A-;Mztcm0Cz^Uh+z+bjJyh3QsRZT@MWVLj&l6{_O(>d9wD;A} zrnzuUEU>V(LylO9JLe{f;jXP;)<63F{Wv*&hI)>Lr4b??!?+>B|LzKZ+gC=hP)0Ey zc)B$4>n;9de*R?Y`rYmM-R+s(+MnwK3oNVc5bP&-C8S3?WC0Vj&=`$ zX_uwdoXW6+tew?#Ku7d#Yuv1RejJvaoxQWO1Fjzc=X+l{$bqC+d0nVg*8^<-2GF?r zin{pP*L=J-@!P8AprfYdozaAx5tNSDN32OWX9N@D-@nMu{XLq#(cLaQ+BG5iYA2el z8SVWU-jfu)+M&EYo#FOZP15z=YRz|w8pytD`@V}}{Th@wjhpB~mj}WfDf$1tHEI+w zYGg1vurNBfV}ym*jM};i7_S%DP8k~aptrnhkXEkR!+-b+XAFWjRhX9E|EnGG}i+3(}+?oLuk>fH;NAg^Rm zA%DsDnW2`R^XARRbuvcgPH0y)Zz+?F)0Qp2GkFa+^9_O@;oPnY1KK(`!Yd6WWeb|} z3T{Si?}!us4k;l!YF}Oz%`2()d*gw0{}b;sbY^Y!jD{{klz;OIaaE>W3x$Z@iSQZn z>7G4$88E{eX-C@@!ym_DM_N{tUL z__pv62@y|!=%cI!Zw_V4cD6bTD1Q(#vy6Y<9Jr40Do3sb7&xq{82J(&InL*5A}c?L zYio}HxAYt#KGfa43VNc+(0)Zq9RW^q@0zq%4Uir4zfolfd~6KH)!iM02Tz|qJ^0f^4bJH|?sqsidM}r8 z0zpD9E_uAvi!OpfmO^(WTM$C%Qyp#wzfeSYydRA4`YR#Fq+ijGAA0NaJNVP!yWb)1 zmrD_p)NGRNCL*57Q2G4_C|dW^u+YTXJt%gjq`h7F7uESy3RHv&5T`(`l{`GW)9?g& zXXv~Ri?^C#XD{2o5|}lE<1{;f7XjN$ z-eH#ZO7IBYAMWlBuEMnhF}ZInz5%Ht2ycLE08vNZ>dStq7Yzgp{(}uPA`zAZDI<=y zugq#z9Ac7iK>ZqG3Af14*YX3sHqWan&}U0MwY+O_oer!R-3KwsOzj{>ky*T1QWJWi z5`pD{4=?Wg8)ORRQUOZC-tI&1isGiU7hi75o z!8e_*=o%@E;Z)u^aA6i_XNBCi@F3wdu6FXb*~ORkEdB-Cj}%4H(10YQ<3+qkpI?v- zro!IOWIs=*_~X{!tt|$6p1#<$hjrCA!;R#kK1E>8P*RrGH{x)$aq6@iu%-;9nu_YZ z=aJ_YJJv;~^by+fXMV+kV+jNcY6{%|4QLgQ0qwoZgf;?bkWiRtxkL7<=P8TGg3YJ1 zm&9GyI3z<$R3jWnni6IjXzHUD2HbKsPWQq6<*UrR?F7(SQZ{T|+HrVV^0HXOs1}lf zwDRXzo<=dM!BDhuSVetnYikA1wibm?PR`DzCMGfTmsrHV=XLk=6gsaAm-RG!q8#I5 zP$_zs02S-Q`AsBqSg_!ut8=xxJ+b1 zG`4f=Z55qK$jxP&p}Nq3pJt#D1Y|nxLA1cxbS6nB>0aG0lIcu%w2mySGYLT;5I`Bc zO_$LSg%>bHIUxdBjh*JR!F3O_Fcag9@lRBT^j5=py2U2GW$QFzMSB|lBU)KMa%hff zcTJrq5W7P$k&VkFem~{+ub>Pyzpy}M19~A`j}EFfxPFy{ECaeFL1z$`?5J3RcU@M> z1YMK)AvgD_?x8U(;5^eUwJ<~`vxT+)ok+;BFg0Zt(|b1QFyBmw05zbfJ5CbUxp_6* z!GB|OQ*Jw~k5GA+izW0jw~L43$pcd+pKfTHJ#q=c1z%K@%Av8Ed>*OOcO{4BfZlY| zRm$*t|G%#S8wsk-i28j8UXn6bV2D0TN$DsJuA7R+5dcyIgUa)0M5T_eLb z!c${l-XmDTMW*|jjq_a^{@0zAB42A|rJMdc&q$R*pcQalW!22|HR!D|EtSQTTLD@2 z`)CZWL8aYj(HoF}T$6CI1M-!;>tWKE7W` z9gYC&xSVf4k^w4s-1qL~^r^=@ss*UfI`1p9gh%)1hB9iDa9J63*)6w!G^6vWLQGXf>@yD^oy)u<$I_Sr|VUwvlyrTDS ziI(Id>Kn$>CUbtSV;&99umW~W(H$J&S4YREk00Mb`1Zx^E8kvH=ajm*W8nmyy11LA zw6hEx&wHy}xxA=5Pso*r9K4~=nIhKt$$D+3>BxG?pwap~H(_!;KdW&~H!5)h)s;9F zf2ek26^^$Z8Vw3gq8w;LJQGy=<}jgP_y=LF8L-F76|Mt5%~=#^3~{ux>m3--FM3U0 zuq%!>42jEBdWW*QS`3s-NVbDKS6^2lKBmSQGsI%uA;N<#rh^waBDm3O^-6_&kx znM(MAz>DMl)i_Qt5~Wm(=2zUM4>IUw>?#0u09_PFy=<@pXbWIK2J6l+^s2B@q@AH~ znOy0yil=sKcV25Gf>^5PtfIW%EixP{t+mi!(a^apB{))BmT`RF5uwXoE-O;A`S8cP z0Ru!V`?z&{Vb_b?eQPC*GAM&y%aU4Q5hngL>AdF=Io=p%Dd?A*ANTT+#(eeTeBbJE z4R&FOX*svC=IXqVyv^2w@?G{pKF@p45}#7b@>=GPf7~8ibdC;smrJu%F;5WrBb1z)lqSo3}|X?eZGXwp`5dzkmgN-&quFjt*o>`a)KLW_6B z#o`NcEDXWJuLFOCbL@H<(nC-rz>uIuO*LA*vqN<>C6Uy7_aOkq&M; zvE~U&jr37c7dle!2^4N`IQM&_%Oi~DVOEg(kek!XQs&N(?B%j)>d5m1I}cyI(&HTG zpbdPal@YIQn)mX(Fze-8@_J>WC*_E)oK3)NUx+YI05|pAbl0{XNBC;lLV1VW;rw|mpwO~;{r34K%ZhUw{m2WYklN)zgAwJ|F(&+42sHl(~ay~ zf?{vNjK~_|8*e|zO9`RetmP1awEUA)DcKcGC{dQmbpGg5Tx{K@a!0K;R|hiyR++TUN8&tG0-IMc}jJJ z^QN-=pFa>zx=`Wk(m$J|HQpeT&Q-JMt8M`$7!dqk2gL4eq97>6oZ+Xefs8n5`pZb_ zBe1>EoImO$9#&fUSv0J;IUtqNiNg!K+m>m6Cj%#!*Jy<$Fk?0QYvci5-UmX<~j7DNItQ;)bNe-ZNnG5u$ zHACBqwr}v2w04h2s2)1%Ktk)5 zD~+VWAfS%$?o<_IdhSXq;W#X)MDbj1b`8dl`)N-C9Ulo?K_<8_pa%gV>GH@zxBvFj zbIJDb>Q=0M8WZUxFpD0W37BRMR3=-M+51n#-=Ty;K4$x>jQ4Dl< z!D2p&i3Jrp3OMH`+naDq=1Gq&iycow6;3`-`mZ$1V!E~Ct;d6CEObbm(yjAF1-qc* z_{#gzso#p~Z>@3VNmYi{YiX+5p2F?cdmtnfXZ4D#!fmD}&?k8dhlzCWE{?`>r$QMc z!fm&g#sNjfIuj8L9hnjwp)1|i1*nlC-k4nI;lhK}tKg%2@&gHtAsh#Te z&H0ql=T-)M;V&cTLHGNp2b$5HJ72|`+g{Cm)u8rPBw?DUoA#;qSqk&HKHd^$gJ1uq z=GA2G$ zdKUjJN&JvPyKw4Kuyo($tTZUL##q9#(?u|l+Tb#ap>eUmtVc~UMsBjr13r7r0mAoW zxYJ~Kybv{*x#ypZ8B*Phu*3!LCp8k5@v!l5?Z^jSj+*}P^!)n`C~?C?d2Zc26`|=1}VY@22&&9>|FJE5KrjctSu#$K)S!`5o&x}-hd*8)|ssB1vqVF|fv)jNt z4@6jaZlcX%4?oHQ_ET23VJ3n&C-LTb$(>Bv7>uv+*E9nBA(igqt$kjVfqV-=lp}0& z`VI!Dvn;=S{52VKShi0_)pm3c=zjdcmQB(*#rMlI10~jYYf;y@3_^d;sVAxLOrJaO zQMIYWSyr{J3P#;hmLILabR`pgY`w6&I)`S{H12`1A_2OGPoJSE*6h&1{aTSOwOTQw zngD(1*3U}KYxlNH7xuGea@~Az;-He7%`7Y|HD3eu`#9r!-GoGtT>B-MLl;)*lPB_Y z-{Sc4oELlTf0bSDB%C5OouF(MCaT!@Zlf^7C0i5mFr?Q*_|ffo7$2(_kezc9hrh}9 z^b3yY%oIdHJcPbEqCv;i&RJjFRXZT}JDKST8Y#noH9GVS9Prg71=nEi|eh_X1KOy+4aZc!P;}@@xBY$Tp z)f8)uPA49`kw(qG!1bKuk&l~xPfbnD%-nu&=(+@rHvEI_AjSX{k<=koF%)~oZ|rJv z&#O;Thm{#E7J5CV(1m%=GW~5<@W+cc>olR!;hXY+mRsO=>I|;Ciz~+bRpl-#xGwm2 z-6#1Cw?#+j+wCPrpz3ls1dI|b6@3eB_VY$ytmBviozv%_N#bI98rrcCHKk^%Rm$j5 z)?9ZBnN%Y%ree8CYdH<%aT?T>?`o!+s2TbWovG!0kW;{q($euAa$b<`%fCJgG>*VW z+`VmrE%HQmysSN*VW&v1vv7qS!ZMW*jHmT5M3wXf4|0vR+l|>&a zEP2^WGDnBYGvPc`!!d^6(5g&u;`SW28%G@U|EklE&R2mZU@kEUxa}7j0lPX46nLN` zDp8~)Z~@u6Zrwriy6dYM^V zcK>;TiPVpGe=5(b$6zuRBqY7|8c7_j2W}Xr#_u9F+cd%h~ygyg zGt4CF5OM6v=IAm%&JkK7&O0s7a8AwCAMR)xQBpZ~_i6Nv6)Ul+L88D%3mB zMuXtne~n(vZVv9CcfqeX1@42xaa;_!Rn#V)-z@+C4(`G$%tf(CVEikx0dt=j4(4R@6U9lqP?aVjejtR1`wny9gNXI zDMvIARu!Be7__r+%)Tf16;UJ!|xyH z{=J*830X++}dcx;nKf%slK2;(o`w13caL6HX7HA|vvs&1a*53tP z{|9wEmcyxFlMO2_euBkbVhxRy7%R9d^To$H@02!awAq-H6PS{0$Qiv5AU;;Wkpm?k z+W{%kaK_$wQhx@Cj0BQ@pWBs)KW31IWiDCrF^zWeG04L+X37)i+J?1JdZSuH5QnLxRycBMwNOfJ<%&=?GK$|g^%&uT*c6F66+!{5W@Y-bWv-v$O!DdQg$i+rtP(ea&Z;;%kxgDAOvvo#h zDqj@N(&W>vvg)q^X3F_X>kj<)@YH5qqsb@@I_2Fh3?+YyBmjcQ7(O~8^lsx?j)n=o zEWpszgSJf@3nDK^Jr-9E+HHX8MQm23RjQGFc}pT^$PENg%5MoXQ?%A?oaSZoA4%zq zXrMA=Qj^6I3~nqkbng(&rHXRBHqi~FVVN;g)^@F|WU_1lR)2uzb>}Ap6%`(ojL8uQ z9S6S<|{^p`C$;HWm1CTu6yGP7!&|Ti? zY)ZM3u^fVwv13@gSs->enaN*X{Ep9d=*0WMjwuv96-&II!bI^&d&6Kodd80c`2x?5 z_Cw=p++wE%pQSPWB5*mu+R_vr1Q9NqXdA?h3?(mU8jg7U=`Lr z_1xSPkQ(%R1jbeFw5225ed1ss8;0jbdfDTmHc9RP`$9|_4(SJ7zb@PY+6@L$+LF&< zo-B4}lIakeNxUTfpmmElGya`#`Jw)kColuAhK$vhWXZ_Df|IfOGF4?=VPA^#PaF!I Q86&sTg`%`)g1qa00mro%^Z)<= diff --git a/doc/assets/structs-reorganized.png b/doc/assets/structs-reorganized.png deleted file mode 100644 index cd33bb9c1e0202dc20bfc5d86f8f90c99cde27f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59306 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 diff --git a/doc/assets/structs-reorganized.pum b/doc/assets/structs-reorganized.pum deleted file mode 100644 index 6dc4de9310..0000000000 --- a/doc/assets/structs-reorganized.pum +++ /dev/null @@ -1,129 +0,0 @@ -@startuml - -class book::MDBook { - project_root : PathBuf - - books : HashMap<&'a str, Book> - - renderer : Box - livereload : Option - indent_spaces: i32 - multilingual: bool - - new(root) -} - -class book::book.Book { - config : BookConfig - metadata : BookMetadata - - chapters: Vec - - new(title) -} - -class book::bookconfig.BookConfig { - lang : Language - - project_root : PathBuf - book_dest : PathBuf - book_src : PathBuf - template_path : PathBuf - - new(root) -} - -class book::chapter.Chapter { -title -file -author -description -css_class -index : Vec - -new(title, file) -} - -namespace book::toc { - -class TocItem { - content : TocContent - sub_items: Vec - new(content) -} - -enum TocContent { - Frontmatter "Chapter" - Mainmatter "Chapter" - Backmatter "Chapter" - Insert "Chapter" - Spacer -} - -} - -namespace book::metadata { - -class BookMetadata { - title - subtitle - description - publisher - language - authors - translators - number_format - section_names - new(title) -} - -class Author { - name - email - new(name) -} - -class Language { - name - code -} - -class Publisher { - name - url - logo_src -} - -enum NumberFormat { - Arabic - Roman - Word -} - -} - -class renderer::html_handlebars::HtmlHandlebars { - new() - render(book: MDBook) -} - -class theme::Theme { - index - css - favicon - js - highlight_css - tomorrow_night_css - highlight_js - jquery - new(src) -} - -book::book-[hidden]->book::bookconfig -book::book-[hidden]->book::chapter -book::book-[hidden]->book::toc -book::book-[hidden]->book::metadata - -renderer::html_handlebars::HtmlHandlebars-[hidden]->theme::Theme - -@enduml diff --git a/doc/doc.md b/doc/doc.md deleted file mode 100644 index 961f4926c6..0000000000 --- a/doc/doc.md +++ /dev/null @@ -1,94 +0,0 @@ -# Doc - -Diagrams are with [yEd](http://www.yworks.com/products/yed) -and [plantuml](http://plantuml.com). - -## Data - -`MDBook::new(root)` parses CLI args and `book.toml` to create: - -- app config settings -- `Book` for each language - -Each `Book` is given their config setting with their source- and destination -paths. - -The renderer can then render each book. - -To render the TOC, renderer gets a Vec from summary parser. - -The renderer walks through the Vec. It can match content kinds in an enum and -this way knows whether to render: - -- front- back- or mainmatter -- spacer elements (vertical space in TOC but no chapter output) -- insert chapters (no TOC link, but the chapter is part of the reading sequence) - -![book data](assets/bookdata.png) - -### Renderer - -Takes a book, which knows: - -- metadata -- toc with chapters -- config for paths -- template assets (`template_path`) - -For generating pages: - -Book metadata, `BookMetadata` (title, author, publisher, etc.). Just recognize -those properties which can be easily anticipated. - -If Renderer needs more specific data, it can be supplied in `book.toml`. It's -the Renderer's job to open that and parse it out. - -Chapters are represented in a `Vec`, each item has the chapter content -as payload. - -If the user wants to store attributes that are not anticipated with structs, -they can go in a hashmap with string keys, let them be accessible from the -templates with helpers. - -For generating output: - -- template assets, `template-path`, renderer does whatever it wants with it -- config (root, dest, etc. folders) - -Renderer is seleceted by CLI or default (html). Each book is passed to this -renderer. - -### Config - -Takes data from: - -- CLI args -- book.toml - -## Structs - -### Reorganized - -![structs reorganized](assets/structs-reorganized.png) - -### Currently - -![structs](assets/structs.png) - -## Notes - -Take config paths for as many things as possible. Let the user organize their -project folder differently, or allow `mdbook` to function in existing projects -with already established folders. - -Add config path for `SUMMARY.md`. Default is good to be in `src/`, it allows -chapter links to work when reading the file on Github. - -The init command should copy the assets folder by default, it is better to make -this choice for new users. - -The specific assets (CSS, templates, etc.) are closely coupled with the book -content when the user is writing it. If the templates change when mdbook -develops, this changes the output in a way the user doesn't expect, maybe even -breaking their book. - diff --git a/src/bin/mdbook.rs b/src/bin/mdbook.rs index 2d2bb0b0be..b8698c6a85 100644 --- a/src/bin/mdbook.rs +++ b/src/bin/mdbook.rs @@ -29,14 +29,9 @@ use std::path::{Path, PathBuf}; use clap::{App, ArgMatches, SubCommand, AppSettings}; -// Uses for the Watch feature -#[cfg(feature = "watch")] -use notify::Watcher; -#[cfg(feature = "watch")] -use std::sync::mpsc::channel; - - use mdbook::MDBook; +use mdbook::renderer::{Renderer, HtmlHandlebars}; +use mdbook::utils; const NAME: &'static str = "mdbook"; @@ -55,7 +50,7 @@ fn main() { .about("Create boilerplate structure and files in the directory") // the {n} denotes a newline which will properly aligned in all help messages .arg_from_usage("[dir] 'A directory for your book{n}(Defaults to Current Directory when ommitted)'") - .arg_from_usage("--theme 'Copies the default theme into your source folder'") + .arg_from_usage("--copy-assets 'Copies the default assets (css, layout template, etc.) into your project folder'") .arg_from_usage("--force 'skip confirmation prompts'")) .subcommand(SubCommand::with_name("build") .about("Build the book from the markdown files") @@ -92,7 +87,6 @@ fn main() { } } - // Simple function that user comfirmation fn confirm() -> bool { io::stdout().flush().unwrap(); @@ -104,25 +98,24 @@ fn confirm() -> bool { } } - // Init command implementation fn init(args: &ArgMatches) -> Result<(), Box> { let book_dir = get_book_dir(args); - let mut book = MDBook::new(&book_dir); + let mut book_project = MDBook::new(&book_dir); - // Call the function that does the initialization - try!(book.init()); + book_project.read_config(); + book_project.parse_books(); - // If flag `--theme` is present, copy theme to src - if args.is_present("theme") { + // If flag `--copy-assets` is present, copy embedded assets to project root + if args.is_present("copy-assets") { // Skip this if `--force` is present - if !args.is_present("force") { + if book_project.get_project_root().join("assets").exists() && !args.is_present("force") { // Print warning - print!("\nCopying the default theme to {:?}", book.get_src()); - println!("could potentially overwrite files already present in that directory."); - print!("\nAre you sure you want to continue? (y/n) "); + println!("\nCopying the default assets to {:?}", book_project.get_project_root()); + println!("This will overwrite files already present in that directory."); + print!("Are you sure you want to continue? (y/n) "); // Read answer from user and exit if it's not 'yes' if !confirm() { @@ -132,20 +125,21 @@ fn init(args: &ArgMatches) -> Result<(), Box> { } } - // Call the function that copies the theme - try!(book.copy_theme()); - println!("\nTheme copied."); + // Copy the assets + try!(utils::fs::copy_data("data/**/*", + "data/", + vec![], + &book_project.get_project_root().join("assets"))); - } + println!("\nAssets copied."); - // Because of `src/book/mdbook.rs#L37-L39`, `dest` will always start with `root` - let is_dest_inside_root = book.get_dest().starts_with(book.get_root()); + } - if !args.is_present("force") && is_dest_inside_root { + if !args.is_present("force") { println!("\nDo you want a .gitignore to be created? (y/n)"); if confirm() { - book.create_gitignore(); + utils::fs::create_gitignore(&book_project); println!("\n.gitignore created."); } } @@ -155,115 +149,40 @@ fn init(args: &ArgMatches) -> Result<(), Box> { Ok(()) } - // Build command implementation fn build(args: &ArgMatches) -> Result<(), Box> { let book_dir = get_book_dir(args); - let mut book = MDBook::new(&book_dir).read_config(); - try!(book.build()); + // TODO figure out render format intent when we acutally have different renderers + + let renderer = HtmlHandlebars::new(); + try!(renderer.build(&book_dir)); Ok(()) } - // Watch command implementation #[cfg(feature = "watch")] fn watch(args: &ArgMatches) -> Result<(), Box> { - let book_dir = get_book_dir(args); - let mut book = MDBook::new(&book_dir).read_config(); - - trigger_on_change(&mut book, |event, book| { - if let Some(path) = event.path { - println!("File changed: {:?}\nBuilding book...\n", path); - match book.build() { - Err(e) => println!("Error while building: {:?}", e), - _ => {}, - } - println!(""); - } - }); - + // TODO watch + println!("watch"); Ok(()) } - -// Watch command implementation +// Serve command implementation #[cfg(feature = "serve")] fn serve(args: &ArgMatches) -> Result<(), Box> { - const RELOAD_COMMAND: &'static str = "reload"; - - let book_dir = get_book_dir(args); - let mut book = MDBook::new(&book_dir).read_config(); - let port = args.value_of("port").unwrap_or("3000"); - let ws_port = args.value_of("ws-port").unwrap_or("3001"); - let interface = args.value_of("interface").unwrap_or("localhost"); - let public_address = args.value_of("address").unwrap_or(interface); - - let address = format!("{}:{}", interface, port); - let ws_address = format!("{}:{}", interface, ws_port); - - book.set_livereload(format!(r#" - - "#, public_address, ws_port, RELOAD_COMMAND).to_owned()); - - try!(book.build()); - - let staticfile = staticfile::Static::new(book.get_dest()); - let iron = iron::Iron::new(staticfile); - let _iron = iron.http(&*address).unwrap(); - - let ws_server = ws::WebSocket::new(|_| { - |_| { - Ok(()) - } - }).unwrap(); - - let broadcaster = ws_server.broadcaster(); - - std::thread::spawn(move || { - ws_server.listen(&*ws_address).unwrap(); - }); - - println!("\nServing on {}", address); - - trigger_on_change(&mut book, move |event, book| { - if let Some(path) = event.path { - println!("File changed: {:?}\nBuilding book...\n", path); - match book.build() { - Err(e) => println!("Error while building: {:?}", e), - _ => broadcaster.send(RELOAD_COMMAND).unwrap(), - } - println!(""); - } - }); - + // TODO serve + println!("serve"); Ok(()) } - fn test(args: &ArgMatches) -> Result<(), Box> { - let book_dir = get_book_dir(args); - let mut book = MDBook::new(&book_dir).read_config(); - - try!(book.test()); - + // TODO test + println!("test"); Ok(()) } - fn get_book_dir(args: &ArgMatches) -> PathBuf { if let Some(dir) = args.value_of("dir") { // Check if path is relative from current dir, or absolute... @@ -277,58 +196,3 @@ fn get_book_dir(args: &ArgMatches) -> PathBuf { env::current_dir().unwrap() } } - - -// Calls the closure when a book source file is changed. This is blocking! -#[cfg(feature = "watch")] -fn trigger_on_change(book: &mut MDBook, closure: F) -> () - where F: Fn(notify::Event, &mut MDBook) -> () -{ - // Create a channel to receive the events. - let (tx, rx) = channel(); - - let w: Result = notify::Watcher::new(tx); - - match w { - Ok(mut watcher) => { - // Add the source directory to the watcher - if let Err(e) = watcher.watch(book.get_src()) { - println!("Error while watching {:?}:\n {:?}", book.get_src(), e); - ::std::process::exit(0); - }; - - // Add the book.json file to the watcher if it exists, because it's not - // located in the source directory - if let Err(_) = watcher.watch(book.get_root().join("book.json")) { - // do nothing if book.json is not found - } - - let mut previous_time = time::get_time(); - - println!("\nListening for changes...\n"); - - loop { - match rx.recv() { - Ok(event) => { - // Skip the event if an event has already been issued in the last second - let time = time::get_time(); - if time - previous_time < time::Duration::seconds(1) { - continue; - } else { - previous_time = time; - } - - closure(event, book); - }, - Err(e) => { - println!("An error occured: {:?}", e); - }, - } - } - }, - Err(e) => { - println!("Error while trying to watch the files:\n\n\t{:?}", e); - ::std::process::exit(0); - }, - } -} diff --git a/src/book/book.rs b/src/book/book.rs index 6b6ce03b03..3bfbb21852 100644 --- a/src/book/book.rs +++ b/src/book/book.rs @@ -1,80 +1,118 @@ -use book::metadata::BookMetadata; -use book::chapter::Chapter; +use std::fs::File; +use std::path::{Path, PathBuf}; +use book::bookconfig::BookConfig; +use book::toc::{TocItem, TocContent}; -/// The `Book` struct contains the metadata and chapters for one language of the book. -/// Multiple `Book` structs are combined in the `MDBook` struct to support multi-language books. +use utils::fs::create_with_str; +use parse::construct_tocitems; + +/// The `Book` struct contains the metadata (config) and chapters (toc) for one +/// language of the book. Multiple `Book` structs are combined in the `MDBook` +/// struct to support multi-language books. #[derive(Debug, Clone)] pub struct Book { - metadata: BookMetadata, - - frontmatter: Vec, - mainmatter: Vec, - backmatter: Vec, + pub config: BookConfig, + pub toc: Vec, } -impl Book { - /// Creates a new book with the given title, chapters are added with the - /// `add_frontmatter_chapter`, `add_mainmatter_chapter`, - /// `add_backmatter_chapter` methods - pub fn new(title: &str) -> Self { +impl Default for Book { + fn default() -> Book { Book { - metadata: BookMetadata::new(title), - - frontmatter: Vec::new(), - mainmatter: Vec::new(), - backmatter: Vec::new(), + config: BookConfig::default(), + toc: vec![], } } +} - /// Adds a new mainmatter chapter - pub fn add_mainmatter_chapter(&mut self, chapter: Chapter) -> &mut Self { - self.mainmatter.push(chapter); - self +impl Book { + + /// Creates a new book + pub fn new(project_root: &PathBuf) -> Book { + let conf = BookConfig::new(project_root); + let mut book = Book::default(); + book.config = conf; + book } - /// Adds a new frontmatter chapter - pub fn add_frontmatter_chapter(&mut self, chapter: Chapter) -> &mut Self { - self.frontmatter.push(chapter); - self + /// Parses in the SUMMARY.md or creates one + pub fn parse_or_create_summary_file(&mut self, first_as_index: bool) -> Result<&mut Self, String> { + + let summary_path = self.config.src.join("SUMMARY.md"); + if !summary_path.exists() { + try!(create_with_str(&summary_path, "# Summary")); + } + + // parse SUMMARY.md to toc items + self.toc = match construct_tocitems(&summary_path, first_as_index) { + Ok(x) => x, + Err(e) => { return Err(format!("Error constructing the TOC: {:?}", e)); } + }; + + Ok(self) } - /// Adds a new backmatter chapter - pub fn add_backmatter_chapter(&mut self, chapter: Chapter) -> &mut Self { - self.backmatter.push(chapter); - self + /// Walks through the TOC array and calls parse_or_create() on each + pub fn parse_or_create_chapter_files(&mut self) -> Result<&mut Self, String> { + self.toc = self.process_them(&self.toc); + Ok(self) } + fn process_them(&self, items: &Vec) -> Vec { + items.iter().map(|i| + match i { + &TocItem::Numbered(ref c) => TocItem::Numbered(self.process_toccontent(c)), + &TocItem::Unnumbered(ref c) => TocItem::Unnumbered(self.process_toccontent(c)), + &TocItem::Unlisted(ref c) => TocItem::Unlisted(self.process_toccontent(c)), + &TocItem::Spacer => TocItem::Spacer, + } + ).collect::>() + } - /// This method takes a slice `&[x, y, z]` as parameter and returns the corresponding chapter. - /// For example, to retrieve chapter 2.3 we would use: - /// ``` - /// #extern crate mdbook; - /// #use mdbook::book::Book; - /// #fn main() { - /// #let book = Book::new("Test"); - /// let chapter_2_3 = book.get_chapter(&[2, 3]); - /// #} - /// ``` - pub fn get_chapter(&self, section: &[usize]) -> Option<&Chapter> { - match section.len() { - 0 => None, - 1 => self.mainmatter.get(section[0]), - _ => { - self.mainmatter - .get(section[0]) - .and_then(|ch| ch.get_sub_chapter(§ion[1..])) - }, + fn process_toccontent(&self, c: &TocContent) -> TocContent { + let mut content: TocContent = c.clone(); + if let Ok(ch) = content.chapter.clone().parse_or_create_using(&self.config.src) { + content.chapter = ch.to_owned(); } + if let Some(s) = content.sub_items { + let subs = self.process_them(&s); + content.sub_items = Some(subs); + } + content } - /// Returns a mutable reference to the metadata for modification - pub fn mut_metadata(&mut self) -> &mut BookMetadata { - &mut self.metadata - } + // TODO update - // Returns a reference to the metadata - pub fn metadata(&self) -> &BookMetadata { - &self.metadata - } + // /// This method takes a slice `&[x, y, z]` as parameter and returns the corresponding chapter. + // /// For example, to retrieve chapter 2.3 we would use: + // /// ``` + // /// #extern crate mdbook; + // /// #use mdbook::book::Book; + // /// #fn main() { + // /// #let book = Book::new("Test"); + // /// let chapter_2_3 = book.get_chapter(&[2, 3]); + // /// #} + // /// ``` + // pub fn get_chapter(&self, section: &[usize]) -> Option<&Chapter> { + // match section.len() { + // 0 => None, + // 1 => self.mainmatter.get(section[0]), + // _ => { + // self.mainmatter + // .get(section[0]) + // .and_then(|ch| ch.get_sub_chapter(§ion[1..])) + // }, + // } + // } + + // /// Returns a mutable reference to the metadata for modification + // pub fn mut_metadata(&mut self) -> &mut BookMetadata { + // &mut self.metadata + // } + + // // Returns a reference to the metadata + // pub fn metadata(&self) -> &BookMetadata { + // &self.metadata + // } } + diff --git a/src/book/bookconfig.rs b/src/book/bookconfig.rs index 50bcb76d4e..89ff86bb6a 100644 --- a/src/book/bookconfig.rs +++ b/src/book/bookconfig.rs @@ -3,169 +3,214 @@ extern crate toml; use std::process::exit; use std::fs::File; use std::io::Read; +use std::ffi::OsStr; use std::path::{Path, PathBuf}; use std::collections::BTreeMap; use std::str::FromStr; use serde_json; +use utils; + #[derive(Debug, Clone)] pub struct BookConfig { - root: PathBuf, + + // Paths + pub dest: PathBuf, pub src: PathBuf, - pub theme_path: PathBuf, - pub title: String, - pub author: String, - pub description: String, + // Metadata - pub indent_spaces: i32, - multilingual: bool, + /// The title of the book. + pub title: String, + /// The subtitle, when titles are in the form of "The Immense Journey: An + /// Imaginative Naturalist Explores the Mysteries of Man and Nature" + pub subtitle: Option, + /// A brief description or summary of the book. + pub description: Option, + pub language: Language, + pub authors: Vec, + pub translators: Option>, + /// Publisher's info + pub publisher: Option, + /// Chapter numbering scheme + pub number_format: NumberFormat, + /// Section names for nested Vec structures, defaults to `[ "Chapter", "Section", "Subsection" ]` + pub section_names: Vec, + /// Whether this is the main book, in the case of translations. + pub is_main_book: bool, + pub is_multilang: bool, } -impl BookConfig { - pub fn new(root: &Path) -> Self { +impl Default for BookConfig { + fn default() -> BookConfig { BookConfig { - root: root.to_owned(), - dest: root.join("book"), - src: root.join("src"), - theme_path: root.join("theme"), - - title: String::new(), - author: String::new(), - description: String::new(), - - indent_spaces: 4, // indentation used for SUMMARY.md - multilingual: false, + dest: PathBuf::from("book".to_string()), + src: PathBuf::from("src".to_string()), + + title: "Untitled".to_string(), + subtitle: None, + description: None, + language: Language::default(), + authors: vec![Author::new("The Author").file_as("Author, The")], + translators: None, + publisher: None, + number_format: NumberFormat::Arabic, + section_names: vec!["Chapter".to_string(), + "Section".to_string(), + "Subsection".to_string()], + is_main_book: false, + is_multilang: false, } } +} - pub fn read_config(&mut self, root: &Path) -> &mut Self { +impl BookConfig { - debug!("[fn]: read_config"); + pub fn new(project_root: &PathBuf) -> BookConfig { + let mut conf = BookConfig::default(); - let read_file = |path: PathBuf| -> String { - let mut data = String::new(); - let mut f: File = match File::open(&path) { - Ok(x) => x, - Err(_) => { - error!("[*]: Failed to open {:?}", &path); - exit(2); - } - }; - if let Err(_) = f.read_to_string(&mut data) { - error!("[*]: Failed to read {:?}", &path); - exit(2); - } - data - }; + // join paths to project_root + // Prefer "" to "." and "src" to "./src", avoid "././src" - // Read book.toml or book.json if exists + let mut pr = project_root.clone(); + if pr.as_os_str() == OsStr::new(".") { + pr = PathBuf::from("".to_string()); + } - if Path::new(root.join("book.toml").as_os_str()).exists() { + conf.dest = pr.join(&conf.dest); + conf.src = pr.join(&conf.src); - debug!("[*]: Reading config"); - let data = read_file(root.join("book.toml")); - self.parse_from_toml_string(&data); + conf + } - } else if Path::new(root.join("book.json").as_os_str()).exists() { + /// Parses recognized keys from a BTreeMap one by one. Not trying to + /// directly de-serialize to `BookConfig` so that we can provide some + /// convenient shorthands for the user. + /// + /// `book.toml` is a user interface, not an app data store, we never have to + /// write data back to it. + /// + /// Parses author when given as an array, or when given as a hash key to + /// make declaring just an author name easy. + /// + /// Both of these express a single author: + /// + /// ```toml + /// [[authors]] + /// name = "Marcus Aurelius Antoninus" + /// ``` + /// + /// Or: + /// + /// ```toml + /// name = "Marcus Aurelius Antoninus" + /// ``` + /// + pub fn parse_from_btreemap(&mut self, config: &BTreeMap) -> &mut Self { - debug!("[*]: Reading config"); - let data = read_file(root.join("book.json")); - self.parse_from_json_string(&data); + // Paths - } else { - debug!("[*]: No book.toml or book.json was found, using defaults."); + // Destination folder + if let Some(a) = config.get("dest") { + let dest = PathBuf::from(&a.to_string().replace("\"", "")); + self.set_dest(&dest); } - self - } - - pub fn parse_from_toml_string(&mut self, data: &String) -> &mut Self { + // Source folder + if let Some(a) = config.get("src") { + let src = PathBuf::from(&a.to_string().replace("\"", "")); + self.set_src(&src); + } - let mut parser = toml::Parser::new(&data); + // Metadata - let config = match parser.parse() { - Some(x) => {x}, - None => { - error!("[*]: Toml parse errors in book.toml: {:?}", parser.errors); - exit(2); - } + let extract_authors_from_slice = |x: &[toml::Value]| -> Vec { + x.iter() + .filter_map(|x| x.as_table()) + .map(|x| Author::from(x.to_owned())) + .collect::>() }; - self.parse_from_btreemap(&config); + if let Some(a) = config.get("title") { + self.title = a.to_string().replace("\"", ""); + } - self - } + if let Some(a) = config.get("subtitle") { + self.subtitle = Some(a.to_string().replace("\"", "")); + } - /// Parses the string to JSON and converts it to BTreeMap. - pub fn parse_from_json_string(&mut self, data: &String) -> &mut Self { + if let Some(a) = config.get("description") { + self.description = Some(a.to_string().replace("\"", "")); + } - let c: serde_json::Value = match serde_json::from_str(&data) { - Ok(x) => x, - Err(e) => { - error!("[*]: JSON parse errors in book.json: {:?}", e); - exit(2); + if let Some(a) = config.get("language") { + if let Some(b) = a.as_table() { + self.language = Language::from(b.to_owned()); } - }; - - let config = json_object_to_btreemap(&c.as_object().unwrap()); - self.parse_from_btreemap(&config); - - self - } - - pub fn parse_from_btreemap(&mut self, config: &BTreeMap) -> &mut Self { - - // Title, author, description - if let Some(a) = config.get("title") { - self.title = a.to_string().replace("\"", ""); } + + // Author name as a hash key. if let Some(a) = config.get("author") { - self.author = a.to_string().replace("\"", ""); + if let Some(b) = a.as_str() { + self.authors = vec![Author::new(b)]; + } } - if let Some(a) = config.get("description") { - self.description = a.to_string().replace("\"", ""); + + // Authors as an array of tables. This will override the above. + if let Some(a) = config.get("authors") { + if let Some(b) = a.as_slice() { + self.authors = extract_authors_from_slice(b); + } } - // Destination folder - if let Some(a) = config.get("dest") { - let mut dest = PathBuf::from(&a.to_string().replace("\"", "")); + // Translator name as a hash key. + if let Some(a) = config.get("translator") { + if let Some(b) = a.as_str() { + self.translators = Some(vec![Author::new(b)]); + } + } - // If path is relative make it absolute from the parent directory of src - if dest.is_relative() { - dest = self.get_root().join(&dest); + // Translators as an array of tables. This will override the above. + if let Some(a) = config.get("translators") { + if let Some(b) = a.as_slice() { + self.translators = Some(extract_authors_from_slice(b)); } - self.set_dest(&dest); } - // Source folder - if let Some(a) = config.get("src") { - let mut src = PathBuf::from(&a.to_string().replace("\"", "")); - if src.is_relative() { - src = self.get_root().join(&src); + if let Some(a) = config.get("publisher") { + if let Some(b) = a.as_table() { + self.publisher = Some(Publisher::from(b.to_owned())); } - self.set_src(&src); } - // Theme path folder - if let Some(a) = config.get("theme_path") { - let mut theme_path = PathBuf::from(&a.to_string().replace("\"", "")); - if theme_path.is_relative() { - theme_path = self.get_root().join(&theme_path); + if let Some(a) = config.get("number_format") { + if let Some(b) = a.as_str() { + self.number_format = match b.to_lowercase().as_ref() { + "arabic" => NumberFormat::Arabic, + "roman" => NumberFormat::Roman, + "word" => NumberFormat::Word, + _ => NumberFormat::Arabic, + }; } - self.set_theme_path(&theme_path); } - self - } + if let Some(a) = config.get("section_names") { + if let Some(b) = a.as_slice() { + self.section_names = + b.iter() + .filter_map(|x| x.as_str()) + .map(|x| x.to_string()) + .collect::>(); + } + } - pub fn get_root(&self) -> &Path { - &self.root - } + if let Some(a) = config.get("is_main_book") { + if let Some(b) = a.as_bool() { + self.is_main_book = b; + } + } - pub fn set_root(&mut self, root: &Path) -> &mut Self { - self.root = root.to_owned(); self } @@ -173,7 +218,7 @@ impl BookConfig { &self.dest } - pub fn set_dest(&mut self, dest: &Path) -> &mut Self { + pub fn set_dest(&mut self, dest: &Path) -> &mut BookConfig { self.dest = dest.to_owned(); self } @@ -182,47 +227,152 @@ impl BookConfig { &self.src } - pub fn set_src(&mut self, src: &Path) -> &mut Self { + pub fn set_src(&mut self, src: &Path) -> &mut BookConfig { self.src = src.to_owned(); self } - pub fn get_theme_path(&self) -> &Path { - &self.theme_path +} + +#[derive(Debug, Clone)] +pub struct Author { + /// Author's name, such as "Howard Philip Lovecraft" + name: String, + /// Author's name in the form of "Lovecraft, Howard Philip", an ebook metadata field used for sorting + file_as: String, + email: Option, +} + +impl Author { + + pub fn new(name: &str) -> Self { + Author { + name: name.to_owned(), + file_as: utils::last_name_first(name), + email: None, + } + } + + pub fn file_as(mut self, file_as: &str) -> Self { + self.file_as = file_as.to_owned(); + self } - pub fn set_theme_path(&mut self, theme_path: &Path) -> &mut Self { - self.theme_path = theme_path.to_owned(); + pub fn with_email(mut self, email: &str) -> Self { + self.email = Some(email.to_owned()); self } } -pub fn json_object_to_btreemap(json: &serde_json::Map) -> BTreeMap { - let mut config: BTreeMap = BTreeMap::new(); +impl From for Author { + fn from(data: toml::Table) -> Author { + let mut author = Author::new("The Author"); + if let Some(x) = data.get("name") { + author.name = x.to_string().replace("\"", ""); + } + if let Some(x) = data.get("file_as") { + author.file_as = x.to_string().replace("\"", ""); + } else { + author.file_as = utils::last_name_first(&author.name); + } + if let Some(x) = data.get("email") { + author.email = Some(x.to_string().replace("\"", "")); + } + author + } +} + +#[derive(Debug, Clone)] +pub struct Language { + pub name: String, + pub code: String, +} - for (key, value) in json.iter() { - config.insert( - String::from_str(key).unwrap(), - json_value_to_toml_value(value.to_owned()) - ); +impl Default for Language { + fn default() -> Self { + Language { + name: String::from("English"), + code: String::from("en"), + } + } +} + +impl Language { + pub fn new(name: &str, code: &str) -> Language { + Language{ + name: name.to_string(), + code: code.to_string(), + } + } +} + +impl From for Language { + fn from(data: toml::Table) -> Language { + let mut language = Language::default(); + if let Some(x) = data.get("name") { + language.name = x.to_string().replace("\"", ""); + } + if let Some(x) = data.get("code") { + language.code = x.to_string().replace("\"", ""); + } + language } +} - config +#[derive(Debug, Clone)] +pub struct Publisher { + /// name of the publisher organization + name: String, + /// link to the sublisher's site + url: Option, + /// path to publisher's logo image + logo_src: Option, } -pub fn json_value_to_toml_value(json: serde_json::Value) -> toml::Value { - match json { - serde_json::Value::Null => toml::Value::String("".to_string()), - serde_json::Value::Bool(x) => toml::Value::Boolean(x), - serde_json::Value::I64(x) => toml::Value::Integer(x), - serde_json::Value::U64(x) => toml::Value::Integer(x as i64), - serde_json::Value::F64(x) => toml::Value::Float(x), - serde_json::Value::String(x) => toml::Value::String(x), - serde_json::Value::Array(x) => { - toml::Value::Array(x.iter().map(|v| json_value_to_toml_value(v.to_owned())).collect()) - }, - serde_json::Value::Object(x) => { - toml::Value::Table(json_object_to_btreemap(&x)) - }, +impl Default for Publisher { + fn default() -> Publisher { + Publisher { + name: "The Publisher".to_string(), + url: None, + logo_src: None, + } } } + +impl Publisher { + pub fn new(name: &str) -> Publisher { + Publisher { + name: name.to_string(), + url: None, + logo_src: None, + } + } +} + +impl From for Publisher { + fn from(data: toml::Table) -> Publisher { + let mut publisher = Publisher::default(); + if let Some(x) = data.get("name") { + publisher.name = x.to_string().replace("\"", ""); + } + if let Some(x) = data.get("url") { + publisher.url = Some(x.to_string()); + } + if let Some(x) = data.get("logo_src") { + publisher.logo_src = Some(PathBuf::from(x.to_string())); + } + publisher + } +} + +/// NumberFormat when rendering chapter titles. +#[derive(Debug, Clone)] +pub enum NumberFormat { + /// 19 + Arabic, + /// XIX + Roman, + /// Nineteen + Word, +} + diff --git a/src/book/bookitem.rs b/src/book/bookitem.rs deleted file mode 100644 index 2d5bf9767a..0000000000 --- a/src/book/bookitem.rs +++ /dev/null @@ -1,82 +0,0 @@ -use serde::{Serialize, Serializer}; -use std::path::PathBuf; - -#[derive(Debug, Clone)] -pub enum BookItem { - Chapter(String, Chapter), // String = section - Affix(Chapter), - Spacer, -} - -#[derive(Debug, Clone)] -pub struct Chapter { - pub name: String, - pub path: PathBuf, - pub sub_items: Vec, -} - -#[derive(Debug, Clone)] -pub struct BookItems<'a> { - pub items: &'a [BookItem], - pub current_index: usize, - pub stack: Vec<(&'a [BookItem], usize)>, -} - - -impl Chapter { - pub fn new(name: String, path: PathBuf) -> Self { - - Chapter { - name: name, - path: path, - sub_items: vec![], - } - } -} - - -impl Serialize for Chapter { - fn serialize(&self, serializer: &mut S) -> Result<(), S::Error> where S: Serializer { - let mut state = try!(serializer.serialize_struct("Chapter", 2)); - try!(serializer.serialize_struct_elt(&mut state, "name", self.name.clone())); - try!(serializer.serialize_struct_elt(&mut state, "path", self.path.clone())); - serializer.serialize_struct_end(state) - } -} - - - -// Shamelessly copied from Rustbook -// (https://github.com/rust-lang/rust/blob/master/src/rustbook/book.rs) -impl<'a> Iterator for BookItems<'a> { - type Item = &'a BookItem; - - fn next(&mut self) -> Option<&'a BookItem> { - loop { - if self.current_index >= self.items.len() { - match self.stack.pop() { - None => return None, - Some((parent_items, parent_idx)) => { - self.items = parent_items; - self.current_index = parent_idx + 1; - }, - } - } else { - let cur = self.items.get(self.current_index).unwrap(); - - match *cur { - BookItem::Chapter(_, ref ch) | BookItem::Affix(ref ch) => { - self.stack.push((self.items, self.current_index)); - self.items = &ch.sub_items[..]; - self.current_index = 0; - }, - BookItem::Spacer => { - self.current_index += 1; - }, - } - - return Some(cur); - } - } - } -} diff --git a/src/book/chapter.rs b/src/book/chapter.rs index 7afb3610eb..b2ef07a5f6 100644 --- a/src/book/chapter.rs +++ b/src/book/chapter.rs @@ -1,71 +1,215 @@ +extern crate regex; +extern crate toml; + +use regex::Regex; + use std::path::{Path, PathBuf}; -use book::metadata::Author; +use std::fs::File; +use std::error::Error; +use std::io::{self, Read}; +use std::collections::BTreeMap; -/// The Chapter struct holds the title of the chapter as written in the SUMMARY.md file, -/// the location of the markdown file containing the content and eventually sub-chapters +use utils; +use book::bookconfig::Author; -/// TODO use in template: author, description, index, class +use utils::fs::create_with_str; +/// The Chapter struct holds the title of the chapter as written in the +/// SUMMARY.md file, the location of the markdown file and other metadata. +/// +/// If the markdown file starts with a TOML header, it will be parsed to set the +/// chapter's properties. A TOML header should start and end with `+++` lines: +/// +/// ``` +/// +++ +/// title = "The Library of Babel" +/// author = "Jorge Luis Borges" +/// translator = "James E. Irby" +/// +++ +/// +/// # Babel +/// +/// The universe (which others call the Library) is composed of an indefinite and +/// perhaps infinite number of hexagonal galleries, with vast air shafts between, +/// surrounded by very low railings. From any of the hexagons one can see, +/// interminably, the upper and lower floors. +/// ``` #[derive(Debug, Clone)] pub struct Chapter { + /// The title of the chapter. - title: String, - /// Path to chapter's markdown file. - file: PathBuf, - - /// TODO The author of the chapter, or the book. - author: Author, - /// TODO The description of the chapter. - description: String, - /// TODO Index number of the chapter in its level. This is the Vec index + 1. - index: i32, - /// TODO CSS class that will be added to the page-level wrap div to allow customized chapter styles. - class: String, - - sub_chapters: Vec, + pub title: String, + + /// Path to the chapter's markdown file, relative to the book's source + /// directory. + /// + /// `book.src.join(chapter.path)` points to the Markdown file, and + /// `book.dest.join(chapter.path).with_extension("html")` points to the + /// output html file. This way if the user had a custom folder structure in + /// their source folder, this is re-created in the destination folder. + pub path: PathBuf, + + /// Optional destination path to write to. Used when changing the first + /// chapter's path to index.html. + pub dest_path: Option, + + /// The author of the chapter, or the book. + pub authors: Option>, + + /// The translators of the chapter, or the book. + pub translators: Option>, + + /// The description of the chapter. + pub description: Option, + + /// CSS class that will be added to the page-level wrap div to allow + /// customized chapter styles. + pub css_class: Option, } -impl Chapter { - /// Creates a new chapter with the given title and source file and no sub-chapters - pub fn new(title: &str, file: &Path) -> Self { +impl Default for Chapter { + fn default() -> Chapter { Chapter { - title: title.to_owned(), - file: file.to_owned(), + title: "Untitled".to_string(), + path: PathBuf::from("src".to_string()).join("untitled.md"), + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None, + } + } +} - sub_chapters: Vec::new(), +impl Chapter { - // TODO placeholder values for now - author: Author::new(""), - description: "".to_string(), - index: 0, - class: "".to_string(), - } + pub fn new(title: String, path: PathBuf) -> Chapter { + let mut chapter = Chapter::default(); + chapter.title = title; + chapter.path = path; + chapter } - /// This function takes a slice `&[x,y,z]` and returns the corresponding sub-chapter if it exists. - /// - /// For example: `chapter.get_sub_chapter(&[1,3])` will return the third sub-chapter of the first sub-chapter. - pub fn get_sub_chapter(&self, section: &[usize]) -> Option<&Chapter> { - match section.len() { - 0 => None, - 1 => self.sub_chapters.get(section[0]), - _ => { - // The lengt of the slice is more than one, this means that we want a sub-chapter of a sub-chapter - // We call `get_sub_chapter` recursively until we are deep enough and return the asked sub-chapter - self.sub_chapters - .get(section[0]) - .and_then(|ch| ch.get_sub_chapter(§ion[1..])) - }, + pub fn parse_or_create_using(&mut self, book_src_dir: &PathBuf) -> Result<&mut Self, String> { + + debug!("[fn] Chapter::parse_or_create() : {:?}", &self); + + let src_path = &book_src_dir.join(&self.path).to_owned(); + if !src_path.exists() { + debug!("[*] Creating: {:?}", src_path); + match create_with_str(src_path, &format!("# {}", self.title)) { + Ok(_) => { return Ok(self); }, + Err(e) => { + return Err(format!("Could not create: {:?}", src_path)); + }, + } } - } - pub fn title(&self) -> &str { - &self.title + let mut text = String::new(); + match File::open(src_path) { + Err(e) => { return Err(format!("Read error: {:?}", e)); }, + Ok(mut f) => { + f.read_to_string(&mut text); + } + } + + let re: Regex = Regex::new(r"(?ms)^\+\+\+\n(?P.*)\n\+\+\+\n").unwrap(); + + match re.captures(&text) { + Some(caps) => { + let toml = caps.name("toml").unwrap(); + match utils::toml_str_to_btreemap(&toml) { + Ok(x) => {self.parse_from_btreemap(&x);}, + Err(e) => { + error!("[*] Errors while parsing TOML: {:?}", e); + return Err(e); + } + } + } + None => {}, + } + + Ok(self) } - pub fn file(&self) -> &Path { - &self.file + + pub fn parse_from_btreemap(&mut self, data: &BTreeMap) -> &mut Self { + + let extract_authors_from_slice = |x: &[toml::Value]| -> Vec { + x.iter() + .filter_map(|x| x.as_table()) + .map(|x| Author::from(x.to_owned())) + .collect::>() + }; + + if let Some(a) = data.get("title") { + self.title = a.to_string().replace("\"", ""); + } + + if let Some(a) = data.get("description") { + self.description = Some(a.to_string().replace("\"", "")); + } + + if let Some(a) = data.get("css_class") { + self.css_class = Some(a.to_string()); + } + + // Author name as a hash key. + if let Some(a) = data.get("author") { + if let Some(b) = a.as_str() { + self.authors = Some(vec![Author::new(b)]); + } + } + + // Authors as an array of tables. This will override the above. + if let Some(a) = data.get("authors") { + if let Some(b) = a.as_slice() { + self.authors = Some(extract_authors_from_slice(b)); + } + } + + // Translator name as a hash key. + if let Some(a) = data.get("translator") { + if let Some(b) = a.as_str() { + self.translators = Some(vec![Author::new(b)]); + } + } + + // Translators as an array of tables. This will override the above. + if let Some(a) = data.get("translators") { + if let Some(b) = a.as_slice() { + self.translators = Some(extract_authors_from_slice(b)); + } + } + + self } - pub fn sub_chapters(&self) -> &[Chapter] { - &self.sub_chapters + + /// Reads in the chapter's content from the markdown file. Chapter doesn't + /// know the book's src folder, hence the `book_src_dir` argument. + pub fn read_content_using(&self, book_src_dir: &PathBuf) -> Result> { + + let src_path = book_src_dir.join(&self.path); + + if !src_path.exists() { + return Err(Box::new(io::Error::new( + io::ErrorKind::Other, + format!("Doesn't exist: {:?}", src_path)) + )); + } + + debug!("[*]: Opening file: {:?}", src_path); + + let mut f = try!(File::open(&src_path)); + let mut content: String = String::new(); + + debug!("[*]: Reading file"); + try!(f.read_to_string(&mut content)); + + // Render markdown using the pulldown-cmark crate + content = utils::strip_toml_header(&content); + content = utils::render_markdown(&content); + + Ok(content) } + } diff --git a/src/book/metadata.rs b/src/book/metadata.rs deleted file mode 100644 index 6fe837cd0c..0000000000 --- a/src/book/metadata.rs +++ /dev/null @@ -1,129 +0,0 @@ -use std::path::PathBuf; - -/// TODO use in template: subtitle, description, publisher, number_format, section_names - -#[derive(Debug, Clone)] -pub struct BookMetadata { - /// The title of the book. - pub title: String, - - /// TODO The subtitle, when titles are in the form of "The Immense Journey: An - /// Imaginative Naturalist Explores the Mysteries of Man and Nature" - pub subtitle: String, - - /// TODO A brief description or summary. - pub description: String, - - /// TODO Publisher's info - pub publisher: Publisher, - - pub language: Language, - - authors: Vec, - translators: Vec, - - /// TODO Chapter numbering scheme - number_format: NumberFormat, - /// TODO Section names for nested Vec structures, such as `[ - /// "Part", "Chapter", "Section" ]` - section_names: Vec, -} - -#[derive(Debug, Clone)] -pub struct Author { - name: String, - email: Option, -} - -#[derive(Debug, Clone)] -pub struct Language { - name: String, - code: String, -} - -/// TODO use Publisher in template. - -#[derive(Debug, Clone)] -pub struct Publisher { - name: String, - /// link to the sublisher's site - url: String, - /// path to publisher's logo image - logo_src: PathBuf, -} - -impl Publisher { - pub fn default() -> Publisher { - Publisher { - name: "".to_string(), - url: "".to_string(), - logo_src: PathBuf::new(), - } - } -} - -/// TODO use NumberFormat when rendering chapter titles. - -#[derive(Debug, Clone)] -pub enum NumberFormat { - /// 19 - Arabic, - /// XIX - Roman, - /// Nineteen - Word, -} - -impl BookMetadata { - pub fn new(title: &str) -> Self { - BookMetadata { - title: title.to_owned(), - description: String::new(), - - language: Language::default(), - - authors: Vec::new(), - translators: Vec::new(), - - // TODO placeholder values for now - subtitle: "".to_string(), - publisher: Publisher::default(), - number_format: NumberFormat::Arabic, - section_names: vec![], - } - } - - pub fn set_description(&mut self, description: &str) -> &mut Self { - self.description = description.to_owned(); - self - } - - pub fn add_author(&mut self, author: Author) -> &mut Self { - self.authors.push(author); - self - } -} - -impl Author { - pub fn new(name: &str) -> Self { - Author { - name: name.to_owned(), - email: None, - } - } - - pub fn with_email(mut self, email: &str) -> Self { - self.email = Some(email.to_owned()); - self - } -} - - -impl Default for Language { - fn default() -> Self { - Language { - name: String::from("English"), - code: String::from("en"), - } - } -} diff --git a/src/book/mod.rs b/src/book/mod.rs index 712dad76a6..6d1ee06303 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -1,123 +1,144 @@ -pub mod bookitem; +extern crate toml; + +pub mod book; pub mod bookconfig; -pub mod metadata; +pub mod toc; pub mod chapter; -pub mod book; -pub use self::metadata::{Author, Language, BookMetadata}; -pub use self::chapter::Chapter; pub use self::book::Book; +use renderer::{Renderer, HtmlHandlebars}; +use utils; -pub mod bookconfig_test; - -pub use self::bookitem::{BookItem, BookItems}; -pub use self::bookconfig::BookConfig; - +use std::env; +use std::process::exit; +use std::ffi::OsStr; use std::path::{Path, PathBuf}; use std::fs::{self, File}; +use std::io::Read; use std::error::Error; -use std::io; -use std::io::Write; -use std::io::ErrorKind; -use std::process::Command; -use std::collections::HashMap; +use std::collections::{HashMap, BTreeMap}; -use {theme, parse, utils}; -use renderer::{Renderer, HtmlHandlebars}; +#[derive(Debug, Clone)] +pub struct MDBook { + /// Top-level directory of the book project, as an absolute path. Defaults + /// to the current directory. `set_project_root()` converts relative paths + /// to absolute. + project_root: PathBuf, -pub struct MDBook<'a> { - root: PathBuf, - dest: PathBuf, - src: PathBuf, - theme_path: PathBuf, + /// Path to the template for the renderer, relative to `project_root`. + /// The `render_intent` determines its default value. + /// + /// A book doesn't necessarily has to have the template files. When not + /// found in the book's folder, the embedded static assets will be used. + /// + /// Html Handlebars: `project_root` + `assets/html-template`. + template_dir: PathBuf, - pub title: String, - pub author: String, - pub description: String, + /// Output base for all books, relative to `project_root`. Defaults to + /// `book`. + dest_base: PathBuf, - pub content: Vec, - books: HashMap<&'a str, Book>, - renderer: Box, + /// Informs other functions which renderer has been selected, either by + /// default or CLI argument. + render_intent: RenderIntent, - livereload: Option, -} + // TODO Identify and cross-link translations either by file name, or an id + // string. -impl<'a> MDBook<'a> { - /// Create a new `MDBook` struct with root directory `root` + /// The book, or books in case of translations, accessible with a String + /// key. The keys can be two-letter codes of the translation such as 'en' or + /// 'fr', but this is not enforced. /// - /// Default directory paths: + /// The String keys will be sub-folders where the translation's Markdown + /// sources are expected. /// - /// - source: `root/src` - /// - output: `root/book` - /// - theme: `root/theme` + /// Each translation should have its own SUMMARY.md file, in its source + /// folder with the chapter files. /// - /// They can both be changed by using [`set_src()`](#method.set_src) and [`set_dest()`](#method.set_dest) - - pub fn new(root: &Path) -> MDBook { - - if !root.exists() || !root.is_dir() { - warn!("{:?} No directory with that name", root); - } - - MDBook { - root: root.to_owned(), - dest: root.join("book"), - src: root.join("src"), - theme_path: root.join("theme"), + /// In the case of a single language, it is the sole item in the HashMap, + /// and its source is not expected to be under a sub-folder, just simply in + /// `./src`. + /// + /// Translations have to be declared in `book.toml` in their separate + /// blocks. In this case `is_main_book = true` has to be set to mark the + /// main book to avoid ambiguity. + /// + /// For a single language, the book's properties can be set on the main + /// block: + /// + /// ```toml + /// livereload = true + /// title = "Alice in Wonderland" + /// author = "Lewis Carroll" + /// ``` + /// + /// For multiple languages, declare them in blocks: + /// + /// ```toml + /// livereload = true + /// + /// [translations.en] + /// title = "Alice in Wonderland" + /// author = "Lewis Carroll" + /// language = { name = "English", code = "en" } + /// is_main_book = true + /// + /// [translations.fr] + /// title = "Alice au pays des merveilles" + /// author = "Lewis Carroll" + /// translator = "Henri Bué" + /// language = { name = "Français", code = "fr" } + /// + /// [translations.hu] + /// title = "Alice Csodaországban" + /// author = "Lewis Carroll" + /// translator = "Kosztolányi Dezső" + /// language = { name = "Hungarian", code = "hu" } + /// ``` + pub translations: HashMap, - title: String::new(), - author: String::new(), - description: String::new(), + /// Space indentation in SUMMARY.md, defaults to 4 spaces. + pub indent_spaces: i32, - content: vec![], - books: HashMap::new(), - renderer: Box::new(HtmlHandlebars::new()), + /// Whether to include the livereload snippet in the output html. + pub livereload: bool, +} - livereload: None, - } +impl Default for MDBook { + fn default() -> MDBook { + let mut proj: MDBook = MDBook { + project_root: PathBuf::from("".to_string()), + template_dir: PathBuf::from("".to_string()), + dest_base: PathBuf::from("book".to_string()), + render_intent: RenderIntent::HtmlHandlebars, + translations: HashMap::new(), + indent_spaces: 4, + livereload: false, + }; + proj.set_project_root(&env::current_dir().unwrap()); + // sets default template_dir + proj.set_render_intent(RenderIntent::HtmlHandlebars); + proj } +} - /// Returns a flat depth-first iterator over the elements of the book, it returns an [BookItem enum](bookitem.html): - /// `(section: String, bookitem: &BookItem)` - /// - /// ```no_run - /// # extern crate mdbook; - /// # use mdbook::MDBook; - /// # use mdbook::BookItem; - /// # use std::path::Path; - /// # fn main() { - /// # let mut book = MDBook::new(Path::new("mybook")); - /// for item in book.iter() { - /// match item { - /// &BookItem::Chapter(ref section, ref chapter) => {}, - /// &BookItem::Affix(ref chapter) => {}, - /// &BookItem::Spacer => {}, - /// } - /// } - /// - /// // would print something like this: - /// // 1. Chapter 1 - /// // 1.1 Sub Chapter - /// // 1.2 Sub Chapter - /// // 2. Chapter 2 - /// // - /// // etc. - /// # } - /// ``` +#[derive(Debug, Clone)] +pub enum RenderIntent { + HtmlHandlebars, +} - pub fn iter(&self) -> BookItems { - BookItems { - items: &self.content[..], - current_index: 0, - stack: Vec::new(), - } +impl MDBook { + + /// Create a new `MDBook` struct with top-level project directory `project_root` + pub fn new(project_root: &PathBuf) -> MDBook { + MDBook::default().set_project_root(project_root).clone() } /// `init()` creates some boilerplate files and directories to get you started with your book. /// /// ```text - /// book-test/ + /// book-example/ /// ├── book /// └── src /// ├── chapter_1.md @@ -126,358 +147,348 @@ impl<'a> MDBook<'a> { /// /// It uses the paths given as source and output directories and adds a `SUMMARY.md` and a /// `chapter_1.md` to the source directory. - pub fn init(&mut self) -> Result<(), Box> { debug!("[fn]: init"); - if !self.root.exists() { - fs::create_dir_all(&self.root).unwrap(); - info!("{:?} created", &self.root); + if !self.project_root.exists() { + fs::create_dir_all(&self.project_root).unwrap(); + info!("{:?} created", &self.project_root); } - { - - if !self.dest.exists() { - debug!("[*]: {:?} does not exist, trying to create directory", self.dest); - try!(fs::create_dir_all(&self.dest)); - } - - if !self.src.exists() { - debug!("[*]: {:?} does not exist, trying to create directory", self.src); - try!(fs::create_dir_all(&self.src)); - } - - let summary = self.src.join("SUMMARY.md"); - - if !summary.exists() { - - // Summary does not exist, create it - - debug!("[*]: {:?} does not exist, trying to create SUMMARY.md", self.src.join("SUMMARY.md")); - let mut f = try!(File::create(&self.src.join("SUMMARY.md"))); - - debug!("[*]: Writing to SUMMARY.md"); - - try!(writeln!(f, "# Summary")); - try!(writeln!(f, "")); - try!(writeln!(f, "- [Chapter 1](./chapter_1.md)")); - } - } - - // parse SUMMARY.md, and create the missing item related file - try!(self.parse_summary()); - - debug!("[*]: constructing paths for missing files"); - for item in self.iter() { - debug!("[*]: item: {:?}", item); - match *item { - BookItem::Spacer => continue, - BookItem::Chapter(_, ref ch) | - BookItem::Affix(ref ch) => { - if ch.path != PathBuf::new() { - let path = self.src.join(&ch.path); - - if !path.exists() { - debug!("[*]: {:?} does not exist, trying to create file", path); - try!(::std::fs::create_dir_all(path.parent().unwrap())); - let mut f = try!(File::create(path)); - - // debug!("[*]: Writing to {:?}", path); - try!(writeln!(f, "# {}", ch.name)); - } - } - }, - } - } + // Read book.toml if exists and populate .translations + self.read_config(); debug!("[*]: init done"); Ok(()) } - pub fn create_gitignore(&self) { - let gitignore = self.get_gitignore(); - - if !gitignore.exists() { - // Gitignore does not exist, create it - - // Because of `src/book/mdbook.rs#L37-L39`, `dest` will always start with `root`. If it - // is not, `strip_prefix` will return an Error. - if !self.get_dest().starts_with(&self.root) { - return; - } - - let relative = self.get_dest() - .strip_prefix(&self.root) - .expect("Destination is not relative to root."); - let relative = relative.to_str() - .expect("Path could not be yielded into a string slice."); - - debug!("[*]: {:?} does not exist, trying to create .gitignore", gitignore); - - let mut f = File::create(&gitignore).expect("Could not create file."); - - debug!("[*]: Writing to .gitignore"); - - writeln!(f, "{}", relative).expect("Could not write to file."); - } - } - - /// The `build()` method is the one where everything happens. First it parses `SUMMARY.md` to - /// construct the book's structure in the form of a `Vec` and then calls `render()` - /// method of the current renderer. - /// - /// It is the renderer who generates all the output files. - pub fn build(&mut self) -> Result<(), Box> { - debug!("[fn]: build"); - - try!(self.init()); - - // Clean output directory - try!(utils::fs::remove_dir_content(&self.dest)); - - try!(self.renderer.render(&self)); - - Ok(()) - } - - - pub fn get_gitignore(&self) -> PathBuf { - self.root.join(".gitignore") - } - - pub fn copy_theme(&self) -> Result<(), Box> { - debug!("[fn]: copy_theme"); - - let theme_dir = self.src.join("theme"); - - if !theme_dir.exists() { - debug!("[*]: {:?} does not exist, trying to create directory", theme_dir); - try!(fs::create_dir(&theme_dir)); - } - - // index.hbs - let mut index = try!(File::create(&theme_dir.join("index.hbs"))); - try!(index.write_all(theme::INDEX)); - - // book.css - let mut css = try!(File::create(&theme_dir.join("book.css"))); - try!(css.write_all(theme::CSS)); - - // favicon.png - let mut favicon = try!(File::create(&theme_dir.join("favicon.png"))); - try!(favicon.write_all(theme::FAVICON)); - - // book.js - let mut js = try!(File::create(&theme_dir.join("book.js"))); - try!(js.write_all(theme::JS)); - - // highlight.css - let mut highlight_css = try!(File::create(&theme_dir.join("highlight.css"))); - try!(highlight_css.write_all(theme::HIGHLIGHT_CSS)); - - // highlight.js - let mut highlight_js = try!(File::create(&theme_dir.join("highlight.js"))); - try!(highlight_js.write_all(theme::HIGHLIGHT_JS)); - - Ok(()) - } - - /// Parses the `book.json` file (if it exists) to extract the configuration parameters. - /// The `book.json` file should be in the root directory of the book. - /// The root directory is the one specified when creating a new `MDBook` + /// Parses the `book.toml` file (if it exists) to extract the configuration parameters. + /// The `book.toml` file should be in the root directory of the book project. + /// The project root directory is the one specified when creating a new `MDBook` /// /// ```no_run /// # extern crate mdbook; /// # use mdbook::MDBook; /// # use std::path::Path; /// # fn main() { - /// let mut book = MDBook::new(Path::new("root_dir")); + /// let mut book = MDBook::new(Path::new("project_root_dir")); /// # } /// ``` /// - /// In this example, `root_dir` will be the root directory of our book and is specified in function + /// In this example, `project_root_dir` will be the root directory of our book and is specified in function /// of the current working directory by using a relative path instead of an absolute path. + pub fn read_config(&mut self) -> &mut Self { + + debug!("[fn]: read_config"); + + // TODO refactor to a helper that returns Result? + + // TODO Maybe some error handling instead of exit(2), although it is a + // clear indication for the user that something is wrong and we can't + // fix it for them. + + let read_file = |path: PathBuf| -> String { + let mut data = String::new(); + let mut f: File = match File::open(&path) { + Ok(x) => x, + Err(_) => { + error!("[*]: Failed to open {:?}", &path); + exit(2); + } + }; + if let Err(_) = f.read_to_string(&mut data) { + error!("[*]: Failed to read {:?}", &path); + exit(2); + } + data + }; - pub fn read_config(mut self) -> Self { + // Read book.toml or book.json if exists to a BTreeMap - let config = BookConfig::new(&self.root) - .read_config(&self.root) - .to_owned(); + if Path::new(self.project_root.join("book.toml").as_os_str()).exists() { - self.title = config.title; - self.description = config.description; - self.author = config.author; + debug!("[*]: Reading config"); + let text = read_file(self.project_root.join("book.toml")); - self.dest = config.dest; - self.src = config.src; - self.theme_path = config.theme_path; + match utils::toml_str_to_btreemap(&text) { + Ok(x) => {self.parse_from_btreemap(&x);}, + Err(e) => { + error!("[*] Errors while parsing TOML: {:?}", e); + exit(2); + } + } + + } else if Path::new(self.project_root.join("book.json").as_os_str()).exists() { + + debug!("[*]: Reading config"); + let text = read_file(self.project_root.join("book.json")); + + match utils::json_str_to_btreemap(&text) { + Ok(x) => {self.parse_from_btreemap(&x);}, + Err(e) => { + error!("[*] Errors while parsing JSON: {:?}", e); + exit(2); + } + } + + } else { + debug!("[*]: No book.toml or book.json was found, using defaults."); + } self } - /// You can change the default renderer to another one by using this method. The only requirement - /// is for your renderer to implement the [Renderer trait](../../renderer/renderer/trait.Renderer.html) + /// Configures MDBook properties and translations. /// - /// ```no_run - /// extern crate mdbook; - /// use mdbook::MDBook; - /// use mdbook::renderer::HtmlHandlebars; - /// # use std::path::Path; + /// After parsing properties for MDBook struct, it removes them from the + /// config (template_dir, livereload, etc.). The remaining keys on the main + /// block will be interpreted as properties of the main book. /// - /// fn main() { - /// let mut book = MDBook::new(Path::new("mybook")) - /// .set_renderer(Box::new(HtmlHandlebars::new())); + /// `project_root` is ignored. /// - /// // In this example we replace the default renderer by the default renderer... - /// // Don't forget to put your renderer in a Box - /// } - /// ``` - /// - /// **note:** Don't forget to put your renderer in a `Box` before passing it to `set_renderer()` + /// - dest_base + /// - render_intent + /// - template_dir + /// - indent_spaces + /// - livereload + pub fn parse_from_btreemap(&mut self, conf: &BTreeMap) -> &mut Self { - pub fn set_renderer(mut self, renderer: Box) -> Self { - self.renderer = renderer; - self - } + let mut config = conf.clone(); - pub fn test(&mut self) -> Result<(), Box> { - // read in the chapters - try!(self.parse_summary()); - for item in self.iter() { - - match *item { - BookItem::Chapter(_, ref ch) => { - if ch.path != PathBuf::new() { + if config.contains_key("project_root") { + config.remove("project_root"); + } - let path = self.get_src().join(&ch.path); + if let Some(a) = config.get("dest_base") { + self.set_dest_base(&PathBuf::from(&a.to_string())); + } + config.remove("dest_base"); + + if let Some(a) = config.get("render_intent") { + if a.to_string() == "html".to_string() { + self.set_render_intent(RenderIntent::HtmlHandlebars); + } else { + // offer some real choices later on... + self.set_render_intent(RenderIntent::HtmlHandlebars); + } + } + config.remove("render_intent"); - println!("[*]: Testing file: {:?}", path); + // Parsing template_dir must be after render_intent, otherwise + // .set_render_intent() will always override template_dir with its + // default setting. + if let Some(a) = config.get("template_dir") { + self.set_template_dir(&PathBuf::from(&a.to_string())); + } + config.remove("template_dir"); - let output_result = Command::new("rustdoc") - .arg(&path) - .arg("--test") - .output(); - let output = try!(output_result); + if let Some(a) = config.get("indent_spaces") { + if let Some(b) = a.as_integer() { + self.indent_spaces = b as i32; + } + } + config.remove("indent_spaces"); - if !output.status.success() { - return Err(Box::new(io::Error::new(ErrorKind::Other, format!( - "{}\n{}", - String::from_utf8_lossy(&output.stdout), - String::from_utf8_lossy(&output.stderr)))) as Box); - } - } - }, - _ => {}, + if let Some(a) = config.get("livereload") { + if let Some(b) = a.as_bool() { + self.livereload = b; } } - Ok(()) - } + config.remove("livereload"); - pub fn get_root(&self) -> &Path { - &self.root - } + // If there is a 'translations' table, configugre each book from that. + // If there isn't, take the rest of the config as one book. - pub fn set_dest(mut self, dest: &Path) -> Self { + // If there is only one book, leave its source and destination folder as + // the default `./src` and `./book`. If there are more, join their hash + // keys to the default source and destination folder such as `/src/en` + // and `./book/en`. This may be overridden if set specifically. - // Handle absolute and relative paths - match dest.is_absolute() { - true => { - self.dest = dest.to_owned(); - }, - false => { - let dest = self.root.join(dest).to_owned(); - self.dest = dest; - }, - } + if let Some(a) = config.get("translations") { + if let Some(b) = a.as_table() { - self - } + let is_multilang: bool = b.iter().count() > 1; - pub fn get_dest(&self) -> &Path { - &self.dest - } + for (key, conf) in b.iter() { + let mut book = Book::new(&self.project_root); - pub fn set_src(mut self, src: &Path) -> Self { + if let Some(c) = conf.as_slice() { + if let Some(d) = c[0].as_table() { + if is_multilang { + book.config.src = book.config.src.join(key); + book.config.dest = book.config.dest.join(key); + } + book.config.is_multilang = is_multilang; + book.config.parse_from_btreemap(&d); + self.translations.insert(key.to_owned(), book); + } + } + } + } + } else { + let mut book = Book::new(&self.project_root); - // Handle absolute and relative paths - match src.is_absolute() { - true => { - self.src = src.to_owned(); - }, - false => { - let src = self.root.join(src).to_owned(); - self.src = src; - }, + book.config.parse_from_btreemap(&config); + let key = book.config.language.code.clone(); + self.translations.insert(key, book); } self } - pub fn get_src(&self) -> &Path { - &self.src - } + pub fn parse_books(&mut self) -> &mut Self { + debug!("[fn]: parse_books"); + + for key in self.translations.clone().keys() { + if let Some(mut b) = self.translations.clone().get_mut(key) { + + // TODO error handling could be better here + + let first_as_index = match self.render_intent { + RenderIntent::HtmlHandlebars => true, + }; + + match b.parse_or_create_summary_file(first_as_index) { + Ok(_) => {}, + Err(e) => {println!("{}", e);}, + } + + match b.parse_or_create_chapter_files() { + Ok(_) => {}, + Err(e) => {println!("{}", e);}, + } + + self.translations.remove(key); + self.translations.insert(key.to_owned(), b.clone()); + } + } - pub fn set_title(mut self, title: &str) -> Self { - self.title = title.to_owned(); self } - pub fn get_title(&self) -> &str { - &self.title + pub fn get_project_root(&self) -> &Path { + &self.project_root } - pub fn set_author(mut self, author: &str) -> Self { - self.author = author.to_owned(); + pub fn set_project_root(&mut self, path: &PathBuf) -> &mut MDBook { + if path.is_absolute() { + self.project_root = path.to_owned(); + } else { + self.project_root = env::current_dir().unwrap().join(path).to_owned(); + } self } - pub fn get_author(&self) -> &str { - &self.author + pub fn get_template_dir(&self) -> PathBuf { + self.project_root.join(&self.template_dir) } - pub fn set_description(mut self, description: &str) -> Self { - self.description = description.to_owned(); + pub fn set_template_dir(&mut self, path: &PathBuf) -> &mut MDBook { + if path.as_os_str() == OsStr::new(".") { + self.template_dir = PathBuf::from("".to_string()); + } else { + self.template_dir = path.to_owned(); + } self } - pub fn get_description(&self) -> &str { - &self.description + pub fn get_dest_base(&self) -> PathBuf { + self.project_root.join(&self.dest_base) } - pub fn set_livereload(&mut self, livereload: String) -> &mut Self { - self.livereload = Some(livereload); + pub fn set_dest_base(&mut self, path: &PathBuf) -> &mut MDBook { + if path.as_os_str() == OsStr::new(".") { + self.dest_base = PathBuf::from("".to_string()); + } else { + self.dest_base = path.to_owned(); + } self } - pub fn unset_livereload(&mut self) -> &Self { - self.livereload = None; - self + pub fn get_render_intent(&self) -> &RenderIntent { + &self.render_intent } - pub fn get_livereload(&self) -> Option<&String> { - match self.livereload { - Some(ref livereload) => Some(&livereload), - None => None, + pub fn set_render_intent(&mut self, intent: RenderIntent) -> &mut MDBook { + self.render_intent = intent; + match self.render_intent { + RenderIntent::HtmlHandlebars => { + self.set_template_dir(&PathBuf::from("assets").join("html-template")); + }, } - } - - pub fn set_theme_path(mut self, theme_path: &Path) -> Self { - self.theme_path = match theme_path.is_absolute() { - true => theme_path.to_owned(), - false => self.root.join(theme_path).to_owned(), - }; self } - pub fn get_theme_path(&self) -> &Path { - &self.theme_path - } + // TODO update + + // pub fn test(&mut self) -> Result<(), Box> { + // // read in the chapters + // try!(self.parse_summary()); + // for item in self.iter() { + + // match *item { + // BookItem::Chapter(_, ref ch) => { + // if ch.path != PathBuf::new() { + + // let path = self.get_src().join(&ch.path); + + // println!("[*]: Testing file: {:?}", path); + + // let output_result = Command::new("rustdoc") + // .arg(&path) + // .arg("--test") + // .output(); + // let output = try!(output_result); + + // if !output.status.success() { + // return Err(Box::new(io::Error::new(ErrorKind::Other, format!( + // "{}\n{}", + // String::from_utf8_lossy(&output.stdout), + // String::from_utf8_lossy(&output.stderr)))) as Box); + // } + // } + // }, + // _ => {}, + // } + // } + // Ok(()) + // } + + // /// Returns a flat depth-first iterator over the elements of the book, it returns an [BookItem enum](bookitem.html): + // /// `(section: String, bookitem: &BookItem)` + // /// + // /// ```no_run + // /// # extern crate mdbook; + // /// # use mdbook::MDBook; + // /// # use mdbook::BookItem; + // /// # use std::path::Path; + // /// # fn main() { + // /// # let mut book = MDBook::new(Path::new("mybook")); + // /// for item in book.iter() { + // /// match item { + // /// &BookItem::Chapter(ref section, ref chapter) => {}, + // /// &BookItem::Affix(ref chapter) => {}, + // /// &BookItem::Spacer => {}, + // /// } + // /// } + // /// + // /// // would print something like this: + // /// // 1. Chapter 1 + // /// // 1.1 Sub Chapter + // /// // 1.2 Sub Chapter + // /// // 2. Chapter 2 + // /// // + // /// // etc. + // /// # } + // /// ``` + + // pub fn iter(&self) -> BookItems { + // BookItems { + // items: &self.content[..], + // current_index: 0, + // stack: Vec::new(), + // } + // } - // Construct book - fn parse_summary(&mut self) -> Result<(), Box> { - // When append becomes stable, use self.content.append() ... - self.content = try!(parse::construct_bookitems(&self.src.join("SUMMARY.md"))); - Ok(()) - } } diff --git a/src/book/toc.rs b/src/book/toc.rs new file mode 100644 index 0000000000..84beaf746e --- /dev/null +++ b/src/book/toc.rs @@ -0,0 +1,76 @@ +use book::chapter::Chapter; + +/// A Table of Contents is a `Vec`, where an item is an enum that +/// qualifies its content. +#[derive(Debug, Clone)] +pub enum TocItem { + Numbered(TocContent), + Unnumbered(TocContent), + Unlisted(TocContent), + Spacer, +} + +/// An entry in the TOC with content. Its payload is the Chapter. This struct +/// knows the section index of the entry, or contains optional sub-entries as +/// `Vec`. +#[derive(Debug, Clone)] +pub struct TocContent { + pub chapter: Chapter, + pub sub_items: Option>, + /// Section indexes of the chapter + pub section: Option>, +} + +impl Default for TocContent { + fn default() -> TocContent { + TocContent { + chapter: Chapter::default(), + sub_items: None, + section: None, + } + } +} + +impl TocContent { + + pub fn new(chapter: Chapter) -> TocContent { + let mut toc = TocContent::default(); + toc.chapter = chapter; + toc + } + + pub fn new_with_section(chapter: Chapter, section: Vec) -> TocContent { + let mut toc = TocContent::default(); + toc.chapter = chapter; + toc.section = Some(section); + toc + } + + pub fn section_as_string(&self) -> String { + if let Some(ref sec) = self.section { + let a = sec.iter().map(|x| x.to_string()).collect::>(); + format!("{}.", a.join(".")) + } else { + "".to_string() + } + } + + // TODO update + + // /// This function takes a slice `&[x,y,z]` and returns the corresponding sub-chapter if it exists. + // /// + // /// For example: `chapter.get_sub_chapter(&[1,3])` will return the third sub-chapter of the first sub-chapter. + // pub fn get_sub_chapter(&self, section: &[usize]) -> Option<&Chapter> { + // match section.len() { + // 0 => None, + // 1 => self.sub_chapters.get(section[0]), + // _ => { + // // The lengt of the slice is more than one, this means that we want a sub-chapter of a sub-chapter + // // We call `get_sub_chapter` recursively until we are deep enough and return the asked sub-chapter + // self.sub_chapters + // .get(section[0]) + // .and_then(|ch| ch.get_sub_chapter(§ion[1..])) + // }, + // } + // } +} diff --git a/src/lib.rs b/src/lib.rs index f85de104ba..50d382f2ec 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -69,19 +69,23 @@ //! //! Make sure to take a look at it. +extern crate includedir; +extern crate phf; + +include!(concat!(env!("OUT_DIR"), "/data.rs")); + extern crate serde; extern crate serde_json; extern crate handlebars; extern crate pulldown_cmark; +extern crate regex; +extern crate glob; #[macro_use] extern crate log; pub mod book; mod parse; pub mod renderer; -pub mod theme; pub mod utils; +pub mod tests; pub use book::MDBook; -pub use book::BookItem; -pub use book::BookConfig; -pub use renderer::Renderer; diff --git a/src/parse/mod.rs b/src/parse/mod.rs index c8c8aab7d4..3f7b5b6c32 100644 --- a/src/parse/mod.rs +++ b/src/parse/mod.rs @@ -1,3 +1,3 @@ -pub use self::summary::construct_bookitems; +pub use self::summary::construct_tocitems; pub mod summary; diff --git a/src/parse/summary.rs b/src/parse/summary.rs index a4c87a9c14..bbc42806b5 100644 --- a/src/parse/summary.rs +++ b/src/parse/summary.rs @@ -1,26 +1,41 @@ use std::path::PathBuf; use std::fs::File; use std::io::{Read, Result, Error, ErrorKind}; -use book::bookitem::{BookItem, Chapter}; -pub fn construct_bookitems(path: &PathBuf) -> Result> { - debug!("[fn]: construct_bookitems"); +use book::chapter::Chapter; +use book::toc::{TocItem, TocContent}; + +pub fn construct_tocitems(summary_path: &PathBuf, first_as_index: bool) -> Result> { + debug!("[fn]: construct_tocitems"); let mut summary = String::new(); - try!(try!(File::open(path)).read_to_string(&mut summary)); + try!(try!(File::open(summary_path)).read_to_string(&mut summary)); debug!("[*]: Parse SUMMARY.md"); - let top_items = try!(parse_level(&mut summary.split('\n').collect(), 0, vec![0])); + + let top_items = try!(parse_level(&mut summary.split('\n').collect(), 0, vec![0], first_as_index)); debug!("[*]: Done parsing SUMMARY.md"); Ok(top_items) } -fn parse_level(summary: &mut Vec<&str>, current_level: i32, mut section: Vec) -> Result> { +pub fn parse_level(summary: &mut Vec<&str>, current_level: i32, mut section: Vec, first_as_index: bool) -> Result> { debug!("[fn]: parse_level"); - let mut items: Vec = vec![]; + let mut items: Vec = vec![]; + + let mut found_first = false; + + let ohnoes = r#"Your SUMMARY.md is messed up + +Unnumbered and Spacer items can only exist on the root level. + +Unnumbered items can only exist before or after Numbered items, since these +items are in the frontmatter of a book. + +There can be no Numbered items after Unnumbered items, as they are in the +backmatter."#; // Construct the book recursively while !summary.is_empty() { - let item: BookItem; + let item: TocItem; // Indentation level of the line to parse let level = try!(level(summary[0], 4)); @@ -35,58 +50,58 @@ fn parse_level(summary: &mut Vec<&str>, current_level: i32, mut section: Vec { + let sec = section.clone(); + a.sub_items = Some(try!(parse_level(summary, level, sec.clone(), false))); + items.push(TocItem::Numbered(a)); + + // Remove the last number from the section, because we got + // back to our level... + section.pop(); + continue; + }, + TocItem::Unnumbered(mut a) => { + let sec = section.clone(); + a.sub_items = Some(try!(parse_level(summary, level, sec.clone(), false))); + items.push(TocItem::Unnumbered(a)); + section.pop(); + continue; + }, + TocItem::Unlisted(mut a) => { + let sec = section.clone(); + a.sub_items = Some(try!(parse_level(summary, level, sec.clone(), false))); + items.push(TocItem::Unlisted(a)); + section.pop(); + continue; + }, + _ => { + return Err(Error::new(ErrorKind::Other, ohnoes)); + } }; } else { // level and current_level are the same, parse the line item = if let Some(parsed_item) = parse_line(summary[0]) { - // Eliminate possible errors and set section to -1 after suffix + // Eliminate possible errors and set section to -1 after unnumbered match parsed_item { - // error if level != 0 and BookItem is != Chapter - BookItem::Affix(_) | BookItem::Spacer if level > 0 => { - return Err(Error::new(ErrorKind::Other, - format!("Your summary.md is messed up\n\n - \ - Prefix, Suffix and Spacer elements can only exist on the \ - root level.\n - Prefix \ - elements can only exist before any chapter and there can be \ - no chapters after suffix elements."))) + + // error if level != 0 and TocItem is != Numbered + TocItem::Unnumbered(_) | TocItem::Spacer if level > 0 => { + return Err(Error::new(ErrorKind::Other, ohnoes)) }, - // error if BookItem == Chapter and section == -1 - BookItem::Chapter(_, _) if section[0] == -1 => { - return Err(Error::new(ErrorKind::Other, - format!("Your summary.md is messed up\n\n - \ - Prefix, Suffix and Spacer elements can only exist on the \ - root level.\n - Prefix \ - elements can only exist before any chapter and there can be \ - no chapters after suffix elements."))) + // error if TocItem == Numbered or Unlisted and section == -1 + TocItem::Numbered(_) | TocItem::Unlisted(_) if section[0] == -1 => { + return Err(Error::new(ErrorKind::Other, ohnoes)) }, - // Set section = -1 after suffix - BookItem::Affix(_) if section[0] > 0 => { + // Set section = -1 after unnumbered + TocItem::Unnumbered(_) if section[0] > 0 => { section[0] = -1; }, @@ -94,12 +109,14 @@ fn parse_level(summary: &mut Vec<&str>, current_level: i32, mut section: Vec { + TocItem::Numbered(mut content) => { // Increment section let len = section.len() - 1; section[len] += 1; - let s = section.iter().fold("".to_owned(), |s, i| s + &i.to_string() + "."); - BookItem::Chapter(s, ch) + + content.section = Some(section.clone()); + + TocItem::Numbered(content) }, _ => parsed_item, } @@ -112,13 +129,33 @@ fn parse_level(summary: &mut Vec<&str>, current_level: i32, mut section: Vec { + found_first = true; + content.chapter.dest_path = Some(PathBuf::from("index.html".to_string())); + TocItem::Numbered(content) + }, + TocItem::Unnumbered(mut content) => { + found_first = true; + content.chapter.dest_path = Some(PathBuf::from("index.html".to_string())); + TocItem::Unnumbered(content) + }, + TocItem::Unlisted(content) => { + TocItem::Unlisted(content) + }, + TocItem::Spacer => TocItem::Spacer, + }; + items.push(i); + } else { + items.push(item); + } } debug!("[*]: Level: {:?}", items); Ok(items) } - fn level(line: &str, spaces_in_tab: i32) -> Result { debug!("[fn]: level"); let mut spaces = 0; @@ -147,8 +184,7 @@ fn level(line: &str, spaces_in_tab: i32) -> Result { Ok(level) } - -fn parse_line(l: &str) -> Option { +fn parse_line(l: &str) -> Option { debug!("[fn]: parse_line"); // Remove leading and trailing spaces or tabs @@ -157,7 +193,7 @@ fn parse_line(l: &str) -> Option { // Spacers are "------" if line.starts_with("--") { debug!("[*]: Line is spacer"); - return Some(BookItem::Spacer); + return Some(TocItem::Spacer); } if let Some(c) = line.chars().nth(0) { @@ -166,8 +202,9 @@ fn parse_line(l: &str) -> Option { '-' | '*' => { debug!("[*]: Line is list element"); - if let Some((name, path)) = read_link(line) { - return Some(BookItem::Chapter("0".to_owned(), Chapter::new(name, path))); + if let Some((title, path)) = read_link(line) { + let chapter = Chapter::new(title, path); + return Some(TocItem::Numbered(TocContent::new(chapter))); } else { return None; } @@ -176,8 +213,9 @@ fn parse_line(l: &str) -> Option { '[' => { debug!("[*]: Line is a link element"); - if let Some((name, path)) = read_link(line) { - return Some(BookItem::Affix(Chapter::new(name, path))); + if let Some((title, path)) = read_link(line) { + let chapter = Chapter::new(title, path); + return Some(TocItem::Unnumbered(TocContent::new(chapter))); } else { return None; } @@ -209,7 +247,7 @@ fn read_link(line: &str) -> Option<(String, PathBuf)> { return None; } - let name = line[start_delimitor + 1..end_delimitor].to_owned(); + let title = line[start_delimitor + 1..end_delimitor].to_owned(); start_delimitor = end_delimitor + 1; if let Some(i) = line[start_delimitor..].find(')') { @@ -221,5 +259,5 @@ fn read_link(line: &str) -> Option<(String, PathBuf)> { let path = PathBuf::from(line[start_delimitor + 1..end_delimitor].to_owned()); - Some((name, path)) + Some((title, path)) } diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index 27fb214eb6..a9f5eb0e2a 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -1,10 +1,13 @@ use renderer::html_handlebars::helpers; use renderer::Renderer; -use book::MDBook; -use book::bookitem::BookItem; -use {utils, theme}; +use book::{MDBook, Book}; +use book::chapter::Chapter; +use book::toc::{TocItem, TocContent}; +use utils; +use FILES; use std::path::{Path, PathBuf}; +use std::ffi::OsStr; use std::fs::{self, File}; use std::error::Error; use std::io::{self, Read, Write}; @@ -15,7 +18,6 @@ use handlebars::Handlebars; use serde_json; use serde_json::value::ToJson; - pub struct HtmlHandlebars; impl HtmlHandlebars { @@ -25,308 +27,390 @@ impl HtmlHandlebars { } impl Renderer for HtmlHandlebars { - fn render(&self, book: &MDBook) -> Result<(), Box> { - debug!("[fn]: render"); - let mut handlebars = Handlebars::new(); - // Load theme - let theme = theme::Theme::new(book.get_theme_path()); + /// Prepares the project and calls `render()`. + fn build(&self, project_root: &PathBuf) -> Result<(), Box> { + debug!("[fn]: build"); + + let mut book_project = MDBook::new(&project_root); - // Register template - debug!("[*]: Register handlebars template"); - try!(handlebars.register_template_string("index", try!(String::from_utf8(theme.index)))); + book_project.read_config(); + book_project.parse_books(); - // Register helpers - debug!("[*]: Register handlebars helpers"); - handlebars.register_helper("toc", Box::new(helpers::toc::RenderToc)); - handlebars.register_helper("previous", Box::new(helpers::navigation::previous)); - handlebars.register_helper("next", Box::new(helpers::navigation::next)); + // Clean output directory + try!(utils::fs::remove_dir_content(&book_project.get_dest_base())); - let mut data = try!(make_data(book)); + try!(self.render(&book_project)); - // Print version - let mut print_content: String = String::new(); + Ok(()) + } - // Check if dest directory exists - debug!("[*]: Check if destination directory exists"); - if let Err(_) = fs::create_dir_all(book.get_dest()) { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, - "Unexpected error when constructing destination path"))); + /// Renders the chapters and copies static assets. + fn render(&self, book_project: &MDBook) -> Result<(), Box> { + + debug!("[*]: Check if book's base output folder exists"); + if let Err(_) = fs::create_dir_all(&book_project.get_dest_base()) { + return Err(Box::new(io::Error::new( + io::ErrorKind::Other, + "Unexpected error when constructing path") + )); } - // Render a file for every entry in the book - let mut index = true; - for item in book.iter() { + // TODO write print version html - match *item { - BookItem::Chapter(_, ref ch) | - BookItem::Affix(ref ch) => { - if ch.path != PathBuf::new() { + // TODO livereload + + // Copy book's static assets + + if book_project.get_project_root().join("assets").exists() { + + let a = book_project.get_project_root().join("assets"); + let base = a.to_str().unwrap(); + + let b = a.join("**").join("*"); + let include_glob = b.to_str().unwrap(); + + let c = a.join("_*"); + let exclude_glob = c.to_str().unwrap(); + + // anyone wants to catch errors? + utils::fs::copy_files(include_glob, + base, + vec![exclude_glob], + &book_project.get_dest_base()); + } + + // Copy template's static assets + + // If there is a template dir in the books's project folder, copy asset + // files from there, otherwise copy from embedded assets. + + if book_project.get_template_dir().exists() { + + let a = book_project.get_template_dir(); + let base = a.to_str().unwrap(); + + let b = a.join("**").join("*"); + let include_glob = b.to_str().unwrap(); + + let c = a.join("_*"); + let exclude_glob = c.to_str().unwrap(); + + // don't try!(), copy_files() will send error values when trying to copy folders that are part of the file glob + // + // Error { + // repr: Custom( + // Custom { + // kind: Other, + // error: StringError( + // "Err(Error { repr: Custom(Custom { kind: InvalidInput, error: StringError(\"the source path is not an existing regular file\") }) })\n" + // ) + // } + // ) + // } + + // anyone wants to catch errors? + utils::fs::copy_files(include_glob, + base, + vec![exclude_glob], + &book_project.get_dest_base()); + + } else { + try!(utils::fs::copy_data("data/html-template/**/*", + "data/html-template/", + vec!["data/html-template/_*"], + &book_project.get_dest_base())); + } + + debug!("[fn]: render"); + let mut handlebars = Handlebars::new(); + + // Render the chapters of each book + for (key, book) in &book_project.translations { + + // Read in the page template + let tmpl_path: &PathBuf = &book_project.get_template_dir().join("_layouts").join("page.hbs"); + let s = if tmpl_path.exists() { + try!(utils::fs::file_to_string(&tmpl_path)) + } else { + try!(utils::fs::get_data_file("data/html-template/_layouts/page.hbs")) + }; + + // Register template + debug!("[*]: Register handlebars template"); + try!(handlebars.register_template_string("page", s)); + + // Register helpers + debug!("[*]: Register handlebars helpers"); + handlebars.register_helper("toc", Box::new(helpers::toc::RenderToc)); + handlebars.register_helper("previous", Box::new(helpers::navigation::previous)); + handlebars.register_helper("next", Box::new(helpers::navigation::next)); + + // Check if book's dest directory exists + + // If this is a single book, config.dest default is + // `project_root/book`, and the earlier check will cover this. + + // If this is multi-language book, config.dest will + // `project_book/book/key`, and so we check here for each book. + + debug!("[*]: Check if book's destination directory exists"); + if let Err(_) = fs::create_dir_all(book.config.get_dest()) { + return Err(Box::new(io::Error::new( + io::ErrorKind::Other, + "Unexpected error when constructing destination path") + )); + } + + // If this is the main book of a multi-language book, add an + // index.html to the project dest folder - let path = book.get_src().join(&ch.path); + if book.config.is_multilang && book.config.is_main_book { + match book.toc[0] { + TocItem::Numbered(ref i) | + TocItem::Unnumbered(ref i) | + TocItem::Unlisted(ref i) => { + let mut chapter: Chapter = i.chapter.clone(); + chapter.dest_path = Some(PathBuf::from("index.html".to_string())); - debug!("[*]: Opening file: {:?}", path); - let mut f = try!(File::open(&path)); - let mut content: String = String::new(); + // almost the same as process_chapter(), but we have to + // manipulate path_to_root in data and rendered_path - debug!("[*]: Reading file"); - try!(f.read_to_string(&mut content)); + let mut content = try!(chapter.read_content_using(&book.config.src)); // Parse for playpen links - if let Some(p) = path.parent() { + if let Some(p) = book.config.get_src().join(&chapter.path).parent() { content = helpers::playpen::render_playpen(&content, p); } - // Render markdown using the pulldown-cmark crate - content = utils::render_markdown(&content); - print_content.push_str(&content); - - // Remove content from previous file and render content for this one - data.remove("path"); - match ch.path.to_str() { - Some(p) => { - data.insert("path".to_owned(), p.to_json()); - }, - None => { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, - "Could not convert path to str"))) - }, - } - + let mut data = try!(make_data(&book, &chapter, &content)); - // Remove content from previous file and render content for this one - data.remove("content"); - data.insert("content".to_owned(), content.to_json()); - - // Remove path to root from previous file and render content for this one data.remove("path_to_root"); - data.insert("path_to_root".to_owned(), utils::fs::path_to_root(&ch.path).to_json()); + data.insert("path_to_root".to_owned(), "".to_json()); // Rendere the handlebars template with the data debug!("[*]: Render template"); - let rendered = try!(handlebars.render("index", &data)); + let rendered_content = try!(handlebars.render("page", &data)); + + let p = chapter.dest_path.unwrap(); + let rendered_path = &book_project.get_dest_base().join(&p); + + debug!("[*]: Create file {:?}", rendered_path); - debug!("[*]: Create file {:?}", &book.get_dest().join(&ch.path).with_extension("html")); // Write to file - let mut file = - try!(utils::fs::create_file(&book.get_dest().join(&ch.path).with_extension("html"))); - info!("[*] Creating {:?} ✓", &book.get_dest().join(&ch.path).with_extension("html")); + let mut file = try!(utils::fs::create_file(rendered_path)); + info!("[*] Creating {:?} ✓", rendered_path); - try!(file.write_all(&rendered.into_bytes())); + try!(file.write_all(&rendered_content.into_bytes())); + }, + TocItem::Spacer => {}, + } + } - // Create an index.html from the first element in SUMMARY.md - if index { - debug!("[*]: index.html"); + // Render a file for every entry in the book + try!(self.process_items(&book.toc, &book, &handlebars)); + } - let mut index_file = try!(File::create(book.get_dest().join("index.html"))); - let mut content = String::new(); - let _source = try!(File::open(book.get_dest().join(&ch.path.with_extension("html")))) - .read_to_string(&mut content); + Ok(()) + } +} - // This could cause a problem when someone displays code containing - // on the front page, however this case should be very very rare... - content = content.lines() - .filter(|line| !line.contains(", + book: &Book, + handlebars: &Handlebars) + -> Result<(), Box> { - info!("[*] Creating index.html from {:?} ✓", - book.get_dest().join(&ch.path.with_extension("html"))); - index = false; - } + for item in items.iter() { + match *item { + TocItem::Numbered(ref i) | + TocItem::Unnumbered(ref i) | + TocItem::Unlisted(ref i) => { + // FIXME chapters with path "" are interpreted as draft now, + // not rendered here, and displayed gray in the TOC. Either + // path should be instead an Option or all chapter output + // should be used from setting dest_path, which is already + // Option but currently only used for rendering a chapter as + // index.html. + if i.chapter.path.as_os_str().len() > 0 { + try!(self.process_chapter(&i.chapter, book, handlebars)); } + + if let Some(ref subs) = i.sub_items { + try!(self.process_items(&subs, book, handlebars)); + } + }, _ => {}, } } - // Print version + Ok(()) + } + + fn process_chapter(&self, + chapter: &Chapter, + book: &Book, + handlebars: &Handlebars) + -> Result<(), Box> { - // Remove content from previous file and render content for this one - data.remove("path"); - data.insert("path".to_owned(), "print.md".to_json()); + let mut content = try!(chapter.read_content_using(&book.config.src)); - // Remove content from previous file and render content for this one - data.remove("content"); - data.insert("content".to_owned(), print_content.to_json()); + // Parse for playpen links + if let Some(p) = book.config.get_src().join(&chapter.path).parent() { + content = helpers::playpen::render_playpen(&content, p); + } - // Remove path to root from previous file and render content for this one - data.remove("path_to_root"); - data.insert("path_to_root".to_owned(), utils::fs::path_to_root(Path::new("print.md")).to_json()); + let data = try!(make_data(book, chapter, &content)); // Rendere the handlebars template with the data debug!("[*]: Render template"); - let rendered = try!(handlebars.render("index", &data)); - let mut file = try!(utils::fs::create_file(&book.get_dest().join("print").with_extension("html"))); - try!(file.write_all(&rendered.into_bytes())); - info!("[*] Creating print.html ✓"); - - // Copy static files (js, css, images, ...) - - debug!("[*] Copy static files"); - // JavaScript - let mut js_file = if let Ok(f) = File::create(book.get_dest().join("book.js")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create book.js"))); - }; - try!(js_file.write_all(&theme.js)); - - // Css - let mut css_file = if let Ok(f) = File::create(book.get_dest().join("book.css")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create book.css"))); - }; - try!(css_file.write_all(&theme.css)); - - // Favicon - let mut favicon_file = if let Ok(f) = File::create(book.get_dest().join("favicon.png")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create favicon.png"))); - }; - try!(favicon_file.write_all(&theme.favicon)); - - // JQuery local fallback - let mut jquery = if let Ok(f) = File::create(book.get_dest().join("jquery.js")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create jquery.js"))); - }; - try!(jquery.write_all(&theme.jquery)); + let rendered_content = try!(handlebars.render("page", &data)); - // syntax highlighting - let mut highlight_css = if let Ok(f) = File::create(book.get_dest().join("highlight.css")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create highlight.css"))); + let p = match chapter.dest_path.clone() { + Some(x) => x, + None => chapter.path.with_extension("html") }; - try!(highlight_css.write_all(&theme.highlight_css)); - let mut tomorrow_night_css = if let Ok(f) = File::create(book.get_dest().join("tomorrow-night.css")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create tomorrow-night.css"))); - }; - try!(tomorrow_night_css.write_all(&theme.tomorrow_night_css)); + let rendered_path = &book.config.get_dest().join(&p); - let mut highlight_js = if let Ok(f) = File::create(book.get_dest().join("highlight.js")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create highlight.js"))); - }; - try!(highlight_js.write_all(&theme.highlight_js)); + debug!("[*]: Create file {:?}", rendered_path); - // Font Awesome local fallback - let mut font_awesome = if let Ok(f) = utils::fs::create_file(&book.get_dest() - .join("_FontAwesome/css/font-awesome.css")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create font-awesome.css"))); - }; - try!(font_awesome.write_all(theme::FONT_AWESOME)); - let mut font_awesome = if let Ok(f) = utils::fs::create_file(&book.get_dest() - .join("_FontAwesome/fonts/fontawesome-webfont.eot")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create fontawesome-webfont.eot"))); - }; - try!(font_awesome.write_all(theme::FONT_AWESOME_EOT)); - let mut font_awesome = if let Ok(f) = utils::fs::create_file(&book.get_dest() - .join("_FontAwesome/fonts/fontawesome-webfont.svg")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create fontawesome-webfont.svg"))); - }; - try!(font_awesome.write_all(theme::FONT_AWESOME_SVG)); - let mut font_awesome = if let Ok(f) = utils::fs::create_file(&book.get_dest() - .join("_FontAwesome/fonts/fontawesome-webfont.ttf")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create fontawesome-webfont.ttf"))); - }; - try!(font_awesome.write_all(theme::FONT_AWESOME_TTF)); - let mut font_awesome = if let Ok(f) = utils::fs::create_file(&book.get_dest() - .join("_FontAwesome/fonts/fontawesome-webfont.woff")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create fontawesome-webfont.woff"))); - }; - try!(font_awesome.write_all(theme::FONT_AWESOME_WOFF)); - let mut font_awesome = if let Ok(f) = utils::fs::create_file(&book.get_dest() - .join("_FontAwesome/fonts/fontawesome-webfont.woff2")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create fontawesome-webfont.woff2"))); - }; - try!(font_awesome.write_all(theme::FONT_AWESOME_WOFF2)); - let mut font_awesome = if let Ok(f) = utils::fs::create_file(&book.get_dest() - .join("_FontAwesome/fonts/FontAwesome.ttf")) { - f - } else { - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not create FontAwesome.ttf"))); - }; - try!(font_awesome.write_all(theme::FONT_AWESOME_TTF)); + // Write to file + let mut file = try!(utils::fs::create_file(rendered_path)); + info!("[*] Creating {:?} ✓", rendered_path); - // Copy all remaining files - try!(utils::fs::copy_files_except_ext(book.get_src(), book.get_dest(), true, &["md"])); + try!(file.write_all(&rendered_content.into_bytes())); Ok(()) } } -fn make_data(book: &MDBook) -> Result, Box> { +fn make_data(book: &Book, + chapter: &Chapter, + content: &str) + -> Result, Box> { + debug!("[fn]: make_data"); let mut data = serde_json::Map::new(); + + // Book data + data.insert("language".to_owned(), "en".to_json()); - data.insert("title".to_owned(), book.get_title().to_json()); - data.insert("description".to_owned(), book.get_description().to_json()); - data.insert("favicon".to_owned(), "favicon.png".to_json()); - if let Some(livereload) = book.get_livereload() { - data.insert("livereload".to_owned(), livereload.to_json()); + data.insert("title".to_owned(), book.config.title.to_json()); + data.insert("description".to_owned(), book.config.description.to_json()); + + // Chapter data + + let mut path = if let Some(ref dest_path) = chapter.dest_path { + PathBuf::from(dest_path) + } else { + chapter.path.clone() + }; + + if book.config.is_multilang && path.as_os_str().len() > 0 { + let p = PathBuf::from(&book.config.language.code); + path = p.join(path); + } + + match path.to_str() { + Some(p) => { + data.insert("path".to_owned(), p.to_json()); + }, + None => { + return Err(Box::new(io::Error::new( + io::ErrorKind::Other, + "Could not convert path to str") + )) + }, } + data.insert("content".to_owned(), content.to_json()); + + data.insert("path_to_root".to_owned(), utils::fs::path_to_root(&path).to_json()); + + let chapters = try!(items_to_chapters(&book.toc, &book)); + + data.insert("chapters".to_owned(), chapters.to_json()); + debug!("[*]: JSON constructed"); + Ok(data) +} + +fn items_to_chapters(items: &Vec, book: &Book) + -> Result>, Box> { + let mut chapters = vec![]; - for item in book.iter() { - // Create the data to inject in the template - let mut chapter = BTreeMap::new(); + for item in items.iter() { match *item { - BookItem::Affix(ref ch) => { - chapter.insert("name".to_owned(), ch.name.to_json()); - match ch.path.to_str() { - Some(p) => { - chapter.insert("path".to_owned(), p.to_json()); - }, - None => return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not convert path to str"))), - } - }, - BookItem::Chapter(ref s, ref ch) => { - chapter.insert("section".to_owned(), s.to_json()); - chapter.insert("name".to_owned(), ch.name.to_json()); - match ch.path.to_str() { - Some(p) => { - chapter.insert("path".to_owned(), p.to_json()); - }, - None => return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Could not convert path to str"))), + TocItem::Numbered(ref i) | + TocItem::Unnumbered(ref i) => { + match process_chapter_and_subs(i, book) { + Ok(mut x) => chapters.append(&mut x), + Err(e) => return Err(e), } }, - BookItem::Spacer => { + TocItem::Spacer => { + let mut chapter = serde_json::Map::new(); chapter.insert("spacer".to_owned(), "_spacer_".to_json()); + chapters.push(chapter); }, - + TocItem::Unlisted(_) => {}, } + } + + Ok(chapters) +} - chapters.push(chapter); +fn process_chapter_and_subs(i: &TocContent, book: &Book) + -> Result>, Box> { + + let mut chapters = vec![]; + + // Create the data to inject in the template + let mut chapter = serde_json::Map::new(); + let ch = &i.chapter; + + if let Some(_) = i.section { + let s = i.section_as_string(); + chapter.insert("section".to_owned(), s.to_json()); } - data.insert("chapters".to_owned(), chapters.to_json()); + chapter.insert("title".to_owned(), ch.title.to_json()); - debug!("[*]: JSON constructed"); - Ok(data) + let mut path = if let Some(ref dest_path) = ch.dest_path { + PathBuf::from(dest_path) + } else { + ch.path.clone() + }; + + if book.config.is_multilang && path.as_os_str().len() > 0 { + let p = PathBuf::from(&book.config.language.code); + path = p.join(path); + } + + match path.to_str() { + Some(p) => { + chapter.insert("path".to_owned(), p.to_json()); + }, + None => { + return Err(Box::new(io::Error::new( + io::ErrorKind::Other, + "Could not convert path to str") + )) + }, + } + + chapters.push(chapter); + + if let Some(ref subs) = i.sub_items { + let mut sub_chs = try!(items_to_chapters(&subs, book)); + chapters.append(&mut sub_chs); + } + + Ok(chapters) } diff --git a/src/renderer/html_handlebars/helpers/navigation.rs b/src/renderer/html_handlebars/helpers/navigation.rs index 58c90100d5..d0e132d96d 100644 --- a/src/renderer/html_handlebars/helpers/navigation.rs +++ b/src/renderer/html_handlebars/helpers/navigation.rs @@ -47,7 +47,7 @@ pub fn previous(c: &Context, _h: &Helper, r: &Handlebars, rc: &mut RenderContext let mut previous_chapter = BTreeMap::new(); // Chapter title - match previous.get("name") { + match previous.get("title") { Some(n) => { debug!("[*]: Inserting title: {}", n); previous_chapter.insert("title".to_owned(), n.to_json()) @@ -105,9 +105,6 @@ pub fn previous(c: &Context, _h: &Helper, r: &Handlebars, rc: &mut RenderContext Ok(()) } - - - pub fn next(c: &Context, _h: &Helper, r: &Handlebars, rc: &mut RenderContext) -> Result<(), RenderError> { debug!("[fn]: next (handlebars helper)"); @@ -151,7 +148,7 @@ pub fn next(c: &Context, _h: &Helper, r: &Handlebars, rc: &mut RenderContext) -> // Create new BTreeMap to extend the context: 'title' and 'link' let mut next_chapter = BTreeMap::new(); - match item.get("name") { + match item.get("title") { Some(n) => { debug!("[*]: Inserting title: {}", n); next_chapter.insert("title".to_owned(), n.to_json()); diff --git a/src/renderer/html_handlebars/helpers/toc.rs b/src/renderer/html_handlebars/helpers/toc.rs index 07a6b36d4f..6c8e9625f2 100644 --- a/src/renderer/html_handlebars/helpers/toc.rs +++ b/src/renderer/html_handlebars/helpers/toc.rs @@ -97,11 +97,11 @@ impl HelperDef for RenderToc { try!(rc.writer.write(" ".as_bytes())); } - if let Some(name) = item.get("name") { + if let Some(title) = item.get("title") { // Render only inline code blocks // filter all events that are not inline code blocks - let parser = Parser::new(&name).filter(|event| { + let parser = Parser::new(&title).filter(|event| { match event { &Event::Start(Tag::Code) | &Event::End(Tag::Code) => true, @@ -112,7 +112,7 @@ impl HelperDef for RenderToc { }); // render markdown to html - let mut markdown_parsed_name = String::with_capacity(name.len() * 3 / 2); + let mut markdown_parsed_name = String::with_capacity(title.len() * 3 / 2); html::push_html(&mut markdown_parsed_name, parser); // write to the handlebars template diff --git a/src/renderer/mod.rs b/src/renderer/mod.rs index e76ffb486c..ef34896993 100644 --- a/src/renderer/mod.rs +++ b/src/renderer/mod.rs @@ -2,8 +2,23 @@ pub use self::html_handlebars::HtmlHandlebars; mod html_handlebars; +use book::MDBook; use std::error::Error; +use std::path::PathBuf; pub trait Renderer { - fn render(&self, book: &::book::MDBook) -> Result<(), Box>; + + /// Responsible for creating an `MDBook` struct from path, preparing the + /// project and calling `render()`, doing what is necessary for the + /// particular output format. + /// + /// This involves parsing config options from `book.toml` and parsing the + /// `SUMMARY.md` of each translation to a nested `Vec`. + /// + /// Finally it calls `render()` to process the chapters and static assets. + fn build(&self, project_root: &PathBuf) -> Result<(), Box>; + + /// Responsible for rendering the chapters and copying static assets. + fn render(&self, book_project: &MDBook) -> Result<(), Box>; + } diff --git a/src/tests/book-minimal-with-assets/assets/html-template/_layouts/page.hbs b/src/tests/book-minimal-with-assets/assets/html-template/_layouts/page.hbs new file mode 100644 index 0000000000..ec5a88ff6b --- /dev/null +++ b/src/tests/book-minimal-with-assets/assets/html-template/_layouts/page.hbs @@ -0,0 +1,99 @@ + + + + + {{ title }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ +
+ + + + {{#previous}} + + {{/previous}} + + {{#next}} + + {{/next}} + +
+ + + + + diff --git a/src/tests/book-minimal-with-assets/assets/html-template/css/book.css b/src/tests/book-minimal-with-assets/assets/html-template/css/book.css new file mode 100644 index 0000000000..3646bc65d0 --- /dev/null +++ b/src/tests/book-minimal-with-assets/assets/html-template/css/book.css @@ -0,0 +1,828 @@ +html, +body { + font-family: "Open Sans", sans-serif; + color: #333; +} +.left { + float: left; +} +.right { + float: right; +} +.hidden { + display: none; +} +h2, +h3 { + margin-top: 2.5em; +} +h4, +h5 { + margin-top: 2em; +} +.header + .header h3, +.header + .header h4, +.header + .header h5 { + margin-top: 1em; +} +table { + margin: 0 auto; + border-collapse: collapse; +} +table td { + padding: 3px 20px; + border: 1px solid; +} +table thead td { + font-weight: 700; +} +.sidebar { + position: fixed; + left: 0; + top: 0; + bottom: 0; + width: 300px; + overflow-y: auto; + padding: 10px 10px; + font-size: 0.875em; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-overflow-scrolling: touch; + -webkit-transition: left 0.5s; + -moz-transition: left 0.5s; + -o-transition: left 0.5s; + -ms-transition: left 0.5s; + transition: left 0.5s; +} +@media only screen and (max-width: 1060px) { + .sidebar { + left: -300px; + } +} +.sidebar code { + line-height: 2em; +} +.sidebar-hidden .sidebar { + left: -300px; +} +.sidebar-visible .sidebar { + left: 0; +} +.chapter { + list-style: none outside none; + padding-left: 0; + line-height: 2.2em; +} +.chapter li a { + padding: 5px 0; + text-decoration: none; +} +.chapter li a:hover { + text-decoration: none; +} +.chapter .spacer { + width: 100%; + height: 3px; + margin: 10px 0px; +} +.section { + list-style: none outside none; + padding-left: 20px; + line-height: 1.9em; +} +.section li { + -o-text-overflow: ellipsis; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} +.page-wrapper { + position: absolute; + left: 315px; + right: 0; + top: 0; + bottom: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-overflow-scrolling: touch; + min-height: 100%; + -webkit-transition: left 0.5s; + -moz-transition: left 0.5s; + -o-transition: left 0.5s; + -ms-transition: left 0.5s; + transition: left 0.5s; +} +@media only screen and (max-width: 1060px) { + .page-wrapper { + left: 15px; + padding-right: 15px; + } +} +.sidebar-hidden .page-wrapper { + left: 15px; +} +.sidebar-visible .page-wrapper { + left: 315px; +} +.page { + position: absolute; + top: 0; + right: 0; + left: 0; + bottom: 0; + padding-right: 15px; +} +@media only screen and (max-width: 400px) { + .page { + /* Only prevent horizontal scrolling on screens with less than 100px for the content + A better way would be to somehow prevent horizontal scrolling all the time, but this causes scrolling problems on iOS Safari. + Also, would be better to only enable horizontal scrolling when it is needed (content does not fit on page) but I have no idea how to do that. */ + overflow-x: hidden; + } +} +.content { + margin-left: auto; + margin-right: auto; + max-width: 750px; + padding-bottom: 50px; +} +.content a { + text-decoration: none; +} +.content a:hover { + text-decoration: underline; +} +.content img { + max-width: 100%; +} +.menu-bar { + position: relative; + height: 50px; +} +.menu-bar i { + position: relative; + margin: 0 10px; + z-index: 10; + line-height: 50px; + -webkit-transition: color 0.5s; + -moz-transition: color 0.5s; + -o-transition: color 0.5s; + -ms-transition: color 0.5s; + transition: color 0.5s; +} +.menu-bar i:hover { + cursor: pointer; +} +.menu-bar .left-buttons { + float: left; +} +.menu-bar .right-buttons { + float: right; +} +.menu-title { + display: inline-block; + font-weight: 200; + font-size: 20px; + line-height: 50px; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + text-align: center; + margin: 0; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transition: opacity 0.5s ease-in-out; + -moz-transition: opacity 0.5s ease-in-out; + -o-transition: opacity 0.5s ease-in-out; + -ms-transition: opacity 0.5s ease-in-out; + transition: opacity 0.5s ease-in-out; +} +.menu-bar:hover .menu-title { + opacity: 1; + -ms-filter: none; + filter: none; +} +.nav-chapters { + font-size: 2.5em; + text-align: center; + text-decoration: none; + position: fixed; + top: 50px /* Height of menu-bar */; + bottom: 0; + margin: 0; + max-width: 150px; + min-width: 90px; + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + -webkit-box-pack: center; + -moz-box-pack: center; + -o-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; + -ms-flex-line-pack: center; + -webkit-align-content: center; + align-content: center; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-transition: color 0.5s; + -moz-transition: color 0.5s; + -o-transition: color 0.5s; + -ms-transition: color 0.5s; + transition: color 0.5s; +} +.mobile-nav-chapters { + display: none; +} +.nav-chapters:hover { + text-decoration: none; +} +.sidebar-hidden .previous { + left: 0; +} +.sidebar-visible .nav-chapters .previous { + left: 300px; +} +.sidebar-visible .mobile-nav-chapters .previous { + left: 0; +} +.next { + right: 15px; +} +.theme-popup { + position: relative; + left: 10px; + z-index: 1000; + -webkit-border-radius: 4px; + border-radius: 4px; + font-size: 0.7em; +} +.theme-popup .theme { + margin: 0; + padding: 2px 10px; + line-height: 25px; + white-space: nowrap; +} +.theme-popup .theme:hover:first-child, +.theme-popup .theme:hover:last-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} +@media only screen and (max-width: 1250px) { + .nav-chapters { + display: none; + } + .mobile-nav-chapters { + font-size: 2.5em; + text-align: center; + text-decoration: none; + max-width: 150px; + min-width: 90px; + -webkit-box-pack: center; + -moz-box-pack: center; + -o-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; + -ms-flex-line-pack: center; + -webkit-align-content: center; + align-content: center; + position: relative; + display: inline-block; + margin-bottom: 50px; + -webkit-border-radius: 5px; + border-radius: 5px; + } + .next { + float: right; + } + .previous { + float: left; + } +} +.light { + color: #333; + background-color: #fff; +/* Inline code */ +} +.light .content .header:link, +.light .content .header:visited { + color: #333; + pointer: cursor; +} +.light .content .header:link:hover, +.light .content .header:visited:hover { + text-decoration: none; +} +.light .sidebar { + background-color: #fafafa; + color: #364149; +} +.light .chapter li { + color: #aaa; +} +.light .chapter li a { + color: #364149; +} +.light .chapter li .active, +.light .chapter li a:hover { +/* Animate color change */ + color: #008cff; +} +.light .chapter .spacer { + background-color: #f4f4f4; +} +.light .menu-bar, +.light .menu-bar:visited, +.light .nav-chapters, +.light .nav-chapters:visited, +.light .mobile-nav-chapters, +.light .mobile-nav-chapters:visited { + color: #ccc; +} +.light .menu-bar i:hover, +.light .nav-chapters:hover, +.light .mobile-nav-chapters i:hover { + color: #333; +} +.light .mobile-nav-chapters i:hover { + color: #364149; +} +.light .mobile-nav-chapters { + background-color: #fafafa; +} +.light .content a:link, +.light a:visited { + color: #4183c4; +} +.light .theme-popup { + color: #333; + background: #fafafa; + border: 1px solid #ccc; +} +.light .theme-popup .theme:hover { + background-color: #e6e6e6; +} +.light .theme-popup .default { + color: #ccc; +} +.light blockquote { + margin: 20px 0; + padding: 0 20px; + color: #333; + background-color: #f2f7f9; + border-top: 0.1em solid #e1edf1; + border-bottom: 0.1em solid #e1edf1; +} +.light table td { + border-color: #f2f2f2; +} +.light table tbody tr:nth-child(2n) { + background: #f7f7f7; +} +.light table thead { + background: #ccc; +} +.light table thead td { + border: none; +} +.light table thead tr { + border: 1px #ccc solid; +} +.light :not(pre) > .hljs { + display: inline-block; + vertical-align: middle; + padding: 0.1em 0.3em; + -webkit-border-radius: 3px; + border-radius: 3px; +} +.light pre { + position: relative; +} +.light pre > .buttons { + position: absolute; + right: 5px; + top: 5px; + color: #364149; + cursor: pointer; +} +.light pre > .buttons :hover { + color: #008cff; +} +.light pre > .buttons i { + margin-left: 8px; +} +.light pre > .result { + margin-top: 10px; +} +.coal { + color: #98a3ad; + background-color: #141617; +/* Inline code */ +} +.coal .content .header:link, +.coal .content .header:visited { + color: #98a3ad; + pointer: cursor; +} +.coal .content .header:link:hover, +.coal .content .header:visited:hover { + text-decoration: none; +} +.coal .sidebar { + background-color: #292c2f; + color: #a1adb8; +} +.coal .chapter li { + color: #505254; +} +.coal .chapter li a { + color: #a1adb8; +} +.coal .chapter li .active, +.coal .chapter li a:hover { +/* Animate color change */ + color: #3473ad; +} +.coal .chapter .spacer { + background-color: #393939; +} +.coal .menu-bar, +.coal .menu-bar:visited, +.coal .nav-chapters, +.coal .nav-chapters:visited, +.coal .mobile-nav-chapters, +.coal .mobile-nav-chapters:visited { + color: #43484d; +} +.coal .menu-bar i:hover, +.coal .nav-chapters:hover, +.coal .mobile-nav-chapters i:hover { + color: #b3c0cc; +} +.coal .mobile-nav-chapters i:hover { + color: #a1adb8; +} +.coal .mobile-nav-chapters { + background-color: #292c2f; +} +.coal .content a:link, +.coal a:visited { + color: #2b79a2; +} +.coal .theme-popup { + color: #98a3ad; + background: #141617; + border: 1px solid #43484d; +} +.coal .theme-popup .theme:hover { + background-color: #1f2124; +} +.coal .theme-popup .default { + color: #43484d; +} +.coal blockquote { + margin: 20px 0; + padding: 0 20px; + color: #98a3ad; + background-color: #242637; + border-top: 0.1em solid #2c2f44; + border-bottom: 0.1em solid #2c2f44; +} +.coal table td { + border-color: #1f2223; +} +.coal table tbody tr:nth-child(2n) { + background: #1b1d1e; +} +.coal table thead { + background: #3f4649; +} +.coal table thead td { + border: none; +} +.coal table thead tr { + border: 1px #3f4649 solid; +} +.coal :not(pre) > .hljs { + display: inline-block; + vertical-align: middle; + padding: 0.1em 0.3em; + -webkit-border-radius: 3px; + border-radius: 3px; +} +.coal pre { + position: relative; +} +.coal pre > .buttons { + position: absolute; + right: 5px; + top: 5px; + color: #a1adb8; + cursor: pointer; +} +.coal pre > .buttons :hover { + color: #3473ad; +} +.coal pre > .buttons i { + margin-left: 8px; +} +.coal pre > .result { + margin-top: 10px; +} +.navy { + color: #bcbdd0; + background-color: #161923; +/* Inline code */ +} +.navy .content .header:link, +.navy .content .header:visited { + color: #bcbdd0; + pointer: cursor; +} +.navy .content .header:link:hover, +.navy .content .header:visited:hover { + text-decoration: none; +} +.navy .sidebar { + background-color: #282d3f; + color: #c8c9db; +} +.navy .chapter li { + color: #505274; +} +.navy .chapter li a { + color: #c8c9db; +} +.navy .chapter li .active, +.navy .chapter li a:hover { +/* Animate color change */ + color: #2b79a2; +} +.navy .chapter .spacer { + background-color: #2d334f; +} +.navy .menu-bar, +.navy .menu-bar:visited, +.navy .nav-chapters, +.navy .nav-chapters:visited, +.navy .mobile-nav-chapters, +.navy .mobile-nav-chapters:visited { + color: #737480; +} +.navy .menu-bar i:hover, +.navy .nav-chapters:hover, +.navy .mobile-nav-chapters i:hover { + color: #b7b9cc; +} +.navy .mobile-nav-chapters i:hover { + color: #c8c9db; +} +.navy .mobile-nav-chapters { + background-color: #282d3f; +} +.navy .content a:link, +.navy a:visited { + color: #2b79a2; +} +.navy .theme-popup { + color: #bcbdd0; + background: #161923; + border: 1px solid #737480; +} +.navy .theme-popup .theme:hover { + background-color: #282e40; +} +.navy .theme-popup .default { + color: #737480; +} +.navy blockquote { + margin: 20px 0; + padding: 0 20px; + color: #bcbdd0; + background-color: #262933; + border-top: 0.1em solid #2f333f; + border-bottom: 0.1em solid #2f333f; +} +.navy table td { + border-color: #1f2331; +} +.navy table tbody tr:nth-child(2n) { + background: #1b1f2b; +} +.navy table thead { + background: #39415b; +} +.navy table thead td { + border: none; +} +.navy table thead tr { + border: 1px #39415b solid; +} +.navy :not(pre) > .hljs { + display: inline-block; + vertical-align: middle; + padding: 0.1em 0.3em; + -webkit-border-radius: 3px; + border-radius: 3px; +} +.navy pre { + position: relative; +} +.navy pre > .buttons { + position: absolute; + right: 5px; + top: 5px; + color: #c8c9db; + cursor: pointer; +} +.navy pre > .buttons :hover { + color: #2b79a2; +} +.navy pre > .buttons i { + margin-left: 8px; +} +.navy pre > .result { + margin-top: 10px; +} +.rust { + color: #262625; + background-color: #e1e1db; +/* Inline code */ +} +.rust .content .header:link, +.rust .content .header:visited { + color: #262625; + pointer: cursor; +} +.rust .content .header:link:hover, +.rust .content .header:visited:hover { + text-decoration: none; +} +.rust .sidebar { + background-color: #3b2e2a; + color: #c8c9db; +} +.rust .chapter li { + color: #505254; +} +.rust .chapter li a { + color: #c8c9db; +} +.rust .chapter li .active, +.rust .chapter li a:hover { +/* Animate color change */ + color: #e69f67; +} +.rust .chapter .spacer { + background-color: #45373a; +} +.rust .menu-bar, +.rust .menu-bar:visited, +.rust .nav-chapters, +.rust .nav-chapters:visited, +.rust .mobile-nav-chapters, +.rust .mobile-nav-chapters:visited { + color: #737480; +} +.rust .menu-bar i:hover, +.rust .nav-chapters:hover, +.rust .mobile-nav-chapters i:hover { + color: #262625; +} +.rust .mobile-nav-chapters i:hover { + color: #c8c9db; +} +.rust .mobile-nav-chapters { + background-color: #3b2e2a; +} +.rust .content a:link, +.rust a:visited { + color: #2b79a2; +} +.rust .theme-popup { + color: #262625; + background: #e1e1db; + border: 1px solid #b38f6b; +} +.rust .theme-popup .theme:hover { + background-color: #99908a; +} +.rust .theme-popup .default { + color: #737480; +} +.rust blockquote { + margin: 20px 0; + padding: 0 20px; + color: #262625; + background-color: #c1c1bb; + border-top: 0.1em solid #b8b8b1; + border-bottom: 0.1em solid #b8b8b1; +} +.rust table td { + border-color: #d7d7cf; +} +.rust table tbody tr:nth-child(2n) { + background: #dbdbd4; +} +.rust table thead { + background: #b3a497; +} +.rust table thead td { + border: none; +} +.rust table thead tr { + border: 1px #b3a497 solid; +} +.rust :not(pre) > .hljs { + display: inline-block; + vertical-align: middle; + padding: 0.1em 0.3em; + -webkit-border-radius: 3px; + border-radius: 3px; +} +.rust pre { + position: relative; +} +.rust pre > .buttons { + position: absolute; + right: 5px; + top: 5px; + color: #c8c9db; + cursor: pointer; +} +.rust pre > .buttons :hover { + color: #e69f67; +} +.rust pre > .buttons i { + margin-left: 8px; +} +.rust pre > .result { + margin-top: 10px; +} +@media only print { + #sidebar, + #menu-bar, + .nav-chapters, + .mobile-nav-chapters { + display: none; + } + #page-wrapper { + left: 0; + overflow-y: initial; + } + #content { + max-width: none; + margin: 0; + padding: 0; + } + .page { + overflow-y: initial; + } + code { + background-color: #666; + -webkit-border-radius: 5px; + border-radius: 5px; +/* Force background to be printed in Chrome */ + -webkit-print-color-adjust: exact; + } + a, + a:visited, + a:active, + a:hover { + color: #4183c4; + text-decoration: none; + } + h1, + h2, + h3, + h4, + h5, + h6 { + page-break-inside: avoid; + page-break-after: avoid; +/*break-after: avoid*/ + } + pre, + code { + page-break-inside: avoid; + white-space: pre-wrap /* CSS 3 */; + white-space: -moz-pre-wrap /* Mozilla, since 1999 */; + white-space: -pre-wrap /* Opera 4-6 */; + white-space: -o-pre-wrap /* Opera 7 */; + word-wrap: break-word /* Internet Explorer 5.5+ */; + } +} diff --git a/src/tests/book-minimal-with-assets/book.toml b/src/tests/book-minimal-with-assets/book.toml new file mode 100644 index 0000000000..fb8ee0b4b6 --- /dev/null +++ b/src/tests/book-minimal-with-assets/book.toml @@ -0,0 +1,3 @@ +title = "Labyrinths" +subtitle = "Selected Stories and Other Writings" +author = "Jorge Luis Borges" diff --git a/src/tests/book-minimal-with-assets/src/SUMMARY.md b/src/tests/book-minimal-with-assets/src/SUMMARY.md new file mode 100644 index 0000000000..727197c60e --- /dev/null +++ b/src/tests/book-minimal-with-assets/src/SUMMARY.md @@ -0,0 +1,11 @@ +# Labyrinths + +[Introduction](introduction.md) + +- [Fictions](fictions.md) + - [Ruins](fictions/ruins.md) + - [Babel](fictions/babel.md) +- [Essays](essays.md) + - [Kafka](essays/kafka.md) + +[Chronology](chronology.md) diff --git a/src/tests/book-minimal-with-assets/src/chronology.md b/src/tests/book-minimal-with-assets/src/chronology.md new file mode 100644 index 0000000000..94eceeeed4 --- /dev/null +++ b/src/tests/book-minimal-with-assets/src/chronology.md @@ -0,0 +1 @@ +# Chronology diff --git a/src/tests/book-minimal-with-assets/src/essays.md b/src/tests/book-minimal-with-assets/src/essays.md new file mode 100644 index 0000000000..c018e66899 --- /dev/null +++ b/src/tests/book-minimal-with-assets/src/essays.md @@ -0,0 +1 @@ +# Essays diff --git a/src/tests/book-minimal-with-assets/src/essays/kafka.md b/src/tests/book-minimal-with-assets/src/essays/kafka.md new file mode 100644 index 0000000000..2eb9d10333 --- /dev/null +++ b/src/tests/book-minimal-with-assets/src/essays/kafka.md @@ -0,0 +1 @@ +# Kafka diff --git a/src/tests/book-minimal-with-assets/src/fictions.md b/src/tests/book-minimal-with-assets/src/fictions.md new file mode 100644 index 0000000000..c04e57bc20 --- /dev/null +++ b/src/tests/book-minimal-with-assets/src/fictions.md @@ -0,0 +1 @@ +# Fictions diff --git a/src/tests/book-minimal-with-assets/src/fictions/babel.md b/src/tests/book-minimal-with-assets/src/fictions/babel.md new file mode 100644 index 0000000000..3c50a9c36b --- /dev/null +++ b/src/tests/book-minimal-with-assets/src/fictions/babel.md @@ -0,0 +1,12 @@ ++++ +title = "The Library of Babel" +author = "Jorge Luis Borges" +translator = "James E. Irby" ++++ + +# Babel + +The universe (which others call the Library) is composed of an indefinite and +perhaps infinite number of hexagonal galleries, with vast air shafts between, +surrounded by very low railings. From any of the hexagons one can see, +interminably, the upper and lower floors. diff --git a/src/tests/book-minimal-with-assets/src/fictions/ruins.md b/src/tests/book-minimal-with-assets/src/fictions/ruins.md new file mode 100644 index 0000000000..833fd716f2 --- /dev/null +++ b/src/tests/book-minimal-with-assets/src/fictions/ruins.md @@ -0,0 +1,5 @@ ++++ +title = "The Circular Ruins" ++++ + +# Ruins diff --git a/src/tests/book-minimal-with-assets/src/introduction.md b/src/tests/book-minimal-with-assets/src/introduction.md new file mode 100644 index 0000000000..e10b99d013 --- /dev/null +++ b/src/tests/book-minimal-with-assets/src/introduction.md @@ -0,0 +1 @@ +# Introduction diff --git a/src/tests/book-minimal/book.toml b/src/tests/book-minimal/book.toml new file mode 100644 index 0000000000..fb8ee0b4b6 --- /dev/null +++ b/src/tests/book-minimal/book.toml @@ -0,0 +1,3 @@ +title = "Labyrinths" +subtitle = "Selected Stories and Other Writings" +author = "Jorge Luis Borges" diff --git a/src/tests/book-minimal/src/SUMMARY.md b/src/tests/book-minimal/src/SUMMARY.md new file mode 100644 index 0000000000..727197c60e --- /dev/null +++ b/src/tests/book-minimal/src/SUMMARY.md @@ -0,0 +1,11 @@ +# Labyrinths + +[Introduction](introduction.md) + +- [Fictions](fictions.md) + - [Ruins](fictions/ruins.md) + - [Babel](fictions/babel.md) +- [Essays](essays.md) + - [Kafka](essays/kafka.md) + +[Chronology](chronology.md) diff --git a/src/tests/book-minimal/src/chronology.md b/src/tests/book-minimal/src/chronology.md new file mode 100644 index 0000000000..94eceeeed4 --- /dev/null +++ b/src/tests/book-minimal/src/chronology.md @@ -0,0 +1 @@ +# Chronology diff --git a/src/tests/book-minimal/src/essays.md b/src/tests/book-minimal/src/essays.md new file mode 100644 index 0000000000..c018e66899 --- /dev/null +++ b/src/tests/book-minimal/src/essays.md @@ -0,0 +1 @@ +# Essays diff --git a/src/tests/book-minimal/src/essays/kafka.md b/src/tests/book-minimal/src/essays/kafka.md new file mode 100644 index 0000000000..2eb9d10333 --- /dev/null +++ b/src/tests/book-minimal/src/essays/kafka.md @@ -0,0 +1 @@ +# Kafka diff --git a/src/tests/book-minimal/src/fictions.md b/src/tests/book-minimal/src/fictions.md new file mode 100644 index 0000000000..c04e57bc20 --- /dev/null +++ b/src/tests/book-minimal/src/fictions.md @@ -0,0 +1 @@ +# Fictions diff --git a/src/tests/book-minimal/src/fictions/babel.md b/src/tests/book-minimal/src/fictions/babel.md new file mode 100644 index 0000000000..3c50a9c36b --- /dev/null +++ b/src/tests/book-minimal/src/fictions/babel.md @@ -0,0 +1,12 @@ ++++ +title = "The Library of Babel" +author = "Jorge Luis Borges" +translator = "James E. Irby" ++++ + +# Babel + +The universe (which others call the Library) is composed of an indefinite and +perhaps infinite number of hexagonal galleries, with vast air shafts between, +surrounded by very low railings. From any of the hexagons one can see, +interminably, the upper and lower floors. diff --git a/src/tests/book-minimal/src/fictions/ruins.md b/src/tests/book-minimal/src/fictions/ruins.md new file mode 100644 index 0000000000..833fd716f2 --- /dev/null +++ b/src/tests/book-minimal/src/fictions/ruins.md @@ -0,0 +1,5 @@ ++++ +title = "The Circular Ruins" ++++ + +# Ruins diff --git a/src/tests/book-minimal/src/introduction.md b/src/tests/book-minimal/src/introduction.md new file mode 100644 index 0000000000..e10b99d013 --- /dev/null +++ b/src/tests/book-minimal/src/introduction.md @@ -0,0 +1 @@ +# Introduction diff --git a/src/tests/book-wonderland-multilang/assets/images/Queen.jpg b/src/tests/book-wonderland-multilang/assets/images/Queen.jpg new file mode 100644 index 0000000000000000000000000000000000000000..74421205070e7a8ac874387934532812a415a615 GIT binary patch literal 118274 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ʠ$67f7e zYZVm>YrtZ&F#w+%0kjB9_X>6Ubr-dLN`2Sd_}MrFcCV8}M~6~Ktj#+4d_Gc4oduPU z8R$lYv~9(d@{BOiQa(SgUQ_K`)hTC5w%qXl0CuZo=E<7KT*}-gF~mc$P<-ey8e{u) zXGe*vS2Z4Ll+fR+=!q#kY4R4{vkiwZnF0srr3c@!uOB@W!NZrd#_mTEVlGj~>A^iq zuQ#}sGI~n|fIM*<2mGgJ$B9?Fa%=QviX47YTQaGM1bBI4(Qg2QVu~uL-pMjAfP9XV zzL(IBPS&}Ku(kbsT+-CDD%FnYc%>zP3?%^u*WiQXY#)#>U;9489Xx+^QGjuRzF>u4 zw-9KW@G&v)!Q)aPchCLe-=7050K_X-L>o zyKf{Pnd#m53CdNY1|?QF_Z^Frv2LYxqz*$CQ>FM|5AUvo=5Ju{)QtB`bnHlsCXXeA zO5zB#2Ek>7k>q(@I-fu4ItIsBwYs@%BzW0cR1XZ)qn_z3KbtU>Lc*hd3xp@f72l4v zhHM@YX1kBIf{tp^aI)z&IfN^rwW^x+CVgo7pQDlSvB-3xYUT=+c``|nnoBoj4JJCh zhE@sW7L@ut44zo+TfrwoqBMJ(F>1thj!`mL_EuXp=9OcCU~*MR(m{@n3Bemfv2c;{dne7{?$0D167Urij05@ak# z+#RsCvRtD70A`l7l7w_0%1`I;L|@0?cqIAi9v>R><=ZDlEHWHqtra+Cu@S2aMukdgzr7`pjqJibn4`80yZ&%y+Z&>$9QP>k)@xvHnrSk073ya5?C(Sr{Has6CSS zl#p1OrA&&!B+`+lGC2-p9v8?9;C?!?WBQ%hKWdX?`=hp2!txwo$j3hs{SSlWYw^~H z>lf4T$dUIw8J)l?kO!5I^a`p@{{W}YTQ}9t$4KLOGpQQLIVqB~%j5d(2EVcR>2J0E zrgn84_jua3n2t2Ll8VGGAe4zA6zfJD5WgJJ$M+pD$MuV`90IxE0UU=aldmQH#?#3D zqsLM$eN^oFh$OR;u^f8}U9t9ff_^rAJq_>k)QJA0_Qae$JGP(HJX4N7$>ept59Rsr zI?w$icD}$DtP+0$g@gY9==#ZiqxQrt#%s2tZF1A&?1Qi0%za_{liER%PF+L3xTm2n zBftB+ch;@-GqjdKhb(z$pB1Jc0sEdB9ef{CJ4mat zopRsA@2l9VDKaiD$wuJil(Pu@5zWBa{{S)my%MkWOS7zhy33Mxt|p|w{(l8G_&s!A zsePvKnPbVj#y`xJCvWfYpVP0IAF17+j;gjUW}`$ry{in4_y%Z>qhhtH{{O@z(Y*myiDdq5g;dU2v1@4`js1v*hi= z&t(kQyK#mCw+{^b>=*4`eYj;LEM=}SokQs|e5CBy0h_9B}9uMQ-Z>g3k*pi&^ z*~MA7lBSAF+F6;0{H3r#KN|dXU3Rx^=kcA{JEv&oKZMN`iVcq5l_KY`RhmCaa-K%L zp!fr?ME?NU_LfSfBe@$XkCKP2mS%<{QLC#)A&En(v~iNBiSki?4_2>P)Js^}7UfxO z(yKg+t}iS~#B1Y3j-+f1TQOGp$qYdxK-=E*Ff*93{q-d^u@(MS<->oF6S>q`6;bh+;r2!lL_51bF zB8gN4jT8Vt0YK0{Jz<72K{25q6$gm;KO_5fvZ|thiWCpP8td;_)^(j{S=M!(XIapIT9Y;)tkcDJsxkPH`NWNZ)V*WR;Z MWNd7C*IC#9*#!q8%>V!Z literal 0 HcmV?d00001 diff --git a/src/tests/book-wonderland-multilang/assets/images/Rabbit.png b/src/tests/book-wonderland-multilang/assets/images/Rabbit.png new file mode 100644 index 0000000000000000000000000000000000000000..bc86c6a6891a51b8a2129254a3f38a7325e272dd GIT binary patch literal 143765 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 z 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%0AvK&+SxoEXf=CHd(H|Z~&buP1} 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

AF`*;1AW5Y!! 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 literal 0 HcmV?d00001 diff --git a/src/tests/book-wonderland-multilang/book.toml b/src/tests/book-wonderland-multilang/book.toml new file mode 100644 index 0000000000..7a60e31182 --- /dev/null +++ b/src/tests/book-wonderland-multilang/book.toml @@ -0,0 +1,17 @@ +# Source: https://en.wikisource.org/wiki/Alice%27s_Adventures_in_Wonderland_(1866)" + +[[translations.en]] +title = "Alice's Adventures in Wonderland" +author = "Lewis Carroll" +language = { name = "English", code = "en" } +is_main_book = true + +[[translations.fr]] +title = "Alice au pays des merveilles" +author = "Lewis Carroll" +language = { name = "Français", code = "fr" } + +[[translations.hu]] +title = "Alice Csodaországban" +author = "Lewis Carroll" +language = { name = "Magyar", code = "hu" } diff --git a/src/tests/book-wonderland-multilang/src/en/SUMMARY.md b/src/tests/book-wonderland-multilang/src/en/SUMMARY.md new file mode 100644 index 0000000000..41d7154086 --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/en/SUMMARY.md @@ -0,0 +1,17 @@ +# Alice's Adventures in Wonderland + +[Titlepage](titlepage.md) + +- [Down The Rabbit-Hole](rabbit-hole.md) +- [The Pool of Tears](tears.md) +- [A Caucus-Race and a Long Tale](long-tale.md) +- [The Rabbit Sends in a Little Bill]() +- [Advice From a Caterpillar]() +- [Pig and Pepper]() +- [A Mad Tea-Party]() +- [The Queen's Croquet-Ground]() +- [The Mock-Turtle's Story]() +- [The Lobster Quadrille]() +- [Who Stole The Tarts?]() +- [Alice's Evidence]() + diff --git a/src/tests/book-wonderland-multilang/src/en/long-tale.md b/src/tests/book-wonderland-multilang/src/en/long-tale.md new file mode 100644 index 0000000000..dec8091dbb --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/en/long-tale.md @@ -0,0 +1,15 @@ +# A Caucus-Race and a Long Tale + +![Tail](images/Tail.png) + +They were indeed a queer-looking party that assembled on the bank—the birds with +draggled feathers, the animals with their fur clinging close to them, and all +dripping wet, cross, and uncomfortable. + +The first question of course was, how to get dry again: they had a consultation +about this, and after a few minutes it seemed quite natural to Alice to find +herself talking familiarly with them, as if she had known them all her life. +Indeed, she had quite a long argument with the Lory, who at last turned sulky, +and would only say, "I am older than you, and must know better;" and this Alice +would not allow, without knowing how old it was, and as the Lory positively +refused to tell its age, there was no more to be said. diff --git a/src/tests/book-wonderland-multilang/src/en/rabbit-hole.md b/src/tests/book-wonderland-multilang/src/en/rabbit-hole.md new file mode 100644 index 0000000000..585e8a224b --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/en/rabbit-hole.md @@ -0,0 +1,13 @@ +# Down The Rabbit-Hole + +![Rabbit](images/Rabbit.png) + +Alice was beginning to get very tired of sitting by her sister on the bank, and +of having nothing to do: once or twice she had peeped into the book her sister +was reading, but it had no pictures or conversations in it, "and what is the use +of a book," thought Alice, "without pictures or conversations?" + +So she was considering in her own mind, (as well as she could, for the hot day +made her feel very sleepy and stupid,) whether the pleasure of making a +daisy-chain would be worth the trouble of getting up and picking the daisies, +when suddenly a white rabbit with pink eyes ran close by her. diff --git a/src/tests/book-wonderland-multilang/src/en/tears.md b/src/tests/book-wonderland-multilang/src/en/tears.md new file mode 100644 index 0000000000..7d2523e370 --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/en/tears.md @@ -0,0 +1,18 @@ +# The Pool of Tears + +![Tears](images/Tears.png) + +"Curiouser and curiouser!" cried Alice (she was so much surprised, that for the +moment she quite forgot how to speak good English); "now I'm opening out like +the largest telescope that ever was! Good-bye, feet!" (for when she looked down +at her feet, they seemed to be almost out of sight, they were getting so far +off). "Oh, my poor little feet, I wonder who will put on your shoes and +stockings for you now, dears? I'm sure I shan't be able! I shall be a great deal +too far off to trouble myself about you: you must manage the best way you +can;—but I must be kind to them," thought Alice, "or perhaps they won't walk the +way I want to go! Let me see: I'll give them a new pair of boots every +Christmas." + +And she went on planning to herself how she would manage it. "They must go by +the carrier," she thought; "and how funny it'll seem, sending presents to one's +own feet! And how odd the directions will look! diff --git a/src/tests/book-wonderland-multilang/src/en/titlepage.md b/src/tests/book-wonderland-multilang/src/en/titlepage.md new file mode 100644 index 0000000000..58639ff057 --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/en/titlepage.md @@ -0,0 +1,10 @@ +# Alice's Adventures in Wonderland + +![Queen of Hearts](images/Queen.jpg) + +All in the golden afternoon +Full leisurely we glide; +For both our oars, with little skill, +By little arms are plied, +While little hands make vain pretence +Our wanderings to guide. diff --git a/src/tests/book-wonderland-multilang/src/fr/SUMMARY.md b/src/tests/book-wonderland-multilang/src/fr/SUMMARY.md new file mode 100644 index 0000000000..0ca6d6d6fa --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/fr/SUMMARY.md @@ -0,0 +1,17 @@ +# Alice au pays des merveilles + +[Titre](titre.md) + +- [Au fond du terrier](terrier.md) +- [La mare aux larmes](larmes.md) +- [La course cocasse](cocasse.md) +- [L'habitation du lapin blanc]() +- [Conseils d'une chenille]() +- [Porc et poivre]() +- [Un thé de fous]() +- [Le croquet de la reine]() +- [Histoire de la fausse-tortue]() +- [Le quadrille de homards]() +- [Qui a volé les tartes ?]() +- [Déposition d'Alice]() + diff --git a/src/tests/book-wonderland-multilang/src/fr/cocasse.md b/src/tests/book-wonderland-multilang/src/fr/cocasse.md new file mode 100644 index 0000000000..cb74ab3a90 --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/fr/cocasse.md @@ -0,0 +1,17 @@ +# La course cocasse + +![Cocasse](images/Tail.png) + +Ils formaient une assemblée bien grotesque ces êtres singuliers réunis sur le +bord de la mare ; les uns avaient leurs plumes tout en désordre, les autres le +poil plaqué contre le corps. Tous étaient trempés, de mauvaise humeur, et fort +mal à l’aise. + +« Comment faire pour nous sécher ? » ce fut la première question, cela va sans +dire. Au bout de quelques instants, il sembla tout naturel à Alice de causer +familièrement avec ces animaux, comme si elle les connaissait depuis son +berceau. Elle eut même une longue discussion avec le Lory, qui, à la fin, lui +fit la mine et lui dit d’un air boudeur : « Je suis plus âgé que vous, et je +dois par conséquent en savoir plus long. » Alice ne voulut pas accepter cette +conclusion avant de savoir l’âge du Lory, et comme celui-ci refusa tout net de +le lui dire, cela mit un terme au débat. diff --git a/src/tests/book-wonderland-multilang/src/fr/larmes.md b/src/tests/book-wonderland-multilang/src/fr/larmes.md new file mode 100644 index 0000000000..87d0c91c80 --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/fr/larmes.md @@ -0,0 +1,18 @@ +# La mare aux larmes + +![Larmes](images/Tears.png) + +« De plus très-curieux en plus très-curieux ! » s’écria Alice (sa surprise était +si grande qu’elle ne pouvait s’exprimer correctement) : « Voilà que je m’allonge +comme le plus grand télescope qui fût jamais ! Adieu mes pieds ! » (Elle venait +de baisser les yeux, et ses pieds lui semblaient s’éloigner à perte de vue.) « +Oh ! mes pauvres petits pieds ! Qui vous mettra vos bas et vos souliers +maintenant, mes mignons ? Quant à moi, je ne le pourrai certainement pas ! Je +serai bien trop loin pour m’occuper de vous : arrangez-vous du mieux que vous +pourrez. — Il faut cependant que je sois bonne pour eux, » pensa Alice, « sans +cela ils refuseront peut-être d’aller du côté que je voudrai. Ah ! je sais ce +que je ferai : je leur donnerai une belle paire de bottines à Noël. » + +Puis elle chercha dans son esprit comment elle s’y prendrait. « Il faudra les +envoyer par le messager, » pensa-t-elle ; « quelle étrange chose d’envoyer des +présents à ses pieds ! Et l’adresse donc ! C’est cela qui sera drôle. diff --git a/src/tests/book-wonderland-multilang/src/fr/terrier.md b/src/tests/book-wonderland-multilang/src/fr/terrier.md new file mode 100644 index 0000000000..55cb3e7f1d --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/fr/terrier.md @@ -0,0 +1,13 @@ +# Au fond du terrier + +![Terrier](images/Rabbit.png) + +Alice, assise auprès de sa sœur sur le gazon, commençait à s’ennuyer de rester +là à ne rien faire ; une ou deux fois elle avait jeté les yeux sur le livre que +lisait sa sœur ; mais quoi ! pas d’images, pas de dialogues ! « La belle avance, +» pensait Alice, « qu’un livre sans images, sans causeries ! » + +Elle s’était mise à réfléchir, (tant bien que mal, car la chaleur du jour +l’endormait et la rendait lourde,) se demandant si le plaisir de faire une +couronne de marguerites valait bien la peine de se lever et de cueillir les +fleurs, quand tout à coup un lapin blanc aux yeux roses passa près d’elle. diff --git a/src/tests/book-wonderland-multilang/src/fr/titre.md b/src/tests/book-wonderland-multilang/src/fr/titre.md new file mode 100644 index 0000000000..099db953f8 --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/fr/titre.md @@ -0,0 +1,18 @@ +# Alice au pays des merveilles + +![Queen of Hearts](images/Queen.jpg) + +[L’Auteur désire exprimer ici sa reconnaissance envers le Traducteur de ce qu’il +a remplacé par des parodies de sa composition quelques parodies de morceaux de +poésie anglais, qui n’avaient de valeur que pour des enfants anglais ; et aussi, +de ce qu’il a su donner en jeux de mots français les équivalents des jeux de +mots anglais, dont la traduction n’était pas possible.] + +Notre barque glisse sur l’onde +Que dorent de brûlants rayons ; +Sa marche lente et vagabonde +Témoigne que des bras mignons, +Pleins d’ardeur, mais encore novices, +Tout fiers de ce nouveau travail, +Mènent au gré de leurs caprices +Les rames et le gouvernail. diff --git a/src/tests/book-wonderland-multilang/src/hu/SUMMARY.md b/src/tests/book-wonderland-multilang/src/hu/SUMMARY.md new file mode 100644 index 0000000000..2e9daf5a45 --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/hu/SUMMARY.md @@ -0,0 +1,17 @@ +# Alice Csodaországban + +[Címoldal](cimoldal.md) + +- [Lenn, a Nyuszi barlangjában](nyuszi.md) +- [Könnytó](konnyto.md) +- [Körbecsukó meg az egér hosszú tarka farka](tarka-farka.md) +- [Gyíkocska]() +- [A hernyó tanácsot ad]() +- [Békétlenség, bors és baj]() +- [Bolondok uzsonnája]() +- [A királyi krokettpálya]() +- [Az Ál-Teknőc története]() +- [Homár-humor]() +- [Ki lopta el a lepényt?]() +- [Alice tanúvallomása]() + diff --git a/src/tests/book-wonderland-multilang/src/hu/cimoldal.md b/src/tests/book-wonderland-multilang/src/hu/cimoldal.md new file mode 100644 index 0000000000..48177b68d7 --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/hu/cimoldal.md @@ -0,0 +1,10 @@ +# Alice Csodaországban + +![Queen of Hearts](images/Queen.jpg) + +Egész aranyló délután +csak szeltük a vizet, +két ügyetlen, parányi kar +buzgón evezgetett, +küszködtek a kormánnyal +a parányi kis kezek. diff --git a/src/tests/book-wonderland-multilang/src/hu/konnyto.md b/src/tests/book-wonderland-multilang/src/hu/konnyto.md new file mode 100644 index 0000000000..0b88fe12ee --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/hu/konnyto.md @@ -0,0 +1,10 @@ +# Könnytó + +![Könnytó](images/Tears.png) + +-- Egyre murisabb! - kiáltott fel Alice. Úgy meglepődött, hogy egyszeriben +elfelejtett szépen beszélni. + +-- Most hát olyan hosszúra nyúltam, mint a világ legnagyobb távcsöve. No, +szervusztok, lábaim. Tudniillik lenézett a lábaira. Alig látta őket, olyan +messzire estek tőle. diff --git a/src/tests/book-wonderland-multilang/src/hu/nyuszi.md b/src/tests/book-wonderland-multilang/src/hu/nyuszi.md new file mode 100644 index 0000000000..24896e19b0 --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/hu/nyuszi.md @@ -0,0 +1,14 @@ +# Lenn, a Nyuszi barlangjában + +![Nyuszi](images/Rabbit.png) + +Alice már elunta, hogy tétlenül üldögéljen nénje mellett az árokparton. +Egyszer-egyszer bepislantott abba a könyvbe, amelyet a nénje olvasott, de nem +voltak benne se képek, se versek. + +Mit ér egy könyv - gondolta Alice - képek meg versek nélkül? + +Hát csak ült-üldögélt, s azon törte a fejét, már amennyire tőle telt - mert a +rekkenő hőségtől egészen elálmosodott és megbutult -, hogy jobb volna fölkelni +pitypangot szedni és füzért fonni belőle, amikor hirtelenül elsurrant mellette a +piros szemű fehér Nyuszi. diff --git a/src/tests/book-wonderland-multilang/src/hu/tarka-farka.md b/src/tests/book-wonderland-multilang/src/hu/tarka-farka.md new file mode 100644 index 0000000000..f3617efe13 --- /dev/null +++ b/src/tests/book-wonderland-multilang/src/hu/tarka-farka.md @@ -0,0 +1,17 @@ +# Körbecsukó meg az egér hosszú tarka farka + +![Tarka-farka](images/Tail.png) + +Mondhatom, furcsán festett ez a társaság a parton. A madarak tolla csatakos +volt, a többi állat szőre meg odatapadt a testéhez, valamennyien +csurogtak-csöpögtek, és búnak eresztették a fejüket. + +Természetesen az volt a legnagyobb gondjuk, hogyan lehetne megszáradniuk. Ezen +tanakodtak, s Alice néhány perc múlva már kedélyesen tereferélt velük, mintha +réges-rég ismerte volna őket. Sőt a Papagájjal össze is veszett, hogy az végül +duzzogva hátat fordított neki, s csak ezt hajtogatta: + +- Én öregebb vagyok, szívem, ennélfogva nekem jobban kell tudnom. + +Alice ezt nem akarta elismerni mindaddig, amíg a Papagáj meg nem mondja: hány +éves. De a Papagáj ezt kereken megtagadta. Hát a vita itt megrekedt. diff --git a/src/tests/bookconfig_test.rs b/src/tests/bookconfig_test.rs new file mode 100644 index 0000000000..35a2c180fd --- /dev/null +++ b/src/tests/bookconfig_test.rs @@ -0,0 +1,16 @@ +#[cfg(test)] + +use std::path::PathBuf; + +use book::bookconfig::BookConfig; + +#[test] +fn it_creates_paths_joined_to_project_root() { + let result = BookConfig::new(&PathBuf::from("./there".to_string())); + + let mut expected = BookConfig::default(); + expected.dest = PathBuf::from("./there".to_string()).join("book"); + expected.src = PathBuf::from("./there".to_string()).join("src"); + + assert_eq!(format!("{:?}", result), format!("{:?}", expected)); +} diff --git a/src/tests/chapter_test.rs b/src/tests/chapter_test.rs new file mode 100644 index 0000000000..7ce4e08a84 --- /dev/null +++ b/src/tests/chapter_test.rs @@ -0,0 +1,22 @@ +#[cfg(test)] + +use std::path::PathBuf; + +use book::bookconfig::Author; +use book::chapter::Chapter; + +#[test] +fn it_parses_when_exists() { + let src_path = PathBuf::from(".").join("src").join("tests").join("chapters"); + let path = PathBuf::from("at-the-mountains-of-madness.md"); + + let mut result = Chapter::new("Mountains".to_string(), path.clone()); + result.parse_or_create_using(&src_path); + + let mut expected = Chapter::new("Mountains".to_string(), path.clone()); + + // test that the author is parsed from the TOML header + expected.authors = Some(vec![Author::new("H.P. Lovecraft")]); + + assert_eq!(format!("{:?}", result), format!("{:?}", expected)); +} diff --git a/src/tests/chapters/at-the-mountains-of-madness.md b/src/tests/chapters/at-the-mountains-of-madness.md new file mode 100644 index 0000000000..0e55c08c02 --- /dev/null +++ b/src/tests/chapters/at-the-mountains-of-madness.md @@ -0,0 +1,30 @@ ++++ +author = "H.P. Lovecraft" ++++ + +# At the Mountains of Madness + +> "I have seen the dark universe yawning\\ +> Where the black planets roll without aim,\\ +> Where they roll in their horror unheeded,\\ +> without knowledge or lustre or name." +> +> Nemesis, 1917 + +Yet now the sway of reason seemed irrefutably shaken, for this +Cyclopean maze of squared, curved, and angled blocks had features +which cut off all comfortable refuge. It was, very clearly, the +blasphemous city of the mirage in stark, objective, and +ineluctable reality. That damnable portent had had a material +basis after all—there had been some horizontal stratum of ice +dust in the upper air, and this shocking stone survival had +projected its image across the mountains according to the simple +laws of reflection, Of course, the phantom had been twisted and +exaggerated, and had contained things which the real source did +not contain; yet now, as we saw that real source, we thought it +even more hideous and menacing than its distant image. + +[At the Mountains of Madness][1] by *H.P. Lovecraft*, 1931 + +[1]: http://en.wikisource.org/wiki/At_the_Mountains_of_Madness/Chapter_5 + diff --git a/src/tests/fs_test.rs b/src/tests/fs_test.rs new file mode 100644 index 0000000000..240f185bf6 --- /dev/null +++ b/src/tests/fs_test.rs @@ -0,0 +1,50 @@ +#[cfg(test)] + +use std::fs::{self, File}; +use std::io::Read; +use std::path::Path; + +use utils; + +#[test] +fn it_copies_data_file() { + let dest_path = Path::new("the place was dark").join("and dusty and half-lost").join("book.css"); + utils::fs::copy_data_file("data/html-template/css/books.css", &dest_path); + + let mut file = match File::open(&dest_path) { + Ok(f) => f, + Err(e) => { + println!("Failed to open {:?}", dest_path); + return; + }, + }; + + let mut content = String::new(); + if let Err(e) = file.read_to_string(&mut content) { + println!("Failed to read {:?}", dest_path); + return; + } + + assert!(content.as_str().contains("Open Sans")); +} + +#[test] +fn it_copies_data_by_pattern() { + let dest_base = Path::new("in tangles of old alleys").join("near the quays"); + + if let Err(e) = utils::fs::copy_data("data/html-template/**/*", + "data/html-template/", + vec!["data/html-template/_*"], + &dest_base) { + println!("Error: {:#?}", e); + return; + } + + assert!(dest_base.join("css").join("book.css").exists()); + assert!(!dest_base.join("_layouts").exists()); + + let p = Path::new("in tangles of old alleys"); + if p.exists() { + fs::remove_dir_all(p); + } +} diff --git a/src/tests/hbs_renderer_multilang.rs b/src/tests/hbs_renderer_multilang.rs new file mode 100644 index 0000000000..aff66a7456 --- /dev/null +++ b/src/tests/hbs_renderer_multilang.rs @@ -0,0 +1,53 @@ +#[cfg(test)] + +use std::path::{Path, PathBuf}; + +use book::MDBook; +use renderer::{Renderer, HtmlHandlebars}; +use utils; + +#[test] +fn it_renders_multilanguage_book() { + let path = PathBuf::from(".").join("src").join("tests").join("book-wonderland-multilang"); + + let renderer = HtmlHandlebars::new(); + if let Err(e) = renderer.build(&path) { + println!("{:#?}", e); + } + + let mut proj = MDBook::new(&path); + proj.read_config(); + proj.parse_books(); + + let mut book_path: &Path = proj.translations.get("en").unwrap().config.get_dest(); + let mut chapter_path: PathBuf = PathBuf::from("".to_string()); + let mut s: String = String::new(); + + // Test if index.html in the project dest folder is the main book's first chapter + + chapter_path = proj.get_dest_base().join("index.html"); + s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("Alice's Adventures in Wonderland")); + assert!(s.contains("

Alice's Adventures in Wonderland

")); + + // Test if each translation was rendered + + chapter_path = book_path.join("tears.html"); + s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("

The Pool of Tears

")); + + book_path = proj.translations.get("fr").unwrap().config.get_dest(); + chapter_path = book_path.join("larmes.html"); + s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("

La mare aux larmes

")); + + book_path = proj.translations.get("hu").unwrap().config.get_dest(); + chapter_path = book_path.join("konnyto.html"); + s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("

Könnytó

")); + + // Test if book's asset files were copied + + assert!(proj.get_dest_base().join("images").join("Queen.jpg").exists()); + +} diff --git a/src/tests/hbs_renderer_test.rs b/src/tests/hbs_renderer_test.rs new file mode 100644 index 0000000000..1252e99593 --- /dev/null +++ b/src/tests/hbs_renderer_test.rs @@ -0,0 +1,79 @@ +#[cfg(test)] + +use std::path::{Path, PathBuf}; + +use book::MDBook; +use renderer::{Renderer, HtmlHandlebars}; +use utils; + +#[test] +fn it_renders_html_from_minimal_book() { + let path = PathBuf::from(".").join("src").join("tests").join("book-minimal"); + + let renderer = HtmlHandlebars::new(); + if let Err(e) = renderer.build(&path) { + println!("{:#?}", e); + } + + let mut proj = MDBook::new(&path); + proj.read_config(); + proj.parse_books(); + + let book_path: &Path = proj.translations.get("en").unwrap().config.get_dest(); + let mut chapter_path: PathBuf = PathBuf::from("".to_string()); + let mut s: String = String::new(); + + // Test if "Library of Babel" was rendered + + chapter_path = book_path.join("fictions").join("babel").with_extension("html"); + s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("The Library of Babel")); + + // Test if first chapter "Introduction" was rendered as index.html + + chapter_path = book_path.join("index.html"); + s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("

Introduction

")); + + // Test if next link from "Introduction" is "Fictions" + + chapter_path = book_path.join("index.html"); + s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("
{x}, + None => { + error!("[*]: Toml parse errors in book.toml: {:?}", parser.errors); + exit(2); + } + }; + + result.parse_from_btreemap(&config); + + let mut expected = MDBook::new(&PathBuf::from(".")); + expected.indent_spaces = 2; + + { + let mut conf = BookConfig::new(&PathBuf::from(".")); + conf.title = "Alice's Adventures in Wonderland".to_string(); + conf.authors = vec![Author::new("Lewis Carroll")]; + conf.src = expected.get_project_root().join("src").join("en"); + conf.dest = expected.get_project_root().join("book").join("en"); + + let mut book = Book::default(); + book.config = conf; + + expected.translations.insert("en".to_string(), book); + } + + { + let mut conf = BookConfig::new(&PathBuf::from(".")); + conf.title = "Alice Csodaországban".to_string(); + conf.authors = vec![Author::new("Lewis Carroll")]; + conf.translators = Some(vec![Author::new("Kosztolányi Dezső")]); + conf.src = expected.get_project_root().join("src").join("hu"); + conf.dest = expected.get_project_root().join("book").join("hu"); + + let mut book = Book::default(); + book.config = conf; + + expected.translations.insert("hu".to_string(), book); + } + + // Hashmaps are unordered. They don't always print their keys in the same order. + + assert_eq!( + format!("{:#?} {:#?} {:#?}", result.indent_spaces, result.translations.get("en").unwrap(), result.translations.get("hu").unwrap()), + format!("{:#?} {:#?} {:#?}", expected.indent_spaces, expected.translations.get("en").unwrap(), expected.translations.get("hu").unwrap()) + ); +} + +#[test] +fn it_parses_config_for_a_single_book() { + let text = r#" +indent_spaces = 2 +title = "Alice Csodaországban" +language = { name = "Hungarian", code = "hu" } + +[[authors]] +name = "Lewis Carroll" + +[[translators]] +name = "Kosztolányi Dezső" +"#; + + let mut result = MDBook::new(&PathBuf::from(".")); + + let mut parser = toml::Parser::new(&text); + + let config = match parser.parse() { + Some(x) => {x}, + None => { + error!("[*]: Toml parse errors in book.toml: {:?}", parser.errors); + exit(2); + } + }; + + result.parse_from_btreemap(&config); + + let mut expected = MDBook::new(&PathBuf::from(".")); + expected.indent_spaces = 2; + + { + let mut book = Book::new(&PathBuf::from(result.get_project_root())); + book.config.title = "Alice Csodaországban".to_string(); + book.config.authors = vec![Author::new("Lewis Carroll")]; + book.config.translators = Some(vec![Author::new("Kosztolányi Dezső")]); + book.config.language.name = "Hungarian".to_string(); + book.config.language.code = "hu".to_string(); + + expected.translations.insert("hu".to_string(), book); + } + + assert_eq!( + format!("{:?} {:?}", result.indent_spaces, result.translations.get("hu").unwrap()), + format!("{:?} {:?}", expected.indent_spaces, expected.translations.get("hu").unwrap()) + ); +} + +#[test] +fn it_parses_toc_and_chapters_in_minimal_book() { + let path = PathBuf::from(".").join("src").join("tests").join("book-minimal"); + let mut result = MDBook::new(&path); + + result.read_config(); + result.parse_books(); + + let mut babel = Chapter::default(); + if let TocItem::Numbered(ref fictions) = result.translations.get("en").unwrap().toc[1] { + if let TocItem::Numbered(ref ch) = fictions.clone().sub_items.unwrap()[1] { + babel = ch.chapter.clone(); + } + } + + assert_eq!(format!("{:?}", babel.translators.unwrap()), format!("{:?}", vec![Author::new("James E. Irby")])); +} diff --git a/src/tests/mod.rs b/src/tests/mod.rs new file mode 100644 index 0000000000..b84de45d18 --- /dev/null +++ b/src/tests/mod.rs @@ -0,0 +1,11 @@ +#[cfg(test)] + +pub mod mdbook_test; +pub mod bookconfig_test; +pub mod chapter_test; +pub mod summary_test; +pub mod utils_test; +pub mod fs_test; +pub mod hbs_renderer_test; +pub mod hbs_renderer_multilang; +pub mod toc_test; diff --git a/src/tests/summary_test.rs b/src/tests/summary_test.rs new file mode 100644 index 0000000000..648160a94a --- /dev/null +++ b/src/tests/summary_test.rs @@ -0,0 +1,400 @@ +#[cfg(test)] + +use std::path::PathBuf; + +use parse::summary::parse_level; + +#[test] +fn it_parses_summary_to_tocitems() { + let text = r#" +# Summary + +[Introduction](misc/introduction.md) + +- [mdBook](README.md) +- [Command Line Tool](cli/cli-tool.md) + - [init](cli/init.md) + - [build](cli/build.md) + - [watch](cli/watch.md) + - [serve](cli/serve.md) + - [test](cli/test.md) +- [Format](format/format.md) + - [SUMMARY.md](format/summary.md) + - [Configuration](format/config.md) + - [Theme](format/theme/theme.md) + - [index.hbs](format/theme/index-hbs.md) + - [Syntax highlighting](format/theme/syntax-highlighting.md) + - [MathJax Support](format/mathjax.md) + - [Rust code specific features](format/rust.md) +- [Rust Library](lib/lib.md) +----------- +[Contributors](misc/contributors.md) +"#; + + let result = parse_level(&mut text.split('\n').collect(), 0, vec![0], true).unwrap(); + + let expected = r#"[ + Unnumbered( + TocContent { + chapter: Chapter { + title: "Introduction", + path: "misc/introduction.md", + dest_path: Some( + "index.html" + ), + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: None + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "mdBook", + path: "README.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 1 + ] + ) + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "Command Line Tool", + path: "cli/cli-tool.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: Some( + [ + Numbered( + TocContent { + chapter: Chapter { + title: "init", + path: "cli/init.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 2, + 1 + ] + ) + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "build", + path: "cli/build.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 2, + 2 + ] + ) + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "watch", + path: "cli/watch.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 2, + 3 + ] + ) + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "serve", + path: "cli/serve.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 2, + 4 + ] + ) + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "test", + path: "cli/test.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 2, + 5 + ] + ) + } + ) + ] + ), + section: Some( + [ + 2 + ] + ) + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "Format", + path: "format/format.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: Some( + [ + Numbered( + TocContent { + chapter: Chapter { + title: "SUMMARY.md", + path: "format/summary.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 3, + 1 + ] + ) + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "Configuration", + path: "format/config.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 3, + 2 + ] + ) + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "Theme", + path: "format/theme/theme.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: Some( + [ + Numbered( + TocContent { + chapter: Chapter { + title: "index.hbs", + path: "format/theme/index-hbs.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 3, + 3, + 1 + ] + ) + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "Syntax highlighting", + path: "format/theme/syntax-highlighting.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 3, + 3, + 2 + ] + ) + } + ) + ] + ), + section: Some( + [ + 3, + 3 + ] + ) + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "MathJax Support", + path: "format/mathjax.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 3, + 4 + ] + ) + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "Rust code specific features", + path: "format/rust.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 3, + 5 + ] + ) + } + ) + ] + ), + section: Some( + [ + 3 + ] + ) + } + ), + Numbered( + TocContent { + chapter: Chapter { + title: "Rust Library", + path: "lib/lib.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: Some( + [ + 4 + ] + ) + } + ), + Spacer, + Unnumbered( + TocContent { + chapter: Chapter { + title: "Contributors", + path: "misc/contributors.md", + dest_path: None, + authors: None, + translators: None, + description: None, + css_class: None + }, + sub_items: None, + section: None + } + ) +]"#; + + assert_eq!(expected, format!("{:#?}", result)); +} diff --git a/src/tests/toc_test.rs b/src/tests/toc_test.rs new file mode 100644 index 0000000000..4b64139c11 --- /dev/null +++ b/src/tests/toc_test.rs @@ -0,0 +1,13 @@ +#[cfg(test)] + +use book::chapter::Chapter; +use book::toc::TocContent; + +#[test] +fn it_should_produce_the_section_as_string() { + let mut c = TocContent::default(); + c.section = Some(vec![1, 9, 4]); + let result = c.section_as_string(); + let expected = "1.9.4.".to_string(); + assert_eq!(result, expected); +} diff --git a/src/book/bookconfig_test.rs b/src/tests/utils_test.rs similarity index 84% rename from src/book/bookconfig_test.rs rename to src/tests/utils_test.rs index 34122628ba..76ef74470e 100644 --- a/src/book/bookconfig_test.rs +++ b/src/tests/utils_test.rs @@ -1,56 +1,21 @@ #[cfg(test)] -use std::path::Path; -use serde_json; -use book::bookconfig::*; - -#[test] -fn it_parses_json_config() { - let text = r#" -{ - "title": "mdBook Documentation", - "description": "Create book from markdown files. Like Gitbook but implemented in Rust", - "author": "Mathieu David" -}"#; - - // TODO don't require path argument, take pwd - let mut config = BookConfig::new(Path::new(".")); - - config.parse_from_json_string(&text.to_string()); +use std::collections::BTreeMap; - let mut expected = BookConfig::new(Path::new(".")); - expected.title = "mdBook Documentation".to_string(); - expected.author = "Mathieu David".to_string(); - expected.description = "Create book from markdown files. Like Gitbook but implemented in Rust".to_string(); +use serde_json; - assert_eq!(format!("{:#?}", config), format!("{:#?}", expected)); -} +use utils::*; #[test] -fn it_parses_toml_config() { - let text = r#" -title = "mdBook Documentation" -description = "Create book from markdown files. Like Gitbook but implemented in Rust" -author = "Mathieu David" -"#; - - // TODO don't require path argument, take pwd - let mut config = BookConfig::new(Path::new(".")); - - config.parse_from_toml_string(&text.to_string()); - - let mut expected = BookConfig::new(Path::new(".")); - expected.title = "mdBook Documentation".to_string(); - expected.author = "Mathieu David".to_string(); - expected.description = "Create book from markdown files. Like Gitbook but implemented in Rust".to_string(); - - assert_eq!(format!("{:#?}", config), format!("{:#?}", expected)); +fn it_puts_last_name_first() { + let name = "Howard Philip Lovecraft"; + assert_eq!(last_name_first(name), "Lovecraft, Howard Philip"); } #[test] fn it_parses_json_nested_array_to_toml() { - // Example from: + // JSON example from: // toml-0.2.1/tests/valid/arrays-nested.json let text = r#" @@ -131,11 +96,10 @@ fn it_parses_json_nested_array_to_toml() { assert_eq!(format!("{:#?}", result), expected); } - #[test] fn it_parses_json_arrays_to_toml() { - // Example from: + // JSON example from: // toml-0.2.1/tests/valid/arrays.json let text = r#" diff --git a/src/theme/mod.rs b/src/theme/mod.rs deleted file mode 100644 index 130dd1157a..0000000000 --- a/src/theme/mod.rs +++ /dev/null @@ -1,105 +0,0 @@ -use std::path::Path; -use std::fs::File; -use std::io::Read; - - -pub static INDEX: &'static [u8] = include_bytes!("index.hbs"); -pub static CSS: &'static [u8] = include_bytes!("book.css"); -pub static FAVICON: &'static [u8] = include_bytes!("favicon.png"); -pub static JS: &'static [u8] = include_bytes!("book.js"); -pub static HIGHLIGHT_JS: &'static [u8] = include_bytes!("highlight.js"); -pub static TOMORROW_NIGHT_CSS: &'static [u8] = include_bytes!("tomorrow-night.css"); -pub static HIGHLIGHT_CSS: &'static [u8] = include_bytes!("highlight.css"); -pub static JQUERY: &'static [u8] = include_bytes!("jquery-2.1.4.min.js"); -pub static FONT_AWESOME: &'static [u8] = include_bytes!("_FontAwesome/css/font-awesome.min.css"); -pub static FONT_AWESOME_EOT: &'static [u8] = include_bytes!("_FontAwesome/fonts/fontawesome-webfont.eot"); -pub static FONT_AWESOME_SVG: &'static [u8] = include_bytes!("_FontAwesome/fonts/fontawesome-webfont.svg"); -pub static FONT_AWESOME_TTF: &'static [u8] = include_bytes!("_FontAwesome/fonts/fontawesome-webfont.ttf"); -pub static FONT_AWESOME_WOFF: &'static [u8] = include_bytes!("_FontAwesome/fonts/fontawesome-webfont.woff"); -pub static FONT_AWESOME_WOFF2: &'static [u8] = include_bytes!("_FontAwesome/fonts/fontawesome-webfont.woff2"); -pub static FONT_AWESOME_OTF: &'static [u8] = include_bytes!("_FontAwesome/fonts/FontAwesome.otf"); - -/// The `Theme` struct should be used instead of the static variables because the `new()` method -/// will look if the user has a theme directory in his source folder and use the users theme instead -/// of the default. -/// -/// You should exceptionnaly use the static variables only if you need the default theme even if the -/// user has specified another theme. -pub struct Theme { - pub index: Vec, - pub css: Vec, - pub favicon: Vec, - pub js: Vec, - pub highlight_css: Vec, - pub tomorrow_night_css: Vec, - pub highlight_js: Vec, - pub jquery: Vec, -} - -impl Theme { - pub fn new(src: &Path) -> Self { - - // Default theme - let mut theme = Theme { - index: INDEX.to_owned(), - css: CSS.to_owned(), - favicon: FAVICON.to_owned(), - js: JS.to_owned(), - highlight_css: HIGHLIGHT_CSS.to_owned(), - tomorrow_night_css: TOMORROW_NIGHT_CSS.to_owned(), - highlight_js: HIGHLIGHT_JS.to_owned(), - jquery: JQUERY.to_owned(), - }; - - // Check if the given path exists - if !src.exists() || !src.is_dir() { - return theme; - } - - // Check for individual files if they exist - - // index.hbs - if let Ok(mut f) = File::open(&src.join("index.hbs")) { - theme.index.clear(); // Reset the value, because read_to_string appends... - let _ = f.read_to_end(&mut theme.index); - } - - // book.js - if let Ok(mut f) = File::open(&src.join("book.js")) { - theme.js.clear(); - let _ = f.read_to_end(&mut theme.js); - } - - // book.css - if let Ok(mut f) = File::open(&src.join("book.css")) { - theme.css.clear(); - let _ = f.read_to_end(&mut theme.css); - } - - // favicon.png - if let Ok(mut f) = File::open(&src.join("favicon.png")) { - theme.favicon.clear(); - let _ = f.read_to_end(&mut theme.favicon); - } - - // highlight.js - if let Ok(mut f) = File::open(&src.join("highlight.js")) { - theme.highlight_js.clear(); - let _ = f.read_to_end(&mut theme.highlight_js); - } - - // highlight.css - if let Ok(mut f) = File::open(&src.join("highlight.css")) { - theme.highlight_css.clear(); - let _ = f.read_to_end(&mut theme.highlight_css); - } - - // tomorrow-night.css - if let Ok(mut f) = File::open(&src.join("tomorrow-night.css")) { - theme.tomorrow_night_css.clear(); - let _ = f.read_to_end(&mut theme.tomorrow_night_css); - } - - theme - } -} diff --git a/src/utils/fs.rs b/src/utils/fs.rs index 858f1e83f0..36b520de42 100644 --- a/src/utils/fs.rs +++ b/src/utils/fs.rs @@ -1,10 +1,15 @@ -use std::path::{Path, Component}; +use book::MDBook; + +use std::path::{Path, PathBuf, Component}; use std::error::Error; -use std::io::{self, Read}; +use std::io::{self, Read, Write}; use std::fs::{self, File}; -/// Takes a path to a file and try to read the file into a String +use glob::{glob, Pattern}; + +use FILES; +/// Takes a path to a file and try to read the file into a String pub fn file_to_string(path: &Path) -> Result> { let mut file = match File::open(path) { Ok(f) => f, @@ -24,6 +29,156 @@ pub fn file_to_string(path: &Path) -> Result> { Ok(content) } +/// Returns the contents of a static asset file by its path as &str. The path +/// should include "data/". +pub fn get_data_file(path: &str) -> Result> { + let content = match FILES.get(&path) { + Ok(x) => String::from_utf8(x.into_owned()).unwrap_or("".to_string()), + Err(e) => return Err(Box::new(e)), + }; + Ok(content) +} + +/// Writes the content of a data file from the embedded static assets to the +/// given destination path. Necessary folders will be created. +pub fn copy_data_file(src_path: &str, dest_path: &Path) -> Result<(), Box> { + let content = match FILES.get(&src_path) { + Ok(x) => x.into_owned(), + Err(e) => return Err(Box::new(e)), + }; + + let mut f: File = try!(create_file(dest_path)); + + match f.write_all(&content) { + Ok(x) => Ok(x), + Err(e) => Err(Box::new(e)) + } +} + +/// Writes selected data files from the embedded static assets to the given +/// destination path. +/// +/// `include_base` will be removed from the source path. This way the path +/// relative to the `dest_path` can be controlled. +/// +/// The following will copy all files under "data/html-template/", excluding +/// folders that start with "_", take the "data/html-template/" part off the +/// source path, and write the entries to "assets" folder. +/// +/// I.e. "data/html-template/css/book.css" will be written to +/// "assets/css/book.css". +/// +/// ```no_run +/// utils::fs::copy_data("data/html-template/**/*", +/// "data/html-template/", +/// vec!["data/html-template/_*"], +/// &Path::new("assets")); +/// ``` +pub fn copy_data(include_glob: &str, + include_base: &str, + exclude_globs: Vec<&str>, + dest_base: &Path) + -> Result<(), Box> { + + let results = FILES.file_names() + // narrow to files that match any of the include patterns + .filter(|x| glob_matches(x, &vec![include_glob])) + // exclude those which match any of the exclude patterns + .filter(|x| !glob_matches(x, &exclude_globs)) + // copy each to the destination such that `include_base` is removed from the source path + .map(|x| { + let mut s: &str = &x.replace(include_base, ""); + s = s.trim_left_matches("/"); + + let p = Path::new(s); + let dest_path = dest_base.join(p); + + copy_data_file(x, &dest_path) + }) + // only error results should remain + .filter(|x| !x.is_ok()); + + // collect errors as a String + let mut s = String::new(); + for i in results { + s.push_str(&format!("{:?}\n", i)); + } + + if s.len() > 1 as usize { + Err(Box::new(io::Error::new(io::ErrorKind::Other, s))) + } else { + Ok(()) + } +} + +/// Is there a match in any of the glob patterns? +pub fn glob_matches(text: &str, globs: &Vec<&str>) -> bool { + let patterns = globs.iter().map(|x| Pattern::new(x).unwrap()); + for pat in patterns { + if pat.matches(text) { + return true; + } + } + false +} + +/// Same logic as `copy_data()` but operating on actual files instead of +/// embedded static assets. +pub fn copy_files(include_glob: &str, + include_base: &str, + exclude_globs: Vec<&str>, + dest_base: &Path) + -> Result<(), Box> { + + let pathbufs: Vec = try!(glob(include_glob)) + .filter(|x| x.is_ok()) + .map(|x| x.unwrap()) + .collect::>(); + + let files = pathbufs.iter().filter_map(|x| x.to_str()); + + let results = + // narrow to files that match any of the include patterns + files.filter(|x| glob_matches(x, &vec![include_glob])) + // exclude those which match any of the exclude patterns + .filter(|x| !glob_matches(x, &exclude_globs)) + // copy each to the destination such that `include_base` is removed from the source path + .map(|x| { + let mut s: &str = &x.replace(include_base, ""); + s = s.trim_left_matches("/"); + + let p = Path::new(s); + let dest_path = dest_base.join(p); + + // make sure parent exists + if let Some(p) = dest_path.parent() { + try!(fs::create_dir_all(p)); + } + + if dest_path.is_dir() { + // if it is an already created dir + Ok(0) + } else { + // this will error on folders, so don't try!() on results + fs::copy(&x, &dest_path) + } + }) + // only error results should remain + .filter(|x| !x.is_ok()); + + // collect errors as a String + let mut s = String::new(); + for i in results { + s.push_str(&format!("{:?}\n", i)); + } + + if s.len() > 1 as usize { + Err(Box::new(io::Error::new(io::ErrorKind::Other, s))) + } else { + Ok(()) + } +} + /// Takes a path and returns a path containing just enough `../` to point to the root of the given path. /// /// This is mostly interesting for a relative path to point back to the directory from where the @@ -44,7 +199,6 @@ pub fn file_to_string(path: &Path) -> Result> { /// **note:** it's not very fool-proof, if you find a situation where it doesn't return the correct /// path. Consider [submitting a new issue](https://github.com/azerupi/mdBook/issues) or a /// [pull-request](https://github.com/azerupi/mdBook/pulls) to improve it. - pub fn path_to_root(path: &Path) -> String { debug!("[fn]: path_to_root"); // Remove filename and add "../" for every directory @@ -64,11 +218,8 @@ pub fn path_to_root(path: &Path) -> String { }) } - - /// This function creates a file and returns it. But before creating the file it checks every /// directory in the path to see if it exists, and if it does not it will be created. - pub fn create_file(path: &Path) -> Result> { debug!("[fn]: create_file"); @@ -91,9 +242,14 @@ pub fn create_file(path: &Path) -> Result> { Ok(f) } -/// Removes all the content of a directory but not the directory itself +// TODO why not just delete the folder and re-create it? +/// Removes all the content of a directory but not the directory itself pub fn remove_dir_content(dir: &Path) -> Result<(), Box> { + if !dir.exists() { + return Ok(()); + } + for item in try!(fs::read_dir(dir)) { if let Ok(item) = item { let item = item.path(); @@ -107,11 +263,8 @@ pub fn remove_dir_content(dir: &Path) -> Result<(), Box> { Ok(()) } -/// -/// /// Copies all files of a directory to another one except the files with the extensions given in the /// `ext_blacklist` array - pub fn copy_files_except_ext(from: &Path, to: &Path, recursive: bool, ext_blacklist: &[&str]) -> Result<(), Box> { debug!("[fn] copy_files_except_ext"); // Check that from and to are different @@ -161,6 +314,53 @@ pub fn copy_files_except_ext(from: &Path, to: &Path, recursive: bool, ext_blackl Ok(()) } +pub fn create_with_str(path: &PathBuf, text: &str) -> Result { + match File::create(path) { + Err(e) => { + return Err(format!("File doesn't exist, error in creating: {:?}", e)); + }, + Ok(mut f) => { + let s = text.as_bytes(); + match f.write_all(s) { + Ok(_) => Ok(f), + Err(e) => Err(format!("File doesn't exist, error in writing: {:?}", e)) + } + }, + } +} + +/// Creates .gitignore in the project root folder. +pub fn create_gitignore(proj: &MDBook) { + let gitignore = proj.get_project_root().join(".gitignore"); + + if gitignore.exists() { + return; + } + + // Gitignore does not exist, create it + + // Figure out what is the user's output folder (can be default "book" or + // custom config). This will be a full path, so remove the project_root from + // it. + let a = proj.get_project_root(); + let b = proj.get_dest_base(); + let c = b.strip_prefix(&a).unwrap(); + let relative_dest = c.to_str().expect("Path could not be yielded into a string slice."); + + debug!("[*]: {:?} does not exist, trying to create .gitignore", gitignore); + + let mut f = File::create(&gitignore).expect("Could not create file."); + + let text = format!("*.swp +.#* +*~ +.DS_Store +{}", relative_dest); + + debug!("[*]: Writing to .gitignore"); + + f.write_all(&text.into_bytes()).expect("Could not write to file."); +} // ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------ diff --git a/src/utils/mod.rs b/src/utils/mod.rs index 59db199908..f3c17b5528 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -1,12 +1,19 @@ +extern crate regex; +extern crate toml; + +use regex::Regex; + +use std::str::FromStr; +use std::error::Error; +use std::collections::BTreeMap; + +use serde_json; + pub mod fs; use pulldown_cmark::{Parser, html, Options, OPTION_ENABLE_TABLES, OPTION_ENABLE_FOOTNOTES}; - -/// -/// /// Wrapper around the pulldown-cmark parser and renderer to render markdown - pub fn render_markdown(text: &str) -> String { let mut s = String::with_capacity(text.len() * 3 / 2); @@ -18,3 +25,71 @@ pub fn render_markdown(text: &str) -> String { html::push_html(&mut s, p); s } + +pub fn last_name_first(name: &str) -> String { + let mut s = name.split_whitespace().collect::>(); + let last = s.pop().unwrap(); + format!("{}, {}", last, s.join(" ")) +} + +pub fn toml_str_to_btreemap(text: &str) -> Result, String> { + let mut parser = toml::Parser::new(text); + match parser.parse() { + Some(x) => Ok(x), + None => Err(format!("{:#?}", parser.errors)), + } +} + +/// Parses the string to JSON and converts it to BTreeMap. +pub fn json_str_to_btreemap(text: &str) -> Result, String> { + let c: serde_json::Value = match serde_json::from_str(text) { + Ok(x) => x, + Err(e) => return Err(format!("{:#?}", e)), + }; + + Ok(json_object_to_btreemap(&c.as_object().unwrap())) +} + +pub fn json_object_to_btreemap(json: &serde_json::Map) -> BTreeMap { + let mut config: BTreeMap = BTreeMap::new(); + + for (key, value) in json.iter() { + config.insert( + String::from_str(key).unwrap(), + json_value_to_toml_value(value.to_owned()) + ); + } + + config +} + +pub fn json_value_to_toml_value(json: serde_json::Value) -> toml::Value { + match json { + serde_json::Value::Null => toml::Value::String("".to_string()), + serde_json::Value::Bool(x) => toml::Value::Boolean(x), + serde_json::Value::I64(x) => toml::Value::Integer(x), + serde_json::Value::U64(x) => toml::Value::Integer(x as i64), + serde_json::Value::F64(x) => toml::Value::Float(x), + serde_json::Value::String(x) => toml::Value::String(x), + serde_json::Value::Array(x) => { + toml::Value::Array(x.iter().map(|v| json_value_to_toml_value(v.to_owned())).collect()) + }, + serde_json::Value::Object(x) => { + toml::Value::Table(json_object_to_btreemap(&x)) + }, + } +} + +pub fn strip_toml_header(text: &str) -> String { + let re: Regex = Regex::new(r"(?ms)^\+\+\+\n.*\n\+\+\+\n").unwrap(); + let mut out = text.to_owned(); + match re.captures(text) { + Some(caps) => { + if let Some(s) = caps.at(0) { + out = text.replace(s, ""); + } + }, + None => {} + } + out +} From c0219403310cdd73a4517cbadaa25151cda64f01 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Tue, 10 Jan 2017 06:35:56 +0000 Subject: [PATCH 16/46] translation links rename with _ translation links css for translation links --- Cargo.toml | 3 +- build.rs | 2 +- .../_html-template}/_layouts/page.hbs | 6 + .../_stylus/book.styl | 0 .../_stylus/general.styl | 0 .../_stylus/menu.styl | 13 +- .../_stylus/nav-icons.styl | 0 .../_stylus/page.styl | 18 +++ .../_stylus/print.styl | 0 .../_stylus/sidebar.styl | 0 .../_stylus/theme-popup.styl | 0 .../_stylus/themes/base.styl | 0 .../_stylus/themes/coal.styl | 0 .../_stylus/themes/index.styl | 0 .../_stylus/themes/light.styl | 0 .../_stylus/themes/navy.styl | 0 .../_stylus/themes/rust.styl | 0 .../_stylus/variables.styl | 0 .../_html-template}/css/book.css | 61 +++++---- .../css/font-awesome.min.css | 0 .../css/highlight.css | 0 .../css/tomorrow-night.css | 0 .../fonts/FontAwesome.otf | Bin .../fonts/fontawesome-webfont.eot | Bin .../fonts/fontawesome-webfont.svg | 0 .../fonts/fontawesome-webfont.ttf | Bin .../fonts/fontawesome-webfont.woff | Bin .../fonts/fontawesome-webfont.woff2 | Bin .../images/favicon.png | Bin .../js/book.js | 0 .../js/highlight.js | 0 .../js/jquery-2.1.4.min.js | 0 data/html-template/_layouts/index-old.hbs | 116 ------------------ src/book/chapter.rs | 52 ++++++++ src/book/mod.rs | 70 ++++++++++- src/lib.rs | 5 + src/renderer/html_handlebars/hbs_renderer.rs | 20 ++- src/renderer/html_handlebars/helpers/mod.rs | 1 + .../html_handlebars/helpers/translations.rs | 34 +++++ .../assets/_html-template}/_layouts/page.hbs | 0 .../assets/_html-template}/css/book.css | 0 .../src/en/rabbit-hole.md | 10 ++ src/tests/fs_test.rs | 8 +- src/tests/hbs_renderer_multilang.rs | 16 +++ src/utils/fs.rs | 12 +- 45 files changed, 270 insertions(+), 177 deletions(-) rename {src/tests/book-minimal-with-assets/assets/html-template => data/_html-template}/_layouts/page.hbs (96%) rename data/{html-template => _html-template}/_stylus/book.styl (100%) rename data/{html-template => _html-template}/_stylus/general.styl (100%) rename data/{html-template => _html-template}/_stylus/menu.styl (76%) rename data/{html-template => _html-template}/_stylus/nav-icons.styl (100%) rename data/{html-template => _html-template}/_stylus/page.styl (72%) rename data/{html-template => _html-template}/_stylus/print.styl (100%) rename data/{html-template => _html-template}/_stylus/sidebar.styl (100%) rename data/{html-template => _html-template}/_stylus/theme-popup.styl (100%) rename data/{html-template => _html-template}/_stylus/themes/base.styl (100%) rename data/{html-template => _html-template}/_stylus/themes/coal.styl (100%) rename data/{html-template => _html-template}/_stylus/themes/index.styl (100%) rename data/{html-template => _html-template}/_stylus/themes/light.styl (100%) rename data/{html-template => _html-template}/_stylus/themes/navy.styl (100%) rename data/{html-template => _html-template}/_stylus/themes/rust.styl (100%) rename data/{html-template => _html-template}/_stylus/variables.styl (100%) rename {src/tests/book-minimal-with-assets/assets/html-template => data/_html-template}/css/book.css (93%) rename data/{html-template => _html-template}/css/font-awesome.min.css (100%) rename data/{html-template => _html-template}/css/highlight.css (100%) rename data/{html-template => _html-template}/css/tomorrow-night.css (100%) rename data/{html-template => _html-template}/fonts/FontAwesome.otf (100%) rename data/{html-template => _html-template}/fonts/fontawesome-webfont.eot (100%) rename data/{html-template => _html-template}/fonts/fontawesome-webfont.svg (100%) rename data/{html-template => _html-template}/fonts/fontawesome-webfont.ttf (100%) rename data/{html-template => _html-template}/fonts/fontawesome-webfont.woff (100%) rename data/{html-template => _html-template}/fonts/fontawesome-webfont.woff2 (100%) rename data/{html-template => _html-template}/images/favicon.png (100%) rename data/{html-template => _html-template}/js/book.js (100%) rename data/{html-template => _html-template}/js/highlight.js (100%) rename data/{html-template => _html-template}/js/jquery-2.1.4.min.js (100%) delete mode 100644 data/html-template/_layouts/index-old.hbs create mode 100644 src/renderer/html_handlebars/helpers/translations.rs rename {data/html-template => src/tests/book-minimal-with-assets/assets/_html-template}/_layouts/page.hbs (100%) rename {data/html-template => src/tests/book-minimal-with-assets/assets/_html-template}/css/book.css (100%) diff --git a/Cargo.toml b/Cargo.toml index 3922fc4701..ffcf0a9ac5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ build = "build.rs" include = ["data"] exclude = [ "book-example/*", - "data/html-template/_stylus", + "data/_html-template/_stylus", ] @@ -20,6 +20,7 @@ exclude = [ clap = "2.19.2" handlebars = { version = "0.23.0", features = ["serde_type"] } serde = "0.8" +serde_derive = "0.8" serde_json = "0.8" pulldown-cmark = "0.0.8" regex = "0.1" diff --git a/build.rs b/build.rs index b558bb186a..89cc16cffa 100644 --- a/build.rs +++ b/build.rs @@ -24,7 +24,7 @@ fn main() { // Compile stylus stylesheet to css let manifest_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); - let template_dir = Path::new(&manifest_dir).join("data/html-template/"); + let template_dir = Path::new(&manifest_dir).join("data/_html-template/"); let stylus_dir = template_dir.join("_stylus/book.styl"); if !Command::new("stylus") diff --git a/src/tests/book-minimal-with-assets/assets/html-template/_layouts/page.hbs b/data/_html-template/_layouts/page.hbs similarity index 96% rename from src/tests/book-minimal-with-assets/assets/html-template/_layouts/page.hbs rename to data/_html-template/_layouts/page.hbs index ec5a88ff6b..d8ec38de84 100644 --- a/src/tests/book-minimal-with-assets/assets/html-template/_layouts/page.hbs +++ b/data/_html-template/_layouts/page.hbs @@ -53,6 +53,10 @@ +
+ {{#translations}}{{/translations}} +
+

{{ title }}

@@ -60,6 +64,8 @@
+ +
{{{ content }}}
diff --git a/data/html-template/_stylus/book.styl b/data/_html-template/_stylus/book.styl similarity index 100% rename from data/html-template/_stylus/book.styl rename to data/_html-template/_stylus/book.styl diff --git a/data/html-template/_stylus/general.styl b/data/_html-template/_stylus/general.styl similarity index 100% rename from data/html-template/_stylus/general.styl rename to data/_html-template/_stylus/general.styl diff --git a/data/html-template/_stylus/menu.styl b/data/_html-template/_stylus/menu.styl similarity index 76% rename from data/html-template/_stylus/menu.styl rename to data/_html-template/_stylus/menu.styl index e3a8a20b0a..b30eefc987 100644 --- a/data/html-template/_stylus/menu.styl +++ b/data/_html-template/_stylus/menu.styl @@ -17,18 +17,13 @@ .right-buttons { float: right } } -.menu-title { - display: inline-block +h1.menu-title { + float: left + margin: 0 0 0 2em + padding: 0 font-weight: 200 font-size: 20px line-height: 50px - position: absolute - top: 0 - left: 0 - right: 0 - bottom: 0 - text-align: center - margin: 0 opacity: 0 transition: opacity 0.5s ease-in-out diff --git a/data/html-template/_stylus/nav-icons.styl b/data/_html-template/_stylus/nav-icons.styl similarity index 100% rename from data/html-template/_stylus/nav-icons.styl rename to data/_html-template/_stylus/nav-icons.styl diff --git a/data/html-template/_stylus/page.styl b/data/_html-template/_stylus/page.styl similarity index 72% rename from data/html-template/_stylus/page.styl rename to data/_html-template/_stylus/page.styl index 62bb6cf31e..c0bd1883c0 100644 --- a/data/html-template/_stylus/page.styl +++ b/data/_html-template/_stylus/page.styl @@ -53,3 +53,21 @@ img { max-width: 100%; } } + +div.translations { + float: left + height: 50px + ul { + margin: 10px 0 0 0 + display: inline-block + list-style-type: none + li { + display: inline-block + padding: 0.2em 0.5em + a { + text-decoration: none + &:hover { text-decoration: underline; } + } + } + } +} diff --git a/data/html-template/_stylus/print.styl b/data/_html-template/_stylus/print.styl similarity index 100% rename from data/html-template/_stylus/print.styl rename to data/_html-template/_stylus/print.styl diff --git a/data/html-template/_stylus/sidebar.styl b/data/_html-template/_stylus/sidebar.styl similarity index 100% rename from data/html-template/_stylus/sidebar.styl rename to data/_html-template/_stylus/sidebar.styl diff --git a/data/html-template/_stylus/theme-popup.styl b/data/_html-template/_stylus/theme-popup.styl similarity index 100% rename from data/html-template/_stylus/theme-popup.styl rename to data/_html-template/_stylus/theme-popup.styl diff --git a/data/html-template/_stylus/themes/base.styl b/data/_html-template/_stylus/themes/base.styl similarity index 100% rename from data/html-template/_stylus/themes/base.styl rename to data/_html-template/_stylus/themes/base.styl diff --git a/data/html-template/_stylus/themes/coal.styl b/data/_html-template/_stylus/themes/coal.styl similarity index 100% rename from data/html-template/_stylus/themes/coal.styl rename to data/_html-template/_stylus/themes/coal.styl diff --git a/data/html-template/_stylus/themes/index.styl b/data/_html-template/_stylus/themes/index.styl similarity index 100% rename from data/html-template/_stylus/themes/index.styl rename to data/_html-template/_stylus/themes/index.styl diff --git a/data/html-template/_stylus/themes/light.styl b/data/_html-template/_stylus/themes/light.styl similarity index 100% rename from data/html-template/_stylus/themes/light.styl rename to data/_html-template/_stylus/themes/light.styl diff --git a/data/html-template/_stylus/themes/navy.styl b/data/_html-template/_stylus/themes/navy.styl similarity index 100% rename from data/html-template/_stylus/themes/navy.styl rename to data/_html-template/_stylus/themes/navy.styl diff --git a/data/html-template/_stylus/themes/rust.styl b/data/_html-template/_stylus/themes/rust.styl similarity index 100% rename from data/html-template/_stylus/themes/rust.styl rename to data/_html-template/_stylus/themes/rust.styl diff --git a/data/html-template/_stylus/variables.styl b/data/_html-template/_stylus/variables.styl similarity index 100% rename from data/html-template/_stylus/variables.styl rename to data/_html-template/_stylus/variables.styl diff --git a/src/tests/book-minimal-with-assets/assets/html-template/css/book.css b/data/_html-template/css/book.css similarity index 93% rename from src/tests/book-minimal-with-assets/assets/html-template/css/book.css rename to data/_html-template/css/book.css index 3646bc65d0..5ea46adb22 100644 --- a/src/tests/book-minimal-with-assets/assets/html-template/css/book.css +++ b/data/_html-template/css/book.css @@ -37,7 +37,7 @@ table thead td { font-weight: 700; } .sidebar { - position: fixed; + position: absolute; left: 0; top: 0; bottom: 0; @@ -99,6 +99,7 @@ table thead td { } .page-wrapper { position: absolute; + overflow-y: auto; left: 315px; right: 0; top: 0; @@ -133,14 +134,7 @@ table thead td { left: 0; bottom: 0; padding-right: 15px; -} -@media only screen and (max-width: 400px) { - .page { - /* Only prevent horizontal scrolling on screens with less than 100px for the content - A better way would be to somehow prevent horizontal scrolling all the time, but this causes scrolling problems on iOS Safari. - Also, would be better to only enable horizontal scrolling when it is needed (content does not fit on page) but I have no idea how to do that. */ - overflow-x: hidden; - } + overflow-y: auto; } .content { margin-left: auto; @@ -157,6 +151,25 @@ table thead td { .content img { max-width: 100%; } +div.translations { + float: left; + height: 50px; +} +div.translations ul { + margin: 10px 0 0 0; + display: inline-block; + list-style-type: none; +} +div.translations ul li { + display: inline-block; + padding: 0.2em 0.5em; +} +div.translations ul li a { + text-decoration: none; +} +div.translations ul li a:hover { + text-decoration: underline; +} .menu-bar { position: relative; height: 50px; @@ -181,18 +194,13 @@ table thead td { .menu-bar .right-buttons { float: right; } -.menu-title { - display: inline-block; +h1.menu-title { + float: left; + margin: 0 0 0 2em; + padding: 0; font-weight: 200; font-size: 20px; line-height: 50px; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - text-align: center; - margin: 0; opacity: 0; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter: alpha(opacity=0); @@ -211,7 +219,7 @@ table thead td { font-size: 2.5em; text-align: center; text-decoration: none; - position: fixed; + position: absolute; top: 50px /* Height of menu-bar */; bottom: 0; margin: 0; @@ -250,13 +258,7 @@ table thead td { .nav-chapters:hover { text-decoration: none; } -.sidebar-hidden .previous { - left: 0; -} -.sidebar-visible .nav-chapters .previous { - left: 300px; -} -.sidebar-visible .mobile-nav-chapters .previous { +.previous { left: 0; } .next { @@ -266,7 +268,6 @@ table thead td { position: relative; left: 10px; z-index: 1000; - -webkit-border-radius: 4px; border-radius: 4px; font-size: 0.7em; } @@ -303,7 +304,6 @@ table thead td { position: relative; display: inline-block; margin-bottom: 50px; - -webkit-border-radius: 5px; border-radius: 5px; } .next { @@ -406,7 +406,6 @@ table thead td { display: inline-block; vertical-align: middle; padding: 0.1em 0.3em; - -webkit-border-radius: 3px; border-radius: 3px; } .light pre { @@ -521,7 +520,6 @@ table thead td { display: inline-block; vertical-align: middle; padding: 0.1em 0.3em; - -webkit-border-radius: 3px; border-radius: 3px; } .coal pre { @@ -636,7 +634,6 @@ table thead td { display: inline-block; vertical-align: middle; padding: 0.1em 0.3em; - -webkit-border-radius: 3px; border-radius: 3px; } .navy pre { @@ -751,7 +748,6 @@ table thead td { display: inline-block; vertical-align: middle; padding: 0.1em 0.3em; - -webkit-border-radius: 3px; border-radius: 3px; } .rust pre { @@ -794,7 +790,6 @@ table thead td { } code { background-color: #666; - -webkit-border-radius: 5px; border-radius: 5px; /* Force background to be printed in Chrome */ -webkit-print-color-adjust: exact; diff --git a/data/html-template/css/font-awesome.min.css b/data/_html-template/css/font-awesome.min.css similarity index 100% rename from data/html-template/css/font-awesome.min.css rename to data/_html-template/css/font-awesome.min.css diff --git a/data/html-template/css/highlight.css b/data/_html-template/css/highlight.css similarity index 100% rename from data/html-template/css/highlight.css rename to data/_html-template/css/highlight.css diff --git a/data/html-template/css/tomorrow-night.css b/data/_html-template/css/tomorrow-night.css similarity index 100% rename from data/html-template/css/tomorrow-night.css rename to data/_html-template/css/tomorrow-night.css diff --git a/data/html-template/fonts/FontAwesome.otf b/data/_html-template/fonts/FontAwesome.otf similarity index 100% rename from data/html-template/fonts/FontAwesome.otf rename to data/_html-template/fonts/FontAwesome.otf diff --git a/data/html-template/fonts/fontawesome-webfont.eot b/data/_html-template/fonts/fontawesome-webfont.eot similarity index 100% rename from data/html-template/fonts/fontawesome-webfont.eot rename to data/_html-template/fonts/fontawesome-webfont.eot diff --git a/data/html-template/fonts/fontawesome-webfont.svg b/data/_html-template/fonts/fontawesome-webfont.svg similarity index 100% rename from data/html-template/fonts/fontawesome-webfont.svg rename to data/_html-template/fonts/fontawesome-webfont.svg diff --git a/data/html-template/fonts/fontawesome-webfont.ttf b/data/_html-template/fonts/fontawesome-webfont.ttf similarity index 100% rename from data/html-template/fonts/fontawesome-webfont.ttf rename to data/_html-template/fonts/fontawesome-webfont.ttf diff --git a/data/html-template/fonts/fontawesome-webfont.woff b/data/_html-template/fonts/fontawesome-webfont.woff similarity index 100% rename from data/html-template/fonts/fontawesome-webfont.woff rename to data/_html-template/fonts/fontawesome-webfont.woff diff --git a/data/html-template/fonts/fontawesome-webfont.woff2 b/data/_html-template/fonts/fontawesome-webfont.woff2 similarity index 100% rename from data/html-template/fonts/fontawesome-webfont.woff2 rename to data/_html-template/fonts/fontawesome-webfont.woff2 diff --git a/data/html-template/images/favicon.png b/data/_html-template/images/favicon.png similarity index 100% rename from data/html-template/images/favicon.png rename to data/_html-template/images/favicon.png diff --git a/data/html-template/js/book.js b/data/_html-template/js/book.js similarity index 100% rename from data/html-template/js/book.js rename to data/_html-template/js/book.js diff --git a/data/html-template/js/highlight.js b/data/_html-template/js/highlight.js similarity index 100% rename from data/html-template/js/highlight.js rename to data/_html-template/js/highlight.js diff --git a/data/html-template/js/jquery-2.1.4.min.js b/data/_html-template/js/jquery-2.1.4.min.js similarity index 100% rename from data/html-template/js/jquery-2.1.4.min.js rename to data/_html-template/js/jquery-2.1.4.min.js diff --git a/data/html-template/_layouts/index-old.hbs b/data/html-template/_layouts/index-old.hbs deleted file mode 100644 index 5f9d94d7f3..0000000000 --- a/data/html-template/_layouts/index-old.hbs +++ /dev/null @@ -1,116 +0,0 @@ - - - - - {{ title }} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - {{#previous}} - - {{/previous}} - - {{#next}} - - {{/next}} - -
- - - - - - - {{{livereload}}} - - - - - diff --git a/src/book/chapter.rs b/src/book/chapter.rs index b2ef07a5f6..c048020cdc 100644 --- a/src/book/chapter.rs +++ b/src/book/chapter.rs @@ -53,6 +53,9 @@ pub struct Chapter { /// chapter's path to index.html. pub dest_path: Option, + /// Links to the corresponding translations. + pub translation_links: Option>, + /// The author of the chapter, or the book. pub authors: Option>, @@ -73,6 +76,7 @@ impl Default for Chapter { title: "Untitled".to_string(), path: PathBuf::from("src".to_string()).join("untitled.md"), dest_path: None, + translation_links: None, authors: None, translators: None, description: None, @@ -153,6 +157,17 @@ impl Chapter { self.css_class = Some(a.to_string()); } + if let Some(a) = data.get("translation_links") { + if let Some(b) = a.as_slice() { + let links: Vec = b.iter() + .filter_map(|x| x.as_table()) + .map(|x| TranslationLink::from(x.to_owned())) + .collect::>(); + + self.translation_links = Some(links); + } + } + // Author name as a hash key. if let Some(a) = data.get("author") { if let Some(b) = a.as_str() { @@ -213,3 +228,40 @@ impl Chapter { } } + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct TranslationLink { + pub code: String, + pub link: String, +} + +impl Default for TranslationLink { + fn default() -> TranslationLink { + TranslationLink { + code: "".to_string(), + link: "".to_string(), + } + } +} + +impl TranslationLink { + pub fn new(code: String, link: String) -> TranslationLink { + TranslationLink { + code: code, + link: link, + } + } +} + +impl From for TranslationLink { + fn from(data: toml::Table) -> TranslationLink { + let mut link = TranslationLink::default(); + if let Some(x) = data.get("code") { + link.code = x.to_string().replace("\"", ""); + } + if let Some(x) = data.get("link") { + link.link = x.to_string().replace("\"", ""); + } + link + } +} diff --git a/src/book/mod.rs b/src/book/mod.rs index 6d1ee06303..8edc92c22a 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -7,6 +7,9 @@ pub mod chapter; pub use self::book::Book; use renderer::{Renderer, HtmlHandlebars}; + +use self::chapter::TranslationLink; +use self::toc::{TocItem, TocContent}; use utils; use std::env; @@ -32,7 +35,7 @@ pub struct MDBook { /// A book doesn't necessarily has to have the template files. When not /// found in the book's folder, the embedded static assets will be used. /// - /// Html Handlebars: `project_root` + `assets/html-template`. + /// Html Handlebars: `project_root` + `assets/_html-template`. template_dir: PathBuf, /// Output base for all books, relative to `project_root`. Defaults to @@ -367,6 +370,69 @@ impl MDBook { self } + pub fn link_translations(&mut self) -> &mut MDBook { + for (key, book) in self.translations.clone() { + let mut newbook: Book = book.clone(); + + newbook.toc = book.toc.iter() + .map(|item| { + match *item { + TocItem::Numbered(ref i) => + TocItem::Numbered(self.set_translation_links(i)), + TocItem::Unnumbered(ref i) => + TocItem::Unnumbered(self.set_translation_links(i)), + TocItem::Unlisted(ref i) => + TocItem::Unlisted(self.set_translation_links(i)), + TocItem::Spacer => + TocItem::Spacer, + } + }).collect::>(); + + self.translations.remove(&key); + self.translations.insert(key, newbook); + } + + self + } + + /// prepare a Vec of default links to point to the index.html of each translation + fn translation_index_links(&mut self) -> Vec { + let mut default_links: Vec = vec![]; + + let mut keys = self.translations.keys() + .map(|x| x.to_string()) + .collect::>(); + keys.sort(); + + for key in keys { + let book = self.translations.get(&key).unwrap(); + + let z = self.get_dest_base(); + let a = book.config.dest.strip_prefix(&z).unwrap(); + let b = a.join("index.html"); + let c = b.to_str().unwrap(); + let link = TranslationLink::new(key, c.to_string()); + default_links.push(link); + } + + default_links + } + + fn set_translation_links(&mut self, content: &TocContent) -> TocContent { + let default_links = self.translation_index_links(); + + let mut newcontent: TocContent = content.clone(); + + match newcontent.chapter.translation_links { + Some(_) => {}, + None => { + newcontent.chapter.translation_links = Some(default_links); + } + } + + newcontent + } + pub fn get_project_root(&self) -> &Path { &self.project_root } @@ -414,7 +480,7 @@ impl MDBook { self.render_intent = intent; match self.render_intent { RenderIntent::HtmlHandlebars => { - self.set_template_dir(&PathBuf::from("assets").join("html-template")); + self.set_template_dir(&PathBuf::from("assets").join("_html-template")); }, } self diff --git a/src/lib.rs b/src/lib.rs index 50d382f2ec..9050af2b4a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -69,6 +69,11 @@ //! //! Make sure to take a look at it. +#![feature(proc_macro)] + +#[macro_use] +extern crate serde_derive; + extern crate includedir; extern crate phf; diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index a9f5eb0e2a..311203ee89 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -36,9 +36,14 @@ impl Renderer for HtmlHandlebars { book_project.read_config(); book_project.parse_books(); + book_project.link_translations(); // Clean output directory - try!(utils::fs::remove_dir_content(&book_project.get_dest_base())); + + // FIXME don't remove dotfiles such as .git/ folder. It's a common + // practice to track gh-pages in a versioned output folder. + + //try!(utils::fs::remove_dir_content(&book_project.get_dest_base())); try!(self.render(&book_project)); @@ -116,9 +121,9 @@ impl Renderer for HtmlHandlebars { &book_project.get_dest_base()); } else { - try!(utils::fs::copy_data("data/html-template/**/*", - "data/html-template/", - vec!["data/html-template/_*"], + try!(utils::fs::copy_data("data/_html-template/**/*", + "data/_html-template/", + vec!["data/_html-template/_*"], &book_project.get_dest_base())); } @@ -133,7 +138,7 @@ impl Renderer for HtmlHandlebars { let s = if tmpl_path.exists() { try!(utils::fs::file_to_string(&tmpl_path)) } else { - try!(utils::fs::get_data_file("data/html-template/_layouts/page.hbs")) + try!(utils::fs::get_data_file("data/_html-template/_layouts/page.hbs")) }; // Register template @@ -145,6 +150,7 @@ impl Renderer for HtmlHandlebars { handlebars.register_helper("toc", Box::new(helpers::toc::RenderToc)); handlebars.register_helper("previous", Box::new(helpers::navigation::previous)); handlebars.register_helper("next", Box::new(helpers::navigation::next)); + handlebars.register_helper("translations", Box::new(helpers::translations::TranslationsHelper)); // Check if book's dest directory exists @@ -332,6 +338,10 @@ fn make_data(book: &Book, data.insert("path_to_root".to_owned(), utils::fs::path_to_root(&path).to_json()); + if let Some(ref links) = chapter.translation_links { + data.insert("translation_links".to_owned(), links.to_json()); + } + let chapters = try!(items_to_chapters(&book.toc, &book)); data.insert("chapters".to_owned(), chapters.to_json()); diff --git a/src/renderer/html_handlebars/helpers/mod.rs b/src/renderer/html_handlebars/helpers/mod.rs index 2fc287c244..9d2c70b8a8 100644 --- a/src/renderer/html_handlebars/helpers/mod.rs +++ b/src/renderer/html_handlebars/helpers/mod.rs @@ -1,3 +1,4 @@ pub mod navigation; pub mod toc; pub mod playpen; +pub mod translations; diff --git a/src/renderer/html_handlebars/helpers/translations.rs b/src/renderer/html_handlebars/helpers/translations.rs new file mode 100644 index 0000000000..4b11657c48 --- /dev/null +++ b/src/renderer/html_handlebars/helpers/translations.rs @@ -0,0 +1,34 @@ +use std::path::Path; +use std::collections::{VecDeque, BTreeMap}; + +use serde_json; +use handlebars::{Handlebars, HelperDef, RenderError, RenderContext, Helper, Context}; + +#[derive(Clone, Copy)] +pub struct TranslationsHelper; + +impl HelperDef for TranslationsHelper { + fn call(&self, c: &Context, _h: &Helper, _: &Handlebars, rc: &mut RenderContext) -> Result<(), RenderError> { + + let translation_links = c.navigate(rc.get_path(), &VecDeque::new(), "translation_links"); + let decoded: Vec> = serde_json::from_str(&translation_links.to_string()).unwrap(); + + if decoded.len() == 0 { + return Ok(()); + } + + try!(rc.writer.write("
    ".as_bytes())); + + for item in decoded { + let empty = "".to_string(); + let link = item.get("link").unwrap_or(&empty); + let code = item.get("code").unwrap_or(&empty); + let text = format!("
  • {}
  • ", link, code); + try!(rc.writer.write(text.as_bytes())); + } + + try!(rc.writer.write("
".as_bytes())); + + Ok(()) + } +} diff --git a/data/html-template/_layouts/page.hbs b/src/tests/book-minimal-with-assets/assets/_html-template/_layouts/page.hbs similarity index 100% rename from data/html-template/_layouts/page.hbs rename to src/tests/book-minimal-with-assets/assets/_html-template/_layouts/page.hbs diff --git a/data/html-template/css/book.css b/src/tests/book-minimal-with-assets/assets/_html-template/css/book.css similarity index 100% rename from data/html-template/css/book.css rename to src/tests/book-minimal-with-assets/assets/_html-template/css/book.css diff --git a/src/tests/book-wonderland-multilang/src/en/rabbit-hole.md b/src/tests/book-wonderland-multilang/src/en/rabbit-hole.md index 585e8a224b..28788ae70b 100644 --- a/src/tests/book-wonderland-multilang/src/en/rabbit-hole.md +++ b/src/tests/book-wonderland-multilang/src/en/rabbit-hole.md @@ -1,3 +1,13 @@ ++++ +[[translation_links]] +code = "fr" +link = "fr/terrier.html" + +[[translation_links]] +code = "hu" +link = "hu/nyuszi.html" ++++ + # Down The Rabbit-Hole ![Rabbit](images/Rabbit.png) diff --git a/src/tests/fs_test.rs b/src/tests/fs_test.rs index 240f185bf6..5b3e3c8c63 100644 --- a/src/tests/fs_test.rs +++ b/src/tests/fs_test.rs @@ -9,7 +9,7 @@ use utils; #[test] fn it_copies_data_file() { let dest_path = Path::new("the place was dark").join("and dusty and half-lost").join("book.css"); - utils::fs::copy_data_file("data/html-template/css/books.css", &dest_path); + utils::fs::copy_data_file("data/_html-template/css/books.css", &dest_path); let mut file = match File::open(&dest_path) { Ok(f) => f, @@ -32,9 +32,9 @@ fn it_copies_data_file() { fn it_copies_data_by_pattern() { let dest_base = Path::new("in tangles of old alleys").join("near the quays"); - if let Err(e) = utils::fs::copy_data("data/html-template/**/*", - "data/html-template/", - vec!["data/html-template/_*"], + if let Err(e) = utils::fs::copy_data("data/_html-template/**/*", + "data/_html-template/", + vec!["data/_html-template/_*"], &dest_base) { println!("Error: {:#?}", e); return; diff --git a/src/tests/hbs_renderer_multilang.rs b/src/tests/hbs_renderer_multilang.rs index aff66a7456..13944c4530 100644 --- a/src/tests/hbs_renderer_multilang.rs +++ b/src/tests/hbs_renderer_multilang.rs @@ -50,4 +50,20 @@ fn it_renders_multilanguage_book() { assert!(proj.get_dest_base().join("images").join("Queen.jpg").exists()); + // Test if translation links given in the TOML header were rendered + + book_path = proj.translations.get("en").unwrap().config.get_dest(); + chapter_path = book_path.join("rabbit-hole.html"); + s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("hu")); + assert!(s.contains("fr")); + + // Test if default translation links are set + + book_path = proj.translations.get("hu").unwrap().config.get_dest(); + chapter_path = book_path.join("tarka-farka.html"); + s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("en")); + assert!(s.contains("hu")); + assert!(s.contains("fr")); } diff --git a/src/utils/fs.rs b/src/utils/fs.rs index 36b520de42..20e455e840 100644 --- a/src/utils/fs.rs +++ b/src/utils/fs.rs @@ -61,17 +61,17 @@ pub fn copy_data_file(src_path: &str, dest_path: &Path) -> Result<(), Box /// `include_base` will be removed from the source path. This way the path /// relative to the `dest_path` can be controlled. /// -/// The following will copy all files under "data/html-template/", excluding -/// folders that start with "_", take the "data/html-template/" part off the +/// The following will copy all files under "data/_html-template/", excluding +/// folders that start with "_", take the "data/_html-template/" part off the /// source path, and write the entries to "assets" folder. /// -/// I.e. "data/html-template/css/book.css" will be written to +/// I.e. "data/_html-template/css/book.css" will be written to /// "assets/css/book.css". /// /// ```no_run -/// utils::fs::copy_data("data/html-template/**/*", -/// "data/html-template/", -/// vec!["data/html-template/_*"], +/// utils::fs::copy_data("data/_html-template/**/*", +/// "data/_html-template/", +/// vec!["data/_html-template/_*"], /// &Path::new("assets")); /// ``` pub fn copy_data(include_glob: &str, From 3aa8f7d925cda3df1b19792ffcc2d1b2be62051a Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Wed, 11 Jan 2017 15:17:34 +0000 Subject: [PATCH 17/46] watch and serve are back --- data/_html-template/_layouts/page.hbs | 3 + src/bin/mdbook.rs | 152 ++++++++++++++++++- src/book/mod.rs | 43 +++--- src/renderer/html_handlebars/hbs_renderer.rs | 19 ++- 4 files changed, 189 insertions(+), 28 deletions(-) diff --git a/data/_html-template/_layouts/page.hbs b/data/_html-template/_layouts/page.hbs index d8ec38de84..77daa7fed6 100644 --- a/data/_html-template/_layouts/page.hbs +++ b/data/_html-template/_layouts/page.hbs @@ -99,6 +99,9 @@ + + {{{livereload}}} + diff --git a/src/bin/mdbook.rs b/src/bin/mdbook.rs index b8698c6a85..b81ea6fc4a 100644 --- a/src/bin/mdbook.rs +++ b/src/bin/mdbook.rs @@ -29,6 +29,12 @@ use std::path::{Path, PathBuf}; use clap::{App, ArgMatches, SubCommand, AppSettings}; +// Uses for the Watch feature +#[cfg(feature = "watch")] +use notify::Watcher; +#[cfg(feature = "watch")] +use std::sync::mpsc::channel; + use mdbook::MDBook; use mdbook::renderer::{Renderer, HtmlHandlebars}; use mdbook::utils; @@ -164,7 +170,24 @@ fn build(args: &ArgMatches) -> Result<(), Box> { // Watch command implementation #[cfg(feature = "watch")] fn watch(args: &ArgMatches) -> Result<(), Box> { - // TODO watch + let book_dir = get_book_dir(args); + let mut book = MDBook::new(&book_dir); + book.read_config(); + + trigger_on_change(&mut book, |event, book| { + if let Some(path) = event.path { + println!("File changed: {:?}\nBuilding book...\n", path); + + // TODO figure out render format intent when we acutally have different renderers + let renderer = HtmlHandlebars::new(); + match renderer.build(&book_dir) { + Err(e) => println!("Error while building: {:?}", e), + _ => {}, + } + println!(""); + } + }); + println!("watch"); Ok(()) } @@ -172,8 +195,72 @@ fn watch(args: &ArgMatches) -> Result<(), Box> { // Serve command implementation #[cfg(feature = "serve")] fn serve(args: &ArgMatches) -> Result<(), Box> { - // TODO serve - println!("serve"); + const RELOAD_COMMAND: &'static str = "reload"; + + let book_dir = get_book_dir(args); + let mut book = MDBook::new(&book_dir); + book.read_config(); + book.parse_books(); + book.link_translations(); + + let port = args.value_of("port").unwrap_or("3000"); + let ws_port = args.value_of("ws-port").unwrap_or("3001"); + let interface = args.value_of("interface").unwrap_or("localhost"); + let public_address = args.value_of("address").unwrap_or(interface); + + let address = format!("{}:{}", interface, port); + let ws_address = format!("{}:{}", interface, ws_port); + + book.livereload_script = Some(format!(r#" + + "#, public_address, ws_port, RELOAD_COMMAND)); + + // TODO it's OK that serve only makes sense for the html output format, but formatlize that selection + let renderer = HtmlHandlebars::new(); + try!(renderer.render(&book)); + + let staticfile = staticfile::Static::new(book.get_dest_base()); + let iron = iron::Iron::new(staticfile); + let _iron = iron.http(&*address).unwrap(); + + let ws_server = ws::WebSocket::new(|_| { + |_| { + Ok(()) + } + }).unwrap(); + + let broadcaster = ws_server.broadcaster(); + + std::thread::spawn(move || { + ws_server.listen(&*ws_address).unwrap(); + }); + + println!("\nServing on {}", address); + + trigger_on_change(&mut book, move |event, book| { + if let Some(path) = event.path { + println!("File changed: {:?}\nBuilding book...\n", path); + let renderer = HtmlHandlebars::new(); + match renderer.render(&book) { + Err(e) => println!("Error while building: {:?}", e), + _ => broadcaster.send(RELOAD_COMMAND).unwrap(), + } + println!(""); + } + }); + Ok(()) } @@ -196,3 +283,62 @@ fn get_book_dir(args: &ArgMatches) -> PathBuf { env::current_dir().unwrap() } } + +// Calls the closure when a book source file is changed. This is blocking! +#[cfg(feature = "watch")] +fn trigger_on_change(book: &mut MDBook, closure: F) -> () + where F: Fn(notify::Event, &mut MDBook) -> () +{ + // Create a channel to receive the events. + let (tx, rx) = channel(); + + let w: Result = notify::Watcher::new(tx); + + match w { + Ok(mut watcher) => { + // Add the source directory to the watcher + if let Err(e) = watcher.watch(book.get_src_base()) { + println!("Error while watching {:?}:\n {:?}", book.get_src_base(), e); + ::std::process::exit(0); + }; + + // Add the book.toml or book.json file to the watcher if it exists, + // because it's not located in the source directory + + if let Err(_) = watcher.watch(book.get_project_root().join("book.toml")) { + // do nothing if book.toml is not found + } + + if let Err(_) = watcher.watch(book.get_project_root().join("book.json")) { + // do nothing if book.json is not found + } + + let mut previous_time = time::get_time(); + + println!("\nListening for changes...\n"); + + loop { + match rx.recv() { + Ok(event) => { + // Skip the event if an event has already been issued in the last second + let time = time::get_time(); + if time - previous_time < time::Duration::seconds(1) { + continue; + } else { + previous_time = time; + } + + closure(event, book); + }, + Err(e) => { + println!("An error occured: {:?}", e); + }, + } + } + }, + Err(e) => { + println!("Error while trying to watch the files:\n\n\t{:?}", e); + ::std::process::exit(0); + }, + } +} diff --git a/src/book/mod.rs b/src/book/mod.rs index 8edc92c22a..ae604ab02b 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -38,6 +38,9 @@ pub struct MDBook { /// Html Handlebars: `project_root` + `assets/_html-template`. template_dir: PathBuf, + /// Input base for all books, relative to `project_root`. Defaults to `src`. + src_base: PathBuf,// FIXME use this + /// Output base for all books, relative to `project_root`. Defaults to /// `book`. dest_base: PathBuf, @@ -46,9 +49,6 @@ pub struct MDBook { /// default or CLI argument. render_intent: RenderIntent, - // TODO Identify and cross-link translations either by file name, or an id - // string. - /// The book, or books in case of translations, accessible with a String /// key. The keys can be two-letter codes of the translation such as 'en' or /// 'fr', but this is not enforced. @@ -71,7 +71,6 @@ pub struct MDBook { /// block: /// /// ```toml - /// livereload = true /// title = "Alice in Wonderland" /// author = "Lewis Carroll" /// ``` @@ -79,21 +78,19 @@ pub struct MDBook { /// For multiple languages, declare them in blocks: /// /// ```toml - /// livereload = true - /// - /// [translations.en] + /// [[translations.en]] /// title = "Alice in Wonderland" /// author = "Lewis Carroll" /// language = { name = "English", code = "en" } /// is_main_book = true /// - /// [translations.fr] + /// [[translations.fr]] /// title = "Alice au pays des merveilles" /// author = "Lewis Carroll" /// translator = "Henri Bué" /// language = { name = "Français", code = "fr" } /// - /// [translations.hu] + /// [[translations.hu]] /// title = "Alice Csodaországban" /// author = "Lewis Carroll" /// translator = "Kosztolányi Dezső" @@ -104,8 +101,9 @@ pub struct MDBook { /// Space indentation in SUMMARY.md, defaults to 4 spaces. pub indent_spaces: i32, - /// Whether to include the livereload snippet in the output html. - pub livereload: bool, + /// The ` @@ -55,8 +59,8 @@ -
- {{#translations}}{{/translations}} +

{{ title }}

diff --git a/data/_html-template/_stylus/page.styl b/data/_html-template/_stylus/page.styl index c0bd1883c0..a8a845f210 100644 --- a/data/_html-template/_stylus/page.styl +++ b/data/_html-template/_stylus/page.styl @@ -54,12 +54,30 @@ img { max-width: 100%; } } -div.translations { +div.translation-indexes { + ul { + margin: 10px 0 0 0 + padding: 0 + text-align: center + list-style-type: none + li { + display: inline-block + padding: 0.2em 0.5em + a { + text-decoration: none + &:hover { text-decoration: underline; } + } + } + } +} + +div.translation-links { float: left height: 50px ul { margin: 10px 0 0 0 - display: inline-block + padding: 0 0 0 1em + text-align: left list-style-type: none li { display: inline-block diff --git a/data/_html-template/css/book.css b/data/_html-template/css/book.css index 5ea46adb22..d1a8f58998 100644 --- a/data/_html-template/css/book.css +++ b/data/_html-template/css/book.css @@ -151,23 +151,40 @@ table thead td { .content img { max-width: 100%; } -div.translations { +div.translation-indexes ul { + margin: 10px 0 0 0; + padding: 0; + text-align: center; + list-style-type: none; +} +div.translation-indexes ul li { + display: inline-block; + padding: 0.2em 0.5em; +} +div.translation-indexes ul li a { + text-decoration: none; +} +div.translation-indexes ul li a:hover { + text-decoration: underline; +} +div.translation-links { float: left; height: 50px; } -div.translations ul { +div.translation-links ul { margin: 10px 0 0 0; - display: inline-block; + padding: 0 0 0 1em; + text-align: left; list-style-type: none; } -div.translations ul li { +div.translation-links ul li { display: inline-block; padding: 0.2em 0.5em; } -div.translations ul li a { +div.translation-links ul li a { text-decoration: none; } -div.translations ul li a:hover { +div.translation-links ul li a:hover { text-decoration: underline; } .menu-bar { diff --git a/src/book/chapter.rs b/src/book/chapter.rs index f0d9e73103..dd0c986c5c 100644 --- a/src/book/chapter.rs +++ b/src/book/chapter.rs @@ -69,6 +69,9 @@ pub struct Chapter { /// Links to the corresponding translations. pub translation_links: Option>, + /// An identifier string that can allow linking translations with different paths. + pub translation_id: Option, + /// The author of the chapter, or the book. pub authors: Option>, @@ -93,6 +96,7 @@ impl Default for Chapter { src_path: None, dest_path: None, translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -196,6 +200,10 @@ impl Chapter { } } + if let Some(a) = data.get("translation_id") { + self.translation_id = Some(a.to_string().replace("\"", "")); + } + // Author name as a hash key. if let Some(a) = data.get("author") { if let Some(b) = a.as_str() { @@ -294,24 +302,35 @@ impl Chapter { #[derive(Debug, Clone, Serialize, Deserialize)] pub struct TranslationLink { + /// Language code, such as 'en' or 'fr'. pub code: String, - pub link: String, + /// The `` link to the translation. `None` indicates that the + /// language is part of the book, but there isn't a translation for this + /// chapter. + pub link: Option, } impl Default for TranslationLink { fn default() -> TranslationLink { TranslationLink { - code: "".to_string(), - link: "".to_string(), + code: "--".to_string(), + link: None, } } } impl TranslationLink { - pub fn new(code: String, link: String) -> TranslationLink { + pub fn new(code: String) -> TranslationLink { TranslationLink { code: code, - link: link, + link: None, + } + } + + pub fn new_with_link(code: String, link: String) -> TranslationLink { + TranslationLink { + code: code, + link: Some(link), } } } @@ -323,7 +342,9 @@ impl From for TranslationLink { link.code = x.to_string().replace("\"", ""); } if let Some(x) = data.get("link") { - link.link = x.to_string().replace("\"", ""); + link.link = Some(x.to_string().replace("\"", "")); + } else { + link.link = None; } link } diff --git a/src/book/mod.rs b/src/book/mod.rs index d70e1e8783..c6ed943fe5 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -448,7 +448,7 @@ impl MDBook { } /// prepare a Vec of default links to point to the index.html of each translation - fn translation_index_links(&mut self) -> Vec { + pub fn translation_index_links(&self) -> Option> { let mut default_links: Vec = vec![]; let mut keys = self.translations.keys() @@ -456,6 +456,11 @@ impl MDBook { .collect::>(); keys.sort(); + if keys.len() < 2 { + // There is only one language. No need to display translation links. + return None; + } + for key in keys { let book = self.translations.get(&key).unwrap(); @@ -463,25 +468,37 @@ impl MDBook { let a = book.config.dest.strip_prefix(&z).unwrap(); let b = a.join("index.html"); let c = b.to_str().unwrap(); - let link = TranslationLink::new(key, c.to_string()); + let link = TranslationLink::new_with_link(key, c.to_string()); default_links.push(link); } - default_links + Some(default_links) } fn set_translation_links(&mut self, content: &TocContent) -> TocContent { - let default_links = self.translation_index_links(); - + let mut final_links: BTreeMap = BTreeMap::new(); let mut newcontent: TocContent = content.clone(); + // Start by adding the code of each language but no links. These will + // render as gray tags. + for key in self.translations.keys() { + final_links.insert(key.clone(), TranslationLink::new(key.clone())); + } + + // Take the links parsed from the chapter's TOML header + match newcontent.chapter.translation_links { - Some(_) => {}, - None => { - newcontent.chapter.translation_links = Some(default_links); - } + Some(links) => { + for i in links.iter() { + final_links.insert(i.clone().code, i.clone()); + } + }, + None => {}, } + let a: Vec = final_links.values().map(|x| x.clone()).collect(); + newcontent.chapter.translation_links = Some(a); + newcontent } diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index 38c157a683..9d4f06b371 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -1,7 +1,7 @@ use renderer::html_handlebars::helpers; use renderer::Renderer; use book::{MDBook, Book}; -use book::chapter::Chapter; +use book::chapter::{Chapter, TranslationLink}; use book::toc::{TocItem, TocContent}; use utils; use FILES; @@ -127,6 +127,8 @@ impl Renderer for HtmlHandlebars { debug!("[fn]: render"); let mut handlebars = Handlebars::new(); + let translation_indexes = book_project.translation_index_links(); + // Render the chapters of each book for (key, book) in &book_project.translations { @@ -164,7 +166,8 @@ impl Renderer for HtmlHandlebars { handlebars.register_helper("toc", Box::new(helpers::toc::RenderToc)); handlebars.register_helper("previous", Box::new(helpers::navigation::previous)); handlebars.register_helper("next", Box::new(helpers::navigation::next)); - handlebars.register_helper("translations", Box::new(helpers::translations::TranslationsHelper)); + handlebars.register_helper("translation-links", Box::new(helpers::translations::TranslationLinksHelper)); + handlebars.register_helper("translation-indexes", Box::new(helpers::translations::TranslationIndexesHelper)); // Check if book's dest directory exists @@ -196,12 +199,12 @@ impl Renderer for HtmlHandlebars { // almost the same as process_chapter(), but we have to // manipulate path_to_root in data and rendered_path - let mut data = try!(make_data(&book, &chapter, &book_project.livereload_script)); + let mut data = try!(make_data(&book, &chapter, &translation_indexes, &book_project.livereload_script)); data.remove("path_to_root"); data.insert("path_to_root".to_owned(), "".to_json()); - // Rendere the handlebars template with the data + // Render the handlebars template with the data debug!("[*]: Render template"); let rendered_content = try!(handlebars.render("page", &data)); @@ -221,7 +224,7 @@ impl Renderer for HtmlHandlebars { } // Render a file for every entry in the book - try!(self.process_items(&book.toc, &book, &book_project.livereload_script, &handlebars)); + try!(self.process_items(&book.toc, &book, &translation_indexes, &book_project.livereload_script, &handlebars)); // Write print.html if let Some(content) = self.collect_print_content_markdown(&book.toc, &book) { @@ -231,7 +234,7 @@ impl Renderer for HtmlHandlebars { chapter.set_dest_path(PathBuf::from("print.html")); chapter.content = Some(content); - try!(self.process_chapter(&chapter, &book, &None, &handlebars)); + try!(self.process_chapter(&chapter, &book, &None, &None, &handlebars)); } } @@ -244,6 +247,7 @@ impl HtmlHandlebars { fn process_items(&self, items: &Vec, book: &Book, + translation_indexes: &Option>, livereload_script: &Option, handlebars: &Handlebars) -> Result<(), Box> { @@ -254,11 +258,11 @@ impl HtmlHandlebars { TocItem::Unnumbered(ref i) | TocItem::Unlisted(ref i) => { if let Some(_) = i.chapter.get_dest_path() { - try!(self.process_chapter(&i.chapter, book, livereload_script, handlebars)); + try!(self.process_chapter(&i.chapter, book, translation_indexes, livereload_script, handlebars)); } if let Some(ref subs) = i.sub_items { - try!(self.process_items(&subs, book, livereload_script, handlebars)); + try!(self.process_items(&subs, book, translation_indexes, livereload_script, handlebars)); } }, @@ -303,11 +307,12 @@ impl HtmlHandlebars { fn process_chapter(&self, chapter: &Chapter, book: &Book, + translation_indexes: &Option>, livereload_script: &Option, handlebars: &Handlebars) -> Result<(), Box> { - let data = try!(make_data(book, chapter, livereload_script)); + let data = try!(make_data(book, chapter, translation_indexes, livereload_script)); // Render the handlebars template with the data debug!("[*]: Render template"); @@ -339,6 +344,7 @@ impl HtmlHandlebars { fn make_data(book: &Book, chapter: &Chapter, + translation_indexes: &Option>, livereload_script: &Option) -> Result, Box> { @@ -402,8 +408,12 @@ fn make_data(book: &Book, }, } + if let Some(ref links) = *translation_indexes { + data.insert("translation-indexes".to_owned(), links.to_json()); + } + if let Some(ref links) = chapter.translation_links { - data.insert("translation_links".to_owned(), links.to_json()); + data.insert("translation-links".to_owned(), links.to_json()); } let chapters = try!(items_to_chapters(&book.toc, &book)); diff --git a/src/renderer/html_handlebars/helpers/translations.rs b/src/renderer/html_handlebars/helpers/translations.rs index 4b11657c48..6d009d911b 100644 --- a/src/renderer/html_handlebars/helpers/translations.rs +++ b/src/renderer/html_handlebars/helpers/translations.rs @@ -5,19 +5,55 @@ use serde_json; use handlebars::{Handlebars, HelperDef, RenderError, RenderContext, Helper, Context}; #[derive(Clone, Copy)] -pub struct TranslationsHelper; +pub struct TranslationLinksHelper; -impl HelperDef for TranslationsHelper { +impl HelperDef for TranslationLinksHelper { fn call(&self, c: &Context, _h: &Helper, _: &Handlebars, rc: &mut RenderContext) -> Result<(), RenderError> { - let translation_links = c.navigate(rc.get_path(), &VecDeque::new(), "translation_links"); + let translation_links = c.navigate(rc.get_path(), &VecDeque::new(), "translation-links"); let decoded: Vec> = serde_json::from_str(&translation_links.to_string()).unwrap(); if decoded.len() == 0 { return Ok(()); } - try!(rc.writer.write("
-

{{ title }}

+

{{ page-title }}

diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index 9d4f06b371..0b00a0e112 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -355,7 +355,8 @@ fn make_data(book: &Book, // Book data data.insert("language".to_owned(), "en".to_json()); - data.insert("title".to_owned(), book.config.title.to_json()); + data.insert("page-title".to_owned(), format!("{} - {}", chapter.title, book.config.title).to_json()); + data.insert("chapter-title".to_owned(), chapter.title.to_json()); data.insert("description".to_owned(), book.config.description.to_json()); if let Some(ref x) = *livereload_script { From badc921429c420e51782caf6a543176111e98bc1 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Mon, 16 Jan 2017 17:49:21 +0000 Subject: [PATCH 31/46] cross-link translations by translation_id and src_path --- src/book/mod.rs | 41 +++++++++++ src/book/toc.rs | 41 +++++++++++ .../src/en/long-tale.md | 4 ++ .../src/fr/SUMMARY.md | 2 +- .../src/fr/{larmes.md => tears.md} | 0 .../src/hu/SUMMARY.md | 2 +- .../src/hu/tarka-farka.md | 4 ++ .../src/hu/{konnyto.md => tears.md} | 0 src/tests/hbs_renderer_multilang.rs | 36 +++++++--- src/tests/mdbook_test.rs | 13 +++- src/tests/summary_test.rs | 18 +++++ src/tests/toc_test.rs | 68 ++++++++++++++++++- 12 files changed, 215 insertions(+), 14 deletions(-) rename src/tests/book-wonderland-multilang/src/fr/{larmes.md => tears.md} (100%) rename src/tests/book-wonderland-multilang/src/hu/{konnyto.md => tears.md} (100%) diff --git a/src/book/mod.rs b/src/book/mod.rs index c6ed943fe5..939dc67b5e 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -496,6 +496,46 @@ impl MDBook { None => {}, } + // Find a translation for the links that are still None + + for (key, trl) in final_links.clone().iter() { + match trl.link { + Some(_) => { continue; }, + None => {}, + } + + let b: &Book = self.translations.get(key).unwrap(); + let flat_toc = toc::flat_toc(&b.toc); + + for item in flat_toc.iter() { + match *item { + TocItem::Numbered(ref i) | + TocItem::Unnumbered(ref i) | + TocItem::Unlisted(ref i) => { + + // Note that this will also add a link to itself, which is good. + + if content.is_it_a_translation_of(i) { + if let Some(mut a) = i.chapter.get_dest_path() { + // Join the path to the language code, i.e. en/tears.html + a = PathBuf::from(key.to_string()).join(a); + let path = String::from(a.to_str().unwrap()); + + final_links.insert( + key.to_owned(), + TranslationLink::new_with_link(key.to_owned(), path) + ); + } else { + debug!("It's a translation but dest_path is not set: {:#?}", i); + } + break; + } + }, + TocItem::Spacer => {}, + } + } + } + let a: Vec = final_links.values().map(|x| x.clone()).collect(); newcontent.chapter.translation_links = Some(a); @@ -640,3 +680,4 @@ impl MDBook { // } } + diff --git a/src/book/toc.rs b/src/book/toc.rs index 84beaf746e..d7510b8b7a 100644 --- a/src/book/toc.rs +++ b/src/book/toc.rs @@ -55,6 +55,28 @@ impl TocContent { } } + pub fn is_it_a_translation_of(&self, checking: &TocContent) -> bool { + // if the user has set the same translation_id on them + if let Some(ref a) = self.chapter.translation_id { + if let Some(ref b) = checking.chapter.translation_id { + if a == b { + return true; + } + } + } + + // if src_path matches + if let Some(ref a) = self.chapter.get_src_path() { + if let Some(ref b) = checking.chapter.get_src_path() { + if a == b { + return true; + } + } + } + + false + } + // TODO update // /// This function takes a slice `&[x,y,z]` and returns the corresponding sub-chapter if it exists. @@ -74,3 +96,22 @@ impl TocContent { // } // } } + +pub fn flat_toc(toc: &Vec) -> Vec { + let mut flattened: Vec = vec![]; + for i in toc.iter() { + match *i { + TocItem::Numbered(ref x) | + TocItem::Unnumbered(ref x) | + TocItem::Unlisted(ref x) => { + flattened.push(i.clone()); + if let Some(ref subs) = x.sub_items { + let mut a = flat_toc(subs); + flattened.append(&mut a); + } + }, + TocItem::Spacer => { flattened.push(i.clone()); }, + } + } + flattened +} diff --git a/src/tests/book-wonderland-multilang/src/en/long-tale.md b/src/tests/book-wonderland-multilang/src/en/long-tale.md index dec8091dbb..d9b5196d51 100644 --- a/src/tests/book-wonderland-multilang/src/en/long-tale.md +++ b/src/tests/book-wonderland-multilang/src/en/long-tale.md @@ -1,3 +1,7 @@ ++++ +translation_id = "caucus race" ++++ + # A Caucus-Race and a Long Tale ![Tail](images/Tail.png) diff --git a/src/tests/book-wonderland-multilang/src/fr/SUMMARY.md b/src/tests/book-wonderland-multilang/src/fr/SUMMARY.md index 0ca6d6d6fa..8dbb9e6fad 100644 --- a/src/tests/book-wonderland-multilang/src/fr/SUMMARY.md +++ b/src/tests/book-wonderland-multilang/src/fr/SUMMARY.md @@ -3,7 +3,7 @@ [Titre](titre.md) - [Au fond du terrier](terrier.md) -- [La mare aux larmes](larmes.md) +- [La mare aux larmes](tears.md) - [La course cocasse](cocasse.md) - [L'habitation du lapin blanc]() - [Conseils d'une chenille]() diff --git a/src/tests/book-wonderland-multilang/src/fr/larmes.md b/src/tests/book-wonderland-multilang/src/fr/tears.md similarity index 100% rename from src/tests/book-wonderland-multilang/src/fr/larmes.md rename to src/tests/book-wonderland-multilang/src/fr/tears.md diff --git a/src/tests/book-wonderland-multilang/src/hu/SUMMARY.md b/src/tests/book-wonderland-multilang/src/hu/SUMMARY.md index 2e9daf5a45..a66b8c8a91 100644 --- a/src/tests/book-wonderland-multilang/src/hu/SUMMARY.md +++ b/src/tests/book-wonderland-multilang/src/hu/SUMMARY.md @@ -3,7 +3,7 @@ [Címoldal](cimoldal.md) - [Lenn, a Nyuszi barlangjában](nyuszi.md) -- [Könnytó](konnyto.md) +- [Könnytó](tears.md) - [Körbecsukó meg az egér hosszú tarka farka](tarka-farka.md) - [Gyíkocska]() - [A hernyó tanácsot ad]() diff --git a/src/tests/book-wonderland-multilang/src/hu/tarka-farka.md b/src/tests/book-wonderland-multilang/src/hu/tarka-farka.md index f3617efe13..b5b926169e 100644 --- a/src/tests/book-wonderland-multilang/src/hu/tarka-farka.md +++ b/src/tests/book-wonderland-multilang/src/hu/tarka-farka.md @@ -1,3 +1,7 @@ ++++ +translation_id = "caucus race" ++++ + # Körbecsukó meg az egér hosszú tarka farka ![Tarka-farka](images/Tail.png) diff --git a/src/tests/book-wonderland-multilang/src/hu/konnyto.md b/src/tests/book-wonderland-multilang/src/hu/tears.md similarity index 100% rename from src/tests/book-wonderland-multilang/src/hu/konnyto.md rename to src/tests/book-wonderland-multilang/src/hu/tears.md diff --git a/src/tests/hbs_renderer_multilang.rs b/src/tests/hbs_renderer_multilang.rs index 32cb99f601..5ce7ca5a46 100644 --- a/src/tests/hbs_renderer_multilang.rs +++ b/src/tests/hbs_renderer_multilang.rs @@ -27,7 +27,7 @@ fn it_renders_multilanguage_book() { chapter_path = proj.get_dest_base().join("index.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); - assert!(s.contains("Alice's Adventures in Wonderland")); + assert!(s.contains("Titlepage - Alice's Adventures in Wonderland")); assert!(s.contains("

Alice's Adventures in Wonderland

")); assert!(s.contains("")); @@ -40,13 +40,13 @@ fn it_renders_multilanguage_book() { assert!(s.contains("li>2. The Pool of Tears")); book_path = proj.translations.get("fr").unwrap().config.get_dest(); - chapter_path = book_path.join("larmes.html"); + chapter_path = book_path.join("tears.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); assert!(s.contains("

La mare aux larmes

")); assert!(s.contains("")); book_path = proj.translations.get("hu").unwrap().config.get_dest(); - chapter_path = book_path.join("konnyto.html"); + chapter_path = book_path.join("tears.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); assert!(s.contains("

Könnytó

")); assert!(s.contains("")); @@ -55,6 +55,15 @@ fn it_renders_multilanguage_book() { assert!(proj.get_dest_base().join("images").join("Queen.jpg").exists()); + // Test if default translation indexes are displayed + + book_path = proj.translations.get("hu").unwrap().config.get_dest(); + chapter_path = book_path.join("tarka-farka.html"); + s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("en")); + assert!(s.contains("hu")); + assert!(s.contains("fr")); + // Test if translation links given in the TOML header were rendered book_path = proj.translations.get("en").unwrap().config.get_dest(); @@ -63,14 +72,23 @@ fn it_renders_multilanguage_book() { assert!(s.contains("hu")); assert!(s.contains("fr")); - // Test if default translation links are set + // Test if translation links by translation_id were found - book_path = proj.translations.get("hu").unwrap().config.get_dest(); - chapter_path = book_path.join("tarka-farka.html"); + book_path = proj.translations.get("en").unwrap().config.get_dest(); + chapter_path = book_path.join("long-tale.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); - assert!(s.contains("en")); - assert!(s.contains("hu")); - assert!(s.contains("fr")); + assert!(s.contains("en")); + assert!(s.contains("fr")); + assert!(s.contains("hu")); + + // Test if translation links by src_path were found + + book_path = proj.translations.get("en").unwrap().config.get_dest(); + chapter_path = book_path.join("tears.html"); + s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("en")); + assert!(s.contains("fr")); + assert!(s.contains("hu")); // Test if print.html is produced for each translations diff --git a/src/tests/mdbook_test.rs b/src/tests/mdbook_test.rs index 1a76138bd7..b5c6076a85 100644 --- a/src/tests/mdbook_test.rs +++ b/src/tests/mdbook_test.rs @@ -107,6 +107,7 @@ indent_spaces = 2 [[translations.en]] title = "Alice's Adventures in Wonderland" author = "Lewis Carroll" +is_main_book = true [[translations.hu]] title = "Alice Csodaországban" @@ -168,10 +169,18 @@ name = "Kosztolányi Dezső" // Hashmaps are unordered. They don't always print their keys in the same order. + assert_eq!(result.indent_spaces, expected.indent_spaces); + assert_eq!( - format!("{:#?} {:#?} {:#?}", result.indent_spaces, result.translations.get("en").unwrap(), result.translations.get("hu").unwrap()), - format!("{:#?} {:#?} {:#?}", expected.indent_spaces, expected.translations.get("en").unwrap(), expected.translations.get("hu").unwrap()) + format!("{:#?}", result.translations.get("en").unwrap()), + format!("{:#?}", expected.translations.get("en").unwrap()) ); + + assert_eq!( + format!("{:#?}", result.translations.get("hu").unwrap()), + format!("{:#?}", expected.translations.get("hu").unwrap()) + ); + } #[test] diff --git a/src/tests/summary_test.rs b/src/tests/summary_test.rs index 8e882ba5ee..8042fbf33e 100644 --- a/src/tests/summary_test.rs +++ b/src/tests/summary_test.rs @@ -46,6 +46,7 @@ fn it_parses_summary_to_tocitems() { "index.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -67,6 +68,7 @@ fn it_parses_summary_to_tocitems() { "README.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -92,6 +94,7 @@ fn it_parses_summary_to_tocitems() { "cli/cli-tool.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -111,6 +114,7 @@ fn it_parses_summary_to_tocitems() { "cli/init.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -137,6 +141,7 @@ fn it_parses_summary_to_tocitems() { "cli/build.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -163,6 +168,7 @@ fn it_parses_summary_to_tocitems() { "cli/watch.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -189,6 +195,7 @@ fn it_parses_summary_to_tocitems() { "cli/serve.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -215,6 +222,7 @@ fn it_parses_summary_to_tocitems() { "cli/test.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -250,6 +258,7 @@ fn it_parses_summary_to_tocitems() { "format/format.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -269,6 +278,7 @@ fn it_parses_summary_to_tocitems() { "format/summary.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -295,6 +305,7 @@ fn it_parses_summary_to_tocitems() { "format/config.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -321,6 +332,7 @@ fn it_parses_summary_to_tocitems() { "format/theme/theme.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -340,6 +352,7 @@ fn it_parses_summary_to_tocitems() { "format/theme/index-hbs.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -367,6 +380,7 @@ fn it_parses_summary_to_tocitems() { "format/theme/syntax-highlighting.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -404,6 +418,7 @@ fn it_parses_summary_to_tocitems() { "format/mathjax.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -430,6 +445,7 @@ fn it_parses_summary_to_tocitems() { "format/rust.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -465,6 +481,7 @@ fn it_parses_summary_to_tocitems() { "lib/lib.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, @@ -491,6 +508,7 @@ fn it_parses_summary_to_tocitems() { "misc/contributors.html" ), translation_links: None, + translation_id: None, authors: None, translators: None, description: None, diff --git a/src/tests/toc_test.rs b/src/tests/toc_test.rs index 4b64139c11..a8fac14b85 100644 --- a/src/tests/toc_test.rs +++ b/src/tests/toc_test.rs @@ -1,7 +1,8 @@ #[cfg(test)] use book::chapter::Chapter; -use book::toc::TocContent; +use book::toc::{TocItem, TocContent, flat_toc}; +use parse::summary::parse_level; #[test] fn it_should_produce_the_section_as_string() { @@ -11,3 +12,68 @@ fn it_should_produce_the_section_as_string() { let expected = "1.9.4.".to_string(); assert_eq!(result, expected); } + +#[test] +fn it_flattens_toc() { + let text = r#" +# Summary + +[Introduction](misc/introduction.md) + +- [mdBook](README.md) +- [Command Line Tool](cli/cli-tool.md) + - [init](cli/init.md) + - [build](cli/build.md) + - [watch](cli/watch.md) + - [serve](cli/serve.md) + - [test](cli/test.md) +- [Format](format/format.md) + - [SUMMARY.md](format/summary.md) + - [Configuration](format/config.md) + - [Theme](format/theme/theme.md) + - [index.hbs](format/theme/index-hbs.md) + - [Syntax highlighting](format/theme/syntax-highlighting.md) + - [MathJax Support](format/mathjax.md) + - [Rust code specific features](format/rust.md) +- [Rust Library](lib/lib.md) +----------- +[Contributors](misc/contributors.md) +"#; + + let toc = parse_level(&mut text.split('\n').collect(), 0, vec![0], true).unwrap(); + + let flat = flat_toc(&toc); + + let result: Vec = flat.iter().map(|x| { + match *x { + TocItem::Numbered(ref i) | + TocItem::Unnumbered(ref i) | + TocItem::Unlisted(ref i) => i.chapter.title.to_owned(), + TocItem::Spacer => "spacer".to_string(), + } + }).collect::>(); + + let expected = r#"[ + "Introduction", + "mdBook", + "Command Line Tool", + "init", + "build", + "watch", + "serve", + "test", + "Format", + "SUMMARY.md", + "Configuration", + "Theme", + "index.hbs", + "Syntax highlighting", + "MathJax Support", + "Rust code specific features", + "Rust Library", + "spacer", + "Contributors" +]"#; + + assert_eq!(format!("{:#?}", result), expected); +} From aa54d95a23ffed549144e17895baa9528bc82c49 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Mon, 16 Jan 2017 21:01:34 +0000 Subject: [PATCH 32/46] cross-link by section number if TOC are structurally the same --- src/book/mod.rs | 15 ++++-- src/book/toc.rs | 73 +++++++++++++++++++++++++---- src/tests/hbs_renderer_multilang.rs | 22 ++++----- src/tests/toc_test.rs | 36 +++++++++++++- 4 files changed, 118 insertions(+), 28 deletions(-) diff --git a/src/book/mod.rs b/src/book/mod.rs index 939dc67b5e..a0a244f4d9 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -430,11 +430,11 @@ impl MDBook { .map(|item| { match *item { TocItem::Numbered(ref i) => - TocItem::Numbered(self.set_translation_links(i)), + TocItem::Numbered(self.set_translation_links(i, key.to_owned())), TocItem::Unnumbered(ref i) => - TocItem::Unnumbered(self.set_translation_links(i)), + TocItem::Unnumbered(self.set_translation_links(i, key.to_owned())), TocItem::Unlisted(ref i) => - TocItem::Unlisted(self.set_translation_links(i)), + TocItem::Unlisted(self.set_translation_links(i, key.to_owned())), TocItem::Spacer => TocItem::Spacer, } @@ -475,7 +475,7 @@ impl MDBook { Some(default_links) } - fn set_translation_links(&mut self, content: &TocContent) -> TocContent { + fn set_translation_links(&mut self, content: &TocContent, key: String) -> TocContent { let mut final_links: BTreeMap = BTreeMap::new(); let mut newcontent: TocContent = content.clone(); @@ -498,6 +498,9 @@ impl MDBook { // Find a translation for the links that are still None + let orig_book: &Book = self.translations.get(&key).unwrap(); + let orig_toc_id = toc::toc_node_count_id(&orig_book.toc); + for (key, trl) in final_links.clone().iter() { match trl.link { Some(_) => { continue; }, @@ -507,6 +510,8 @@ impl MDBook { let b: &Book = self.translations.get(key).unwrap(); let flat_toc = toc::flat_toc(&b.toc); + let by_section: bool = toc::toc_node_count_id(&b.toc) == orig_toc_id; + for item in flat_toc.iter() { match *item { TocItem::Numbered(ref i) | @@ -515,7 +520,7 @@ impl MDBook { // Note that this will also add a link to itself, which is good. - if content.is_it_a_translation_of(i) { + if content.is_it_a_translation_of(i, true, true, by_section) { if let Some(mut a) = i.chapter.get_dest_path() { // Join the path to the language code, i.e. en/tears.html a = PathBuf::from(key.to_string()).join(a); diff --git a/src/book/toc.rs b/src/book/toc.rs index d7510b8b7a..08d3ea6b8b 100644 --- a/src/book/toc.rs +++ b/src/book/toc.rs @@ -55,21 +55,45 @@ impl TocContent { } } - pub fn is_it_a_translation_of(&self, checking: &TocContent) -> bool { + pub fn is_it_a_translation_of(&self, + checking: &TocContent, + by_tr_id: bool, + by_src_path: bool, + by_section: bool) -> bool { + // if the user has set the same translation_id on them - if let Some(ref a) = self.chapter.translation_id { - if let Some(ref b) = checking.chapter.translation_id { - if a == b { - return true; + if by_tr_id { + if let Some(ref a) = self.chapter.translation_id { + if let Some(ref b) = checking.chapter.translation_id { + if a == b { + return true; + } } } } // if src_path matches - if let Some(ref a) = self.chapter.get_src_path() { - if let Some(ref b) = checking.chapter.get_src_path() { - if a == b { - return true; + if by_src_path { + if let Some(ref a) = self.chapter.get_src_path() { + if let Some(ref b) = checking.chapter.get_src_path() { + if a == b { + return true; + } + } + } + } + + // if section string matches, useful when TOC structure matches but + // titles and paths are translated. Can test that with + // toc_node_count_id(). + if by_section { + if let Some(_) = self.section { + let a = self.section_as_string(); + if let Some(_) = checking.section { + let b = checking.section_as_string(); + if a == b { + return true; + } } } } @@ -115,3 +139,34 @@ pub fn flat_toc(toc: &Vec) -> Vec { } flattened } + +/// Produces a String that can be used to check if two TOCs have the same +/// structure. It recursively counts the items at each level, ignoring Spacer +/// items. +pub fn toc_node_count_id(toc: &Vec) -> String { + let mut counters = String::new(); + + let c = toc.iter().filter(|x| { + match **x { + TocItem::Spacer => { false }, + _ => { true }, + }}).count(); + + counters.push_str(&format!("{}", c)); + + for i in toc.iter() { + match *i { + TocItem::Numbered(ref x) | + TocItem::Unnumbered(ref x) | + TocItem::Unlisted(ref x) => { + if let Some(ref subs) = x.sub_items { + let a = toc_node_count_id(subs); + counters.push_str(&a); + } + }, + TocItem::Spacer => {}, + } + } + + counters +} diff --git a/src/tests/hbs_renderer_multilang.rs b/src/tests/hbs_renderer_multilang.rs index 5ce7ca5a46..a9d58e2886 100644 --- a/src/tests/hbs_renderer_multilang.rs +++ b/src/tests/hbs_renderer_multilang.rs @@ -64,32 +64,28 @@ fn it_renders_multilanguage_book() { assert!(s.contains("hu")); assert!(s.contains("fr")); - // Test if translation links given in the TOML header were rendered + // Test if translation links are found book_path = proj.translations.get("en").unwrap().config.get_dest(); + chapter_path = book_path.join("rabbit-hole.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("en")); assert!(s.contains("hu")); assert!(s.contains("fr")); - // Test if translation links by translation_id were found - - book_path = proj.translations.get("en").unwrap().config.get_dest(); - chapter_path = book_path.join("long-tale.html"); - s = utils::fs::file_to_string(&chapter_path).unwrap(); - assert!(s.contains("en")); - assert!(s.contains("fr")); - assert!(s.contains("hu")); - - // Test if translation links by src_path were found - - book_path = proj.translations.get("en").unwrap().config.get_dest(); chapter_path = book_path.join("tears.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); assert!(s.contains("en")); assert!(s.contains("fr")); assert!(s.contains("hu")); + chapter_path = book_path.join("long-tale.html"); + s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("en")); + assert!(s.contains("fr")); + assert!(s.contains("hu")); + // Test if print.html is produced for each translations book_path = proj.translations.get("en").unwrap().config.get_dest(); diff --git a/src/tests/toc_test.rs b/src/tests/toc_test.rs index a8fac14b85..d4372fabbd 100644 --- a/src/tests/toc_test.rs +++ b/src/tests/toc_test.rs @@ -1,7 +1,7 @@ #[cfg(test)] use book::chapter::Chapter; -use book::toc::{TocItem, TocContent, flat_toc}; +use book::toc::{TocItem, TocContent, flat_toc, toc_node_count_id}; use parse::summary::parse_level; #[test] @@ -77,3 +77,37 @@ fn it_flattens_toc() { assert_eq!(format!("{:#?}", result), expected); } + +#[test] +fn it_counts_toc_id_string() { + let text = r#" +# Summary + +[Introduction](misc/introduction.md) + +- [mdBook](README.md) +- [Command Line Tool](cli/cli-tool.md) + - [init](cli/init.md) + - [build](cli/build.md) + - [watch](cli/watch.md) + - [serve](cli/serve.md) + - [test](cli/test.md) +- [Format](format/format.md) + - [SUMMARY.md](format/summary.md) + - [Configuration](format/config.md) + - [Theme](format/theme/theme.md) + - [index.hbs](format/theme/index-hbs.md) + - [Syntax highlighting](format/theme/syntax-highlighting.md) + - [MathJax Support](format/mathjax.md) + - [Rust code specific features](format/rust.md) +- [Rust Library](lib/lib.md) +----------- +[Contributors](misc/contributors.md) +"#; + + let toc = parse_level(&mut text.split('\n').collect(), 0, vec![0], true).unwrap(); + + let counters = toc_node_count_id(&toc); + + assert_eq!(counters, "6552".to_string()); +} From eb5a9b987f0fb1bd7317cd9f77d8cade288f6ec7 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Wed, 18 Jan 2017 07:17:15 +0000 Subject: [PATCH 33/46] cli test command is back --- src/bin/mdbook.rs | 51 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/src/bin/mdbook.rs b/src/bin/mdbook.rs index b81ea6fc4a..024984342d 100644 --- a/src/bin/mdbook.rs +++ b/src/bin/mdbook.rs @@ -24,8 +24,9 @@ extern crate ws; use std::env; use std::error::Error; -use std::io::{self, Write}; +use std::io::{self, Write, ErrorKind}; use std::path::{Path, PathBuf}; +use std::process::Command; use clap::{App, ArgMatches, SubCommand, AppSettings}; @@ -37,6 +38,7 @@ use std::sync::mpsc::channel; use mdbook::MDBook; use mdbook::renderer::{Renderer, HtmlHandlebars}; +use mdbook::book::toc::TocItem; use mdbook::utils; const NAME: &'static str = "mdbook"; @@ -159,8 +161,7 @@ fn init(args: &ArgMatches) -> Result<(), Box> { fn build(args: &ArgMatches) -> Result<(), Box> { let book_dir = get_book_dir(args); - // TODO figure out render format intent when we acutally have different renderers - + // TODO select render format intent when we acutally have different renderers let renderer = HtmlHandlebars::new(); try!(renderer.build(&book_dir)); @@ -174,11 +175,12 @@ fn watch(args: &ArgMatches) -> Result<(), Box> { let mut book = MDBook::new(&book_dir); book.read_config(); - trigger_on_change(&mut book, |event, book| { + // |event, book| + trigger_on_change(&mut book, |event, _| { if let Some(path) = event.path { println!("File changed: {:?}\nBuilding book...\n", path); - // TODO figure out render format intent when we acutally have different renderers + // TODO select render format intent when we acutally have different renderers let renderer = HtmlHandlebars::new(); match renderer.build(&book_dir) { Err(e) => println!("Error while building: {:?}", e), @@ -227,7 +229,6 @@ fn serve(args: &ArgMatches) -> Result<(), Box> { "#, public_address, ws_port, RELOAD_COMMAND)); - // TODO it's OK that serve only makes sense for the html output format, but formatlize that selection let renderer = HtmlHandlebars::new(); try!(renderer.render(&book)); @@ -264,9 +265,43 @@ fn serve(args: &ArgMatches) -> Result<(), Box> { Ok(()) } +/// Run the code examples in the book's chapters as tests with rustdoc fn test(args: &ArgMatches) -> Result<(), Box> { - // TODO test - println!("test"); + let book_dir = get_book_dir(args); + let mut proj = MDBook::new(&book_dir); + proj.read_config(); + proj.parse_books(); + + for (_, book) in proj.translations.iter() { + for item in book.toc.iter() { + match *item { + TocItem::Numbered(ref i) | + TocItem::Unnumbered(ref i) | + TocItem::Unlisted(ref i) => { + if let Some(p) = i.chapter.get_src_path() { + let path = book.config.get_src().join(&p); + + println!("[*]: Testing file: {:?}", path); + + let output_result = Command::new("rustdoc") + .arg(&path) + .arg("--test") + .output(); + let output = try!(output_result); + + if !output.status.success() { + return Err(Box::new(io::Error::new(ErrorKind::Other, format!( + "{}\n{}", + String::from_utf8_lossy(&output.stdout), + String::from_utf8_lossy(&output.stderr)))) as Box); + } + } + }, + TocItem::Spacer => {}, + } + } + } + Ok(()) } From 27721c26b58939733f5281b0632b2aad2b5e8dc7 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Wed, 18 Jan 2017 09:20:52 +0000 Subject: [PATCH 34/46] apply highlightjs style by class on body --- data/_html-template/_layouts/page.hbs | 9 +- data/_html-template/_stylus/book.styl | 2 + .../highlightjs-light.styl} | 79 ++++----- .../highlightjs-tomorrow-night.styl} | 62 +++---- data/_html-template/_stylus/highlightjs.styl | 7 + data/_html-template/css/book.css | 159 ++++++++++++++++++ data/_html-template/js/book.js | 26 +-- 7 files changed, 234 insertions(+), 110 deletions(-) rename data/_html-template/{css/highlight.css => _stylus/highlightjs-light.styl} (62%) rename data/_html-template/{css/tomorrow-night.css => _stylus/highlightjs-tomorrow-night.styl} (68%) create mode 100644 data/_html-template/_stylus/highlightjs.styl diff --git a/data/_html-template/_layouts/page.hbs b/data/_html-template/_layouts/page.hbs index db70087764..d4b3094195 100644 --- a/data/_html-template/_layouts/page.hbs +++ b/data/_html-template/_layouts/page.hbs @@ -11,18 +11,11 @@ - - - + - - - - - diff --git a/data/_html-template/_stylus/book.styl b/data/_html-template/_stylus/book.styl index c51497d012..c50681693c 100644 --- a/data/_html-template/_stylus/book.styl +++ b/data/_html-template/_stylus/book.styl @@ -1,5 +1,6 @@ @import "nib" +@import 'highlightjs' @import 'general' @import 'sidebar' @import 'page' @@ -8,3 +9,4 @@ @import 'theme-popup' @import 'themes' @import 'print' + diff --git a/data/_html-template/css/highlight.css b/data/_html-template/_stylus/highlightjs-light.styl similarity index 62% rename from data/_html-template/css/highlight.css rename to data/_html-template/_stylus/highlightjs-light.styl index 61681a2b5a..221f10bcea 100644 --- a/data/_html-template/css/highlight.css +++ b/data/_html-template/_stylus/highlightjs-light.styl @@ -1,24 +1,19 @@ /* Modified Base16 Atelier Dune Light - Theme /* Original by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ - -.hljs { - display: block; - overflow-x: auto; - background: #f1f1f1; - color: #6e6b5e; - padding: 0.5em; - -webkit-text-size-adjust: none; -} - +.hljs + display: block + overflow-x: auto + background: #f1f1f1 + color: #6e6b5e + padding: 0.5em + -webkit-text-size-adjust: none /* Atelier-Dune Comment */ -.hljs-comment { - color: #AAA; -} +.hljs-comment + color: #AAA /* Atelier-Dune Red */ .hljs-variable, - .hljs-tag, .hljs-regexp, .hljs-name, @@ -29,9 +24,8 @@ .html .hljs-doctype, .css .hljs-id, .css .hljs-class, -.css .hljs-pseudo { - color: #d73737; -} +.css .hljs-pseudo + color: #d73737 /* Atelier-Dune Orange */ .hljs-number, @@ -40,30 +34,26 @@ .hljs-literal, .hljs-params, .hljs-attribute, -.hljs-constant { - color: #b65611; -} +.hljs-constant + color: #b65611 /* Atelier-Dune Yellow */ .ruby .hljs-class .hljs-title, -.css .hljs-rule .hljs-attribute { - color: #ae9513; -} +.css .hljs-rule .hljs-attribute + color: #ae9513 /* Atelier-Dune Green */ .hljs-string, .hljs-value, .hljs-inheritance, .ruby .hljs-symbol, -.xml .hljs-cdata { - color: #2a9292; -} +.xml .hljs-cdata + color: #2a9292 /* Atelier-Dune Aqua */ .hljs-title, -.css .hljs-hexcolor { - color: #1fad83; -} +.css .hljs-hexcolor + color: #1fad83 /* Atelier-Dune Blue */ .hljs-function, @@ -73,15 +63,13 @@ .ruby .hljs-title .hljs-keyword, .perl .hljs-sub, .javascript .hljs-title, -.coffeescript .hljs-title { - color: #6684e1; -} +.coffeescript .hljs-title + color: #6684e1 /* Atelier-Dune Purple */ .hljs-keyword, -.javascript .hljs-function { - color: #b854d4; -} +.javascript .hljs-function + color: #b854d4 .coffeescript .javascript, .javascript .xml, @@ -89,19 +77,16 @@ .xml .javascript, .xml .vbscript, .xml .css, -.xml .hljs-cdata { - opacity: 0.5; -} +.xml .hljs-cdata + opacity: 0.5 /* markdown */ -.hljs-header { - color: #A30000; -} +.hljs-header + color: #A30000 + +.hljs-link_label + color: #33CCCC -.hljs-link_label { - color: #33CCCC; -} +.hljs-link_url + color: #CC66FF -.hljs-link_url { - color: #CC66FF; -} diff --git a/data/_html-template/css/tomorrow-night.css b/data/_html-template/_stylus/highlightjs-tomorrow-night.styl similarity index 68% rename from data/_html-template/css/tomorrow-night.css rename to data/_html-template/_stylus/highlightjs-tomorrow-night.styl index 9788e0846b..feae17a746 100644 --- a/data/_html-template/css/tomorrow-night.css +++ b/data/_html-template/_stylus/highlightjs-tomorrow-night.styl @@ -2,11 +2,9 @@ /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ /* Original theme - https://github.com/chriskempson/tomorrow-theme */ /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - /* Tomorrow Comment */ -.hljs-comment { - color: #969896; -} +.hljs-comment + color: #969896 /* Tomorrow Red */ .hljs-variable, @@ -20,9 +18,8 @@ .html .hljs-doctype, .css .hljs-id, .css .hljs-class, -.css .hljs-pseudo { - color: #cc6666; -} +.css .hljs-pseudo + color: #cc6666 /* Tomorrow Orange */ .hljs-number, @@ -31,15 +28,13 @@ .hljs-built_in, .hljs-literal, .hljs-params, -.hljs-constant { - color: #de935f; -} +.hljs-constant + color: #de935f /* Tomorrow Yellow */ .ruby .hljs-class .hljs-title, -.css .hljs-rule .hljs-attribute { - color: #f0c674; -} +.css .hljs-rule .hljs-attribute + color: #f0c674 /* Tomorrow Green */ .hljs-string, @@ -48,15 +43,13 @@ .hljs-header, .hljs-name, .ruby .hljs-symbol, -.xml .hljs-cdata { - color: #b5bd68; -} +.xml .hljs-cdata + color: #b5bd68 /* Tomorrow Aqua */ .hljs-title, -.css .hljs-hexcolor { - color: #8abeb7; -} +.css .hljs-hexcolor + color: #8abeb7 /* Tomorrow Blue */ .hljs-function, @@ -66,24 +59,21 @@ .ruby .hljs-title .hljs-keyword, .perl .hljs-sub, .javascript .hljs-title, -.coffeescript .hljs-title { - color: #81a2be; -} +.coffeescript .hljs-title + color: #81a2be /* Tomorrow Purple */ .hljs-keyword, -.javascript .hljs-function { - color: #b294bb; -} +.javascript .hljs-function + color: #b294bb -.hljs { - display: block; - overflow-x: auto; - background: #1d1f21; - color: #c5c8c6; - padding: 0.5em; - -webkit-text-size-adjust: none; -} +.hljs + display: block + overflow-x: auto + background: #1d1f21 + color: #c5c8c6 + padding: 0.5em + -webkit-text-size-adjust: none .coffeescript .javascript, .javascript .xml, @@ -91,6 +81,6 @@ .xml .javascript, .xml .vbscript, .xml .css, -.xml .hljs-cdata { - opacity: 0.5; -} +.xml .hljs-cdata + opacity: 0.5 + diff --git a/data/_html-template/_stylus/highlightjs.styl b/data/_html-template/_stylus/highlightjs.styl new file mode 100644 index 0000000000..f50e70328a --- /dev/null +++ b/data/_html-template/_stylus/highlightjs.styl @@ -0,0 +1,7 @@ +body.highlightjs-light { + @import 'highlightjs-light' +} + +body.highlightjs-dark { + @import 'highlightjs-tomorrow-night' +} \ No newline at end of file diff --git a/data/_html-template/css/book.css b/data/_html-template/css/book.css index d1a8f58998..3129b114ee 100644 --- a/data/_html-template/css/book.css +++ b/data/_html-template/css/book.css @@ -1,3 +1,162 @@ +body.highlightjs-light .hljs { + display: block; + overflow-x: auto; + background: #f1f1f1; + color: #6e6b5e; + padding: 0.5em; + -webkit-text-size-adjust: none; +} +body.highlightjs-light .hljs-comment { + color: #aaa; +} +body.highlightjs-light .hljs-variable, +body.highlightjs-light .hljs-tag, +body.highlightjs-light .hljs-regexp, +body.highlightjs-light .hljs-name, +body.highlightjs-light .ruby .hljs-constant, +body.highlightjs-light .xml .hljs-tag .hljs-title, +body.highlightjs-light .xml .hljs-pi, +body.highlightjs-light .xml .hljs-doctype, +body.highlightjs-light .html .hljs-doctype, +body.highlightjs-light .css .hljs-id, +body.highlightjs-light .css .hljs-class, +body.highlightjs-light .css .hljs-pseudo { + color: #d73737; +} +body.highlightjs-light .hljs-number, +body.highlightjs-light .hljs-preprocessor, +body.highlightjs-light .hljs-built_in, +body.highlightjs-light .hljs-literal, +body.highlightjs-light .hljs-params, +body.highlightjs-light .hljs-attribute, +body.highlightjs-light .hljs-constant { + color: #b65611; +} +body.highlightjs-light .ruby .hljs-class .hljs-title, +body.highlightjs-light .css .hljs-rule .hljs-attribute { + color: #ae9513; +} +body.highlightjs-light .hljs-string, +body.highlightjs-light .hljs-value, +body.highlightjs-light .hljs-inheritance, +body.highlightjs-light .ruby .hljs-symbol, +body.highlightjs-light .xml .hljs-cdata { + color: #2a9292; +} +body.highlightjs-light .hljs-title, +body.highlightjs-light .css .hljs-hexcolor { + color: #1fad83; +} +body.highlightjs-light .hljs-function, +body.highlightjs-light .python .hljs-decorator, +body.highlightjs-light .python .hljs-title, +body.highlightjs-light .ruby .hljs-function .hljs-title, +body.highlightjs-light .ruby .hljs-title .hljs-keyword, +body.highlightjs-light .perl .hljs-sub, +body.highlightjs-light .javascript .hljs-title, +body.highlightjs-light .coffeescript .hljs-title { + color: #6684e1; +} +body.highlightjs-light .hljs-keyword, +body.highlightjs-light .javascript .hljs-function { + color: #b854d4; +} +body.highlightjs-light .coffeescript .javascript, +body.highlightjs-light .javascript .xml, +body.highlightjs-light .tex .hljs-formula, +body.highlightjs-light .xml .javascript, +body.highlightjs-light .xml .vbscript, +body.highlightjs-light .xml .css, +body.highlightjs-light .xml .hljs-cdata { + opacity: 0.5; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; + filter: alpha(opacity=50); +} +body.highlightjs-light .hljs-header { + color: #a30000; +} +body.highlightjs-light .hljs-link_label { + color: #3cc; +} +body.highlightjs-light .hljs-link_url { + color: #c6f; +} +body.highlightjs-dark .hljs-comment { + color: #969896; +} +body.highlightjs-dark .hljs-variable, +body.highlightjs-dark .hljs-attribute, +body.highlightjs-dark .hljs-tag, +body.highlightjs-dark .hljs-regexp, +body.highlightjs-dark .ruby .hljs-constant, +body.highlightjs-dark .xml .hljs-tag .hljs-title, +body.highlightjs-dark .xml .hljs-pi, +body.highlightjs-dark .xml .hljs-doctype, +body.highlightjs-dark .html .hljs-doctype, +body.highlightjs-dark .css .hljs-id, +body.highlightjs-dark .css .hljs-class, +body.highlightjs-dark .css .hljs-pseudo { + color: #c66; +} +body.highlightjs-dark .hljs-number, +body.highlightjs-dark .hljs-preprocessor, +body.highlightjs-dark .hljs-pragma, +body.highlightjs-dark .hljs-built_in, +body.highlightjs-dark .hljs-literal, +body.highlightjs-dark .hljs-params, +body.highlightjs-dark .hljs-constant { + color: #de935f; +} +body.highlightjs-dark .ruby .hljs-class .hljs-title, +body.highlightjs-dark .css .hljs-rule .hljs-attribute { + color: #f0c674; +} +body.highlightjs-dark .hljs-string, +body.highlightjs-dark .hljs-value, +body.highlightjs-dark .hljs-inheritance, +body.highlightjs-dark .hljs-header, +body.highlightjs-dark .hljs-name, +body.highlightjs-dark .ruby .hljs-symbol, +body.highlightjs-dark .xml .hljs-cdata { + color: #b5bd68; +} +body.highlightjs-dark .hljs-title, +body.highlightjs-dark .css .hljs-hexcolor { + color: #8abeb7; +} +body.highlightjs-dark .hljs-function, +body.highlightjs-dark .python .hljs-decorator, +body.highlightjs-dark .python .hljs-title, +body.highlightjs-dark .ruby .hljs-function .hljs-title, +body.highlightjs-dark .ruby .hljs-title .hljs-keyword, +body.highlightjs-dark .perl .hljs-sub, +body.highlightjs-dark .javascript .hljs-title, +body.highlightjs-dark .coffeescript .hljs-title { + color: #81a2be; +} +body.highlightjs-dark .hljs-keyword, +body.highlightjs-dark .javascript .hljs-function { + color: #b294bb; +} +body.highlightjs-dark .hljs { + display: block; + overflow-x: auto; + background: #1d1f21; + color: #c5c8c6; + padding: 0.5em; + -webkit-text-size-adjust: none; +} +body.highlightjs-dark .coffeescript .javascript, +body.highlightjs-dark .javascript .xml, +body.highlightjs-dark .tex .hljs-formula, +body.highlightjs-dark .xml .javascript, +body.highlightjs-dark .xml .vbscript, +body.highlightjs-dark .xml .css, +body.highlightjs-dark .xml .hljs-cdata { + opacity: 0.5; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; + filter: alpha(opacity=50); +} html, body { font-family: "Open Sans", sans-serif; diff --git a/data/_html-template/js/book.js b/data/_html-template/js/book.js index 281cfd764e..c75d31da06 100644 --- a/data/_html-template/js/book.js +++ b/data/_html-template/js/book.js @@ -16,13 +16,13 @@ $( document ).ready(function() { // Syntax highlighting Configuration hljs.configure({ tabReplace: ' ', // 4 spaces - languages: [], // Languages used for auto-detection + languages: [] // Languages used for auto-detection }); $('code').each(function(i, block) { hljs.highlightBlock(block); }); - + // Adding the hljs class gives code blocks the color css // even if highlighting doesn't apply $('code').addClass('hljs'); @@ -55,11 +55,10 @@ $( document ).ready(function() { var page_wrapper = $("#page-wrapper"); var content = $("#content"); - // Add anchors for all content headers content.find("h1, h2, h3, h4, h5").wrap(function(){ var wrapper = $(""); - var header_name = $(this).text().trim().replace(/\W/g, '-') + var header_name = $(this).text().trim().replace(/\W/g, '-'); wrapper.attr("name", header_name); // Add so that when you click the link actually shows up in the url bar... // Remove any existing anchor then append the new one @@ -68,7 +67,6 @@ $( document ).ready(function() { return wrapper; }); - // Toggle sidebar $("#sidebar-toggle").click(function(event){ if ( html.hasClass("sidebar-hidden") ) { @@ -88,14 +86,12 @@ $( document ).ready(function() { } }); - // Scroll sidebar to current active section var activeSection = sidebar.find(".active"); if(activeSection.length) { sidebar.scrollTop(activeSection.offset().top); } - // Print button $("#print-button").click(function(){ var printWindow = window.open("print.html"); @@ -105,7 +101,6 @@ $( document ).ready(function() { window.print(); } - // Theme button $("#theme-toggle").click(function(){ if($('.theme-popup').length) { @@ -117,7 +112,6 @@ $( document ).ready(function() { .append($('
Coal
')) .append($('')); - popup.insertAfter(this); $('.theme').click(function(){ @@ -130,20 +124,17 @@ $( document ).ready(function() { }); function set_theme(theme) { + $('body').removeClass().addClass(theme); + if (theme == 'coal' || theme == 'navy') { - $("[href='css/tomorrow-night.css']").prop('disabled', false); - $("[href='css/highlight.css']").prop('disabled', true); + $("body").addClass("highlightjs-dark"); } else { - $("[href='css/tomorrow-night.css']").prop('disabled', true); - $("[href='css/highlight.css']").prop('disabled', false); + $("body").addClass("highlightjs-light"); } localStorage.setItem('theme', theme); - - $('body').removeClass().addClass(theme); } - // Hide Rust code lines prepended with a specific character var hiding_character = "#"; @@ -193,7 +184,6 @@ $( document ).ready(function() { }); }); - // Process playpen code blocks $(".playpen").each(function(block){ var pre_block = $(this); @@ -210,10 +200,8 @@ $( document ).ready(function() { }); }); - }); - function run_rust_code(code_block) { var result_block = code_block.find(".result"); if(result_block.length === 0) { From a8021eb4e8adb40e4e47cc9a647a1c1415d9c5e5 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Wed, 18 Jan 2017 09:25:03 +0000 Subject: [PATCH 35/46] upd test assets --- .../assets/_html-template/_layouts/page.hbs | 24 +- .../assets/_html-template/css/book.css | 237 +++++++++++++++--- 2 files changed, 220 insertions(+), 41 deletions(-) diff --git a/src/tests/book-minimal-with-assets/assets/_html-template/_layouts/page.hbs b/src/tests/book-minimal-with-assets/assets/_html-template/_layouts/page.hbs index ec5a88ff6b..d4b3094195 100644 --- a/src/tests/book-minimal-with-assets/assets/_html-template/_layouts/page.hbs +++ b/src/tests/book-minimal-with-assets/assets/_html-template/_layouts/page.hbs @@ -2,7 +2,7 @@ - {{ title }} + {{ page-title }} @@ -11,16 +11,11 @@ - - - + - - - @@ -41,6 +36,10 @@ @@ -53,13 +52,19 @@
-

{{ title }}

+ + +

{{ page-title }}

+ +
{{{ content }}}
@@ -93,6 +98,9 @@ + + {{{livereload}}} + diff --git a/src/tests/book-minimal-with-assets/assets/_html-template/css/book.css b/src/tests/book-minimal-with-assets/assets/_html-template/css/book.css index 3646bc65d0..3129b114ee 100644 --- a/src/tests/book-minimal-with-assets/assets/_html-template/css/book.css +++ b/src/tests/book-minimal-with-assets/assets/_html-template/css/book.css @@ -1,3 +1,162 @@ +body.highlightjs-light .hljs { + display: block; + overflow-x: auto; + background: #f1f1f1; + color: #6e6b5e; + padding: 0.5em; + -webkit-text-size-adjust: none; +} +body.highlightjs-light .hljs-comment { + color: #aaa; +} +body.highlightjs-light .hljs-variable, +body.highlightjs-light .hljs-tag, +body.highlightjs-light .hljs-regexp, +body.highlightjs-light .hljs-name, +body.highlightjs-light .ruby .hljs-constant, +body.highlightjs-light .xml .hljs-tag .hljs-title, +body.highlightjs-light .xml .hljs-pi, +body.highlightjs-light .xml .hljs-doctype, +body.highlightjs-light .html .hljs-doctype, +body.highlightjs-light .css .hljs-id, +body.highlightjs-light .css .hljs-class, +body.highlightjs-light .css .hljs-pseudo { + color: #d73737; +} +body.highlightjs-light .hljs-number, +body.highlightjs-light .hljs-preprocessor, +body.highlightjs-light .hljs-built_in, +body.highlightjs-light .hljs-literal, +body.highlightjs-light .hljs-params, +body.highlightjs-light .hljs-attribute, +body.highlightjs-light .hljs-constant { + color: #b65611; +} +body.highlightjs-light .ruby .hljs-class .hljs-title, +body.highlightjs-light .css .hljs-rule .hljs-attribute { + color: #ae9513; +} +body.highlightjs-light .hljs-string, +body.highlightjs-light .hljs-value, +body.highlightjs-light .hljs-inheritance, +body.highlightjs-light .ruby .hljs-symbol, +body.highlightjs-light .xml .hljs-cdata { + color: #2a9292; +} +body.highlightjs-light .hljs-title, +body.highlightjs-light .css .hljs-hexcolor { + color: #1fad83; +} +body.highlightjs-light .hljs-function, +body.highlightjs-light .python .hljs-decorator, +body.highlightjs-light .python .hljs-title, +body.highlightjs-light .ruby .hljs-function .hljs-title, +body.highlightjs-light .ruby .hljs-title .hljs-keyword, +body.highlightjs-light .perl .hljs-sub, +body.highlightjs-light .javascript .hljs-title, +body.highlightjs-light .coffeescript .hljs-title { + color: #6684e1; +} +body.highlightjs-light .hljs-keyword, +body.highlightjs-light .javascript .hljs-function { + color: #b854d4; +} +body.highlightjs-light .coffeescript .javascript, +body.highlightjs-light .javascript .xml, +body.highlightjs-light .tex .hljs-formula, +body.highlightjs-light .xml .javascript, +body.highlightjs-light .xml .vbscript, +body.highlightjs-light .xml .css, +body.highlightjs-light .xml .hljs-cdata { + opacity: 0.5; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; + filter: alpha(opacity=50); +} +body.highlightjs-light .hljs-header { + color: #a30000; +} +body.highlightjs-light .hljs-link_label { + color: #3cc; +} +body.highlightjs-light .hljs-link_url { + color: #c6f; +} +body.highlightjs-dark .hljs-comment { + color: #969896; +} +body.highlightjs-dark .hljs-variable, +body.highlightjs-dark .hljs-attribute, +body.highlightjs-dark .hljs-tag, +body.highlightjs-dark .hljs-regexp, +body.highlightjs-dark .ruby .hljs-constant, +body.highlightjs-dark .xml .hljs-tag .hljs-title, +body.highlightjs-dark .xml .hljs-pi, +body.highlightjs-dark .xml .hljs-doctype, +body.highlightjs-dark .html .hljs-doctype, +body.highlightjs-dark .css .hljs-id, +body.highlightjs-dark .css .hljs-class, +body.highlightjs-dark .css .hljs-pseudo { + color: #c66; +} +body.highlightjs-dark .hljs-number, +body.highlightjs-dark .hljs-preprocessor, +body.highlightjs-dark .hljs-pragma, +body.highlightjs-dark .hljs-built_in, +body.highlightjs-dark .hljs-literal, +body.highlightjs-dark .hljs-params, +body.highlightjs-dark .hljs-constant { + color: #de935f; +} +body.highlightjs-dark .ruby .hljs-class .hljs-title, +body.highlightjs-dark .css .hljs-rule .hljs-attribute { + color: #f0c674; +} +body.highlightjs-dark .hljs-string, +body.highlightjs-dark .hljs-value, +body.highlightjs-dark .hljs-inheritance, +body.highlightjs-dark .hljs-header, +body.highlightjs-dark .hljs-name, +body.highlightjs-dark .ruby .hljs-symbol, +body.highlightjs-dark .xml .hljs-cdata { + color: #b5bd68; +} +body.highlightjs-dark .hljs-title, +body.highlightjs-dark .css .hljs-hexcolor { + color: #8abeb7; +} +body.highlightjs-dark .hljs-function, +body.highlightjs-dark .python .hljs-decorator, +body.highlightjs-dark .python .hljs-title, +body.highlightjs-dark .ruby .hljs-function .hljs-title, +body.highlightjs-dark .ruby .hljs-title .hljs-keyword, +body.highlightjs-dark .perl .hljs-sub, +body.highlightjs-dark .javascript .hljs-title, +body.highlightjs-dark .coffeescript .hljs-title { + color: #81a2be; +} +body.highlightjs-dark .hljs-keyword, +body.highlightjs-dark .javascript .hljs-function { + color: #b294bb; +} +body.highlightjs-dark .hljs { + display: block; + overflow-x: auto; + background: #1d1f21; + color: #c5c8c6; + padding: 0.5em; + -webkit-text-size-adjust: none; +} +body.highlightjs-dark .coffeescript .javascript, +body.highlightjs-dark .javascript .xml, +body.highlightjs-dark .tex .hljs-formula, +body.highlightjs-dark .xml .javascript, +body.highlightjs-dark .xml .vbscript, +body.highlightjs-dark .xml .css, +body.highlightjs-dark .xml .hljs-cdata { + opacity: 0.5; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; + filter: alpha(opacity=50); +} html, body { font-family: "Open Sans", sans-serif; @@ -37,7 +196,7 @@ table thead td { font-weight: 700; } .sidebar { - position: fixed; + position: absolute; left: 0; top: 0; bottom: 0; @@ -99,6 +258,7 @@ table thead td { } .page-wrapper { position: absolute; + overflow-y: auto; left: 315px; right: 0; top: 0; @@ -133,14 +293,7 @@ table thead td { left: 0; bottom: 0; padding-right: 15px; -} -@media only screen and (max-width: 400px) { - .page { - /* Only prevent horizontal scrolling on screens with less than 100px for the content - A better way would be to somehow prevent horizontal scrolling all the time, but this causes scrolling problems on iOS Safari. - Also, would be better to only enable horizontal scrolling when it is needed (content does not fit on page) but I have no idea how to do that. */ - overflow-x: hidden; - } + overflow-y: auto; } .content { margin-left: auto; @@ -157,6 +310,42 @@ table thead td { .content img { max-width: 100%; } +div.translation-indexes ul { + margin: 10px 0 0 0; + padding: 0; + text-align: center; + list-style-type: none; +} +div.translation-indexes ul li { + display: inline-block; + padding: 0.2em 0.5em; +} +div.translation-indexes ul li a { + text-decoration: none; +} +div.translation-indexes ul li a:hover { + text-decoration: underline; +} +div.translation-links { + float: left; + height: 50px; +} +div.translation-links ul { + margin: 10px 0 0 0; + padding: 0 0 0 1em; + text-align: left; + list-style-type: none; +} +div.translation-links ul li { + display: inline-block; + padding: 0.2em 0.5em; +} +div.translation-links ul li a { + text-decoration: none; +} +div.translation-links ul li a:hover { + text-decoration: underline; +} .menu-bar { position: relative; height: 50px; @@ -181,18 +370,13 @@ table thead td { .menu-bar .right-buttons { float: right; } -.menu-title { - display: inline-block; +h1.menu-title { + float: left; + margin: 0 0 0 2em; + padding: 0; font-weight: 200; font-size: 20px; line-height: 50px; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - text-align: center; - margin: 0; opacity: 0; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter: alpha(opacity=0); @@ -211,7 +395,7 @@ table thead td { font-size: 2.5em; text-align: center; text-decoration: none; - position: fixed; + position: absolute; top: 50px /* Height of menu-bar */; bottom: 0; margin: 0; @@ -250,13 +434,7 @@ table thead td { .nav-chapters:hover { text-decoration: none; } -.sidebar-hidden .previous { - left: 0; -} -.sidebar-visible .nav-chapters .previous { - left: 300px; -} -.sidebar-visible .mobile-nav-chapters .previous { +.previous { left: 0; } .next { @@ -266,7 +444,6 @@ table thead td { position: relative; left: 10px; z-index: 1000; - -webkit-border-radius: 4px; border-radius: 4px; font-size: 0.7em; } @@ -303,7 +480,6 @@ table thead td { position: relative; display: inline-block; margin-bottom: 50px; - -webkit-border-radius: 5px; border-radius: 5px; } .next { @@ -406,7 +582,6 @@ table thead td { display: inline-block; vertical-align: middle; padding: 0.1em 0.3em; - -webkit-border-radius: 3px; border-radius: 3px; } .light pre { @@ -521,7 +696,6 @@ table thead td { display: inline-block; vertical-align: middle; padding: 0.1em 0.3em; - -webkit-border-radius: 3px; border-radius: 3px; } .coal pre { @@ -636,7 +810,6 @@ table thead td { display: inline-block; vertical-align: middle; padding: 0.1em 0.3em; - -webkit-border-radius: 3px; border-radius: 3px; } .navy pre { @@ -751,7 +924,6 @@ table thead td { display: inline-block; vertical-align: middle; padding: 0.1em 0.3em; - -webkit-border-radius: 3px; border-radius: 3px; } .rust pre { @@ -794,7 +966,6 @@ table thead td { } code { background-color: #666; - -webkit-border-radius: 5px; border-radius: 5px; /* Force background to be printed in Chrome */ -webkit-print-color-adjust: exact; From cb861a7354e65781b85020203a66b8ce3fac5101 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Wed, 18 Jan 2017 13:13:38 +0000 Subject: [PATCH 36/46] clean output folder without removing dotfiles --- src/renderer/html_handlebars/hbs_renderer.rs | 14 ++++--- src/tests/fs_test.rs | 41 +++++++++++++++++--- src/utils/fs.rs | 35 ++++++++++++----- 3 files changed, 70 insertions(+), 20 deletions(-) diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index 0b00a0e112..94359c3a65 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -6,6 +6,7 @@ use book::toc::{TocItem, TocContent}; use utils; use FILES; +use std::process::exit; use std::path::{Path, PathBuf}; use std::ffi::OsStr; use std::fs::{self, File}; @@ -35,15 +36,16 @@ impl Renderer for HtmlHandlebars { let mut book_project = MDBook::new(&project_root); book_project.read_config(); - book_project.parse_books(); - book_project.link_translations(); - // Clean output directory + if !book_project.get_src_base().exists() { + println!("Source folder doesn't exist: {:?}", book_project.get_src_base()); + exit(2); + } - // FIXME don't remove dotfiles such as .git/ folder. It's a common - // practice to track gh-pages in a versioned output folder. + book_project.parse_books(); + book_project.link_translations(); - //try!(utils::fs::remove_dir_content(&book_project.get_dest_base())); + try!(utils::fs::clean_output_dir(&book_project.get_dest_base())); // TODO talk to the user try!(self.render(&book_project)); diff --git a/src/tests/fs_test.rs b/src/tests/fs_test.rs index 5b3e3c8c63..c4a9dfda63 100644 --- a/src/tests/fs_test.rs +++ b/src/tests/fs_test.rs @@ -1,5 +1,6 @@ #[cfg(test)] +use std; use std::fs::{self, File}; use std::io::Read; use std::path::Path; @@ -8,7 +9,9 @@ use utils; #[test] fn it_copies_data_file() { - let dest_path = Path::new("the place was dark").join("and dusty and half-lost").join("book.css"); + let dest_base = std::env::temp_dir().join("in tangles of old alleys"); + let dest_path = dest_base.join("book.css"); + utils::fs::copy_data_file("data/_html-template/css/books.css", &dest_path); let mut file = match File::open(&dest_path) { @@ -26,11 +29,15 @@ fn it_copies_data_file() { } assert!(content.as_str().contains("Open Sans")); + + if dest_base.exists() { + fs::remove_dir_all(dest_base); + } } #[test] fn it_copies_data_by_pattern() { - let dest_base = Path::new("in tangles of old alleys").join("near the quays"); + let dest_base = std::env::temp_dir().join("near the quays"); if let Err(e) = utils::fs::copy_data("data/_html-template/**/*", "data/_html-template/", @@ -43,8 +50,32 @@ fn it_copies_data_by_pattern() { assert!(dest_base.join("css").join("book.css").exists()); assert!(!dest_base.join("_layouts").exists()); - let p = Path::new("in tangles of old alleys"); - if p.exists() { - fs::remove_dir_all(p); + if dest_base.exists() { + fs::remove_dir_all(dest_base); + } +} + +#[test] +fn it_doesnt_delete_toplevel_dotfiles() { + let dest_base = std::env::temp_dir().join("with queer curls of fog"); + + match utils::fs::create_with_str(&dest_base.join(".dotfile"), "that west winds tossed") { + Err(e) => { println!("Error: {:#?}", e); return; }, + Ok(_) => {}, + } + + match utils::fs::create_with_str(&dest_base.join("door.html"), "

I entered, charmed

") { + Err(e) => { println!("Error: {:#?}", e); return; }, + Ok(_) => {}, + } + + utils::fs::clean_output_dir(&dest_base); + + assert!(dest_base.exists()); + assert!(dest_base.join(".dotfile").exists()); + assert!(!dest_base.join("door.html").exists()); + + if dest_base.exists() { + fs::remove_dir_all(dest_base); } } diff --git a/src/utils/fs.rs b/src/utils/fs.rs index 20e455e840..6a0a90e4b1 100644 --- a/src/utils/fs.rs +++ b/src/utils/fs.rs @@ -89,6 +89,7 @@ pub fn copy_data(include_glob: &str, .map(|x| { let mut s: &str = &x.replace(include_base, ""); s = s.trim_left_matches("/"); + s = s.trim_left_matches(r"\"); let p = Path::new(s); let dest_path = dest_base.join(p); @@ -242,21 +243,37 @@ pub fn create_file(path: &Path) -> Result> { Ok(f) } -// TODO why not just delete the folder and re-create it? - -/// Removes all the content of a directory but not the directory itself -pub fn remove_dir_content(dir: &Path) -> Result<(), Box> { +/// A cleaning operation intended to be used on the output directory of a book +/// before producing new output files. It removes the content of the directory, +/// except for dotfiles at the toplevel. +/// +/// This keeps VCS files intact such as `.git/, .gitignore`, and the output +/// folder can be used to track the gh-pages branch of the repository, which is +/// a common practice. +pub fn clean_output_dir(dir: &Path) -> Result<(), Box> { if !dir.exists() { return Ok(()); } + let exclude_pat = Pattern::new(".*").unwrap(); + for item in try!(fs::read_dir(dir)) { if let Ok(item) = item { - let item = item.path(); - if item.is_dir() { - try!(fs::remove_dir_all(item)); - } else { - try!(fs::remove_file(item)); + if let Some(a) = item.path().to_str() { + if let Some(d) = dir.as_os_str().to_str() { + let mut s: &str = &a.replace(d, ""); + s = s.trim_left_matches("/"); + s = s.trim_left_matches(r"\"); + + if !exclude_pat.matches(s) { + let p = item.path(); + if p.is_dir() { + try!(fs::remove_dir_all(p)); + } else { + try!(fs::remove_file(p)); + } + } + } } } } From 8441bb99d2980e7e37d5140cf1e43d42d1d34742 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Wed, 18 Jan 2017 14:58:38 +0000 Subject: [PATCH 37/46] more simple language declaration in book.toml --- src/book/bookconfig.rs | 37 +++++++++++++++---- src/book/mod.rs | 8 +++- src/renderer/html_handlebars/hbs_renderer.rs | 2 +- src/tests/book-wonderland-multilang/book.toml | 9 +++-- src/tests/hbs_renderer_multilang.rs | 3 ++ src/tests/mdbook_test.rs | 10 +++-- 6 files changed, 52 insertions(+), 17 deletions(-) diff --git a/src/book/bookconfig.rs b/src/book/bookconfig.rs index 158b5f3879..984a8eeeaa 100644 --- a/src/book/bookconfig.rs +++ b/src/book/bookconfig.rs @@ -109,7 +109,9 @@ impl BookConfig { /// name = "Marcus Aurelius Antoninus" /// ``` /// - pub fn parse_from_btreemap(&mut self, config: &BTreeMap) -> &mut Self { + pub fn parse_from_btreemap(&mut self, + default_language_code: String, + config: &BTreeMap) -> &mut Self { // Paths @@ -134,6 +136,8 @@ impl BookConfig { .collect::>() }; + self.language = Language::new(&default_language_code); + if let Some(a) = config.get("title") { self.title = a.to_string().replace("\"", ""); } @@ -152,6 +156,14 @@ impl BookConfig { } } + if let Some(a) = config.get("language_code") { + self.language.code = a.to_string().replace("\"", ""); + } + + if let Some(a) = config.get("language_name") { + self.language.name = Some(a.to_string().replace("\"", "")); + } + // Author name as a hash key. if let Some(a) = config.get("author") { if let Some(b) = a.as_str() { @@ -286,24 +298,31 @@ impl From for Author { #[derive(Debug, Clone)] pub struct Language { - pub name: String, pub code: String, + pub name: Option, } impl Default for Language { fn default() -> Self { Language { - name: String::from("English"), code: String::from("en"), + name: Some(String::from("English")), } } } impl Language { - pub fn new(name: &str, code: &str) -> Language { + pub fn new(code: &str) -> Language { + Language{ + code: code.to_string(), + name: None, + } + } + + pub fn new_with_name(code: &str, name: &str) -> Language { Language{ - name: name.to_string(), code: code.to_string(), + name: Some(name.to_string()), } } } @@ -311,12 +330,14 @@ impl Language { impl From for Language { fn from(data: toml::Table) -> Language { let mut language = Language::default(); - if let Some(x) = data.get("name") { - language.name = x.to_string().replace("\"", ""); - } if let Some(x) = data.get("code") { language.code = x.to_string().replace("\"", ""); } + if let Some(x) = data.get("name") { + language.name = Some(x.to_string().replace("\"", "")); + } else { + language.name = None; + } language } } diff --git a/src/book/mod.rs b/src/book/mod.rs index a0a244f4d9..c216c35e65 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -321,7 +321,10 @@ impl MDBook { book.config.dest = book.config.dest.join(key); } book.config.is_multilang = is_multilang; - book.config.parse_from_btreemap(&d); + book.config.parse_from_btreemap(key.to_owned(), &d); + // the language code and translation key must agree + // even after parsing the user's settings + book.config.language.code = key.to_owned(); if book.config.is_main_book { has_main_book_already = true; } @@ -379,7 +382,8 @@ impl MDBook { } else { let mut book = Book::new(&self.project_root); - book.config.parse_from_btreemap(&config); + // take "en" as default code, will override if user sets it + book.config.parse_from_btreemap("en".to_owned(), &config); let key = book.config.language.code.clone(); self.translations.insert(key, book); } diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index 94359c3a65..e3fc7de98e 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -356,7 +356,7 @@ fn make_data(book: &Book, // Book data - data.insert("language".to_owned(), "en".to_json()); + data.insert("language".to_owned(), book.config.language.code.to_json()); data.insert("page-title".to_owned(), format!("{} - {}", chapter.title, book.config.title).to_json()); data.insert("chapter-title".to_owned(), chapter.title.to_json()); data.insert("description".to_owned(), book.config.description.to_json()); diff --git a/src/tests/book-wonderland-multilang/book.toml b/src/tests/book-wonderland-multilang/book.toml index be3214b966..032739a16b 100644 --- a/src/tests/book-wonderland-multilang/book.toml +++ b/src/tests/book-wonderland-multilang/book.toml @@ -1,16 +1,19 @@ # Source: https://en.wikisource.org/wiki/Alice%27s_Adventures_in_Wonderland_(1866)" +# The language code will be the translation key. + [[translations.en]] title = "Alice's Adventures in Wonderland" author = "Lewis Carroll" -language = { name = "English", code = "en" } [[translations.fr]] title = "Alice au pays des merveilles" author = "Lewis Carroll" -language = { name = "Français", code = "fr" } + +# Optionally you can provide the language name. + +language_name = "Français" [[translations.hu]] title = "Alice Csodaországban" author = "Lewis Carroll" -language = { name = "Magyar", code = "hu" } diff --git a/src/tests/hbs_renderer_multilang.rs b/src/tests/hbs_renderer_multilang.rs index a9d58e2886..cdd7744eb5 100644 --- a/src/tests/hbs_renderer_multilang.rs +++ b/src/tests/hbs_renderer_multilang.rs @@ -35,6 +35,7 @@ fn it_renders_multilanguage_book() { chapter_path = book_path.join("tears.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("")); assert!(s.contains("

The Pool of Tears

")); assert!(s.contains("")); assert!(s.contains("li>
2. The Pool of Tears")); @@ -42,12 +43,14 @@ fn it_renders_multilanguage_book() { book_path = proj.translations.get("fr").unwrap().config.get_dest(); chapter_path = book_path.join("tears.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("")); assert!(s.contains("

La mare aux larmes

")); assert!(s.contains("")); book_path = proj.translations.get("hu").unwrap().config.get_dest(); chapter_path = book_path.join("tears.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); + assert!(s.contains("")); assert!(s.contains("

Könnytó

")); assert!(s.contains("")); diff --git a/src/tests/mdbook_test.rs b/src/tests/mdbook_test.rs index b5c6076a85..18e2be31d4 100644 --- a/src/tests/mdbook_test.rs +++ b/src/tests/mdbook_test.rs @@ -10,8 +10,7 @@ use serde_json; use utils; use book::MDBook; use book::book::Book; -use book::bookconfig::BookConfig; -use book::bookconfig::Author; +use book::bookconfig::{BookConfig, Author, Language}; use book::chapter::Chapter; use book::toc::{TocItem, TocContent}; @@ -36,6 +35,7 @@ fn it_parses_simple_json_config() { book.config.title = "mdBook Documentation".to_string(); book.config.description = Some("Create books from markdown files.".to_string()); book.config.authors = vec![Author::new("Mathieu David")]; + book.config.language = Language::new("en"); expected.translations.insert("en".to_string(), book); } @@ -63,6 +63,7 @@ author = "Mathieu David" book.config.title = "mdBook Documentation".to_string(); book.config.description = Some("Create books from markdown files.".to_string()); book.config.authors = vec![Author::new("Mathieu David")]; + book.config.language = Language::new("en"); expected.translations.insert("en".to_string(), book); } @@ -92,6 +93,7 @@ name = "Mathieu David" book.config.title = "mdBook Documentation".to_string(); book.config.description = Some("Create books from markdown files.".to_string()); book.config.authors = vec![Author::new("Mathieu David")]; + book.config.language = Language::new("en"); expected.translations.insert("en".to_string(), book); } @@ -144,6 +146,7 @@ name = "Kosztolányi Dezső" conf.dest = expected.get_project_root().join("book").join("en"); conf.is_multilang = true; conf.is_main_book = true; + conf.language = Language::new("en"); let mut book = Book::default(); book.config = conf; @@ -160,6 +163,7 @@ name = "Kosztolányi Dezső" conf.dest = expected.get_project_root().join("book").join("hu"); conf.is_multilang = true; conf.is_main_book = false; + conf.language = Language::new("hu"); let mut book = Book::default(); book.config = conf; @@ -219,7 +223,7 @@ name = "Kosztolányi Dezső" book.config.title = "Alice Csodaországban".to_string(); book.config.authors = vec![Author::new("Lewis Carroll")]; book.config.translators = Some(vec![Author::new("Kosztolányi Dezső")]); - book.config.language.name = "Hungarian".to_string(); + book.config.language.name = Some("Hungarian".to_string()); book.config.language.code = "hu".to_string(); expected.translations.insert("hu".to_string(), book); From 4fe0e8d2a4d514857bb7ad342e4dc386892398f3 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Wed, 18 Jan 2017 16:18:41 +0000 Subject: [PATCH 38/46] update docs in the source --- build.rs | 4 - src/book/book.rs | 4 +- src/book/bookconfig.rs | 9 +- src/book/chapter.rs | 41 +-------- src/book/mod.rs | 96 ++------------------ src/book/toc.rs | 2 +- src/lib.rs | 68 ++++++-------- src/renderer/html_handlebars/hbs_renderer.rs | 9 +- src/tests/fs_test.rs | 65 +++++++++++++ src/utils/fs.rs | 77 +--------------- 10 files changed, 119 insertions(+), 256 deletions(-) diff --git a/build.rs b/build.rs index 89cc16cffa..b3481dad8d 100644 --- a/build.rs +++ b/build.rs @@ -15,10 +15,6 @@ fn main() { .build("data.rs") .unwrap(); - // TODO this using cargo as a Makefile. This is only for development, it - // doesn't have to be part of the production auto-build. Use either a - // Makefile or an npm command if stylus comes from npm anyway. - if let Ok(_) = env::var("CARGO_FEATURE_REGENERATE_CSS") { // Compile stylus stylesheet to css diff --git a/src/book/book.rs b/src/book/book.rs index 3bfbb21852..2405c0e1b2 100644 --- a/src/book/book.rs +++ b/src/book/book.rs @@ -35,7 +35,7 @@ impl Book { book } - /// Parses in the SUMMARY.md or creates one + /// Parses the SUMMARY.md or creates one pub fn parse_or_create_summary_file(&mut self, first_as_index: bool) -> Result<&mut Self, String> { let summary_path = self.config.src.join("SUMMARY.md"); @@ -81,7 +81,7 @@ impl Book { content } - // TODO update + // These don't seem to be used. // /// This method takes a slice `&[x, y, z]` as parameter and returns the corresponding chapter. // /// For example, to retrieve chapter 2.3 we would use: diff --git a/src/book/bookconfig.rs b/src/book/bookconfig.rs index 984a8eeeaa..42f417ca87 100644 --- a/src/book/bookconfig.rs +++ b/src/book/bookconfig.rs @@ -16,8 +16,6 @@ pub struct BookConfig { // Paths - // TODO test if dest and src behaves correctly when mdbook.dest_base and mdbook.src_base is not 'book' and 'src' - pub dest: PathBuf, pub src: PathBuf, @@ -25,8 +23,9 @@ pub struct BookConfig { /// The title of the book. pub title: String, - /// The subtitle, when titles are in the form of "The Immense Journey: An - /// Imaginative Naturalist Explores the Mysteries of Man and Nature" + /// The subtitle, when the book's full title is in the form of "The Immense + /// Journey: An Imaginative Naturalist Explores the Mysteries of Man and + /// Nature" pub subtitle: Option, /// A brief description or summary of the book. pub description: Option, @@ -94,7 +93,7 @@ impl BookConfig { /// write data back to it. /// /// Parses author when given as an array, or when given as a hash key to - /// make declaring just an author name easy. + /// make declaring a single author easy. /// /// Both of these express a single author: /// diff --git a/src/book/chapter.rs b/src/book/chapter.rs index dd0c986c5c..4f8f34c523 100644 --- a/src/book/chapter.rs +++ b/src/book/chapter.rs @@ -21,7 +21,7 @@ use utils::fs::create_with_str; /// If the markdown file starts with a TOML header, it will be parsed to set the /// chapter's properties. A TOML header should start and end with `+++` lines: /// -/// ``` +/// ```text /// +++ /// title = "The Library of Babel" /// author = "Jorge Luis Borges" @@ -81,8 +81,6 @@ pub struct Chapter { /// The description of the chapter. pub description: Option, - /// TODO use this in the template - /// CSS class that will be added to the page-level wrap div to allow /// customized chapter styles. pub css_class: Option, @@ -235,43 +233,6 @@ impl Chapter { self } - // TODO not being used? - - // /// Reads in the chapter's content from the markdown file. Chapter doesn't - // /// know the book's src folder, hence the `book_src_dir` argument. - // pub fn read_content_using(&self, book_src_dir: &PathBuf) -> Result> { - // let p = match self.get_src_path() { - // Some(x) => x, - // None => { - // return Err(Box::new(io::Error::new( - // io::ErrorKind::Other, - // format!("src_path is None")) - // )); - // } - // }; - - // let src_path = book_src_dir.join(&p); - - // if !src_path.exists() { - // return Err(Box::new(io::Error::new( - // io::ErrorKind::Other, - // format!("Doesn't exist: {:?}", src_path)) - // )); - // } - - // debug!("[*]: Opening file: {:?}", src_path); - - // let mut f = try!(File::open(&src_path)); - // let mut content: String = String::new(); - - // debug!("[*]: Reading file"); - // try!(f.read_to_string(&mut content)); - - // content = utils::strip_toml_header(&content); - - // Ok(content) - // } - pub fn get_src_path(&self) -> Option { self.src_path.clone() } diff --git a/src/book/mod.rs b/src/book/mod.rs index c216c35e65..9108fee079 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -63,8 +63,8 @@ pub struct MDBook { /// folder with the chapter files. /// /// In the case of a single language, it is the sole item in the HashMap, - /// and its source is not expected to be under a sub-folder, just simply in - /// `./src`. + /// and its Markdown files are not expected to be under a sub-folder, just + /// simply in `./src`. /// /// Translations have to be declared in `book.toml` in their separate /// blocks. The first in the TOML config will be recognized as the main @@ -82,25 +82,24 @@ pub struct MDBook { /// author = "Lewis Carroll" /// ``` /// - /// For multiple languages, declare them in blocks: + /// For multiple languages, declare them in blocks. The translation key will + /// be the language code. Optionally, the language name can be set as well. /// /// ```toml /// [[translations.en]] /// title = "Alice in Wonderland" /// author = "Lewis Carroll" - /// language = { name = "English", code = "en" } /// /// [[translations.fr]] /// title = "Alice au pays des merveilles" /// author = "Lewis Carroll" /// translator = "Henri Bué" - /// language = { name = "Français", code = "fr" } + /// language_name = "Français" /// /// [[translations.hu]] /// title = "Alice Csodaországban" /// author = "Lewis Carroll" /// translator = "Kosztolányi Dezső" - /// language = { name = "Hungarian", code = "hu" } /// ``` pub translations: HashMap, @@ -175,12 +174,12 @@ impl MDBook { /// The `book.toml` file should be in the root directory of the book project. /// The project root directory is the one specified when creating a new `MDBook` /// - /// ```no_run + /// ```ignore /// # extern crate mdbook; /// # use mdbook::MDBook; - /// # use std::path::Path; + /// # use std::path::PathBuf; /// # fn main() { - /// let mut book = MDBook::new(Path::new("project_root_dir")); + /// let mut book = MDBook::new(&PathBuf::from("project_root_dir")); /// # } /// ``` /// @@ -247,12 +246,6 @@ impl MDBook { /// block will be interpreted as properties of the main book. /// /// `project_root` is ignored. - /// - /// - dest_base - /// - render_intent - /// - template_dir - /// - indent_spaces - /// - livereload pub fn parse_from_btreemap(&mut self, conf: &BTreeMap) -> &mut Self { let mut config = conf.clone(); @@ -398,8 +391,6 @@ impl MDBook { for key in self.translations.clone().keys() { if let Some(mut b) = self.translations.clone().get_mut(key) { - // TODO error handling could be better here - let first_as_index = match self.render_intent { RenderIntent::HtmlHandlebars => true, }; @@ -617,76 +608,5 @@ impl MDBook { self } - // TODO update - - // pub fn test(&mut self) -> Result<(), Box> { - // // read in the chapters - // try!(self.parse_summary()); - // for item in self.iter() { - - // match *item { - // BookItem::Chapter(_, ref ch) => { - // if ch.path != PathBuf::new() { - - // let path = self.get_src().join(&ch.path); - - // println!("[*]: Testing file: {:?}", path); - - // let output_result = Command::new("rustdoc") - // .arg(&path) - // .arg("--test") - // .output(); - // let output = try!(output_result); - - // if !output.status.success() { - // return Err(Box::new(io::Error::new(ErrorKind::Other, format!( - // "{}\n{}", - // String::from_utf8_lossy(&output.stdout), - // String::from_utf8_lossy(&output.stderr)))) as Box); - // } - // } - // }, - // _ => {}, - // } - // } - // Ok(()) - // } - - // /// Returns a flat depth-first iterator over the elements of the book, it returns an [BookItem enum](bookitem.html): - // /// `(section: String, bookitem: &BookItem)` - // /// - // /// ```no_run - // /// # extern crate mdbook; - // /// # use mdbook::MDBook; - // /// # use mdbook::BookItem; - // /// # use std::path::Path; - // /// # fn main() { - // /// # let mut book = MDBook::new(Path::new("mybook")); - // /// for item in book.iter() { - // /// match item { - // /// &BookItem::Chapter(ref section, ref chapter) => {}, - // /// &BookItem::Affix(ref chapter) => {}, - // /// &BookItem::Spacer => {}, - // /// } - // /// } - // /// - // /// // would print something like this: - // /// // 1. Chapter 1 - // /// // 1.1 Sub Chapter - // /// // 1.2 Sub Chapter - // /// // 2. Chapter 2 - // /// // - // /// // etc. - // /// # } - // /// ``` - - // pub fn iter(&self) -> BookItems { - // BookItems { - // items: &self.content[..], - // current_index: 0, - // stack: Vec::new(), - // } - // } - } diff --git a/src/book/toc.rs b/src/book/toc.rs index 08d3ea6b8b..6205bd2870 100644 --- a/src/book/toc.rs +++ b/src/book/toc.rs @@ -101,7 +101,7 @@ impl TocContent { false } - // TODO update + // This doesn't seem to be used. // /// This function takes a slice `&[x,y,z]` and returns the corresponding sub-chapter if it exists. // /// diff --git a/src/lib.rs b/src/lib.rs index 2f5eaf61a2..4edabaec1c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,7 +5,7 @@ //! //! This is the API doc, but you can find a [less "low-level" documentation here](../index.html) that //! contains information about the command line tool, format, structure etc. -//! It is also rendered with mdBook to showcase the features and default theme. +//! It is also rendered with mdBook to showcase the features and default html template. //! //! Some reasons why you would want to use the crate (over the cli): //! @@ -17,57 +17,49 @@ //! //! ## Example //! -//! ```no_run +//! Building a book by the path to its directory: +//! +//! ```ignore //! extern crate mdbook; //! //! use mdbook::MDBook; -//! use std::path::Path; +//! use mdbook::renderer::HtmlHandlebars; +//! use std::path::PathBuf; //! //! fn main() { -//! let mut book = MDBook::new(Path::new("my-book")) // Path to root -//! .set_src(Path::new("src")) // Path from root to source directory -//! .set_dest(Path::new("book")) // Path from root to output directory -//! .read_config(); // Parse book.json file for configuration -//! -//! book.build().unwrap(); // Render the book +//! let path = PathBuf::from("my-book"); // Path to the book project's root +//! let renderer = HtmlHandlebars::new(); +//! try!(renderer.build(&path)); // Build the book //! } //! ``` //! -//! ## Implementing a new Renderer +//! Or, preparing an `MDBook` struct step-by-step and passing it to a renderer: //! -//! If you want to create a new renderer for mdBook, the only thing you have to do is to implement -//! the [Renderer trait](renderer/renderer/trait.Renderer.html) -//! -//! And then you can swap in your renderer like this: -//! -//! ```no_run -//! # extern crate mdbook; -//! # -//! # use mdbook::MDBook; -//! # use mdbook::renderer::HtmlHandlebars; -//! # use std::path::Path; -//! # -//! # fn main() { -//! # let your_renderer = HtmlHandlebars::new(); -//! # -//! let book = MDBook::new(Path::new("my-book")).set_renderer(Box::new(your_renderer)); -//! # } -//! ``` -//! If you make a renderer, you get the book constructed in form of `Vec` and you get -//! the book config in a `BookConfig` struct. +//! ```ignore +//! extern crate mdbook; //! -//! It's your responsability to create the necessary files in the correct directories. +//! use mdbook::MDBook; +//! use mdbook::renderer::HtmlHandlebars; +//! use std::path::PathBuf; //! -//! ## utils +//! fn main() { +//! let path = PathBuf::from("my-book"); // Path to the book project's root +//! let mut book_project = MDBook::new(&path); +//! book_project.read_config(); // Parse book.toml file for configuration +//! book_project.parse_books(); // Parse SUMMARY.md, build TOC, parse chapters +//! book_project.link_translations(); // Identity links between translations +//! +//! let renderer = HtmlHandlebars::new(); +//! try!(renderer.render(&book_project)); // Render the book +//! } +//! ``` //! -//! I have regrouped some useful functions in the [utils](utils/index.html) module, like the following function +//! ## Implementing a new Renderer //! -//! ```ignore -//! utils::fs::create_path(path: &Path) +//! If you want to create a new renderer for mdBook, implement the [Renderer +//! trait](renderer/renderer/trait.Renderer.html), which is composed of two +//! functions, `.build()` and `.render()`. //! ``` -//! This function creates all the directories in a given path if they do not exist -//! -//! Make sure to take a look at it. #[macro_use] extern crate serde_derive; diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index e3fc7de98e..20d441511b 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -47,8 +47,13 @@ impl Renderer for HtmlHandlebars { try!(utils::fs::clean_output_dir(&book_project.get_dest_base())); - // TODO talk to the user - try!(self.render(&book_project)); + match self.render(&book_project) { + Ok(_) => {}, + Err(e) => { + println!("Error: {:#?}", e); + return Err(e); + } + } Ok(()) } diff --git a/src/tests/fs_test.rs b/src/tests/fs_test.rs index c4a9dfda63..a1874358c5 100644 --- a/src/tests/fs_test.rs +++ b/src/tests/fs_test.rs @@ -1,11 +1,14 @@ #[cfg(test)] +extern crate tempdir; + use std; use std::fs::{self, File}; use std::io::Read; use std::path::Path; use utils; +use utils::fs::copy_files_except_ext; #[test] fn it_copies_data_file() { @@ -79,3 +82,65 @@ fn it_doesnt_delete_toplevel_dotfiles() { fs::remove_dir_all(dest_base); } } + +#[test] +fn copy_files_except_ext_test() { + let tmp = match tempdir::TempDir::new("") { + Ok(t) => t, + Err(_) => panic!("Could not create a temp dir"), + }; + + // Create a couple of files + if let Err(_) = fs::File::create(&tmp.path().join("file.txt")) { + panic!("Could not create file.txt") + } + if let Err(_) = fs::File::create(&tmp.path().join("file.md")) { + panic!("Could not create file.md") + } + if let Err(_) = fs::File::create(&tmp.path().join("file.png")) { + panic!("Could not create file.png") + } + if let Err(_) = fs::create_dir(&tmp.path().join("sub_dir")) { + panic!("Could not create sub_dir") + } + if let Err(_) = fs::File::create(&tmp.path().join("sub_dir/file.png")) { + panic!("Could not create sub_dir/file.png") + } + if let Err(_) = fs::create_dir(&tmp.path().join("sub_dir_exists")) { + panic!("Could not create sub_dir_exists") + } + if let Err(_) = fs::File::create(&tmp.path().join("sub_dir_exists/file.txt")) { + panic!("Could not create sub_dir_exists/file.txt") + } + + // Create output dir + if let Err(_) = fs::create_dir(&tmp.path().join("output")) { + panic!("Could not create output") + } + if let Err(_) = fs::create_dir(&tmp.path().join("output/sub_dir_exists")) { + panic!("Could not create output/sub_dir_exists") + } + + match copy_files_except_ext(&tmp.path(), &tmp.path().join("output"), true, &["md"]) { + Err(e) => panic!("Error while executing the function:\n{:?}", e), + Ok(_) => {}, + } + + // Check if the correct files where created + if !(&tmp.path().join("output/file.txt")).exists() { + panic!("output/file.txt should exist") + } + if (&tmp.path().join("output/file.md")).exists() { + panic!("output/file.md should not exist") + } + if !(&tmp.path().join("output/file.png")).exists() { + panic!("output/file.png should exist") + } + if !(&tmp.path().join("output/sub_dir/file.png")).exists() { + panic!("output/sub_dir/file.png should exist") + } + if !(&tmp.path().join("output/sub_dir_exists/file.txt")).exists() { + panic!("output/sub_dir/file.png should exist") + } + +} diff --git a/src/utils/fs.rs b/src/utils/fs.rs index 6a0a90e4b1..d07002a98b 100644 --- a/src/utils/fs.rs +++ b/src/utils/fs.rs @@ -68,7 +68,7 @@ pub fn copy_data_file(src_path: &str, dest_path: &Path) -> Result<(), Box /// I.e. "data/_html-template/css/book.css" will be written to /// "assets/css/book.css". /// -/// ```no_run +/// ```ignore /// utils::fs::copy_data("data/_html-template/**/*", /// "data/_html-template/", /// vec!["data/_html-template/_*"], @@ -378,78 +378,3 @@ pub fn create_gitignore(proj: &MDBook) { f.write_all(&text.into_bytes()).expect("Could not write to file."); } - -// ------------------------------------------------------------------------------------------------ -// ------------------------------------------------------------------------------------------------ - -// tests - -#[cfg(test)] -mod tests { - extern crate tempdir; - - use super::copy_files_except_ext; - use std::fs; - - #[test] - fn copy_files_except_ext_test() { - let tmp = match tempdir::TempDir::new("") { - Ok(t) => t, - Err(_) => panic!("Could not create a temp dir"), - }; - - // Create a couple of files - if let Err(_) = fs::File::create(&tmp.path().join("file.txt")) { - panic!("Could not create file.txt") - } - if let Err(_) = fs::File::create(&tmp.path().join("file.md")) { - panic!("Could not create file.md") - } - if let Err(_) = fs::File::create(&tmp.path().join("file.png")) { - panic!("Could not create file.png") - } - if let Err(_) = fs::create_dir(&tmp.path().join("sub_dir")) { - panic!("Could not create sub_dir") - } - if let Err(_) = fs::File::create(&tmp.path().join("sub_dir/file.png")) { - panic!("Could not create sub_dir/file.png") - } - if let Err(_) = fs::create_dir(&tmp.path().join("sub_dir_exists")) { - panic!("Could not create sub_dir_exists") - } - if let Err(_) = fs::File::create(&tmp.path().join("sub_dir_exists/file.txt")) { - panic!("Could not create sub_dir_exists/file.txt") - } - - // Create output dir - if let Err(_) = fs::create_dir(&tmp.path().join("output")) { - panic!("Could not create output") - } - if let Err(_) = fs::create_dir(&tmp.path().join("output/sub_dir_exists")) { - panic!("Could not create output/sub_dir_exists") - } - - match copy_files_except_ext(&tmp.path(), &tmp.path().join("output"), true, &["md"]) { - Err(e) => panic!("Error while executing the function:\n{:?}", e), - Ok(_) => {}, - } - - // Check if the correct files where created - if !(&tmp.path().join("output/file.txt")).exists() { - panic!("output/file.txt should exist") - } - if (&tmp.path().join("output/file.md")).exists() { - panic!("output/file.md should not exist") - } - if !(&tmp.path().join("output/file.png")).exists() { - panic!("output/file.png should exist") - } - if !(&tmp.path().join("output/sub_dir/file.png")).exists() { - panic!("output/sub_dir/file.png should exist") - } - if !(&tmp.path().join("output/sub_dir_exists/file.txt")).exists() { - panic!("output/sub_dir/file.png should exist") - } - - } -} From ca718b3d782d949b7a34b462813cb7e3d7ec4d2d Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Wed, 18 Jan 2017 18:11:30 +0000 Subject: [PATCH 39/46] link in custom.css if the user has it --- data/_html-template/_layouts/page.hbs | 1 + src/renderer/html_handlebars/hbs_renderer.rs | 84 ++++++++++++------- .../html_handlebars/helpers/customcss.rs | 25 ++++++ src/renderer/html_handlebars/helpers/mod.rs | 1 + 4 files changed, 81 insertions(+), 30 deletions(-) create mode 100644 src/renderer/html_handlebars/helpers/customcss.rs diff --git a/data/_html-template/_layouts/page.hbs b/data/_html-template/_layouts/page.hbs index d4b3094195..2be1d3e9e5 100644 --- a/data/_html-template/_layouts/page.hbs +++ b/data/_html-template/_layouts/page.hbs @@ -15,6 +15,7 @@ + {{#customcss}}{{/customcss}} diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index 20d441511b..275ac85656 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -136,29 +136,27 @@ impl Renderer for HtmlHandlebars { let translation_indexes = book_project.translation_index_links(); - // Render the chapters of each book - for (key, book) in &book_project.translations { + let first_path_that_exists = |paths: &Vec| -> Option { + for p in paths.iter() { + if p.exists() { + return Some(PathBuf::from(p)); + } + } + None + }; + { // Look for the page template in these paths - let mut tmpl_paths: Vec = vec![]; + let mut search_paths: Vec = vec![]; // default scheme: assets/_html-template/_layouts/page.hbs - tmpl_paths.push(book_project.get_template_dir().join("_layouts").join("page.hbs")); + search_paths.push(book_project.get_template_dir().join("_layouts").join("page.hbs")); // maybe the user doesn't use _layouts folder: assets/_html-template/page.hbs - tmpl_paths.push(book_project.get_template_dir().join("page.hbs")); + search_paths.push(book_project.get_template_dir().join("page.hbs")); // also look for index.hbs which was the template name in v0.0.15 - tmpl_paths.push(book_project.get_template_dir().join("index.hbs")); + search_paths.push(book_project.get_template_dir().join("index.hbs")); - let first_path_that_exists = |paths: &Vec| -> Option { - for p in paths.iter() { - if p.exists() { - return Some(PathBuf::from(p)); - } - } - None - }; - - let s = if let Some(p) = first_path_that_exists(&tmpl_paths) { + let s = if let Some(p) = first_path_that_exists(&search_paths) { try!(utils::fs::file_to_string(&p)) } else { try!(utils::fs::get_data_file("data/_html-template/_layouts/page.hbs")) @@ -167,14 +165,36 @@ impl Renderer for HtmlHandlebars { // Register template debug!("[*]: Register handlebars template"); try!(handlebars.register_template_string("page", s)); + } + + // Register helpers + debug!("[*]: Register handlebars helpers"); + handlebars.register_helper("toc", Box::new(helpers::toc::RenderToc)); + handlebars.register_helper("previous", Box::new(helpers::navigation::previous)); + handlebars.register_helper("next", Box::new(helpers::navigation::next)); + handlebars.register_helper("translation-links", Box::new(helpers::translations::TranslationLinksHelper)); + handlebars.register_helper("translation-indexes", Box::new(helpers::translations::TranslationIndexesHelper)); + handlebars.register_helper("customcss", Box::new(helpers::customcss::CustomCssHelper)); + + let mut custom_css_path: Option = None; + { + // See if the user has a custom.css + let mut search_paths: Vec = vec![]; + + search_paths.push(book_project.get_project_root().join("assets").join("css").join("custom.css")); + search_paths.push(book_project.get_project_root().join("assets").join("stylesheets").join("custom.css")); + search_paths.push(book_project.get_project_root().join("assets").join("custom.css")); + + if let Some(p) = first_path_that_exists(&search_paths) { + match p.strip_prefix(&book_project.get_project_root().join("assets")) { + Ok(x) => { custom_css_path = Some(PathBuf::from(x)); }, + Err(_) => {}, + } + } + } - // Register helpers - debug!("[*]: Register handlebars helpers"); - handlebars.register_helper("toc", Box::new(helpers::toc::RenderToc)); - handlebars.register_helper("previous", Box::new(helpers::navigation::previous)); - handlebars.register_helper("next", Box::new(helpers::navigation::next)); - handlebars.register_helper("translation-links", Box::new(helpers::translations::TranslationLinksHelper)); - handlebars.register_helper("translation-indexes", Box::new(helpers::translations::TranslationIndexesHelper)); + // Render the chapters of each book + for (key, book) in &book_project.translations { // Check if book's dest directory exists @@ -206,7 +226,7 @@ impl Renderer for HtmlHandlebars { // almost the same as process_chapter(), but we have to // manipulate path_to_root in data and rendered_path - let mut data = try!(make_data(&book, &chapter, &translation_indexes, &book_project.livereload_script)); + let mut data = try!(make_data(&book, &chapter, &translation_indexes, &book_project.livereload_script, &custom_css_path)); data.remove("path_to_root"); data.insert("path_to_root".to_owned(), "".to_json()); @@ -231,7 +251,7 @@ impl Renderer for HtmlHandlebars { } // Render a file for every entry in the book - try!(self.process_items(&book.toc, &book, &translation_indexes, &book_project.livereload_script, &handlebars)); + try!(self.process_items(&book.toc, &book, &translation_indexes, &book_project.livereload_script, &custom_css_path, &handlebars)); // Write print.html if let Some(content) = self.collect_print_content_markdown(&book.toc, &book) { @@ -241,7 +261,7 @@ impl Renderer for HtmlHandlebars { chapter.set_dest_path(PathBuf::from("print.html")); chapter.content = Some(content); - try!(self.process_chapter(&chapter, &book, &None, &None, &handlebars)); + try!(self.process_chapter(&chapter, &book, &None, &None, &custom_css_path, &handlebars)); } } @@ -256,6 +276,7 @@ impl HtmlHandlebars { book: &Book, translation_indexes: &Option>, livereload_script: &Option, + custom_css_path: &Option, handlebars: &Handlebars) -> Result<(), Box> { @@ -265,11 +286,11 @@ impl HtmlHandlebars { TocItem::Unnumbered(ref i) | TocItem::Unlisted(ref i) => { if let Some(_) = i.chapter.get_dest_path() { - try!(self.process_chapter(&i.chapter, book, translation_indexes, livereload_script, handlebars)); + try!(self.process_chapter(&i.chapter, book, translation_indexes, livereload_script, custom_css_path, handlebars)); } if let Some(ref subs) = i.sub_items { - try!(self.process_items(&subs, book, translation_indexes, livereload_script, handlebars)); + try!(self.process_items(&subs, book, translation_indexes, livereload_script, custom_css_path, handlebars)); } }, @@ -316,10 +337,11 @@ impl HtmlHandlebars { book: &Book, translation_indexes: &Option>, livereload_script: &Option, + custom_css_path: &Option, handlebars: &Handlebars) -> Result<(), Box> { - let data = try!(make_data(book, chapter, translation_indexes, livereload_script)); + let data = try!(make_data(book, chapter, translation_indexes, livereload_script, custom_css_path)); // Render the handlebars template with the data debug!("[*]: Render template"); @@ -352,7 +374,8 @@ impl HtmlHandlebars { fn make_data(book: &Book, chapter: &Chapter, translation_indexes: &Option>, - livereload_script: &Option) + livereload_script: &Option, + custom_css_path: &Option) -> Result, Box> { debug!("[fn]: make_data"); @@ -365,6 +388,7 @@ fn make_data(book: &Book, data.insert("page-title".to_owned(), format!("{} - {}", chapter.title, book.config.title).to_json()); data.insert("chapter-title".to_owned(), chapter.title.to_json()); data.insert("description".to_owned(), book.config.description.to_json()); + data.insert("custom-css-path".to_owned(), custom_css_path.to_json()); if let Some(ref x) = *livereload_script { data.insert("livereload".to_owned(), x.to_json()); diff --git a/src/renderer/html_handlebars/helpers/customcss.rs b/src/renderer/html_handlebars/helpers/customcss.rs new file mode 100644 index 0000000000..cfd937b91e --- /dev/null +++ b/src/renderer/html_handlebars/helpers/customcss.rs @@ -0,0 +1,25 @@ +use std::path::Path; +use std::collections::{VecDeque, BTreeMap}; + +use serde_json; +use handlebars::{Handlebars, HelperDef, RenderError, RenderContext, Helper, Context}; + +#[derive(Clone, Copy)] +pub struct CustomCssHelper; + +impl HelperDef for CustomCssHelper { + fn call(&self, c: &Context, _h: &Helper, _: &Handlebars, rc: &mut RenderContext) -> Result<(), RenderError> { + + let data = c.navigate(rc.get_path(), &VecDeque::new(), "custom-css-path"); + if let Ok(custom_css_path) = serde_json::from_str::(&data.to_string()) { + if custom_css_path.len() == 0 { + return Ok(()); + } + + let p = custom_css_path.replace("\"", ""); + try!(rc.writer.write(format!("", p).as_bytes())); + } + + Ok(()) + } +} diff --git a/src/renderer/html_handlebars/helpers/mod.rs b/src/renderer/html_handlebars/helpers/mod.rs index 9d2c70b8a8..de75262543 100644 --- a/src/renderer/html_handlebars/helpers/mod.rs +++ b/src/renderer/html_handlebars/helpers/mod.rs @@ -2,3 +2,4 @@ pub mod navigation; pub mod toc; pub mod playpen; pub mod translations; +pub mod customcss; From c2ff0c6b15b5c51c2f09e1ab6c75c06b9db8b403 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Thu, 19 Jan 2017 17:08:07 +0000 Subject: [PATCH 40/46] catch up with changes in master --- Cargo.toml | 3 +- README.md | 14 +- book-example/src/cli/build.md | 9 + book-example/src/cli/init.md | 2 +- book-example/src/cli/serve.md | 11 +- book-example/src/cli/watch.md | 8 + book-example/src/format/theme/index-hbs.md | 3 +- .../_html-template/_layouts/page.hbs | 0 .../_html-template/_stylus/book.styl | 0 .../_html-template/_stylus/general.styl | 0 .../_stylus/highlightjs-light.styl | 0 .../_stylus/highlightjs-tomorrow-night.styl | 0 .../_html-template/_stylus/highlightjs.styl | 0 .../_html-template/_stylus/menu.styl | 0 .../_html-template/_stylus/nav-icons.styl | 0 .../_html-template/_stylus/page.styl | 0 .../_html-template/_stylus/print.styl | 0 .../_html-template/_stylus/sidebar.styl | 0 .../_html-template/_stylus/theme-popup.styl | 0 .../_html-template/_stylus/themes/base.styl | 0 .../_html-template/_stylus/themes/coal.styl | 0 .../_html-template/_stylus/themes/index.styl | 0 .../_html-template/_stylus/themes/light.styl | 0 .../_html-template/_stylus/themes/navy.styl | 0 .../_html-template/_stylus/themes/rust.styl | 0 .../_html-template/_stylus/variables.styl | 0 data/{ => assets}/_html-template/css/book.css | 0 .../_html-template/css/font-awesome.min.css | 0 .../_html-template/fonts/FontAwesome.otf | Bin .../fonts/fontawesome-webfont.eot | Bin .../fonts/fontawesome-webfont.svg | 0 .../fonts/fontawesome-webfont.ttf | Bin .../fonts/fontawesome-webfont.woff | Bin .../fonts/fontawesome-webfont.woff2 | Bin .../_html-template/images/favicon.png | Bin data/{ => assets}/_html-template/js/book.js | 0 .../_html-template/js/highlight.js | 0 .../_html-template/js/jquery-2.1.4.min.js | 0 data/book-init/book.toml | 2 + data/book-init/src/SUMMARY.md | 8 + data/book-init/src/first-chapter.md | 8 + data/book-init/src/glossary.md | 7 + data/book-init/src/introduction.md | 1 + src/bin/mdbook.rs | 223 ++++++++++++------ src/book/book.rs | 4 +- src/book/bookconfig.rs | 5 - src/book/chapter.rs | 15 +- src/book/mod.rs | 72 +++--- src/lib.rs | 2 +- src/renderer/html_handlebars/hbs_renderer.rs | 57 +++-- .../html_handlebars/helpers/customcss.rs | 3 +- .../html_handlebars/helpers/translations.rs | 1 - src/renderer/mod.rs | 13 +- src/tests/bookconfig_test.rs | 3 +- src/tests/chapter_test.rs | 10 +- src/tests/fs_test.rs | 38 ++- src/tests/hbs_renderer_multilang.rs | 8 +- src/tests/hbs_renderer_test.rs | 16 +- src/tests/mdbook_test.rs | 6 +- src/tests/summary_test.rs | 4 +- src/tests/toc_test.rs | 3 +- src/tests/utils_test.rs | 5 +- src/utils/fs.rs | 24 +- src/utils/mod.rs | 1 - 64 files changed, 360 insertions(+), 229 deletions(-) rename data/{ => assets}/_html-template/_layouts/page.hbs (100%) rename data/{ => assets}/_html-template/_stylus/book.styl (100%) rename data/{ => assets}/_html-template/_stylus/general.styl (100%) rename data/{ => assets}/_html-template/_stylus/highlightjs-light.styl (100%) rename data/{ => assets}/_html-template/_stylus/highlightjs-tomorrow-night.styl (100%) rename data/{ => assets}/_html-template/_stylus/highlightjs.styl (100%) rename data/{ => assets}/_html-template/_stylus/menu.styl (100%) rename data/{ => assets}/_html-template/_stylus/nav-icons.styl (100%) rename data/{ => assets}/_html-template/_stylus/page.styl (100%) rename data/{ => assets}/_html-template/_stylus/print.styl (100%) rename data/{ => assets}/_html-template/_stylus/sidebar.styl (100%) rename data/{ => assets}/_html-template/_stylus/theme-popup.styl (100%) rename data/{ => assets}/_html-template/_stylus/themes/base.styl (100%) rename data/{ => assets}/_html-template/_stylus/themes/coal.styl (100%) rename data/{ => assets}/_html-template/_stylus/themes/index.styl (100%) rename data/{ => assets}/_html-template/_stylus/themes/light.styl (100%) rename data/{ => assets}/_html-template/_stylus/themes/navy.styl (100%) rename data/{ => assets}/_html-template/_stylus/themes/rust.styl (100%) rename data/{ => assets}/_html-template/_stylus/variables.styl (100%) rename data/{ => assets}/_html-template/css/book.css (100%) rename data/{ => assets}/_html-template/css/font-awesome.min.css (100%) rename data/{ => assets}/_html-template/fonts/FontAwesome.otf (100%) rename data/{ => assets}/_html-template/fonts/fontawesome-webfont.eot (100%) rename data/{ => assets}/_html-template/fonts/fontawesome-webfont.svg (100%) rename data/{ => assets}/_html-template/fonts/fontawesome-webfont.ttf (100%) rename data/{ => assets}/_html-template/fonts/fontawesome-webfont.woff (100%) rename data/{ => assets}/_html-template/fonts/fontawesome-webfont.woff2 (100%) rename data/{ => assets}/_html-template/images/favicon.png (100%) rename data/{ => assets}/_html-template/js/book.js (100%) rename data/{ => assets}/_html-template/js/highlight.js (100%) rename data/{ => assets}/_html-template/js/jquery-2.1.4.min.js (100%) create mode 100644 data/book-init/book.toml create mode 100644 data/book-init/src/SUMMARY.md create mode 100644 data/book-init/src/first-chapter.md create mode 100644 data/book-init/src/glossary.md create mode 100644 data/book-init/src/introduction.md diff --git a/Cargo.toml b/Cargo.toml index ffcf0a9ac5..73f72a8d01 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,11 +28,12 @@ glob = "0.2" log = "0.3" env_logger = "0.3" toml = { version = "0.2", features = ["serde"] } +open = "1.1" phf = "0.7" includedir = "0.2" # Watch feature -notify = { version = "2.5.5", optional = true } +notify = { version = "3.0", optional = true } time = { version = "0.1.34", optional = true } crossbeam = { version = "0.2.8", optional = true } diff --git a/README.md b/README.md index 3a553f0f71..0fd2b41b2f 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ -mdBook is a utility to create modern online books from markdown files. +mdBook is a utility to create modern online books from Markdown files. **This project is still evolving.** See [#90](https://github.com/azerupi/mdBook/issues/90) @@ -29,7 +29,7 @@ See [#90](https://github.com/azerupi/mdBook/issues/90) ## What does it look like? -The [**Documentation**](http://azerupi.github.io/mdBook/) for mdBook has been written in markdown and is using mdBook to generate the online book-like website you can read. The documentation uses the latest version on github and showcases the available features. +The [**Documentation**](http://azerupi.github.io/mdBook/) for mdBook has been written in Markdown and is using mdBook to generate the online book-like website you can read. The documentation uses the latest version on GitHub and showcases the available features. ## Installation @@ -47,12 +47,12 @@ There are multiple ways to install mdBook. This will download and compile mdBook for you, the only thing left to do is to add the Cargo bin directory to your `PATH`. 3. **From Git** - The version published to Crates.io will ever so slightly be behind the version hosted here on Github. If you need the latest version you can build the git version of mdBook yourself. Cargo makes this ***super easy***! + The version published to crates.io will ever so slightly be behind the version hosted here on GitHub. If you need the latest version you can build the git version of mdBook yourself. Cargo makes this ***super easy***! ``` cargo install --git https://github.com/azerupi/mdBook.git ``` - Again, make sure to add the Cargo bin directory to your `PATH` + Again, make sure to add the Cargo bin directory to your `PATH`. 4. **For Contributions** If you want to contribute to mdBook you will have to clone the repository on your local machine: @@ -74,7 +74,7 @@ There are multiple ways to install mdBook. mdBook will primaraly be used as a command line tool, even though it exposes all its functionality as a Rust crate for integration in other projects. -Here are the main commands you will want to run, for a more exhaustive explanation, check out the [documentation](http://azerupi.github.io/mdBook/). +Here are the main commands you will want to run. For a more exhaustive explanation, check out the [documentation](http://azerupi.github.io/mdBook/). - `mdbook init` @@ -106,7 +106,7 @@ Here are the main commands you will want to run, for a more exhaustive explanati ### As a library -Aside from the command line interface, this crate can also be used as a library. This means that you could integrate it in an existing project, like a web-app for example. Since the command line interface is just a wrapper around the library functionality, when you use this crate as a library you have full access to all the functionality of the command line interface with and easy to use API and more! +Aside from the command line interface, this crate can also be used as a library. This means that you could integrate it in an existing project, like a web-app for example. Since the command line interface is just a wrapper around the library functionality, when you use this crate as a library you have full access to all the functionality of the command line interface with an easy to use API and more! See the [Documentation](http://azerupi.github.io/mdBook/lib/lib.html) and the [API docs](http://azerupi.github.io/mdBook/mdbook/index.html) for more information. @@ -123,4 +123,4 @@ You can pick any issue you want to work on. Usually it's a good idea to ask if s ## License -All the code is released under the ***Mozilla Public License v2.0***, for more information take a look at the [LICENSE](LICENSE) file +All the code is released under the ***Mozilla Public License v2.0***, for more information take a look at the [LICENSE](LICENSE) file. diff --git a/book-example/src/cli/build.md b/book-example/src/cli/build.md index 0d17e60d9d..0c296541a5 100644 --- a/book-example/src/cli/build.md +++ b/book-example/src/cli/build.md @@ -21,6 +21,15 @@ current working directory. mdbook build path/to/book ``` +#### --open + +When you use the `--open` (`-o`) option, mdbook will open the rendered book in +your default web browser after building it. + +#### --dest-dir + +The `--dest-dir` (`-d`) option allows you to change the output directory for your book. + ------------------- ***note:*** *make sure to run the build command in the root directory and not in the source directory* diff --git a/book-example/src/cli/init.md b/book-example/src/cli/init.md index a782369bb1..43d1ae02d3 100644 --- a/book-example/src/cli/init.md +++ b/book-example/src/cli/init.md @@ -22,7 +22,7 @@ configuration files, etc. - The `book` directory is where your book is rendered. All the output is ready to be uploaded to a server to be seen by your audience. -- The `SUMMARY.md` file is the most important file, it's the skeleton of your book and is discussed in more detail in another [chapter](../format/summary.html). +- The `SUMMARY.md` file is the most important file, it's the skeleton of your book and is discussed in more detail in another [chapter](format/summary.html). #### Tip & Trick: Hidden Feature When a `SUMMARY.md` file already exists, the `init` command will first parse it and generate the missing files according to the paths used in the `SUMMARY.md`. This allows you to think and create the whole structure of your book and then let mdBook generate it for you. diff --git a/book-example/src/cli/serve.md b/book-example/src/cli/serve.md index 2357dc891f..e4578c999e 100644 --- a/book-example/src/cli/serve.md +++ b/book-example/src/cli/serve.md @@ -26,8 +26,15 @@ mdbook server path/to/book -p 8000 -i 127.0.0.1 -a 192.168.1.100 If you were to want live reloading for this you would need to proxy the websocket calls through nginx as well from `192.168.1.100:` to `127.0.0.1:`. The `-w` flag allows for the websocket port to be configured. +#### --open + +When you use the `--open` (`-o`) option, mdbook will open the book in your +your default web browser after starting the server. + +#### --dest-dir + +The `--dest-dir` (`-d`) option allows you to change the output directory for your book. + ----- ***note:*** *the `serve` command has not gotten a lot of testing yet, there could be some rough edges. If you discover a problem, please report it [on Github](https://github.com/azerupi/mdBook/issues)* - -***note***: diff --git a/book-example/src/cli/watch.md b/book-example/src/cli/watch.md index ad130c786b..8b11047609 100644 --- a/book-example/src/cli/watch.md +++ b/book-example/src/cli/watch.md @@ -12,6 +12,14 @@ current working directory. mdbook watch path/to/book ``` +#### --open + +When you use the `--open` (`-o`) option, mdbook will open the rendered book in +your default web browser. + +#### --dest-dir + +The `--dest-dir` (`-d`) option allows you to change the output directory for your book. ----- diff --git a/book-example/src/format/theme/index-hbs.md b/book-example/src/format/theme/index-hbs.md index e509565a89..2ffae757a9 100644 --- a/book-example/src/format/theme/index-hbs.md +++ b/book-example/src/format/theme/index-hbs.md @@ -20,8 +20,9 @@ Here is a list of the properties that are exposed: - ***language*** Language of the book in the form `en`. To use in \ for example. At the moment it is hardcoded. - ***title*** Title of the book, as specified in `book.toml` - - ***path*** Relative path to the original markdown file from the source directory + +- ***chapter_title*** Title of the current chapter, as listed in `SUMMARY.md` - ***content*** This is the rendered markdown. - ***path_to_root*** This is a path containing exclusively `../`'s that points to the root of the book from the current file. Since the original directory structure is maintained, it is useful to prepend relative links with this `path_to_root`. diff --git a/data/_html-template/_layouts/page.hbs b/data/assets/_html-template/_layouts/page.hbs similarity index 100% rename from data/_html-template/_layouts/page.hbs rename to data/assets/_html-template/_layouts/page.hbs diff --git a/data/_html-template/_stylus/book.styl b/data/assets/_html-template/_stylus/book.styl similarity index 100% rename from data/_html-template/_stylus/book.styl rename to data/assets/_html-template/_stylus/book.styl diff --git a/data/_html-template/_stylus/general.styl b/data/assets/_html-template/_stylus/general.styl similarity index 100% rename from data/_html-template/_stylus/general.styl rename to data/assets/_html-template/_stylus/general.styl diff --git a/data/_html-template/_stylus/highlightjs-light.styl b/data/assets/_html-template/_stylus/highlightjs-light.styl similarity index 100% rename from data/_html-template/_stylus/highlightjs-light.styl rename to data/assets/_html-template/_stylus/highlightjs-light.styl diff --git a/data/_html-template/_stylus/highlightjs-tomorrow-night.styl b/data/assets/_html-template/_stylus/highlightjs-tomorrow-night.styl similarity index 100% rename from data/_html-template/_stylus/highlightjs-tomorrow-night.styl rename to data/assets/_html-template/_stylus/highlightjs-tomorrow-night.styl diff --git a/data/_html-template/_stylus/highlightjs.styl b/data/assets/_html-template/_stylus/highlightjs.styl similarity index 100% rename from data/_html-template/_stylus/highlightjs.styl rename to data/assets/_html-template/_stylus/highlightjs.styl diff --git a/data/_html-template/_stylus/menu.styl b/data/assets/_html-template/_stylus/menu.styl similarity index 100% rename from data/_html-template/_stylus/menu.styl rename to data/assets/_html-template/_stylus/menu.styl diff --git a/data/_html-template/_stylus/nav-icons.styl b/data/assets/_html-template/_stylus/nav-icons.styl similarity index 100% rename from data/_html-template/_stylus/nav-icons.styl rename to data/assets/_html-template/_stylus/nav-icons.styl diff --git a/data/_html-template/_stylus/page.styl b/data/assets/_html-template/_stylus/page.styl similarity index 100% rename from data/_html-template/_stylus/page.styl rename to data/assets/_html-template/_stylus/page.styl diff --git a/data/_html-template/_stylus/print.styl b/data/assets/_html-template/_stylus/print.styl similarity index 100% rename from data/_html-template/_stylus/print.styl rename to data/assets/_html-template/_stylus/print.styl diff --git a/data/_html-template/_stylus/sidebar.styl b/data/assets/_html-template/_stylus/sidebar.styl similarity index 100% rename from data/_html-template/_stylus/sidebar.styl rename to data/assets/_html-template/_stylus/sidebar.styl diff --git a/data/_html-template/_stylus/theme-popup.styl b/data/assets/_html-template/_stylus/theme-popup.styl similarity index 100% rename from data/_html-template/_stylus/theme-popup.styl rename to data/assets/_html-template/_stylus/theme-popup.styl diff --git a/data/_html-template/_stylus/themes/base.styl b/data/assets/_html-template/_stylus/themes/base.styl similarity index 100% rename from data/_html-template/_stylus/themes/base.styl rename to data/assets/_html-template/_stylus/themes/base.styl diff --git a/data/_html-template/_stylus/themes/coal.styl b/data/assets/_html-template/_stylus/themes/coal.styl similarity index 100% rename from data/_html-template/_stylus/themes/coal.styl rename to data/assets/_html-template/_stylus/themes/coal.styl diff --git a/data/_html-template/_stylus/themes/index.styl b/data/assets/_html-template/_stylus/themes/index.styl similarity index 100% rename from data/_html-template/_stylus/themes/index.styl rename to data/assets/_html-template/_stylus/themes/index.styl diff --git a/data/_html-template/_stylus/themes/light.styl b/data/assets/_html-template/_stylus/themes/light.styl similarity index 100% rename from data/_html-template/_stylus/themes/light.styl rename to data/assets/_html-template/_stylus/themes/light.styl diff --git a/data/_html-template/_stylus/themes/navy.styl b/data/assets/_html-template/_stylus/themes/navy.styl similarity index 100% rename from data/_html-template/_stylus/themes/navy.styl rename to data/assets/_html-template/_stylus/themes/navy.styl diff --git a/data/_html-template/_stylus/themes/rust.styl b/data/assets/_html-template/_stylus/themes/rust.styl similarity index 100% rename from data/_html-template/_stylus/themes/rust.styl rename to data/assets/_html-template/_stylus/themes/rust.styl diff --git a/data/_html-template/_stylus/variables.styl b/data/assets/_html-template/_stylus/variables.styl similarity index 100% rename from data/_html-template/_stylus/variables.styl rename to data/assets/_html-template/_stylus/variables.styl diff --git a/data/_html-template/css/book.css b/data/assets/_html-template/css/book.css similarity index 100% rename from data/_html-template/css/book.css rename to data/assets/_html-template/css/book.css diff --git a/data/_html-template/css/font-awesome.min.css b/data/assets/_html-template/css/font-awesome.min.css similarity index 100% rename from data/_html-template/css/font-awesome.min.css rename to data/assets/_html-template/css/font-awesome.min.css diff --git a/data/_html-template/fonts/FontAwesome.otf b/data/assets/_html-template/fonts/FontAwesome.otf similarity index 100% rename from data/_html-template/fonts/FontAwesome.otf rename to data/assets/_html-template/fonts/FontAwesome.otf diff --git a/data/_html-template/fonts/fontawesome-webfont.eot b/data/assets/_html-template/fonts/fontawesome-webfont.eot similarity index 100% rename from data/_html-template/fonts/fontawesome-webfont.eot rename to data/assets/_html-template/fonts/fontawesome-webfont.eot diff --git a/data/_html-template/fonts/fontawesome-webfont.svg b/data/assets/_html-template/fonts/fontawesome-webfont.svg similarity index 100% rename from data/_html-template/fonts/fontawesome-webfont.svg rename to data/assets/_html-template/fonts/fontawesome-webfont.svg diff --git a/data/_html-template/fonts/fontawesome-webfont.ttf b/data/assets/_html-template/fonts/fontawesome-webfont.ttf similarity index 100% rename from data/_html-template/fonts/fontawesome-webfont.ttf rename to data/assets/_html-template/fonts/fontawesome-webfont.ttf diff --git a/data/_html-template/fonts/fontawesome-webfont.woff b/data/assets/_html-template/fonts/fontawesome-webfont.woff similarity index 100% rename from data/_html-template/fonts/fontawesome-webfont.woff rename to data/assets/_html-template/fonts/fontawesome-webfont.woff diff --git a/data/_html-template/fonts/fontawesome-webfont.woff2 b/data/assets/_html-template/fonts/fontawesome-webfont.woff2 similarity index 100% rename from data/_html-template/fonts/fontawesome-webfont.woff2 rename to data/assets/_html-template/fonts/fontawesome-webfont.woff2 diff --git a/data/_html-template/images/favicon.png b/data/assets/_html-template/images/favicon.png similarity index 100% rename from data/_html-template/images/favicon.png rename to data/assets/_html-template/images/favicon.png diff --git a/data/_html-template/js/book.js b/data/assets/_html-template/js/book.js similarity index 100% rename from data/_html-template/js/book.js rename to data/assets/_html-template/js/book.js diff --git a/data/_html-template/js/highlight.js b/data/assets/_html-template/js/highlight.js similarity index 100% rename from data/_html-template/js/highlight.js rename to data/assets/_html-template/js/highlight.js diff --git a/data/_html-template/js/jquery-2.1.4.min.js b/data/assets/_html-template/js/jquery-2.1.4.min.js similarity index 100% rename from data/_html-template/js/jquery-2.1.4.min.js rename to data/assets/_html-template/js/jquery-2.1.4.min.js diff --git a/data/book-init/book.toml b/data/book-init/book.toml new file mode 100644 index 0000000000..628d6842c2 --- /dev/null +++ b/data/book-init/book.toml @@ -0,0 +1,2 @@ +title = "An Empty Canvas" +author = "The Author" diff --git a/data/book-init/src/SUMMARY.md b/data/book-init/src/SUMMARY.md new file mode 100644 index 0000000000..d3f3e163ed --- /dev/null +++ b/data/book-init/src/SUMMARY.md @@ -0,0 +1,8 @@ +# Title + +[Introduction](introduction.md) + +- [First Chapter](first-chapter.md) +- [Second Chapter]() + +[Glossary](glossary.md) diff --git a/data/book-init/src/first-chapter.md b/data/book-init/src/first-chapter.md new file mode 100644 index 0000000000..639f365ba8 --- /dev/null +++ b/data/book-init/src/first-chapter.md @@ -0,0 +1,8 @@ +# First Chapter + +> first cicada – +> for a quick song sighted +> on the post +> +> *Issa, 1816* + diff --git a/data/book-init/src/glossary.md b/data/book-init/src/glossary.md new file mode 100644 index 0000000000..ea8297e7bf --- /dev/null +++ b/data/book-init/src/glossary.md @@ -0,0 +1,7 @@ +# Glossary + +**ci·ca·da** (sĭ-kā′də, -kä′-) *n. pl.* ci·ca·das or ci·ca·dae (-dē′) + +Any of various insects chiefly of the family Cicadidae, having a broad head, +membranous wings, and in the male a pair of resonating organs that produce a +characteristic high-pitched, droning sound. diff --git a/data/book-init/src/introduction.md b/data/book-init/src/introduction.md new file mode 100644 index 0000000000..e10b99d013 --- /dev/null +++ b/data/book-init/src/introduction.md @@ -0,0 +1 @@ +# Introduction diff --git a/src/bin/mdbook.rs b/src/bin/mdbook.rs index 024984342d..ebed6a7176 100644 --- a/src/bin/mdbook.rs +++ b/src/bin/mdbook.rs @@ -5,6 +5,7 @@ extern crate clap; #[macro_use] extern crate log; extern crate env_logger; +extern crate open; // Dependencies for the Watch feature #[cfg(feature = "watch")] @@ -23,7 +24,9 @@ extern crate staticfile; extern crate ws; use std::env; +use std::fs; use std::error::Error; +use std::ffi::OsStr; use std::io::{self, Write, ErrorKind}; use std::path::{Path, PathBuf}; use std::process::Command; @@ -34,6 +37,8 @@ use clap::{App, ArgMatches, SubCommand, AppSettings}; #[cfg(feature = "watch")] use notify::Watcher; #[cfg(feature = "watch")] +use std::time::Duration; +#[cfg(feature = "watch")] use std::sync::mpsc::channel; use mdbook::MDBook; @@ -57,22 +62,28 @@ fn main() { .subcommand(SubCommand::with_name("init") .about("Create boilerplate structure and files in the directory") // the {n} denotes a newline which will properly aligned in all help messages - .arg_from_usage("[dir] 'A directory for your book{n}(Defaults to Current Directory when ommitted)'") + .arg_from_usage("[dir] 'A directory for your book{n}(Defaults to Current Directory when omitted)'") .arg_from_usage("--copy-assets 'Copies the default assets (css, layout template, etc.) into your project folder'") .arg_from_usage("--force 'skip confirmation prompts'")) .subcommand(SubCommand::with_name("build") .about("Build the book from the markdown files") - .arg_from_usage("[dir] 'A directory for your book{n}(Defaults to Current Directory when ommitted)'")) + .arg_from_usage("-o, --open 'Open the compiled book in a web browser'") + .arg_from_usage("-d, --dest-dir=[dest-dir] 'The output directory for your book{n}(Defaults to ./book when omitted)'") + .arg_from_usage("[dir] 'A directory for your book{n}(Defaults to Current Directory when omitted)'")) .subcommand(SubCommand::with_name("watch") .about("Watch the files for changes") - .arg_from_usage("[dir] 'A directory for your book{n}(Defaults to Current Directory when ommitted)'")) + .arg_from_usage("-o, --open 'Open the compiled book in a web browser'") + .arg_from_usage("-d, --dest-dir=[dest-dir] 'The output directory for your book{n}(Defaults to ./book when omitted)'") + .arg_from_usage("[dir] 'A directory for your book{n}(Defaults to Current Directory when omitted)'")) .subcommand(SubCommand::with_name("serve") .about("Serve the book at http://localhost:3000. Rebuild and reload on change.") - .arg_from_usage("[dir] 'A directory for your book{n}(Defaults to Current Directory when ommitted)'") + .arg_from_usage("[dir] 'A directory for your book{n}(Defaults to Current Directory when omitted)'") + .arg_from_usage("-d, --dest-dir=[dest-dir] 'The output directory for your book{n}(Defaults to ./book when omitted)'") .arg_from_usage("-p, --port=[port] 'Use another port{n}(Defaults to 3000)'") .arg_from_usage("-w, --websocket-port=[ws-port] 'Use another port for the websocket connection (livereload){n}(Defaults to 3001)'") .arg_from_usage("-i, --interface=[interface] 'Interface to listen on{n}(Defaults to localhost)'") - .arg_from_usage("-a, --address=[address] 'Address that the browser can reach the websocket server from{n}(Defaults to the interface addres)'")) + .arg_from_usage("-a, --address=[address] 'Address that the browser can reach the websocket server from{n}(Defaults to the interface addres)'") + .arg_from_usage("-o, --open 'Open the compiled book in a web browser'")) .subcommand(SubCommand::with_name("test") .about("Test that code samples compile")) .get_matches(); @@ -106,10 +117,36 @@ fn confirm() -> bool { } } -// Init command implementation +/// Init command implementation +/// +/// It creates some boilerplate files and directories to get you started with your book. +/// +/// ```text +/// thebook/ +/// ├── book.toml +/// └── src +/// ├── SUMMARY.md +/// ├── first-chapter.md +/// ├── glossary.md +/// └── introduction.md +/// ``` +/// +/// It copies the embedded starter book as stored in data/book-init. fn init(args: &ArgMatches) -> Result<(), Box> { + debug!("[fn]: init"); let book_dir = get_book_dir(args); + + if !book_dir.exists() { + fs::create_dir_all(&book_dir).unwrap(); + info!("{:?} created", &book_dir); + } + + try!(utils::fs::copy_data("data/book-init/*", + "data/book-init/", + vec![], + &book_dir)); + let mut book_project = MDBook::new(&book_dir); book_project.read_config(); @@ -134,8 +171,8 @@ fn init(args: &ArgMatches) -> Result<(), Box> { } // Copy the assets - try!(utils::fs::copy_data("data/**/*", - "data/", + try!(utils::fs::copy_data("data/assets/**/*", + "data/assets/", vec![], &book_project.get_project_root().join("assets"))); @@ -154,6 +191,7 @@ fn init(args: &ArgMatches) -> Result<(), Box> { println!("\nAll done, no errors..."); + debug!("[*]: init done"); Ok(()) } @@ -161,9 +199,18 @@ fn init(args: &ArgMatches) -> Result<(), Box> { fn build(args: &ArgMatches) -> Result<(), Box> { let book_dir = get_book_dir(args); + let mut dest_base: Option = None; + if let Some(p) = args.value_of("dest-dir") { + dest_base = Some(PathBuf::from(p)); + } + // TODO select render format intent when we acutally have different renderers let renderer = HtmlHandlebars::new(); - try!(renderer.build(&book_dir)); + let book_project: MDBook = try!(renderer.build(&book_dir, &dest_base)); + + if args.is_present("open") { + open(book_project.get_dest_base().join("index.html")); + } Ok(()) } @@ -172,22 +219,28 @@ fn build(args: &ArgMatches) -> Result<(), Box> { #[cfg(feature = "watch")] fn watch(args: &ArgMatches) -> Result<(), Box> { let book_dir = get_book_dir(args); - let mut book = MDBook::new(&book_dir); - book.read_config(); - // |event, book| - trigger_on_change(&mut book, |event, _| { - if let Some(path) = event.path { - println!("File changed: {:?}\nBuilding book...\n", path); + let mut dest_base: Option = None; + if let Some(p) = args.value_of("dest-dir") { + dest_base = Some(PathBuf::from(p)); + } - // TODO select render format intent when we acutally have different renderers - let renderer = HtmlHandlebars::new(); - match renderer.build(&book_dir) { - Err(e) => println!("Error while building: {:?}", e), - _ => {}, - } - println!(""); + let renderer = HtmlHandlebars::new(); + let mut book_project: MDBook = try!(renderer.build(&book_dir, &dest_base)); + + if args.is_present("open") { + open(book_project.get_dest_base().join("index.html")); + } + + trigger_on_change(&mut book_project, |path, _| { + println!("File changed: {:?}\nBuilding book...\n", path); + // TODO select render format intent when we acutally have different renderers + let renderer = HtmlHandlebars::new(); + match renderer.build(&book_dir, &dest_base) { + Err(e) => println!("Error while building: {:?}", e), + _ => {}, } + println!(""); }); println!("watch"); @@ -200,8 +253,20 @@ fn serve(args: &ArgMatches) -> Result<(), Box> { const RELOAD_COMMAND: &'static str = "reload"; let book_dir = get_book_dir(args); + + let mut dest_base: Option = None; + if let Some(p) = args.value_of("dest-dir") { + dest_base = Some(PathBuf::from(p)); + } + let mut book = MDBook::new(&book_dir); + book.read_config(); + + if let Some(p) = dest_base { + book.set_dest_base(&p); + } + book.parse_books(); book.link_translations(); @@ -209,6 +274,7 @@ fn serve(args: &ArgMatches) -> Result<(), Box> { let ws_port = args.value_of("ws-port").unwrap_or("3001"); let interface = args.value_of("interface").unwrap_or("localhost"); let public_address = args.value_of("address").unwrap_or(interface); + let open_browser = args.is_present("open"); let address = format!("{}:{}", interface, port); let ws_address = format!("{}:{}", interface, ws_port); @@ -250,16 +316,18 @@ fn serve(args: &ArgMatches) -> Result<(), Box> { println!("\nServing on {}", address); - trigger_on_change(&mut book, move |event, book| { - if let Some(path) = event.path { - println!("File changed: {:?}\nBuilding book...\n", path); - let renderer = HtmlHandlebars::new(); - match renderer.render(&book) { - Err(e) => println!("Error while building: {:?}", e), - _ => broadcaster.send(RELOAD_COMMAND).unwrap(), - } - println!(""); + if open_browser { + open(format!("http://{}", address)); + } + + trigger_on_change(&mut book, move |path, book| { + println!("File changed: {:?}\nBuilding book...\n", path); + let renderer = HtmlHandlebars::new(); + match renderer.render(&book) { + Err(e) => println!("Error while building: {:?}", e), + _ => broadcaster.send(RELOAD_COMMAND).unwrap(), } + println!(""); }); Ok(()) @@ -319,61 +387,64 @@ fn get_book_dir(args: &ArgMatches) -> PathBuf { } } +fn open>(path: P) { + if let Err(e) = open::that(path) { + println!("Error opening web browser: {}", e); + } +} + // Calls the closure when a book source file is changed. This is blocking! #[cfg(feature = "watch")] fn trigger_on_change(book: &mut MDBook, closure: F) -> () - where F: Fn(notify::Event, &mut MDBook) -> () + where F: Fn(&Path, &mut MDBook) -> () { + use notify::RecursiveMode::*; + use notify::DebouncedEvent::*; + // Create a channel to receive the events. let (tx, rx) = channel(); - let w: Result = notify::Watcher::new(tx); - - match w { - Ok(mut watcher) => { - // Add the source directory to the watcher - if let Err(e) = watcher.watch(book.get_src_base()) { - println!("Error while watching {:?}:\n {:?}", book.get_src_base(), e); - ::std::process::exit(0); - }; - - // Add the book.toml or book.json file to the watcher if it exists, - // because it's not located in the source directory - - if let Err(_) = watcher.watch(book.get_project_root().join("book.toml")) { - // do nothing if book.toml is not found - } - - if let Err(_) = watcher.watch(book.get_project_root().join("book.json")) { - // do nothing if book.json is not found - } - - let mut previous_time = time::get_time(); + let mut watcher = match notify::watcher(tx, Duration::from_secs(1)) { + Ok(w) => w, + Err(e) => { + println!("Error while trying to watch the files:\n\n\t{:?}", e); + ::std::process::exit(2); + } + }; - println!("\nListening for changes...\n"); + // Add the source directory to the watcher + if let Err(e) = watcher.watch(book.get_src_base(), Recursive) { + println!("Error while watching {:?}:\n {:?}", book.get_src_base(), e); + ::std::process::exit(2); + }; - loop { - match rx.recv() { - Ok(event) => { - // Skip the event if an event has already been issued in the last second - let time = time::get_time(); - if time - previous_time < time::Duration::seconds(1) { - continue; - } else { - previous_time = time; - } + // Add the book.{json,toml} file to the watcher if it exists, because it's not + // located in the source directory + if let Err(_) = watcher.watch(book.get_project_root().join("book.json"), NonRecursive) { + // do nothing if book.json is not found + } + if let Err(_) = watcher.watch(book.get_project_root().join("book.toml"), NonRecursive) { + // do nothing if book.toml is not found + } - closure(event, book); - }, - Err(e) => { - println!("An error occured: {:?}", e); - }, + println!("\nListening for changes...\n"); + + loop { + match rx.recv() { + Ok(event) => match event { + NoticeWrite(path) | + NoticeRemove(path) | + Create(path) | + Write(path) | + Remove(path) | + Rename(_, path) => { + closure(&path, book); } - } - }, - Err(e) => { - println!("Error while trying to watch the files:\n\n\t{:?}", e); - ::std::process::exit(0); - }, + _ => {} + }, + Err(e) => { + println!("An error occured: {:?}", e); + }, + } } } diff --git a/src/book/book.rs b/src/book/book.rs index 2405c0e1b2..5722e6a607 100644 --- a/src/book/book.rs +++ b/src/book/book.rs @@ -1,6 +1,4 @@ -use std::fs::File; -use std::path::{Path, PathBuf}; - +use std::path::PathBuf; use book::bookconfig::BookConfig; use book::toc::{TocItem, TocContent}; diff --git a/src/book/bookconfig.rs b/src/book/bookconfig.rs index 42f417ca87..633631d722 100644 --- a/src/book/bookconfig.rs +++ b/src/book/bookconfig.rs @@ -1,13 +1,8 @@ extern crate toml; -use std::process::exit; -use std::fs::File; -use std::io::Read; use std::ffi::OsStr; use std::path::{Path, PathBuf}; use std::collections::BTreeMap; -use std::str::FromStr; -use serde_json; use utils; diff --git a/src/book/chapter.rs b/src/book/chapter.rs index 4f8f34c523..17b775927a 100644 --- a/src/book/chapter.rs +++ b/src/book/chapter.rs @@ -4,10 +4,9 @@ extern crate toml; use regex::Regex; use std::ffi::OsStr; -use std::path::{Path, PathBuf}; +use std::path::PathBuf; use std::fs::File; -use std::error::Error; -use std::io::{self, Read}; +use std::io::Read; use std::collections::BTreeMap; use utils; @@ -130,7 +129,7 @@ impl Chapter { debug!("[*] Creating: {:?}", src_path); match create_with_str(src_path, &format!("# {}", self.title)) { Ok(_) => { return Ok(self); }, - Err(e) => { + Err(_) => { return Err(format!("Could not create: {:?}", src_path)); }, } @@ -140,8 +139,12 @@ impl Chapter { match File::open(src_path) { Err(e) => { return Err(format!("Read error: {:?}", e)); }, Ok(mut f) => { - // TODO try! here and return error - f.read_to_string(&mut text); + match f.read_to_string(&mut text) { + Ok(_) => {}, + Err(e) => { + return Err(format!("Error: {:#?}", e)); + }, + } self.content = Some(utils::strip_toml_header(&text)); } } diff --git a/src/book/mod.rs b/src/book/mod.rs index 9108fee079..c62f74c7ae 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -9,8 +9,6 @@ pub mod toc; pub mod chapter; pub use self::book::Book; -use renderer::{Renderer, HtmlHandlebars}; - use self::chapter::TranslationLink; use self::toc::{TocItem, TocContent}; use utils; @@ -19,9 +17,6 @@ use std::env; use std::process::exit; use std::ffi::OsStr; use std::path::{Path, PathBuf}; -use std::fs::{self, File}; -use std::io::Read; -use std::error::Error; use std::collections::{HashMap, BTreeMap}; #[derive(Debug, Clone)] @@ -142,34 +137,6 @@ impl MDBook { MDBook::default().set_project_root(project_root).clone() } - /// `init()` creates some boilerplate files and directories to get you started with your book. - /// - /// ```text - /// book-example/ - /// ├── book - /// └── src - /// ├── chapter_1.md - /// └── SUMMARY.md - /// ``` - /// - /// It uses the paths given as source and output directories and adds a `SUMMARY.md` and a - /// `chapter_1.md` to the source directory. - pub fn init(&mut self) -> Result<(), Box> { - - debug!("[fn]: init"); - - if !self.project_root.exists() { - fs::create_dir_all(&self.project_root).unwrap(); - info!("{:?} created", &self.project_root); - } - - // Read book.toml if exists and populate .translations - self.read_config(); - - debug!("[*]: init done"); - Ok(()) - } - /// Parses the `book.toml` file (if it exists) to extract the configuration parameters. /// The `book.toml` file should be in the root directory of the book project. /// The project root directory is the one specified when creating a new `MDBook` @@ -186,7 +153,6 @@ impl MDBook { /// In this example, `project_root_dir` will be the root directory of our book and is specified in function /// of the current working directory by using a relative path instead of an absolute path. pub fn read_config(&mut self) -> &mut Self { - debug!("[fn]: read_config"); // exit(2) is a clear indication for the user that something is wrong @@ -194,7 +160,7 @@ impl MDBook { // Read book.toml or book.json if exists to a BTreeMap - if Path::new(self.project_root.join("book.toml").as_os_str()).exists() { + if self.project_root.join("book.toml").exists() { debug!("[*]: Reading config"); let text = match utils::fs::file_to_string(&self.project_root.join("book.toml")) { @@ -213,7 +179,7 @@ impl MDBook { } } - } else if Path::new(self.project_root.join("book.json").as_os_str()).exists() { + } else if self.project_root.join("book.json").exists() { debug!("[*]: Reading config"); let text = match utils::fs::file_to_string(&self.project_root.join("book.json")) { @@ -444,6 +410,8 @@ impl MDBook { /// prepare a Vec of default links to point to the index.html of each translation pub fn translation_index_links(&self) -> Option> { + debug!("[fn] translation_index_links()"); + let mut default_links: Vec = vec![]; let mut keys = self.translations.keys() @@ -578,6 +546,22 @@ impl MDBook { } else { self.src_base = path.to_owned(); } + + let a = self.translations.clone(); + let keys = a.keys(); + let is_multilang: bool = keys.clone().count() > 1; + + for key in keys { + if let Some(mut book) = self.translations.get_mut(key) { + if is_multilang { + book.config.src = self.src_base.join(key); + book.config.is_multilang = is_multilang; + } else { + book.config.src = self.src_base.to_owned(); + } + } + } + self } @@ -591,6 +575,22 @@ impl MDBook { } else { self.dest_base = path.to_owned(); } + + let a = self.translations.clone(); + let keys = a.keys(); + let is_multilang: bool = keys.clone().count() > 1; + + for key in keys { + if let Some(mut book) = self.translations.get_mut(key) { + if is_multilang { + book.config.dest = self.dest_base.join(key); + book.config.is_multilang = is_multilang; + } else { + book.config.dest = self.dest_base.to_owned(); + } + } + } + self } diff --git a/src/lib.rs b/src/lib.rs index 4edabaec1c..0c3e3a563c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -29,7 +29,7 @@ //! fn main() { //! let path = PathBuf::from("my-book"); // Path to the book project's root //! let renderer = HtmlHandlebars::new(); -//! try!(renderer.build(&path)); // Build the book +//! try!(renderer.build(&path, &None)); // Build the book //! } //! ``` //! diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index 275ac85656..f65ba064b8 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -4,15 +4,12 @@ use book::{MDBook, Book}; use book::chapter::{Chapter, TranslationLink}; use book::toc::{TocItem, TocContent}; use utils; -use FILES; use std::process::exit; -use std::path::{Path, PathBuf}; -use std::ffi::OsStr; -use std::fs::{self, File}; +use std::path::PathBuf; +use std::fs; use std::error::Error; -use std::io::{self, Read, Write}; -use std::collections::BTreeMap; +use std::io::{self, Write}; use handlebars::Handlebars; @@ -30,13 +27,17 @@ impl HtmlHandlebars { impl Renderer for HtmlHandlebars { /// Prepares the project and calls `render()`. - fn build(&self, project_root: &PathBuf) -> Result<(), Box> { + fn build(&self, project_root: &PathBuf, dest_base: &Option) -> Result> { debug!("[fn]: build"); let mut book_project = MDBook::new(&project_root); book_project.read_config(); + if let Some(p) = dest_base.clone() { + book_project.set_dest_base(&p); + } + if !book_project.get_src_base().exists() { println!("Source folder doesn't exist: {:?}", book_project.get_src_base()); exit(2); @@ -55,11 +56,12 @@ impl Renderer for HtmlHandlebars { } } - Ok(()) + Ok(book_project) } /// Renders the chapters and copies static assets. fn render(&self, book_project: &MDBook) -> Result<(), Box> { + debug!("[fn]: render"); debug!("[*]: Check if book's base output folder exists"); if let Err(_) = fs::create_dir_all(&book_project.get_dest_base()) { @@ -82,11 +84,15 @@ impl Renderer for HtmlHandlebars { let c = a.join("_*"); let exclude_glob = c.to_str().unwrap(); - // anyone wants to catch errors? - utils::fs::copy_files(include_glob, - base, - vec![exclude_glob], - &book_project.get_dest_base()); + // Ignoring all errors. Should try to see which types are worth returning. + + match utils::fs::copy_files(include_glob, + base, + vec![exclude_glob], + &book_project.get_dest_base()) { + Ok(_) => {}, + Err(_) => {}, + } } // Copy template's static assets @@ -118,20 +124,23 @@ impl Renderer for HtmlHandlebars { // ) // } - // anyone wants to catch errors? - utils::fs::copy_files(include_glob, - base, - vec![exclude_glob], - &book_project.get_dest_base()); + // Ignoring all errors. Should try to see which types are worth returning. + match utils::fs::copy_files(include_glob, + base, + vec![exclude_glob], + &book_project.get_dest_base()) { + Ok(_) => {}, + Err(_) => {}, + } } else { - try!(utils::fs::copy_data("data/_html-template/**/*", - "data/_html-template/", - vec!["data/_html-template/_*"], + try!(utils::fs::copy_data("data/assets/_html-template/**/*", + "data/assets/_html-template/", + vec!["data/assets/_html-template/_*"], &book_project.get_dest_base())); } - debug!("[fn]: render"); + debug!("[*]: start rendering"); let mut handlebars = Handlebars::new(); let translation_indexes = book_project.translation_index_links(); @@ -159,7 +168,7 @@ impl Renderer for HtmlHandlebars { let s = if let Some(p) = first_path_that_exists(&search_paths) { try!(utils::fs::file_to_string(&p)) } else { - try!(utils::fs::get_data_file("data/_html-template/_layouts/page.hbs")) + try!(utils::fs::get_data_file("data/assets/_html-template/_layouts/page.hbs")) }; // Register template @@ -194,7 +203,7 @@ impl Renderer for HtmlHandlebars { } // Render the chapters of each book - for (key, book) in &book_project.translations { + for (_, book) in &book_project.translations { // Check if book's dest directory exists diff --git a/src/renderer/html_handlebars/helpers/customcss.rs b/src/renderer/html_handlebars/helpers/customcss.rs index cfd937b91e..6c1a1f4ca1 100644 --- a/src/renderer/html_handlebars/helpers/customcss.rs +++ b/src/renderer/html_handlebars/helpers/customcss.rs @@ -1,5 +1,4 @@ -use std::path::Path; -use std::collections::{VecDeque, BTreeMap}; +use std::collections::VecDeque; use serde_json; use handlebars::{Handlebars, HelperDef, RenderError, RenderContext, Helper, Context}; diff --git a/src/renderer/html_handlebars/helpers/translations.rs b/src/renderer/html_handlebars/helpers/translations.rs index 6d009d911b..4e6038083a 100644 --- a/src/renderer/html_handlebars/helpers/translations.rs +++ b/src/renderer/html_handlebars/helpers/translations.rs @@ -1,4 +1,3 @@ -use std::path::Path; use std::collections::{VecDeque, BTreeMap}; use serde_json; diff --git a/src/renderer/mod.rs b/src/renderer/mod.rs index 1054c8877f..09b4faa432 100644 --- a/src/renderer/mod.rs +++ b/src/renderer/mod.rs @@ -6,20 +6,27 @@ use book::MDBook; use std::error::Error; use std::path::PathBuf; +// TODO refactor dest_base out of the .build() call. It's only here b/c to +// influence the build output with the --dest-dir CLI arg. It is a good +// thing though that .build() encapsulates the steps to prepare the MDBook +// struct for .render(). Maybe give it the CLI args and process them within +// .build(). + pub trait Renderer { /// When the output format is determined (by a CLI argument for example), /// call `.build()` of the selected Renderer implementation. /// /// Constructs an `MDBook` struct given the path of the book project, - /// preparing the project and calling `render()`, doing what is necessary - /// for the particular output format. + /// optionally using a custom output folder (such as when given with + /// `--dest-dir` CLI argument). It prepares the project and calls + /// `render()`, doing what is necessary for the particular output format. /// /// This involves parsing config options from `book.toml` and parsing the /// `SUMMARY.md` of each translation to a nested `Vec`. /// /// Finally it calls `render()` to process the chapters and static assets. - fn build(&self, project_root: &PathBuf) -> Result<(), Box>; + fn build(&self, project_root: &PathBuf, dest_base: &Option) -> Result>; /// Responsible for rendering the chapters and copying static assets. fn render(&self, book_project: &MDBook) -> Result<(), Box>; diff --git a/src/tests/bookconfig_test.rs b/src/tests/bookconfig_test.rs index 35a2c180fd..e47aa767a5 100644 --- a/src/tests/bookconfig_test.rs +++ b/src/tests/bookconfig_test.rs @@ -1,7 +1,6 @@ -#[cfg(test)] +#![cfg(test)] use std::path::PathBuf; - use book::bookconfig::BookConfig; #[test] diff --git a/src/tests/chapter_test.rs b/src/tests/chapter_test.rs index 1a99a734ec..e1bd421e85 100644 --- a/src/tests/chapter_test.rs +++ b/src/tests/chapter_test.rs @@ -1,7 +1,6 @@ -#[cfg(test)] +#![cfg(test)] use std::path::PathBuf; - use book::bookconfig::Author; use book::chapter::Chapter; @@ -11,7 +10,12 @@ fn it_parses_when_exists() { let path = PathBuf::from("at-the-mountains-of-madness.md"); let mut result = Chapter::new("Mountains".to_string(), path.clone()); - result.parse_or_create_using(&src_path); + match result.parse_or_create_using(&src_path) { + Ok(_) => {}, + Err(e) => { + println!("Error: {:#?}", e); + } + } let mut expected = Chapter::new("Mountains".to_string(), path.clone()); diff --git a/src/tests/fs_test.rs b/src/tests/fs_test.rs index a1874358c5..2b11eb1ca3 100644 --- a/src/tests/fs_test.rs +++ b/src/tests/fs_test.rs @@ -1,11 +1,10 @@ -#[cfg(test)] +#![cfg(test)] extern crate tempdir; use std; use std::fs::{self, File}; use std::io::Read; -use std::path::Path; use utils; use utils::fs::copy_files_except_ext; @@ -15,18 +14,21 @@ fn it_copies_data_file() { let dest_base = std::env::temp_dir().join("in tangles of old alleys"); let dest_path = dest_base.join("book.css"); - utils::fs::copy_data_file("data/_html-template/css/books.css", &dest_path); + match utils::fs::copy_data_file("data/assets/_html-template/css/books.css", &dest_path) { + Ok(_) => {}, + Err(e) => { println!("{:#?}", e); } + } let mut file = match File::open(&dest_path) { Ok(f) => f, - Err(e) => { + Err(_) => { println!("Failed to open {:?}", dest_path); return; }, }; let mut content = String::new(); - if let Err(e) = file.read_to_string(&mut content) { + if let Err(_) = file.read_to_string(&mut content) { println!("Failed to read {:?}", dest_path); return; } @@ -34,7 +36,10 @@ fn it_copies_data_file() { assert!(content.as_str().contains("Open Sans")); if dest_base.exists() { - fs::remove_dir_all(dest_base); + match fs::remove_dir_all(dest_base) { + Ok(_) => {}, + Err(e) => { println!("{:#?}", e); }, + } } } @@ -42,9 +47,9 @@ fn it_copies_data_file() { fn it_copies_data_by_pattern() { let dest_base = std::env::temp_dir().join("near the quays"); - if let Err(e) = utils::fs::copy_data("data/_html-template/**/*", - "data/_html-template/", - vec!["data/_html-template/_*"], + if let Err(e) = utils::fs::copy_data("data/assets/_html-template/**/*", + "data/assets/_html-template/", + vec!["data/assets/_html-template/_*"], &dest_base) { println!("Error: {:#?}", e); return; @@ -54,7 +59,10 @@ fn it_copies_data_by_pattern() { assert!(!dest_base.join("_layouts").exists()); if dest_base.exists() { - fs::remove_dir_all(dest_base); + match fs::remove_dir_all(dest_base) { + Ok(_) => {}, + Err(e) => { println!("{:#?}", e); }, + } } } @@ -72,14 +80,20 @@ fn it_doesnt_delete_toplevel_dotfiles() { Ok(_) => {}, } - utils::fs::clean_output_dir(&dest_base); + match utils::fs::clean_output_dir(&dest_base) { + Ok(_) => {}, + Err(e) => { println!("{:#?}", e); } + } assert!(dest_base.exists()); assert!(dest_base.join(".dotfile").exists()); assert!(!dest_base.join("door.html").exists()); if dest_base.exists() { - fs::remove_dir_all(dest_base); + match fs::remove_dir_all(dest_base) { + Ok(_) => {}, + Err(e) => { println!("{:#?}", e); }, + } } } diff --git a/src/tests/hbs_renderer_multilang.rs b/src/tests/hbs_renderer_multilang.rs index cdd7744eb5..c79abdcc92 100644 --- a/src/tests/hbs_renderer_multilang.rs +++ b/src/tests/hbs_renderer_multilang.rs @@ -1,4 +1,4 @@ -#[cfg(test)] +#![cfg(test)] use std::path::{Path, PathBuf}; @@ -11,7 +11,7 @@ fn it_renders_multilanguage_book() { let path = PathBuf::from(".").join("src").join("tests").join("book-wonderland-multilang"); let renderer = HtmlHandlebars::new(); - if let Err(e) = renderer.build(&path) { + if let Err(e) = renderer.build(&path, &None) { panic!("{:#?}", e); } @@ -20,8 +20,8 @@ fn it_renders_multilanguage_book() { proj.parse_books(); let mut book_path: &Path = proj.translations.get("en").unwrap().config.get_dest(); - let mut chapter_path: PathBuf = PathBuf::from("".to_string()); - let mut s: String = String::new(); + let mut chapter_path: PathBuf; + let mut s: String; // Test if index.html in the project dest folder is the main book's first chapter diff --git a/src/tests/hbs_renderer_test.rs b/src/tests/hbs_renderer_test.rs index 1252e99593..ea3105ce96 100644 --- a/src/tests/hbs_renderer_test.rs +++ b/src/tests/hbs_renderer_test.rs @@ -1,4 +1,4 @@ -#[cfg(test)] +#![cfg(test)] use std::path::{Path, PathBuf}; @@ -11,7 +11,7 @@ fn it_renders_html_from_minimal_book() { let path = PathBuf::from(".").join("src").join("tests").join("book-minimal"); let renderer = HtmlHandlebars::new(); - if let Err(e) = renderer.build(&path) { + if let Err(e) = renderer.build(&path, &None) { println!("{:#?}", e); } @@ -20,8 +20,8 @@ fn it_renders_html_from_minimal_book() { proj.parse_books(); let book_path: &Path = proj.translations.get("en").unwrap().config.get_dest(); - let mut chapter_path: PathBuf = PathBuf::from("".to_string()); - let mut s: String = String::new(); + let mut chapter_path: PathBuf; + let mut s: String; // Test if "Library of Babel" was rendered @@ -54,7 +54,7 @@ fn it_copies_local_assets_when_found() { let path = PathBuf::from(".").join("src").join("tests").join("book-minimal-with-assets"); let renderer = HtmlHandlebars::new(); - if let Err(e) = renderer.build(&path) { + if let Err(e) = renderer.build(&path, &None) { println!("{:#?}", e); } @@ -64,13 +64,11 @@ fn it_copies_local_assets_when_found() { let book_path: &Path = proj.translations.get("en").unwrap().config.get_dest(); - let mut chapter_path: PathBuf = PathBuf::from("".to_string()); - let mut s: String = String::new(); // Test if "Library of Babel" was rendered - chapter_path = book_path.join("fictions").join("babel").with_extension("html"); - s = utils::fs::file_to_string(&chapter_path).unwrap(); + let chapter_path = book_path.join("fictions").join("babel").with_extension("html"); + let s = utils::fs::file_to_string(&chapter_path).unwrap(); assert!(s.contains("The Library of Babel")); assert_eq!(book_path.join("css").join("book.css").exists(), true); diff --git a/src/tests/mdbook_test.rs b/src/tests/mdbook_test.rs index 18e2be31d4..8388dc2604 100644 --- a/src/tests/mdbook_test.rs +++ b/src/tests/mdbook_test.rs @@ -1,18 +1,16 @@ -#[cfg(test)] +#![cfg(test)] extern crate toml; use std::process::exit; use std::path::PathBuf; -use serde_json; - use utils; use book::MDBook; use book::book::Book; use book::bookconfig::{BookConfig, Author, Language}; use book::chapter::Chapter; -use book::toc::{TocItem, TocContent}; +use book::toc::TocItem; #[test] fn it_parses_simple_json_config() { diff --git a/src/tests/summary_test.rs b/src/tests/summary_test.rs index 8042fbf33e..16d49eb262 100644 --- a/src/tests/summary_test.rs +++ b/src/tests/summary_test.rs @@ -1,6 +1,4 @@ -#[cfg(test)] - -use std::path::PathBuf; +#![cfg(test)] use parse::summary::parse_level; diff --git a/src/tests/toc_test.rs b/src/tests/toc_test.rs index d4372fabbd..4382dbd850 100644 --- a/src/tests/toc_test.rs +++ b/src/tests/toc_test.rs @@ -1,6 +1,5 @@ -#[cfg(test)] +#![cfg(test)] -use book::chapter::Chapter; use book::toc::{TocItem, TocContent, flat_toc, toc_node_count_id}; use parse::summary::parse_level; diff --git a/src/tests/utils_test.rs b/src/tests/utils_test.rs index 76ef74470e..fdf9da53fa 100644 --- a/src/tests/utils_test.rs +++ b/src/tests/utils_test.rs @@ -1,9 +1,6 @@ -#[cfg(test)] - -use std::collections::BTreeMap; +#![cfg(test)] use serde_json; - use utils::*; #[test] diff --git a/src/utils/fs.rs b/src/utils/fs.rs index d07002a98b..db8f891061 100644 --- a/src/utils/fs.rs +++ b/src/utils/fs.rs @@ -61,17 +61,17 @@ pub fn copy_data_file(src_path: &str, dest_path: &Path) -> Result<(), Box /// `include_base` will be removed from the source path. This way the path /// relative to the `dest_path` can be controlled. /// -/// The following will copy all files under "data/_html-template/", excluding -/// folders that start with "_", take the "data/_html-template/" part off the +/// The following will copy all files under "data/assets/_html-template/", excluding +/// folders that start with "_", take the "data/assets/_html-template/" part off the /// source path, and write the entries to "assets" folder. /// -/// I.e. "data/_html-template/css/book.css" will be written to +/// I.e. "data/assets/_html-template/css/book.css" will be written to /// "assets/css/book.css". /// /// ```ignore -/// utils::fs::copy_data("data/_html-template/**/*", -/// "data/_html-template/", -/// vec!["data/_html-template/_*"], +/// utils::fs::copy_data("data/assets/_html-template/**/*", +/// "data/assets/_html-template/", +/// vec!["data/assets/_html-template/_*"], /// &Path::new("assets")); /// ``` pub fn copy_data(include_glob: &str, @@ -221,7 +221,7 @@ pub fn path_to_root(path: &Path) -> String { /// This function creates a file and returns it. But before creating the file it checks every /// directory in the path to see if it exists, and if it does not it will be created. -pub fn create_file(path: &Path) -> Result> { +pub fn create_file(path: &Path) -> io::Result { debug!("[fn]: create_file"); // Construct path @@ -232,15 +232,7 @@ pub fn create_file(path: &Path) -> Result> { } debug!("[*]: Create file: {:?}", path); - let f = match File::create(path) { - Ok(f) => f, - Err(e) => { - debug!("File::create: {}", e); - return Err(Box::new(io::Error::new(io::ErrorKind::Other, format!("{}", e)))); - }, - }; - - Ok(f) + File::create(path) } /// A cleaning operation intended to be used on the output directory of a book diff --git a/src/utils/mod.rs b/src/utils/mod.rs index f3c17b5528..7603d369ca 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -4,7 +4,6 @@ extern crate toml; use regex::Regex; use std::str::FromStr; -use std::error::Error; use std::collections::BTreeMap; use serde_json; From 05ec8ae92e0b8d95c6bc5176ee61cfe605594909 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Fri, 20 Jan 2017 04:35:22 +0000 Subject: [PATCH 41/46] not testing on stable channel for now --- .travis.yml | 42 ++++++++++++++++++++++-------------------- appveyor.yml | 12 +++++++----- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/.travis.yml b/.travis.yml index c243f3f6be..77820b446f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,26 +9,6 @@ env: matrix: include: - # Stable channel - - os: osx - env: TARGET=i686-apple-darwin CHANNEL=stable - - os: linux - env: TARGET=i686-unknown-linux-gnu CHANNEL=stable - addons: - apt: - packages: &i686_unknown_linux_gnu - - gcc-multilib - - os: osx - env: TARGET=x86_64-apple-darwin CHANNEL=stable - - os: linux - env: TARGET=x86_64-unknown-linux-gnu CHANNEL=stable - addons: - apt: - packages: - - nodejs - - npm - - os: linux - env: TARGET=x86_64-unknown-linux-musl CHANNEL=stable # Beta channel - os: osx env: TARGET=i686-apple-darwin CHANNEL=beta @@ -58,6 +38,28 @@ matrix: - os: linux env: TARGET=x86_64-unknown-linux-musl CHANNEL=nightly + # Not testing on stable channel until proc_macro lands there in the next release. + # # Stable channel + # - os: osx + # env: TARGET=i686-apple-darwin CHANNEL=stable + # - os: linux + # env: TARGET=i686-unknown-linux-gnu CHANNEL=stable + # addons: + # apt: + # packages: &i686_unknown_linux_gnu + # - gcc-multilib + # - os: osx + # env: TARGET=x86_64-apple-darwin CHANNEL=stable + # - os: linux + # env: TARGET=x86_64-unknown-linux-gnu CHANNEL=stable + # addons: + # apt: + # packages: + # - nodejs + # - npm + # - os: linux + # env: TARGET=x86_64-unknown-linux-musl CHANNEL=stable + # Musl builds fail due to a bug in Rust (https://github.com/azerupi/mdBook/issues/158) allow_failures: - os: linux diff --git a/appveyor.yml b/appveyor.yml index 87da24ce2a..1f17eb7bce 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,11 +2,6 @@ environment: global: PROJECT_NAME: mdBook matrix: - # Stable channel - - TARGET: i686-pc-windows-msvc - RUST_CHANNEL: stable - - TARGET: x86_64-pc-windows-msvc - RUST_CHANNEL: stable # Beta channel - TARGET: i686-pc-windows-msvc RUST_CHANNEL: beta @@ -18,6 +13,13 @@ environment: - TARGET: x86_64-pc-windows-msvc RUST_CHANNEL: nightly +# Not testing on stable channel until proc_macro lands there in the next release. +# # Stable channel +# - TARGET: i686-pc-windows-msvc +# RUST_CHANNEL: stable +# - TARGET: x86_64-pc-windows-msvc +# RUST_CHANNEL: stable + # Install Rust and Cargo install: - ps: Start-FileDownload "https://static.rust-lang.org/dist/channel-rust-stable" From 0bebd9e07fb8d0feca73fb7f27955c9190e78c42 Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Fri, 20 Jan 2017 14:14:23 +0000 Subject: [PATCH 42/46] make tests windows compatible --- book-example/book.toml | 4 +- data/book-init/book.toml | 2 +- src/tests/hbs_renderer_multilang.rs | 45 ++- src/tests/hbs_renderer_test.rs | 15 +- src/tests/summary_test.rs | 521 ++-------------------------- 5 files changed, 74 insertions(+), 513 deletions(-) diff --git a/book-example/book.toml b/book-example/book.toml index 996e730985..6bab077213 100644 --- a/book-example/book.toml +++ b/book-example/book.toml @@ -1,5 +1,3 @@ title = "mdBook Documentation" description = "Create books from markdown files. Like Gitbook but implemented in Rust." - -[[authors]] -name = "Mathieu David" +author = "Mathieu David" diff --git a/data/book-init/book.toml b/data/book-init/book.toml index 628d6842c2..d56e9637a0 100644 --- a/data/book-init/book.toml +++ b/data/book-init/book.toml @@ -1,2 +1,2 @@ -title = "An Empty Canvas" +title = "The Title" author = "The Author" diff --git a/src/tests/hbs_renderer_multilang.rs b/src/tests/hbs_renderer_multilang.rs index c79abdcc92..5cbff3e443 100644 --- a/src/tests/hbs_renderer_multilang.rs +++ b/src/tests/hbs_renderer_multilang.rs @@ -38,7 +38,22 @@ fn it_renders_multilanguage_book() { assert!(s.contains("")); assert!(s.contains("

The Pool of Tears

")); assert!(s.contains("")); - assert!(s.contains("li>2. The Pool of Tears")); + + let does_it_contain = |check_str: &str, fmt_str: &str, path_parts: Vec<&str>| -> bool { + let mut p = PathBuf::from(""); + for i in path_parts.iter() { + p = p.join(i); + } + let ps = p.to_str().unwrap(); + // Handmade formatting with replace. For anything more, it'll need Handlebars. + let text = fmt_str.replace("{}", ps); + check_str.contains(&text) + }; + + assert!(does_it_contain( + &s, "
  • 2. The Pool of Tears
  • ", + vec!["en", "tears.html"] + )); book_path = proj.translations.get("fr").unwrap().config.get_dest(); chapter_path = book_path.join("tears.html"); @@ -63,9 +78,10 @@ fn it_renders_multilanguage_book() { book_path = proj.translations.get("hu").unwrap().config.get_dest(); chapter_path = book_path.join("tarka-farka.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); - assert!(s.contains("en")); - assert!(s.contains("hu")); - assert!(s.contains("fr")); + + assert!(does_it_contain(&s, "en", vec!["en", "index.html"])); + assert!(does_it_contain(&s, "hu", vec!["hu", "index.html"])); + assert!(does_it_contain(&s, "fr", vec!["fr", "index.html"])); // Test if translation links are found @@ -73,21 +89,24 @@ fn it_renders_multilanguage_book() { chapter_path = book_path.join("rabbit-hole.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); - assert!(s.contains("en")); - assert!(s.contains("hu")); - assert!(s.contains("fr")); + + assert!(does_it_contain(&s, "en", vec!["en", "rabbit-hole.html"])); + assert!(does_it_contain(&s, "hu", vec!["hu", "nyuszi.html"])); + assert!(does_it_contain(&s, "fr", vec!["fr", "terrier.html"])); chapter_path = book_path.join("tears.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); - assert!(s.contains("en")); - assert!(s.contains("fr")); - assert!(s.contains("hu")); + + assert!(does_it_contain(&s, "en", vec!["en", "tears.html"])); + assert!(does_it_contain(&s, "fr", vec!["fr", "tears.html"])); + assert!(does_it_contain(&s, "hu", vec!["hu", "tears.html"])); chapter_path = book_path.join("long-tale.html"); s = utils::fs::file_to_string(&chapter_path).unwrap(); - assert!(s.contains("en")); - assert!(s.contains("fr")); - assert!(s.contains("hu")); + + assert!(does_it_contain(&s, "en", vec!["en", "long-tale.html"])); + assert!(does_it_contain(&s, "fr", vec!["fr", "cocasse.html"])); + assert!(does_it_contain(&s, "hu", vec!["hu", "tarka-farka.html"])); // Test if print.html is produced for each translations diff --git a/src/tests/hbs_renderer_test.rs b/src/tests/hbs_renderer_test.rs index ea3105ce96..0a22da1d97 100644 --- a/src/tests/hbs_renderer_test.rs +++ b/src/tests/hbs_renderer_test.rs @@ -54,14 +54,11 @@ fn it_copies_local_assets_when_found() { let path = PathBuf::from(".").join("src").join("tests").join("book-minimal-with-assets"); let renderer = HtmlHandlebars::new(); - if let Err(e) = renderer.build(&path, &None) { - println!("{:#?}", e); - } - - let mut proj = MDBook::new(&path); - proj.read_config(); - proj.parse_books(); + let proj = match renderer.build(&path, &None) { + Ok(x) => x, + Err(e) => { panic!("{:#?}", e); }, + }; let book_path: &Path = proj.translations.get("en").unwrap().config.get_dest(); @@ -72,6 +69,8 @@ fn it_copies_local_assets_when_found() { assert!(s.contains("The Library of Babel")); assert_eq!(book_path.join("css").join("book.css").exists(), true); - assert_eq!(book_path.join("css").join("highlight.css").exists(), false); + + // we left this out from the local assets for testing + assert_eq!(book_path.join("css").join("font-awesome.min.css").exists(), false); } diff --git a/src/tests/summary_test.rs b/src/tests/summary_test.rs index 16d49eb262..0911f5ac58 100644 --- a/src/tests/summary_test.rs +++ b/src/tests/summary_test.rs @@ -1,5 +1,8 @@ #![cfg(test)] +use std::path::PathBuf; + +use book::toc::TocItem; use parse::summary::parse_level; #[test] @@ -29,494 +32,36 @@ fn it_parses_summary_to_tocitems() { [Contributors](misc/contributors.md) "#; - let result = parse_level(&mut text.split('\n').collect(), 0, vec![0], true).unwrap(); + let result: Vec = parse_level(&mut text.split('\n').collect(), 0, vec![0], true).unwrap(); + + assert_eq!(result.iter().count(), 7); + + { + let a = match result[0].clone() { + TocItem::Unnumbered(x) => x, + _ => { panic!("{:#?}", result[0]); }, + }; + + assert_eq!(a.chapter.title, "Introduction".to_string()); + assert_eq!(a.chapter.get_src_path().unwrap().as_os_str(), + PathBuf::from("misc").join("introduction.md").as_os_str()); + } + + { + let a = match result[2].clone() { + TocItem::Numbered(x) => x, + _ => { panic!("{:#?}", result[0]); }, + }; + + assert_eq!(a.chapter.title, "Command Line Tool".to_string()); + assert_eq!(a.chapter.get_src_path().unwrap().as_os_str(), + PathBuf::from("cli").join("cli-tool.md").as_os_str()); - let expected = r#"[ - Unnumbered( - TocContent { - chapter: Chapter { - title: "Introduction", - content: None, - src_path: Some( - "misc/introduction.md" - ), - dest_path: Some( - "index.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: None - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "mdBook", - content: None, - src_path: Some( - "README.md" - ), - dest_path: Some( - "README.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 1 - ] - ) - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "Command Line Tool", - content: None, - src_path: Some( - "cli/cli-tool.md" - ), - dest_path: Some( - "cli/cli-tool.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: Some( - [ - Numbered( - TocContent { - chapter: Chapter { - title: "init", - content: None, - src_path: Some( - "cli/init.md" - ), - dest_path: Some( - "cli/init.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 2, - 1 - ] - ) - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "build", - content: None, - src_path: Some( - "cli/build.md" - ), - dest_path: Some( - "cli/build.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 2, - 2 - ] - ) - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "watch", - content: None, - src_path: Some( - "cli/watch.md" - ), - dest_path: Some( - "cli/watch.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 2, - 3 - ] - ) - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "serve", - content: None, - src_path: Some( - "cli/serve.md" - ), - dest_path: Some( - "cli/serve.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 2, - 4 - ] - ) - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "test", - content: None, - src_path: Some( - "cli/test.md" - ), - dest_path: Some( - "cli/test.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 2, - 5 - ] - ) - } - ) - ] - ), - section: Some( - [ - 2 - ] - ) - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "Format", - content: None, - src_path: Some( - "format/format.md" - ), - dest_path: Some( - "format/format.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: Some( - [ - Numbered( - TocContent { - chapter: Chapter { - title: "SUMMARY.md", - content: None, - src_path: Some( - "format/summary.md" - ), - dest_path: Some( - "format/summary.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 3, - 1 - ] - ) - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "Configuration", - content: None, - src_path: Some( - "format/config.md" - ), - dest_path: Some( - "format/config.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 3, - 2 - ] - ) - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "Theme", - content: None, - src_path: Some( - "format/theme/theme.md" - ), - dest_path: Some( - "format/theme/theme.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: Some( - [ - Numbered( - TocContent { - chapter: Chapter { - title: "index.hbs", - content: None, - src_path: Some( - "format/theme/index-hbs.md" - ), - dest_path: Some( - "format/theme/index-hbs.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 3, - 3, - 1 - ] - ) - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "Syntax highlighting", - content: None, - src_path: Some( - "format/theme/syntax-highlighting.md" - ), - dest_path: Some( - "format/theme/syntax-highlighting.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 3, - 3, - 2 - ] - ) - } - ) - ] - ), - section: Some( - [ - 3, - 3 - ] - ) - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "MathJax Support", - content: None, - src_path: Some( - "format/mathjax.md" - ), - dest_path: Some( - "format/mathjax.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 3, - 4 - ] - ) - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "Rust code specific features", - content: None, - src_path: Some( - "format/rust.md" - ), - dest_path: Some( - "format/rust.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 3, - 5 - ] - ) - } - ) - ] - ), - section: Some( - [ - 3 - ] - ) - } - ), - Numbered( - TocContent { - chapter: Chapter { - title: "Rust Library", - content: None, - src_path: Some( - "lib/lib.md" - ), - dest_path: Some( - "lib/lib.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: Some( - [ - 4 - ] - ) - } - ), - Spacer, - Unnumbered( - TocContent { - chapter: Chapter { - title: "Contributors", - content: None, - src_path: Some( - "misc/contributors.md" - ), - dest_path: Some( - "misc/contributors.html" - ), - translation_links: None, - translation_id: None, - authors: None, - translators: None, - description: None, - css_class: None - }, - sub_items: None, - section: None - } - ) -]"#; + let b = match a.sub_items { + Some(x) => x, + None => { panic!("No sub items! {:#?}", a); } + }; - assert_eq!(expected, format!("{:#?}", result)); + assert_eq!(b.iter().count(), 5); + } } From 0a5efcc7041223ae4bcf9eb3546abfc052971dff Mon Sep 17 00:00:00 2001 From: Gambhiro Date: Sat, 21 Jan 2017 18:18:40 +0000 Subject: [PATCH 43/46] update documentation in book-example --- .../{images => _plantuml}/structs-v0-0-15.pum | 0 .../{images => _plantuml}/structs-v0-0-16.pum | 9 +- .../assets/images/structs-v0-0-16.png | Bin 89374 -> 94882 bytes book-example/src/SUMMARY.md | 7 +- book-example/src/cli/cli-tool.md | 55 ++++- book-example/src/cli/init.md | 43 ++-- book-example/src/folders/folders.md | 219 ++++++++++++++++++ book-example/src/format/config.md | 5 +- book-example/src/format/format.md | 2 +- book-example/src/format/summary.md | 63 +++-- book-example/src/format/template/page-hbs.md | 105 +++++++++ .../syntax-highlighting.md | 11 +- book-example/src/format/template/template.md | 18 ++ book-example/src/format/theme/index-hbs.md | 91 -------- book-example/src/format/theme/theme.md | 22 -- book-example/src/lib/lib.md | 12 +- src/bin/mdbook.rs | 2 +- 17 files changed, 487 insertions(+), 177 deletions(-) rename book-example/assets/{images => _plantuml}/structs-v0-0-15.pum (100%) rename book-example/assets/{images => _plantuml}/structs-v0-0-16.pum (91%) create mode 100644 book-example/src/folders/folders.md create mode 100644 book-example/src/format/template/page-hbs.md rename book-example/src/format/{theme => template}/syntax-highlighting.md (70%) create mode 100644 book-example/src/format/template/template.md delete mode 100644 book-example/src/format/theme/index-hbs.md delete mode 100644 book-example/src/format/theme/theme.md diff --git a/book-example/assets/images/structs-v0-0-15.pum b/book-example/assets/_plantuml/structs-v0-0-15.pum similarity index 100% rename from book-example/assets/images/structs-v0-0-15.pum rename to book-example/assets/_plantuml/structs-v0-0-15.pum diff --git a/book-example/assets/images/structs-v0-0-16.pum b/book-example/assets/_plantuml/structs-v0-0-16.pum similarity index 91% rename from book-example/assets/images/structs-v0-0-16.pum rename to book-example/assets/_plantuml/structs-v0-0-16.pum index fcc4543692..869dbc5dbe 100644 --- a/book-example/assets/images/structs-v0-0-16.pum +++ b/book-example/assets/_plantuml/structs-v0-0-16.pum @@ -32,6 +32,7 @@ class book::Chapter { dest_path: Option, pub translation_links: Option>, + pub translation_id: Option, pub authors: Option>, pub translators: Option>, pub description: Option, @@ -72,10 +73,10 @@ class Author { } class Language { - name: String, - code: String, + pub code: String, + pub name: Option, - new(name, code) + new(code) } class Publisher { @@ -112,7 +113,7 @@ enum TocItem { } class Renderer { - build(&self, project_root: &PathBuf), + build(&self, project_root: &PathBuf, dest_base: &Option), render(&self, book_project: &MDBook), } diff --git a/book-example/assets/images/structs-v0-0-16.png b/book-example/assets/images/structs-v0-0-16.png index bc4e7cc3871e4233972e7f8cb47a0801d1af4ab9..c64cc4cc32086e89e2f2aa504e5831e0a65f5de5 100644 GIT binary patch literal 94882 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 SP-ql^kPwj(&KG?C=KleaK^h7G literal 89374 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

    bX)6RZ%1GKMm<=c9rJkmgbf9CT=sm^fWcG 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 + +FLAGS: + -h, --help Prints help information + -V, --version Prints version information + +SUBCOMMANDS: + build Build the book from the markdown files + help Prints this message or the help of the given subcommand(s) + init Create boilerplate structure and files in the directory + serve Serve the book at http://localhost:3000. Rebuild and reload on change. + test Test that code samples compile + watch Watch the files for changes +``` + ## Install ### Pre-requisite -mdBook is written in **[Rust](https://www.rust-lang.org/)** and therefore needs to be compiled with **Cargo**, because we don't yet offer ready-to-go binaries. If you haven't already installed Rust, please go ahead and [install it](https://www.rust-lang.org/downloads.html) now. +mdBook is written in **[Rust](https://www.rust-lang.org/)** and therefore needs to be compiled with **Cargo**, because we don't yet offer ready-to-go binaries. If you haven't already installed Rust, please go ahead and [install it](https://www.rust-lang.org/en-US/install.html) now. ### Install Crates.io version @@ -29,7 +78,7 @@ The **[git version](https://github.com/azerupi/mdBook)** contains all the latest ```bash git clone --depth=1 https://github.com/azerupi/mdBook.git cd mdBook -cargo build --release +cargo install --force ``` -The executable `mdbook` will be in the `./target/release` folder, this should be added to the path. +The executable `mdbook` will be copied to `~/.cargo/bin` which should be added to the path. diff --git a/book-example/src/cli/init.md b/book-example/src/cli/init.md index 43d1ae02d3..deaf066ea5 100644 --- a/book-example/src/cli/init.md +++ b/book-example/src/cli/init.md @@ -1,31 +1,38 @@ # The init command + There is some minimal boilerplate that is the same for every new book. It's for this purpose that mdBook includes an `init` command. -The `init` command is used like this: +Use this in an empty folder that you intend to use for your book. + +Create a folder and invoke `init`: ```bash +mkdir thebook +cd ./thebook mdbook init ``` When using the `init` command for the first time, a couple of files will be set up for you: -```bash -book-test/ -├── book + +``` +thebook +├── book.toml └── src - ├── chapter_1.md - └── SUMMARY.md + ├── SUMMARY.md + ├── first-chapter.md + ├── glossary.md + └── introduction.md ``` -- The `src` directory is were you write your book in markdown. It contains all the source files, -configuration files, etc. +In brief, `book.toml` has the book's general details and configuration, `src/` contains the chapters and `SUMMARY.md` defines the order of chapters as a Table of Contents. + +`mdbook build` will generate the HTML format in the `book/` folder. This can be read locally in a brower or uploaded to be served as a static site. -- The `book` directory is where your book is rendered. All the output is ready to be uploaded -to a server to be seen by your audience. +See [Files and Folders](folders/folders.html) for more details on the conventions. -- The `SUMMARY.md` file is the most important file, it's the skeleton of your book and is discussed in more detail in another [chapter](format/summary.html). +#### Tip & Trick: Outline Creation -#### Tip & Trick: Hidden Feature -When a `SUMMARY.md` file already exists, the `init` command will first parse it and generate the missing files according to the paths used in the `SUMMARY.md`. This allows you to think and create the whole structure of your book and then let mdBook generate it for you. +Chapters files in the `SUMMARY.md` will be created if they don't exist. This allows you to outline the structure of the book and let mdBook create the files an folders as described. #### Specify a directory @@ -36,10 +43,10 @@ by appending a path to the command: mdbook init path/to/book ``` -## --theme +## --copy-assets -When you use the `--theme` argument, the default theme will be copied into a directory -called `theme` in your source directory so that you can modify it. +When you use the `--copy-assets` argument, the default template with its static +assets will be copied to the `assets/` folder. When a local template is found, +it will be used instead of the default. Modifying the template and static assets +this way allows customisation. -The theme is selectively overwritten, this means that if you don't want to overwrite a -specific file, just delete it and the default file will be used. diff --git a/book-example/src/folders/folders.md b/book-example/src/folders/folders.md new file mode 100644 index 0000000000..f6570d59d6 --- /dev/null +++ b/book-example/src/folders/folders.md @@ -0,0 +1,219 @@ +# Files and Folders + +Let's take this example book, which has a custom page template and static assets +(e.g. css, images, etc.): + +``` +thebook +├── assets +│ ├── _html-template +│ │ └── _layouts +│ │ └── page.hbs +│ ├── _sass +│ │ └── main.sass +│ ├── css +│ │ ├── custom.css +│ │ └── main.css +│ └── img +│ └── diagram.png +├── book +│ ├── css +│ │ ├── custom.css +│ │ └── main.css +│ ├── img +│ │ └── diagram.png +│ ├── first-chapter.html +│ ├── glossary.html +│ ├── index.html +│ └── print.html +├── src +│ ├── SUMMARY.md +│ ├── first-chapter.md +│ ├── glossary.md +│ └── introduction.md +└── book.toml +``` + +`book.toml` describes the general details of the book such as `title` and +`author`. + +The `src/` folder is were you write your book in Markdown. + +`src/SUMMARY.md` contains a list of the chapters as a Table of Contents, the +format is discussed in more detail in another [chapter](format/summary.html). + +`book/` is the default output folder where your book is rendered. This can be +opened locally in a browser or uploaded to be served as a static site. + +### Chapters + +Chapters are Markdown files. Specific data can be given in a TOML header between +`+++` lines: + +``` ++++ +title = "The Library of Babel" +author = "Jorge Luis Borges" +translator = "James E. Irby" ++++ + +# Babel + +The universe (which others call the Library) is composed of an indefinite and +perhaps infinite number of hexagonal galleries, with vast air shafts between, +surrounded by very low railings. From any of the hexagons one can see, +interminably, the upper and lower floors. +``` + +### assets + +Local assets are optional. If not present, mdBook will use its default templates +and copy its default CSS to the output folder. + +If an `assets/` folder is present, its contents will be copied to the output +folder instead of using the defaults. Folders which begin with an underscore +will be excluded. I.e. `assets/css/` will be copied, but not `assets/_sass/`. + +Chapter pages are rendered either with the default template, or with +`assets/_html-template/_layouts/page.hbs` if present, which is a Handlebars +template. + +Note that you can get a copy of the default template files by calling `mdbook +init --copy-assets`. + +#### custom.css + +If a `custom.css` file is found, the page template's `{{customcss}}` helper will +place a `` to it in the html ``. + +This allows you to add small tweaks without copying and maintaining the +template's whole CSS. + +The following paths are checked: + +- `assets/css/custom.css` +- `assets/stylesheets/custom.css` +- `assets/custom.css` + +## Multiple Languages + +### book.toml + +Declare the translations as separate blocks as in the example below. + +The main language is recognized as the first given in the TOML. Otherwise it has +to be marked with `is_main_book = true`. + +The language code will always be the translation key, the language name can be +set optionally. + +``` +[[translations.en]] +title = "Alice's Adventures in Wonderland" +author = "Lewis Carroll" + +[[translations.fr]] +title = "Alice au pays des merveilles" +author = "Lewis Carroll" +language_name = "Français" + +[[translations.hu]] +title = "Alice Csodaországban" +author = "Lewis Carroll" +``` + +### Folders + +Put each translation in a sub-folder in `src/` with the translation key as the +sub-folder. Each translation should include a `SUMMARY.md`. + +The chapter file names can be translated if you wish the output URLs to reflect +the translation's language. + +``` +wonderland/ +├── book.toml +├── assets +│ └── images +│ └── Rabbit.png +└── src + ├── en + │ ├── SUMMARY.md + │ └── rabbit-hole.md + ├── fr + │ ├── SUMMARY.md + │ └── terrier.md + └── hu + ├── SUMMARY.md + └── nyuszi.md +``` + +### Translation cross-linking + +There are some mechanisms for automatic chapter-to-chapter linking between translations, or manual linking can be defined. + +They will appear as: + +- links to the top-level index pages of the translations are displayed above the + TOC in the sidebar +- chapter translations are displayed in the title bar when the application can + find a translation, otherwise it displays a grayed-out text of the language + code + +Translations are identified step by step this way: + +- taking the manual links if given in the TOML header +- finding a match by a specific `translation_id` string given in the TOML header +- finding a match by the chapter file's path and name +- finding a match by section number, if the TOC is structurally the same. + +Probably you want automatic cross-linking, which would happen if either you use +the same chapter file paths across translations, or at least you don't change +the number of sections and sub-sections in the TOC. + +Otherwise, you can use a translation ID string when file names and the TOC +structure are different: + +In one of the translations: + +``` ++++ +translation_id = "caucus race" ++++ + +# A Caucus-Race and a Long Tale + +![Tail](images/Tail.png) +``` + +And in the other: + +``` ++++ +translation_id = "caucus race" ++++ + +# Körbecsukó meg az egér hosszú tarka farka + +![Tarka-farka](images/Tail.png) +``` + +Or else, you can define the links manually. Note, that this will break when the +target translation's chapter file name changes. + +``` ++++ +[[translation_links]] +code = "fr" +link = "fr/terrier.html" + +[[translation_links]] +code = "hu" +link = "hu/nyuszi.html" ++++ + +# Down The Rabbit-Hole + +![Rabbit](images/Rabbit.png) +``` + diff --git a/book-example/src/format/config.md b/book-example/src/format/config.md index bbea9a5933..47384ada83 100644 --- a/book-example/src/format/config.md +++ b/book-example/src/format/config.md @@ -21,8 +21,7 @@ parent directory of the source directory. - **title:** The title of the book. - **author:** The author of the book. - **description:** The description, which is added as meta in the html head of each page. -- **src:** The path to the book's source files (chapters in Markdown, SUMMARY.md, etc.). Defaults to `root/src`. -- **dest:** The path to the directory where you want your book to be rendered. Defaults to `root/book`. -- **theme_path:** The path to a custom theme directory. Defaults to `root/theme`. +- **src_base:** The path to the book's source files (chapters in Markdown, SUMMARY.md, etc.). Defaults to `src/`. +- **dest_base:** The path to the directory where you want your book to be rendered. Defaults to `book/`. ***note:*** *the supported configurable parameters are scarce at the moment, but more will be added in the future* diff --git a/book-example/src/format/format.md b/book-example/src/format/format.md index 3575725220..f66bb3e35e 100644 --- a/book-example/src/format/format.md +++ b/book-example/src/format/format.md @@ -5,4 +5,4 @@ In this section you will learn how to: - Structure your book correctly - Format your `SUMMARY.md` file - Configure your book using `book.toml` -- Customize your theme +- Customize your template diff --git a/book-example/src/format/summary.md b/book-example/src/format/summary.md index e6d6419df4..e3c5f3e99e 100644 --- a/book-example/src/format/summary.md +++ b/book-example/src/format/summary.md @@ -7,26 +7,55 @@ Without this file, there is no book. Even though `SUMMARY.md` is a markdown file, the formatting is very strict to allow for easy parsing. Let's see how you should format your `SUMMARY.md` file. +Markdown elements that are not listed below, are unsupported in this file and +will be ignored at best or result in an error. + +A simple `SUMMARY.md` might look like this: + +```markdown +# Title + +[Introduction](introduction.md) + +- [First Chapter](first-chapter.md) +- [Second Chapter]() + +[Glossary](glossary.md) +``` + #### Allowed elements -1. ***Title*** It's common practice to begin with a title, generally - # Summary. - But it is not mandatory, the parser just ignores it. So you can too - if you feel like it. +***Title*** + +It's common practice to begin with a title, generally # Summary. But it is not mandatory, the parser +just ignores it. So you can too if you feel like it. + +***Frontmatter Chapters*** + +Before the main numbered chapters you can add a couple of elements that will not +be numbered. This is useful for forewords, introductions, etc. + +There are however some constraints. You can not nest unnunmbered chapters, they +should all be on the root level. And you can not add unnunmbered chapters once +you have added numbered chapters. + +```markdown +[Title of prefix element](relative/path/to/markdown.md) +``` + +***Mainmatter Chapters*** + +Numbered chapters are the main content of the book, they will be numbered and +can be nested, resulting in a nice hierarchy (chapters, sub-chapters, etc.) + +```markdown +- [Title of the Chapter](relative/path/to/markdown.md) +``` -2. ***Prefix Chapter*** Before the main numbered chapters you can add a couple of elements that will not be numbered. This is useful for - forewords, introductions, etc. There are however some constraints. You can not nest prefix chapters, they should all be on the root level. And you can not add prefix chapters once you have added numbered chapters. - ```markdown - [Title of prefix element](relative/path/to/markdown.md) - ``` +You can either use `-` or `*` to indicate a numbered chapter. -3. ***Numbered Chapter*** Numbered chapters are the main content of the book, they will be numbered and can be nested, - resulting in a nice hierarchy (chapters, sub-chapters, etc.) - ```markdown - - [Title of the Chapter](relative/path/to/markdown.md) - ``` - You can either use `-` or `*` to indicate a numbered chapter. +***Backmatter Chapters*** -4. ***Suffix Chapter*** After the numbered chapters you can add a couple of non-numbered chapters. They are the same as prefix chapters but come after the numbered chapters instead of before. +After the numbered chapters you can add unnumbered chapters. -All other elements are unsupported and will be ignored at best or result in an error. diff --git a/book-example/src/format/template/page-hbs.md b/book-example/src/format/template/page-hbs.md new file mode 100644 index 0000000000..7946614ddb --- /dev/null +++ b/book-example/src/format/template/page-hbs.md @@ -0,0 +1,105 @@ +# page.hbs + +`page.hbs` is the handlebars template that is used to render the book. +The markdown files are processed to html and then injected in that template. + +If you want to change the layout or style of your book, chances are that you will +have to modify this template a little bit. Here is what you need to know. + +## Data + +A lot of data is exposed to the handlebars template with the "context". +In the handlebars template you can access this information by using + +```handlebars +{{name_of_property}} +``` + +Here is a list of the properties that are exposed: + +- ***language*** Language of the book in the form `en`. To use in \ for example. This is `en` by default, or the language key of the translation as given in `book.toml`. +- ***title*** Title of the book, as specified in `book.toml` +- ***page_title*** A page title that includes the chapter title, used for the `` tag +- ***path*** Relative path to the original markdown file from the source directory +- ***content*** This is the rendered markdown. +- ***path_to_root*** This is a path containing exclusively `../`'s that points to the root of the book from the current file. + +A `<base>` tag is inserted in the template which uses `{{path_to_root}}` to +maintain correct paths to relative links. + +- ***chapters*** Is an array of dictionaries of the form + ```json + {"section": "1.2.1", "name": "name of this chapter", "path": "dir/markdown.md"} + ``` + containing all the chapters of the book. It is used for example to construct the table of contents (sidebar). + +## Handlebars Helpers + +In addition to the properties you can access, there are some handlebars helpers at your disposal. + +### toc + +The toc helper is used like this + +```handlebars +{{#toc}}{{/toc}} +``` + +and outputs something that looks like this, depending on the structure of your book + +```html +<ul class="chapter"> +<li><a href="link/to/file.html">Some chapter</a></li> +<li> +<ul class="section"> +<li><a href="link/to/other_file.html">Some other Chapter</a></li> +</ul> +</li> +</ul> +``` + +If you would like to make a toc with another structure, you have access to the +chapters property containing all the data. The only limitation at the moment is +that you would have to do it with JavaScript instead of with a handlebars +helper. + +```html +<script> +var chapters = {{chapters}}; +// Processing here +</script> +``` + +### previous / next + +The previous and next helpers expose a `link` and `name` property to the previous and next chapters. + +They are used like this + +```handlebars +{{#previous}} +<a href="{{link}}" class="nav-chapters previous"> +<i class="fa fa-angle-left"></i> +</a> +{{/previous}} +``` + +The inner html will only be rendered if the previous / next chapter exists. +Of course the inner html can be changed to your liking. + +### translation_indexes + +Adds links to the index page of each translation. + +### translation_links + +Adds chapter-to-chapter links between translations. + +### customcss + +If a `custom.css` file is found, it adds a `<link>` tag to it. + +------ + +*If you would like me to expose other properties or helpers, please [create a new issue](https://github.com/azerupi/mdBook/issues) +and I will consider it.* diff --git a/book-example/src/format/theme/syntax-highlighting.md b/book-example/src/format/template/syntax-highlighting.md similarity index 70% rename from book-example/src/format/theme/syntax-highlighting.md rename to book-example/src/format/template/syntax-highlighting.md index fe6b3654e1..41fdbad2b2 100644 --- a/book-example/src/format/theme/syntax-highlighting.md +++ b/book-example/src/format/template/syntax-highlighting.md @@ -12,15 +12,12 @@ fn main() { ```</code></pre> ## Custom theme -Like the rest of the theme, the files used for syntax highlighting can be overridden with your own. -- ***highlight.js*** normally you shouldn't have to overwrite this file, unless you want to use a more recent version. -- ***highlight.css*** theme used by highlight.js for syntax highlighting. +To customise its CSS, call `mdbook init --copy-assets` to get the default static assets including the stylus files. Edit these and regenerate `book.css`: -If you want to use another theme for `highlight.js` download it from their website, or make it yourself, -rename it to `highlight.css` and put it in `src/theme` (or the equivalent if you changed your source folder) - -Now your theme will be used instead of the default theme. +``` +stylus book.styl -o ../css/book.css --use nib +``` ## Hiding code lines diff --git a/book-example/src/format/template/template.md b/book-example/src/format/template/template.md new file mode 100644 index 0000000000..bbbe9ccac3 --- /dev/null +++ b/book-example/src/format/template/template.md @@ -0,0 +1,18 @@ +# Template + +The default renderer uses a [handlebars](http://handlebarsjs.com/) template to +render your markdown files and comes with a default theme included in the mdBook +binary. + +If you wish to customise this, call `mdbook init --copy-assets` to get a copy of +the default template and its assets. + +The page template to render the HTML pages is expected at `assets/_html-template/_layouts/page.hbs`. + +Everything else can be changed, since it only depends on the paths you write in `page.hbs`. + +The stylesheets are compiled with [stylus](http://stylus-lang.com/). To use +this, install both `stylus` and the `nib` helpers: + +`npm install stylus nib -g` + diff --git a/book-example/src/format/theme/index-hbs.md b/book-example/src/format/theme/index-hbs.md deleted file mode 100644 index 2ffae757a9..0000000000 --- a/book-example/src/format/theme/index-hbs.md +++ /dev/null @@ -1,91 +0,0 @@ -# index.hbs - -`index.hbs` is the handlebars template that is used to render the book. -The markdown files are processed to html and then injected in that template. - -If you want to change the layout or style of your book, chances are that you will -have to modify this template a little bit. Here is what you need to know. - -## Data - -A lot of data is exposed to the handlebars template with the "context". -In the handlebars template you can access this information by using - -```handlebars -{{name_of_property}} -``` - -Here is a list of the properties that are exposed: - -- ***language*** Language of the book in the form `en`. To use in <code class="language-html">\<html lang="{{ language }}"></code> for example. -At the moment it is hardcoded. -- ***title*** Title of the book, as specified in `book.toml` -- ***path*** Relative path to the original markdown file from the source directory - -- ***chapter_title*** Title of the current chapter, as listed in `SUMMARY.md` -- ***content*** This is the rendered markdown. -- ***path_to_root*** This is a path containing exclusively `../`'s that points to the root of the book from the current file. -Since the original directory structure is maintained, it is useful to prepend relative links with this `path_to_root`. - -- ***chapters*** Is an array of dictionaries of the form - ```json - {"section": "1.2.1", "name": "name of this chapter", "path": "dir/markdown.md"} - ``` - containing all the chapters of the book. It is used for example to construct the table of contents (sidebar). - -## Handlebars Helpers - -In addition to the properties you can access, there are some handlebars helpers at your disposal. - -1. ### toc - - The toc helper is used like this - - ```handlebars - {{#toc}}{{/toc}} - ``` - - and outputs something that looks like this, depending on the structure of your book - - ```html - <ul class="chapter"> - <li><a href="link/to/file.html">Some chapter</a></li> - <li> - <ul class="section"> - <li><a href="link/to/other_file.html">Some other Chapter</a></li> - </ul> - </li> - </ul> - ``` - - If you would like to make a toc with another structure, you have access to the chapters property containing all the data. - The only limitation at the moment is that you would have to do it with JavaScript instead of with a handlebars helper. - - ```html - <script> - var chapters = {{chapters}}; - // Processing here - </script> - ``` - -2. ### previous / next - - The previous and next helpers expose a `link` and `name` property to the previous and next chapters. - - They are used like this - - ```handlebars - {{#previous}} - <a href="{{link}}" class="nav-chapters previous"> - <i class="fa fa-angle-left"></i> - </a> - {{/previous}} - ``` - - The inner html will only be rendered if the previous / next chapter exists. - Of course the inner html can be changed to your liking. - ------- - -*If you would like me to expose other properties or helpers, please [create a new issue](https://github.com/azerupi/mdBook/issues) -and I will consider it.* diff --git a/book-example/src/format/theme/theme.md b/book-example/src/format/theme/theme.md deleted file mode 100644 index 11018511a5..0000000000 --- a/book-example/src/format/theme/theme.md +++ /dev/null @@ -1,22 +0,0 @@ -# Theme - -The default renderer uses a [handlebars](http://handlebarsjs.com/) template to render your markdown files and comes with a default theme -included in the mdBook binary. - -The theme is totally customizable, you can selectively replace every file from the theme by your own by adding a -`theme` directory in your source folder. Create a new file with the name of the file you want to override -and now that file will be used instead of the default file. - -Here are the files you can override: - -- ***index.hbs*** is the handlebars template. -- ***book.css*** is the style used in the output. If you want to change the design of your book, this is probably the file you want to modify. Sometimes in conjunction with `index.hbs` when you want to radically change the layout. -- ***book.js*** is mostly used to add client side functionality, like hiding / un-hiding the sidebar, changing the theme, ... -- ***highlight.js*** is the JavaScript that is used to highlight code snippets, you should not need to modify this. -- ***highlight.css*** is the theme used for the code highlighting -- ***favicon.png*** the favicon that will be used - -Generally, when you want to tweak the theme, you don't need to override all the files. If you only need changes in the stylesheet, -there is no point in overriding all the other files. Because custom files take precedence over built-in ones, they will not get updated with new fixes / features. - -**Note:** When you override a file, it is possible that you break some functionality. Therefore I recommend to use the file from the default theme as template and only add / modify what you need. You can copy the default theme into your source directory automatically by using `mdbook init --theme` just remove the files you don't want to override. diff --git a/book-example/src/lib/lib.md b/book-example/src/lib/lib.md index 0f7a643d32..3ff7b73c4b 100644 --- a/book-example/src/lib/lib.md +++ b/book-example/src/lib/lib.md @@ -7,15 +7,13 @@ integrate it in current projects. Here is a short example: extern crate mdbook; use mdbook::MDBook; -use std::path::Path; +use mdbook::renderer::HtmlHandlebars; +use std::path::PathBuf; fn main() { - let mut book = MDBook::new(Path::new("my-book")) // Path to root - .set_src(Path::new("src")) // Path from root to source directory - .set_dest(Path::new("book")) // Path from root to output directory - .read_config(); // Parse book.toml or book.json file for configuration - - book.build().unwrap(); // Render the book + let path = PathBuf::from("my-book"); // Path to the book project's root + let renderer = HtmlHandlebars::new(); + try!(renderer.build(&path, &None)); // Build the book } ``` diff --git a/src/bin/mdbook.rs b/src/bin/mdbook.rs index ebed6a7176..c5e4aeaddb 100644 --- a/src/bin/mdbook.rs +++ b/src/bin/mdbook.rs @@ -122,7 +122,7 @@ fn confirm() -> bool { /// It creates some boilerplate files and directories to get you started with your book. /// /// ```text -/// thebook/ +/// thebook /// ├── book.toml /// └── src /// ├── SUMMARY.md From 62139434204439a1e3e7c199c316accd066379da Mon Sep 17 00:00:00 2001 From: Gambhiro <gambhiro.bhikkhu.85@gmail.com> Date: Sat, 21 Jan 2017 19:01:55 +0000 Subject: [PATCH 44/46] only whitespace before chapter toml header --- src/book/chapter.rs | 46 ++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/src/book/chapter.rs b/src/book/chapter.rs index 17b775927a..40e49a64fa 100644 --- a/src/book/chapter.rs +++ b/src/book/chapter.rs @@ -7,6 +7,7 @@ use std::ffi::OsStr; use std::path::PathBuf; use std::fs::File; use std::io::Read; +use std::str; use std::collections::BTreeMap; use utils; @@ -135,34 +136,49 @@ impl Chapter { } } - let mut text = String::new(); match File::open(src_path) { Err(e) => { return Err(format!("Read error: {:?}", e)); }, Ok(mut f) => { + let mut text = String::new(); match f.read_to_string(&mut text) { Ok(_) => {}, Err(e) => { return Err(format!("Error: {:#?}", e)); }, } - self.content = Some(utils::strip_toml_header(&text)); - } - } - - let re: Regex = Regex::new(r"(?ms)^\+\+\+\n(?P<toml>.*)\n\+\+\+\n").unwrap(); - match re.captures(&text) { - Some(caps) => { - let toml = caps.name("toml").unwrap(); - match utils::toml_str_to_btreemap(&toml) { - Ok(x) => {self.parse_from_btreemap(&x);}, - Err(e) => { - error!("[*] Errors while parsing TOML: {:?}", e); - return Err(e); + // it must only have whitespace before +++ to be a TOML header + match text.as_str().trim().find("+++") { + Some(n) => { + if n == 0 { + let re: Regex = Regex::new(r"(?ms)^\+\+\+\n(?P<toml>.*)\n\+\+\+\n").unwrap(); + + match re.captures(&text) { + Some(caps) => { + let toml = caps.name("toml").unwrap(); + match utils::toml_str_to_btreemap(&toml) { + Ok(x) => {self.parse_from_btreemap(&x);}, + Err(e) => { + error!("[*] Errors while parsing TOML: {:?}", e); + return Err(e); + } + } + } + None => {}, + } + + self.content = Some(utils::strip_toml_header(&text)); + } else { + // no TOML header + self.content = Some(text); + } + }, + None => { + // no TOML header + self.content = Some(text); } } } - None => {}, } } From 78505ff5ccc5e4e7cd2ca9494efcbd73da270a1f Mon Sep 17 00:00:00 2001 From: Gambhiro <gambhiro.bhikkhu.85@gmail.com> Date: Sat, 21 Jan 2017 19:03:39 +0000 Subject: [PATCH 45/46] upd --- book-example/src/format/config.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book-example/src/format/config.md b/book-example/src/format/config.md index 47384ada83..d274fe32de 100644 --- a/book-example/src/format/config.md +++ b/book-example/src/format/config.md @@ -10,7 +10,7 @@ Here is an example of what a ***book.toml*** file might look like: title = "Example book" author = "Name" description = "The example book covers examples." -dest = "output/my-book" +dest_base = "output/my-book" ``` #### Supported variables From b162d04b72d37cf8c51112c7df5211a29c3352ef Mon Sep 17 00:00:00 2001 From: Gambhiro <gambhiro.bhikkhu.85@gmail.com> Date: Sat, 21 Jan 2017 20:46:02 +0000 Subject: [PATCH 46/46] ignore failing tests --- .travis.yml | 22 ++++++++++++---------- src/tests/hbs_renderer_multilang.rs | 1 + src/tests/hbs_renderer_test.rs | 1 + src/tests/summary_test.rs | 1 + 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 77820b446f..9500ab924d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,11 +12,6 @@ matrix: # Beta channel - os: osx env: TARGET=i686-apple-darwin CHANNEL=beta - - os: linux - env: TARGET=i686-unknown-linux-gnu CHANNEL=beta - addons: - apt: - packages: *i686_unknown_linux_gnu - os: osx env: TARGET=x86_64-apple-darwin CHANNEL=beta - os: linux @@ -26,11 +21,6 @@ matrix: # Nightly channel - os: osx env: TARGET=i686-apple-darwin CHANNEL=nightly - - os: linux - env: TARGET=i686-unknown-linux-gnu CHANNEL=nightly - addons: - apt: - packages: *i686_unknown_linux_gnu - os: osx env: TARGET=x86_64-apple-darwin CHANNEL=nightly - os: linux @@ -38,6 +28,18 @@ matrix: - os: linux env: TARGET=x86_64-unknown-linux-musl CHANNEL=nightly + # FIXME The command "bash ci/script.sh" exited with 101. https://travis-ci.org/azerupi/mdBook/builds/194064441 + # - os: linux + # env: TARGET=i686-unknown-linux-gnu CHANNEL=nightly + # addons: + # apt: + # packages: *i686_unknown_linux_gnu + # - os: linux + # env: TARGET=i686-unknown-linux-gnu CHANNEL=beta + # addons: + # apt: + # packages: *i686_unknown_linux_gnu + # Not testing on stable channel until proc_macro lands there in the next release. # # Stable channel # - os: osx diff --git a/src/tests/hbs_renderer_multilang.rs b/src/tests/hbs_renderer_multilang.rs index 5cbff3e443..6c4dca6502 100644 --- a/src/tests/hbs_renderer_multilang.rs +++ b/src/tests/hbs_renderer_multilang.rs @@ -6,6 +6,7 @@ use book::MDBook; use renderer::{Renderer, HtmlHandlebars}; use utils; +#[ignore]// FIXME failing on Windows https://ci.appveyor.com/project/azerupi/mdbook/build/1.0.145 #[test] fn it_renders_multilanguage_book() { let path = PathBuf::from(".").join("src").join("tests").join("book-wonderland-multilang"); diff --git a/src/tests/hbs_renderer_test.rs b/src/tests/hbs_renderer_test.rs index 0a22da1d97..ef4a1760f8 100644 --- a/src/tests/hbs_renderer_test.rs +++ b/src/tests/hbs_renderer_test.rs @@ -49,6 +49,7 @@ fn it_renders_html_from_minimal_book() { } +#[ignore]// FIXME failing on Windows https://ci.appveyor.com/project/azerupi/mdbook/build/1.0.145 #[test] fn it_copies_local_assets_when_found() { let path = PathBuf::from(".").join("src").join("tests").join("book-minimal-with-assets"); diff --git a/src/tests/summary_test.rs b/src/tests/summary_test.rs index 0911f5ac58..30e574a15f 100644 --- a/src/tests/summary_test.rs +++ b/src/tests/summary_test.rs @@ -5,6 +5,7 @@ use std::path::PathBuf; use book::toc::TocItem; use parse::summary::parse_level; +#[ignore]// FIXME failing on Windows https://ci.appveyor.com/project/azerupi/mdbook/build/1.0.145 #[test] fn it_parses_summary_to_tocitems() { let text = r#"

    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]~1m^+0_^QzMgtPoAFGTT;{xn7Jc?>MDQQn|+S zvRo&&jMDTJfrHJo*yE~Uil^NYS`Jg)C(PNFYb4U^o^_tvL{>=lRy$Z1C4TmdQ=C%f zrmPLkb^qgR8t)o?+)-{idYWMl71*@PUcIZWu`RUsN2sxzxMumd;pLc1|AEN*TyK39ndaOI z5W`$GO)*4_cUd7eXpri4mZUDF}ho1uwzBp;4p0V zqbz4>V1g(`a>e^W9j)Z)rLGtaRZ&AT@pev9Mu}9U1VuK=k%k=k+G!w4t`f1Tgtm`8 z*G&IY4zb!IEj<_N5-)eV`YslZEJ^OJ0GloGg%poEULm=WxmSy< zaJq2AovATadCEy4zK+SRcYr~b`o`TRde!Z&3AtBfnW+37M=CVZ>uzvNxp=*2s4H10 zOT1s)=|ls|xkI5b`UsbAQ>B%X9AotkE#nf;%J$0d-o9#1^Sn-_9nlPL`^q`atdMM1 zS0qz)3w>yw<_>naSg~TQ(9Z;YMeT-^Gmx>{2I6+JHPGxgu;ffu6CrgZW7@tubQi42zpXicWX5=&oXTs<4su# zt<>Ba-PQMrqtw+>O-tmeWxZe3FiQ=wB7}#6(m;X|kz%a&vn>K~j+3Ik_Ef0jh5c>0 zLnRKe!C*DK7#a+kZh&6y2z`M1&a9BmWqZ|oo-gfjZgfRxEV0B7o_3KVWmu|vX`nFQ z7)Scti8>+M(@t?_2*q@lz6OXg++j9&+(oY2#q$I23Dj_z1W#%o>M88BPfYWS93zaf zUTsr!GpNF(!Y`(|8jGy1w5$7*Vfuvrz0}Z9@b-IlgkOB*R^bAZy(HdCn(eYD$4OAn zP+#cnGL6dI_MMc?{{)3plxPg!&1n{x=2=t4df_*9>vpvgbJY%&uA{B-o}0?J?=p`W zEL;~SsftFr8tO*5jxa%_@BQpjBeaxZye-0I`ovT@dRXR5J$$c|nm#g8luS9|tg=;( zb#e?7;UE#(t0h(q$)eR&V1-DaQ@&bm2#xS; z^QdF>FZIU=?aM9DRbDVd(^4|aHKw?&bRWLO^%{A=5^D`Ejf|(+-wfj&E?kKZG;q2w zEHKz*P8Z>4#oD?-Q`b~-5U%oydT!Rm&5{)OTI14zqiv2;WQ>X0nQ5k6OKmELWC^^d z(3d{3T2X~Wedo6y>eSML;x95BVMn=%iQV16>kZalUFnwU>+DKn{`%s~cAy7$am6ra z>!8RQOH36=m*;#3?ee~9G9{OWVLN=}Gsn8sCmzz`4{+?R@`BYK(Nd-a;p(~8&PkFi z-#J*WDelwOz|!sHM7LVtaMgA3mG30V6X`{D#j0(KNG+{Z+d^A)l`UO$KZ#H^G-6d^ zyA&x7kS9ulB4Ii@*h-&kEJ~q{lC`2#YxO^AWgMcBVWs<2go_X>ec)VRxBKms`xYn+m99DJ4tTTG&Ds> zm`2Xr46!u5Td#&^s>e-7ltX4ZSt)b%0;~;J~hl1`{?2( zEyZG)Csa4E)P2A9yfFqkQM9d2(^Q^Z!}KfVmMHYJ3{N{#gheuTfo*K?o^wN~^H#H* zV3`G_0o3nj689(mdWzo+`dU>!nd$p)_*E6#bi-%#iI#)}#o z9NKD@h}TT9*+$E8s4>OQWG7I1P9tC-|3o#HoB!I z=_krDrW)%fH5{z1dR}p-Yju`xt7;bbKs%pm;utT=L>3mfK@?hx6lR`!PSpcprJ;9A zE&sBv$iKMC^!t|UG2`6fP@ns!SY2SIU!882Q{Ctl=ZC7p^Rx*$SzxgP4AUQslI&JHb666I`PTd$d& zqc+n`bfYsw3k18MWlKCMDU>smc*&R2%nTBV!b>Y3;p<4QxqLcdyWl4YVzb(}jZk)i)V1Bu8nO)qzv zU#3q#TZD7P>Fy&PR1v9(6>943ZM3samcBmnxDx%;(NwVpYN#q&rus+_rJA++YEwy} z^uNs={@{~L^{g$PaR9z`Way!k_{LVJ`p9V>^qKua#Q8<0I`Y-gjvz04cG} z06)offHVG$kD)|SX~FM!_LC$cxsZP|o zj8s|qVnWwa){R|Dm~Hg;mCmZW*^M^%)R(%*c8w?pm@ZG275D-xP4l5-Rpp5lD@6mH zb^A+9xc>o%2rE_V{VmJ$wqdSwbZEKFm8m&CGu#9OWR8eLehzp_}DWB ziN$;ioQ8Rxa#d+bc81zMbZ7-y{m(Tj<05lBq*Dd0<`VB~?`A7acBT<}mg1h)`PO`= z*iUl}eeE$vxXVo0l&e0?^N`aW96HBdHOa#!C~$blRddAr?X~X8JL1X|G`fp$nXbEF zcq^;BhgZm6{&5#GeXNNqq`IoKv{9(ALKUp3rj(EVPy8)hLy8x7ceelmD!3JQf_s2KiaW)vK=A?vic284ThT&;TkzuU6fbb| zy)*C3@4a{KADQHtJ-eT0cazNL**$wsI1t2TQLd6!sQ5B&6O)WX?Qd6UR{K38N{SW&2&$+ftPb-~O7(j$H-hf)V+lB@7HJG10=B zHQ9dWL2YcY^EhdZ9})j_v?B7GM6HrwV54=80caD zRjwj?Xb{Cl;7;1U<;Sx`g{^OJuc%k_Q}ho{ee~;eV@y2=vA)~t#o7UvMZ==83w@O( zHkB_EyqFKd{^=zhZ6nZ54qjrWr6FFxsQXAi{j7Yl?4W>tB9l|SDp!M3npH>qRZ+;R zp{^+g)oE%9AJ;TFG9imh>a~H_EFG!+Vc7!jD_f!XN4S6N&Cq$K7i1W` z3=VPGUSBsjMF-C2rC1-Shyr_T^5haXNJ@6Wnba?3)an)nx+wIns~UqMy55V;4ZWyJ z%M*^8v&!i%ZuC+3j2ACt=4YWSOw6aRJAZCdZW}87zHKJ;ohJLf*$36TU!K>cU26bO zZQ~K1moad?U>FbbTE2DQLn7^`Z&H-27!t}C7=k)eGh)5jJLJglv>8#g@k#RcJ{^B6 z?LbFmSjQThB=Qxha$tRDCqtEi!N(tWlBN zV|w{rv$X`LX2cN7KhJ@E8ry#(tVCZ|RJ?3JRQ$~mqPcF9aI8iQ zC2kU`Q*B`m&wfzPMd*$BvZ+9mJog=$$EjgwE7QD`CbO-L z&}&en$6!ZHR#?8wjKgZjwP1;Jh%X+ABzRy3mE~BNdZxvyRH3*!_@#VPoB`6g&b3Ng zVf#-s_`=)j@1}dO{GP7Q8~#=xI2j1$X0l)Sjjb4KHB99_44^dy1lLlv^0ql z94_tRljRT}Q!j|U9g1q7T>1AK_d}u~-s#s^u`Hb09wvsLx2|R>Z(O+@-z&L?QD3(W zW1b)`t3B_$Wz=#EmFqj!*-jI^RM_iJ`FeaIwMxw3ea{s}~+cuw73eThE z8n?*N>yAvi9?8p5{>a-fX41@OaiH9mGMg`+v%UDfOYXsZ_(JYA@uU6+{>Q6#vQilw zVJ46i(W9MsE!tiGD)CkvY5T}-MoHoYnS%wb(v9~Kk#0t9>FTVxiWS2_k?jh#=5OM_2Zp^6ujuCWL~siv-KIU&}-9*KQMOAmgxId^1AblV{lvHkG`e_Sg7;~ur}$T zK|?8Hm3hDGZ%wCjIFp9C3DD`tMPI+scQ}-Ccbk>S#%Ec1(Y=0HK&^TvZj!_$jA7Uc_9y!HcDZe@7K|kv= zzQ$;i;Z%(s-tvdCE~Qz$Q(hdUD}rWAvE?8dvEq`dFn#%frEWlu)eqq-YE)5_yy-VD zTS;w~ePF_%Mg;j%lRHLD6cd(CZU<$r+cQxsf26z0$k#CZ+l3^(H8$g^8CgVEtod-m zYb^w0iF{ER^ku$&YMLpBgrmPr>w$3zPY7^YSp1?=I!o>~tx6f}EvSZ<%d+Fy#IODb2N^CFwXpq&~>2PHeDZ?e=Q?W)4WGY<1k*Bnmdio*wNz=jrb#2RX*0jx zM~)D(P7*RLS(Y}6LVC<6zzY2mupvgr!uK`3)45?c5 zFVyd5H}Wd2YxZq69ZfyMR$}Vk*i{>r@8&hukj8peIsWEJ9_%t~xDT3S2!v4^SQ}yP zHjS8Qb+l52r}?}{PnSr-8gau~Un+xz^0>wIE>(28b!>CFq=I8??&mjrTWW=cxe~V& zASU{2D%QRTVzPrZ4$+%_=#+73f}w~};ZN=|Qyo?OT%Wo7cvo`4_AlI#mWde*92YSq zn`EuJ<_UK$wbX8sPQ`38PVN1*{aFPOL!+mqx2Bx9-#gQ(?;_-|+ySz>Ov0(9SLsN8VJn%)`r3#d^DkP#;Xl;UATd_s8Zv!Zd7Acx z_GQ;5M!fqpI|2GYsp#9u;o4z57_oO=&x_@45zyPR;HH55Idt{rkGKaA_Zl+eHK6|e zP^GQJ(3oDEdder;EQ?kl5A99hGFOq8v13NbBNv^OIjn5us=(Ss!kApS-98q(2>bpbmN?l*WV4Y&?UBv5TtM4t1R4yd;n+wXl15b;j zq_3XtL^HNur|U2#*3ODGa92<3ApSxV0RxMiMvitMm&mkoj;qhQc$y})>;M2#*(11( zIb3$`DdV)$oNk$CdWN}c-!UZKIhAJwIO}jo>E=FTT#s;1tqMQtF}6&L5O3BH5|uy# zM+e049r9_W~1Mv@KmJ~EaFGnoS+f8wwuv4coE zhD;qXO}c6}rgLOdA6sA?i|}GTjzy?GMI;S*pEUCd|I`+c8vzWH(N6yoJK2x#9R?V8 z@-#-xPNJ;p*?t95Dr?E{=(5D{&tkGE1D56YTJI)hu}Ov|CtHk+*q4~!+pifN%#h5L z7ex|@7w%3#uM@*J%zj&FI-Q9s1pvETFd!bo{MBQ5~Bm@Av_I}TCxDv z{yN|Jiaddp(vPR~td~=`1`Z0G zx9|ErcxaE@2R1IqJ}et-&(7TPd4JY))|DZoC2|h+RvAtS4oJ1n`#=Vs33APxx_ z)J=l>^IQaEgm}VX>(9Wg;ya>epe}vO`2&Jfqef9&(gWe9Lp@Uenqp_tSUP{lA8v_j zxEQVEEZbQ}IM)%sE28rjFja@^st^Hts3YdYoH{d_voOcxZErJ=dvDna1NCU_nUa03 z>i$Ra153Kw;a|0Hcc0C#xFr&qpgb!~P)rISp(M{(M=K})(62m!e~>5LHmhi9fucg3 zwbC7y+kq^H80s2d@zKseLD@!4JuW?cp+x6or*P)Io|*b8CyOLq5*_=N$0xfd#z=!z zKd;>a)t0aM?Z?Qf%(A$j>BT+WB**xdHs(5WW{>!koPx%tA$$J&E zH4x+Zqj%V|u>1`52Pd^zFEI9}$0O%s*8yIsmn*ZseEw=ype_xy$J(!CEQ zDjzbX6{z+<2KZanze5LY`~10)qk7N*7^lpdy0xCPAOF?}f2UE8{R2_}P4r_XdPJI7 zdNHW_cpfU=r&~-#{b@VC<}QOfx$fr{O|it^65#_~L@%S7Bv0JRif{S}D~I)egp;%a zdm9?}3vwhAGnK0K3d|1lO^eh>9gk#m*Gg^rkyohi?uKWq>Wl$^ErU%v zrU{UGgi{%?)Ecafa*aQ81}%^F16bprslnu6B{S-M#IR(aymUaJNh_aU)@WZG`72dyanEw(O;HiivVEv%L(>pd zTC)mQSF=I$bv8XRxd-qG7QA&Vn+GBF>E}GCf8!V(@V!AHKRzf@CM89@Pwj1ZjI&X_ zLOZ8lC1E7H;3ONKS6t2(?TrX>ZvQs{-wj<|l!i@Pdq8Cymu#DIeVb%nw)95!F@?{u z&iec~bI)GPCQ9gB#yl4GP*^fmA)>+59A-4pGCPH2CE58)i5AUPgt@^ z#1_j&ziudf%5UH|PJ5o|HxFawaxXTFZ%nwFZTbD8YJW?4gnAz>nT3LP)<^9sF;s;i z5NvyI9527W4^Mr`qm`dGfI69eJK=Fc5w=nD+dhORRJi;_p(%DwAnU zG_0Y^2m7~ak(icYDcI<3s9W={eo%%LI7?QJl3DCIig#6-UgsM%8M|TV=S4p%rm-1|051c`iU9ou&tRT zX%M{JP(gEGQ6{3~(I$ROvgYn(umf?)%uBr}lo-L=bFJ4f&z{-l7#~DvwU_?XxD3nK zezS<%u<&pv{>unbahmS z*aymKQw2D*ly8fjJwdS#oM39c6vD`^?X4fKxo3DrU%#$b zpB=l1Z|F^2C}k6v&X~)FxK?=Mb4>J&koxFL)H&6veczb@yn4@mTF8nHw(m646+oc7 zRU{Ra*e-DXt#kq`9l2?aCKklV9jBcLLHrM&@3g4~XGC~|5*u@75GJlBj^FdJW{BYl z$tr8OEUZ2Q{tw2GC?xgX3ok@+Npjm$ualhL5nq}KlgG@=CF%SznwzeWQ7gM#VCgXxO8ip;N_q6 zOo+LzmRpcOS}z*YQ?U6?NgdaW9-*}5cyh%j6mrI8t+?v>Kja@rh--N)OWNhjE*JSp z6TSR6IY1(RJFdg#_#;x~@IdH-_-6d2^QR_Z<{@FF?|OtI?j09PY}!FgGzX0DclU^U z{hjP7YO^}7-g`@@yyt0*;h&SN10=Djg+N3~9q8z=?-2x5CCg@dleC7{z0R(_&ZHfjBWfsN z^*DKGU>-9QLFRWWwuV~Qukzw$LmA$rVwo!%5 zr9I%NI(I=2+o?WxLh$>Z)4hsEhM$eMsTmpP)i=??nCYSDM#Cd+5U$qp+3|VmC*HbA z9+6#}4p!%JgPeQext~=PPo<~36t?&`M4-2zlv_9rgb7+ zVasDz$dPl^QJxI(A|oPuyKUs7VNRMo+mKDM7aIIlyXMo6K8K4h4I25yqpquT_US=K zIAp#?#4!+pQbt`{MYI<9<)|QC<#(Q0d{QvatP%DmcKW(8cBMyS3-70TfOGXS8f~L7 zAJ?>J*UpGGvSESTxwg{b*6^*DSRWc|tE>uk1+mS0z?T`-;M@4ADc7}}x`E}+Pv57U z+>*~$+)+;w(lxL1FZq{+dWb>bT{=s(1;?j6>KB5l=Pf$OR#jDxdj7$W7zIB?;yi^k zukQ7B<%lXL74_{FyR-yDmKR;G?GMT|&OGdx4_)fEj0s)iH48__1)*+0|LyUX<*PS6IJi{`(ySliN%qH3{(X;Bo)+T>v zCxG$pB{1QpgvAQsanT;?4G~!7n*tvS*D=id+nJZ0lZ!m8en;x{!0QM@)I#{2Q+?BL zZIyyMwn=r5Fi7g3^90P#lBE&0<+}VN``jxSBYS7nWFeI6Ef*qr6+1S7QO-QgE_?r# z4=r-C;XI(AXdlZsR#)$vL$j52s{)w)f1(iZqj6mML*697!s=S9iy(l{=6gYlL4nk2f#3ibF;H~q&BE(k0_Zem|coRda zmUsLW%#-Qf+K2k_c%=cfB=`93C{9!$l1w8|lz+D4SNuvcR{cU-Rv#^l*S3@=Y`=C7 z^aSqifBWU698l6pEOj{rwZ(d5ve!k@dlG zGe(}JMm!#Gh44Sr)Qd!VFC)>LTT%{f^2unNb5eqURAXA$n^?%<&bC3*3a^6DB@GLp zbsN$;0m%6Gq9`f*^U3l7XL=Ylho(@I!{PI~dXHSpILQrd*yYsRTT7E&E|)SUqaSUL z$F7m~%QX9e(>jY@+XnD>{eTTw$7Sv*rdA(h-hz=;>`%1q<|U-9kAf~!`2FywJFrFc zbG`j_fg?2KVL{W(0?kszRz;4~5Y8sUa+N44CiTR*C(5&hCl~7cJ}s1rL~#UvF#m)9 z9*ac|7nA(?H3*I$P#H77U3T=GEFA`@ybA063tPoIz-=69W9YF`{xYH3{@U5YvutU@ z79`1qfF#AawLZK$z6j6isLJK&OxrZQFt!WoZ8-aS_abZQ*dk%>_*J^!1Xko+d1F&{ zVetL;V|I&K-#I(AnVDOLJ;;ofKPSn{1el%#2$rwsosYd}XJ8KZ}TWKRL_7 zw>@Tk9amG7gUbjtVz_3Kb>#2VhvI>Ktb1)#rg9&O_vTp4tYv|xHR@~e2i1lN&jdi$ z)0fJNua(C&xm)N)+aNg`_7T!%Igq~IuJ=dJ^qgZpB59th&~)xkO`UMuqoQCso{7nq zNn2EFgkJ=g0tO`HK?yMp-SX+;zab8OiXO4?4=yJO>-& zQO_hB*YYhqn($BN2A=M6xyK+HS+k+&jvh4fQ;vHv_HUMNQ}vT`mqyKS;reeb-|e!w zXb(_6PZ(9?rR7Jw{3|d|%grWbh;^6 zZ^rSprrise00j1o#_{&pm7OiSFR;neGRv19S6JYpCU^mWB{PJ$3}TN{C%(MDPa!Qfg{R zA}5?ibfOT)P&KJ8bJ=Qv8xe1MMf{M}tktipdGv1;@tyJCaddQDgsOxZb?bH?nk!T@ z{hdlOSKxm~PW=~aJygD1s{7mIi9TVR-WuG!X#s4?w*xd@>s7G$OQ3^P$rdM7+d|#A` zc)zSf+xl(}O|S#}~4mPz4I*Jl( z7ragCAng+IrROoYp6U7xJUaw-Fj#S35cZU8 z{Kw#h9&XfX;0pGh4g9JinVJg;GMzR`!MSz_77m?;#zm}R^j;>LN6mMpT1KMdd3=7* zC5ks}OiLoI5}l>&kh_&jG(`t*5zzS!@*iZg&US2jE9Kaz0ft{3QJmOt2N|j(CFAG%&Jgz~$jN=gr4yzEh9oK0Vs-8s*m6cgZ`hP508O zy6zK0ZnmgD9iMgoA8@xYAo7(crDF;x9Aw|2x;{O*Vp7`*-at9i&nWn3A-zuAWL%i${V zH)7OpC48zBpZ9|#d@lZFh|=W?82M=~5JaJ# zY@3!v4gc9otGUclTgag`1#XQ#jmlkK#W|a^PnEy<$&9abS;HP}>pNybLL7mz6Ve!a z7kJs}SkL7VDQUJxmNe*KA5UWBHwSqE%02=ov}$0)&IpedtaA&Gq2n9!C>Krzunn8U zd$rZ+c!VbFit2OSbBqtEuR`15d@DcQUX^NJG~MnjuXo|Zr6#k%tIF(94dk{ZN4?TIeC2?%=R=Y zugs*^ZzeC8xr%n!_gj+dJd5H7n$}J_@Xe3C$_jufda*csgLT3?8>;k)B^G^JUvoEh zd0f3&6B!!)8!P5$d?G=?i&QYV|5lQ=p>z42)fqX=@xt(Uyg$_RQ$EJ9YeTO4g<)Cg zsg}OM9{K~~^TCA*@J^YST`%7ttgnOPvTKpS(-t@A31YShz?Hk}!M`IfrDBw2n$kD* zEId$t8P3DnI{opF@3^4)UU}oy%2_?2Q)r$Q*rPMiUB|E<5{KUQp-M}bRL3pG+su2y z;%@OrLk6ut&!aN;%rIwVy<6_orM$=5yUS|Elle7Q(Yrn^^&2^LudFvA&v;R10GQk_ znk`EVP81OJ<0HVN3in*PzoL^+JMvZiF@t?fb!BMAJni_Rxy$^Tf2cH|?x*|9KC1j= zORC{?)*g8xIeTXL<`*g?uM6$B2V6-SI<8y>86I`pi*lPa5*=PB__gCidX`Id@(;2U z`8_y@g7%@{RiST!bx{9pjaQsZk**IJy_#@%X9gi z*GNJkQ9S3mtYK8gx-xJ80qD2i$+U`~g-d-ZQyCXv5a1{vXEROFaY; zhx(Ue2j#TF*5ZA|ugnfE33q>jq{ALmmMmh^x3Kl6rhL;P0R7v|x{XL`&_3Sc@-e6c z0nHuITU=#M@LTNQ#WAVV=4nY4IBxt+x`vfvZyD^731%kXRV%dNJ*#WOC1Ci2os_+Y z=15#_TdN|MRo3{@DSg9gBYQXS1UQJB*7C<)sn&Q`uL?M^VHu~n?5fZ_YvlC}B@x|6 zX&pn$Thm2?l9p&D1JutT^$;X$+_@CTuR1!8hkXr!WESy5(M~i3&?QjOy6T93tZcM-{FrWfF(= zd$bKdrOxX=m1@o!GA!fG6qPc5bmRGF9_FnOq87$}brj-)FwrJxr>nn0pcngVJI6)|VrC93fUoEG{@2-r7xTBvEr#Ya%k@WgMx2`YgMtStihXFCd9W(M0n6nuaD3$A$J`TG+Lo)GA!=8StRN2 zIyu!HhgB<}=_GE(9qd?BQ|r>LF+kF?%pSuYTp!KIJV;oiVU?hG712$4KcID#ePkuG zT$-q-7d@exLy_sImB~VUBHhx3d<+eUdirw7&Ne;QpPqTrbMaYl>64j#|7gBL73 z=CdL|%ib&6+%J@qTG>F=UsfCkr1kuwrdB?j)L?i}yM7-xHA}F{=g0E`E z`GGlgQmUZo)AH*|*Anp}`uGm1>8Ca7br<}*%^^}nULkXeo8J#TIPL~uH^(e9$u+hH z>R?8$OV4j?%q_aDTo7qoirSesd2mu!Vb{+^#bs+$z)_Ey)|~4^FNj_p^@T2p-0-#YYLj$j*uw5uuOrZv*Eih~4 ziFN!%4kWAy_kYm$T?vdQJRiBUK4AK%{XVZ+m>NKEV4djvxd`UXu|F_ajzPQe7x8EZigyQ8f$h7_y8 zPvd;V+a@}T5H%X~#?ddj#MI0AFg1orDGDuz9F}&m+`0nTHExs70GZl%<$-}d0K{Im)3;C-K@)CJnkV|4td4;?i|1D z-moWGWM{01YBDhP|0db+zIJ@0+%9OmucF&8F{3WtjKGL+fR`Y`LFKZA!j3p~y$+83 z;2#G07&J9r%SRqjPv46SD?-@~x1a@J(`rLp0CgVj3&SWf3-}nMW{wo>I-PEw9AGVB zq|PJLT85Ty(`-bdkC;?y^ga{ZQs!jhZkakKRu)pX0;EPIol`Y@d65`&U|WrR#Fyy% zqq1>RP{goZoSk-pmvOgP0>5EM%Xk}EgdC`(>GyX9#=<63E8|DD7hY>8? zN7V&)zoVcfh8U8EO6K_R7z9rT;Q?{!g(#T$!I10D1s-~Wx@!bmpXs7w>im<&&$~Z6 zc>T3k@E;v`HONPwiz~rTC`3@r*6$lS@w%&8*fHwr7GoiHao*7{dB39(d6h%p2dP4J z9`*S#_UP%kcHG^fTD-FAYFqB!t!4bYYTT9aVu9F)Y~&begQ!qejpFOsE&YuxR8jr5P*xHU!0#mNa~XG z|5pLxVhy(S`F~fyqgE|PRgn8Hf}4x2yO)Kl%`+v4g`JJ6g&o++kzRyXgjbM9gdP=A zfQMfQ6_s97?EmYWmzNhW_&+e}g#!QAH7}q~0IEUq{~FY>_kdW6i_5xLdHgp%;^G=8 zsM|AvlBYI46o%q|VE%VVadCSau${g8GXX(<(V^$nk|+?_{|(XyTf5so6BPp*?l!pn zAML232HD*QYV+)W-xeQg4Byx4sr?`AsOq3l&jf^oMfn9pMS%cZ7HL8hPi<*Nh1N z;ft1Koa94;Yp0t6N*0+)}*48sSf0y!k@Ubj4*pcF<+E zlI=KTQXhQkl-P1QejD5W?a1OWAsLSB+K2Lmu-~6P?Y0-)2H0+QqZP&YG%`3IuIqMu zXwHlO_e{Y4|FwUeiMhL9|0u@wNQgSlU zYY`uM^}98f2X|;!n3w+TS@{Pj+&ZP$2oM2tByvqF0VbsRCr20(z=>R`RgG05QMf&# zQPDIQgo(5E%S8hCV1}S_4gdM2?<%m#b!v=euDoRQzo1efjky=d2^%RM2I;P5 z@Qi@9{#ybV{tVxYR?8-!2Te@kYQ$e|R$m+*UdL4hqb7pP3DEdOSj>>9PovEX0IW5o zux*WLgc4&zGelolM;%pMCs7H^8h$!k4N^(0OLI<+XmBD6QVvjPH)m^__De4t9RD;+fjEeNHWmpw0sDc3c<^ruJitWT>_0Lm=DYzJ^H zqgo}if@wypEYH?LXEPMQl+J2$1NQ6OJqLx7>yX+_8cF~SXY+o;vED}bX$$k>;sRXH zV!Wdn;gA4Omne?M!8UO}EyGw(#P5(5dYXcYR@zH%d@*UBVogTIauQ<199!kLGXp_f zHpXZfc|MjDVgwbn-#o|^egIcDLlNR!8#Y0xp2iCYOLr?9D;i_M(+~(}B~~R5nEhrc zh}sUPh6oHO49kf~U8i0csi-s(4hZ;-5wS+n45>6qiVx44Cd|%X zX=C}=iUs8ti!F>RKoTg5wCx6MIqEi!Y7LnCw{k60o?>fEc({d96}nF~FeS~|K+x5c zT}|n z8d;9D->?R&hqvR9zOX6GjgYr))_~n<#LwI;Mq9~%d@)_n+PFscQ;$WHMtt(1zX8s% zMKdu824T>h=C3qoHG{BL&r5SNEN_p)y=2^S%iM@7)?}D+Nc?SeTnYdv*uF%AC&C3* zE^?4Vz&S?@504r$SbVVwHCF&85HFBfz5Myi>l%~#&0%0cmQe93NJlgaK}SKG zQKo^xfe>VAK!x-QBF7IZ2*E;bh9wrp7+fh>!2knJK9tQ8Y1#~)6w*rcZ^wmg55F_7 zXRC^UVTt33;@f@{yE}PXWt8Z2q<75!C^e3TSx@p*t8^pebRm;S)p!}^ra2z01ZL$9 zf^DxDlk(_jo5SJntWeB0xm2`BVnvaROr%mkgv<+KFp%vpBe&F$zAM!M$hi4jc2ErEw`p7S!q3F9o0oYhBYe zsa^{rRn~IaxO?MN859^mGc8LXbEbSJjg=B5!!bSZ| zOZ)Aps1X##0$V!YgF!V2NHZG*IMdEYZJFEbMnRFuTMEoGHiyh44$@|>BZDt3C}=3D zXN1^_`&JCcrg=;g+{M*%gsQFO1~WJhkcQUV9i=wultC8aU~I8&vzwvQ63QSw&7=xh zFe|`EZ>tWRVYN&oWPrhulYFKyV;rd|vWa3)w^v8iET46{h~XM6k7^q7d1J}@;uoDf zj{rg^l5ijC(4w4ZacqHwO!M&=r6dZCWFu9e7F9h5PSQUzCB_zK-28RBq?PhbY7Fwy zB&sYx{KjRV#$xxXj`mWe8pdctF$i=W$tZOrRi=}Oh;z@G8JaAXRrV;r?by2C;uJEJaQs&ofe2fm>fsc``M`I$He4Ddxs@2RVPxx+2~v?j(uXjIKwARZAUK%f{BTBWX- zfS|=RgXe%*{0}`D31DehlMjFo4zJ+g+8R)42CG4(S-}tUrpl&dD%+pJcZ`cur^u+# zEr<)}hY&a+=91D7aoKIvojLfOSJ(fPD2@T%)Y2!g@Y)+AjI86QH0=coYZ0?hv(&<#T@ayC z!iZgr!h&g1!cyvt$4UX`ayu;nlu6%jxvxc6jlR1W=Se6T_%VuslXWoULi|2Jlm%}B zoY%N^NWL;TtHcIs<-(kK!X>^a#>O@$RcXAiNn!WRY1rrx>1&W9j+!tnU^i*2`27Cd z+LytAfTUoO1EEyNMFY@P7uVOX2+nD8oi3der(nf4kYS^I2b%cP&?cXlajY{D0R~;+ zzBG(1Ub>3<`h~^LU}W=NsWw!iyscWb5aKt5pC4cYLwxJe#UQPXQ9`1QgI*fO-M%&G zVJuMbBZ{#ZLX(98VGyBk01T@hFQs+>kJFqhS409##oVYUGvPx{%8m%^UIhP?6R)@6 z?}BM36t>vfI1v#{MoEE1>lowjHV=X}kz!H}KJfB^=6B;t^V5$d$<#sG_0O$vjuzNhWFZbm$&(8eiz@gdXVF9f^dJQD)8 z31nkEhHy=2jaj|FfjJ{SP|S_SuuREPVAT|{NWfq?L(G%IriPMM0+;IYOc(2Zv=Bqh z@cawyIYd#a**F^}2$|alOk)+)Vk)bvn3m z3aGJt|FsJd4|{840IWG#;JKY7|4WE3v_>PwP1nr?t{JHXD_8eh26Z(fY2GQ;Fnhq7 z-JWI~BDwk)o7`qNKxGmOj8S2$xR;CYIAl7jQH=9k<{nxd&EHm`-EC0?IH0ad=hQ1` z#68DnnZ`N}Y$N;)vWr#WDeVXOCQ|24>N$e$jaKC2LvzX~TDm5;%oC)u4w}b!9YM&6 zKH$=7)+T4%=J(ZUAxv(_g!mdH6uaAj7o9XFcS^;`aYe}|fi=Hi@YnkZp>$5JzN@PH zEw5AG-V{kvCe>am+z)*P?mW5_yuv_3lYDKvRDeaRTWB}+j^8x? zv$c&?lL^YA!V8@f|07AE?H(V5T!QzLFSoKWoff@x2svVEbxT|l69kClZ3QENV(*=B z&rny5(HhWVb=gHIrHqT1ggN0Rn0nGIt_zqqIzLFDBxX~|7clVhu zOo}$EW1Q{RokDP*4NL2n0_6LXK(p-u&E*Z+g@53TFAx;@yTpdaMRhugC~-q=Kb?N^ zLiq2;WgTCc2sPAZsDj%xFzoQt2~wIHyX;ZVlV z9>enebn1->U_dN}ONNWSS(g#5qn}qN;V0^(K8>_NGpEl}EeTOS&xxahFddG>jUyF_p4QA460{Dk+gU%*a$Wn77QcI2D=vcvDs?ft)@R>mu|>f4_&KDq-2H{+gX<1P=A z3{9U8P;{?I>HQ}^vu^#q{WfPmKZk4rVUi$ZD9)t6?_fH}9O>YKx~x^=lZhK=`?hxI zeY`#hTaIfbRmGV5)9<}v(LUhNSpComu32T74fS|Nr&DKM3q20c@=UI^|K-nmh4DVTkqf9a>gUBAc>%UW+s++xWFTscvU#Dg}_U_s*?h)8^ZwNz-0!U zh5GL_FDE1#b+VqzAk~uxl1J8$R3^V{jD*{_ zs{~IBm}RLwZHW;tJj)Pd+!{K0LBl>Qi-T8{!Tw`xbruSMzo2Tlm%s0| z+eb7Y>)F9fy&fAg@W1xtU<;{!YlN)|(H}JcKBfN48F=|XYShBjlbnH8X{_JE}FTpe>`B>5uK zzYa3}U=v13Vp9+WU;VlHXXUN(N|NH)h`K(dJ16$F7peSHlK$E%AOGo7`c#6XPMxS$ zy&CN^u1NLFg^%t7eJdm1FiXz8Df$Z+Wq&Z~j`dC2Wj2iBNi!AgSz7m5Qe|t!K4mHc z6%=nOzhyF(>OLiWp}&956=*V&koRZqyX^Su*fDQSANQhECJQFGDrQNgrm#`OsxbRq3I#Iv~t#_R!BO_Sou_`OK!V!a>(B2)Q5I~ z)wM1DA@oX)N?`AXlrpx$^kC^GOP-+s*;38q(}QP4H*1vP(YhT{@=`9rUw=Fv*mCpx zGBfX!RXQr-;$g%gS6F3g-%v7cc}P4We!#L+5W+6PFFsaaC|jabq&tGCyFZy2Bh&-W z$=okdcDaLgh5cHU;LJF{LesZ~qcpT4tALSZcAEVT3pe|oR=xB0j?t3kx8ds#HsuKV z7VQtAGCAULl|%Jjuoj3q)`{=51C?U^K15coa0(02|MK$bpS$^ex!I{yWZX~ATlrVjf(O}g8`G#e=jX=GgS z_btlWnE}x6J3I^Zr+B#)zFFaIOokgjI`+1W&HB(AYQ6Ev5C`1RW?k4<*f7EA`w)E^EHm*+4pl?>4wL@ipE25yFNiIWW(NL6!#w1QV~ac+EGi{I@EO>R zhlaskyby*xONCe!bw81DDgQR*0H92BF1}4RbS`qqH_WOdZ=N873o&k{f`X>C(8H}c)67HNwhMj8QB9rH3`1)+%sMS)_NOpSN`I9Q& zN~M;NNr-_HOW|tWJ>fhjyNN7E^*FmTN1QpF0L}4wB6w*J5igYt$|D1Qw0t3cBetTAltcD*?n2|xfxru-B%(^0yHld5c7ZbGfiYH z=Las-Z7Ml5>}LV(YEc`O%Y*gCZARD<=8??1>d*+hl(yE$TOJO*3I=)i26y4xdJya) zB~dluzH|q1^rowvsWKJo40-tlKox48f_>&?;v_rz-rCoj+&|C%I|<_~>&;Wmd6q)f zCCQ6KH7lN1Yjth&>Bj_^js2E(jrKs>#syKk>7*nsF3$Nora3Y>-LvwSXXdB|k=`x_87Mz%Nn=5^Z(lHdlAxttIF~QUsr2`Ep739=3C+`2rHW@ZtY_YLy&8+RM@N&417?8|1#L4KL*PK-`oZ`?^{zT7h>1s(9U9M9ChO>)+vviS@$F4IXax=9+yKlYuCyS@7&q38G7=*im5H&a3N zrx`^<6FRfK_eBTJYv)Q@T{lIc=fy_dG*k^mm)?KVYzlQ=L+T_BscfG7qOv`%n|na2 ztkJ0PSH9jF1(&79MJAb@x({T#KJO1O)S=|GnB+Ut@>jn+=hT&xpgbn-J`PE(U-{-j z$Rp#qi=*rSZ}l<}!9R`qiH8n&MQ}~!IJGFI znuBJo&#p!d4$~|tE20glD3>iXR=*4AAC{fvn$~SP7>w4I1bAj}d|rwQ8-JtMEBJHu zCZr(}#r@+~aDQ+|Km|rPu&46)e8Abyn-%oOM<#SQ0{>8cL-$F?kiXg*mzCOGJUOw# zkS0;s=bh!HRZOM42{@VMI(rk0Yoqo0;FbLRkXIH5u`xsD#6mYT+F(;-zk8x2)%rnj zP?zjU_3&1za>u#e@kdHoI$FiDP_hh(F0)K^ZHX&O&qNBn8uR*YQET1W)|>{8+fR`3 zn9*tkrWaJKOdtbiO`y_Y5p~KY9eU_A96pEL5udLgqeg3ew}(i)H9WtFDCloO&-e(w zrbP0yy;>lD5Hy%3#^|bB`xHLaOul443d=*_e@NL2oss+rVv?CZbL!qvJn zSh2ETt8@J!i68}2i4Q3t4vb&XEslx_+Nt$fW`EZW34O5&yp<+sN$iJmLOI$+`d~-r z?SJBq>Nqsh1qJ_aQh%ub)^;EHxir1#dxz2aDgG^V%v8{u(%=ylB}8WGq@nDwZyop4 z7XREp>+&h|e)VhXtf%H3T+Q)M#`A#TbiS6p%|$OL#ZBH`-q~j@Sw1Y&+gtFUSZw~W zqg~YBpwKeA431N6bw~thb7ZvF7*yz5r9s>wgQNcPkCx55dG|xBY3zSt@R67O^sycp zkX-HWx9M!#l64ZeJvNt7IKb`X%Ve&VvQbh0{AvHnDipM5>K0%{T6%dj%Zv zJh%;@Abo}Hh9s|A3JIz8Vz-;Bx*=nRI1&bj2>)L-29@U?*6pO)FMC;qrOWed8meE3 z?(`m%jyv4=5t-64dX(KgWX{}1c|o43w@_4m(?ZhY(@ZB+@=4ed=F!DfLr-~f`j!X# zUxmuAK8&H#Ct}Ah=sk8^FBcret2i_SewE`i`1*Yv@uXEn7Q(RCYZABdVyLXck0!rn z_R)D&Q-8nY5&ADq>!?(nsbU=AU4)D5)NUM4#WWu>@}-h~KnwBg(i@fK;XS9K{y=A= zc||?Q;Y1A^Vpx=cu-k)eP|SE}N!}>q>ea`9NrN+3Wz(O~&JM*#UlCWiZbMCr92)Pi zPzeS>tfEi(fVFDa@#MEyEAeS*)<sq1G=#VNOWVNfKcO*o5+?i(7|S8Cm_B?BS80 zmNr>LOve`Rn+!*OIg?$j5#azE4KIm+DDR2cuvbsx$-xUe&c!>Z$XhKmr!X&_#(TTp zxADHVaj7GZBPO@ZcS8ltwfHnBtydy0pJi6glX|9@ukKI%?G>9|W}Q~;$|N0@`0`4Z zo}K4AHMd-8NGHdQrPW!f{CUz#iz0ByiiXWNkPRd zu4n#8gNSpGfHj(BJcobUsKPhUeww^-FprBn#Ebhn3oJTK^Q0G3*DV+`xsy1w@j~PM zVbwHs(NmXe%R`SG)P-D5vel+ePUJQ0BIh9Z;!U(YFoJM?LrM+4SCNO)?Tis=h$7QJ z@OsPD`+^90R=VWCso+g^iHJ-%HbH44Cp*lJ%8~Pre-`P%O_?Q{zkN^8_5p&X2(q?J zck&0sZz7pURVRXP!vv%zGX7>yA3T?JG#1dD;NTeW7S5%WEU2CSB5c-Kw&-?tN2y@h z_{0}u)mW2RhN>e|k|CqWsEOS?X~p`(Z)CvD&xClWW=Dupr5x;gTwEK!=$!G`RUA+K zZKo=%H|a+6B|+V4*)6s|lTH#HZV+rr2N8HD>#DLrJ0Bfg8HFD7M^OAs$dQ}aFVV`_ z`W!=edHUv<@c7DTKs!BJs6WpUY2A{WU03K5y+U{oI9+g#9XP_iDpBscj1Q`_R2gkB z&2rxs8cK^KQ9C~SVD+;)^v?Z?VW38z&9pHMpMX}!u znih`|y!AhbIn&LYKWft`c+aT*xQOEv=T??|i7s1RDA7WatRKPAQzZ~r?_K990erX1JbJtXX^$t?QAU<-W?EvFji0VKS?k&YxZFZlh+ zkoZ0rYM@ljWFF6Le4VB=JMW$+a^j8Eb3|lte-9v^5fq}w=NUKi@Y!yK2aHEvj zr}iV9&4sKLt_$bnPEvFvt>!6HW$fQo)>L!$&sPp93NMuyr`W8%!@jWV$_!CSDH(on z4Afp(fFcFcuj$_WswBvug+v(kf(8dzQT1{JBKNi~b+dqobDM3bHafD9`uyyV+0o3C z&5-lZ6OU+u2io9rY6rt;@0YRa{jv*E%-mIT3DYnHk_F5P;BD$6!#|Fjd)P07Xr_J) zcxn;-p$#!X-=j@6LuP`u8#bri5|k>Wk9lk9S$_nTZT*P4ykXqXHQzC-QT_h7K3#~< zU3}JBC};|2MJMiZq`Uix{YOG}4`Yv9KN1~3rO)#iLf_V@aD1u3W)qL)EZP~YBX~+h z+<$K@hhyk1jMFA__tlw`#iOrn8zDDs3hfpe=S*B!kk9g`x(wloH#J_O$(PlVI+WR- znVUO|3~QOR61|&3Fy`lt*E>Y?ObU7l@YQ!kY1-3U7JFbdYQ6-_mj-R`ME~zHZ{Tw} z8D(PuSSBue1g1Iot3RH!*{YoH)mt`saIV}lA5b(ig-X6De1@&&_cc}3ETfwlpu(6U zn~BLb7fANb;1s{o3TdNRAZcnhwW@b+J1DJ{d1LiA{_q8TtlS1w!S7@)jq}y|xmP!S zW~k4=LYE6|#Jpz9K=~oR+H-|j*QD?|k=37>RcFi<+VE!}#_ux2zI{}l$vL7#i#u_t zy%py;CllZDcIHb2PKHSaMMlLIEJj<6x>;{55QY?@$=-R^?*+8raS}PvQ6R*5niy5m z^ml)SCZo5}xE7r!!dAbHn&nF?yKN>Y^|Yf%_{BMV5rdPa>bu_Wu7im4exoz5N9IpyrX_=x&BoL27YhDL&#SJvuu*UpS^BGxbgpXEP+ zCi+i` z0~Wf5Q|8!#`1-i=au%z6!)FRXrl*)ygPsIQFnDyv0W0=cbxMG`2UPz?Da@a}k|+rs z@cT6XrqG7i6H#4m#c?f6n-qQiS4mc*?1AyiLSAU4;Px=IvA?lG97ad@9uG^fz=+NffFne6O+wu1u*1f7(~SBB*-YwpW2K zIUjUI)ZzT`vZFuYj=(Pf@K%Qxnlw1URe_a^k;G}f+F8X&p=yR zFYg{;C}*?!lV;eB3z#!L;;e#G{x)SP{~<(RHAH%FEgh=R@%S{sqji61C3#v^LPoRq zHgm-ZHGp)4~q9OJV8xM{>Bu0s)k@cqx9mceL+Gx zElSR>w}Qq9`)5rJl%UihgTP2fB0iBGYeVO z(J6H0OOh_3SF1zX+DB~Y_BBAB-)R%x*2>fmHInxqGnXHL;?uW6qaCOuZIbEe<@)2V z?GK;a&Mz(;bW}fky!EcK{*3`Cib;S}jc-3zkx&?(5Su1ZDh3=j4}9ydy2-1w6{r`V z*6!NuF|yYm-KQ3{QqY^P43G^@b8GO-USPAVsynp)t&7SL98qKteCGf4%lum;D1Z-iKHhZO5=g3wzO*}0>|+X@6`o5yR+D}YCA!AqfT;x!f7CHZY~7CO(<%(G=G z5UEkYzxs0MWtc#d>4#6b$B#V22E4Zg7pXR0+Ese&O;q?{Lci~Sj z@SJqbezg2K=#2H7x=5<2usxYL4lWbF84!SxQHlLQldNpA%Wc$Q94*1|?$$IG;MjOv ze;KwVmzq|rH;o2iBsrffpOEMtY~0vZn-Tc zRNJ`ys3{BY8>=_%I%-;bje~Nu>+)xY-PEK`MMBiCio8vlZw@hjz4}$%wf#Tm z&7O2P7JhG2ZszVnV?>-2>G!JZotbtVgv@xR_17*lUiElim^#LOB>a=MFY%|uilzhn zQmtUKW4LZyr-34)N~L`l9zQIB^||4prV&y9kYn7=p`%{G6?;jSW>;M&C3;amN+h>B z+4ILgqE7|cj@&pde7yq>;J$U`y5=-<$|{kk{g5C-)Gzd%=>SjTtNOXt)IokyTUk}C zIC7OWzEu4a;?Zd1Y#si;&~~6IgO(LJ)#=V1Ha9{_NITIM zA5<>V?epB~{roE?{qx{@M}C7Z?gV{UpZzD?GzfG^62;Q!fyKXQZ&GWS9_7}@@Sin} z1T&sCUDJjbb=}dnDVq}XO9>z3`qn)D!!$7Jof)`xl4$dbAxzG-8`l;KX>psPCgKq> z&imZ>?J2|g=&V8uUfHm|@RCy{&Y6n65HZKR-a?D?YDxT*KzfvHz4Ui_h`x6q*L8Hz z0v~%Q51N<--yzlfTsBS22KqO{>ZfT(|1?(vLCxueJVNf|H8FkhY>@4{ufGTfA}1aa zSJ<1>Z>s$%M|LHvNP9KvMK`tT>Y%qdUG|3BrMNe)lbkk<`@G*jF;kWKDj$g%83=^3 zOpNjT>U2+YFQ?y&wII*(Xj^Xy1QrN&SnlFHVxF?4b8r`#4*alAD@Oyqte|sGgXggI z3AKG2dCxXh1S_2)AqDMoNBy#SWkMG@)~MAU;@7+y)n+6FEGaVMwf(S=GSK?WnE}zy z6@7*vd&Q#rH2l9pZ?{mW?SwSlG9BHCHh;diT7#-phHWnA?BS`hWXnt4Jl<~utA6sT z860!*5DMxv=SIJixF@xS!b5X%?`INi^yW{Q&&A8e-mSX#)&KMxB(PkD>x*?qHw|jI zZ6@pB4a>QQd(Q~9(kWdFA z&waNBv_nHhz&!0-HsqPjPER)}iYd2PkJ8vVq@kOPlRrPwm@k_;3W7=>5q&UdZSxV@ z%g3Ii{*wna$C9VM_0Z1PTCt>eOY->;y7i#QyeiB(HX8EA*Lbf43DZgOjOYj+PYXOT zgz@imNbUS4e*J?Oq`)_#G01rB)_R;v!7wbQ2$RnamAuWG$E@3 zoH0y$tYd_v2jIM4T)nI8rL#h|Mu%W?&qnt!D?1731nkY} zK^G6On_bgBgTmJ^^4|czM4M6VV;K;m;5)6qmf2=I06=_}z<}TbhFptm1hH>OFu=3< zMWv+lp?@RXn|rK1lRuxlpdXMcLw)Da;^V$10AI>ITH!^QHP=)Om~w2>RwYX1?CsK; z3d~fi$E4vDX2M%P^2u>o!@~__;QOb=+(}98YFbwBCUgIgNUxAq3<$)^`!7+{nud%8 zT%=wlkuhwg#ge6J7%Rfp3+u;!&NuM%y$q=q2gHO6J)3=XVo1vLCSxwtv;%X|s$X$p z=yXjdw{dtak;-?$-64fgMbWL;S9{qsn?AS9>`>D~b-qcyKcO>tQ!IN&le?X1cLsSLi_&l~W#`HrqsVFry)8Ge?9W2h`s=cxaudfDP|fDc(>bfXrTL56-H$D24v zDk?5fy~N2r^a= z-D@gT{-hd-W~Pild7{u+04a~R;#&$i?WTcW3HBJEA@jSL8sarbIQ((HwS(P?+-`(O zz1!4?U8T16Nma1k(XQ4(vZduo^tXcWHfcXYVJBHTVlL z?aq0t$N~uq$-JXfP+Wp~WB)}Pv|`zr;jAt&tLrfXMF?oK?N9k?5w)ML7>~6e@ zi|Cf_`lg@5A+FheZIctX_TQ!IlQu5v=Q8AV8olCbckSN%HR(HTtSw-X|Mq|X z@!=meDM`fL-+65xZZ#*n!|r)@I!@2d!GW02kL|KAd{v)9Z%#WrMPS|_2acq@D=!{P zJW=NvDDA2PP&#aJND_7L^;Rk-#2%5i~npY{C&<+t~z0j=(mYh$O> z-v(cftKUH*j{?%1m%>IQ@4ig$SlFinX+OE3w{@jmKaZ$m)+IV@qj&!*y9bl=zEXQD zm2ljkU^0%EAeeB~gucXE=y(C73v=3EZ&L0jVFf;?K(W+~c!*Mm7-S`q;QRULo6XHz zaO))IEK}afvqokO-1rrp3lCB&-xc!y2i*|>u{Z_GV&^$R!&e@?6ZkJ+ZoK<=$6x1^l_0%e3 zEqT4OZ{*pfUbak$Nuw`C^hv-t=N!J^Rm8RPr`_VX9MDL{{WB^4af{P@FVQq`m88Qs zqEaW-WhpxUJb1Jq;{>r?(f6z|EZcT@O3h@v-$#DzPM7cjI;V=3=(?J?1!YuSdnb{12=u9bIM>l>EBYMW2Pg@Q z(S@I+Fh+%s(6*Z<$ZAn@HoeekT(v215Gz}pt-Gg;Jaw- zscZ_iQmN;*%C0bG6fF>2>mr6aBuY9Z5Cwrgo&+x(hqKnRr&zqrE$U~dn+x#jJjn|_ zprUHDBGs8Rt-uy~ThwcVQ)GVl;~jaAn?+_?ct)cM6Nv_A<{m#EP>swN8K95E&ti11 zWIXOTtekp9d*IMEc`*8}FLZ@GoAX7nx`L%|t9p#QrbG8x_=!pGfoJU}c&a<;%Ayk4 z6fkV=M;l6T2_NKTYL#&n6E`Mt^XAc&(HEN$ILbeyveLD7S35z<@X2))x$|-z@7XD# zR*kP3;CS;vuR0d-V|n(K<8zn2$h5*ANz#0YUf&$?PbG<|7Q2scYZ^@(2|Zv(ru&B{ z&Dzb(S-Mir$?Yw?#ur*-J85v|0l@gNM6PEunk3C3kAkG!?Pr4J=GSF_jMxA^2isC) z|A64a9l8T+SUZw}ttBU7+DRBo3BrPKu13xfRIp{%0fB{KeBVZW-3S5k>yTPTj-`=t zM$V-`rZExqXX9>ud7k$=(69A+v{|U0)T}-J1M!upYLQ8@eVfdZ8T%Zpt2ju#qKHx0 z_K8FOrLs)4Jq;>5Z>wy)>g70~_MuXLLh9Gw`W$94?GkEX5?=2aMup4RgTF6mG40(6 zf|DbGdeS8TO>OC4#v#)jR0Ly`b$u66#uj^aS;{BzS}NnWDnb@BRkNkDoTgYrst1e5 z+^^khJ6fZf_=KdN8m>>91 zqcp|wnNR0;-l6T?gnaWN&7Z<00iP*dql=ew^0#8Qw!xPC?&Wy*vrqqxy!VJ?-U8+QGSLJrY)slwlXp6ZEuP%cFowIc6nK$OL8~Vsa&oT!p z%Vbq{1J}Bs!i>sC5j{4)Bui}?#_-w68~QXk@AK>vkFZ8`g3mGf>SBorkZw>}*qboz(AS65>4+)=Ss;=n@DnZtNy z>-^U5BD+p}jmqusNo2S1JfTimbH-Iy8L5nr0%by;)^XmlrlmKHroKM?77iP@6Uz1P zRfC5al{Zie=2mxLJ>x@oYiMFR|wFA$5Mx z`4hFyJJ;^41^!xvOSDU_!m6QfUYgoI;b4-zr}bH0yS4m|+55162r}?^JkO&n{B~Hs zHc_zR6Z&&wid}MW<=C%;&~F9xdL?Ww%@2F~oBb{MAA$zC?AH#(_l21ywQ1tR+UKPL za__$II;1(}L_|IHK$@!#{3gJ^yv$6R$D0>IYL|dKO*cvc7dn|o{H}<*1e%A)R&=o6 zAx>QM&Z$AeVu8j1U1F|E7$Hx?9djA0M8Bvw`kDnTLf7Uw<73T>^CUvN=z?Y&g~(24 zv{8tu}&`M$l*cZy6YraW? zS*c8&lyI9EP%Xngl%VwU&nTm4R$p?MJmcVCX|HJCQXosB@fb~WPF#-|Ua`v!>-P8ksHqo;`4?dDZ2JO0<0&r764b$Q6DTqvKq|`CYZPB9I9NMN$UmN*6@oeg=q`FT z)WvZf>crQUdml|c6VA=y8sXc77q4n$om(}}brHf)#xzqP8AyVSYRFf4sMFzT=3Cy$ zHP;n^-)Zc>`C674)vCqk+)`dUr9iHc*!W>_?cOpAvWYcf1;18+8Wa9w4! zpAzh(0wJjtY2zGdBJ4nJd}yR$yt6@!Q_Zh1NAfe_L+buslXk4ntKZO+21&B zudIX)jxVUzuAUdRYDE8A*Sjl89F{$XGFqQUDO^7CY}9Ffw9Ix84z+2X53QAUtj!F> z$qsNC@bz_X&MV`wvHvIdHE`8e`QjoiBg+0fuln*jcZ}jPgZhbYo$u_8f(ftazDH5z zqUgfuPij@NfO+p)uFUnnI(5AgMcRW;AJmBCLa!d~j3C3$aDzmTZuit${swaxjnL3V z!1(5qzk|}r5%N1}lW5qw(ruH)cB8Y|p3T2nQkd*|Db(L>_PfiGam`b;nmS;|>Z$#K z6a*?0l?iV8qGEdN2Q3sr83{SI|9Z^CGv}?maZ)Ogyp#7#nA{AU+DN#bfmJ2tZJK$C z2MjYZIf4qj0>L~XvaDEj3YN_c; z0LTo6SN~hn4tUCc`+0>}?txH3|~T z7Fj1POTb!7yApBTkTKx)DIWmyO;Y@TB7hUVu;E_W|K!+aX8JY!x8)u>a4!VPe*e0A z&!&1MR_5=D`LE@j^1r%5LgRnfLssh>?NcTpg3W8aYsC(bPo|-wCGJj-zPgGV#R&g> zJaF;hgVg$m8<(8W5e^0K<)9CHHnq1Q20llv*p>TU$`SJOs}|lmmFAVwn;<~TTPgcy zQi(wmM3Lv>GPw2?tT`b;+8IttZ1h)#f;Po(=-G=s5XJ2Zo4^2DSJu$fihxXV>li$c zrfM@mw(<*W)wz}MUj4!wFtSF%Ji-0#Yv-u@j@v3N)e#ZXcFic3bV%x1!|}r=w*kP@ zLJEAbV}%!;tDYiX^x0R?D@rSO!jkJc7>~;Yc0#27k2=I%wMA$-L61lbplHYDXq) zebVe?J`2$PL%yg`qvXbMpYa2VBBJxo62hhAv=Y=;z-go0(%889zLLUOjMDv}Y3R&r zxf=0r|EYzosM3WgrdU;W{dga=XP5ZO6ANlIT@hXbiI-}U{Vu(xZHF9Ta@VFh57cb3 zk=l#^Tv`m~TVuL?SFt4lb+83+IoKv8b-+<>Pu$?jzb!y8`_Ch}yTc`}d*(-S*pgEX zwR0WsJ^&`^AGrs863n6XJJ-C}L!9g*4gO;$8gphj!24m_{6Xxztn);Jf8x~2?2)2B z?dx=fEd{y=&W#MXOPDs-R+%{Diaw$Lf#K_{So!cLK|yR)^|FD$3d^RYn5VjQB!01L z%%Ul&mM)49T5w3VcvU{^KP1Gy%_rIOaE7z7=eWLkR^s8r6wI-(kZrswbEEuOsRTVc zl|gDApQ$jE*{{VSFhQD;$HG{P~Xozdh$Q9B< zHw~ISBVu5zR&LNK|7fL6M$3Gk$;D-}{hQ~#W}R9;@_GH`#w@H}#yjgTj5O5>A60}r z+f7x1pr!Wuu!u~LDDn-r>*Kturf7Fue^K-0{@hHmbW;tr*;BTuR3<3ZOD5@>a7@Sv ztK2D5SIjh34%)q-i(BGHtx{n^hjZ7NWwPNOQj<`l>AJl1wBCBRy`zsO!x)Dxb=0JU zdTGBtT0QGvJR)-g3uBH{A4m$uZy8tpwPzG5cGBxU>5tSI=7+Wz?$erF)FR7g|Yc);jeU;X^tvibf*v5tjI^C>Fca!2OKc|hTWr&h)PGZ zA1RBif`SI9w$4q`g?00$Yffp_&s0||uwKw;X}F}(2&;TRwi7b!P$kDq0p%7Lst8>i zRc$bG4YJisa-4IApfs;ab-y1dHd2W!#m0NXBWe_R$z;8}<`1QLMvb1r4ruh>U9;XG z=|WDZ_SX)WZHlhu8Y)M?91~S)lY)Q-lQr35q_7lS&Cy3!6)u>gMui-yGF(=zL_ns) z4)}~|n(Xo&=@#0h%?=-liOVi~J)puf%JkMxKSzvEV7_*b>#f`ml_)`Xjc(V+PqoIZ zw{kla_`H)IdB?7Wzkf72Zl;I4tdB3c+aY(E?yPEgu@Wwo(jAcIi&7nTw_FsP6mvBN zG-)zJSe{ped{`F~j51%Xh-0Suuz$B$j!{2Hf8PrZ|1RQsWBi}L7|0m!Tf9P*CJL~f{+M|~biEk|cheiQ=oG{@A>z9WeGZHD@ z&@CPY3+eB;#V!fxp~bUyE6`uqV1pd>yaNU*7IfHHue#taU9`FEq@D6CG2Ur|*kQd7>ZZuEM#<9M1z~;N+8m@LnJ!w{BYnNJz+F_#Sy z7LjVZsfIh{`%2>b+kbz#XrAwRNt%!NZ|)QD6{n<`ZH+tw6DIhs#z|FThT>TF#Qb<< zqPK}M1%&0OF+~vh))?)}mTL6}4%%&(l7zA`??gnoTaELk*_L?OUc)++W=XfvFg=i| z)Z;2uYO~0=xKpXw3-MjwiEf?@cd9VQNi#YXFzn`(S-K=dwB8=e80VPTPP^;Z9z19> z+XjZs8Z*SP@KIbiVw?ZSG@(;LGH(|px$dYchO1Ii4 z*ENehU?sA=opHqorJj(jKZ+ffD_^Z0N(?g9A`3LwY^XBidqsg>f@V7A zcKNy)=!%_AdQGub3*4blnY}g{FYGn_oO0GJj>xvz7?-6hM831K3^Lve_82Xqt9~*? zjB>_L_0r?_*e%s;rLS0HqObaZDj9g(^G+yIXk@I6d#%$#(qg+9f;TL0bN%pn$QteMDz!DB&;-LZIcmF&%JqtSU{Y<-66+Pw)9Y5cPm`raI1{^D z4IZ`4pbjzho*4J>l8)~W;aj2ZcPQVf!!)*=&3^{O`?YX;i)xKc z^BWCw$q4&J^>#^fLd(=+BEDp?YI998#5Q65wRy>CBUI>av7ZPSC>22^o>Xg$%krh_ zr@_Aq8ZF|K?e>}KLsmMfr!)&q)mOd&HX3M!m4<4wN0|~YJEhze*YwonjF(MOrN$b6 zF2zv;>{Vj3kIIp*#Ac7ER<5t^$~k*?YTw@dZ1 z*JYZ3JQM787iP({&IJSH8)1zjM!PECZC1G`O@)S;m&nR~}YM)UCCQQ=%z2S~nb%Nejs+4Pq+bxu?0&V8X zaLSm3@*zR%9CE)jWtM6*qtjhYwcKV~bnjH|Fp+G7?eMG=V}GqF)otde_D2c9{!SLg zQzA*h_$}gyFIk0Q9&x9zLJ|KY)gD8o>0yeKwizcyno*Vu$?>#etE|+lk0P6V*#C{K zV&*9DM?y$f79XYuG^)TETlG`yP5XVqNqd#WbDZFi{;}MQHF6Bq?rf}t#Xg0q>~gnF zy1VK?yja3zCuA7zPKP|D-K|RfyMZdatWc$ZZl-z3<4zf%KtR5Ix|$;2JON##m}b3$ zMyj;Sd|xryK#w|WlvyGMY7n%*BFCIotDjo!4%%XyumiT*dgbm8gFkg|8ZjtAQ8nh`Fw$OA%F1ytMJr&}( z{aSs_XyuN1+)mYc>+MGZCMuVvhsEmb^LZ1!VWyyAQiWpjn`4A|ju{_!N`&=S=-;In z^m`XyZ1$?Zw#7gAk}@qec+wjt%93V;K7MMqGoEwSC?D{L`o^w6n|hIV5YX3cja3JG zixe-LsKQ$R*K3Xo`LJVNwOyu6IXAefH8u;#O*l)I?)La}2aDjm#qNoTLB62*%53#X zt-kLjSz63-pA73vN^mi)wNbW_3bcCO9i583M9oH?1^UNpguR^-!)^4EuyMb}5JHP* zUG>=nOYCh~QdfNBeYkP2QKR!t*lnje`>b(ZlUl6^{FlXauK2z(-JFu+KHY>+rPc*s ziWRL()x%}mG{l_q{1+ZY?Wua@s>GdyaqoMl&wUyH@sqj&Gy-CpB;Mmfzej#;{m-) z)ZH@U{E^#qx8E{Xd=krj#4KqhDKp1RrS6d~#VUP_Ho64uJ(#JD$95Q zkEv9q!Y*GlN{+oAa#ES@x@fb+G+`%Xn<87bJfp2M%oJ~ER^)rqOhAr-Hd(9Oc#}o_ zo1Ps4qglq9>2SP$F9Cgo{KS-ZwIcrAq24$BwM^e~yP)&_!@rp951q77gp0aerSdKGA-g;%;Oi=^cEo&3?Q%h+ zQ~3F!zxSvH%C-;83`6f(9`nc9Z8BjsmQ&0>0!N-#%ngydBrxUO6aS&Q-xi| z%9GjeUll8jO)4L#2S{ykSPn76}T-u-whk6na+3SSP%o+C|ldnrWX@ zZ|dsHQXI2Lt?e4zYpc7AvflqyF4cHvthUAuEsFG%?}}yi8ELSwrn}EJquuH?&j{%y zQ`B*%EH+9{(_L~xv2IqoOM%VCsWi|I>!lm6z-b2!(x$s<203GiUADSSmWWXJgev^edMbzW3uoxZxOw%=&ml?cnQR=WSDw=4G9Yqb)6g=Cqk$qM(# z($gwk6lzIW$K@Domb!S6L;?mYSNa=Cru6cK#GRGFSP z#1S(*VNhI>w#d^WY@l4b9qF_okc0O6Gb7FQv^>NA6UnHu$rAm4Z7C5=p4Q@X2_{4* z3*$MbeBw7=;OaL|)LGm8#Q*1ep0LD0H3BO2H_Sw&+Ua{X{J1sWfHj5q6CjA}l zujqR$C%gTP+YGngVMVGvbJ$E{6j@@TQp+6i0sS3Nr%Jgz^Bq)Yp#E0Nm8(Rq z^9IVa%2F4Nku9R$^ENA0YJiJgF|Vttg$(alkVJ)$DPeke55ENuxTCxUwaUdctX@A+pR_HUw^WT3Zu zoN-ML1=f1h<2D(kNtUlVZmr2Gec2u#Qt7N`+^j;i$K9^Qf0!cAOw}s1`l%8ltnnS) zVv~6fT}AX)p~^m6ofPz@@xCw1ZUt(rac770v587 zkyu_^02Stl8jONi)3BHPsY3!zS?#vi-@WFF3AULoEZ;n1IutMDs^#w0%U}yFR&2;S zN=7e3%(2ykUsK2SRxfDvnS}J04ua9(Ntb-~_g*m0_@4jkLEB`i(%+|j*6(lBOO;`a*Zi%X z9ekWo&1${rQEQ!ce@sNO^|!^3oigs{hR3e>n#ImKtWBzZruwi+UNyQylbEOt`Xz)O z_xXnY#t3*po!*Kyn`e+$v}1?qj;l35&>&}R^eI8p+-J6SHyL7#O}eUbtKCleGnr=T zriaa@IqrbJwAw^{>{Vl+?!GAB^Oi}q-JR|;!BAoIoR;CT%|4^rgIaAi)hDgC$rS7K z^dUb|>kp&~`HoTYol<15Qrn%>)n=>I>+c!)2I}XOP1fqAT%}y+b@P-ocRJ@4H+kJu zCv9_+SL7SvO*y{e6^}UYO}z}&CQHCUSLA!fXc>Cg?4Tjmi|8p&i`Ps+PXlxpa$fg@ zdsLv8r*;1|O$Gn;*8TT=!$*D1e*dVK?nsksj3H+Fwy@8+&8x~)n&X()j4;J|3k~xn zY36%crhNO%#zAlRw9EcfH)Az<&L!KdH^WUXJ1Jj8NSYD^taZ@e+ikfECc4c;pHQyW z7X`ebAYr|qs)w5mwcbNYoU+)*T(UGF)Z9%^gB`U{g)HeB%ypL(nd;0j$v*eW_V510 z7N=v&xHs)_hn1#ES7xo(-PXazxMrcd<*U%&2D4=t@s7`Kg2q zetD;$_tS#@==Zp%chpIX{iDZayUjoPiqHC}oAg$!LT_W;WRxC8=_+iPp1KGarpj?? z+FWzYDjQYapa9r=YhN7lurFz|(?9sIkp`RWW*JIE1f(16imZ4!f;ubg_OE{GMJM$0 zVH4s5DAPET3{~)R1E$vm{E=~X`i{|36e#kTUG7w)E$+u`w^9FuwOH6%%S=-&*G9ud zTQAPM!R6R(-z5BrPyXKTCJZ?*lmmZtg}z9iz?)L#b+H? zYmAxFe96lu=x>T6i=b>3m4 z9ad$eZ9eRv9nN{q0OQq|X_{+J_^jvc)?2w&3;YjNeqz1Rc4(5J!6#kPtlBAq1#R#t z1HIuRj{1p^G7a)H+U3LMyJVzxi`*?$ro&F?tJHEMWC_X^RHf8BnF+gmiv;{ow#whT zP2AM3 zJg+IFi%EJo;YlwWY^*1Bi*IGC_hpX>sWDeqU6op6uwoQ@Mx`$(Q)H>0?(p@P^XQP{ z?loU`J%qJ-*n|#=x7RE*Ly3Ui`daNJ1xCNa{1VXD8#cJ-*RsrSGh3Zcy_1E}89u^Rg*>&^>fW-$845r z(62S2ZJCSy*3Hh_X=Kb=NYzz}0FK+P4{BragyZ*BPHsXtqPv>Z6;UmMK-Ci@r`e1l)Mrr6*E4p^bD3~dRvTB<8%>X#5=?4!lsDtyQ4LcgoawweCMr~Iuvl6C?DlWU}P z@m}7kj+&!IwMt8*87|EUgOO*i{XQuoL%S9J)MblJl&4LK(RMp)5-M!9&8-Qm_;fF; zjCl`w>S>uZ`giJs@-tEtdr^;HOQ+N}GhOqk1V!i|7~?~^~b{M_#*)xPI%)cYU) z)lKr=W$sf%p+3gD!w`K`D-zY>l=V)k=;V9+RirH1X+mG4mod_fwb()fI;|gen`yIE z7JJosNRmQKF)pf~}#whf^_18mBmCmVkuNF0O(PF)^9Z~@gTjVAU%2e8@ z+$Oz^wA&CFE?a4je7Vl4HAuG2#_MXm$KBAr5VO62>lu7(@tWy5^HY4!HWcFc4`oVLL$^oTXa`zwI1=blYo9wJ)y8u zn&|H~Ykk!x{cVCL1B*z$`t6~R<~>N zx?_S;EOOLEEn2;y#y^;2sHrYFqR?x485(N>yh@J07O>KJV@-9NBNkhs(Z`K8U$%P; zu-yxeD2!FHA|Tg6f9|NAR_d;A?2c49;ZL+#E6-6Ujqr?t3IueqBxZ}3TBM6l*k-j` z6l+qdzzUP4N!7~_1QRMwMYMa(q}coRG}tD~jqYHDB+^x-?1avf?;Qav9O|G59R#D@ zTy-6isD6Jq;7fjLobUQXJe%Sdxp0~K>MzHeQrs%+sIAVp>6bXyjacYhhy3n#k6A3$ zZaam{wnVXR31RCBx4XlAZZklUF7l1_y21|oCVp8?`i>UUtT0(uMD;Sjvwon+FtppI ze+L2ECsT?xD-9P?YoBfgXwc}gL;lbP=PdW4?uIL{L7s9&o|SEiej3fx-TgwA37Vq7 zMgt5s%y1j6x7c`NH0x`k2W|FK8wG5$R4?Z&ai@EfJ7S+du+%Gd*{!!R&e)~W6*-DD zy2aym`icp%q}i<8G0TjVD^Hd+hAUHRjt>~;gt?vtn7RdL}rb0{Xh> zF+<~$5i&v#&$#w3N?H7FaNJj9`R7=Gzs>cI9wVgLuhxgWX{H0QnA#V8U6u5ATmprp z>SKz#jZm(a&l{jgi3ZO(Eb31E&2dTNhnzP@p@q%(K~T35&1-tKwC4gZk+18Lyb|4sNHALHhq%78LDXblPVU@@6{- zM$j^sedaxy1b>@6rjPh1D}C4xV%0!@IYKH;lWMJOZ7wFmH?69%E>4aXYWLv7MXI1zclXZ91T$x4+T4A#DmN{jl zG6O`-b%%aZeakc>W%?H*l&jF)UfZOYWRG>GEA(}*>0zj9Z}VKCZwL zpD;(*8T({;M7Fuw<@&4|OWbdwGkCyyD=fE1p%O!!w!&D=@@+NPSQA{Z+&GmoOtf2# z&uf!ujF;{8tZPOaVT)T#lIozJ+NIPuB{KA}#C{*qMOdkEA|7&^V#6)*lv4Ld)z3@; zQ%v%P$92~={*7&oP1Dsxqg?Qe*MyZx(MP7BQn$M5U)7i(9hqJ? z-cTbfGF%V)l$aiK7p*cy3M#EuVSpx^OtC?wJjWa{0WD@Z1Dp0dCxhpe($u96!Js&lTs z3%jw&!&aN-17;hkO{!s99h2sOa}HS-E0}jqlfG!tDvWJ{23zL8X>i^dt9)LGG?%Q9 z?TksXl$mCy*>X*CUJt7j_)9g?WO>BVl4{%yK!jtoYii(#8d8*=c=Wia7~IWo^edMM&e7a>+G@2 zO_u9oggUp$adUh!-X-iVA&VUMS91I}qrGga1I{UR)Cx5&+NI58DRK-qR-?5xDNz`E z*24zcVvZ{Y%2#TnOaaCE*(TE`t|nOy~8#EQi=@u0B^SOZ}_5z7ynJ zebSrRwz>OLtIYp**hXJ-$n72%DJMWj_V?|SV=gKE2mnBk6s(b*D%)KlcJAtq>Mhfs%Pxm~X34Ry0Qrf8$30~#o@REh?gN>t=8`iZpJ z_a)jV(^kdO9n?&3>uu6ijP63cC0hsaBK%OL&HAV-%^=av=q}r0RhmfD%yGAi^t_!~ z>m*oOHN$76x12RVlvsyN)jsfUHaM-5P;E6dMNkb=yD*(iw^^qeVL_rcg8w0z(f>|c z=tX0zufn=E`-=pLx~Xe{mcHZ(3!N12i|!Sw*wYsKrW6YUQlYO~=bLWS+ckP?qtu_h z>b#H|q0&+>SfQ7u-n3u52Wp(-R6Rwh^tv>6qe`M1^bsSLI_3cFySl@uGShw!{GXy9$nvnA9`z%Io^x2I zPf(I7F~Q@eSz>`69}$@^@tCc)IIdKY0wez^Tv?6sZ@@h z_S)%M=Nz>`kp}|mVOyn&Q|fK)#XIi2PNFQ>M6I!Xfd{l zw9hd~u9a(+H2odb)?VlA($#QpIpsS}$kWkL7lc}_oe_@8GRQeUa?}mtH1LiHEyU}o ziw$N=(?&hHW?JdIWKo)!E6!IHm}s}sK!@T%%{*m;X8PMDC9o@kEOSPo9)c{kU7k=a zg-Q3i_L7v^qqlceX<2YO{Bbj$`> zO5Nw@A~4U>exi$m_8BYKI=_~vxl(b$q)Js=BPD`t)UJA{cA2TJ^(7PJ8>m9Ly4C+L zLO80F8zEh7!G55XOC~8+>JHl_80Cn3n{^1}baR!tRx8U)3V>#*ZJvH^^1Sn!SZa?} zh|$M6lN_=|h9(j$)h#e>e%1t;T6)*(hDdP9WP{a5o<(kv>b$(bjj+Rh*I(APsx8K= zVn0F){9k89Uimm`kRVI!ao_(TP49d^GSAn2(G+v_HS!ZM$Y1bVD-DpYuW;Kn|4>io zB|AJ}yx|%+Xtx$uFy4PM%QfHVz*4M}S3`a4ps(uaI!Ok~G|P5%YG5_OM2V3k21mT6 zOSKCK5hdzF?t)NFEzsLZ6LhJrj8=VQ<+IX!-?7yh$-;G&=a4Syi1N1j9+!YBzwlSI zcTl88j@hS=WLs2dD9I)JggK+J5J7rbAyP+Et#pSp>jYUX+kG;;q?2+lC^AN}wdNS+ zqF*UCSf;5iYHETmuJ^o4j+&{rSRtC*;#KW*35*f8w!%@H6&tOU<1QL0#sa4E3G$u_JyrO% z4#qoUqm?GxD@BqB`EJoqTs1Lau04*~A<=JrMO{zWtj}c}4MAE3iiYRBVW`Gtdq;(b zqzLjq3awV;ykUWJwpK4`dU?%E?W773tH=s>Ywk@;4X|5dF$mL6g^e;?a7JhAr3U_` zBEME!Yf)YlVW2XTb=4e~%ri=&Y)@*d7IMun=89mor8G13x`M3mUulJ2QRd#OXBgA$ zb@#vVf&SGMxFt)>n1^MD!Sw{mC!w^Q^?iu<4=&`tT>!@{a9vR!k^Q{C;7B$4XsE7x1*%2R%sJGkhWVtdH1)mbpr-H{VHr4Pe2`ysv=-1vY7}spDoFE<%z$ zS_#(F0hwBvs6eqU@~zR|YRimQ%M9(^VzEMFZMVgEIW`(AL99-uStVSV8zjm!!8z*; z&`pL37AjQNAqP~cGS6Avo%L&3I!f?cCzLv(fh03@5^SPAS}QU~qJ|0;>E#zzIbf7& z-ZoZL}6cGSrvuy!&lYPfxkldEF)ZjWJGLOD#83 zD=p-BK(<*HYpF4Ut(Pj@G<_smDNh|2Y?Yy{#X>dINTd{PyrZf{VJccJrB~q;_-xu4 z-?2x$Y?Hies>zNSC`E)gsTPa%gr44WQmjWcLB2C?6@wzt&N*YRyS3L+2erjG?1;0@ zYb8!(^_$BTF54Wh$b1Dg$O|sH|Njh1YNv0@k!Ph| ze)$R8MJ0YAQg7dN(oyF;Xo6>jXe&gKDj^Pf#dg6`ot12t<1QKV3ES!A=12`>IrFVE zJ`nX}TVr$}Q^>Z;CA%HcP;J4&W$GqIi4)jwt3v4x`Hq)mDbwp?NRa<#;p&;`4IRCv z`(+5HE1z$PvF^4?rnZW8cg%8~Jz%D%JCr zUQ+#1wjt`9prxj!>!*SDt@o&t=F8N>D!oN{Q45VscAt)x8tIS>&D4_XF{j<8nKX?} z($tqV5ow8Exu8r}Yb=m%n^o3IGFnqP-nZ0ZZ`-4<4p!Um9@DLt<4aCTQp+aCtoIX# z)KkYcrSA5QP99V0H^Pmw-D*4hT)El~t81Iq;ykOX;ojBEod%0C!v-C7kfyIrf-ToV z2lX}7#1t!aR~zRQ8f>Nn%`KNG+ue%1qnTFnsyPD^)%90(Yarc%s|UyaZ`e_PQ0PZ) zu*qp@E;-?>=Hjdn=76m(Dzi?p{vHyGInL-S3=Oof)IN=M6D~-oWSRQwYOb%Drd;>x zca`gPYo#mITO9;R)nBu#^efu23BGop^?e0}>v-5Hk`i%&`_baa(`mx`qN~uDXg0yp&h6=o2{WKr8 z5Dyq3M4Cu-)keHBZKTRk3zg=2-D%@A(Zn)0>gjPu1k3h;h|Csw_B(5&cXjimeSYea zWK)F8Hx4b)!HCm}BEKwj%Pj|?+&}`q-$HV&Aq11UdNzzPRhwYYZy+zuJ zx5e|C*{o28cvJn(JUvyYP~T3Cea$3`W%_}a-RM=5l!-9dUtHsl>IfF9uP@o{QQHvh zq$FQ3%~?$~_C>1<)ZcHE8eHS;ckp$u*yR7J9TcO3z8>_NYqWQ}Ag>$eSL*4huXrcy zm#2r{1&TO9Ua=2nR0@{on0e0Dxb}lwQlX_$7R#&t)6HJ-74N&-Z=DGIS!955_QMvT zNSf0M91`pyn;r8T(_GNSaM#-6N6HM54>H^%-u1p>kzc6eqC*JtsDXBwtt{}VO?06q~-nlE@+7*L) zlbv$g|B1o9Z62{ekfwg_j*qD8U;Tnz=&&!UZIKEi-QXRkwD+8ydOPD?zm(@*ztcl& z@v;@UAWN64W-#UcA}J6Plz2K zG~E$(?>(z!YT}ZfPAPLtCovM8aZtGVTFJ9dfjcETpwb)_?lfF$b1bsdo605W zDMhO3(xj_rs8d!rsf8#(8k=dA0iw~;P7R$9C)qwdq$#pcmRS9rk!_UvrYq8{#tPOE zX_6)Za`^viwp=^k(L%Teu647q&e^5JHftRbBulm#p*NE3qYwrfg%|ld}W|&g%8)=Jy z)(g=V$1Mun0BOoRAQ#U7V@D+Ts(IE4aZ$WbMegxUx#;O(fASScc6n3fRb9{lX9GWn zNeaZvM9Ft5@N=?Y7Xv>hIN+ExNgwgtf9pF0=_BJ~zsGv-I^!7+TkM>P#vAQUKhsBl zzmolT-a@<*@s2w!RIWc6;O;;nE8YE`&`60w+dXcZ<_dgYtnt2XwKi6H!CHlGGQ&wt zU2v-y8@#Wd`)rmY)T0_WVW6G%;GA@gopnhWDjYLKvDcNNM7edAqEfyzH(6o}qD2_w z%U-cxv=63*6SQ*DMwy~r604_U&d68K969RfZM0lVP4*W~6%l*h$Mp zDi`YmrR+q}zM+H8e&evG{Z)<_=cU(xsmHsp7A*$VoIw?(uBWArg!LmLC9{-|?-e_^;r)@UmCsxI!| zWgkeSglO#D`^Z&`QQ(fP-0i?4~$NQPf& zA;o!rGT(HiF1g;9{l!l{w)7Zbmfi#xl!mVLJ3kQaf>bd^s-seS@!l~=xNFTf)&j2! z(!pIOn{ScE^4w*V7{BogA-?Vx`WxUiFL+5;_iF5@8};^@~@uBg5@aIK#ySEi%W@?|P; z@v@M$kwPc+Hp>|yNVMORc6(8dDjDweb+sKAQ9USm$xi9YY!ENW5B%6-!~RZqbgOUc zqRM==?b1Pz645F>EkUqS%e9aam}06e%Ry~?fJ$uVeMg0;FGRElEbvDmZc$&7))we5 zNVuDQ-gn()oOoj`(@8_2ZuD&%r7IL8Rk?Ek1Y?}<`)Bkp>GQnYt^tpdx3cHqH`krUJgL>{VT!`jwlAxBh)~gh+z-={t|0eI6>-*lW z0a-1smY}b4srm>6xl|oD#K^36C53XTFNq%RH(8<={pdsAYptcCT&J$HO4PlIb3gB= ziu7@t_JI^K)vrC|PMdA?qzm43>&HNWbIo>GsJ4!1rc^gwMa!=-pOfkwI(pihp3+o_ zG5=F$OuQyZ6NUrYg(qm8q^QuPPNORwu30*H&wF{*Be|4`;mJ72(zo7285Jwo$sj znBjk1M95_kbQ>8~c)%sUuo+8ibwY(gp*ncT-6E7Y=3CW+uV-ZYAF+PuHQ#f+du=f2 zW54+cVfvfwE7tm&{dzd;v>zy~?t%QsZr=?6RBCHxPxVZ8qC(4MxlMcYaIHA$zUO-5 z^zdhSlF-^fH+$OwUo*ryf08Xnf(Oi(?~EoAMLJPEchkafD;;s+KkP6H6$`(t40Tya zszk21|KO(jv}}zR1-Zlj{F4CTI{sv)m%Qq)ZVDXV#yT0MoglXvtee-(b50?Gglizu zdOvckI?7p7U1$hZzlL894>Zp{xaJoX_biekgsSW z94*|gzEy5^ojNMr;YaG2;4PgURw~#f4Ak3J7nC{U4aHjdgVvJ#k095Wp-`wIMcV7` zkhhiEW{ONBO|j1jg}6hGi-Eu<)>y5~mFt2$Wuj$x#%_6ta6pMN*NC)L4^f_$CemLd zxmmh9B^W5mea0AUnH3&U;wjgu(L~pJ-cXCZYOYcthRJY`J$`JzbIv&I9V3O> zWsQ4uwm`UPfyQ;5^}@X+)ej}wVV;Zb5O&47g?&s;zr<~Z8ETXpOw`C=BLpc`q(Y1@ zx?O=Wnt00vrJDGn+toADZYMO=MoZ^}>88kUjq`w4o&FCMs!llV%oRgt6@e!57>7(T z-skie?STKWqZ*h|+qb;!7p`?eeRcJ9hcCO^&-}?m4~W1*i}bI)x3ZOp5Ui;feT3=d z-oFzz#+j$HLoT_=dN=vJ=WP@2tGdWAPP9vw%649rDxpSImye0jSfQ^~AoHKHOG<@b_Vzxc zhjH4ipYf)5zQ?Wf1;45$XZXi0T#DM#YBYN)ov_ayla031qt@7GnQ|Qws+%4zcwgOs zpnJJ(ng(LvV5QP(AgWL37C1IrMFvQTOD!|78oU3xZuMj5Y7i=4-Yl=#9q`5)3e90zR zBT1Yy7P%&HM5CdS|-_9Jq63N$~vb_wpgt0){7D;#ts|wwcRglaagigZ`fw1Ld{*Y z)=*3IG1wZp!fnw-w&_+0@?9I8_YGUU;-qgoV6BEmnCiHDRJzVA&+Dv*Onq&2RJkzC zY}ed4XS`;<6&}%3Ba@AC+&iw*#xCz$V}K-O-Z#og`;B)(fdNiP6K|0r9~+icDsjLD z^Zdp-DN+>Jr?xgqoN!csJ;lqn$989RQe>SJLC))Ak#{V@FLV^+S1PP@RwKjYd(AwH zRZ9F1jOOmQL{AT12HD?kxz66TLI?G1)!aBqR$6AZFr5XfRH?B%&$z|6jdsLvj~V7# zgLIXkz-q_U)mwt{KzOv!OSWn6Ub(XL7V&Ii8rjYmEL4ab?;5Y4-RA0TsLe99 z6{M{khYS^Ln}QnbQL*Zns?Wbnt^1R@`8PCmYmMD{g{JqrV%_r@?_x~%OU*s?zi<~H zWqbYJAH5~j1Io-6<7V4+)kd%ngisIICfYS35UNZ<^?RJ9v^s^2mZg0l6zNec(PVyy!f=@odx3ARX9*A6){w6fn{)$wifP1nYKlEmw6 zzLieesI#sb*lde7Qk`*)V($p?Ycs_e<3-7~>8qhILF#!&Ykh3f!%6#mQy=A?v)%>k zoUqOUGwgA}LJi!Bm(B2PA!a$|qNQT3Qcq{$o|LSP)y4`l#RXlYnkh;@+szRvUaTHg z2(sFJP6~Ci-EvjgVUTQ}lVQGDmMbtyXPKHfD_Bp7PANCWJ`=SyLXZVYG}XXzO||v1 zo?3fPFHJ0v;*_|LSh*_Ya%}Rl_e}Agx4rGSratF$QXMc(d#$Y3#!JQB4U%WQVt3o_O&fLlw;}oe|EXN>bC>a@!6XSL*`}w* z?C_Rd?w4$}b2iG9X_d*k>7tho5`?KOOM5{g1Yx7^dQz@CC0gW^hN$wIb?W$`3{B0H z`H2u`^=;7Ge$&)*(gd3XyU#+~Jm`c=LTq!JN3S5H4hTdu8mtsS&kE6G;r zCPhyhOtw>`HX@~aUrX(D7pzJH8>DCtPMc+vC?{nbT*I}c*sJIYO45I~9r312H`b_- zT#;eCCC#n>O97t$td)4m7T+`CQ^pdMJ0{Bs9o(v}!c~pNDnxS2%RLxJ>t8UDQH~Y9(`X6Cv36Q z3C(n|&JIPcvoKIfx>2I{wEvh9z7pS*E5$FIkmOd8vPEjBqb_1(S>cRsVg(5m?vS=} zOx8dntsS+^-5QwhF8O{h$KyJftdk=1l;|eX@6~pjr=@w=GFk4@#df_!_>-er>8#u& zx5$#FzvJrZV72x}8>FsHzAsv5qf`pi+ult-|y2J$zXZmt(rM>WZ>OuGOybMF+iYyrwoeZ;Lis2Fkrn0>M;W ztrgp#kzj}XRZ|ZdE6rNpMT!_jUe>}kTkTP#nL|2$f}0>(rQn}=%I)dz% zANYha(~Xd*#3q9-D_(b2OT+)@=;ku->TPUI62zJgqtshM-Sn9jYT4;0(*680GLKKg zT`cpWZK||zlTZmF9CAVrRp#p<2DNl|$O?!AC+2nv8MtE0>7!9RZFWYXNuiE7~>o4Nn zYo%>!yG^vZ5`_qopt(T`%+^AVRYEl|O&d*}wOUUR_M2y{_VP_}uRQN-qqarTJYtu% zigfUbV4st3nQ@w$sj=>sJK<*QEp$i+bv&(&fnL@{FBgScua~nLinGDpdfO_?I4$(G zUb3%SqRc>h#To9TId0TRrtNYyvC$@n^>ve1T$1gg4tjV;Be!@-x^J1Ot91srOR2va zD&HYpt@VITW|*p_-pXa_Z?!!-sD(NvIH!*|XGKWX!)d=aK(3Zr+pCjk^~G7OpN7Ij zt0z-^9aXAy%x^vAeJ^^(Tq$}OAyt-(PC8(Ve6@5EZiiC4l{l$Z004jhNkli?b%_X<&`;^^kJOj+>&HlP0;_^;)R( zoJB^fWs|Konr^>bVZN+~Ow$xyhC%yV27k1AYNJrFV5e*{z*GfB>tLY->#bC1t62^i z=x09XJ_D?mroI>(b*wH*ow3$1!Gg6?CPYKC^%5aMjM*O3#j|#6>jkYe^8qY2+|laU z^x1l;tH^Qywm?b0gD$J?#B1~)p7h^fs)oj0EyF1FwuYCH>VDR&($i)e?5E(LJ zT2<&{oFMfLbG<4P40F&y0|cR#-XiR_M1p2DmOeI65N`2Ljt@Df{w&{PBeDa{F;@qX7 z=|bHqK}e0?3~}Cer_@(rjy-0{)Leom?a<9}?`W)>0#kG|&N6vow9!zU)aA=1c^4&Q1x_l*a3Y+o29#Mx?3gQ zc9DAM;-nqwD_5ja8@H&k)?y7r`J*zwuvc5F9amtFEDgj-)6En^71*kgVq2u!VUWh! znXFVlwUkJeZi*=JVnoSv$Pl5TWUD7kTl-8iLS3!Ih!y69I8DTG1nP!dJEM`u9dnf*V{=4d|AA6(ga)R zq5(Q9w^v8uW-1eIi+B&1?~)cml#4gdW`(X3Ez~@*itV;s4+#z$r_4O@QcW{ZoN(LJ z6Cpxhl@gWvvp;&v8{RU-YVUc|pG~pEdIvSsS*mLc(LyU51HSGtIts%n9u|m2AABx|rtk+x$O3c)&`tNO*bXiYg zij(@7pw$&f>@s0^Cntnojo2fR4aYl>sFJ*Ii#%zgsX3XG@b47wqYMx z%MQ`NVp|=tM6ouy1O>#oIDwA|@hxZj4uDcm7i8W6nqs_9F}o0%z=Zz&3lW@rqJ){SQ*@Q(v@PL6Q_ouv4ly6XZHC-4bKnZoEuW}- zT40_$<7_hDPQAsra;`%FsIi&A>~@symU+R$`q^%yK?Zx<0-Mvub%r zQ;RKBPpsH#%AsWY0~16aSgHdeG(bJ8w3jMObLFNwsiP!8f~}PpIKO$ybP#HTl>ahK z#f{!q-|bg-7_aG8L)_%EXWPB)i~q!Q_ungY&GHlbCCGM*)>5mZ{&1c3)<*LhuQW)a zeui4*W&6adbD7g9cSL*9D6q_s>MHUM={2H@NQ-TiBj*Yc6^?t;9Gm4^py6c#J2fp? z9|cxhqLxh2a&7Ru-Fo<;Xhb=0u_0D_TakeuIrSaksAsHlw_47+PKX(*4AnxG3D$^` z;<)h^JF2_GI%r{`MJ{^HapUzi(_&u`;aOeuk}J%+X6S5-y2jgRnz}k_;TH~zH%O*6 zt~EuxXsZ=zq(Fu3ra30l4rv-l5oxn9*UHsjS1p`UrpO)cb;cT#HFVBY36=>r#B9fu z8>xw3TITcel^AJ?k%pP+9dUZt;8E+`Wwo<9i}9vPO}*Zm^i zP(|zX6sDsr)AiHQJ2v`;jy74Ms}w=PoV3uljF)MF1Hz?B^sM8ic~Kj|lB=13KO7Fl z*rQ+I9EYoGngQB5Wuf*q+N!mK7VE9E91qAd*iaX(lB%aFyG*vw1-a(iVw3k2YhJ@4 zhA6W@U%}!Wm8Ca=v=wf;nc8TCZ3Nsyk#jl-a>O~^|EuoP1r})Sj;ocVPI^VJtDy5g z8#c#k-?|Fe^q;dT2fgZ`mNu&r?(L@2zQ}KdO zA*4Dgsj^#(%Qjq*<<=Nz^c9~Rqk|zv>uA0%Qlr8BUmEl0)Lv(b{OUMH}II z{hjqaEo{)jD2JsRr9yulw6V_^cX-hjbxgF}981+QR&7aE>Sv_6>Y1y|NX;!&V7*;F zXPdc#)s-mRVkbOoyA&xFB42$I4A#w4#z?i-47=2oAxwxg{Lc4Gu+(-165QxJcFLCP zw9^`D<&)+=+;K{@t|mh9{LnPi3B zYU;~>+%CxfyTZpyZFI+F8O9Rdw_AxO*6VDzmR{9XH%-0dq+znu7cX9%*A=>6Q?E&M zw*wxtR~_|)n5f9L!llY`k6u;_@vg)F5xY%wb&cj-J&dTc15U?MD)Q`BNn~De)JJ z?6uZe^(0DiLcdQ03y9R*DD}%cQN1~;?9{ME!z)O(Qag?Q&}d$; z2$4b+nyy>*bcc`35SkdKhaPS-)|cF;N6pkyvOmiAX9K+|qne55^1@cQ>5gk^r?KKi zxS*8}^aVQGp~^vf)YVIpXs_!mLtB-4c+@)%*lLRym9lMfi#q1HQ*TRjaYC|iqa~TA zLb-hR;ex|j%JjY+Zc*W<>YA#TH;gh@rp_8TtDZCy)HXuA`GK19_0C(Rmso2gyWV++ zeZfF~)kv8mlGM}9W>rSZvOuBRoKn|nkJw}UTej_rj1{ZU9a`ILm@&$AbVw~tgsHMm6JJr{ zm|KL)vs<_h&O7B!?>MDgwpefL?Pa$aZ>S!6>f_D;WP)hDRC!LQcwz3Bg4$-7F34dK z;srTkiX9qgXo3wI`mV<`waz7td|j@SmI;-wv>NsEkJ=u;cTD3eN~c9~YYgdav&0S6 zxFl$$M5RJ^XlJ*0b+tB0nBF=#EmvoAwHB_nb0!FJr{*T=Ce3+GEm0!FUN?wGv3Cv8 zNf-O9^&PIR|D*0zz~|wbS1a^=&_`IMu?UkLb-y8=*VWxt`?CWQ+^UCHO%iW` z>2eHok9tO)5iq^0S(rBZ z*>9>886S#uYV!KGkSG`z9g-wirIt2JGV&_lCR$%D|E_C{)IwLSw3hmz26>9s@(hvT zg4sHM{h*Dv!vBDfQ*LfKVW$7zebF;PAQ<3W&S0>&Gs~j@I z4hM~PL9WNGv00+~l;~@pdBXKo?2uxkHMU-c65+13**?v6)!bUiZq#0hv(}lXsU})E zW|m!6DYj589jz3kx5kQb#%{ke!csBj+T)1BMr-0ZJKZZ*h`068#ta2|$k5Xa+ubGD zBF7DPz#fgo86(7Wdvq|=d*&Ezu=Q@$Q=y-DT8=2U80nNGS@Psttw4wvdCF`uRjGz{ zXsw&odilIG<<8APUt*g7e1dV~Rc6i;!rpOFFCXCz?x^tF9>REU?85I?1wBdp8(k zfZC?nZG_tK2=ht9=#TiXc&fQLap=5L610uUMuMBka}LHfQZH z!dB^ei1V~5hPuykFFU2oMkU(%k;in@z{_4YxWSC6T+Do|X zbjRwf_J5Tg(Loc`b5D(6;ED|6ZFLOz%nt6oWtlsw2WmbYJL(yKc1#;720EpmZvTL~ z#s_iwaK(P-l5QXKW6CuZ^&lW;qqgjP{UJ@7n1h zD|OS>MC~>5ODEhd+MB*&vpLSI=d|^%7wwo)X4&p~Bsu7WzV`Wz!DMAx>*1+6*0xQ)-%PL|bd5R~_-NGYXWu z*EaR7*4O*m>T9PPl-TK3$j{} zefG&RSAkk~d*3(QY%NxcmS>n`J2BltJG^0s5Q%>3UXga&RW0TFH>*$-P%a5p>xv>q zl%6{3s-a+;{LT%2sGIugXyv3dy+k_cvZ zyrW)#5~tX7!!IM`Kd;gTZwqnUgC|7_Os8U`9-wREq!{-5~#P@T1MME%Rq zTgPp$!4`Ef0HDpY#2^vEy=bvJ+3HB*)nsp2e9S0W+|(ZWgdtaVDF6q8*e-Ae84c3wl*i!nuv)57#nX^z_z zSzxeECTOO$bFT5UP0HOU#ti**^_tdNyWl}*gb4AjljfRkvmGjQ@g>*kDO;3BZF83j zPuZ-cek#l{NVv%ob+t)91@2ZNNIQ9QES4+5BJ*Y1=8WEAEOM(B%7r>*lUQS{6QRU- zYo%(az$2cwK%7twluNVGj}4b*gHn5)7NJt9!>-ZD7Tp!uXP?=+`Hu5WxlRlF)z-rn zXH2odVs-sWUA4`&&3gOXsoW~hMoZFnyFhd?V@JkSPJ-W@~a8MB|(z zify!5w%hdgmi4Z&S!0_u)K{6a`dO+#hE&U~ca28Qn5e=a`Cir6c)PrBgITWC9s5jj zi##`JtEo+DeS&Ugkf&tp?Yse&cwKK}v^K+By$o?gZS8f#W``_yPOi0%AxMZGu9IiK zLk?SX&t)p!QIqeN)(!Hsn8_kzsupDc2Hs511O>$fdtxZ?tTF0%^)C&qF z$~VVqecYp?cx9T4b4XWBEOXxN=16w4GHbL{OQBbE66B~bXVK4dF1nzb{f260tzg$$ zW{ZVR`kGblG+Ql$yrZ*i=BaIzaL)*JlTr&M*lxUbmTK)z<+|A92|4!JAi^WM+2Zs1 zS?`<^Hrg#nQ_E~uD#QUh+~`|Q+TbSb?Q)YgRw@+a8g~&lzsCi7sd_NRZl=*<^vidWtk%jzmAT z(i~%)cfv}kI(=#ZV;xP!i$SzKB5QOmw=Nq14^x7O+H&QBR-5GvOcXYJD4`;JO=jS92D~xfMqZ-+1j3}}8IbyUea@_1a{blQ6 zm*d83Y^Fb`Wt=n@)p1H^Cw$ovecWZA66|zVkYM@F$`+!TPFASn>mCwpuG)sm^^{I- zG|@#p6glQ=dfRG}31UR)CdnZ$_>#`TMXOcaF@j?jSRhWAw~TT@r36!rvCS}vUUce; z-r7+|bk^Gt9WB&B6vBjyc2cE&!o4q7Tj!j1+Ea>b5oC=9+I&ivTaaYStkzbr&B|&3 z_TTcl1}+G4pC|MP!lY{GW#@cRhANF+ z5H3oY{kF+grPyhaj@hcjOgn_?CdvUNI%-l~lsj@o$KtbKSteMNIkX1TOrh!eO{qFKbB>(_1b&Kjmnf5D9~f8g(A%@(?|0_ zr(=&W+r4X(aETTu@whn_snSh<7ktT5OZE6)0nQ$nGr4=DHfseTBn#$G{qGo6nNX z@rpja^Dm%NtE-tb<^JS$sXB?(!(AS5y?BWtOt;v6#X(@p_ypODl9QXu@^lo zOatBQG0S-=*7=^6CK{l%-G1VJooyB4Rw?$W&{j{=boG#)_Bv>rn{}~X7b6@pTP?k{ zk}SqdS;pb8ubLxWnZ?#>D9uE-Tc%7mTfOBv8BV#RnJJp->_x{MQeOkx4YF8{E>1Y< zgiG2>Fhv7#NHWudmYbumlS-X3R#!O+1WEP{8)`6hp06 zsgWLXOtVV7Z)tCdpUBhF5D7Zh$djw&c}Ro-R_L#Xax?Uo?vnPJ$k14*GSl=H<4tEA z)K;({AsWfB-*5G_-BQ^WdBZjjD7DWV3!PFd%MPW=Y}D3Sw=1$xn4$lRkYl6OHFA`? z+KH7U&vav}Co%HW)5i;L7UnT+wexEyCHRt67I?%&$)cS%$xuW6N{~SoYN&&7wM>yC z(iZVTEtVldxFEX?_iL@~^_Xr3YW#P0^)`#Wt+y0s%$2F0)mFJ*p(b9}*HFP`7^|Kb zf6-oVP34&($F&;D6Yd_@x<Q zuK#Z@NxdiI>g0oGz3sZ{iGk0O9rt~?e*Q1WFLLd3#A#1CBSE>_jnPvhY0@;;PCwUb z;)wa?m}iO=4$8LAZWo<%NtH0A{w8f0p}p5-yGF1Ob2SdkKkT*CXyG_%YxNM-R(~in7B*yEMK6==f1qt zsAY}QMu@h zuw{aElB}B?^E4M?gji`#TCa}?!T#Wwp1QbThu-#Bt-@~I)Rkw2T=mtp%&qq8ZIHJ_ zTI-~3zM<5M4$HSdrdusAMYwrF-Rr0Xjpgg$oCMp9G*fTy8t59+b+lGHBW+TpQn??A z*U5Uh?(kc;$goU_Vw)V*Q485F*y@mD@*EW6Hww(tOD6}EI^eWgeq^K$uCvi$?RD`x zVg8`6UV7G8)q~#B#R18maaw|XN}bSAPX$WMv0a+sqFm?LKg^R_Wv2p(g7A{IHHP$3C85-Nx>eI< z2HD{z;bt2p%p5n_FUdxi+-I6RW3BW>!>raw8&6rOlT|J%&_SGqiu_cRsdnkCsd6v* zhPr+rMzlS;d?E_J4gTniM7{B6ll5{!fv?CCYnHn-@T}!-*TP(f{8U2+-7V5@oYq^c zx3rNgMY05cFy96t;+@vTXc^k-=ZxtxU2l{d)HT_3(@pY@cf4=EJW>B;RD&P3ttM&g z=Bo)Po$|Ut+J5HTMTOs(*&uOt zsH45DUPd1iyknKda$OYXn3D#`G*>-atn-+2o|Ek<2mMi^gWl9Zlv~*(P zhdiX7{mzM2#~YU8ZY>;kM7r^|=xdU#t{3fu#wtB5!a;l8s7Qt*MtaUNAr>g}J>Qlh zNQS-EiF2=?c}RPk?aO zpm*Ku8XMiA$~q&ob;N77I&ZnWzyMrJB_^roR?9qTzq2;mpr1m8awKaY>|?p)3T&4u zM2yA4R2eJRDorKWVW0s{SS`z~$~~{X2+!N>5gVneZN9NOY9~pi9X9KSY4SCaW}MCP z)VIWRZ+P2$r|dDuTzix`V3TlFjymR;1D2XH>bAf z%%B<8X`wNexfmc~iM3XO=2$PswSrJC)JYQ@*R=+|BuK3K1{$T62*ouDPgRb{7b8KU z7Ov4w2rgOby!fjWsLt5xroTJ>x5H1}BwVHS&TFi(c}^HD8tJkf(n+M=ny50@Vw;V% z!zOLKsg)jHa=UEzNj6Ke)6(=aSwF{2Hp&(et})4BU1fO3eX6X|LzGp{YGOVHug_`fEi0t>f?|)$P}_O6C0peIRT^0>&QNotyFs=vBTcqi zuqqELlkP>4?l(&h$Gz_sgZ$ZMwG5NtfTzXClxKtueyPGu4oURe0RLB&IX0-!%wdO= zSR&UzMe-e0>VkRpXk@ImD%6wYl!tsthGwFrTPw*RQv@4*Spbk_n+}$%GSoqJbktlJ zmno<)AD} z9aZAmf3PgoLPy)=X`sw*fUiX@75RJ37&z3YIkmiV%^W_m#%#a?kvsU%H=d@NG(jBiTOT%>gh6}ib)N8IW= zR=ZXwS)P)pi5Njfnrfr3=Je*$fj+_N=$fvCDQx|%0rdX>rmVpDZ1DLc>3!K*5gkIYFXN|d6Rlfn(OR6XtOG)}Z&A)2dD zSBNlWiuDqst(iJ`-4P{Dy2(BzQY`gFrP?Xa$ z3pm?TmS`y3RtJPTXMu}$Y3L5aq{RV3VUSyp<-1k2pMu8mKuB{J1nGmQ=4j{j)UrIXo3Mc3X)~C_q^(`8J3#lPu{dzmChdU zJvfd)vF;+*L2p=Suz2gFJLhJr)X~-= zNs5f}rn8=OOe5V~@H4mgqF}QghZd&xSb(lnCiS-mt;;Wg=k72E1j?JTxcs?G)) zW{jpTc+B-81Dw3KX)D$#BR#C0U<o0Z6S&KX6{I^wj=rg+aOt4(&oG{>Bi zW0lu!v&1TI_`Nr57AjVT)80otn{-tV!A=J_W~i{sCD}Gg4Xz+{Gb3kgxwoY}j1y7_Ngk zmU+rudOD#*wj0zDghTdQB3ZH+Q{+0YjlMSND%WAV?9$tMWAzcDk=KoNT&fUnNiohr zx#F#KpFM69r9_zb9db}pgACVJmLYESthz>fUl;vNbIDF$a=|nOCL6Dvg$Al^rKNhv zm+F#wrb|%YDmSTPmu0>t(O)c9q*$Rb;+!(xBJ;!xH&J6ZN^@F!EA7xz2TPIch_=p2 z)?T=L&nnW-SKaPfnbkxogN&1(X<6m7Y))u8rwt4m`Hq}1ub+pN5@xE-U zsUC5Iv*!A%U5+_~x!$wH8ONQr%2aEeb=XcPv@~2TE37cZbaQQ0BG_)L>`*B2KR)-p z#A5v}W1G0lVQe+cP5)KoSAX9&`MP?3Zk663e|OUxgCE+8ggK_qxX@*Xkr*LziU979~`HD#?aQbxM|fPC2QQk?!(& zH~X@77MX9FWOs{1lKN@|79-JYUFp>l))j&!G ziPp$a*J@;^H*MEUieQPl>MHhQj{j-*i}mveHn;^YVs?a7+ zJFJg5k)G7T8ZD*T<_ntHV82~j+n~AAYMbP=+Z=JbGJkf;c`< z6KRun*4QjfeQ&CgXt1ruTc@!i-EEa>v(7f@Xr=z{m2a-=?Dd#B9=FE;FB_(fCN(&S zBZOPxghQsO@1k0Q9hISp<2JfoGmAwC_BlEJAj+L8?6A#h`#ox}nTAU-ORP46os%z4 zkPtzFK0*NK?|1e7YJxiqQ)Qaj8e8QW#d=vTL$q{}f&6lV1yZ%N(`mFf)Lt!Y^`M!0 zeFE6T)q}IeYG1aWLM5AKa3EaU=__`4#2&4sm|}`e@`P&S7k=s<<8%ygJRf%4B<&S@ z(IXC8qK=#7D%V%AmU@UcNdv!=u8mGt4IGQDQ`=<0a%I`=pmAmicAaS9vaEKCeNvqC zuvFRJHOwyeOO_^Bt|NYGnO1Hw&|s~Vc~uXOsx3(^Pw8ZYmZn?mKGzvxkJs&z=T*C$ zx6f|z>bM|Br92mu$+z4Tn_N;$g(LP_Wx6R|@vf;R%U545mn@gB_J1VzSYnB>`d_w+ zm%%c9#`L@o`<5JklxOM3Dh0l8hhYkh#xA+mTCSNdh;z_v@A;f-Bst}jTv7H~E<{@w z{lO|nR7saALqDT5zii>kRXHbLuy|E+#Yh#S++B{jC>80V1o>bxypAYS9r5jeWKp>D z5(7WSNm1KC2fd_`aYCF|fM)Le$Zu53U_l=#(i*Csn_OqJiN33kfm)0DJM-@cZ1V>R zsQA##$7vh&wZm7d^PFh+=aMpf9@o}Hg~pj@n*E}!^%V`BmhVS8sim&fp0wNv-|>0JhtPrhD&`q*5;esvD!a~D6=vMWFBHv)EjMP)C!QxG`T9)0`XzDGSMM_lVg6)#+ z7U4FpTP)rU4!X%k>DoK$n^qI(Kz$I1{0;wBVXy60TO-6?_j<}~4|>ipeMMU*Pmak# zY*V3uaO0g&q(rbrrnuJsXzr4Awz()lj!XZG%bLUX`K`82d%;QVJ#Dx5j1#SXfPw07 z9lBdA^F#IJ1-?&$mKrGWzWx5>Pan!k|9{9*GaM@s`5`W;;U6lXb=SZqBSE@2o2|6W zVLvw9&x8t9F5PvPQPdRrjc^A&=AgOSc}SKY%W#*M`K!gIf2=g=Xnwzh!G_7qj6f~CZEo1aYg=5n6L>qVe zmc?#W$CDDQ_JqTpG{|AksB)iLerKdx%<#6_#;CN-T5);^cO02kI4B5b{oVwRyX3o? zn55Z%;C?OmkVm*I!`NiKdp~7rjen(8`JH!t-+1SA{+Nnuj_;~6!P~Z5Ay2ODR)}`g z?>%L@Q#P1rhG)ELvLlL>ixFgoC5p9kub+Czo%%@@q|C_xI;q?uDbl1!79~!a1mOr4 zDNTKe6056{K?u>(Fr#Zkrkj-pE{0(9C26k8dn$C2V7b%!36?2K%fP`63bey_`hh=a zd=(vw4@v{|4A$H%&syxHCSq~P62+1}G(dF1Di29jX_DwGl+o6BS#zcC60JBudAHso z7rm~HH0u<)NpH2xvr7kAxXoL7Y2aOLo%3a72Fo&2vAe~X=x#+08!5|t1vc2JpD#)i z@4H4i>jJ8~w&fkxn_}l-BOFOKI^|&}tgzH}=On2Rx&KvQh5K9L9D_-TEJSuz$|7{7@G^cR|9(QUY%FsIfHPrAY0S*yE=XMcODx55!qzXLYaRgLM9T4!iv_t=*5Z zV08`F%?Ynqs)ag2<(gxy7FXa{;$`S4OtyCn7As#xb*#40Vr?)=h!SCftnmdc+$KhQ zUvjHbOZ0YLU(Fr2)|+DWw8$vsrdlk?R;zs5QS(JM-ZfWU(Pk+K1S`D_ zw9gc2o>ri~T9&DFLAKxfl5&OqB-0}GU2lQDc-}RpIpsksZSw^e+-`x3uG7U%r`?FR zh3ajKHnvK%L!5Eq%yYk8>KbC7V_Mr{oW*8IG)}tp*1K7fm-Q89v!4iZn=&1%(M+ej z>44#wpvsdT(a&-#ofD<2U5a(G-3i+@wNtc5>=I;{XMIP1OAM87t2Wiy@jDJ{tGt@b zuS$Wie|SE4opnYCw_hXoN!Q(VTIiv%GfGUe&T_9=YLcZU3H2wJ9CSdIDC=xeWT}g8 z)kp4!B)Wpkw^+T)3fEz3OAxBSL^IWve8m$NI3z(ZYMUudQ-nHYx)J(mW`Tq1dqS#h zLJX(@?9cWaDY|Oq0ZBS4b4D*m%~I(mS=t8lBo0c_OG*u~;dgvPV=d))MJF*f`o7NA z+V7AA-!V=LWA(Dji}LL@-XKXztdXe)l7xC!AMsk@H6sl{ge@9XqcIoBbkN%;}S+0>DhO6>3yWC=srK;4n!hVB{*TPwmzOJ?< ziu~M<|JTga|D5f$*yjQ=PaokhvMh2-brbc!-HQFfZck|H*XmwX-TH&fX@Uxc9y3}K z-3&0^&Gu_2RU0>0hjdMJ(NAk_w9&`sebIex)1`*Y%HJZVc(H**cDBZWRPk-$0W8y2 zb9E0aZ>3H4drGSsZ*{Lz)l_6htkTe%Xk?mHofOz;oCE!{} ze58WKl@_6a!Ft>0EnCFtp`-1V>2_K29uW|8T4ts3!o1}`b@o!^JzEVnI3WI1<_Y`! zQfotO_PY8a{X(*Ibk;^KYrW^NJR5yYtW_4eV3R>wo3FlJj(W)+#kNTCm<{gpsGTlK z_nw9NOEpl5Um?s3wztty4 zTGX>gutCUhy-ZP7c}}KeKbC2x@qXxiOPsRPc_j`gbjBJ9uD45`=Uno#P-6pwnIZP; z;-t{P>J<8;7UKRvs>^V_)KaCM*1`}hOmhbmxlt#JH21L4^6j_S9;L34>?ihVD^@$} zY?7d!Iyzga{}pTk@%o9hQJCcF;$@I{p@`Si0k1fv{$)DxK~`I-l`t`KEi_CBLd}#T z!)x}baJO%&XNGc_)uLfl{%WnJZWLsWB3n(eT!BFr$=2FlT}2?sPHR1MSrKom*YwfC z6#HH8h#zXFsd?gMc+8_B5T&_(7RvW69R(rHN$UhTElRp7ja7NkPxWxOU{qMFMIbP& zvdcP?jPyFao;DhK*)pTVS+Box zkK3iA-rCz_wmqtR*CQW6g#PcbL#Dg_vQh5K3RERxKSKqnH@)YlhFU7?W8DSkR2pH6 zepYHB)j-TQRHpxtX^Rp){Y-PoB2)<$^pSMU|9|`M5h@j7(o|F*($eaN<4F~&l#3GV zgeUEATQxAY%Ci>umSNIRVUW8dc+W-~G(xZv<&qS6#`A%{(^(yF`KjPQ)jawil!_12 zQzu*e+^xRlPLDcxl?HfeK)~fd4QJF$J^O1+f)v`Pqt$AuFxymXHMG~Sd`%05Vq7cH zca+)YqDHiUTmw|O%*VeF~BW9K?*_N4Ql9@R%#BmabxhZ2xDKkR~ zX#;J;>=+U=Gcz-@WSL18OW%*2s*)*5@4er22L zi{21ot@|bTk?9(G!C42KR;Ys=E@-W%_w?1$1s5c{WU}54i}5*U40f9Zw(BBAduN;! z5NWSj?vta!fLc4&(g|FUDk=y_JgmSbzi`|EzY*`EivmJ4H&`dx-nQIfw>f8&EO+^r zRc3e)q)JvLt2#uvBwv^dB0td#mO9l0>?&t$vCt7Q=G(7@3`thl@8^E#kiR)-u77&o zANda@TmNqN$OFy#LKXmdLUvsA~s#j~6Si0W`t+pSTSr7bFf)LBC(L}LhiV$Y57T1d5pyH19&+(wUlthn|6{W{{C8v3a! zPaAq2+G))a-98&7tM3-OG!cd6o|NVT8||}Ir4WgRhzmC3UF$B6+8J!oB4C;Xb$!^~ z8W&8UH>i*!AVih5daANYg(NL?vc-9AgPf0mi&hI$;*27dN_Eg$KgG7$VF2bCDo&=^ z`UM?Bq*Twz(i$_Yzp8R^y)xwWO5ydjH_yA)X|B@^$PEWn>5aKEtNU7ty`#OaS7#*W zf_dmFOU?B?-_p+vyUZ{_o;DIS&{bFc?6Fv}WMQUx(iXGbCf_#Q)R(NSl?Iw=hzQe- z7H6^{7MO3Q!wQwyqplExEc2okM%bXGcIKFFhe}V_>b!bZJFc;4bBvZ`f?J%EVYViE zdCNLIec8K~i&G)o%gQ_=&tZ`kTc)o}7u;s6Rfg!JNL_235TT#VuITJ#++l~;jC5Mo zRdNpL>Pzr1$udyxu%X6V;JiI9Nmt+73Pp%COu&4R?sA_#@`bzLPDe~q;HWmTvE3HE zYtRlVrD`E6SULKntHAUAZjxgCjn>vCpYa2ay2Vz@-6>SAVsq?uz)>^I(Z?xIh>+xE zbDUDC(k;SK=532aNf&|`4TW26hGiloiNZyPqzaL$r{)SQlCNnH$c>cipi3G^a@c%B zg^P4ldwXpb(8E_nsWRCRhrOVQEQ|d^OW)Mcvu4Q`>0bMMPhV@yQ>xrqX+d|EWQkDO zUe-dQGxiFxL7qk~`j%2{-D9nM|h)6N(BO4G>|1{n}b$pd=Jqu9aO@NcAc8B#PG5TE&WN)=MTDD_3f?gLb(n z*SF;xYJf8eB&ctypVjR43=tr3HbgLT7?wVYWDC zkENQZG+#dnqRntlmTb{lSfof3RLRuQF5T_%8{;J#C?HxZ12h$BxxMZXEzwbx)keFX z&Bhxp&eOtc$V8W$Z<_j!NxBJXw$ye>!ergzTd>0WQyE6*N}Yhs1j zR{5G!rf6V^7aSL=g=PkN!g(vSv(vpUn`V?8e>A{-CRr}YJyt09Cw#^CF;ZN%Qx7YY%G5@TXb);5LZoGKwDzG$ewy1|@tTd+yWbaew7@WLm@Ziz z=M4}hLF-yMex-F1g9=TbY*kv~Wsyevv`^`&jutjaa))^J<(R6khEgmuS3tfk5*4db zW|ZxoaoPx7H8WnU4kCm~b=pe~YbqY08XF)-s10VisKR;A>M9Nab+pw^fkiTd;8d9A z(u4_7&sbTS3)tzrmZmE+${k>q%bt?wInymP+z2g1E7nl4Nsel3urng;)WTsE65S;n z@eV8WkPQ}E<&P$4uf%xu{8Srt)V0P_?y7N$|Fd?gs?IP%1f+`;Eki5mssx<2$Ctcr zg#=+vRlkjS>KN=*-DM(1Gg(gB?bGrd(oH=~QQ(Nbs8pmy@HW?%ZM*wzbj&Tngs5Yl z&$?ZO?JgMUL6bG{ea+F#8D|w(Vw-c~Z+g%F_tyqf+;yWG#ud*x@6rDgfsOzDa`%t* z^feJK>2O2!s|tT{#5OOw+t+K1FbQbmUIR51VycxAeOu?7UdnK9NC`TLDzjt-s|z8P z=^+feTymd9{$-i%MoJc^iG`L+k)@L+uBdWFm=E-oZh=8YSY)*x!B(RLEyQ|3g?ohw zDEF4W)z_`PMNVkvWo`6OE>A$Im;6XuJ^jN8?QWQ~R+?b5HX_tDM7il!-N0oesV~e? zvpi5usNCjV_h?`3qMnnjuif6z(l>KJbQO(a!4Uk7B&%fKfJRsD)YXG}lGxmzlxcOHZtF^WCHT4|T}6u0%yN7DNO$k)?rUb)pj3q2mTP6d z%_0=blka|)&CuGdiuDw(NJg!5xYu+;KjBDV!MfKmeT>#jYVe6eHL?J(Ku^C=krqNF z+U$%Rkt)p4!p|J?m@k-XyPcM6t%qNlXo>Td%a)5o?R2-#EOn&`L5LJ>^w81;vn&&# zXAO53t*K%kIH#FVgo<=lxhx^x(@m0-W*TIn^X}FQVPZY2sRqV7Y?$wAAp{v#OSRNi zcj;}8`T7}QqB5!O6OB@1G}K2Isg7&m(+1jLy3Sg-EYBK~46#$bMEOFi$s(8Rb5@t? zcN&mdOGh@(D~>tmaV>2#&)(|!7MF}QNDIf6>VOcd#7fpuD{&5ME8AKB^oTl^xTM@6 z+2TbA(@eZ8hMTIt6hxY(k@osYG|wu74e+YtzHWpprK%Jv5ow<(R=eb^D|T9Akp=QJ z{6B2(J7lW6YYkDT;V_E5CDh{|sVwyWejW8yC;UM(WYi+zT^(7!slLw6`%JCImjnJ` zswrOev>kf;dT^Nh%^b#JdkhVJ#xl)=9T3G9=q(y&?Qw^`;>@>Aj9gKo5~R*^c{YLi@%iv7h|gM#2ul59_lvPEwlo$@o&O*PYF zzAi~CA2_Mq4Qel;T3K#~w!+0~ZJSkg=^DhkYxAnYP-wA%)tTl|ZwYr>@Hs+)EpKb> z*TEpgeru+0_`FcjBCR*mE*s6aUX&cUcDi4(MXtDCo}(VH+6iAZ%PNhOIbgjizfz*D zXB9YPq$;;LZk!^^JnDee!i{qpo1C&xy1w3Y#P`+n6ODYq9?d-CuwBADY^TM#>FQMt z+~F0u4(P3eXa(}kQ*MV)_gQDE6XNAKu0WxtQcST%cf+l+K%C)@Yhkf95`12V>za=sqd0^wb9FKGR63^O6O&{tfkrBH&dzmbQCJX58WcsYGd@N6+vz> zQN#ZVzYf*tD(6F{rhY4+gD_o`dCLVYY*FOL+Ir6>hn$wLkr%CZ)G~Vv(n-LepgB#_ zO%r3B)~foMLZxV-w}#G&Rw|}?k3uw3$2*Q!Q&A&?3(>?fbM(;Ia*Z6Z$E`u?W{h`D zu~3dV1fdFbXl^YdRgNSa`iLCdD$Kg-oAgjRgO~W2I{S$fE`vjXSYMPO82N9 z)_7B;RVLc)r1MsoY@@^)q1FX6RMxl`5lYn)r;{{&HI-I9!*78T?hvktW!i}nu*Ouq zWC&5{c>^@EPO@9H(8CsaPT6Xy`BG(SWSvgh2Wu`7cBzmnTsudtwM%;sdd*&awKmk< zx;x{5zB*Xub>ocprg5g5XSrKHqJsNBS;tH^s#e9cR)+DqED!#VTKB3{qR0_jt+z#i zFc(}F^1tc@pEcg^jr_<&y~KEfjWjseuJoU>b)slvZFgP|&t9j+=-QQUt~*7c!b}~5 z6^(M6br&h1#611P%Q4asVl%Mw*uSm$Jrf?H3#Ga4Fh zgyqh;&q6zVUWk*@b+O(qw<@;H5UIA{7B5K?kfyUkVlp$5oprZU8tQDO(i_s4Lu3n4VUS;o(7`UF)Wb$&4AILX4-0rzvB$mdoHPfN zs8DH`7J6$RtOD$E`Ks|{TbwoGy0g|l={jw<0#(j<&p@eSH8jz$OtVvgLialCUoNZA z*AOw@x56k}w9!t!TdJ)>K&rNiZ4+PXq=m`UQ-13CV>IN;(6}$BkB0?+2 z+~$O~QvA|!XH*K)+E53)W0SLr6uGEam4GUPJo}~Iu=aa5|eq*?As#JBuXDx9>qzfjwP4;!V zP#bD5S92Sb8F<4Uj&fDiPg`iJVNy|Pu2w-aUT%)g_S$2$IYvuBtkcf=o(pzM5~Z~$ zEuFPNmPWc+rPvT*vSgShO*h@7dBXROw^Cw#sd@#a+64TZPH$i52cE z3RD){->0#$u7` z-cUF@UN_P9=qFQiDJb(tt5ivl;Z{eyucHx)RM?_QrM_Y`&_$>Om6nSUBlaqwaK8w{ zRQ!+cOsQwRV4ejo+osH5AugG&i=)oDY?HN?YwjyH8|t&Zr&xPmaLPeDEm2o)jXM;p zp?s6XT~+rB2-jMK6EcFiD#U5$f~D%!Fl=$!dfj37$nd_CN{x_!5M89$<)GLg&*~=tRO+^V8rpzg!R+yok_Uh`SueKUV zswMY#*iSW(r)jM+Z@?};(p-*ct%TYrQo4rvia#SnsDik~Itjl&; zX|Ay*TjQ)Kl}d&ESFWkV4;A~nOP*48!|KHnOLex$SdU&u8*8!GEw<7;L;X_c8|GB= z?5f7^BF)fRGgO+Vc@PMzvQQgM9q@`{Mg+}op)Kx~Y^!C`q}i-WGsmo#tg$*`9TAYB zfzwXuDNJ*>*y=q!)U`zm{Y)`ctVfhspi{7(5T?8Op4TD>h*i0w!U5kj-JP0CwO$tu zR0d59S~?^PVe?YHPR> z`;Aq{lOi4WC2KVCw0hzd>!!Z-8o13Q3+;AZCl?LU$GaBlsG|eUs`7gqfH(9y<&bX{?9rRA{G9TW+EzVr}tD6{e~*T((ftY?9|zUFDc&ff8M8HQic6ZYalZ_efCYq*6n5v)OGzaoAJ3%c&-!{(GIZQ>8b9 z6S+SmS$xtOW0}jMv~;`C?sT^z+l>}3Ob2(nOE1SAvfp`$ei($1mTD^8Ifd?Z$X@4- zs+C;@G?wIDM>G^^n=J}O3lk8ov6d>VazsXu-4#$zxi__{e)cM5D!k~pURqe-h}OXt z!AM>7x7KDuYdPmg^+bsiFiWf|M=f_oKaU9)u+9z-h!iJWGXX38RkRVo>dzIgS)q$^ zZ4JC3)=}iIws=(&Q?9BT)wM_;A;ue`rvaKs*Sh+10yg@d98D#u^pXL#`L#oa=qz2B zCbn2)h!&cQH`!-&_k^`lt@nMC8!o2{9i^(p=R%4(x;Sie|pv!OOR=>F?;mIM@A z=N;!X*6}7i;v1|nIOsqlEtM=6A$Ca)8jgTjGPTxB7t1ZwSq6%XF-WEsLd>?>N)dW! zq{2T$h>{@FBq17FZ&k255F^$M+vQ48rM=evuAY(FJ8qfoLFXFK&`cNH>WagPeb0L) zyR1qtG!f%pdRXrTttAQ3PH(%6wN(e164b9IXlCnZx$O=bRIADA-#JE$U}2LY6AZxX z+KE(dwp$#MW4H(fp4HtwO8wot68*}cAT9ZrUKVR@nDh1v*WX56?9fZ7Iri8g(>JY9 z;$b`GiT4*<^%bVCHd1u(4|^SV(KbEI7Uv$jO*hj0cA8_9m+W@gm({n(7ZsSIR1@*G zxx-Y4j5gSE`5v*uNGVqW7JAhV<%kq2%VqmD4+dued+m3( z*UT`=X`Af}DmZ_rPtd?3^K`umjJxEDy}l$|wr@CrUPihk#_JN?judGkgxKX(UkdUU zFZ#2Sz9vN-O>Y8?=X=9l?$Xc_oocl&SDK=;Ebr(h{W^8REL*K~i)f9^HC~yfRw&cR z9vLF+7GaMTvh?$&L2@*g=K~#l%`o}?AZ6hORIy6T{_IhI&ttMdY8 zIxksI-}*n-mzra~hk^v3YaB+UDb9Q76LB&wo8l>xB>SE3>!+tM7c?|TZ+94Npdq@; z)xZ@+l7ebJ-7K@uMzf6Zp7EyIB3|alsGjWe6`lOZZtr^LD!jMmnj}(x4Gq7}gokr} zAKkve z6az)bRM$IRSLO-X-f~HdDS8Ld+LN+0u*mJ|iIQlKe8WU(Vu1wpl{g_%jAGOEbJ%P> zL~3u8uh?t8^-g$Hp4UvUN_3D0oNACFlP%Cl^IF1!^)$E6I#mWZOTE z;sku%L3JJTHMd)!SRHjGh;yG<+obq`eg5vC9S-TDmu>pk=}swPv@}LbgRFDPA^8q? zz<&E=8DgV79lbom%nyksMTdQjaxpwc3bxK#&pT~Ot${upPy=gJvs~6Z<7bBZ(dckMEDD~ z`;qR|CFUhIy6Y1NxsF>xv&c>aQA_CNZG#;X8Msn_Gl^uae9k4+gy#buCX5h%`~#Y8d=vU2B`%GL^`fp zu;npCndcSysw|g{bIJokJ+Is)KdAnkd^-%*Mv8r6U9sM7{blN7sw?ia#6#l!*jY{N za;sA1UQox2ZufuP!LTBJ$?ZwUC5RVIkCONxh;+U8r9*{rL{nt8-!cbjB}(}ru}r_OlXWwYg2 z??|=E@Xc0;>|hoWp^;R3%`#jo31&JH9MYMqLMQhMXrXy9yWXpJ&}5VwCrKg>`;FU_ zyBs`syranItMZVKk_`!{r92yxmeL#xBH3K^CfXQc?um73{IL#+3T?jEtqN|!}?#7t>ogc+t3C6?$a-fHE+ zeOl#ZcNkg2vXuFC^`y(%6w>ML7B8UQRW>l+D)&ki6a18;eydxpTr);X>5{O|2BWkS zYmRg7aK(CqrOGm0zPmK_meme=%GZQpuBSa!BlL|oK%xnj+b2$z6XvTcR*qB7N>;2? zeWUgJ|D_*ewYhH7;rb5ajF;4R|HouWT`IphIDggYTj9hX%ow80e}Z%XPNXR_bxg=0G2WKc?oj@n;``EN?3mr-RDyhvXX){Epkz3D!A|IqN>5@~yQ(&+2qB+#bE;NKzqMf_5fq zq_sq?P1DkC)@UxwC1r9%`H{5-OA={?3qBC7w+oJIB}=50>WTBLoqFn4i)#F!recIU zX1+(==9uUpW*nuPDl@H>dsW4vxiC|0)!`=OWYTTbq`EI7!*rK?MXX52E%aG$+U=ZM zJz0Ix_S;~HDyPN!j&t&qI;u0eIW65xFFC5Uy(Ty%$LFnf+?Vb5u7>W^$Q-MkHOB#; zHOhMJJ*}N19@9%_<=(MTntoP$PN-j4Xt&Qfu7&9?+pNA2N2QtPE}InVX^}#wRmqWW zg;HI_S>q1doUqhIb$s3`DIT{(q!>HAFV%w%ijwIS*&hEdxPIqMbVO54th7;@_8#?F zvlP2qm{6xp*IJ4m)eT{l#>If#-U&}@d)3_Uh1S(7(O$iFJ0VSma*Op< z;5BjgYOi@M@5^gka7ZkY|h# zvB4tpzw^@=Iof$$9o@w0WT=xSIjgNuk=i?~t-Cd_&jqEFN-zc8iPB|8TVcT z3YMB;nulr?{qwzH*j4n0WC;RD)>)NS>e%IiEoa zYMrZqEVE_#vE6oh!_!tNm#m$w;@z*<28D93qdEP*zc!fTjvLi5PJ3BvcYdtLIPY8j zAWV`oN^P=Bcl-79ygQ@`s8FcBzxHK! zf|fT`Zw!dPE>SjGj(TqOumZbX(f1=Uz;bg82)fWbI}8aHlf$azIW{N`Vx^~SaEmY{ z#+qq(4dicwx&|w>UPGa(WZEZLhGd0acDqm;G*RM=7V3(WAy<+sj{Bty6YV$HT$LJ& z7a~eahfUNznC1MNpVG)W^;PldRR-D)a4>;WutmEY=lU z4Ruff-my|$orP%bd-~aJpb>_sQdfdG9yL${BV@azzwzF1M1{}k>NS0JG0je&)6RR& zn_;*8Zj~oO8+&}!STTCL-TOK_qlvY;i`T_U`SvR`)Er5|Z8gxZ98h7TWNnpt#b;^_ zlKHqR%tWiL*3wCvRr;IHTIcVYyIVMp`Dy1t@Bi^ z87Kw5FZm|WESF7oS|iO}ku6mRZ6%qkk=AJH4n=-prnAC)S*%E3@@K2`Q{NJeoRwpo zopuDfs$(VKf=Q}e5h_}dS?1g9SH_rQn+SDlL7&Nz%$KH)7>U zrJi`_EV51q^$;&vL&LSR&MaHxxnP}*@~ji-l0_l~ob^SOvQ&CS7cGsEW|)8l3e+>r zWKY=USPg9iBJA+GDs{xw2#zoLmyxw(_Wq5#?9e^P*s4?{92ZSD?3&4>%autHC&g54 z#5rNR0{z_LC2<;QV6)STT(aM9wO47OFA3MVx*PsK`N|$EjdG91qFfdu)XPq}M?i|t z*=n)bDm4-Ne=JJ4*nD@@k|L_%Fv87N>8_8=Fe)AOoL4j!=a@{l`ns zo~+?=D$LebstO6VNi)P0rQ*dnp+sxTG*N20G@bO+TbbVrlW)Fq9fXV5!$vV8ec)Xy ztZ>LW@7rsuRpyD+T08ejb=eo~v)W0kEmFruTZ}fuGGDgI0$t==r;FC6c)~?*Yp0F3 z^mo6NCORihrbuCS*z2TxtHe5PxJYZoyGy7T%WU$~|LV*Y8!u0cqn=b|l@{8V>Y!g& z^IIkbC%o6p-ixF=YJzZIw9(xX9PvHd4Df|oM(!sPedneia+0>jSgyB@qJ)SNrOHHY zv~j@}&zdU2F;y-)WS|E6$(Lb?`R2>B%qlzVQ6k)3)rKw15sNgEB1(uzWs>yLSc>CL zsAsmR_J|NFQiyum+a*=B4`oB@`HU|3?Q+idfaRW6GYFGQht z)N|i;g4GCZWe4y2d4G{1-2r3WaZTIn8Y}e@P-V8ZQWRU`icWHcnH(_4M*jZn`>gPb=;sEJZMXpelyO}0*@tWQi+`uJ;_B}N1T z;%gknWv@wf&rPwha;J^=O%sI+v(FR$=20!}^j%TL_?MM-3Fv4@umk!=IY5#Kc{&>C zv@kF85<>bhKGQgFNI= zI;_OsJ#Eb##9XhZF7t4K#PuNe%oC z`HI!^v;?{KJENV?TjOz6erlec7CP>`9u*WQbahHEr!8_sxh=Z+eD%p_ zuI^Rk%Q3<=mFF1)TvFg6VWyg>y+>=%C@YPz%FjMxhBZ-gOtDF?8d>)O*+PB8Tjoe| zr(LRi%5ML3LMMkjD8iqev`3{F0db;)y1UwChG?#f?OxJKiexRclxvV%-KC-ZI*OI9 zOulv2D-xrri_QfH64#aPPs$AvVuCl^DiaaXbp}TfE8lj)g20E!! zk@I#sydhKH^onqJu~mtkgu3PMRw9H|_P1t$_)8yVF>&_=@l9bd9_C zFhFZzrUiP+5b7`X8LhKi`>ZxwTi=qcgG_IF*C`$Uk2J=sOtRkHH>zP=@utS^xM7l0 zXs&1d(L0W4>z6LO;#n<(y6DH|yR4lDJ?=4g>ZI{C+fbphRt#H5YoQ|bz%~P%wne#O zn>5q%nx_a;Uj#P#vCkRxiNE{>s}!M1u{_JA*Gf~bPU9~G3y`6XIT9Ri6KR=noltI@ z_QCIW#6fqOZ-x}bT8TlGCB7)r49&zNNwO%Z#_6uUMb;Rpt#`%RtBZ~%XrzbNY|d)Z;b)kUcKhH2_gw#ZROvK)Qvwp16VB-U{8mlYc*T$sN*rw0NG<4EpYcm4&nsMpn3&vXry=%`X_vu)7QP!rVixOBbk z@EMDp(@h8QPGf~a_gw|C=J}1IBAieMXMJC&F4yc|h!!@QV6W9y;6Vqh(y@9lD>nd<{}bmocZ&gr7;d0`T4*Ly56x|oTQ+YqBR$=UsvH$t=2?a2RvZ-4RXUWTjc8GZRg}FQ(>+VqNE$3y8{;5 zqOD%~Yi*N-R;i=O|3O8g+`D#pN2Ax`_1 z^}gvFzN(8lHyl~N-{EVbhYwvrdyVbUS05YXDl}UY&91uv$NWeaPkjt2kJ@XK@0x70 za}xCSut$u#Ndwd(?-&^T`w2GcDH0*hIi?>XG?Nhg`FV#7*V#$`lxSdZG)$x%-E8-+ zF5-iN2n}4e)*xMNbHy#P{J}Z*NL6Z*`|PpYU~wAjVX)RBV<0RT@AHz#U2H&IOtPXHBnx%+aMvf>0z;kvV}WqzErzZxyL*U3@}%JqqMQn{RTSb zZd=XpqGF%+drugou7HE4+9*=A7E*0frI9TfO7*%ELgWgyS+;x)weY?upL0+HGkr~- z3+lOFiOI^eHCd(4SfGy!LR|D&dz^AYy4~UolV^~rhTEY)I~6XND$)hBjl2qyim=;w zdEPTfyd+hg*W)^qxGPPyP`t)=xonFqF1o)~_w3czbb=}$cvYgiEpWGHE_gu`-@D34 z{aaDE!UlnxHuNQH;cqG>J7%u~#%S-P1Ph##W`Ldg>SmmN&e$uUgOkqsiQS>zyTn zbz0h0Jxie)OSW1@E#d8ecmdHtdBQ}k_0&~EO@x?bt|aw^YN3V6a%Acx(OBcP_{g(Y zRh`kj?R$F2cbB@#Z1oRQ#p-026(W4c6Ou(Z<4>NECQZ327oCudVi`4rPGZ#;E&96s zHIqzIPrzPL)gqwrerA>sO{#lJ{`0-(Xrj4t{}3uixD6WFrKMD1azuJhb8+TKRG^<$ zH>p2VNYFrA^F*m9)m*tUgEhx)c3EbQ6s;8LrqV)-wU_l@ir~8m+jNXwZo5&@JI_lx z8hG7bE%kSQaYdvy%6!?Key_rBvBV3aeBV)J8j8BfbcSdtHvoYGVr5B@?y!9IY&1`l zj@PMWyl#>|+@y2j+Lh-myPdVrF3G;+bNc9~+f9?WOUCINyaY+Ms~==UgjuVPFo7B@ z>=>CcMatF8BuBLoEufhcA==qxvA#-!UD8>`$k1M2vmG+fBIi6ROnpnG>28cRL4y-2 zSzjGJ?U07S@>--#M(g2C=d=+n)iOgR$AtMLMf!SND~EN}$Yf(|^nlS)^%AGb2EVkeDBYz4}-Q0gu-9F*-2#~sqrRCfvU zj)5v15u!@CMMi5-i^3YFoBq03>xA9{T3O?i0oTbf8VhyI_m#=lOrBo8bCW^HA!gYv z#X(6jZ1I>=erT)T)p}zjRlA6lrs@6>Erkg_@T%43n(tNJ^l`~nA)eFRUqpLAAKNW= zn~maq+ZJ=xwZI#HL_}!hh~_NUi%FAyS+khDtQW ze61v_E5jLaqQvN6t8sE~D7;cLz=XQi*rly^b@6EieCg-cljWA*Gi4KzrSVo32n}5sF=wCm_@rALyfz zFbhrBU#Nu|Ij_B2FtJHh;8d-~UU&CP>@rKS<%@dx5YDN z8?Tw)O0m;Wb(Nau?^^ny&f2T=Hz~Twlj;E*)zQfuD;=`eVmU@ysIv)ni8fZKN9`A( z%u&&b)H7YSPg$n7#nu~Quv21Xn68^l<%&IQtP(>_l`GeKZk41!eV2urrK`ePh&CaT zrHb>Sfs#e2=RK{jlVhYy@~S<~>uj`({-p6u2)Y3$%upfR1uJ}7m0w%!o9?;pTe;#* zANc$Y>QBcV3U=&=X=IRl-Q^DX9@AX9NeZU9eG!dg_{EioU``>T0b;hFo`i+4bCC zS0890#~;ks)MG}NZka?8VuU*4SDw?}kW? zp^MvfcF@ZvTBx(n8|)7KlvruEb&h)760>d5(-08?BF!+v6q|K+$$e%xtBnXLrW&f$ zyKWBxV0%698B1LfC04n$;%Wt6>88rl)Ngh>drpqqaW0{3kh5?4XS2|mBxC_Yo0StiejJgU4M1VNn2EkGQ~xwv^CijUF^2R zF(tayYKE&c+v{R$Wd&uHD7l7~w#=WD`J(ksNfqvbTdr|2O{yjFKF&I7e2@X&M7(y= zOvhh7a>78Ed}|D=-u8kZ4?aSexNBm=ngqf=4w|c%MV9M|2(66uwl4&Wl})r1?L(=$ z!zSn&%;-`rkgmOFl>{?`4|9r>IvQz))f!6?ZJ*APb&)SbJ;&wiBY;p5QgpSXZT-#rWJ+jxL?x+UqlZ=ZFfQ(O99sndryvlc3Cd-VmpU z@7tuzboml(Gv7HW(wuWnQ#%xztDZlYqsaYMX`_XS>Nui_6Z!}^uBT2G$k)VqSG2G~ zx&*CFFw7Ne+-069&5bich*Q#?QD~t(*1P4J7`RfV&0@4ceMikUis+x6F8oHO>@Yp*xWbj~Kb z6p5}u625lD>7=p4vV^K9Pb2XN*U1`}g9~Jwm9H!PrBbN`s${S z`nAI01Sy^~%^nZeAUA|+?~M7*+F_Nt4rwaO3DG+HqR-zXd;Mf9)Cw!zQe!-GEr(HV zf_6dWdrJJlw@tOtUgxxRw|qah)nA0^ZK2cZ`jiz?+-;$JXSDZ2Uv+;CE_0Qm&U?yR zj%#JNy1^q*>F?gu_o^>8RcFycJ?e;U%I%SHO%XBjW4BIKsT69J*KHNB%6tB4f@rxO z{1`ZWxCwd(jYGP6)pePA9|72e$PwWKE7cDc%fjW@s%@}v6e>E{?i8(~E7c{naLIP* zEYGtp%BmjvUTB&740h3Yr8cqZd{MS%EmOzOeAQ-GJS4$oKefy+bQ9v7KbhoyKUHpnP&*{J z=vRuQXfIo;9WL77q|;h!BiBwBWH}(+1nUg7$Ol^cp_z{AVYsPIyJ(zpL+sbY0pZ?v zNN00wan3-cmdh1wmu!2L+T@Z9Pt>X+T=6e2oA03fpon0=v$|YI&M`%i15&h#QVyRG^V@QhZsT>sIZ`%@gOVnyONCU7#geGgDl2z(N;;#MUq+0uIZz5S^t4 z9q>YnY*A&aQhSZ?zJ2a?QnL&_IE)9(R{6&X{bC5`BGF zqJU6&PI<#PVd|+PLO?*GE_zzv{a^<}SkO|8_o5C?>s}r7?DT>|ep3sKiIl9uOZrwn zRfIUP!o*6^u!dy_k)(-EdP$RrB$?jTRi;xCv{K-(+f4UM-|>Jp;;X+|=r!m`Lj@*E z_L*9&tSCvw+Tn`BmOH1VGL8M#cMbnv9pt*)Vtw_!5v}%J-K)7nll{=y;1-0s-!5%r z`ni+7kGa0@=iV?zg(44m(r1j;Kvb=$V86dfw!#-|^0Mh}QO8bs>dGME7E zOjFxoDb8(j*|%cpcTzRzq*NphUSW zAI>@pxab3&)K}$lu){W1AB}CZRDq2qIx0hBDN@A>DDak!HriyPGh!`~S|i;IsOvSc z&RJ`oB&|N8BPT?n12#KtjV>O#%A}PTuZ0+eN~PQ7i?#|V@NJFEHPdB<_A9j91;yqY z?04=r*%6-><+NYe^I73 zV=Z^Z?HWjv;E3VQdc`mey{w)en(4AW7Rq)}f^+)$yZZ8-^|&<_x<|Zq8akqfwHnLv zz*XOJzlnBgX@HJG5aoTP244dSgllTKWTPF{>!vw!g*VJss;OvaWZL1W8ae0HPP>s@ zu?oFrtRC0>+ypKCOM6W`Z;p87N*(d6aQ!XywyoAXV6_BcHrZpVDyb@PPQVvU)7)@P zCF*2>Q`YFLRW0x-M7RX?bycaJFB&LEq}{e!WOt2@rR!BSBb@U`i?x(0M6%9OgbUSP zLklg_r-p?HxoTGfT3PR;&KeqOfC@)!P%c?BEv&RlxlZCl+GMTx;0?^w*7L?#ZH^s6 zCA;D$ZuLuP_A3!D)D&;)>08&aJ(tb-Sj3PjB{kI8$acnhy_|7aM;GK7gnJP-_`3XDWw1Tns2FYHBhIkI=$c2H^{Ev>nC;#^@y(a zE3(fnXT9&Rc%7_N;x~4f;|X8zX3qDFID zKtqwzow7!M>lG+=#!mhIONp%zk+Q^V<`$WXBx~b@CHe;sPSH)KX%MP|`k$DK_3yvj zN{*}=M(F+NE3$(seY>iw+qY%(9}T zneVJYj(byX@M*&}HQYV!*Gqx9)=Cv4LMV3I;Pd(#;Z}L}Ip>&LYvg(HF5BW(TkSSi z{f_}m71^%9X06?G4QC`zL$NBI)zAu=Rw+|pph0@dbEiW(dP27O#u@E79Zj>rr={5C z=T3N92b}d=WuDd&S4=QXvNo1jZ8ztq_bh0dsOK|NPwi1C^NBMi06IS-p` zrB#l)RZG*=(Lg(6?RQcW#nLSGCG*^FxH)<|X_-fqIHG}F9x=~;BZCC%n$SQ8r~FpG z;OURF&ilGwC&!4j&<6M0ZqQ9@d0YJ0Ndc!EbC(Ogb5*Ik_8y0+w82l!bDvH(cw0&G ztoB6%9Px@t<{4+La&5E{=}TsNMX_FfZkx+WMfsC>@$QhXxk*kd_gxocJ88574jLvx zS*>pF51*!)iDEU9u7NIkXlAb!vZSiG=6_cy7wSU+!^vJ3P$5Qo@Dzsxr6afMTdh@4 z>HJlbZKCCxC||BnX@=-(slz_4iA=qH&SyMfgj|^xIar-dZ!*ojJ|oErV;qs`q_2t5 zSct_cWI1b~f!8(V<>u*iRR>0;jZR%P-LTM4tddhB>rOUaS7~NxFVS-K{n@B$Jm)|6 z$u(9f#Rc>1k}9Ld=Y?x$wt*VisikkY^CJiY|80h`P>)*7*%}Vxk`D~gPL;QP!+DQ7 zJ=`KFJ zI;l5_91<)Mry=58FxF5@yr^75aoBH_QF>}-fjKT}09=EwqrU~A+$_^#=s&B9m0ZC5#KsS|k7*yj~TiU9wZ)1UVvTxX{{~tU$ z#R*Gfx%V0~cuYMpE_qfvD>S#naSX9pPbV}p%zGMn%=;4kQ?@l0`jTvG{6u5F)CeX1 z=%lA*;EcaI;pbw#Z;Ro!;69Ta@oBp~q{2FtTDmA(U6C%BtHJ>FR61vlhB}xapsrTt zxZe`J>=3ZkdE8-=E-s7H$#Q)(G)*%xlBC+;L94CsNUfe%L8?Q(8A0MTA*#G1x)vJ# z?{{+2dhHzxf>$@bYGfi`}k3j!>JmRiw4!j@qudG|B2%={6U+LR%+Rb>UUJ+dZG{TR)Z1pAoiJXL8sTA#?lwrO?vDrv31;IT&h^X_E?Fzn zwUUfbbuF|?cSB`ps-ETPk*6l z)gkA9T;DU^xJp_l)DeHSSMTcYoG4ozbsV)-nw8Sc@Ib8&2N>_*HS#0@8D`sUwiQBU zR)1o=+1C4=Vi~4dE$XWJ$N$D!W`SNeau^{N>ZyezzGah#{LUUz4KmOuO&yYtbPwy| zGe)SRk#Of-lBQd&=(5;kNh)pdwAt#&w^Ed@_84oqY?&5Gx7WiKn=YriL_W_nqoj-R z4+j+Jpr4aAI;`&}l3f4LGyXxomEJbjTKP8kv$s_FaW(TQ#wux_2=A*>r9z>z3LKQ@ zsEZ1NAXU{T;3b4=AUXJ#TUjjKmt}g}bO{=Zuvu5p>KZ8BY}0JjBN)>}%5mCSy{juZ zb-gc4m8fgl5cip;k9d)W>Ltcs{L@Zfk&XRcvQ@lP_j^U0+-m$gOdYT4qrI69SfNU% zn*vi|vRw3mW*)ezx>RAhY^lPn)!HU)?2<3Uw*)LT(%ahTZ;nOQ_<;fPEp?Yh7Wk`A z2TSN>COYri>R`L)UI$HmOMyAUtr6~ke7EQ<+(CIRi*!UY9sO2I zx4LA6S@zrJQCnpS@ihzV66a3irE2K19%hQu#6kHs7$MD8eZ1nZTXa`m4NF!kRVGw3 zn`Km+wd2M)tmk#8jd5nUDET_hhq}rf z_PR0F>Lyfy2;o{dVYl`*Alz`_LLD^KP6^_w&1$h(Is_x;6jdhpv<_nI5bmNf(TK)t zdIkf=Ky{x%K!|`h?A1}Sb`pa2;euBjwNu+`X555`5U|jT4tu2f{)9=_Kva!@G!VQA zl{a`tRi>(YRiGJg*85j=>4fMg$%{7X7`(dysltUx@th)^#ae6BHJNCl#On;?O;Kc# zVu#GI%mtZ}1cX>^n&Gn4@p-#F=de~ELr?jWtQnT;YS{H1#uXFv)7V>H7w?B!3-yX) zdP>z!U$IU})yqJc8tAB>+l+RfKGzhY&q#E}bmyEm*XyQOY`%@kgkg^jrpa`dc@DUs zQd8kb_O28iB-!pgxsr7;OP=kb^!S9nvxy9o>^DR=;X=)}z+k_rq3;^4%2FLZ@^ed^ zwAXeEjq$$sz3N|H@v^tP?LA{nHPZ}p>~qp_K2{e)O0}bklx&aQn!81*7v<}qp`>7= zV14~C%U-uuN3faxphDN6gNk#&SVejSpjMu<@S7l@sW@#fGn=~+AuD!Mibx{NB zBboMxGW&hTa=oS7>`uE3($ZmVgwkO zt+lsDds_rly47MyK?AeFPb{!Wsctuo#eeeJc@V0W9Zr9Dn* z<|M9|FU@^6S+A>bCzLyf3wp@WSgzr^Sz^EL4ylmhiX;;W27#px*>1P`F6gDMzndaj zv_t{1Dn(X1#0D1I<37nkRd~wmV5d};LkerLF8|}OBka~msDx@t$|{rnN~*V<*X%lz zu4BaMc@=ncy>-Fgm0fqR+8M9fA^xg)=4Z`v_f@p=5bd2c)iU)o5g^F=iZsItQ#Nh%e21uaC1Fu`eG&`2Zwv^2&nRkA+;kMyHL5{wpOugh2~Rr^omGD0*mNQC_k7;B#O zMtSb4$RODg8P||||8u>IoiN7V{mIMTHqjcJZ4ZvJY$IN*7!?ZS*=em=J}}-KAzFPR z5$sGUQiX`oNk0d@=0!2pYFgoP6?sXlZo%)LqJdXk2uA(^*`}LkM6hdQjfWKKBSfSb zE-II0k|Mi}^)qeEFjOJ%%%}hWfB;EEK~$`CjYW&o#UfLkwZ%GpgFsh6Q}3&%zx_hw zS!AYS?QU`iFL+0!2d>HjtE|>qx^hdkvR)6d79abhM`KmsJ;7w zCu*@beNSVo_A~u`SvV@4bjmy{o!8kdey37jZ`mZVdfx25PLX zP>rgi)KlJ7sKC%`V2xc~a7_0bYAKxdv=0xCfaC=Bide-EeC`t z_o@;(h_c8!on$!R1)o(%oT<*LC!o0k=iK9rbcf8cO_dP0skF>R-QDZFmHsH+eos2) zjLWhO@?nEsL){%!sgD!^$4#}(EQ2Mfu--0>wGpd<23lxix#i}IP*;?2$EzdkNL|fA zOYvfbdDCHog$vchOwDV6S&I}0WAH2~iY3+{w*Nz%pSVSucP-HB8ojwVO+QuyUM1g3 z73v0qpb8g62vO;Imwm~L=GW3=yJ+Th#0W!GXe-ITR7rM0sS1~b+Ge$ft(B|&bwh%= z-qfnrfF@EESm6PGl5LY^=Gdo&7S@`tpIjey-S<)C9~O(z=wlA4xcRCy$p&{+Ph+{t zVMNk1qImq2L0QmnU~mI!F~v4E*6Cltt6phSjUo|Pw0nrE)T z2EzqxtC2qcCpONvz|&swk}(deQlhRdzUOhR@Sv}HQeSn9^m&a8@R(uRNpr>?3uS00 zOsQg3*OdCM$AU<&9>1ERn?{bCB)3NFk>t4f0znnufELpHQ>b=Akt)L^*}-z`3~#D3 zTC^AezmTD$dD8veEq<)CWlq$XVIHN_7$pME$gYkfV&$7vx?7T}>*re?Z4Op4? zoiqBH2zQxgGF927wIk{|WvNh2Wjmv(Wj-y-Uu^RQWtMnUw0ZXXQt*;q@(=gx>%%dn z5Bsc0lo{tI_KDNX8sWN|D_?~^D)iOWeg)Pk*Ud^jw6sST6%Ke=z6PeMFiM^Q-c=&b zUKfn8Ndu9(DE5p^I(ydzUvtSSLmX3Jhj>{|>*x&|R2VJ7hth*x)OSX*+#1HC(0k4+ zRQH;!c%w1O47#S!`S1Mx$DUInfFwV=s=R*vby<ykBEsqfq7EB7x)yy0o=Q>v5SIApt~Mrbb4RD(rY>sL-&gXTt7pX?+#)<~6v zWUXZ@6QPxWH0@;6C{)+cPFuG)VVuJ?T_Gffez)Rr1m(tNM# z63iaXTCG*}E}!$XKKcvM%5ah9IcmKf!9nh*A)*a(da5Mo&VV3H~q_Y$5n_7?p}y2Gxau7 z8|ltCXrq-jTj`WA!-OH<@7?7N6TR-J`Za1x{}YF?$&gy|`C+wt9A1;6!j~L3#wckL z{YZg->93dX+;mXOC*u({*W4AC95K~d&zs@Ls(iz5eaTO~tgn?O>EWbu*^-_0v|WDp z5hcJ6&HdA6>n2jU5>s?D%1=ZFxj?7n)o>Brt|@z;v&K|Q9dKEQM%rj&sI4O1s;3Zr z-Ko9=A;Ee>xJp;VIj>YZkNTI{erAdGwmU0Yb1kI`S0qOBpvF$@HT1xmJJU^TU-u>7 zF*<05>Ulz$KU(Lz!S0BW>iE65;LO4H>R9TuG}PD0lfmygO1N=WIAytPKbM3b`??E0 zr>+Q;h?3wU80+rp65ME8tk&02ml05EhEk8~c3p+9G=02c<5hk6fnc5$?r{O3676z9 z7sXz6-e)y5Rf53|q=9z4V4a$^g?6@Q)Qsio5pQTFNs$7Vs zZt(-%#k(j@gyrf7uS}^wxm!p3J>wTO;ENRX9aQd5>iSfz9oa2Isv}CTn}J@i9B~Tq z@J*&k*6u`j_#^Yz#{S|D;&t+}bCw(HPr_9R(McUonCrU^i!#X|8-@D55|ce9+Iek6 z`h$4Ah02rdv^^4p%W-S1bCBRZ74p;(D#>7Nom479w5qG-0k+aoKqozY;O9ojt`TGR zw8imYo^*>VN`wF2*9?2B&t?zDEelTVY3{7W)ezrlr>f~7=^oV4427~?Qu$xlsHT2m zlXon4Q40?R^>n`}6dAs*q!uWf?t*#xUuB}R?Xke84OZctILw(qDyYZK~czcvV{s%@QVHy^H#Pj0qN@mgwYjZdGKZ4vt!IO@{cgXdg_chZ{KtMgsy`zN; zL|Nvbha{qb+pFsvA)0HeftGsuda%1pRlCO%D;;vmLRRV+pE-4 zxj~2ALW#4|aj9Bx=R+gb*c3&<@FdJwaX}S{Jny)*M%13Jm;Q1!`Y$8x2o1E*z&#$) zMWRAs)#Q*^0XwAzcRgRUj{d3as&>~{C+#s*gm4M!X{ECPnpvoaz7m{LeqGe0%mfLZ zcBiIRdrLr5kTUpqtsoXykrp91&%S*DY2qO+aa|Q|prj z_S?Ouy6aH+Yb$WV2hHcL1gK-M&w^o5${>x&@VPh;d$6~Y0vdKF6!o>(j zmIRluOk)oTch+0B*zT}%zN4#iHfi9PZVo83OA{SGM!`GaHmZz$0zxN}8T>Lfy#2(#7I zO1LnI!I%4?vS+H6I_Xj)T~60WlF5?9nQxvhG94A8OoS2D?l{gQIhyE+jf#WJk&`x< zX`2`^wJ_ETChKw4l;m!YRTT#)5+a)n!Bwoi#hm3h8x zhAlxk`p=8S1%FZK=eps9Hw@6-a{@+aqR=Lze8)k5QedBGpR&(<8=TR_oAUK?ST|Qx zI^?qDw#ao@AM>oV*Fd|pvQ8sww0A<5z^k1hY5CFS9)-p0(B&7 zEt+bIdNEx4>8d>#g;O)8_c26YAJuw1L`TjYL}Q8%_!p;!obO**V$4+3=}ym0BXBn!+CG@3Mp0 zTEJ=l(pZ{+tzNL9y3IFS6HBB?L7YTy>naB4jnzLm9qzQE|ALHv?TXb@9pNbQdnq+^ z!b(h%B^eba$kkR$8zh;pNS)x_2&ivf4QlPbUHCjH2I3`~Yt;w-1417%P6r)j>gSBV z+pVQ^6PyV)g@&r9yM11FP&4-$BUFmc(!FoKi@q;Ryf5fwj}MGD*%;y4ePWlfz#^^O zQN#Y#a2UHhtw4&uYK#<%bQ5E@vrf5ev*cPr61Ahrn>|RnK}NdW?QYdriNmIwiuOW8 z=&GZCI_zg!d%@eLNmIvuR}9luTgy!|)bA~kC*A=~gR#Dw{>2$K8|sTTdqcjj>!>K$ zUERXVzPi#SeZq_?Nvt1x+kAPVg~@kPp=0W}MO&SXbf1H`5H7F4GpO}5I;f6}`hGV)Yu}`ivx5zfjCGCVE$0@UP60U)@p0g7P z!Cudk#%V0d6(2~wsA+3pQ~&uH~s@uIP| zt5>7s94bP#W0tsNr+(Gh$8j?aw@`E~!HJq6NQI^9`MLVaoe`tlE{Qk9-=nqCRXZcy zDf2paVvm0qAWB^;1hluv1>GF6(QW2v3|U0TX_a# z{9Z#dbPVma!n^qNWT7VVsGNxg=u5RjpfX)^pnSMA-RlXNqjaC>!%oar6)H5R6WOV+9s zCe=ItkA)GPPke4sq=$tlRU%Ox(T?gPUq6Snv`e9T6j*Jb z+iHOaTWzsY%2iIF!g%WioYSfLC)-Uj$VEqQ(1{T$+YC*8O@u2}YV54P>h8S4>#}L$ z)sdy8h7zv(d8yWm)mW%YPU_)^S-Sd*43FAvfk)J}#@DUW+SkoASD_`=DEF98n`DL^ zVl_9wi~2ZWo_zhaal!*OIb)lqavk=zcXV=xJKUwd-@78pUh$Th=L?>2t6k1JqP~t& z?G{p_7MiY&M9GT0AXb*9mRBe5{RlDJU=2C^@oJsBrLRI0y zowdd#QJbWesXaST$KCJ?KV4Ww_Nq8MgU}F_zj;Bf$9gI^sR; z+$mg|$=Y4FNiai!@p838s5*LSWvlfri8Hj?e1~b`R)s$BHHW+^M+;qDblwrmU9ikj zbF5J*+t+>VIz;1-TBl9Wpq7e54Tn+a9R>OZ3rYb=Ch4GDzH)s{bw;mi0HGr9`k@W( zydgdHYTWfz3zRsf)bpm<>abRtOH^!uXSC7RLc1mTfpbo3XP22iCtsd6T3hX$B>ivN zCU?8+g%88Wrd zLEG!fK1Yj}uB$%MhAko&C^tF8_%OZ28<#nQF= z|A@QG@TkwNec0#3oe06*y+Co-3UzmP-|eou+itt-?ryYDptM+_#ogTN&$M5?oM|4VfnrNUbG$YE~%&@*y}?L^)tov0tK~5DlrTLaft2PVv$Fnt&r77yDucm!o^P{G2S6i{~&2ocU5*+ZY zt~wj*kPIqA-#HS)7!9Z_3%?<%f_rx_s<#oji} zB_XQVGyEpc%xZ9vGD|I2R?!6QkGt$;YXv+bT%&5xg&O*bujchU%PO)NzsrjL9$}sC z9OoJ)+eGz4%vPf5dKiubQ|+!K?f0M4lWLr7CsY`lM1AeBR!2uw5^asqLy4XG7-ON; zj&_{gc3N+{JQ3O%?kcw%`aeo2Z1kn3l}uix2xFI3_UapqBWlSp(m0zmH^K({oPSt{ ziUS^!;wfGK=541aG}$J5YtYt$<{}EiKh6~PFL$B-uG6zPKsHkTc?`_ z#yjc=jVbe$$?}QmhD!5=i8gx3MFIjL2P;i0O~hH_e)HVq7QO#Z^y9;VZ6;%-DYeZ4 z%LV?z5CzmXR3B@MF<-~v%!i4q=q^xOPpLYG$cn{l>;nxoLQ{t%sUgN_ozyqaV-gj+ zIaoLrrNp~hXs;xw-Shi+(_2!Usv$~^^n#YMC{X_bI2#li5ppa7AsU<;91!MX?Okk}j>d}iv)%5rSQE!vXS8#qD)XE}ZWCEi zX`ARr|8lZB)R5-~4>-r|ioB+d6r-ehUPC1w&|0zD4odZl8X9PBu?$PJa=MzPS?_p7 znwp}%R@#{EI2)~Wrmgy^ueI)evey!+(j5|JmzGL&G*f}r4(RPOtJDaJp!`QmDMIXF z3B{d0azMFyZmw{pO8g+#2vfAIMr-PKm+d{foh#W&Kk2Vj9gX~`mCpA2SCu;69cIYY zq8gatk7hv0%EXEkr>5PW7vmbYYK-PeOw`=TR+_Dsor)~gTa*#jXkf5hqqTFRuXWVi zM8Dag)CQ9*x84$i^)yDQzLIs9Y`&Skwaux9%g{@GwQW_XEgG94$z_s+S!<>`R!Xeo z?}lq8#?Lxxu2~3>6yxZM+UIzUe5_eD{YGH1e@J&-NR)d(PyH+rc^J2{%xrJ@(l%`? zoVikOc+ZUnYvNZwN~+Qj?DyE<$7=M|mbufwD$3gt;?$HPNs@eTniJ9#IZ2V_juR#XegM3WmVVE%bvq&eBO&Cm+Tv&$Y-gF4sYr-+M;|{(_MZriI2* z)D|T{qL_-KR>N>7YNnR%5-haRI>$)%xop?i<8j$?ouN(Y|v3dy-cvz zEp9%{CkWS2w5je;!_$X}tpCqPfqcMO zs2#FVq9ux`1e4X)#tJP(3DZoHFbP)Lqoq1LpY74y@?8l%O@GgF7)drb9^c(+)o zhe#uh)L4#9mdG-q0{*C>+%LhZjmE-EwaYG7DKyTNnyI6M#ac);%SPevcD)fOZ?$Fpw<3u^+LXA9Uj62P- z!Taj_m!Srrfeho#aY(vYb$zIbPP)ibtmDLXDY`lI(*(=w{(v|o~LeLZxdf&$aK_1#4DbXzJto2gE- zQmtTW_Hh3HJoBAow|RPNW~)?jeltS4bv|-xCD5y;|?j260jOij;-*IhFOHkfRgK?WJ8qe4##$WlvVhwQXoxkGl@VYzNv zDNuu+8fYTP$BvRD#ROf&3K!;O{iPw&HUni?p@A5b1oa=Nt&6w{y(krtZhFW! z&Nsb6=rMF;dO;o6X{|UIiSII5e{q^PSWPxE!#d|!Zh{^Xm00Z+@43}!!ZgrNoN=Nx zs&dWlG1B0}-YeIa`XAN>beH0wNletoa_cMLG>T0(Ogxf})S_BN?l7$ltfD@fVzoo! z#8kPnVkP)k6W_T|nDJT~Zjz?Xw$aZPYpve@&|vKMnKb8ya8tu70~Nc(S?fh5L7RS` zSGChrsfIyzPUslr2VE;LxZhl1&HsY)n;=b?x&EcSvlJQc9VN;P_qEr>dDiu|+9JU; zi>fJN+NszBCOE-n1vcB|40neF|0O=RJjm#H&s|RN;t?X1P+z3@Z?U+`Wf)_!FRhb? zHC7qm8XJ9Xt#tzC`}R-%zOMUSW}&C-Is#kavkG2193{cnpnvguIbRp^9a8TwZzb8w zuJxs7jJH&#)!uT0JuY=Q#w*s{%ieN_GsIi&r;xwx=C|Pg!(HMMF=9=0i%#y;STkp7 zD$P6IcfK03eIBgos5&>9>X|6s2=hdU5sfHA%u%ksebxr6pErxsAIp8EP`O`iwO_b! zqkU(%)AUf=Ge+ty#!88ny2*^-DyAux>sY7Aa!`a^BgBbT%W{LYcdQMjh}2lA&y7&- zQ(?kwvc^Iw>WgtmXAQ*2mG6N0wkVb)%syFms&9ndW`m`+R$TJ~^sbUu+o+RdVTOnJ z(P3KJZqFnJBl>dS7_PkG^q? z_7+=Zg%!T>uKi*x^Q0YK^Pq#G)HPV1`W~{(7b3N>$LShbCe7=Pwoj_N3^H6R4Mb`v z#{y*9s*QVe3pyJ|YwBm^+NGp}0|=6zh~$`OTpQ`ckpyG}p~TesQO5Hu}IxCcDJ9|D#%z-}5vnl}uzrWkPC% zTq(x7IEY6_>L1j?yyCDd#cuDpyu$X(a=W8LysUDi)wXmAy-13L%a$ueJc@*y=6YN7 z)lr#pAM1``O0|-qj%`LcS6d(Wr?;wbo;O&ik3$kPk}useN}V4(u4MuO0)F+ISCxC+ z7>^nHC(%&390gXHY?D+st0_;K2<1vd2q+RJQn>aJ@y3W(V!zWR z;E;kpU795KSmF~&UZ@5qZSEcWT_5t3b|xqZS-zHb%a<$XutJ>_S2)!MGmNv*OgUP) z$%PVJ>qV1Yq@z;BCQEaY&-AXSiBEU3*L2ndX`U7^MmI~HX}u?1YlZ&4^{L04Y?Md* zXtawCd-hW8x1K|!zwaGTw{vk{m`pdP~`F``26Gh9aNPmWDdzgwqtU{Sms}Q)$<$F$~ ztB$zq_Di+WrNNHR&7_GkLXzK0-Xeq1OW-f?=r&F?P9FhDn(5+tZ-|kp)VD?{Q&(O6 zed`J}>=fl_ZM|c$NiMP3hfdQ*d)utH)b;9^rm@bN`^7X<4R*9OBBV)ilSwYo#4v#h zxkDmcVY&=8oZ+9gyHbkop7M$$cWdb@CkK7xSgC5slj{c)Y_tal#_H5|QFoWped*j3!kw z8Xev0OKbE~L!vYR89vk`h!RZpfyaYc!g#Gi%*P)w#6(>~v=QQ*W{j6zA{qHgl>5-* zq8;l#o2u2Vs&2FpW`h;#9u}jX;X8HAbe(@nb*szuGu;F?D>K@ycDVF^h^1sI2*E}o zDu-O9O5{p1N&5;E`2_b^V3Aj=n2cg)20g>ACi&D*cZC2clYC~NG#TRbQCo>PVL<|J zsSU>3p|eCE*rv6oH1Vq#N4ego=9{lvz;@SZ;xt=qF~vp)W!azv)4ky7O3%|&nj{Ua z@}o{>nC_njA{*1JHdH6)87bG-zVWD`hY`q@8K_W+oyyF!LR0HCwZrGu3b$Ps$?_dg zSG0BFHCJM*ok8+!xSB39FgUgS4Yb)H2Q?3N3fXc*$z&A?zH`ks-qqD4_L{rHrw)er zv8_c_G8lD4t1Hq5U4oHObVXzpuBMuLDzw&#(sc}mx^>**IX8<{U%&)6yWMS`^Z-1{Tr*H)4eADgDG=QZ=3pVigKPyqu zToLwLBvGLs)P({3lZ0?tQgg z^d~fv2v@q-3Z0y;l~gC$>It7(X_Z|bb&Q(g)boJ;K5?yfPWPou52-24Dl0X0zh`}^ z+=)uf(#A`sJIa%u@{?JP*VGKd#hT%9|CZ=?rPmx0Vi0S%G2WM8hB4YZMr&aN&}xR1p2=oogHA5&PB9S51?3a&GWv!|k*(xNpNW zIII^%xiJcyUMV@<+pVTK$pBmRaj}mq(o1ViO?Ktqyu73JFi#UdYwMu25EED5F=n~h zPVYM)-)rg`WQsYi)zaJUG0koI{+GnsfG`K-hmyuaE4`RIU>FZskgS-!Vdrn%N>sl7VB zmg@#-mdY1Ew!Oyt-meNI=xn<+wg?DVVT0Zw-gKE#`QEe1J{^7I6c0$o6l3(U-jCYq zs;lpP>!HK+e9ArLF57(PJs5X^o=>twwt2I{Jf zuSIF^DC4B-Y^)fOes-`@e+^h*j`!qiBuh^t<@!o}N2_g+RW>^(1h)BJvf*-!v&=RZ zs$+u^1Jn`b6VGViZAqRrR()4$tdZAs*T%D!=wpqoF7=ZQ!WG(Wu>Hon&=wnPRH{@* zg*rN9x|0P&*dRfa9^%bbOCI)HDbq3olBAQVZX_`=qlG9S$bQehw%=WWS@a9 zw#8n{ZL`c`bL>;ox{wHKf^Y4!$x_RGAk#2s>SMm18f#>u%cTn!XSP1VFvSfvXm6lP zTF}+;DMvYcC*RhYVjCS|x`OuAYrLRS{6>VXo(lHOrOS ztL00L)zZj2+Wuv!z<+Mtna;FUTeAg1oQ8l7@^!Ra7ne(yZJQMiSZ0+|BwJ^ZDay6| zuh>%ie59F+t5159VY*>9%67n1k@^Wkl%9sjm#lZS5Yu{d{nLe&9%PEol&J4qmso9q z6*ib@ifxv7*3a^VE3(c$hvX==K||@@^Nrv9YOj6r5G`7voS^nix-{#Rh!LkqiB+~5 z5W;eJ$5a6gEH>LQZqOna&Ael{lMPT?nOA-3$!dsf0Sn|Qm7%j(NwzAGr@aRHx!KjO zaHY#!V3;wTq4IWw#ty^QcqNgAe!na&MIlTBHs+h{$)?BH2J2;bV4;kW`V<) zI8k=mTOlG*V3b~31mlVbV|{ME4~^2o&_5|b4A;zwh8pfFP0jG4ZFYxr6-(6CSIV^% zK%xQW`&>(XCHq`m$BXxw6AZUPbBip{zmj1r@PXef67M+QO3=*=Q=DLzb0ynijT0)4 zaEgTz)YMzJm3q0@o7QP8Nt*Y4sMLjGJnlQ0L81I{2D;v6kD4hPR*35Z>FsKUG!>NHxti7gPcWN181|yn#pP!?MeL=1OzEBs8_&SjUO6($iW!9j4;)4hMK6inHKv(Z;3WKK?4VL_KUR`CeE)K>*5JJ z^!0DMHL}+LxpvC4(K3A1&Tevg|NOigHW6Wsy|-98{o6;VvNyIO-mi^3mrlt&sZg9J7}ah|8Ro+b~&ir4ioIx zN~S%2wM>BoWkIp^zfO98qM5U+uft%QAJw%+sTN`^mk{hG9HpLPgT-Ri`NhXqD8Nvv zK)70lInE6(aI~GK3n&+-lUn906sxa`m1`@`&L9PFr7!(#r$ctxB40p^dLrZqC>JRp z!)oOM%9I7s(lsJ0YBDn2W4&Pp8?Cw1eW;dZNVUdV1H~xus?i=bsM@JXw^@q)TH3DM zHeLP8)y^_ZTaDC_ELMz#o{(XjZ%p#D*|v&xyjxv!7(NK5#Ci7@F}{*5K7Z>n|r z{wdt?AK)Ru7@dM!HDJ7!6>w0Lp6V-6*Okr=*;K!G>rOr_&}}HvWO2TgAyGFoL)aiS zwDvwhp~hGPZ1Rja=W6Q<4V`7CIofEamxHEgUCAJ4C^FkRUEQm#mmO!4G983DO_)`- zIibQ2i&oc9$~0A1w2sD`qLB-HL&slm_x{E8hQM3Il&P>CqX|MEqEcTTv)pe9K#A;`>2AYfTi4}&4 z)Z7okv=yVf`qk*Fh0C=}9|7UoI#;rI)4i#o5yIVMhOI8q#%AwZ>NFel7VUd2O|nL; zI?64P?>JLUcYwMgpKVqXTU zgK$%r+Rk>R8(V9L?xD4Zk_q2*dkYv{Z`syq@N`?+a9Zx8sY-it0_&ZBVdE|g4--y{lB$UljZtJ zctyjcKOc!YNDOYXBBS*RA?U?wuBYBrLh${bF{M(y#2;g+-3Aye(m1#K)xio8LsGRh zPll$#5v!|hURUM}oh(q_K;PNmJ9YIiN}Q8JW+NXT+V57Kbd_qg(XJEiBn`0Eq)N># zn~3&>pL}7yxg!0`KNWdiqLR78p2uRk{Bv+{+N2vt0jn&u=tz^qHz)A-+SJN7&dQ)p19dMLSHB+RG zITkrlXOt^E0=45izc|tHm43F<_j)T3U13rycXs8vx2R_LL%E477BBkwYEs~t`kBM0dbbt=02?~FkP6_ohix!MZ(qALXN^9 zwPLTZztsgi)5m&M(l&^wOa{!>$oZZ(SB$nc_{zOXt+2=k7AW+kOI?0MEPlPaE%!{7 zlAL~8+2IRyWm&G7RIRTJmTQze-)Ls69tzCR+Ust0>=CCXMjtC(qK7g8Kf1y!^MotZ z-C)1j>!1^L^t4mGZh?B9be1>;_E$&){9lYgY8&Mg=b%9GpO)MNLYBN(z9aNMYJ)j4wnu$y7gCql?zs ztKl1St<=j{KZ)^_cl;pIqZWBsKrM;lHIrnh4QiNcm=l z?_`l|{VU9CngS*ALP(Q?L@5!al_91Yh}OeuK(1DTk9kkHR5)EWY^@tJb1wS!d9o-yfxFJEGmqIUyvBy$Noal1( zEte(E{hC>$uM{teb@vf3_CprP(c94yg$vVI2P+jAq=^Qir90jUhB#eM<2|m-6Rrq? zPD%f#t=E$*u~==#3HZppa%5U3N4Tgz{hS=1>8_4P<@_n2)kL`0^{B+(DYV$S&$c)Rq`bh970Rm;GXeMSAHb;B*b_Hqi+c*loDA?sw22XG#!m zg69md%L&1n_5;4uztZ!DNzhCiEwzxW%(q^aCSHP}Zg!3H4A#SO=HXm34EL;=M#@+2 z9cMVn3s%W8)oLf$VU!vAJ6oD0-)SLTgjzna$WRA;Bt?t}amozvy7}5EP^7;o>l|yI zV-=cjxDsI&I?6P?EVk8hjdifm(j)k+(|zjPDyhsQGqlyymlctFxUu$Y9Xv6mUbEdq zbtA!$`qpX(B?cRdmr`wg_wSm*OG3mo$N138`k14QN#4@U)xPt*bZr%R$1*=z ztjs}Sdihqi`!vOi)_KPX(#-RlS$4QzBj4z*rq;HaWxLg~Otaipt88+hqGCBvL7G3H zM6?&x*1|k*TW+44bPxvy;Wu~4dtxd{vmf+|FZDS>R_TusZ<2<8k(iFuL^}=4G+CZH z#>#R|m30a;N{J!LO;n_#fH(tf_PS%_n&;#{!69Pxa*V~+$+uX%Lyj_BlS*c+wzYPs zueFY52(#7#BOGg~S<0R0B**BjyLMF+mX9=c`AC~eW-P>Dl={p8PaCa+(|s>Xo?P?H zk)^AvER^6*_gd&i)3mF?9UkRg-MkdcdQ_eyQXQ|MDJEH?hV8;_65$-REY;3E#!7Ok zhqZQwkE~To8^>F#tG;H*wnB$0JcO`{+UE^29P*0mO*dH^PiiV$q}j?8J5^5|O!Sjy zj@V@&-@_iVRFUa^l&YZ!Ep0Z(F7*s{g5z{oM}{%p@tRc6I^SN04r_+=zaLR{`bk}< zi?G-)4p?NAF@7-3J`olAOjXALAL(bVM-A5*+bvhWnoSX=joD`D8xjX@@vW6kwMi5A zYVAE^71-cl1x@((zicSaM*`}L5YW&tvDVA9$uD;JP@zHAn(Dj?k;*b}`$42Lu|;hU z;7s)$Um*ZJR=*<}xGmnb(%J5ErolR@TT$~K?>FQ9rm=MUl_)aE52k5guhB~7+G($R z1;*RyA<;^O+hVmWi>%kS*%EVg6Jde__6m4Ru?YgMGRM(2Xs6g05;PH}*aowl zX@|4SvBC&zED4FjLdP1DToh8J{QI{ZC)qiEb98VwCur_dhk_*bWV3wl9F0TrBY_II zp$6XYqBCr&G;NcWUzL!73} zI6tcECh1CjYl>XG++>VJax~S*I`SW8q>mz2Yn5O_HTiFoKIUP($Cj%mxb_FUkU|gILEewmQRJQgi~R6yNyT zG`$>Gg#>ykf0zr&cjyaawrNXkmIg z+AKBH^sbK1w8Mus>Hc5VVr2SEAve+jly-LnExm zuu8Q8*(UnVJx&clqjT-mxMJgO@qH3Jb z&sep^DiI;fCF=OuJin?XMVS3E6o_-GYxOkMR%OmUf>P+8jdI2E>~KJ&Owr=h(;(zs zq6p&R=Q=@xQkf3fXt5u>sgsNKs)ia@qExtsy7^gM$zIa=2=kTbNw>Jdoq7iQ?v3=b z*4ikMW0CjO^qP@!d?vypAzL_HKQZ1m&838^2!g=$$LU6?7ZvC4aB?o96+ z<{6``k>?mY9H*`8?3CnF%PrSa4-JiSP?ELQdCNyOOLwtpA{{bawpFradfENDYb;Zy zJmq?*YnG=CJ%R#gh67^cRe3erMm5yb!~Tlb>bk~D>KTA2108aPtp9(^CE6nwQ# zwDMs!e76FxIoTN@GkGv%%?g5)mfzj%s%@BK^w-H+2eqxno$O?}Qqj(|%xJ}qQCBUG z+UpksyzbV+ia;xm0ov-~IJX$1y-csd&Ws2>g!PqMCLq=vmw8LLNcpmqdfR$m2ifCS8?18(^JcB5<+!V&N~1tP zv~SJze1(6SY>O-Ob(?teG}q8#|FX!%ZqviW$vAnR3Jh zUrRyCZsl-{)(k#ZGrkwb_eW?pK6dTZE}E;9v-|?Ry7Z zD-0#x)iqf0UA0E-k2O%Gg8X+vOKZ)1;U!VnqyfZFPL!-YQb zgSj@lKV-M0XscLD&-%%YF7u;(uJ)Sk{wcx}?(%AtxcAT9ko-zHsl)EK9iBAEHht{1 zT1}VPX^~}S`ey}8Aic^5?$pC66{(l)-g2=rAG%qtsX+mb8Xhyo92jdxkuDfj<#r}wHrL_^=i6$C+TmuBrhm+iC;aA1j!cL>vX?LFu_$7 z`k7Rh?*?i?`{QAnZHT2+Zj zT6x`1rnpw20{MD43KuF@F2e+)Ow-1NUh$cQu6IrdsW8PE$|^lyngKZEYjvfI46bRJ zcTJG!Xtnf}WWL=V@}lEH=zQUZdeZ@^ioNS6_0*EBNWhQ^=D8!pl^bPBmM_K`UNFK& zrM`2OFi{HSy3;`gUX|hkV@q_UDVv|RF>;so6 z_l$2{_qTUdzMLaR7{7xdN9kyq)7_?2JOA*t@fy0*!;6X}7>$Xp^{`|V$q9N*!+qwT{^7O5>|>s7nt01N zO$?IgH|cJYq|m3f8s>coE~wZTM@}onIm5dSdCP9MD)h0l^^z)Jl_erYYHF``x>aa? z9=@3WfmOG^=>?laD7 zX1giGeCFA0LvZ7S1%uSzWv*Aa+&#{z@;GrCCbAN^F$VUQ**Z(DLEMQj`Ok@eZ_jtrS|&8qcR*ctjg88$9}11DfgAMiU9ww zJnUloZFQbVJM|P{hk!VP?KMrheD|Aav~(Gs(a!0fl*v@by`B|jwy&Lg*q%xfE$c8(cdc*5o8(-P zzIRi|PkLEkrW4dx-*Zx3`(GQ3MD1jT0DD=AL`zY}78~r;MXEfH>#3dQ!IneR5oxJy znyaO@U**`Sn=G4cv0IT6TXaE@;noY&N^>b<9kkbM_05)`+%97^(B2-m`$S_jmFPv; z$W*4K>x`6dpY`T@%RZaMJHMLfEXyWY?z6?kzH_XmHixj#el^>rCc4g@=4e)NBc-|0 zxAyp12XTf41qh3M;-o)OSBUx>+{SL+l4+X)Jwu|m#u_8n4)HQgbEcDy_zrcf^O6fH zfS_$MmD#APSOEjQ;cEZ3#lOUAEZYPno>%l2z|Pqb+7w<*i;h(bCKAQ_p*@uXIJ` z`rNd`u1S`=QHr~*^qcdk>2rxJ7qb_10D$;wy26j7pA8d z<$5vXSo}Vgi13)j@|>!nRJYn9S6xk9r;{#r=p8IN``r`!v#V&Rcik?@3}5>}mNKQH zT;U1#x!a}gbfQMVxhS_ML|e98k!+hx^M*U!;YL@x#`(^4zBgoOvK12q0Ckv zS&me98f~=ut@NNZD3p9y60Ry7bE=nZa=FzZl;$nov93}!pfLE8<=&HH=V6+fv+WS> z6tC+V^6F7OG{y~LlsPC{yb_-~*L9{?E3Zn3N}1JebB1#7>TSD5YGc0p>~_B!o#TMH zz80^iZ=F&lMl6>vUyj*^s`VFgm6bUoWwxm$OdWAzZI-T%<2;~-9L4r3*UaM@JLnT< z`&?J=s4ZHNJmIqSQriwMTB)b=!ka(yCOw2ih%5vE*UC6-B$poxF@ zN+Y-V=CC;lh|#r5LNeQAbv-3lz;R|c81&(GA>agS`Y-&eW{)G?y^gpi!6Lz3$}Og^Q*aH z3w-P*>m`~IRQIlI`lc&EQ_pGYBeP`4Q|trVq?&DHaE&{9M=LXp^}RVph&In+EtOVM z%sMi${vzl4(OV(E-9l^Ww#yZ%pZ#vqMxsR?vd1T05a+dOp7%%)dP$W)p^|H~Ux8)P z#h55exruTmIkAFs@cUTi1q(cN*qbl#gn_Pg!0oy@Imq7sNbe)`Fs}Syvz1D4k?uNa zARMd3hxB#$-QGX%YI{5t5@i&7$3eBkXyANd=;c_CdRZfB&hxRIZuwhfaL`m!Tl}hz zx<>n6P0?O=j}l8ASIK1VGuM8{pwu4IEVao_d+b-Drsg6v6QhrGsai=^EKj^xB@WnZ zq$x5)=;(f@h{kPNxYcs)EOOMJ7>qxX!fib30k`^hu)2G(eC0mX#~{%tu-AC!i7-m4 zNbg#$miuhg+%D8dq2{jhtGnG_$)l;M%uLCCwAKidq)D~k52i@f$pC{i5h>Sp%WSmQ z3>yves4n){qOoXO-EF;28aNKk{Ajh8thU`fRlZNUD2sip^5TO?PEJiG0ZtlYgC940rDtVhs`-!DUJ0V^zWqm%7cs)rYR>_*{= zeB^jXY2=`BPE*H;Hijfv|IRq*Jx^6y!OebimUt{zQ;7juxyz3_Suf1vI%Rb)9(b!67`&0uL`_U{5o#kv_IKelp(@YvL(;ToqDl)L5b~9rBJsyA@YN z2y-oVvT4G#Ks%WZN<$Z)2UTqUN1EHra*5_rtd*r#C1+=Y_jHzkSm)Vm zo3HKDz+#t*c8!@P22W}Sr+QmmxBE#Oef;2N(fS$VguhW*7wsSBc}DXJVZ>D3OmMAi z2~yqS75{XS9{Rb~9e#0}hm1O`607>LS5}o3s$?+gDwCy``-KZvBHkU=I~d|WX_Wj>57;#3Z?Rp(TavBS5bf16&W-FGchXifh?Gg!| zsKEFl_3@U?0+Pkb6(-h6-g3Ru)z{AVdQ?)4EE4_~a7RP0iuJx-@-#M5EpaCJz`zQ# zv%>r48tw+Mel*q`tK^H;&gojIr=?oLf_aECx#EQ>v)gX#EwaQG`_*@zWAzR;x*^=j zR{30kh0d>Lqhwhi!#0`fX`+kT8hO%9ZuX*f3N2Ue45xU_*XpQYo^49?vfhs_bdP6z zX0RtNT3dV|i+L%Fz}JbDMyTezC-6W7N__y#01K zpiH_0*=?x3*OgVX-K-Y+|UZL@XBD^v{{_fMQVr?Ej{HZgVZp{ zdxjaJk@xizE>!~y4g6cPa7c+%O=Vghaw1Cz{Ng>y1RFDModmK<( zZLRHbASgkaV4!b&?qq2=)u%>!-KoOOGhVp|JtNLI=P0&a4UtkRIqfU$(?2-7tvu{% z&uCcDIrJD``qb@SbFoo|THsy#_0h&%?lr=#-c+Yjx$KdF&KR33Wh^Td?tN{u2TbsW zy^0O=s^e`kR1?$fS67*7e)JF5Xb!DKcvk@8y zS1zCcVZwZCfFd_|+}FOhPMU^N{cNm!y(_No`nD=F&j1A;utZ0PjJHvuZOVP(@{k-$ zu@59wQH3e1)Vx%%QaaU8mrGM-klHdesF2FY^`d1`U2VA+Jn1*PBsjy}?slp!T1XKk zQn_*mjJ8Q5oBZM>FZkX9g-&&w+g+k-P-yKxbq;U(NSON$yH+=P$`Vb~6>FIfjJ95k z){eE@dm1V5ZwDniUvHUyvqXvWH1WD`)OV|n`YN$lq1l>C@s{>>dQm?oO4H3^zZqwX zR3%n=!Dv^hrJ)B!`oV5}eCJI6&_=pAF*ezyP!s(e?Hczh5hYco$LzAhPf|QC!AVMe zXRwjB`-hD_cjI9s+10*Q%MDr|LBaJ%W3%sdHqu6^j<(G~U43D<^R+WsZT-Dy zqjJTzY2ySfd}_FI5i-=W%0a1idc!nFYv~;;)DrI)2@)I-YpW4P;Y`Vz`#}qt1{ozs zvbwfu;E;aCTcM6DYb(6`fTj|VBU5vYgyBasoFA-#4_IfkEPW+uAks6|7~w~YP1D;Z zUy9cBh*`r>C+%0Q#aV2t0m|$XC1AQtnL6lfqHjHJ zA<;(~spkh7QoN~_0XADE);Cf-Y?c9by1_2}Txq*TK2*oqo;O~ZnJ&~rL+Q3kHAakX z!i5J_3JPqtM~>e1o9H-q1_>zfHhEoCMYsAtF4`{2?Xc4z4^;@?|EDhCXGPZi&5SeJ49^%xI?LEzO5m3)ek$U@FJL&4$;9=hxX{|7+6*INd6M9!<7g{Rwx#<ju&GdJa_chee$A!7>8!1LoGBK?4k@x*9ZB-VD$`h=2YqLcVsY9y+i?|w zfrnG(x>%lY;dAJ!393wCM*2n-;UN!Q}4MX-Z_Z&?(H>%OTSaK*R_i_EBwhc)Xw*J(qSeE}cqn*diaDy(+l#E^WR`dLY zc558`wy|#Zm8Av?ILo`fa*||C-0BAH_42GIBx~s@IWjEpj&Os6F-beE&8Z*_1YByH zcirGYr-~D%w~xH4uj5>0l-FHgtqE>-mowewR%cr8bGQ6u*>RC#bt;|8u+R&?sRN=M zFQBn5YTN8{$Jp);9i1#rH}#HSF3Kw`?Y~?QoRIml#Y&doqrX{-RBEaT7OCMgS)wG# zk?1DFeCTFLcDUbbPSZrbCp;z>OT4T^q8;|D?{$gpk*~WmO|($1l1d55LMc@UeH;AS z3sqXnmifVB!K9>M>Tqr_z%2E%W7U&kwLIlgT<=pCinY&Y?)8ihJ?x*x+hK!`Jn15@ zD|LcreCs>+>v6ajLy3Mm_)wW$GNedA zW6!v_qBC)n6MW=-wT+i)tOf1}#$K_S`dLH0ob5i3_+EeadEY{}c+81fnX0|@UX^0C zfQC{v)=8EZgN&4c23zh?2h{btyDYZRBt>GJZ>18gutEK5zIknp5N4kTE1I5`|Ba+v zJ#FnUTdq1X#L87qiv7aX(^{@whA6j6oVxDO$a?P@XRpQS?20I7u68bifF8tnjnZ&T@y2YS?1AHw-u0al*|O zCYlSAB*sX0dO*C_-4UXc)lhFy)t0^njzCUX zZk0qA>Q-^*Owz;~j+Z1)r)rd_Yv`x5rjkVIRIT>G|J7(=hP#di>?M(&M_mT zfmVV`g5ryHHT8?R;6!Km*6|+lfz^s6>f#vpc-=*2yUPdmigbo0A&KsEPr2Vgw|ZU) znrLCEM@4Du1`TcY5A|*GsIeNz@~kc1w*D`_Q=Y;qgpNukrmJij%G4DrU6L;hQ`<|* z-6~0~iU2XI68j+AkG52J2R$klI#P;Q;bN@_`Z0esBHiG1P4!i1gMf`*x5HJR=i_yksQG9rTNI(LS_JGxuBVb){k*E5#;}!KBykzEnexRZ4=D`rPr7DmnrG z@r}mVUTMRYD+;n24q53^|I%1Mnv;CsIbH4awDY{KiQC-f8HFx&l9SxyM`iBtlaJit zIIaG|rWa`7lxmJo3KzB&g&Luu}YsCeA zk`iyqv`w}*g_&x!I(GQj2yeRDW^+UuWtnbg7@#mb%hq&h@j2CRr$7iFKazo)TTO@}_*HwtL(ocFIy}t#AI4jaR7X&kFa# zC8?=}B3l*Oq`7Q&xW@UFqcJk!G8X4p|#KOa*?^O~MiN zRAZzl7q7bo;I=7B zLJ&usYlZ6-R4IvDFULP*Rq|*z$nq}{l@Puf22?Eie&J44YNOtclBCE&5BX7)PQF!F zeOr{ul`C8$L!GDJ--KF9tT*DY8g7SeyPth*r}c965pKFj(F*+PbT!O1)IuX&Qf(Pd zqzI=v;Aq_|Eq#gy{AQ$mT8I;`pQ*a)?|XyA+NG&NJ#6)Z%M7#FXoC?e-3DnIh_Xqp zyOF0%T|?cjRJL$$>SX|O?4^_oP~sVq+aI5`n)V1s|@K1G;G=SB`X%iWJC` zX|F>;cct7!%k?+MX63@IuvMZYNoEKbVv~bPMOv+yC02MsnL;(>+U8BWG}lt0UC!~m zLlW#!CdxyX7RtHRKkZAOLO(mwgV(A!Ked0M1^Qmo2l8`rqSlOoKsQy+C~aDx#x*{j5*Zgs9mi@e}k z`C>J<-Bv$XZ=bK^`^`f2B*~Czt8%xwyV{EChDYcOa->XWR}*CW&S}C;bF~b+gL$L= zCMon*ZKK(rEN-q805 z-GTmd%EGD?C5Bb@WD^wl!a-Tq`pO7%v~s>a70H%7?|RZ|vwdy8Fsoc&tsD#tw2g();h zTLmK3&_<@+_WHs{-muX&jnzW2F=Fw#-{ct`^uY7IrK1L-LwvYgPa7}!hzX%Ed#n?1 zraSer#hWg1hM)EJZ!hTTL#MdNXr%b3AG~JB-`>XMhWh7U{PtG2xz`T$b@NZps;%7l zuF+qqRL7Yl*)`s`EaY9wg2ws{TM*}Zy$-vQlbxuCAN^Zz>5kIN^A3o!(|5kn+j&|z z#X`SosJ|3rEW|-YKDGwC{bmQ|$wivxvP?14%%IlgB864tBmV$yHVBB7AkD158HxUJ z+2q*hkcLW?OSNC7C|PKTR8fjdRBVLp-ca9GOWbaUC;^LvIoWEj30H=At86t%o;qrZ z6QPc1H)^NYUh(4X5-C=h@`@_%QXg5Sjv`SSO47d4o|$G>C8BGjqZC*Y1Z48e6=}84 zmH5#6N)hQCx2xkN``qL!6XXd<*Cyo1mix^X)YRAXAiuCwxy2rE2!%4`BiAv(PcQYF zkp?);drm?(jc|e=y%qHJqw%dhvPEbw&SHyPCsw?%cDUJPp3q3XQ_b+Rr=0Bui*3=^ zc+q;=s=0&4_|Z;%z3yK=_nFUp;VrK@Rhc4Fyy6Gj9kf@5(xBH`DmMh6`on3O?irH~ zt8DpW^l*=KYlN9?jaiC=S&3LN)yRqe|1shn9BY@Mv`e7s&AWKKJuDuG&9H@ zMv3vDfXA&B<78v4QNt~!8+({hI?qe)(#y|ouLPX;Hpvk8N_Mu_)iY6%bKUC$vCa~1 zs0)H7s$8@|vb|ePEllNjBD@Mb98oy{i4d)WnGRr|JQ-M4QPx%HWn-PIOgFFVXRV)X z_t_EDMo$!pVn^xk9sgFMjlG8Z%yA}IYn8hCALe%?7-@u~L|Q1>Wp)~8l{B*@2-i;? z!(A>%j5K>pHr!erB#QHcgIbBSS8dq_1+mw2C1Q;=u9at+Ys~jYJjYR3D1-q`RewmMBu16f>HIEoKDeS8Kr^SgSy_;U*3wn()w2?2(AJY;ZF8wD3e9$nri!$) z!w16b5sZ6wQD*k8#4JA7uUb&gp*I*O2U9-?&nd16CQYR)v|4w%)o*x@UjSNh=DrK>B|_ zq9kizp>yP#={n=x=svBS>^HBuL=Ct3)Sd1!)Oe40OFdWkRHwswSHu`0&UJopk_$qz zC^dcW5w$ee!D(LenwRzVg*xhp@tdbjwn({v1YMN--bsgPKvcdH0x~PnYAYFx-2!T< z>!1L_WLPaC1b6+!`(77ovfnJRSg9lrACb@dyKvk(vD#U0hQ}Pz%`+k`P$XYxFRQ6Y z!%7kXwPpFmhGPLfq8m3MROb6?lmu( z?O^a2*Kn)mc1hF710p41yH8xE4h96P$M^WqyRLTIpHynZI?bCtwp%aXXrjABcj#xo ziSoT1#BTrX#KT%T{=J~P^4Kn+QuH>_nhMq4GA|kL7PqS{AVEMtYd6RhWCj_J8Wcy`{R!1GAt0Mx3q)MSeq;rE!#_4Zg#g!ATjrb}Q z<|Mmx(Zb87E7VO-WNRxz9aD|cN`E`;vfN3w$}rYCFF9znGBcfMu;xcBF{|U=ia57W zrhPKyI$*!$_F8YgaawCARt*irsAH&vYGct*)7#PkyX~>hF+nOm?d6zIVKB=1TV^23 z^UnWULLC3y$d{phl^tIy!qb-d!MSP~r=u<2cE4oT8Ec;+u`U+nX*amaRaWZh7z^F& z#cHHt26@s&-Zh{C){Az!N1Pv2*}c}UHu=?aIvFR|v1*v4zr{hO-z=#LedFXmQNoH4 zUImMY2n7db$Z^Ob?W|X**n0ciq>*Bg*yuH9YVBRW$QF)7ce?IR%izk)lAyNQGGr^X z&13<^y13NO;;r?VlXN$vqWZG7=6-OUx^ivQNrW41($*=W^w3cci5d&oV288a?`?H_ zEXI@aJz}ddnmO0A?le+{6djT0V?zaGh%(Mkt`Xr^Z)p>3*xFAKW_ntzH}(CCxZrf# zeCHOk4RVbchUjFmmwl^1nOHQ^|9@mI4rh(Mt-s+R|L28@e9=tbdfEkIkR;JQha@{y z31XaYklDVoK$d7JUNfR1n(Ob)kp5wX4oFk#ReL?^2B$e-rX>Qp8KjX7_Sq;=iBm=U z(RZ$qZl5S^97MV_6GiLkMgf!jB1NoLiYzcR__SGKs?qfPJ*LYSD_odxCG!8P(7)JD zaRQdBB~gxWiQ+X5n@G|Ylri^Wtqo4VYWHWlBU!EJI!>p?p7$1Z>2X} zWWPMQO5~~SXi<{f>NU0G2p4IH1t$4PGiQ6!GTTH2p{@S_tKaGC1Z=W7NaU{JOcTsB z%y!$IaB4v70 zEhl^4R_{2=c^ZiOTNiUcxHxek5oD=i+w8E_T)!HomNdyB3QTaOYDk4r{p}|?caA7VmKySls_MV1DcrhqIJx-)FV|^=2 zTlZ<`+z_74k?ibB@shNV>TC@hS%6`Ci)nrhkdpw(ba4n)iB;}7l<-WH=AuTOr(d@k!Y@6ZV39u z`=lK~kRjK8#liML#UYf#zXRX}BrC-hCECanrG*6HYKj!Fz)m$KXs=wZTP0a#uSQC> zcAOj~nmDAb?r37GgJQ&*>}P${uv?ZgnX;^~Q60maVZCu$id5n%QGOGyty1sXBv-jj zA2s9^Mpd5U-1P z%yXmd(lnKgx|$p51Q)u>ot{?ieis?#X>(0cqMunW?l^%9qNLH_MoSI>?{G^t~8iphs-CJxCsUR)#ykSpB@*4u29W4+`g^^s<~a?xfhcbOY1Y<9R9ugQ1m zpLXs2V~jRUky1nSbjUXzu@g;nRLgOG!$$dk66RHJ$-`y(T0>1_R#20}w5}j5SGDge zEcJ2)8KI4FlKku((J}=pj6;&kU3ypy7_GH04Anw3T6w@4Vft4Jd&B%*7eB=LXyR8l zE7#Qw<9+QYM@z6quDZU~Q;s=qR%(<-oo|J9^1SBcik=92G&#av$yF$zJeaEfZ<5|c zL0OD&nO4eGF5f{VYDiQn#&YL~l`q9&TeP;?%Z513?WSv`xq~vKo1uZ;Mk~}wkwPac zw7^i|A{2^}VXN2e7h|awzBJSx2h>x`5E~s(VykQgicPaCDDt0gp5}(4#L|!km(5)1 z1#c;GwrR3N87xT;bDd|AxnB1K0#0(K$wqq75O)RPnFID~iCiDMLThQR7LN#-a^%=1 z4v~s|q_zhoiISy_1Rok>j$r|<=VeI`+t7~H21JFWy1d^L8PnBYM5)6)6qx~Vl>m)WfJkZdLg}3Hfru# zOSG>B4av64(f?0!7|qr3gSJ{#T(a9GsExt)TN7-<+d>Ngr^>X_%;3sIxWzhO>m1Cb z)^g(!0PKrRFvEh7NM^9!MmtS3V%=)7Ir!AO9=F_Mwg_Oqy1rLiv2;IMQYGRHMV(4R zL>>=|FiItfG}kV_SR!7)I+L9(1{>|O$9i=%)zv~146LS`@opn@wl`iTodU)5bE_RnWN|5dX+bV6aQ(a}hJr3#PBu}`^Yo7CgA``q} zyE3(8*(26)jim;~g>w}J{l$me8xrD$>1CU1D|%-9XGRLE!QAHr*%&1X)eRB@>Z$EQ zo2BW6pDq8BjdZ|LOKhvO5CuvVsj02TI)rTNf#MJ2k^DXuXd43Z#5vEUQe@cRDkG~v z0aeF7OWkLLPlE}x&dzaGC38_4^e={3rqp_0I7LHI=KEZkPlRi&i4w(99qWCsD^p7Y zD{WI#CwnZiutM#I-PMZ8{Qi8=!A+P{h06TbIgEfXaRQ>`I%L06;WkUqU5s%y87@qr zd=qt*uZ4guTIu3@D>bsibek-))IdG#604R}HJodL-BQ#LrN{w2C0gk%`@O1}Wfm*7 z-+n8k$=B4Ka>Qt0mcSoy59FO`lk(T&(6| zo#V}jZ=tRH)?LT+LBykl$#HW zp_BBLX_A*LP^z;AYI@nz7O17rgSHr?jg`*whWfs6f!qEM&BY&c6D{^{^9dXJ$aCWC zw-o~&70jCcs9dZq=2Vgj-5}0z`^>2}hmlt4cmFR(oEk>C-NQa{NQue1NkzD`?GNgG zCpb}KS9(WB511eP%XAlsmQfLN1decelAJBu>mhMjjLU4Th}2spPJ)NrmBT@x}LxsqI`wXUvmOhp^Vp;Z*;Bi!IBHN|P*bP0YiN)sn| z+hdxz!h=qeCD)lcs-c@m9Q33VZQN(9i>p+EEV1RVv{I?BJzk}xZ@*7XMwBEmhN*3& zI(i$SzJ=0#W~fMe{QC&tN}1^%^n!2As*q_fGszO+YB^mKag~f`6a9}6E@v7d5u1#& z2QBn+i+ye}ORK-w$Wy%|&sHDV?nCd`Q}G!k=Gy0ww}X1AgKaX-J({`79vgivT)chm zHyNuPr->F$m!Yk24YjaOThGWgR@;!ydZE{5X(cLOwDMrmvXsA3e^EI&E)^wQvQjl9 zNR?oVEYSkiI$3RbQhi~g`_+&l)?UTBSZ=Gn;%)S)Gxf1gFIo18Q%8oQ?e(-#vLuN$ z!&twn<0kc_=&rpV1Z;7tJ@(31LoekD#EY$H3>B|ku&GY86Dx7Ul0Bi1aqhBIs+**v zfeZZN82?u0dzqRC6V!=@d9|X9v$kPDG0TgBzVk}cP#{qaY0ed+T%ig2OSA`(4$4$+ zkG_T~w#OBo)~?!|;{ag_tM~dDOcN36J7>4=eSn?-m*2B^cxfn|&q4 zU}1)6;69fc;&t)P6)w+esV4Z;HZOZit7;mdr%Uye#+8y^W8E4I?fw{tJa3PDoaAOH zYI@0ZN4ec}Exe+OUtDgOpM0g3e^pbS_?t0qR$HuyiuuU$kRH{RJ`$rtweyy5cQ9d} zW2E_-Xr{K^9=6`yN9g7KpK+obPgyTUt~FjV%KPGc?L@I2c9rHncZ@Wo3b<5~uk7=Y z#mZf0mBqGrNNd?HRV+hS9b9ag18U21GzvW8wvf(x^+T@BC02z{0n;Rl6y|q!cOcD&OWrp`F40smJ>rKjnJN{whjV|JNhMaX7=9-jx$#u-Z7* zcwGcEQNs=?>U+tvUNc=Ym+9bACAO&h7p)oE8{%`zLps_dYGRBtgT|(#0lw7K#h!G) zJ06ngkbrIW>!whcJ$A`ILMe5CDnE$`wI(I<)bYAaMj7rbW4xih*Q5mh=sQojTs{9b z&y^k&XSMYkBQkV4|$p5W#P`bRtmFEvhq45X{AKNc9Tz8!Lx z_lO4}#w9wrU8Gc(+3$b@5>2$hEy`t?XIn5Bj&`ciVl6XKEpci%NdrASWPuNys)diO zk|a?x`#dB)2YZXJ6wdCB2Ytk6}LA{`a@*eHow+NhCk)(IG9x5f?%S1LkHHyQ1a9HT_)Xs2b~FwEJ$^r(;I zYOGwoSkY=*E>=xHt1kg3i}r&qA%M!Cv2Kp?nY&D{IMURRWVfo%jy-z+*#v z$4&x{)-zZg|AMUlkGZ>yva4FU2K=RP%jM$k65QP-xQ7IS zMTxt6(w(%sd_S@|v0Is5Fr)~c#mvt~Kl9;y}D=?)j$X0|R)_Kwe8 zT+ek?*H|CxmHNVkhAA^&y2Et#p~JN{+8E!d)JLHzH~!_xGXK*SWt8{jEAfCE0}X*L z_7QG|O->44^`1E{4l=Smbn=91`-HytPo{gm!S0~{UfYQ49PU|<>KvjBAK^|5^bse? zZ+auuwIcME!0p%mgh*15==s)UKt&8?0z*bOEaEK-ir(801TPEB14y?uXPY5mg#b(x0<1JEQqzJSSUvHY??g97&`w zbIjM-1nW)qnsSj6>@dJ+N7!VGG%l{d7 zu`9#+()|v$#%n>K5$j|#oNZcgPqJ-xL8$m0t*w9hBp8gm>-Wbs(scaaY1JNfkwSgl zBtED_?Lt;MdQ}xV_#z0aL8&y$YOR{#n!D6l0lRgi_C`o^ zq+^_Ey>h9#dcc`}^r*Eq$!~Pug$u8fVT9L?bX$lqN;ki{+Y$%5RYzw#%_-jYfCUQV zYGITTm%3b`!AcGGm^+-l3F-pls@ivW+=VRbi1)u znx;s#?M6C0h@*aUS0nBJJv^@3U3N(Jwlxx@N)qK0-z%{NC7$z+)1{j4UT-_sL1v4$ zQaRSRSDxOQ+UO|D6zVI*dp@$*k`UZd*Ag9E%Vk$-8aR+tiGNEAC{4UD86rffR;faw zj^Z>ym1sM>Cc*W_ddwC2I>t^*{HR)gEzL904o#)lshxL}%JGd#MChqpv3(qGqb=eU z+TnF&k|e3pN2z71Ww}h6WKmjbEj1*#{a37~Q)*@71A}9&xhi+n8>Rc#BJSVC;dA}w zNqt0G>P%)QrhU(`gqfH6P@Qw7igXIRhYP_oVV!r+VMtJ(4S2Fte#ZPGB7OQ;` z`pqDVY(aO~p>v^w4p!USvxa!X9R1zo-rcT<7CM^mDnEz1m|7ZcjAgF115FLERkjo< zj&Qnal@iTxx>53MQ*Eb(yK#3VjX8`;RhkGl$8DB5*L?{g%aW4SB5A=ZIz^`4jYm0+Il zwRTQ0HZ#fKkTc8CqSi(&a-%y{20+wE2Rp|N_Hc#Hw$u~LD=<@pTq7OrWeK{AmMROs znc-RG=2_!%ue-)DElsU6YO}(&!0Xp8gojyFOB1GcRuZedg>I{rDa7k$Xe}3=>bP`ncWge)5hTE)E}RIFf2)R3qSQ`JMH*#* zBng@-R3u!KXel1DO?MUM+9=F9nn<_FIx{s@uF_8L*rBI;sJthdR>ewL2DT1b|phf+KIQlr#Zchmhfo`0!3HCN=Bzq|+juzXi~DagAQ z`q{-+XlaOtz31E-1oHEPX*E>T_>{yTJKCyTgcW}EgEGD4nXAeW9|?1)|4SBUFG<$= zMyVXn1P5-pbay!~h>Ba+lhmNKz7jlStqMKr@gn~#woA~zAv;tr&nQHD7g-m2Rd4OA zK(hQ=x_ZxAt(|{K^Rm{4c-|$oSfaHpS!=Dm;Rw$J`zJz6eLP{M$CQaO!YoBrY341b z7%s;Qk9*g7db{2*CBAEP#f3FKqBUHYJZn9RBp>@of?v%x%I%t&r9_sS?QoKHs%7e@ zNSp-gG;v-nUCzI1iO%(v<+iDoZ2_Lq#^H_%6|EY#O0Ssb2Cbc_pAwt36C)Yh-L23t zrv+cGQ;mv9k%SuWywQU`ah#>0n{u#l?F%+KUb}x>hq_f&#BQQG)2u zBWzgXHAA&kwfbCY|Mnh}y(iT@@^rJnI^kLvBi%X&20b(PI@6baF-y8$5*;MoAU7#+ zw=gH#SBhS;tdQkkvHod~TFCHbPZ}TzlU3Eh(yQf~?O400gMUYRt5lgCmTF>Id=ecAk7s%F;oZYS}(?jGc<4D6q&V-90D5I$@eyuFxRA z>Zw$QQ%v=d1d+x_wnc?(TWnNnm^eGcDhti?sDG3!aL8YXWea4vKs%TEsMc8FzhYY~ zRcvovBujIl7Gm_(xn5PVd&pfppl`j7jG+dIm1L(kJ+0UV19eg=(#8LurNirkB@?Xi zlvU1_Bg^|v6=tnpoa|g-s%1%QU`K3niy>Nh*uNbAC&QZmo^5iWGhEWZ$(3T1_hbeA z*Oei$m{=!D!v@Q(2&sFesPvNSbg`dbeC$-M+#}4Lq0viq!|oO$9VyB~5}X-0&QG1` zDK~l583w8FnUV4(*=mBB5=3~^Jw{pUPN&$YtijWxyq@|(WKCZZBT|N2WXV=2#tfT; zo8~!9yl%5-?Hq4{2+uj&8OntTQ!4R4Vr5s`;9b8dLNhr^QDV7!z2R)gXcZ+v+Jd%8_S|e|c2928Ej=jj3@hYuuvLe!4qVdM*5WhWk7lY|y?Q zc9l_%5MHBD8SYS5nxd}*YJfjgs_H%V6wL#*XlVTcpI(1{seQ7TBnrFtPIM6nzt6y~WE{XolZZs}^U8XXL0BFV$p&B|21R zEA-RcN>#e}Nq;+RcCe+MGFEpPGTrJI3!NlR4+T=iIn=j}Dq(H%kpuq1ft%_9nW9`- zr_flxNL}By+1C*Nbe{^Ho%N?8j#XxfuIDgf#HetBJIyj%rq^60T(s-|l&bx|Z^^DO zQ;hTF8DgevO)b_YaLnH;tutG5mn|{RnR@wE;eU&K&#sjiF3b>zdP4siQa*p!FjM^^ zUWN#LtkgPicFYl`H+K&|$lcpGvLPrXCaMM;D8hVY_rqL})I@DzL$w zKC_>_HCHH7oFYqXmMle~YGqP9ZkuC6CGVDQ^q%+p)At@$;&i75+pExP&JJ}xZxAV5 zv8|?<v-RVOod$NII zT8Upg=CTlkaE(IG)taI3yZxq34eIY6Zg-#U4z|WxCkFR%xF?iqS}U`gX_1rbxY;rRQzR*f0;^oMrfi$j81knO2x_&rb@Lii#%YZyZxYxMHV?lH&v3f z@PlxJY!vTFv4&XWK{*&nwj5fu8cK zI9L7!&EIHyTT9z9g%uELxm>Nbu!uU_1ygb4eRIN)hiW$0z4*_#^_vpul{mtp}D?I5my~Vge6SwNvfG|*B`xzOWLIp0fuSyoWh+$Bp!*CLRtF}oRrHRo(b-(3LX;MYtk>DK zKJlVV<+i)g^NtA)v}_N#)b>9~w`V%lEU(%m$Cf}XsmwEG>#U~=)s|}GK_iTJsiPz* z@vA!>?m#Cw(J@YSuLoS=ROh+MbG(!ug)#JBJ@}hd9>{n{OMWVDeK&46>JS;^gT|Mko0Cs@AbN#+^1e*fpwT1=XT(eGQZ(%Yx9A&M>(FEONXh z=KO_)A1P7npB~pA`q@3&i_$@?-lF{KCq&vLQ+r#?l~HHQ#7R_%l_Kk*#%TuFqzVxt z8trIpcym{XuuQ%mY?L8dv1)mmphA=)xBEHrC2#YQDp6~482xnO#Re>;-B5hQm$j?5sRH~7tH&CJ4mA8if2UUr> z;J_4F*y{VxzkTJG(9d1$C&Hl?YZuh+{>+ZF(&XUh1?FLmCzRXjV`WOPxASbZ?tiSY z?LW6XvsI#gR-{sv{R}fD1ZgH2Ey6?6408x#U2BBq%1m;yuj&OKY0{Lc z7VapAdE6$+QVjK;Tz#GEPOo`ami_EB-fVrf^P3Y4RO)NznlHSODqEH6-DMcn@@?~( zLKU{ypot`}N%oLYDowJ}L>pzhHqb7~ahdO3)8KTsnzl@eIM3_vQ=1&-6PH^6t3Xu0 zWja0)r>R3!DAU%(x=WJld%v0`N3k4j4Kmy+2iV|CxuPB5J@2Ep;lky3$36y#5~kSo zzQw^c`aI`K4W)7Uwwi0bRH=rAAfs0Gu6Ls+6`5*_a^LD}fLs%dve{#HYKb3xCe3;7 z5bb;YRC?Q9P8KfNxEks~yXCV*26hz3^MwT>9^iU;Vf1MN} zF_3v%BU+5t3~{XPa!qRxy6Nu9|Du#eiD`C9Ls@7I6?)C#p;vT5u?tj4{fkbwxuL!Z zn)x=^sIN4OtkT^h_R&HQhg#vizdhCEf5ReuB*#8>C@|ar&r6qTk@caPO_D>+)?b(~ z#oh~P)wYsgb1hR{rfN^EK6^7NWA#7Y@}-l}b^L@Umx(60cIR z648#4Cd`~rX5PYB^UZaHrM^)n%>cu_ZGdh5>D@ZoPe}%uuh=eisa0+?N`$ty`N+ve zS!A-w9&@#SDAU7xy8F&jH#^$~6%rNLRtFXMJ&6c!TpFZ8o;U@j`rJ3R%JrCUoujiG zJ?dKL`Pd3+PBPkN(|qJ!Ydz;IF{r9@$gT5B$ZHiFrBu3BR%vO4smiUCDOrU*z2#~X zJ)*54l91vMw|LhlKKHqYTuID5+~;1Sty7G_nxdmqEHXudOIWJ2TOfz z&ybH?W}B|A_ofeOlwQl~TzR#ZtuaoqB2^M33NyrhV#JD3hC-ifsmQ}tS!=OdjZ)x- zKpm#8?eK!*?JKgz&7Mc2abTE|AbzS{i@4Ukn%ZQty8=;`rpBoDgQHz#r+mvBB+$k< z&kC2=ru8awD@vqI5)^yK=75IV*J7tjS12(MqKQx~MO%}tlcrpfCARuW zwT~O1O_QKkgPB{gHGc`J+Tk{*$q|bkp^)HbbL(YtNz(p;yV#)wVNTU8AZxdErI z{h+mIBlUHizLv?X7ykTTuy}*LY=cVs+GbB>Rx7irRu!qQ;lbVQVx2-1+9F!l1|*IC z$OK~krgCkOnL5-!3dVa(yqjI@KF|5m_ZBPFN>^);=OtUT*HwiVl?fMar8PRBcW53X z{bV}87s|ACl2{Q2D07}{hl=)ktqz)U^s*>Wgo<*GLW_+P<81S-#EDK)?p`C*J|8LRHcI_yya~tDs{Z)U2CGl%=4-&x#pPc zF&8-2$?nv|bM_IT+5%675~@lCesZ3Y?D2a7c z*At{`p@-g@i_k>4WSumTq*NYS2Rc(>S~^Z=PdUzq%CvP)jdr_b%0h_n0@v8=SQGS- zS>w}|)Y;@;dBHhumgN=g9HVQf{F@i(z)n%EpMRKalP3(2Z(RTthdi zeo=LeX?4oZOMH(i3%zNQ(VlUT&uqs^8|`bhC{2*(1}TPUV~pq!-QbUvb)afnEpGsV zD^;Obsa?X}m4Blbr(Cr-5ffcAzfKwZr4OxK*B2p3_uzjl(TM_aIvxA;}u7_k?>T zg<|GxAJ*Xj#Yy^`-C%{**UE{*wbRA*_O{jQPIrlq&GwbwY)6XC9+7FVf0}Nht&$`g zD;DFdu`~oQ4mQRL8^swT2Hj0}kk&qMo}X)on-=>-mH~>)2(G-H^L#E+m~OgzN`*uh z>aC*}y)IfGR|MG0&rWx=B8B?<)C&zd&@j2Rg19;kBT<-G5#Dm6VII{3EnVsf7mAVT zA}@Q#GujK+PpbJQo91;_DAPu<86G#mAx@L&m>Rymoxx5JZZ92`8z4%u=8khwJ)TC* zjAy5k5NEln#zEIcQ-_8Q;bI>+&-GRa6X62;`pg@_-z_pqI!b)%I`Kv~Fp#h)(480j z#pPQ0r!LxBP={B&MS)mzy=;|8XK60Xcn6!OT2K6HaVWp~LqT$#=z2g=_HG0T!lf#1 zq$-qQtiwX`=S1r30(UrDbKwrw#zPGt}t;yD3q$J zC(YDPz9M}M&_cd7w$#!(_`g!Wn5;ykv1Ys4Tt|yGT!fEhNe=CsO0QXEO)&VipHl?Lu&*)5)X`Q~XzwEf?CZNadtZPXCD*EA)S}g<$Wd;oHEy)8f7f78L^;!B zNBXC5#h&$xD$`6-C|s01U9Gckz3WrkRO#eLMc;5~w##m;n6&~`EBx9v3^_eAp z7GtB;PSV~t^(5Jgy@ZLujVSc6wJy+9mF{NPSxd@et8BTp>ftkI>1&Wp_L6L;QBquK zi|6%}fOJ2Kccv(87FRDy+p$~dCC08*H}y#ZyaaEA+Xmk*R%=LHu_ zkf6$9seV&xvWF!)!W0`qGIzT+P+ai-u_1V+!V9wfYA=%=Y?S%BI?qEEy3HUvG;IL$ zPLW}@^air3Xz{Xb*G;5U1%EP>zP9sB60ezLDXLMay%I6HD?oy96}pJC%^O}-q0Ton>5Ql(0vO){`mXJw*%tyHX1 zzlqb;@jmypmtEM1!;jL+uZ|XGt8f{PG0_6Oy(-e>p#URZQzf3TRgz6gB+pA6^Zie2XBpPR+9$vGhPQqE{Wv?2k zG?<9|q|e>#l;B#kY_8!jX1LRK>-F@u(;O&Ve}%RvH^U%J#Vhcx6O2Nt(_ACoDJm@2 zq5-mHaUCu~1oA^Ngn91K+SLtg?A=?GvPKZvFo)~w7Ln2Qng z;XYI-Q;axC!e!g8SiCr8Vysc7zY-~?de>9Fb*-;$6s@^vFBqVwwwAkFh9es(74PkF z`I7zY7q?2)!z8`rhI*0<+~g?Zt+K_%I$N%ZMfNnnYqF&|tVaI!t@pL?oS$r~r%F&e z3eFFLvk&CiUvenFt&$f+<=NVpVGoI#=^mkL$ zJ+G&tAdCIPdTlf}+PBWo%GXLXb99~Wli^kuxI}bNcU!4L159d=mGFAH4?f&5suRFqemwLtvnmXOrJ~U2O4;WTw_eF`RLkSPB zy#=eKJJUr@mG2HGIme^`T8Yrk5|uu7moyg|ZkCU15bgw>tyE}&@h5aI+GwJgp7yt=BH?<-35cL$ z9A$#lo;Ajcp0%eg5=1KWm_xkmJ~uc~4|G;gOJ-}4YrUj27~!+bCEj;;Fjh27y!~n% zaJlX_$I<$ES#yWULWN@#TdK?+(lkeIsD=MPC%DTes+6jzS2yV3n-B<*?*$7`;8s5d zC9g=6ERi73^1p?t9w*f!q13WE`0sb?=w`*56>*R2YoMpJLk>@F+4O8q#z3NOZ`NMK*NV?Z_B|~HcSDdWuZ*Wv1 zgeeiB!Z+3{QX(vvK3|R)ktR4=l^M2KrdW<9nu`-DOQ8|=HqYbM=xUQ#JEdr+jeM)^ zkRVl*YAehaCr-FLXB#X_Hzis~Q6f)~VLIArqwe;y+*(WIs+Q>;FErw~`)XzZ2AJQf;=*7HcNQPU~gXr~>WqlQ}Y_OLj(saq;iA!oOrAO03zk zH3>21N=>vFrPjMtf*HE$sSOUaP~L7rhyQ&m_p?aDQ zrA@w6B~F;*%`!`@Z3;CsZza=22fM=0V7U7mWD{jroDGI-q|C+63N?*>+{Sw1cd zuC0|bWjN3>vqbJjr#eiBTJTsGDHx`WZ_V^#Ey15b?sJu|yc60RhnZs`nmF20MA*ys zQXFiSOKh~S_GWrRl+OBEV}&!UbWfcOzgo3|S~THWcQ93)WM>ELm?8^&>;|tn++JE3 z=U>(ts)?p%i?-7zN{!URl|FTvB(0nk+<+}^uv32zHPFCTq1Yxjn=MPO3bEo1aH5v> zsyCOdtt@3mI#i(|<#Kgbq`963OH!$`Bxegm#ay$)B_0E+O9IhFEOMEa&gm7D>TO>tuJ8iWk z6sgA{)n>Qo^+bi}s`#46F- zPA@y!4qL=(qf(JXMGDNeQxlOE+Ad!!5BtFCMxxGmM_X;UHpW?NhztofIWcg`pS#i+ zT~t|Yqa5>nB+`C*o3Cx1`p%cuxW*|W?fWOps8X|R(G-!2mFX7hJBriFG`&nS#mO?Y zaD*t;sI@a^ncP`wN!U$_Hv$!{brOh`+CKrk`1s@Pi?HxPl;zOc90airgi41 zv{7y&b;D+^x5KLjh;5WWTqaI$eH`Z*nK}o%ajIuUdAI>$etnCy)&e&OM-Oc@)4?bo zxz)3ccAO_GRHCXDB|Akc2YJ_QH@Yw6+`>dVOJ`5&6jW&Tc9iQ}Zm?0luv40SeP^9B z&GVI~T<3H*d*8{vHbb@NJmXNGIK7_gctx#{HL^BG;P><+Dkw{jHs5>h_k=!9Q0RRJ zNz%v7qIDLAEccr((x>`3*mNy)6)ws+!!@h7kSi_ng5RWyl_gsQ}>UvD_Cvbc`z{JIZB_)4~-7 z*2spI`$|)*ga^g-^$HC%MY2o8qSBdKIa)W5DfOE?dwaq18b@A|>uq(uYTf14aTtB= zZKi*y@`5s_ij?nV>n*S!nz_|IJ~34j7YmmoUNpXRljj<77{viy;RI7%Yj681@|Xg- zzN^(I)7L!~TVlM{4luf2gcIQe{XOp~2ia(;9pZg$gtcNV)>DLqqLJqse5a2C&D6wK z()G01(ndujVjGNtt9@=|;AWes4)H|($`*`Ng*cTeR4G(wmd?tpLppZY=@c_`ajM4+ z^^G5u8E1bl+o-uTYfX2OV@3GhMCYTECT5zaRGBD=;!RgANti0xzBE*ra;5eZXM=L_ z#`;KWal*}X0{R)OjTMa^K11|CxHFa7H3l~^1pF>nV2oJb_)?5mZ&~dK6T};9WvvFf zYVn>kL_{ObVy&c5|51_{-+ic}>kl>0$*RZjRn&#kwwqw8@3>#pzLpU+;dvr-o%i&i4u;no>qb)ya=PPETWcSDWF;#jdd zy3hn~=-{T%ldSNC@hUy8wbqDrv{xN#4-ey0CrQ)KH!gOKMJDO&bRU}O9f#=YXLEev z3}5-w=o%}kQknQ#cc#`|+Nrb-coJoxeonXAQi;ZS*aDFzi1f6D!o*l>EtcB z+B#cr=`~u4e!p=!X8X`5a*cI`e3K1!k3o%$?%35IJ>OyVD5+t>tg_9is&vy{^Ew5_ zd_PJy(I6A*Y^EZ)p7fLDwixPG2a7{*31+#k*5{OY*lazV6KwlUUQlMC{no#a9P4u+n7}ce>b9)naJ{mQnB{d!TUB^YM!VXngUIA z6xQe%(p_@_X-74f@kxq>fmGOoaQ_;g!{}m1AQmE#ySfVUgz`*uX}@*`ORX#`PC$o z%&@@^BJJ-21DvXl7bWQuEV*_jNU+lw*I42@ldbiMD=k5Ot+MWRFF3+6UeL!YUXbJ# zojhyrM%_iZ4?U@$eHs``Q{W3pPIbDGTGsdqmC9}Pt~uVf(|L82I;(tZixuYT=?*VA zCV1yGeRQbvDI0tx!a@s0p~R!68mfhCKb!3~+cdX_Rp!XmN;_}()h4C&q%Aso(#;BL zNI3j%U0r0GiH7QeQi)#mX;2{BRgJhwhURW`yh82q8cuA4k5M7fWZMzpYzO+lV&zV@ zuUyfxRQb4;mTF|9no+;!83#JvW>1(VOojP&c+jyTOgBNYQ4Tdrkx^C%vq6QH(hb(h zOO5m)RLE*TIE^svG!52DtO)D=GEXX5hAlQKm!YYCdP){1$zsbyiSwD0-RDUY>?v8M zoj%pe2n!VGq|z3}dh72i_nBvVFj6SidZV>fp-h2N5n3xYUxhIFPO-vITHB;dF3RK! z7bn{eXWPe0L+tgZS6Y z*1A4KkWKMJFl{2jQKp)MDB*UXg%+0D(ZIBeQssWJUJG5F=|OXA?A#=qHM6f+>pT^D z=3!1Y*N;wC?xWynKf-WfK6H&-)##+ZpG7!Tdqcfyj7}DMOLt8r=xn-UZ4I>s?0S!g zI>ByuZ8R^|OqV#x$Q%^eC z4pHI^a)y7KYo&c{uhC~v+XZ!RP`x!!kzf0&}T$GqZ5i9UC?vF;1$zt^@rB?`S|soNWL7sWoX-L;xwi3P~> zuBWUPZJ@(k?_Ni_KzfaaoI)$z-UAqNoFz@i!FE>Ad9q08K- z*ko7wp^^A~ia+K(H*=fow9-VZ7?UiJAhQ9Wr@%U;4L17iy22AZD&8r+^@TZFYpF;_ z1=hOJQ*x~Enzh~&Zi7vF``G}gRyWvp9Ok43?hVzF^i`xX02|}}!X%WJth7tUAzOqf zW%5k1Q?wS66si`drK^2oqJJ3dRVSFN(k5-r@pQf-r}RCDphS!=C$C9bp08WD~NqPvzB)@lQ5$bNB*m;OYGFjK$3RsP>a zyF9jri&tz#q3yF|4}pL?%X&RFIX zeMOrVJmr=Kct!ytoMoF2R0fzsiUi9wYY=7W;C!bGvup6|J{}5OMz)ROkgvo9ExcOe zct2RGH?*>6=rkFo)L?hm;h)|VrK>Hbi_t@tvn|(IOWVEbT+M9I%VK?eV|5LO5usHr zz$~)n*4?Z^lrA-x$Spjrx3fIzC0*>$+)fL9;SAkG+tWebQ6kbtCt54XLhNvv3*C<& z-C?RqV~usNw!$p+j5W@4pa_&(r&$O%DzMZVOJ$m(%00E%JC%x5%Qo3>26$A8ofhb= z)Z4z)#<6wE+wJY`9;b;{X`9!r*V{7&`q}~Y9#5WmHrBw`tG($n-R-c`IQRI*mBvZ5 z#1=j6VYviH_|OUy6qsy=l_Krx+!)oM$lQ3VysDorcBueIhd!yQky!J0>!zFIZBZb` zT0a`s2sR!e(K2g7pig2*0jQN{BsX&WZ19Nw));9-gQSB*r|aPrpIRYbGmo1tS05KU zQ43+JePq6G#F*Rm-OVLcc?poVhOJls^X=!#!G*h_)eIv@VB9t29ANF>iGW1ogxh+za z+grLtn(Je=5f)n|T9pVK;88!=-yEZ5S|eLC6{4&ZsY2Cm8A}zG+icHT-*B64jRa4B z$8v41ku`s>yYqx2&j~v0hP+8rt;LJ>y-{)%2*Z*F)CvCoS*9cW=v+g6=6-JoldHc$ zhFk3*vvl{9BaN|-JFM5k4^EY%)cVkV2os_DzqzMmm4{rUvrGL;>l)mmNj~(PG~cNR z{&k#XR_KpRN1LdNEiL4)kU6sOeKBZujx)H3Ck%JLi5E0dc^Il~8DaJTlFh?C_F<1O%>44vhA%8^d-s-gB)=_wCbYnUUP zE?pQlxY9z;+8fp8dsd1oR9fI?Yb`R*0rqyMLNC>D7dgHUh+*Mk9ArPyHhM{#UoDa0 zIAa=!N{_S1Wr~za(9A`S6lffnLh} zWFK#uWTN5PdE9=^a=$9=4XFbYM2bMH3$1sn$AtS-laM%Hu}!-XLi+<{?hqXPt95FG zO%|=4cU|YTdUb;E-HeH8rH^lIGv9BnX=FPMH_&-DdClvdGsNKz*IopQeQlgRZnDXK zu5i9QGqm-&x9!uw6UmlsY`rl+Wfp0sT$u!6!ez;Cu-36%To77R2U7+sm8e3PB4tWN z%a^BIiMAnGmPCnYmXe$(^8tAmN?5Ve)6KeMoQDdTnC6SLsJ=kGf<|5auh1j z)Hc~Z5hGQC3gn4UDo2VFd}^51nkf>gO`!PHn0?_*hug2#J@~|Y_t#4GbLDIGH-z3P za+{<8;;k~-R2K!IMaMs_1YM~E`uISp2xMWccK@d|Y7g|8d4_7^EL}Zlio2X=pwAsH z$vU4amt>4r%+$}Pn&>B{mdi`jLbwfo^SLcZi*@kL!Bkz!sP{lQawnjLVgY2 zMTH%*Y!qvOUnDw6tXK4MgL~yT$Fq9)(VLdoq)4`&x@qHhTkP)*2l?5(R%_)US86Iu zmG7Nuv*+!t%sThGQnGWTSng`qdBSw(ILfoydMU(M%Jsg}Juc3fE^(84j1z6OtG(}W zQypv%ab{WIC(Gq14naIk-RDiud(OK)bi7#1(6b&1Zk~G-=^DDl;uWxtCpc$o)U@HiFLX!O!Jch zTeNnr9nwYGX_OyKQ!ZJuuT*RLCpDOO7dg0A?z~i3t-mSsZ+HKRYHxX+K;tJ1LOErg zX)gDVzqke>^c0I$cFGka&2nY7{w+Df|4FM3%C)1trCOX{b@zw^v=pVIIiAx|lr1Wx z$QI>ikxFfss&B2pV;_U9^ZcJwm}-7*`JZHTUuYBL21hvFEnf1KOC6)P+a+O`0bUH= zCBxKU3P-9VWZOfzLJcP;^eq1D611@nAZMfN(l69 zrKP4`aG|j-^`Y0SwH67cIYxoCnptd)<|@q4Q@LnAhpJ)WV(U2A$eOWUflOg2HrWR@ zNe#G8&ugKdgI#4GgB@n8%YEt*w_4~&V>FZQT;JK|LhHOJ%ynjKqNxc1?W@WcuF}z6 z+W64digb0G0V2`L5jGm?a5*m5%fEG0Am3JtylJBe#?^`o7CO(5nn@OCgJq($(bhDj zD&*;4v~F696tBB-WhzuE6faz^?)A3wbZaHKAXJcj+oMjz7BSkmF>o*`R*TTVm--s% zTT4t4qpf85x|(LaR{A-!#=BR0ni|+=Q~z+gd^gs}5fb&Vw8jL8Kcqn#wvqm&nRMUl zQSU$)s=dVj0Qnwbine;$VW(#tt%)Cv@U3pj>{H{FEgi2~CQ7_%uFeMODqfi=mELir z{mnGW$5`(s?Lsd2563e_qSNYSK;hyg1zqWpN^7XO*3Q-{LYty27`T*dS9f^1L@lH% zlYq?%#Mc83~xx#Z?_TbfksLVR!Nl|UN+w^F0J*Nw|waCU}LTjSEntk zTBS&@DR*{g-)>ZCVklTic1;}yRpV}Fo94mltF}$POkI57NEPx`{hwe-{cM4uIvVIY zD`m>DMsMT&sE0L*-7L=@qV2HLbB^(xC*;Z3+#)|ZBeV+RrO6lmr?LDWj{HUK8h}v$ zcuKR~5hCM`QSA{$)+jJG*oEOvb)}g`AlfQ3Lr6gf-NpLM$qsRVZLalDJwcL+20Cma zjI*bva;>+anZgx`QH%^f+1GGS8g9Pc zW{U8!8$^gS-NFDXsZc7Z);fr+ne?yKPPM5fnXju$wGb)Ahpv>Tn{L***zv0TphAwH z#ff&JfBV3jepO(N{_fD-jV8HFn$`iwyv&C#mt>T8ZPCS^BD69D`KJ2Z*HSh2vaeN2 zaf>*4wkXovM*BOv){WcgPTw2lb{S%W-rz_atjI>QedZl;`e~_!l>wEmQoJ?>TW7U# zwNmXezo{}Z#B-kFK_|Oft~L&FL})5-n8kK#snQY|l09sZ0w1{1MkR_oD9-`4u*lVB zxw*!bm-=3Yv+F=gBiwCuu&Ap%B-zEgbr=UaM|=B+#=-ny?Tqn_*+%}&l>21gxm$$x zmdmxl5)awraVd_pcdhq2+8v&Ck|=xFQ%jrO<6kygh95lQbY(UL8*;82JyPeprkQJW z9jY^tqC^MJBwnh`jbs?bp{S?Yx&UUYMy42T#mkVXR5#Jq+oIe;3+=BH%0&wo8|ae_ za-TE3rocc#yM|2MVoQy$ z5om}O;AjeSj|^jNv&aknrKfE4 z@tC=~>u#DVrMgrg%1oDCRYE@yoq>~%JtM%jw10+c8piuTqitw#F#n&H;XNF zv@rYm)&l!rhBDWhpIxa`VJ%3ihQo*wDP6d>PLnP(6r=T);uL*tv4@xatXh~1t<14p zH#Z75%S<0R#UxMb=~5pXZj*y`M77nP^nxNoZ8g*&ZM@+d*IDEXU;0(9Fp*}d(%x;l z2~#FVwRA1qYIvPT{Ia)<^*}v|x@gf-^>U>7CY$Rs;o56upq9!N_|05vEU`*&?e*1B zj1`{nws5<&beDPESI%^XQpDdxO{sk^P6||c2zBi ztcio1+(0C^O{7vAwHK$Y?Tzq^NF20isdWNM6TY-ZI-L0O0W6G{dRa% zdk5*Gg)&q~F~EEBU15V(4)v~?`e`oNZ?E@qf(AgV3WGRRE-svTmDe>ux>;_$P3^wLwLZ>%-M zZ3fjs1Hz=3Bi9vX+b=W>3%u*>S|pz;QQyug-XTL0~0D#?uPR+#v7jVflapi&k(G(=06xZP)-Hm+8uO`6gMK#mB}qD5P44^c|xG&0$tYv>z< z>m&{lGLfiSo&s|ns8G6Ws}-T2cjaj%RUbRtrI!i^sW!(-Gj(&6kDcTv5r!M#d97uL zwM9?Sx>{w77Md7fsbnK`@v~xCUe-pna%GP7iF~cZ*rCK|Q>5$S8_RYBW7IBVrZqxe z_=BX-E9lE8^+iyI%r?_0nz^#ZO8av*({fV`Z{XfXIo9LB=+~{Hq@bG&?IhWx;(uAG zw$die0yrnySF+qKS2KsW0sH#Yc(JZksheIhY($m8n#*-gpcYmkO@vBe`s%5LL=SsF zx(eHMvixsW_^z~<7gak=xMe=^jbjYb*V+0tNC{ZxC^y<+oB06|r=>E*5-?DTxklSX z9uE(`B|B9)-8}1RIgB`c8`uYJgew#)%n&Us@RrrsV7P92m@1-1u-VORE^v!NVOARJ zY}XlLm~j?b?_~q@_OmhvxbKbrCDpGVjV3=NgxY!)%XOu7d}) zbDsTm6DHDHAL{10pd4Hsc(e~}bylrKJK5#NxU>O5!(H%Fc<9y94G4mTi!iIWknweFhR(I89ccN=Jp%k)-kPoq>T3lSCC8{?}S zTJhnRzV>f9(i=Ra!VS{L7TYY>)bLuI^SV)HXV*K+689M37mKy`kV0uj8fc-GnWnp(?Y#M&ae9=kt6glb80kfNK}jePG8HLfKwl=APY{6s3SR+JsuSSJs0Vl~wg z6}sA2p1Iz!Q)@j{iPlAo6#cAIAl)%ub*&OjC2OOVGdv((gqAYABEeC1h*9ZSbEK)V zMub<**IuP`&1D(sJu8*bzz~}M+&ZXMEzD2Cf@pJtX7&rzg8sVg=Q%kIuB!I7T4DrN zOBIJiN9wMFUls0F0r$V(Dm6 zFYSEm3Gwze6T@_~pWEzXvWNX!g&gHpIr?v1QItLPl&ea(k;V#hZ=-WEcLCoA2$OEJ zf4k11=qcJ}O_8LfSBwyCgZLU??RMWe%eD17b9$Rwk5Sl6ssia~?i?|06X|Nd>8Fk9 z_Vb8`YGgfaJ??bhh?k0P_Vua(PO-`>xZ8uWe6PJK>qRS;X0gRel_OtyFnGJXPOe$Q zd1T7e5@i;6#0d^C&JoV?q!kvp(GSYB5$_jG9Pb4eX)nq-&I+1*^1R_B^L*wV@%DD1 zBlUHXWM{f4NbAn_swVoo&9ko1PplZ5U1qDh0&e{pFZ)uJ>6!=$J-+gc}!6kg+~tx!~}!=g%aX=c}&t5)h)(VDu@7iJ;MXjv}w-Jg7mgI(@> zi|nb~ta&MxwHQ4d?uhXJb|4t8fh)GT}*)i@j zR9TQEP~>Z6cG}l__BB?uNwxahE2K5xu&QlWp}B$}>TcCYhOsKtr(11Hz~PBTu|ly* zG?k`6hAdUerH10}C~3kpcYu+u@sb^ex!N*Q9N{y2N|z>5xh1ySAz!&fiQ;XSqPYb5 z7FsLD2&-foXqGqqV6vr3eW;xc4l-VaEnc#oKk2LadsgKQKcm3d;2`Mifj<$uYsmWR z(#R;-L{Y)6S!!^(<>_l@tL-%itRkmVNNY!oEv7YN&-88Gid+aK;9uqP~ib|{fBuuJ)N>v%H zll#Rh(%Gia-P>iY9U($Q5GtIkiK!Bd65(*gz7*|iEi{*Bm`Z(Zm*s7nkQL&0R)7O^$bw)1Bx@9bKophdg4YT;D53x&yu9VkN@0(!)|0d&(BAo$p;w z8RZx6>SMiAT`xhYkDO(#%T08-eM3>=Qs?^CH4Yah%LiT*rH>C?Yn)?H?PEWn+$(yz zI}lu6TWj1q1#a|$O@H$6n>yTB9d&iSdp+cA;qG*^awD8k1ASg6)g)_!2zZ1hHdy8Z z19Y%ZiVoOfiZc(5kQ6r!J#Ld-N`4fUKHErrz@Lme(7__QpGg4#=^LX}c{B-;w< zMktYMAHVs*2_`G`b{$B2sHXD0sSt_Ad&L^%+)9h&WCU@ zjcG|0`^pw;{ba7IeC9K^IoqkmOBLe~=X=5kxB1==9+VegYF8SsN`gLa^NCi@_of?k zl;sgWOZSkjZjtC+|8$0?UUZxGHJ1EV*ZI-)PQhZgDRYtIeCu+9T_6S@nQy3K56N~z z$ivU@OpPy+XQJ<9m{gBDUFy{u5mJPf4tA%DHPuF>UzEucp^Y#Dd=^>+1Dq&17*Nv2 zd15WGNs3pr@uVv4u~mgkSJ@M}(j}=3KE1#+-5g>`jTZY{Q>}7ntudP6GJ~XlnEqDU zAla$H%=Cf{e%Ou3M7Uv|bGIuz?4=q#?(uH&n5HKA#krmc99Dt@tdj2lms{ymx5ziy z5=(txi|1_pn;R$HEnYFma!aMy$Ado8%!jI-rj3=N>}9DvwUSdyh;X~s4bXnWP^FzB zl_DhBX+sTXRv!8}I#l2-!&O2q0UTB>YmB9w|(puZ?dA(s(lzu=fCGuA}s`^F9O zt(9P?6_(rJc|#o|Mtju?l*_TzPT6*d)>=E8Z1$U#Hd$@F_V(9Oa|i2Tj$AqJ@{)fV zVzg%@{x{|rQEqS$BK`{m*Ife(hBPw3HCiv(s)QM@7s}*#)3Q*TS(&2$MNO$Nr#Qd^ z-u5pSm?z3h?(%^RzA#fCrSimyw@g<<^zfs%EmfezGULS<;cK0AvEA*qi*dTWq&rqS zXP7H1xQi9mHX!%+cdXDIj;S+Bi5v+bp5z|(@vN=rqa={?S*KhQdK#hx<=(ImeHFUO zG`kubszY#fMyUFEbFh=ErAyL8I}iCzp0NtOAk3w*#oA_y6*Y#sLJtSx-QctwBGX6u z>hA|b_4JOV@^!JqM^>qlC{l!Kgon=P>N>q$;eQ;ut5hj-wD+B+M~I)z&LGyvG*r5? zUF$QKm==&4_YrB48+~GwS3G175jJ>Qr2RZ)gLBPyu?J1n&SMU)RS4ef-!^#4rQ(%Z zW^YGp;uCkdz{O%!dD~q^Y2s}QTwJ3Z*v${2=(WI&9yLgeVRhIdB__GE9&cq=$!WE_ z&GHY;4EK~+;pX}xh()`K(X@uF*O$JNCRr=7X2~^Bq+AsinXU|5REt&>{Pkzv*VHI& zY9zj?+Bu^R>mgEV=z3SWO*Rg2kgI%Wwma*@Fh$-ET7P~A69zig1pRA8oUx8~hgnYd zrguz~3l4XPFq`aUhsV9)6I*?5l~=vzrW$VTuUeubyyjCMdEM*I*47EW^o?dli!o1o zU#r#y>ubbJ5p@cM>+Q5_l6$pGI~1Y0L9%K@NhP5WV7pbJJFzi1l-o$qMuj*Vy=$im z;dTgDDh?IOmCBPHygEsk7>9V;2#FS(p~&05^_56HwNqhpz}C-JYP&V^ZB(j4mRv6> zHPHdimtm%FEV0ron2WUovQZs+YCRu=_MynnJ>{KYsa7~b< zNR(HtRHYoH3U=EW^k1=>fXnJ&6-GMA8Zqv3u_IlewF{k(&F=B5W~x;xv`wWj!}Zis zM~~X3t0ZwMOt)R0W!Af0hHq85+-Ek+QWmI9kY(wA0PEF;sjgJ*jyi&((`AZRDNB_I zhuLHvidBJ^22~lKPi4S%`b&!9Lv(tK! z2I*-8{Fjx)5f!E?28j088>M~VAF z0YNBRRYTyl9wZf}TB(>|`fp7PJS^lqBK35c*OfZot3jMM&sC;6*h|KURPI&R+t+yi zw%iFma*a%B!rfFuF{jdezc|B>E|u`=3ut*i%eO25 zbv|>o{d6|n*IEcytc6%*s%`O`b;wgDQnI!v@U9VJv~-RcAsD4nncfBqQyzkwDr^rv zq1?l&bVHJncADpL=jx@@q>xJGch2#~Us}$4c+^P-x>}MCRiK%PZkOdvd6qiXt0wtM zzL_33zK#ml@2>pKKPlffGtwTG1i5A}`}stSu_}~$-7|i!H@U0sILg&FBSMNYiFO3N z-f=2w`z!B*Ee#Yv7b&K172RkZ@syy<5< zo#0we`^w%jb#lH;(V|3(6)V>iVLF>6QLcP3#+he`*81xrNk7xf_O;)f=`@|3>`dXJ zrTW!;;mVZM0ZjjYTDGru`};oPgRo*(oiNIczPD6!tAnaibe+>6yB@awpVLBMS(miVs&$vcg(ik4=NQaHAbEiEgWP| zEiLk@w|%RVaTW$0KJ%>A5x>?Na{BkIx92oAwbBuWnBy7%wLnV0J9UsK-z*y(9C8>fB?qBrq%zrP=TH?2bT{1H zay@9EnJP6=?k%s@sDV{Ucaw)CyWSe~Hq2v2>u9!KP7>#FNqV|M2ipv{)8XFprQ3r* zB~ClbYjsA2*DR=LWa`w`5CpJE9@=`;WoG(ZxoOVvg(KY?cprl^R2xs zQ0;yP)=1u7G0Wq=kmFg8*siVqqLJeknJy4xvzy%MQaAb1J1(iiIr>%;1uk-y`z&&V z@$wxPlvJy2@}sAn=n*;MR9Ru3c{V6gslq(xIZ~--94guc+PX$-(}l~i$qu__G)%M1 z8kJ_aN?YBmRc?kv#a2p}C?Z($%?($iLYN_XVTbKOBi^BQm>57Rk)lnuz)LO+q>f1t zV}5XSF7(eJ{!TX74#ft^@}x5Zk>*lwDf~;LAa}j<6`r@wBc2bE*%q$xurEy!Wte!M znBfVnOmKIDT$mqB@F5D6+uCSFCCY(fZB;GI;hI`ykO-wtm*`8~0uJ{d@JH?ZuZ!jg z(@D8zTH1{0O4LNYQe(7nuoki{Rp1EymCBJV z&SlOKZHWQa+S3kqS!1(hUi@2(|J{|n|Eo62ccGx8Axjfcqtz@%s_q79?L42!m8g9k z5<;nIp%}I(^p~q@CZB5Ze3v+#|wfl7OrDXl}bdpt;quQ66=whX({!8*F?c8LI z2W?b^B5w*e0MYjLy4OS+=u5w$jS@T1OobWNBhpd!b(2C5h;Wal#v5*`??p=$;cGvO zt^ulM2er>qc>$SYZ)u7(k!PLT6?@%qADSo9o+gDVr8yQ@Z>I@vwcU#fR6AUm4f=at zp#yahV~RM8mMcZI3h}yxg7XNeN*f-a6f0eIgZOJgh;dSAd+>9bQ{ADxkDXzj%RC+& z=<_}6Vn=!1yQ<~MmEj%bCOWhR{Bn<9yyGMNUGHHpxY(G$qrI)jy{f(BLaW^Gbl-T{ zHFcuZZ@uGM4>-*&uJN)L?WtQZ#&xIHo#7!lB9sgFgGsJ%goBKCii=Eej8}DXuL3Wd zBFA_$-D`mXDs0qTv1(lvTj)GzI7^-}el^x9W{Z~LW$C)xD%(=ab#az*-z(5XvR$n% zmBAf7&A0Bf9SM%`wG+KpLkl>$rxBJ*lc?AblbqiOb+We+imdmPwQjT6a&IZEH;<9_BD^6BX}Wt> zd*dy%pTn$|sD<@466B0JU_^_6y-{GEG@UI)YY8f9@Z}>ym7Hpy21i#@{ey$5qXfUH zQXoa5t+p!>qmxXP676N6f4RvcPWKO&JJ^rHjdZ$0eCq-$l`9e{T9gt^L}+far^Pr| zoK!6=Q(~<-rirsirESWUNOOn?-5qb9ZDuO-lWI9)L|J0GWj5BEe)6B$bkF~Z5c;3h zFTU4OThn&)nr(_}Jej3hXs)L`{p_#+;Z_8YbwS|5wuG)}t&fABmU-_lI=7`J261_k z<9%at@bCLO!kfVnK1`VBm0(|;d=_Xr$7y4PB0or0rC3v6it&kYF7$@>-Za&owz<{S z+PKAMp0`my*V;=PvD$c6nPLm&?1S%6 zB}P12*iU3gHsmP7J+7(yZS}pDPLknEvmECWmpZK05gi|Tp7Ft+8R}ru#p>fzEj(bj zQb%c`LbxRN1jt3Ac?xZ?Op>u4^_ehDjP|j93jCt8zK%B^GmVvFzOp(RWmR@4uC)fk z|A-cwsA{knlo7(vq9oLa5)(8r(Q=3TcTnuv>{cTj;3oGfli*;Zy{Eg0L7P#v-`wpE zE6wqP^G$NDo*`_J4PMmRTaNR&6Fh5-uRP!%HM&}1wg(-ovoK98GfB7wCK@f>T9r1- zb)JVz&V#Mi@oVq_jtuqu94YjF}0KPwDgNv zB6U;gS5I4MqI_Fr`=ka=KV2^cmZP;SI}NbGGQ;elSd7vd1?;jQwyX$^_WAuASK1}5 zNQ7)vHJnUQD87x+GZeU_27jL@Gmuv(k}6LdIkJ_=*32&1m$JYyCur|nMFBe|%v#g+ zmFy=GvgArsq`^qfM8n6bdLNy^0 zLmZmKdXg`7tulD3T@;%d${H{8WKf$5bGW5G52{-+-f*!m#5&YBvJ?pur5sJPFvjbu zv@y#RMVdNAFR2Q(@wF=H(mk%NWqx*{O4BqqO0;g?w?eKQds}Q~gA)9I&xUx+zP4MV zizjMKdl}>*1?EUFN0~yAQV?x|6GGCX5&o&2NqYI0PkgSW4pxe{(WKxsD6vW(c-LB6|X zU#QZ;G2*@N92aVVY8!pvF-ye=Q|feA1{B#plGR5|w@_DSIaVq@biES-U7g=wGtGle zaI_gd^`RXm+TveYIl&GEs`bzlm7egDc23aUa%&tKs6~ZgZp6 zi3)>stiLGb+8S=VF^2lyO!2a8)kBu0cDT-7ZuEtfN>qu{(@%EVM|q8?eY_+Oy3W&D z`lpAiGC)^}<#Oc8Byd}antIGIgXQbs zddYsW#yAV*2Tx#&I0u++z7*eCWrNL1B})@$y*Lqg-K#ojVXieUMH_MU_k(6uXlh@J z)lf^k?L4imkm)$z zdfCZhlzG7(4#Z)>xg2X~aP}_LULOy+QwvY%s)uM(9Ab*r9@NSsl8iFKARo%qRJkmN zdedwpB-_V#j&!e=^|9TVzP3udac-4VC&LI6EwZsbjEox6Xtj~*vH$`oQ5jlzi(KJn z$9PgV1!manH&2-CGM}qPm2W(3o%L>ao+sSr2$xwYS+!KRyRnYD*yK7-8Q^yBIY%ny zcub+?p%Q4h*%lF6i4f}uON{lKr9q@yjxM2x z79mc$p^mU!oWpFeE>vOITU(^*W}sdeV5mX9u~0K>43l6dIx6(BDhzdw0Y0+MxiuU{ zxG`REwM6qR(9HR6@NkIlGgGyW$W;0#WXvdO+B@%mai~p(QMSrbVx6m1DwJzad6sy@ zkf2|?8e?@AZx6*{ZI&V5YRh!gU!)32HA<#M!Rm?-tttRGcO5Dlk!*`HvBDM9YODGk zK`rxhsIw%sMn`{ly|omssYaqf{kJvZ68}T_oeYtJ!-234i#gE;a>5H6}mdkcI)*Q zt+*bUKfG3VNG*r4Q&@wDcD3XnqS&q^*z`pnv%<-q5bbtHIo~CY^uBB*s5a8+)=Mzb zTEBY91+KQ-F<$VDu1x)s*H)OV9y8HJPFL<%Q+#fse>&4@*Bb9; z3(WSdW~RB#F>d#*i%oEWhurT(_j2rC5#F#@9aq@I2=P)y zxn3(zXc^=%B|dYQYL&Xl{F6qyFntxv_RD{(^u+F6)Y+a^%uLg@j zsb|el?kTIp*=(&!tF#cOlMG4Tvm#J^`u!=#1(4L5;F#G}FsxLJrn2RW(OkUz&=QRe zwHTIJ5h|DF20uk;t*7Rytd*=>6H7$ctXz({4iWE3g@_WSm3WbkbiC(n5M!xz=1UN+ zsrf!IRgt;kWaz1z|Hs^423T3H?c@JvO?NR2Lk!*BAp#aAcCt{-M6fuGQxd(p0FH_P0@6gI(r*OI+X@ zGp(`4U@g6eXwwwhNxJiKIJ}8dQXi4#H@G{G)vwaV7Wg^5f_wQkT*^F1Rs9sh-r`JC zqez8JL&O=Zkt2*(qp_||@~lkDJTBJ~n5MHG=8G}d zmC{5C7~mXVnX}v9%yzf65_EL7^;)YFBVfFrOi-u0LxhYm%>;R>Ez`^f+2U<+wja$m zPk{sdqPH#HGe@BjVl9^?Ufmx;i;$9CfVvS4|0B4^7F(tp!_dnztz@9i2i`W+HKsY& zm$sYlL+eCpY=Be)J?kiq+~{LpdrLb(eZA-<$5|oMISn>Kp|OrN+IG*lPb&eNz3gOP zyTT|}y3FU^@rH#uyT?1uGQ$v!-D#U@`+CupQXS#}_v_~#ciP|+_gW|*-_>4oi#v2s z?GA5=6Cpy1c#GZTbRYTB`^p_}jeC`fFu}Ls*mbyQofVqvHARv|DzVw=^8KolmMC$* z#R5X&46)23jm2pR7_SQHeMu8p#vTQG%Av^QHS0 z*&rBJ!fWjWLAPlxNup}qWLf1+ogAW_5*Z?Nb);yc9Vc15FW#5M%#oJ_F{i;9G*WnsLS2f|O@oa~AI-LEb>f<}PUU#_{ zlv$|2T7RgfQZ;`oH4Z8``U`tA~Q8YbV1!f59LftF=l2qZL@8y_pE?Qk>r6 zq59Vo-U%OxlZui0$&h2UW5g)%f^I6Lnd1cgye~b+JNL?QgA-iq4dq7 zkgSKZ#Jbj3n%K$jm52jWSYeCVwi#)w$r22Ann9wp6R^n|Nv8W!GjTcys8AzLo*xys zLzP$?6&NnZ5X%(WB3dKmqBIvJDB7xjz*h8k@7O;plq@t0ZFIFxqyI>n^ZRiSr@LrL zXe7di7TV9jK9DTZ$3hsapBZ5%pX#&lCoA`T_)&`94JP~#wLW|;nrT-LzCA{pdW2Oc zt0g`fuwn}d)&ehBpVr4kgA{|_9t*^Xnpk~S}w^2ZyBvJnD zB`=#MN)yL9N>|IRwZIyabrVrfAm3Td-`3#!d!XU*yL2NH#mlIt46?^A&-=E^cCeR} zTJZ;X!if^=-S1B8@7OQ{LacPrl1R_Zn4)uvgovEYkHrnibk6~e060x^f>qScz ztEWz=&|iX?F0~S~lvym`2FS7t1i?G@hoNARVE;Y$`#5%+zB?vgs zVRk*L>R;xB1D4*BND9!N%4dq)i_SR zkR{HPq)1EmNjKX=&NWh!ERD5rjR(D8sQFSgQX4L+by52dM3VRHA{qv3+ihtuKu}}L zUxaeoZAG*te#K}#{AA-FLiQ&1_2Dk)$OtDXv9P|2*UNmr7_N^46w7f5HriX3u{LPz zEU~7GGr-pdS>ZK@njl-6Z4NciMvoY5ruQ_Lx!bH%NcAqvYz-VnK!(V_L7i6YUULvI z+$)-RMQ`(MaJkcM_P$FUWu1?mWutSAbGnxe6|K-jw+gsYg5_>;o|SI!x&yo?!y%sX zpk(LTpwa{NvkJA=dTE!<7vTr*NtNsV`Z>$Zt~W-aTMelHLUFpwvY*Sm;0gD*RexLT z5U}12<|A8Uv+9rWp7_#BYB1NM*836jeW0BqY}8s?5dyZ`Nj`RT_$G#=IL#(ESf`D0 z6UDka>>&T_5I(^DhC5oM?qU!j+Vl`ICxr#_qHtEL@M&8$sV;8af<(x zAg;t^_VaJ$yMbAwjMBwZF0;rYzX;kWXrguDG&Hyiy;@gSdCfc7ca? z!>{~R_o58#EwT(f6v_I76wjV)rJHO}Ez?ClSERdkvaM08jW#~lUki^bz%U76UetXx z4ws?^h^aq%dx-R1_;IpKQ^OQ5!y3S(+bOg_rJ!gV!i>3zvW(QzrJ9*-r97Du1SLD% zuhvXOY`S^ogs*10 z?*FUd$a44Y693PUVOWD*w%;G<{C~Gu?o}qrSz05>b@o%Thp@4^AHp-~OTzySbc*Ne zS)+!DHe0ObRv73F1B|p-x~8Uj##jNpELCNQJU#XBiADl`Hp*I?^u#aTRIbea+B6vA z+@rFQi!PZtdDV*$2i7iFLNu@Pck8+2#Qksr8NlPF3Ox3q*Lw{+@ECBn!Og zWJmhOm0B6=6yLbeb4H5yzWEYdWxXq0Ynj(wW`9)L;A2<1%K#^fvXf1y&et}$+aYS? zg=5bpF7UDwJ-HkCaGfXtJ2{N1UGG!RYk>?CooT8x`}!=5J&x8vKu9AANV3Z5enp*f zb8WE@V`RuQ+b3Sr%8GC^Z|8JMFDqQ?d#Ae8R@1$u)HXpi*6v}pC7@hyIerbtbhXNM zqeCapTv0C4-Sxg!i%z;)>N{`yxA(Mho9n!WSk1!CMEN(-&4rZMYZ{Ra+rXj97~`mG4(Q#Cz8VBBa_$ z12{^Y2si0wj>Ud4+d=BgH`#U(qO6tcQx$?*y1=%7OzQYoHdWbQ7B(8%S~uISl@1Ef zMfu-!HC-+BZ}|?iH&*Lls21jX8+(~yx&8*2jd*+eS}78BFjpN~NNv!?IKaE%dE*$J z&GeCbZPr!L$Mw$%n61it9=<~r)CR8jo^T%z;;_I2I!effMBgw!?# z4UX4HN9?At+0c4e=xuZi_XL|cMWa2y95RK%!P^YC$U}r9%<+6ZFuJKIG_%=2pqoV~Xr8rpBA4X0Sb_;qV8a5@P|0C7e zM(?VS=0bOw?N@_5uf!WJkm5@p87<&R%dx@D&XDK_=Q`Q9f}-7FpqsqyVxKxeoRB%z zTWgXr?$p&R54pl|W_iq&F7vLYuC|w0LAj<_FT&yO)enhcRA8$ctn#dzcS*bJOz@FR zOXaCGz=<}9cf7rX9B40do#hLA*&YEq+qs7y~TQ#Ab!IX``QF9|*X@ zV>ZgyPc#zb3%S4~7fE!Z{vOrTXKuB~94|!e| zFISR68#EOy+g8Pr<+|R#9VXLKGaX>H4!X&aps7S-y)DglU+N@Hxi8H!(N#)x6(iaX z$s&Djycya#N>68Kq}Eo;Jg?FkA?XUV5aY-HqQi)B^k2$q?HX!)YrR;Fl_5=^zuEF` z;SrlXu7eESEkm8{T6x3@`)KPuk%8qUt;}?}ODu7%R}GV6hl^Bt+-aJNP-(R+SD&wSE!dc=ve4^*Valgg`yAKU0;*yx=Su-gkWXLYG@1Uxn}8F2)GY zJKsf~vc+64gcSv+InhnFIM?k8>Zco9Y3@wREJK+E>cl$PbJm%vn-U+Z)58)=U1DDm zCTZd-S%~$e7mae7&VCf*d#U>SLb?ak+FPD;>d7w3RN5w}v6YGh!Utlc6f@oKJkQnF zJb!cE5%%|hJl9!oUtO`mDGqhKQg6D}GoBOeSA}N(3C8Un$D8e8z0KRLUK{Nw_iAT@ zEfUnIm5eWy_*^T^>?DQz%p+b3M;Qs$`bD8Aak8zkSh-q*%oS^sZ89zPl}H_&BEs?p z&DIE+VV52!D~u!Cp%QUgiIyl$1@e_>U%w86^@}xL-!Psk7%pyANtP`xT=uHaT#XvJ zVvH74qlvv_$XBMbH8P!}*5h8VRWqZsw~uXRtI$K17z=H8l3c~UH(!)mEgY@JGnPwp zlBcZDRFpCiij+CQNy_ZdQ*URRDou*fj`@@TiU?+=DXrgRUZG7m8fvR zE|i*eQvU(F?>;uw*C}>>md1NfXHO8P0(IWeUZ$@Q(%yMKx7{|+VwzezREu?hVlVp6 zD{5re*N?szuT5BjYJoc4&GxNBtu@3t8)S+x3i}8sZ$J?HTfZ=3&lyIo;;<6-pGPit zc-J7W86_mrz8<#D{e~&G$~GrE+j@8D>IluP_keS4@h>Mi)_b0^z(WSQH{8yy^@w9l za+3SB#%A9dZ6B*eINv4q)mgFtHdr8}wUk}9OrrDcFx{c<)3yG83f<&T$GTUUqwVW9 z*Xv`Mn?31G-`intBYkI#tCjm%g$3bbHqus^dReb)I7y9?qN@wMrCbY*J*`5((T+CJ zeX`V;CsKkfKJtU0JG@}K$recPod={za)D$6v<=sgYkgyqH`K_IDo)G#XseL|1rBzS zh;S9N!guxgMk}}K=LH2i>gRE%D3@!i_jL21Sk3%wq8e#}a{u5q+Iq^J7Q5QFCjOzt z*U6(=xZ4_^E3?L%Uh|7D!zu_{tvAX=4yZo}_V-eFx*=PIkK~DzB-iD*!5rT>%W?KH zP^=vd`XIGp!jOufW)2Ix$tc81QX@7@DOhBk%h!aq& zT2qN)Rcfq8uJ)pJl4Y)V*_KL@pw<_194^*R`Z-m|3({m+>|sgb3^l;97Acg576uCl z`j=xJY?h6pl*#j*9pbc6ggUX}rJ3Xe*J-3oh5P)V&|c>L7aQLx|A6K^L7W-{CD`WxZ0hh?t-RUvPW=2j7H*6XQpa5IS#AM)7ci|Em7k*b5)yQvyf2+xmRaD z`r1~V^zoII+Jr-hSQ{N6+IP~e(pJ1lnpOMDy7keS*my5pAg~so3fN3Akc+N$;sJJzAz20(d(bow!O4Q%^p74|# z9pW{gYw9Fxy=#myBJs8N)!NB{xf{{v`O4QWmZwA;XFEi^OBIW=!zt-Lemo4Me8UJ@tVnzAAW9ZeOW8c;QG=^q-az~(ON*YC~Z`V5TS{n z8tcN{ilAga%hJ{c)#iwEypO!@bMMQt!zl{n;8*F|BdDv9;>4;{Em5f?rx>MLqHDF+ zSb`_DcE2QR6-kz9ksrNcha&0XB)G}}wpgp38b2ba;=hda|0}BzlBtVW>KTasE)Hua zte~$|Xrhs7`)gr|Q|<2=g|5VAFH4s!L4U1n!B6&+8qU*ClvWQ9FV)qDR*LkAOjG=X zc!#>j_1bG8+pS{Fuvt)qYC}9|z3HB{-V}+V47Jfr2{s!lMOz2jV1E z-sDQ_ydYbe&6>!SC@5AyE3qOR;9BfZX0A`wIo+rR$}Ba~>-!9oeD;s7cC!7%scKO7 zU#Hm~fT@4H)+-f0iP6_%Ue7~@Pe(h+KuYcEEWY$>XY zQSD(#+PT6eABPn!)ATl9YmFrPQj*PjnWe1)T{O2vzQ%uO(#QQ-4&hdj1neNm75B~K$WBvrB8ubTMS3qCS_}Vv~(AsleQ)A~ua3|;4#|}TbQ-#g$ zb-LpPY;=_g$k5M|-VkN1i2_36B_Z0y+NmV0r8dqTm$ zk6XPJUSQ2!C8Vt=C1Hh*KgL4soa+N`ID8KgP_zR*?NhI~*419{p>xA4Azs&Tp7(qF zdWZ#t}CZV58wMheWV-{)<4dds78UUDn(nSR-O#;I!X~QQnhjcn?;C{D@jXDoo$^T zWV=yID-F@e+a8hYM9~(x!`BvxS7N(r0kN9d$0wG`)j@lkRH>7xqmyhhL6wajlHnm8 zePy9mmf2flEKn`R3dIV&`(MRN{gsuv*J6pz*A3nO0->{~f>g1s2-%=coThq;l5Vj$ zy-jhO1ljJe%mdCcU$i7^kSJ9Lk0?Zx(-aG$)KjvQdtAuAn%dXB77NKmSBtfBuUN%a z_*IS`(p5=utRz#7^{RYLtap@33*@;+Z!>JS+7yL8v&f^`3gH{?xWgFBjMURJ8YvU! zJb7X)^{nCIEY#G&vfO2p7WR=Ly}q|r;Tf^@WZqx@B@z6dyBIUHv48ld9p)PPH|Tq+ z-D@m@;=?mdJAa$Di-<$R8bNbAC;#6I@1~w^^uCSKy<;zZbg|8T0`jC9Xriu~3HVNt zeRcJU=fk;ED+?v4*4P@oRocfIvFfDj>m^TW`G-zf?QVLH5x+lZEAmg%sqt>r(u=B{ z=~QE_RH~&5C3?su=1u8tb+AZNoazSa^mUw};<3uT zUbUC&yzB%`>pxH^Os3t^DCr2QR%ouDeC`8Z`Oyr^6sgz^h*l$4rnch6JKA_}g}3Yb zru#{)SgWj1B+`1PNffWr?UvZ!7X>n$C)ZX)$aRmcf_|}Dsd=K2=m@@d+9q!YmquR z&}`59NrVLbO_r*$8|C}K2AK-v8|)1sH4d8d6gfkz zkb%0JV3THUb&l`VxI?P3&UK_$HIg2l0IBx0FPs(5H){R|>g5&gFgiTO$O@bOL<)EJ z04>T#%9V?$7j-4Z7_Ii`ltSU$`aE^U3Soo3ZuEh4o4qeehJ~_i@-4d9DyW5PC3sn? zQC9dc>=e7(rd*;J9TW&jR%@MH1%}vWRfA9Sd#VulGxEXqV*X_6agwX#c+4`VdrN^N z#JfQspUC&19Ftt;2w#}wE}5QoqdW_Z*4qZp<55SM<92uJ=?M=T8HQ_p;(Yn8^Mtz_ z(3kBzAacV;MVU<|xXEdbafl?tQl#2P4$@@F@SU%0Hd(Di&l!huuK zj|_PVds*dfmO2764dH1|0Q-?`OcI@@TaX?hrLg%z5}_G>upJW9HLnp>vMCQq5K zlhbw)HLVkr<5J`IpcEGA9R1ztM@ib?LpT4gLqWgQemKZ z-mugh37%Kv7rmtzt)uy_b-z+4C^g43u2Z9vAJxh*$PnAT;u)XlYL-cwo8=nqY_wH# z)10h{EGr%5BEKrtQl$rVkZPzhZ#&k-7W&X}a%@!~TQ9|aHPWw^=xm9uqCD(LP2Fyr zF6yk&RU&G=<|UUJTpya`?o!_Vd;OwgZF9Mgtyk<5UBhw&|Ec#e&{|tm2sX$^0`>Ff zyStYo!UF?Mo#l1EqS{CLJICjCm?&Ql-zyO1OQo{xP^GVtE>&cy5z+}a)3a5{*WW@N zESGAN6!}Ul)<+uJo4FhRLqz=!{w+*x&_<5kWBj?v{qj9$s|Ur2G(v@+?e7TBTjNCE z7-xwMYISy)gAEmDwkMn~(K;8};zd=?wM1X{=o!8!EB&B@R96|X$9IjEV~6$T_{<7x zlnIHHB~i6jx=HktS{qGM=PMDK7^0_9THDt;?Y(WAOic~+wo1R~YNi5_*68dIU%N|d z3zaLiuMIvFAz*-kZm<~{I;hsntM+rX=|))UJ*;uB0{8mH9B+t_Bh~wcc+&gYdd-cV zmZ_OT9pFqqJ4!l!akb+dfqcm*bUNByT(E2vVGfEvMFCUhdu&1JS)Y>1f# zTW*^sn%H23ahj{~i@mis#R1`@yExpc-lAjPi@%KYG7>8{Fw^ALt?IdspdWl`MnYptD}mUFmIm8|n<_dBG^N z#j4a?mL5)Yg;?L2=4yBN$pHrX$!m%YvQSUQ+acTSZgritvUT^9mmTT@HCjtj=RhNz zW{yOyz3e4liq=P_8CKb*t%25Pt+OaYJz!x4c~hA<-#JHX zK`|=D8|q3aKG)fU@{Crcy9jk&_OyGAs=pGsY8q%-{M|y{DVn*%nc7KJjpy!Qp=JlfyJMQx`$2#VL}hjaS@hh{@sC zh%!K56`m4fjn3wYwp_BM_SepAjr7_LgqwN1`ojmI;2kGn?@95-gFKUJ_UFj%y=w*wTq%Rjfbyk>>fw))Cg1;(k6 z-#`-S7?m@V)@2#(<|AF`TkI<2GB>N6eXrn@f11%Mltb<>$R;fD4 zmRn|>NoFW=rq)LKN>iPsg`2m{o$VZ1*xwT-2)V|i`k85Ohsw3m0*^Vx2vt5c)hk*^ z5Fx=Zz0}&Eu^|QV&gd(i?;u|m-BdR$Sg<|2Ks!fh70-3WVm!E|xD zs}(KPWGS}WAzo{3G_tqv4A;?*Qmycez7A^uW1XsxzW?}&M?1({o^gpI+#bdj{%6b4 z-FVFn_4PlRG>>qyNN=FG2?||lj4U5o;V7?)bEIEH>Ml>FB8#;#(GI;-h1X!bqxIHa znN3>Qq>rFHgUk@2y^xp97i+o6^?0$A-GIIk4ZUSx53%SRAKA}dZkB1e7Va=xkt;>G z*A4{^_MUT1kmdn>M2743C)!)ULQ{41gHJr*SqCWhg%krh5C~=Bas8w#ckIl7S zt&p7)+Q(UGiIxsF-Vbh4p|Kb}rJ7}jt*VrTgOI9vKCmbemLl3AR#;=F5DyW`6`OAn zg5lmyl8Er%M+t-%ajg;&>V!mUE<-@ANVTFQ+hU`TfCQ!1h__a${{Agh8<9%P_lbb6 zBE;+HEd3p0n8{u@#j7HntW=^h6`EV+73D_gB;O8ABx$OjHh#6mAUX1UYKqOG6v{J2 zxzn^TT#Qx*sk6T!Zgqm6JzKxdga2d6)%AZlEl_KR5E|+K5A&I1r^wM$bB%46YPm*A z)nd5GrdZ`9Yqhu7WFsA5vmX>F(9LJIxyjdZ)oA8r8(e6c^-@*aB*uB(^sY27*ubD z4*%P9^s$DRX^TFl{=*(ujM0|K*F%3-7>YviCf=w-a*|^@q`vdzCxF^R@}f@t_UH zIb4*>)Of%*9@f%B)_Eu_d062KHF7Y=omQD*t}6{y;C^E~s=^8Gc9}&!(rAy1d$n79 zBFA&SG0yug)>*uOf!bT6tt+ju+5@uuTcWGH;0f32Z=D!#`q)vv_JAZ8`?ousY_zLg zXoR)`=BkiloRxz1^Rlj3YPIgp5~<8f;!X9oYFl*ioqe?Rsv^_0Fi0!C1WmNSN-xXR z*CHP{Lq8wbBuklR9PBfPdCc45TqM!i&bLmq3;9JUlH2q5r!|u=_c+^oNZGldD26U(a%U%`7liO_|NSS7kJqNa;0jj zPJ)1@y2!H4lVL#cPLa-lRD+ypp+u|1X)36(JUcYfIQ%(lWQYnA4o3M_IeKX;0rB&ksgw5kP1Ht7$rq7u?j``&^#jy&{=C)HXG(zLD^1s zjDWqhmTQIMb?}h|rdZ$;EnKLxBXv=ui=Vu!GK}c@wjOx7!mElb{2%Zat=`0TSsFRqbKVzFrjw3t_ik|Wu`da;p!}wsN5FS(i~^L*Hp=NfpMa=($X=$P^iofubLuS zwWWH6-*4yYd_l(FV%+*~!Jk)IXRan{{`Q>t!Z7330E4|Mpt}$JYPM)6D)NOSZA2L1 z7fs}%K$)%fw@kHklYE6WmaA4O)ojgeF<+c5BGoF?9PJH6S2vmF3M;W##h;a=;_J1$ zf4A8tJIET}N_4T0bo886*1J)pmtCT#SihR-Vf)sjn+EA%y+jwDMb!Ix( zyY91>40+xay@v)-$OI=_;5qL&*#MpEYk~ps7~}>iI=W3ull5|d={C4e7jMgVzAmD5 z_JBC2`cw-?yUWua^tcavV6aTj%2REzJhaqBWSCm~ID@gkUFQ1yGOr7nk!q1-aw970&lmm1#&NLnECs`AV#fwtuTwj`}x1b+{5Tjh3 z$+n5oOl#3d(n2y4!yS@niRuKfU8xXiM20_qq`LZ&RHjBMluHt@M1rBD`sl?czjO?ibsvK$23$KKUOYr)K_v zL5urnk&_1y69;yMarc+);*S(E>{ct7-EPCUU#@$v06w&q;%El ztkusj9~&Y)OrH^9wBdf%+CkxCE8f3!6KR31UJ>IL7wYCo8EV~VmCiay6;PywUcNO` zzH)neRH8;YHkir&!Yg|IKh(1h{3)$$57Sg`ph_!{mZKs z%f(oSQGWQ$Q4cFz60D9u$q@{o0Z zMsMD97k#vywdR);Tk9oFJm>)No-sj{U-a~*gG8$Ky4#GgcY|ar$_oy6gA|W>$RN5R;BZaC$fD=)<#GZ`PzxnSZlS`IYJ*5avi47>kcr&m%foE)6WKJCQ7<^K?A($L2JD&*&yHe zT$F)M28Y>X3NqblzE2UUiHp4IGLM>6|DE^qmOkFL)iL&WtFM$HQJe?EF~^@D`G0Po z)$@t|xkWn0GXm~)yH70ku$!IY1E=^v8y8z8!NqR!imeh%6C=wuh1RJt)VJ0;QdK=^ z_IlL?cRu?#`y=;2?Eks)BSa+yli*zSH8D7R57>1uuGZEv8ti!@Od#>V{< zy#I>7EM{ei{U1vnmJW6p?s2X4S0Ug=eLbScDmS>z&uT?zWtNq4 z4VGc9zIrtPdmdt?GVL1xwC`}Iw`A#Kv8hhcSg9h7eP^1rPS(X8whGzHvu@YcBci3b z(7txm;|NQ=sIo!$+EBvl|HhJZkzkHONBwO#)x)WtH4SZb@SZkCiFUpU7n$Zl)!tGj z+5X-%-xPUL)tY6vL>nAvli5N_q^Yr&B8%*8t)7alkz%Dx@eS1VT6@GH{%wxDT?B_4 zIE=Mc?N-B^VVpR#MR~wTHQx1*ask8LsU1o^<|f09u0NUzJmC;GsBpCpoUf65_jt^O zZfqb!Kfw&6ou_g5=PI8Yr`Y{2x0ffw`hNc@{!I{xMv^pjg>=`Lq(+sselS-+u4i1d z3%2?|hgs)b1C5gB5oR{2_luS5@hJYqFkXzNzr2qMyOS3BJ! zJ`a2L2;H2fvkz@?ovVEBCO@k(#NO^VA-uFh7XL@pzJ^xljlWQOZU}|w?IsyM^|Hm% zobNu}^z@K^9+NB6Ks^l8$T&TeNYLI&=}MJqW{8kYsu7T@%vPJxBs{K|EXyWjSr$g8 z7icO0EtG|4G=6J(M=J?8!UOW;i4iBldK*-ks#2^tkrI?yr$(I`RVp=C;~M8k(?>4{ z``k~WbkbR!=9)N1lI7xk<`ao_DxeKSJENp&Axf@9@rLMVv_iGIYwCtDS8u5up0ZJv z4ua|w8{uKGwo6i|u`<)ObFl|a@q9REiV>@q7a9<^|Gg|A>n}x+TI<+=xbmMOed;uK zwDwMtg*m|Wg0KfX<8WSGB21f!@7E|ujS@w-9X!Xo16d9Uiv3i ztQ1j3YU*Uo9rO=C*TbFcMcYL>!cv6}*2oxFIMnA>%QVGw^iyM+MGkeM>1L@mN}XPM zcu-J4ydBa+Tc(>xEu@$xAS6nJss=-*3C{M2PJcd!QK5Jjrp1tNe zy(hzpxMMxx3fG81P?e4DaGljIH_q+asWRR<)@Uue!5f7vbE-Vw*5hAZ_omh!^tL-Z zx!XL(-`Py9Bzf7ZzIC1Z6o%bblz{QB+XYcHP*3Buu*KDmaIagn)5H}Txj~fu{pfoU z_LifWrD|0=Q;mZS(#v9lEHXfnWu8`Or*6hs_V>O4TKL|4^m3&}l669RU)ZX~R4oLM z;{hXm9>y)jILi`enyp%#wa)WtxV9Z|q`jQ)gZi>jz6}fM$YiN9iztQepQ8#Jh^{TqWZxSecfrS553|R$A)J?o48Yrr_@O?NTsIw7;L@0 z4EMB5vlJPog&O(ls28oNM5bDV#L8BN4mK+lBTca`vd~zW8l;K}$2`%5kIaB-RbnJd z)7}o76e?7qT2PEq(Hg7NOmnHSrRb-z$DE><9zOB0R?;J{^3X)0T~&wVJMM5#(ew%aVlOyk9wZM$~ZE0(_c*1B)E1Lv8sPsQU6k+PL|4*r;98@9OV$BwYAAhK6R#E;;__0 zJ@ithjnP(_X`{>CrmG64`nU7Es0}Ku@u03cD)g)Yie(yNjY84xFu>k=m~Ej_iwyUy zBz?s>T_g1MoOT9Cx7Fe1?UE_SJHLJ|`?s#wK`t{yo^cw9Q)i%L)!G}Zla`VlCErWN zyUBH$xKRZz@tV1Q2*1YHw(TNBy2jN1v+4ZbzRNKE^wReqmJp8?=L2+AV47$FiHdag zq{TMM_kcVp`f6`q^R>2@BFhbyV~JC(w?vtMZ6ah?AVV{&HC8Ix4s`-*E%R;tI*oFO zQT0kSe{dMl0=qbjWxhhKVQy9HR`=VEB$w!JCwJnru5odA1n&puxY_5To#P^HMOfx0 z=jr7U+4a(l@UvxxTPsrqialnA+x_HmdmHmNam>3X)vtS2q_%P#?0MH3DHcs7`^ZZT z(#r?~M4M=avTBkb1;nIby zwZn-PE0L@ye4wRBbH0uqwcXJ^)jb?hLN`|^cb#|Cpr=kIxlq7;p3~gbKCS<(V+{81 z28AgGI?{C0B^u@iP2KJ*{oSe19OYgXXP*YoUiz0cZ&I{%vs)C(Gs|U8w9@W!Pi1Nx z1+=`YNaAf|6C-fNVaw&MW_&zrK#aAm!q|6`>7Kz zB&bjc*80YKQZ=`~?vl)sr_2&-jJCu#R;e*qq&gdYV7cX5>7a!iMS7U#2TN^rmecgL zOoa_%q*^V*3nt6A*;Qgx+a}48SR3v#(9OPX4%37GefVbHUogD|wEEK-{{L)oGJI&3 ztr8t=xKy#CluFW4dykv#5`)Y|s>TizkR{)CM|xXlmEq88mNds2tfe|*t#rLc>a5aJ z8$-RI%B5cPy&nvdAi{DB-0wuss5VeM;zeSR9Od3}r^7ucrT(h@mhmQ_)@LTEwZb&_ zxlM}4{9?3YU)`* zTWTNivXE%28hiQJYC#F|)e1?{)Q6sI(1=f0y^HgVXo!evxF9P%VG(j%rP7t26(voq zbDSwcnHBER)45_1^1l0Y7c0lJ?w6(1%Z~86lUyxZy0!JVkj>sON`w_o)JU0ERJh3+ zcj)bkzb#h3`{jIAp^JRrYcDy$wfZ<-BT0sd^r+XZG}csG1qGbwP-VWbLqBKu%4W5? zyUG(j*4P;FK2fB=QAz}K!fM5us#Iu)Z&dnGCqu*{(E^>cS14NZ`UMbSpd0}=$<^3I z2kP(jFcPSTwwn9EyMmJR)J~i$t#_)i`ntHD$|TE!4)vgk4cy&26Fp)a(u_97RzHZg z-9^q&;F+*i`cC`O6MtFt4meGUY{`~;L%ey4%r(yM8Wc5NG0{XRK6i_S4V+1x&8pDe zfgUl=Tr*A6OQBz7NK;~*rFv*?qPXzZ+oD#D{4hUPBx-HYOdMjADn_z0@5@D|SkB}l1{mZ(IpR&QF&v4;TVsN+oaQ1uEi~1G`nlIzDxIsB1=6$* z&mtr^z@c(HP!E~;J)cTDivd1$aQiS{5?pZB$6k(Fb^>LaKQGQe|#-X~J>K<44 z#qAEa#ak{B(ApJVaJX}vWSW)OXtPL1HDKP#)97zd2>x#~jhwLS_vQBTKBYzg!0kh_+qGTB{r=NvS9)s-#L5 z(8LXvxURw44E)&~Mzvsr7;=$Mg|zj6pB?9A2~L+}kn1F1hOwHvT0FM8-?L7ZZkm5P zO`^HZcfA$Pcbh~3tt|_;6n#l_ZAwz5(s> zo~)~DEb*QcarV+uhI!`5^LjXN*lwbH=>ihH?(}-8SgPIc1$7u{g=5`mpPPu$tjWA4=M4J^kQj$8`-7H6e z1Z5(GJR>(u8GVIJ>4L`j);nfeCf%<>f^uaj^|Yy8v%yyV^w-C$ezHxZGEu5bS0%z~ zA+PuV-Q8=Ycm7cpo&JA-;>mZnRhXu`f%3&FHo-;#9jsJnB{H-|Gn0HERu^fQZi{`5 zvQ3iXJg$*QowPO2R*yQvG_9pb^{CszvDSa)6s$h$h?5uIIVf$o|q)>C(%+Tva(80}T_JnU2Z`B0AYEpn9R zUKO%hs-#^In`>qNFY>kj3+v-n!Ene{U@1nZaJWbdB|6aztMyUrJsXYJS`#JOcwW9t zspd%0Lyh6KS%9Ezk`$S#t^UYXCtkcLO~aLk^+t#F6N9@ATSPQOVrY<-&6F#_G1mCT z2rZqji(H$$X)y|o^KaeMnde4xTxPBNTw*_~-Q__Y4c6VM;ppH&ePye&z{Os3qQ!1@ zp4mERqLq()p+;O7g|VMj3av0uM*-`7DOIT*mRe+%b`s49U!epOd?*$HXL?Vr@8t>D zWO?|e?i9X1%jKRj&&$4bm;vswOsp1Wh;f6Ty`sOpJ>oe1o$eCb-Jpf1-5EZd2s;reh;t~`0Z43D85Y>3H!QDoZP8q1Yu zL%kH&KLJSpxiwYiW4p1jwGs`tsX|;JaTCF-vJik6V|y?fk^oVIm8pHv{zxAwk{UyKpPcntWaxHeJsg^2C1=^S}kPw7Mql5 zfz6_I5}{O;M8%55ibNX^NprE!P_mo!a|4G_)Sz;=-B@)_l;d?*XriA}eX2%Z1GKW< z2hKN4p1a(nxnW-Nf(s1unDZ68)rBfuP!F4JudV6$!dMq*WScylJ!(9d>KhmBmXwZl zwhzs=+8R$g!zkC7BF{>ndEUIR`t$GImRKi>6*4#6D@ZlMCi}|tqypPK>}%~@YOJ>$ zWuZyRba$dsRVvL@>svkac8cjXI@16_FBvbOksX%$NkEzk0Y_=CLY++_u}-$GJ~!KP zF^0?bt}^U!ov}hrbeTyCJ!qEGb#u3s`q}7B?Og3w5XcF9_!dq%gGsOz;sFE+Fu0dfV)L1U=>_0q>isMwM7CZM00H zB44Wz>ul?!i9)4fLAAz*F)vZFY(a*)aOpBiz%s;&3E$^3<>5FqBteWSvDTo#I#t$6 zwOP5PDg?C>D^Uws7J1XB+PlU82Uw<93vu?+*!Mm$-9l-m+e?36*kY?X?*$+pNADtG?Yv&lru_4ly7&Gf#OWqZsXlRwt`2dyTf8GmV=b-sn(aDiXOmK6?WIC7+B@4rZn4<2 z5*_Uu-5sq>gUOhXz+WhF|NqVc^+DodKT8#-)M0AP)K~|3UYF%So5XlWmJ*q=JYj}5 z`Ur@&LZzV=sFEx~XD3)|vjjnFZ4<4yLHN?niw^d@Rcd$R|A?^5g^HpDGesq{8j1cD;=}xlHRVF)2o|i1}uzg%^fot5Qqt9?y{VT`l;Bog`7G_&XaE@_G z9g0HtN_F}!o%o<8I*1SukSM`czk19mMmfxBE^(NPykmO!_$oI`Go3Keo%MqEnXYqp z80!?Y-TNvLuf5}3tA|zgW z`-rgKHfM=Yphlh7MB3~brIHl8*rVzk;Z_xHr5YJ#sue3uiW~=e!4xyCRpw+}e4;{)TKDLv zyJ_CF&U`bas#GmiviUyKNW2BMD_5!3XjyKSZH#7q@}Xz}1-=%kO0k}5R9m6WMsa#O z!g9}AR^L!OSbCW5W2qniqswURV6XeKfqug81;Std7u}5kF879&PS8e_GDVu`DH=7_ zd0lgZwAEIQGc-|dfcHJFtx>)fQYOp648Ejg7rH3%rd2_ou|11 zapuYsq0TY`ZM0Q;S^CLQ;wR}MEH)22)QGn!{7%^(@SsTBMekA+jA+<1hznzsYJH{L zIr=(8C(k=wwr8ZdR<@w`Ow__yr+G`Q=LDUjx28UFgeQy?Yophlu*>LOZ_ze8)ldOJ zd1jdCEXkPSS0~p?vj4UPKJ%lXkbS-FJy(juI@2syBHQuy)m6uEZEcf<4wa+8Jv!Di z%ExJ@R1e+5%tt>rI8M{uYhM$b=1Va;xYcxvd}E;({V2wA1sWsZC>;e+ty+o3hFK|q zC>x~dWV^3*bT|@Sp~jcaRpc2}&UTWqCJPzrEtmVzzZE;f(Z=d*ql-+`+EwPtvdwow zhB(!edU{(sTlDp!De6q{fJzVgFnoB&J4>x-W$tb;sueKOaCh(4Ms4rkCVR%`UbI=2 zI@fsZ4_ma2$Gq<-)s~uRoOv?TNp`Ns6x1^q4RDoeH`Ytc#JE7I?=98dU{lp#V+o3Nc7Q1Y3hXOrn^mS+Z?JPsmZw5C z8e5=Nq|5vuz6u-RyDrq(NVj5#Xwv(78}>*g48QnaXDPK>DEkuTHK zg#E{I-)m>EpX9hm2V>k}nKKQKN$Xj|kX_qfNQg0dI z2ywGBO>>@BR><(KuHgmRFz!7=ly`OTpuQL?*BfFTriov4cgHTufa_E_OoX46I7I{& zgjFHB+3HhqGHkcaoCYwqEC<=5&^fBL*I$&&<*61Y#ZlhS$gy5fDatUjg{+q=PHPAG z&Y@zY$~N054|?56hI>JpV-0YRzHaoqXACyfb|C>|yU8}MNN|Uf<+w|&^7;Pc#Sbyr5jx9-+D7iA1tG0R<@XlYv6Yt<%L2(IPZbAyTpRp4MHBg~$_7r)DS%MabcZ4J_nJZ6F zKm9#uo-rDSL8Ec5HbBVBIylbAFr9W6WxjOke>hZ9wAJN!8IBv%(xp5ei&wm@5=pYoNg^2#+hW!;zZV$0=@hx(Xu=^pa#R z=&?tw>c5Vt%dK~kkG1<#70}-z-qUPRtH-D7nr7riPpHwXI|IGd17sH8*aA9 ztNPi;8S0$lR}a~%exPQdx$fR=o+73}4iO>IP{WmpHq$sa{UObcFhEz^?XRtJuUqdR z(?xkij?E%>i%%8{$QJa4qjf`xC!L}V0y?|Py@vYH%rHg8?~)v=**!MM5JZI^ z^mmANJR`-8MyRpb8cnR0qQB8b+u&VSnI}t6PrAhZs@-jkRqk+@Bg}KOD?BX1;UZSB*+rKKP3g(pt59d1V(|i6*{DR01WA?~qG=e@Rv^Mp*2&k( z65lz(YSmVXm#o-RCg`c9t*TWCNLMb#zobdmMN^Y(7ooKc2I%Q4T?J*!R;JiX4pXH- zv1s$P^qx3rN)#y5(iqcK8=%%ohl`Z2L`N~AZ8Fa>c8YH9bOl3v;@JO){cj-!MYibN z;4UuL{(s1_`dcR;$8@i`#ZV{Mq*kQan&@G$Er$D{UL#?P@AZ-3L}ggwZu@Czj=hZX zl+{{TDn*=c%<{Gbl{&giymd1EA%||1G#fS6TFHNK7$lf&tSHO9E=5~6DD{9vo-oG) z3SFzrc1t|%YR`B}FOdR*Ciz8g9o^s#SLjrai>k3!qyM41DD_YQNzl?UP6@-0S?6bmXz6BS9OyagylR|B?Qf=RRa*MW zF_!3QoL-VeyUgom*eJ_T-MsD~`}@KswMKX=JffE`Q>`Bzs>D{&VfL^bmwDEc&JVA~ z;4WRyT}o2JG*W`~KG4MgOJw`T9b!CSgs}$N>^ga#(A2x4J?&}<9#E^jHTCn^A@3^R z4YRY_C-s%vTGgI)jgDTl)MSBr#jD*@@TRJaaizQ5XR-sNOBK-k4@X{sSjo0o8fKrI zXoWT?vPlc&w)@If{Jcxr-(9X$=ZRPBR?kV(UXt!Il&Y3zvc}F;E?=uKf-Fg)NG+{b zt5T^Qz7o*N6YdkCx2a}3-d5M!VYu6+`o+&eLS}hXtxN|P>mij6@UrgSR%??jy15X~ znyQC%N9yMZ>mBSG-7R&A$+|nxr(#@ftT)x7i&IRpx6gJdLJbhThpKNtd#Ae2<&M$x zACuE{bD#e1G7ZsAbFrX7GHmmsRRY?&RYz^z>uIBHvRKf38KS)*${JNF4Y6H`A|*od zkfOx(RwD%k=wWXpsSV$wfMhY@yreb^$tVmj)>^I6QG$4-8fl_ftXxTI1T~YUi5>DS zP$|X=<2ALxD5GsqC_=vV8mpD9LL)tu>tujd;#6AgZj0>YEG4Qm(ZdQcCMZ#CodpV2 zXdz8^TWqpGjvPU2RSP=DFpJGFz)0t6VunJs4l~j$vlI&0A>A~ye5>VdRr1lI!!U=x z&M`_cE(~ejxtZzxhYbCnS*+t7XNqD0{Vb8EK(c(3w6sWHHGT;{bDIdA&{3T6-gBkB z9BZv|(K0Ocktp+I8YARKb!KSm6vqkqe3y~n|7;PuD^=&Xztw(T=MMkYTr2D=-JwpA zt)J#Tk)pNzJ?l~XJIfWOScn4Gd%;i#iqO_W8r2s(S?-6wMNYK46?oei*ZWnO7%lX5 zphI=G*_+ODth;<{tT(;uD?gaw2RA!koqxOBK*OEl4Ig{Z!D7vEi{m{JMv+x{%1!on zk+sTwr$}cb^|9Gl)1`Szx=*!sm%+No6eV6?Cs-j(Gsno1EJ}_t1qLcpsGD|zVhj{g zs+|~#7HFasTDwk}59$k3wYzXD?=tBfsTQAG?{XV;^O=?o_Pl^wb@YvYc~6$vI=aj$ zw%g)!gw8 zPB6rBtx#^EY!w#CF;x|ENRyR2+qoY0 zJ_b9|Ru8LHquklX*ybFs>t(5AqkU|XBfaNISuXaK#(J2n($zlnq#E>dqUE-@uYnR> zy3AeX+W#lE(X`zlxQVWIiD#@-=1E65N?&(-!4gc*4dorAM95 zY*Xh5HS#>6lWa3F%r%0F5Tnixl*$j|y+YxzqfT6ST&<+R`rH}k)`Wk`RE6z|wUR8w zIw8%lRfalE)Jd`0GFe(`s)cOBUFK)6Xrf4jkT!;DVx2|0Dm2rF#>j#YNJ4w=cH&F9vW<8Z^IoW&d;i>3{Pr&AWyPH2g#J{%`jW< z@7BydKKYM#uG|XM#)YwF%=Vg~LG_X7|I}d|>jJU1gc13L;uYwmlSG^BFwDo{ntrLy zX37=ti?hV~mon+vx>tmUoMDw6CQ5Usfqu5ZYWqmAQkpfptkb_^Jw>b8qe9P~Ajd(m zwp)Yg9+za0le{3tAV*kYvk}s?b)i-6wZT^T9=2GH6#1Ho zGf{;U5$cqnrNQE@v{-we`pSpK8Q?o_2#JvN=YxBR(j=(#rJj2GMTDP?vD8ct>*5K| zSr=y6>F7|0c*@TvyI2cDWqMi#zI3;sZM!t9#vA9v@Z@BjPi2bM)O^{tTkFgQB*VMf z5I+k^K@;g_8T2P};FY38n64O)s*=Q}APl?hp7kQmikAyJeoj8Lsuj#~5V?|4gWL?72E zcA*o~O@cdxdVn{Qt;tdVAr#|?6&_jR|g8Cto? zWbdgJaF~v!dfsI|t3Ol+EBYIa!oRZV&fJB_WoNna03*EPO&@7&xJRrLC(%Ot8tOyO zOLo30A6RFqk8RLQTX9P4P-KxrBdk&=LxrzxljJbn%tlODZ7<&}wPL6zf~Zi2NKxS^ zD_LYXOZ|m7r%tOV&cRJR`I-(6vJ5SSd-gU;KZx-DQB5W%>sE-*orD%uqvj zH%N#G2o{Qp-QDf#TDx|4uicFz2#N|wcXtmtGr)Am`@v^t2SnF>-~W4kl5ysKp8LM8 z`;6l}&f|;}r%HcuR@q>pcms^{yeC~_x5p*=o2?FL=Xk43M+fl=H9i9PG+0*MRFIlK za2*HivCBFG>VV!!{|D3js=cN_e_N3zMTKZXl}i_FtJ(T14yd2Cb-!`G_mf=)i4voQ zMdo@%p=N?y>l2GaS+Bw-2esD?85+1mzB~RWxy26B{^TTA9)hbEs?y5{&nT29+eTHw zHC5uE%@Vz=R%1UQ%;okt%aS^Y(<(oi!*&)=_8v%G2BA8E3glyfY3S4$-21K+g|p#cYNhpjpe8?&`{r+q1t@UdnZuzj&hX8edZ$NR;op?AgIvo!VxX4{^^Aia z&_RhBYt(2XUJu_&R%@Uxfl5iDESpv8DPE3Xp^E)1+Z}k`qpD0$=4SoXm~5vpP7~%s z_jp`$nZ6h0QSlzM)1@94YlKhDv_++V8ezO|eCAwDRcY>Z+Z{CD!_M@$_ocg7vH||- zGv6Y_CGHUKQ0By6$A zAWyhcj3@2Xz_q$Ms6v!b;dYxYRe>$y4Hay(WJhZ)%Y17zx57@L!qgyCrD~zV0tYfk zh6IFY7H}b<$^#CgLKv!4Do`U=v_uV6snS%URP5BoTFJ6?k|bTQAMCV6jug9GrJt`X zkZqw5)#CM%<0tEU;YVY{NEBj@&nNY>ckdc@VRKgerpRH#;Kug^W}DbIS!mBxEogg3l& zm{P^>Gr4dr5WP2Pi-Y|RotcPQLXtAMEg&Jb19Q)-d4osujE#D&Dj1}i6 zXM59wPH>fXZBi}rk7%{)l}Iu*aLMj=y3icc9qkFL4fei+?sbX^UwFeqb~?t$z~2t_ zj64q*ZKT15nHxCp<(`)7o;umMNm^-Xqf(K&Ti}c%YPQr^r%<@NoNtvazOl{STB9D@}2V#)73eOO+b?yzX7W zwkpyc%Y`VBj6w;T`q@`nxYE6X1>UqkoL$C<*4-ZAT6)VC zFPmYa6c@Tyk&PZS-SnLS;x5D?&2Dq}n0Q9t{)O`vofxbl_YjM3r7rO^|PkC7Kx{NR()y zYPIt>O&zP98&z8`$U6!gu-RPA{c8CUChoiw?#m<2*NawRd!0lIVY-`kL`rSB zCw`YF9%(JIRhV9Wk!goqv^PquT#bZ@*3=3UoutMTq{+ZQFG%%^RJ;5n&jl_KqfjUN zZBnkEOpV;_Q#Iz+8TJ%c{*T=aZLIl&GaIDcAu=iLbk;_k@!oci%Z>4qxq_WzoElRd z?MidS1_lTeD3hZWHNNtz+jSJ;%-?Ax9O{5Kc+*YJafLhG;7Kog*rO&&^LLZHZD?KA zm~V?}wf6YgE}_PH?n>>^k1fCLbE1+;*}03R0l`A4Cu_B9Z7GFBJ+b98z^|w$w;r+hG;{bXPlFb)J$vR zG}qN@F0xOqH$CQV*BI*(=Xl~TMtIF#;5)_g%~2`WC`%o%*@sH)_o)J{tn`41GTo`U zYJL3b2K-Bj5LdfdlGS<%7H@}SwWiypR)KQ8mCIJ3-09}a7G$08RcI$fmc4aIa*F^g za4>+M$BMQ+P~8Yotw5!46*_2RuOhV?OA;zVr98Dt1S^&7V^#7+N;FRszxZCdI9=_q zNTQQvi?rVeC&+cD_Ckb7agtWX_`4KE))`}nuWXkmRGek@3ej0JR|&JgEAq8BSYy#r z#cOD@kCh1$YOGEY{L?_`vQ>Lmf-qT!$VC3=HF5Pugd$)!4pu*R#hMd)L^naXwXqFm9|`bxQ$o)lq$2Ys%aRuXix zPo~c_lV+uHI_W4}zA#_cGxPr&;i9juhbh(mXJwin7+3ro#(%UE#cOZ00?|&h#uK)R z(c827$#tFtD{Z$~wx^|=Y_lpao9h{Uu}A(9HLHHJFw@=WOpjP7T9P*I^rgwZGQk%f zbgHiP!rl`1IK$^2cZ&Cp2rWjr%9wf%Z?m^l+G2^IL%^So(&Yre<}x!3vqN)bW(abc zekx7W#sDYirpkEdc~iC;A(qIu-?xhDD6yU0E!lNuqp^n4Y*C?92Ig6bQw#~faf>`= zo-#p3IYZSS&%+2)Wxt&o`V~|3HPU#CHgy8qz&$OzCofLeaMAs{i-_f(2vzw z7D~LUqf_gC=W9WF3UjO?<#yDmIQ_nVvzbtH?Gk06E1jr~y>^@HX9o{MZA;}jXq{BC zw%RNWQ`9;h`5v|yaRJ@=vU+J}sEd7JxF@YN*u7p+Ym+L+YihG7C#um>xaMZa7Npun zaREin0X^w3bPrY`l8 zle}h*1#0U=%nr@z*4FDBAK@0?c~zKF&Gog})xOf(b>5LH${Higu}K%xU2d9*8kyp9 zyF?nQy+l!d(Lt3YJ4D$pT!Fo6ROw*7EXh`CtGzXXREkp|3E$XPSJB#{1l0-yNOrg+ zWe64}M7S1;?G`3cxe8@sRj83DN~u_>lEg{2(%YK5!7-XE)mW`U-&rfkYNu;#qm`OUu;q?M56D^w#62=_(3=4J58YiH9~~g?K$tua8QQsij+8Cdl8ZY6E(&ek*VBVqm~Nc#{~{w8YQ!Ofzy6bjY_?5iJ+qQ2#nK}>pYH#)nePXm>0yqo zTB?z!gGgc82}3_Q9#^Qf1ZSF|lO4WA6L0tqZT(GGzqr~!rGgx9nQz@^v};VULXVWs_&T*tc8V1JyG!-SzPW`mE(%0H+W{&y(CPycey)V~$ zj`Ef_{Nx&$YRq+$r6~BF;##Rm&T+LhuJ)a8z2ym)=&p&@hU$NW{*o-;+30?cSYVIm z%{jt8)OVbV-D;{BHyN+_Aze0&HL@!pbrhkqOegrtm4>U8ZJaC3Q>dk6*`@Er$fNWcpFI-@yX!jh(stOaPLZM>pQz%ibnR-gW7q;tz za-D^v;t-EtBiPfLdtA9q&M`zMp}IIut=%GQv_Y9@IU)q9HQzkdYJKYpTh*u$XN=nw z`p`M@Rj=ty()2SRqKXNGT%iljoq5G*E=b&d|i{33|CmEzm?S3ni=cpm(L~Z>ky$GDwxyl1vw+iGf}h?O~gg$#lHk4x*a`OH>FE zDqE4Es#OS4BgB~w2-QfKT{4}n#wOD};UY6d{!xZeu0n*fH58&+7vK9)oCUTR=@(b( ztjv=t9OE^oYH?V)HC?uo>&=te;y4d$QCH<4*Fh&>v!~5f{r1exz+S7~Ur2_l6e=MZ(wQa{Tu!bCUf>^kX2 z>1v*0)JRbzQH}+Igou-*Akfy>Oswn8KtDaDy3Y6Rcb+SJV3RJ=h3Ku;ZGOHmP%BN`qS~WgwA671$&u=5>tyI_igR4xNuNs-X}qQum~R;x`G=kX`eSD| zO8yJd@BitiIMz2-EAoR6ZT5y@v+WPyqd_XY?3KE1nGoZ>=S=B>bP(-SV}0#SHDa8l zmB(!qq*8lLg(|jPuwY5flH!0`QF0t`K#&6KBnwexqe@Ytv=l5~uwdOpSz@nXyDU!h*PFeC;KGJm8-EJxl$CVwMHvfXr!TB;kG%b zShbN7Y<0CTjYYax8^tPwsd288Y?G}@&&x*7)9LJA?~$nG-zbCm))tqe04SR^(eh3DeQhCMkBnD}QJZGXfy$;mo0n^wI|9 z76x4YS%+yV{3l>&^(STS->$}DSE-h3pcMO5*-pnCzBf#wAwCqUp`S5M4-Ywj z%z(yOIr8k)&%Y$uWruFs%C%C0m+aNfLr2V){t8{TquP3BynfGdQ)#Bk4Lqeh%hZU| z%c*|wcfqEbV7QwUi}A8F&lzgEY@=N+T1V{+byR?we2vS6V_2PBD*L_dVnrS_$(a)V z0-W}dvF`VSVynGnv->nOK-!-=nMfyVCITONM3Y0@cD&!7hn9JF7V2|l+&jbx)N@wo&gQZzDDwE=$g1(vH7s)1z*dgk}=dILXPr^qCVy_*gqnXkv(~Y;~)7hB(hwXK3XT!^OMZMr|#2k=qnn zX0lo%ovub}&)a60t{!!<S7o@0Eqsk5y zGDK^tNUa(nQuWhcfu0KOR*8#M`c27o_1n&)l|BcfiYG)>=UENUXAQDUzQw%dCxSBWa*)& z{nl7zsxmRs-6h&0wbsg2Bvv15oFrCb{k62jTKkFQ;*_Bv>bM}4YBh>z{| zhWl)>LauLoqC$wVHko3#S${}Gh}O)a-~F_qF@YVgR1z>@(Gri?u`%@zgNbSr>_VE8 ze50Ye15*&c^rLCk__q#pqT_w+QAGwyGRpuflnZm29yX{!Q^(tFr%JEe>U^0xxX*M$ zbh5#@u2beqO%3w?|JbJZmsxF8r_rBNbvBx4kW~mSCM2W~ijikf|J)|phy#dmc zi!jh_mdcT-v741BSFJ+4Acfv`n)8LLQJ{%-b%5wat~1DcF4N{ObbXiGE7KYiY}G(l zp+2xypZ^-rg}B(m;st5sn>yXLf3Go`o9bQ5ZBnMA4pJPiR+S3zB4k+Mbq{*NF}8YF zk$rYqZjW}_3Dr%JR0%>%Rw+?)Syl-bCS06dYGo-^;Zn`rt&bbc5-do#3#5BZywO@} zbch?P=P-5)5@&}JTWvI1mM9lH+d8w{A;AHKZnsFj(^V@unB)p~S*VXfr}^H~)_P5El@i2=)W~XUMcODxt#W%*h*Y8!jTHF1 zE?$=DCksq7(b3M3PMUP&%CLB?a}gh5y=W;dV_G3l%9!l?tiKEw#*- z-Z4T`SE{PlVwr1`P{C?dn5(nnG;^ywn+#MePJfTsZk17v(+EKdZB*{R1)MzdLVB#0Fm2U?l;es{hjI#$)3^O+iL7o z?w}E3ER(LKN4=@?Pb59sm|y3-{~cKe)#+*F+j7JSC;wg>)%;;N7NRIXSUuiB>!k=$ zEX-Jw?a%?W=GlTqTKdM%;vKC(l(kkO*2T8@P%X~V$&*&;tF>-wOf}i@@@+Oj2UWV; z;zws2WtKI6s>oZb+(E0%H{WdY>{6&keWAjGX80)35%ODCNU21^8Vu#$9Y&wJ;eQv*Vaf&J6&V6(XRA`LZoV_#Cp5bxWTo`{LN|y z^!B{P2r|>pF0oy?hLY84>3Dl=6(LorU)2Z_DoLmq`_WTp#Ja_3xB5aQ;yt2+pT&!n zbYyw+T05j@ELsa+D|b+^tK2TcchYoF>}x~p@TFTN+9{`Abi3bcPBpOJWj~kf6Spa; zOL6yDrx!k#puY$kHU6(CD~ayX&RKeibFl_T_>CEMiN5j1^MPU) zDHJ6G)k*{z;bnJ=_K2Hg8>6SI-Rw=D`pz`xh<21JB^sD#t5h|13l^kWjYt`;w!=AU zTxXxxwO3-ltuoaElN!2P7Q(bsYoa^N@|D{?>}l6ne;8SB=YNgjPII)Yd~dJ<4Kz_DNptP> z*4|e8RJhbC9|d0QgR%lcwW1vBC?ANDYO79Ob&ivrs<{Osv@}PaFx1+FgElCWuUfQS z*4iLXoJdED&{l;eMi`-~5c34-tf3X!sWn-V1gBc33Xy?WvZRi^5?ZIFTw#X-+f^tO zEJLv70WGX3Ws1Z*Aj&okOtZlv%M~eezp)C;mMcMHw@S5Kq%;GK@V!b2nn{o@N+YM( zD@v+JAzFD@m6f&&7A;4lFtK)vlp#jAIC+AEn&$@1T%?6EV_c)1K|*a3uD4-sbt(pE z?H9|PBQwiyK`DAvdsHY-A~ zO7GY&PG3z-a8M^f@+I0FFml~Yv=mKT;b-d&)6_1DEzwm=*|sZGYJ(1<&5*6P2rnEa zzyBX-ILllwy4fvmale~g5I}qZByP(g5GGR$Gs% z5G)S|P4lxdOT4Dq4t-r>f}_p0UY>^bcu$NdEcBVdLXq!Tr<$gZaJkCrIk{rH{;(H6 zUb=3cc8#WbY3^>5O?1p(%>6I&nf@Abh)b=u-9e#FcBh*RHm?q(jCF%p&kJ*pr(EJ; zd3q>QtFa)pa`aGbp~*HV(_W@trmB&QUzKU2K(&K*i$X6EcH6Gpb-KFRO&;~8>Dt-s zZ?X@oZUxtm=0k;OWP_dBi!s{m;#JsXfGD3TQ|noybw`>O^&H0cf?Qkg-?_drMw(<% zbsw-osGfHDL_d+r?biG+3|bG?NwRT&K)TE?;D)gi&wpb|3Xxq$nfe>HX z5ZLP4KpKCPd%UQrN1SP@AgAf%5jzCwp;iL26seXWNEnJ_p;m7%8s-uSu2rI=pX4}K zvSt3|C~xbe$Sz%Vb&U7zGh9Pc+@Qokqr7dbBtM9hYbBCA0B=eJ1os#?Gopi_h0h0b6xCM=r)Db>X_HFjPPfLF zQVjOEJ@(pcqmBNlRFW#Y1*?(lawWdDTcKSH5$LOqD_%ZS~P<$GBOGRPR4%{Il4&iA^rd|{f?EEi&nu676$??nZQb3(OsDUefyX`sVjo(mqLyW4!@s(P_}u75bg zO5?oj8hx~Nm)3#v66`oPS?V(p8VS)wieMwey3=^UiiGOrdn?u2rdXwZw%e|!_Ofl( z+CDohLyCC4eCbA4xXK+iDe%ImO--^PAoe%Ii*A)(@1iT^>5g!vbq)6m_0+(VR?EPC+g<#BFa~kIMaWU@ z9xLq@Yn>Xi708iqvJQH9US~}m2=EU6bH8aidc{+2lWV_CYBaLnHiU_@RF!D?;#DG2 zuso51Y}QeYlkGK8l|AnCs?$|_(mcmH&;9Q8v@SNgR<#ekZ;u)J`^fpGdeNo!dqt5K zHPcsfe{-pql^8EZcWczjai1F`dQ(>qdcZSo(N1p<+2d)$1B0nfR4mda*}8~R=@-ZN z(e<7^B-8snmEcq-S!tq3AKUB+`;{wFrIBn?4b#IZp7*#EF?s}yPKZSoD8~*Ti;&<= z_nB(5Q+(t;XY1i9nI83mavc=P5GPE9awnPSD;ZizQ|TEOxLS>9jm)=GicE{$XNhBV zw@iq1<5gm4;N&!|L#IG*Tnl9vPn0K(uM1#X4xSfyM|^rPez6<|y%ibA2IE zt$eMFvB~SQ4A54x5;L7CNLwXV3CFE2vrL*EwtHHItE@5CI1QBen^r2-s1~h>2(4wi z-55j7w@P={n7T2jI{N^w^TdFsfn{*g&FvsWSJ4?+G-meNl!bG|_@VSkIA=t6*H%tpX%u^yx zh*7H1LMKJGD{`5S^>(w-flB2#`%H13O!xR!na1d5qiEqSuuzF_U1G88tuoPx#{Uk0 z-t1F5^mnR;5)bKuXjSJzbFJ~M_Z)DXILX3|v)_BJ5h`3SF^G4o^OW0ZvKG2alxc@K zCOOvMbQCPaF&0_xD24iY+if=LC{Ml$wI0z&H!a+2sx9&b8=`}sU2CR|dZNO9OAIsc z4>Q7`|2pC0zdMZvhk=T($aSVmm3rO#;IdzmYJfN?^(NGYDA3uJHo3&ZPIa_a zE;LPn*{U5>WS`yo2gFN4&|XWocvcVF405dI#+l(xIZoHb9oD(pr51TWf0I>t#BQG( zrinr;P19SLmD;&Ul+Et&rAotHtBXY*kT2Is+DQ}U9hI`(A;>f4drq2Q2MlztxBwIp zDMheyKbWLSsPS&_sS~{ZhjWq-`o(U9>ftTt+N%~FUF9`j_*fsSz2#d&BwD1#wm@FD z%zgtU*ykp1m~D-JYHp{u^taeXi3WJgK~-v0Db&G!VM2tdwLusCbhX#{DsDlN|7>v3{}7 zF5zZdA=WM}v~#Ww?$kh2Ir_Rml|1XDxJNf%m}#_!#T%om0_EbAh<1(@Uh|}NrW+zl zrk+}PU#tw($|Nh7Crq$%L7HnO+8%36_laFfRI5@XPXo&=6l071YPEEm2ssK25qStp zDoC?KvV|0vnh;Pn7^=(fY8(^fV84XJs1F%BDF1_r*jv1-oI3b2Sej6@(ZM1lOI9Sy zLONtJBH) zH-P$srzQEP3v|-p51QtJG%(Z?-jV46$GhDUoMMx;IABY_e1&SPr8XLx?+q_1@RKaz zYRvS7dpv2DJO}i$%<(qaW2E~On4^h@{bZZLUh|keN~E~k1_LEn=0Y!;X}2jJaiP-> z8}s&`%rL)R!|DIkN*1TTTP?F!ThDskMH1}}!u3;Z(YHBHd!0e0ON(HB;r< zs)eI{t3;0O=E+y#D2oJXr&^5NR_iKO0|!mgL~p~4Hr`DpyH~9=1GPR(#^#Vt?@GCr z8mqAdVl+pI$+~!2zCu%6UFZ9QU8vYOZuhEFJ#pCdi?w=6M2ggs0d>^t^ z&E2kzSns&p951>{b8Qt_-~;D7QyaxL+o;TbwZ3$%tse56c%6OjXR-3F6k?5FyOgOF zs>lwJD)qPBZlAlrrJ}7wr4V_x+96h=5SjL?c8pVO@U8EC?Nb}oqG@1!&u{VYZ}$|d zK(HhcLUfiVQCsmEY3MAOo^Xi+qJ?WFO}-%2%3NflPpnfZQg3k{akrk@YcAM_YV;9d zsg^F4Wwsi@(sdGTikTW~AzP3RPB2&(6HNBA3}pI;4Ib3YO=>N($a^~K=SO#X+XMD_ zMz-D7c+E#1@SGNU%CXx@2kbhG2{qKNL*`hIH`XVzka`H&W1cLX?Kck%e%AyTEJVB^ z^+2pzdjmZ->6Tfo%6Erp#|G&gU^0ndHu>t13d~CTT;~c6{{me#ScVflV3;qB^@b$Zi9yg| z{H0W<_`55Oahh(LdDeq2a+*6_uA5E@Z5AfP5btQ9jTpCUt-EAd_Lw5cQ|=dTgbqG& zrhSeV;~ZzpHpj|8{C+c>;l#Si-~ZKGB3o}AT&I~amDcD2OTrEPmT$>fS&WAR;sUE8%QLZdKT+P~mu%)Vn$Tw3v zH+WpF_0~vpiB>jv+xOxHo9sDRE;8Cm->DUDp&Xlyl_*zF2?~_iqC}zs!)2&(z-TM{ z%UZo$>}SQY707auje6N?f=uJhk|kD^Q1dO;)Nz`dXA>^e+UK%0ah=XyHs5gB7P{RI zlXbRQCs_vg*{4po)KupfDaYFq4MBvsdWuVg$nv_fz;xtL9VPj}XZ8!V+!tQ;tRK~Q z!Bi(Z#~t1kqls`qhlw?`QDdPCrD$%3NfK<3Enk{Ut!*?-twPm?Yh}Buq?@Hwx#eaH zcAK_p?YB*H`wX|pAfIR>-AosF)4MJ-&~m-x%9kKqwt^(~L0J90@w=Xo_amYoS7%2ds9`HY<#@TdW{myeP*;-L$aX$-Y-1 z%5h#d+1UnbtB>inDbr1{2$g!cL@@uRI)QA$}>p3NFn0XYA((O z!~Cqdxw;|Qo8qm})Ol9;mkO!cn697RUUY^of~-+ux2}eX`9meFDs)Ql*ly z-7EU}MyA1Fz4x7>r+r3hW}4%i=v%uLs8FlQLFd~kL}#zruY*fv=xc;*k9*7KTDi+O z{q&P-f)!TUq1s70nQE}^W{J?qUI%1&L6LvhV7_B@m1U-GM*CWh>r4?W-C}2(Yl<_S z=|?LpwAQiO`ftG|hHGer zImU<+B>FIHIz^HvmFg-a5RVPgRz9g^%pEUa)3r>P%CuYSXQA zi71P8@vA-d>g7~z{7W-!eD7C1oNKL>mOIxezENX{EG2?+N-sHF_viZKvaeh_KQne$q)l16-lEe4lySmu4u@N~9)Qi^6&p zst-!{Y_*n39A~7b%r)B?;=Jsj zC`-{yhGk0qqPH?xE;PjeKiXiMLQNeIZ>czKWJ^*Z)i#&-&PqEZJ6nu+nYtTnl{-|r zPPJ35wpk~yD|Nbg2HI)8QsjuI!@ zI(@X3A=lfE5`l(t?bcJAwX)prM-9YDkRZnz=a?tiPP??%(qsjW5oEs4bkO1d#ZcK0 zjU213&-|c~HG+>YuC~Y*-q%UFJ-(DB$P5oyXR$e!S>bGp6*y?5AC1z-I^Vh108dyV z$PTl_2y(P2`GVYGfo{4w=r+y&u;QAmzk!%yIn{5s^kmN+xKSb z9B5L^l40~=<6f_ttIP)3LKM{r zX4QJtBo`>Q2Wg@Ltvyw`8z|94*IF!Ce~&m;r79s(&66n1eyt>l4ZM(rwriu6K6ZOT zyw?P~!v=Q ztKBNe8G32pTb-qPL_b43=riAna-SyNJt9&Xtd~bE^Hd$o5TUy>-05?ZO!1YMd|;}_ zH5KFx&$-T}n%Hcjy(+9S)gCn(%Tb`ME7fS=SU0#yl7o&CZ>}=&MjID?ee2+f-R9SVyNj zUXr#NndS!P`a)2^K$MG7h+0*uMQLKCMh4p=OsY_k!X4*cLp@=+j%xH4EK~zY`Z!9Y zhehZmO^_c{YizsLzA?mjIpPHib*yshWGI(!zfMkbjz|YIwL+=WoNu`HwkVXRTw7tb z>ggPXHYisjQCBq{HQjF-Z5eJ><6|pTiPS>87`fW$=GQ}*H{seIhUa(C+kIY8s!E~v zR7+K@)H=1sniLRwKb)xg8`&hyngBJou|5GM)JAILNeQrjf&#%2I1x>^mLYW2v2f^14$s z`-{rSM`~z1#XaV_(fT8}oJxzxbt-v|KqHv`2Xx{8Z|f`fm}tEq5rLXTsGEH29t+H} z%*XDsQLJOF3e<6e5iUiP&rLN@k|p*D)yUD}6seUg-9eEmwGb;(D?MH94A;5DI9J-_ zT_M#+@dMv4S0V7^%u@wD~>s>>QMXHkyyP^3eD0Qy_8}zN`cjj8? z`Fg*1oG4dl>kX;ctBWuPWJx)K#Ph$m;7~pK6(Su}X}#MF)Ig1@KnbwWRMqwyZIA74 zu-K1MwD+qxp#kH%);LKHC>Lq0NK7=v2vL}=s$X(GiK#X2Z;lyZ+csGonh)6_$_GXGhf-RnxIsdlIkCEqMb;zWwEUu!cY$&=>9?vh??z z3$68tF~*74Te8*SJm4pvn_{T8`rGb+QWsd}Ge_AeU7Rqz^we0UBq2gY2-eJaf436} zLbUL<1dYrUX}b+t8)BoDax7OQ-(0&KWsMDr;mrWUzlB9=1&I=6kK8() zhTuTc?luFk*S0#&Rcm{MyVE9b*y3q1feKRf*hf6?6_eZ&eEgi+Qw*0q7}U2T=O zRk_eei=5|jDLQyA(2^S#fbU8T5oM27sqeHBh?oYjSwPLg4LR8X0TUfxI}BElI>BUi!ysuixMqes0%fb zW3L-DlV!I`gU$1d3NeeRfVEm`icgh!Se41YYZBV&C1o0D zCdUi)csa#h*Ug|qJW?+iT1rK&1G=I{m4<(y*tx}nwyH(8H)LbDPf(wrQCj%qO?}4*l^D~TSMUn`N*R-xWQCcd&yOTR7kbo z3rYo>qF9hf!BRctMxR<@liPLE-bV^_(%#z!D)+o0no2U=*ZMg_nHj>|p_#SPoM?+; zm7Z|58ZUWGjUm#lHczll@??A6-<)i=N4;aZzd7G6){D0RjV&-)uv5JgkeaJisjQyM zEwRK-Vb*xxgWj?&P=YHvLQWE{*oB@|DMNxF^Th}9#8%qd>N(pCwO5E-uPHRcB|^P! zl}S1p;1m6wFIKLXZNVN})hJPFsf}`^$&=zT`&FwFrkxUL2H0eaVw=1mRU07^|Q;s@{OZC;#Ao-_?t<-bG|vQwh$dO(Nvf+wL*jok)VMfX+{baY@{~Q zbrUI86X)pZ6T59TM23OJiZI5@=DNoKH#ybAiuG}~T9X{`rZrm2Fy44=WlE5V0zYc) z2EQs$YrB0mTCR^EYvj0Bsb<1diD+*M)#_@(Kv{tqQ9=F0?#d6iE7B5D)DhKTG za-AB&Rxchw(0i;a-0LH6+o`t!$h2Jx)l%Ge1g?LmPzM4(A3&f;-N4Sk48sr`g&rm- z5@Leg2={hfFHfcv6Q#I8kV<84_iJ7KvQ>c16=S6NYBhC<<>+L)UvQ>UKLqH%xM>#=6{3Zuy-&W0=z%Cq;xH71kT!GmA|KSb;m-W1a4L zI$44mcNwI!OpWcAFH*j}dg&+LFdxe>!YP)!SZlriq$5AobM^GN|L;~eZ+YJrZdP^3 zGYHd1oQw6=L5=UFO0vv8Pbom8WWg$h3wDw=l1$UZJ}sx z#AHo<<8<*TlcAd+xo#G%R-)ULSs_iRNELOgg;myCrbdzkSsv2L@iN7t%sx8>t8q}6 z#>RTbPLHe9*CLs+#5v%75n?^%K3DjgZ=B^+^IYs{yN#7(u>oF}C0;*2_=ol`@smoQ zX`-7c{_YjAB1};0T;GfKxK@T6?n93W(^iBm2VLf8=XuNLrfcsUr)wqDu^zU`YGY*D zZ-X<9R;}1R<=Pso17@3KiE~{mR)u0;yWUA+6^Jo7fLzyK9UbpkIqnoM3fls(M3hix zY3fChQp9;ul+J!K-yK@3MuPhkd)a$>8|X!~&Q@TiW|jz7W0N#_3YAL`DP5X)W90~u zE>lA(;w2j5WT9fr(Jr70)zC6$$Uu-%n_VE$zYGkhCvCG7U{kbeVC(3)5kiEH8a{9QnW#WcBZ;g7XzH7xelJyAOK4hnq#;~ zbo8-ZnmFEvHb`~6o%ZRikM~`#i$=QWZzm?0X{7Kv^=kFP%zY|E%MfOdO{%OgTNh8e z_=vTRP}f`U6Yc!{59***zEk5AAtF4XQiP{vI7d^Zz7#IOgPzpd5*eC`6KAhlCmNua zC+sxI2EAk%p!!(*{X*)MN-6Sq{0c((bbb4b+cOn?E~pm{j1skDD+>%WIy`T= zUmMqZ%UW~&AYHsHx7%yDj=pz-=5mw;x<0z7@rFw5bdI%dcbjI`s8u5mwc>TL*mjrO zg0b4FalG$cBGnb*eQ2-F9`&NdZuhpvGUeDW-dGi8YV1zW$TG-T-f@!$UFAKud&pkP zoaa7o`|hD`p9vVIlsL(w zrkO9+4v#6d)qYiiEH~PD@-4E&G~0xT)!T4Gq&riY2~M<9wMrR|*F?7Rx}YP{$%;Lv zL{odcV}lsEVx4b=Z*_L7aM3tNgeaj__}NBl?Np`$A;MG$79&is1O*Nv#4a_$6$`e= z`+k$JUL!`RYzt8%2(`A`ZiZMXY7sBPQ0X{ezOyxwWTR~c>t%}=*={!1EG7CV*3?$z z8f&Rsu>+#*7338K9#dtjb9`l^6+%TIS7Sr9_nf1&M}+>~(@8Q``_^5e1O55I`WU3t zT(b>UDovDDX8nP~=pa~5z$J_{+qN zYdr13)>y05TvwUxJMo4ca_vG(Wy{eyVAKBpS~Zq=-b8t7 zY;sk-XVBCwYW*PE0FAuld718Ure+AySdO($K!!A{bhA~wOj~VNrKxrDB#9JSN7U}( zWskbYLxD!@;r{7r@oo`egx+=fWrwk(Dt&0J@tWIgqAMKmoIA8u<}=40Laf^F0VgWf zDdz_^pzmb z$n&}_cH8VKrv#9+Y!6Eip->k=HaS---`7*$AMAOXY_MCYW**c;h<1+C$VWc#jZW@% zx_%NZu+|zAY*eDVP(RtGLX?xucEAZvwbL?NT%(l&^NsL@<0bpScH^zLzN*Q7H_CJ)-DQ~>HkvKlSRZR>v@yE)$rsjIAx>Lq zelgqvVTL(bW2J6#rs0k^(ov3ex{+EP!mZh&y|eX`REIfMsjY`UhG^qhaTfW&M`oMq zdq4R`YtPDagGE+ZV2y=_iZsNnzShv+EEg)q$J(0fTkV~tMyy#1EOwsF_S#{j9_H%m zEr0W!R%%qJlx>a4X3LkLsbbB1EJcKHVNMm~GbaZsQ$d0ht8tF4?icTP=Q`aZNjl1LlXi04qKy?oWeT=mg;dSt z>LpW_AcG|;(@?&>@?_g0%RY0ha=<9R7-FLu3#{;q1ScxBPA}aYlq|zWpNevppByFI zQ8pMP-FzpY(n!6m^NT!V6xt<1h3kDFIS}79G*f}@i1wq*z<{x6QG%swD#<%Ch1h18 zB$M<$A~ik1a$5})gb?AL)>l(gH3;-AuW@T#TwEzzj36OC)lP;WZ7sA>A0e8UVyn@9 zQDdvN+L~d7ql5{u&sseYD&IPTQ0WN`^pfHO)%s~;w{MM9YL<~^`NjDL1@z-8?e(>f z4fClRtxzP?9;T@eK6=IK}w#pQWNJH_gRILS}g+`uNp}$}g)i|*}jsM>cquQ4?IY)D=&2yp8GV`_6sdVP=kil4)!cppg z2X*s{hpf<26IYmJl~saW=7zezo9{DM3%15`TZ9VN#2PuMb&LiYxm=zfK)V3rm|!WE zS*%35qofJeSyNN37OY&c6U134RkVYeTJNA3rzjUE%rs%HHPtLB=DWarOEhwUsn)y2 zUP}eJ-)7UL+Gvoz-dEubq1PhywP&ZQlrow2W>S*sC0eh8>-l^ zHrwo1mpk3p3U$=ba^cz|NT^t`SSP3+5Ew4RtA-rXqq*5;iHEr8aIKBfU8wQSbE1ni zF+`&KjPf_ToT;55PSV>@-+IMawtC3>e$-R7DZtlEGu?geJ0A*h zzq^cbx|4MhC&?yLO}1QXebma5shhnTOY()GI@OafX(P;fM>$_x(Lz<)??bbUwp@lb zD(vvSJI#}%T%|L0u*NuTY%4mPysXbX{Fwv2uxe8Dp=# zisj=NcWEutC~FmHAkHe=r7E)D>3$NU$O+QL$yTV?$MQANK)&{tIAEq4NwzrE4()6+ zP_<;0!py~HKS)(VkyroTL?+Ug?hh>%Q> zC?6Uas8eLvYqMj8`^C{BrC6v&$2!3HNnORM@|{jH5v9try2%tT+xL#PQXj8N*HI_` zlB=%}l|C>?4AN}SL4;7B`oRfOh5A5W@#6hU4^5P4>TP?Ss#_qK%yF;Rtu)v^->cQv z8$!&s#5z|QYNtLL`P>>!jrs!$ZcF7p7h>ok&~~}^J>fi$7_O6sqRo`+I&p#o36|hn z#~JT)C9RTQO3=|*Q=MRiC>NNckwODin`d;r5V*_)xgzY;wcdICzg|@qXfNF` zXIbR3L(ajMZdNJHKChbXM5Bc2rkNm2mZPWdovaZ`%yf|k<{M;=jk<`oRhV7oIm=l- zH(e`);m3TQ$A2^j}weD z*9yIi)>^GC)WtYk%v2^(g%fwOYHav0A81T@>1;uaBHBO-suIbcEx5Y`RR(Ia|0`$r|e8 z6sPH-&~EEY7p@nYZz4h^?mfm-#&*ZyEiEQOs zILA(ZQzg$@L2kBOH+yW-O%t>1wabH=dc!KijFWGRTI-$XS`%#5*cLewMd@OPJ;n)= zY>5~#!dz##+pV|GQvDUnFibx&R@f!mc}AM!Xxr3Ew%oBkwacm2ORz^v-)ZAbD=qVb zUuC-%bL>*6llhMKqvci^AO&eQ`N$A4QY{u$4>~FlELaOgrWoviW)cHx1ixR671$Ag ze?qh|Nq3!1vrbB}Pw8Ot;=pah9nzNK<9rcC7y5P$pQcPBz%7heZ}6Ngp$GH z6s@V&qIJ{9s6QOC7NU(`{A%POI(B(JG0=^5K+1ZvomqG4YppWP2&ZY_4a4O*PK8w_ z7-EQ0Ev(hTDi_$Mvn$0*6{%}IhtbehTTmk03I7Lbcz;wG>8XKFRryk%Izgs?=Y)OS zWV{{*N)T(PP>F$Wn5CH}a*Py>5Z~*kr+c3G%vMm009U zm9|={F91G1QqtRNHA-y>|3k?|Vb%LwxQYzc^8( z@4Vo6qYk_EpB;3zFl_guQ$?f1`@()V7P9{13JVkghdWD}O{$!svq47H(GDv-Vwv0I z2s2BKaIuO4)7e5ryVzQbb(AdIDrxT5Op%{GY_s!R?j(ccT57uQ%+bI>x!OC{B)c>d zrP4tM~+cmPTml73YZZl~o#w7OA0HkN8Nn5xV%jBAl+RIX0Lr)EPDyYlB+(TIwQPm={EO%=o|ywcaZ-H58@2F@}n> z+%FPcu7N^HqGk9+L7fr%kISIgv)Gqu)tmV+3p63#^@-{u{uhWY_`3II@2_# z$oGRR5rRbO=4XAibBUZZJ*_~TBx}hO6}Idc4ru!EE#N6EDvs-Rkn`Id*9#NIP+UHdvakmHvUgQIIBP=nycrv1SR< zO-~a9Yp=`(!vk@9umn+(RrpT70QfRh8wEOw7bjD>L7M7dj&+8}RN*y4HL}7^MS?Xs#WP{z7$jB2ywvoR%`4j!$c!os4z{n z`a>I0t4gB%CQ3I*u-bq{iqyowx)Z*~LMPW7qcFn{&ePgP{Y5Htk*3;N={v2R>LVjf zGR$T}be5>O249FaQxDTw`oCNi?(?}g7r5pys&$lxk`&3*-g3tu;x1cg zAxfV>ZW-x&vHIE|(rU5NG_}t*J2iH`8D^-q-WJ0g6eCVY<=&NLo=GOytVq6Jg&JQk z2?+gMB@}a>YVb3Q}W~So@WT(pd}t&`YYG7J1cf zEA){f4jtWXkC}FQ*H~Y>+Ux*^ccS%vR)tVCniy@ej&_2B~TI>n!m3hczwz|z@rYk|VW(xf1b~{WpPix%_ z7AnauZy2sbD=)dvW6toCCvNUBq5^|8v&MEW$nuC#rA~H(Tnm)jrjLE*X`+YGqI_$Vh4#tUNR@C0 zRN1bFxmL(^ue0i+p2zgAE3qXxMnCPm=5_hTDRF`tA;x&Z=0mgu{>=$#;#r*qS>q*H z^2`+?M~PGQ@_;RpoFzh64PCENH~o}*&2F#z)>bLL7Vjb}B#H5|0#94-4&!wd;RVa> zm20ODJZFehp=tuJTbUV-@x9G1vc(TBSL!@7O%?W&vCMEWjSc6Qo+JRYM_Vy zo>p#_2ye@CnUF$_1pd*=OX=82-QoOz4GJ=cZv?$8n41ifA@`R0%v8Qy{rHj7(MNb(+3vK$Kb&(2su*jX?iP7Xl}Nn~A=Q2)%jJO& z{J4&BknIf#&iNB|^WikQ;NO+U=Nn>}_qEj87fJ-FR3lihQO*+Q7s1v#O-m^T>Mqna zO-NjDU%GzcZSRisx{UcpjacfI$Z67MWn5<24m5Sh6p*JHp(P zSluL8=_6CMw9WycYSgL`Wwi!galmot8uk- zks@U2tgn6&708xnxYnXX)Sb#uyS!u8=v8fxbo zc>!UN#@3tX7{PuUFHkB+w?FA=NURr~H*;GrI{8o|ZIG_e(P|`$u-ey-)m4PO`U&%mE<*joR{M<=g%p(@ zk|WLrmBu*7M)`uB@6P{0Bz(Hrj@L+qNn#vZXCZ<`2JWrI^WL@IR)yC1)ax4Qqp7~a zZ1aW#E*EC1XpMbmy^+$*G15WF!nCaSgenEs`&X*bhAPv_aYqm*`M+7qU1O6F8+|D@ zAYuOR8cMD+oaGq7{%)4(`X82MmfKiIcG>19W3{y3e0{8!qtZfg?$kiA2+>-I^pr5& zgd$D4*JK)~oj!&eYOV_7>e>4`hf!dfUCtBkF1ruYjr#W&dC+_MdiXF%BitU@Ua?7t zo%+@j>DuRUXV!IPzhQLXs{6dH@t@Q%{)#kL6R&IFUz%&|7m@PSqE@V1wNvap9WByN zI${oR004jhNklcWr#PQkrb1Jd`uS0m0_BJ? z+GZ_$uF@m+`P{|IEH+PslWeixF2l4pQHWbL@sq_)(#>20Ot-`Vxh6Wn0JCJsFxn#X z?RTzUbab6Uv#qhjRy(Y*UWT!b*33(SC)&l)?D-+KEysNFy^{s;Q$ia z+*#s9$g;#W(lJddPirAa13#FhrL!F)-6ruOwQ-^oH2hsG+1$_OyTC{trJ7}}k-{|9 z)3**NQe%f^;x!f}!&*7gMVa9wi*5F^q1xK2pY?_W9C$MkwmQKAN7<~K_iXZ`MF!cY zl}_HZ%K!<|1bNL64RkbFrUn7bK3dDVZ<+5)eg0z56(zl%F!rHqf?BN{5U!O-p;#|O zye$R_vQdy8f!}PPSc+iL_L*&znf4lmt^V#bv#i%mh?lj|O#?F>CCYqF%raAwLSv-~ zQ{)3bN-#*4vpr^v#hQ6x@+%MXL?_W4fFfQesesWX(DZn0xbS1HqSoptbuHUanCUT5zs z)Jw1+Eo6CH$AC6gkZ%_iFztXL|;R}hz z>aI<_@h2||a&_RtvMh8#U>o*%SO0)X`G5C7w@dM!Ec1+Ylo5(8)>09|)e6(j1j8K^ zX@pW=n5;x&F{rT467yxd!Ijc9)y%hMnCnYb5_M3jgCAw-tc3zqt~1iRs?E^erS{om zpjsDtMy&JwD#~i-+iIpNXDPPK5~CD~k*>Wh-cn+W4)RQLwx-&dZ@#9&%yWr!pQv!O z+w`{3(dL?GsO}o-Y>a)X-Dj=+MyNL57IVy%tetj-YKB}}tT)LIn!CbTItxdrcso2H zUyp!W{*N+kLoL;s;Ag=W*r3uL3+!>R$BeYg@s5`v%3S~Og-$LpPqrG-{^oim-gSn9 zx>=;i2fE4klaW}ayKPSNi3Cpuf{K}Txk(JNz3mud>K(mQ!4}(Po?pc3ti~jxk7xi> z4He^`K2m}xxsKPwPNyp|&K@^dqS^_L*Ic<(b~;9o{Z2JaN3FbSmz^5e?I({Js>a8D zG+&V~Efy|drSGPO3xu_EmD zxv@&T?Kn+svc(8-R%$9$Pg^|Y2{&o4qXUXe@tg)SG;zHPG!Uetla2cy;hko>3h|2@ zl*-rCz`7h`hi`phk~yw4PKs!y-WBX-F=|aV#k~eAv`|-r9V0^sz7gR}{iSLr<*-6~ z*byvM_z{2lf3rUDx=7Jt>@&)^L$b&>-0FKPRT=F74(OXTO0Y zpXB$Iy>DIjS|-Rmf75%a)oK}Ksx@9Z4`3|Q$D-wX^gMCEE-yOcHa7`UTngAb=uNk2 zRPxmlr(IO?h_@Txf8a6ie4uJ<|kv%GDM-Y>TG)SfHt$ z%DdHklO!9dv+uN)shu3_wUg?Qvj(Un+fQzlZ-X74lx~%91LXT!C)I4!!%}Ot7hsyj zj?1%IA3YrwY=DqWK7kHmGK|UcS=3lzk^trxH@@J?iKuRFU0|svuCBx?(I>D9vJ9 zq?@Bz>3%62-);1Pmn{>ivS#{NA=M!$y)pd7tl%nP~SDaQPZ13)wkASjl?Q1)c`BpVwWt-Y%t6j zeXVh&cumc5qgZ{d*HcG(ggB&@DZ1G1fV#G8<%m;KU2dSIy2=!$qK)o1UZgg{L|di3 zV9_d+Mz{rDvQnoKoxDXF`~t-OUs;tzmO!+FeW{m1pX#kxh9-&xXjNi91N|VsBpi%T zWU(RE>LA)4^IWc~AGB3dWj|^!!CW!w*z2!Gx=JO@McF4)q7m+NoeMQAF>wK+{_xrV z*ZSGP=b9|n8C$h3xv~P|9XDJT<=rkEDPEK4deJ!QJNM{hlamHWEG;z!nqa?9>I)L~ zKjsMj*qY^Kl|1iC-Q8%=FX}MCS{vmSS7_*6>#VRv2Tz!xr30!8mLsMlq$oB~dpZ88 zjs(NhGQ~s(-J-h-BzsqwaG8z^QqxOPoKPTKYs-D0hNc2ca>UhTCQgEt&L;f)#ZgVq zA*=h>q5a4y4F&z8W%_fZ^O-&Bsc5e{mX(rb&lXc=u5+^{r7=LVoO62n>~xR!^+2{< z@sy$-ic8Yyc_MW2GyD7w2W@ajb9a|qPbYE8*<2#Jv)7BxSS{EVs|*#PqwVgqT!?4= zRkQ$ugnPqeFUqwHdAizSk9?IaQmBTn4R&0ZNN;=GO}6XlJ5_b}sZ@V8TBP^1aKMv3 zvp|3+jdMVbCq3#lFJiG{{$h`@Ivc9FxrRu0Oro{E@rW_jYG$|(-RTi0O!2*wj(X5% zvOQ_Ict<=T(O(pJ*1h&9_Lf(z^t`r01PHQ6n))i}rLkl`>7cwkDfY_uy04T|T}#DQ zN>WiTO|&&rm<~eaYOk~E^6WN2D;vEnQ?@|2Sf_;sgobs(eMPAe97h_ucz3V$i z1PD`CJ3C!uo-WqgEKrf74vKQMP!#*CP#3z_lZ_MSm^iP? zbJQNYf3X+KcHp*oLnGa+R>wt_Yhk+;as=BeRz+=WQdu7xy`ZYWx@jv$u@K!IlrLCg zTV;4of#X(qL7^NENf#vCe3|m}MY2>~g$vQya_{M>zBWEE&tS@!j8K<(#=GtpCRnf| z=Q)qRo*CY%#vjn0Dbm!X4l9->UYv#qD(PQ9v?l(kRf&u0;2X(`qzjjAh^mS;vQuZx zRkKs()mb$Llczk;X4D3GXb zX%=x%k`9_%VwGe=&ylM7-(N+JyTf3$enXSJkrsj#Sm*B+h>~fGJ8cr+Ry9qK;_n_T z0S}z9-(cGmmC%u9S#6uk4MmJ6weo@!YN#zxkTd?FNCS05OLo8$(p{iX-Z}83k__Xp zx9!zfU+-w^l3!eGp--*wq#0_Qhm2r@=bhGBf&`8I=mL>Q_Mv-9vyBrzGrY9UxWYWw zp3~qwYN{($#uVS^gRf+$CEo{5Y9P(?0(8a->wIaS4G#N@n@ZEQcrjv45#u^LWGc4J z7H6C_#4&GK=Mwj5Y>O5u2o&K0QAV3#k>fI)b)5><>7lOiI(pv`pF6FB@~$yUKPgse zXS(ae*eKU=gH`jT4dUHxhSjds*B7Si;TrEtG0IZ8F4fIOKj`6z8TuO_%T#GH)o`PH z8{KHA{X$&mBB?@LC(dEpEm2FhWBO}hx0$MFD^CZ#&9c=TJDjlJB+vT9bUW>L#AdJf z&JUJ2DoZ_G720c{EA-Z1m`p=lp@ZgXm}tJbhB;!Y2_{)-x{WS&wY5?NI;6A5EKtqW zHcC-Jj3dgapsGNrLS18$0K26aX1k_}B};M7uMSbnUa;a$q22D*V9o|tg%Nw+r6fj`o6V66>DS)6D81n z%Gs-`!#bF!pLwp)(L%fQ6(Lq_ZGYu3ik+~{TCZs3aRK73GC>!C3e_@Kmga5y9Ea7=R6R-7I&82F8r!9gy*k+l{|-h_+Um>4e>OYbeUs)=99z z9zDcMG1q`!M3~jJGP-0Yce`X4{HO77j(@812MRs~W~(7ZoT@sUmr=HYF%nBy9U`og z>x3Sn)X`CR3EHWJKs!ZgAwi*MrF-=^9rFMC3f09G;!U?#WgSa0r2xB4ag1!$q8^1ty`i~N9eA9+`lr&Y07 zuEPq&8EBNl9un*pkbt zb(~PFvR$?+a$T7Wqr_qC_m)g`#QVv;C5_4dSWA835#_z(ijwV8wwUys1wxE+SO+zX z*I7kp{Y_QZmmdA4mbtMM9{9Zi_n%XJJ#K+ZmB$L34HaaxEFCTLj0A1XFwbC(W%$Ny zi^WP1?};*hBLE4GVw6H#gqG+m9MVu772TkphT5y{8z~w)ZjS}l%JZs+9h9t>R;H<^ zrX^~tYN*vxJf*e_!+qfbYjhT4v6}^|Y^DWnbJiT24A#RGr(LGK>GrrufDZ+0YJvv3 zXken9!Yr^tp$0ljanLF4-R8I{!gcqBV{Ueda1A|RxHv0pkRn+hm36kqTh?eG&k2j1 zk|D`tC&cS%kZ{Sys-&H|n(MBq$6aTLfre|Tt9q)bthW}HnrW%cn#poNWv$eb?yM-q zGJGo9yLM{o69;XRR>ClxXO$SOO|n9SR#H{5L|5Z%uuQm%?b1x4RSMnp3#OuUfr4>F zk_WVM+$)x7uOf=fa9pG(72B>*l1$B%L!qxdWUXR#b+AQ6i7JcJ%Tytn`awl4m6L3Z z0(HG&iGI>8c0i~{-RFKiRJ28yTt{4GweM{fs-u0rRIN<@d+s{yZlC!|z89oBD#T|N z36i9S1jpR$BPm+hp{Dg}DJR+E#+ziHmOjv31C{O2P_{&KeJa!4uC>Gc0(4fvOc#67 zNpCo zdZ$#=Udvxaw|Vx95^EFMl?Zi(S*w{2_Bv1kbP0AweKgWgxOpD8&x^mZCjY%FS~->M zvdvDNO3UR7)Y1hfd?C_KQ;ji6Q^Ee^?+!SlP+gndWP$-&DJR0t7*I*su*v-1L_#!pk(DGYp1O*bywd!-OO{lse;wE$PhnCceilU6uC}-_vN`% zknf#wo#WQ1E!PTtHL_ovy^?l#f)4%#b8iUF$oLblF&t7V1i(k)i3 zsX_LeAm0-2II75v{;ZbOPASsZwXV`uYrXW+UpK3KqJl()4k)t18+NOpoC?bO-gkEB zr;CfldDdoK-D0Rs0<`q9O-^a!dW%f7!YEBFRnKgBVl)yZ$uS8!m>|#!PfIk{BE^PS zXsc#!I0v^;WT9B)~gm~s;Oj57;TFrZO_VCOY3e(TY_!C7>&2>Tr+${X#achw>joie z*dbh=`BrMEox410r<)xT=d?^kw%G4-*}7SxnhtjAYn8{eaoRsjF-JWij%x9%c6_|; zR_iRvJdJ*V4?3TbDfcUPk?XVw#rDZ717)owRX366F9T)o{i-Pnh7S44LZct(l`}auW*Sj*W7ps_IX9V009Qd^%oOlDQBJW zj*1trw(?k`NCTU+_no;ebG?K9CePJ6X|A6PFN@Yrpg0{&bU;@@>Pxa&U%M=GX_Ej1GETa8py&N5B4lJ2k(0(~OIGfo*|hO5t05iO^Z174Bqkjh#( zuE0t2B&aV}tUTL&YoUX#@vwfDXzr|UoUq+xc9^F?3$NH^my#Db=OIrZXc?4!F`>lY|)LLX$;_b%h;vssF2}x2iY=zE)8sxt>+zB?%~UOrd5fTW7a$ciSyr zq^+i#W|o~o40E?RHi)xQKeq@o%P`U2bIJ&2eIy)3r8A!i6r8E=470tQKmt z{#F_*#9w9mR)0NB5wC^CesX~joGDQ`&-SV{s<>Z&6$P55nu<0Wsj-Ptgc>5rn=(w- zRXx+KmTrixZW6AtG)wIf@3=|U+9bmJPH19@HL6OGr-chR!gw?;!5Y0%So1fUaG%v zO-+$%pc>L`(o%q66I4@6W&28K=0jwus@OhXcwS9U>nlj1v;X7KdbHi<%P>e41(x~7 zWFb!Z+%ujt%n;o)5N4WuFQ_h9u8(DS*=-E{QuWf-MnxJL<%rF;XsfaynVQL#Y>=^XJTFdX%}laDLzRST zFUFVhv=t;?7hlWJR=6tO&_I@Dt}a92UJ9$7?1*U3o}=GNmS^Pnvk*@^bkmAW9xk8J2Oo(PP~dD9F=5;j$YD1b!`pNLM>ff?*;>0q@{Ici_ybY$#w{Fkz(6j zW`q#cY?Eh^+OAW@bi4Gm5!H>*Q+3~}kENclO*eC0Do&^a%9*N0DRTek2sc!K0{b-* zX@T`#P#JrC;wd}z(aKqKBoBGs+QvldYzys%d~wc`^n1#QQ3G zTOUuz(A*0BJbBQFaY_!{zmN_iUCM|^PC)sTKR4$2ir%EoFX(B`=!HDp&7OG)~ zwf~0hTc~u)brxxt?{qD7M2X_gqjC3hCRoX*`bbn@tX{$eO4UduVOpyo2%!?}@|ss{ za;v+v5iQ>sZ)>f*pQ+6RL3PClQS78bF)Em3r!zJ?^PZ)(Mwc>6Dggs^Pf(dP{PFOnF3w06Ak{A2 zWy^8B_L{0^wW>C$Vww|D+#}F#DXws>&fc;|gvoa6;h+RJO0(Z-k634(mG02O0()#U z*EK4e?ywtFF;P>`_*}XWy#@K&#d>>RIU}65)l8#gSgNt`%B%$qGv~wNzC*CF-cE$#Pv{mcFW~V2y^h zO4i&8?d;IXY}GWjOF2=NiZSF@QCYCYq7<3t0S?GuzjykOhl2ufs zj;kz^teSK$8D@naMeD1gw*(oiNK0v6bx5vqA{}&G6E}NUR{@f3)JLk(>S`#`YTfKG zQY}9^=n`?pS!BL_RtXd?LbkpB?r-9CcCGqqm}Ii$x;yD(wVblw)7IE#mq_(>7H^Yg zY8h#wJt{kp38 zxnOg(P*H%o;)VE`9hq#qjrN!&F7}dW->Rdc13ofIfAvu4Z{o@@JN@?<&*$vWOS(z2 z_0>qE;fAP=@dlNFX=i!g1^NrXOou#Dq5^urC+2A(R)PStEte|*IhKgC*#<-ZZP4%k z%-UtP`huPCigXw0;bJFz=|Lm>O@S}vq?3fp0!VbVl8wLEJ~P0_SkBN>&vhSmN<+6CruRQ>T?{%TpxN`XQ>`i-qXJ# z0!#OZQ~FAGyEQTl79iMCwa#IX&oI`dr7!NV*EDeJZ<31r%T=}3NPr}1dI*rBwRjaJ z+v--gi~gOX5h&a#Z|UetZ`iDxHul*iSub^DDJMWp`}8%;G*hgV?IK&u)Xoz|tK$M| zJu2IFEj((4I;!bqfpbUP`&7`_bTKa1%UXM- zX|1Z|{$ji$uejb|!?YA^qz816!aP^2Bfw5aY`5M($9*l+NDG8$DA)nZr8(`Q^XQNTpg>K{1zGD; z&1BoIp0nDku7ZU+sv}dVm5M#3ttnOrknKTH0yNjuED2)dc~LDR%+}nS#;fjXkGRi9#=YPlV;8uVzXqcY;&PgI?HubhEr;&XpbS5h_O{g@vbn_ zLMH9y>7i&O-!-eeu*wMSB4x(GR0|RseD6(s$`EnzbNGfi80#+%1O4~MgK-Q$`Rc??iM_wuYNX* z5Mhm*RY9PccIfs0T;e%pg1nO1^*}jh>8648w(4M@ilPNzr}-`~#rG8YT-6fpsMA7R zSh7PGx<^zAfq1YEx=OH9g26(Z5~9Bm8vUOYrHaofGk)tOgH?3Y$F6pl(PE6XO=V$T zwAcv=qFiRVwKkchy0tzvT7A7$v)KX7r9 zL3^w0Fse*@p>%LB)+(nTY8hSE(q)yMApMd9mwZLI1g`e)Tu7oep&%83?kfLs0mN91bn>*XG^>=q=^eo=PY zAXcWc7FnavI~H26K$b|s=F3slb=LUOy#kDLT%w_pU2Kz?0^DVmA@arP>Qn1LvM>6bl51HY;(W;iY-*f1)lY-K`!u(v346M!7Hk` zRIpGTB-v=8V;bn;j0qYz?R80xTWhWAh&Rp(!HTU?RXZJ36sm%zs>;?xfMAVub-)Ma zIVIU1MZbDO1R>1(o|?A63&g4I(=lAZSHq=|e%{-M7p z9o4f{j`mK;&``b;S{P=sqnejeF8|WN1u3#XRY&A&Cd_h;)D!6kXI$a5KdWPzCT@08 zrfqV?c~pke;^lf$HH#dU;0jx9&_p{Axn469ZP#C-O{PjW-#bp|A<=hsxLJAAT&kK- z%dGL1ToG2eM26$CrAxOlZdjmGMmub#Q~xJVnr%~VCOL;C1qivhN{P^x9hDX*io z5*?5)Lo=r>(!gXBTrSF0uChbCMV8xUgNatzZ?F9}+hvvgI@w~klXf{G%xUXwb;t@E ztu#$VPg`w)23iVK!xr^_kpt8aE=qaJ9X0gdGHh{rDJMovKZ)J!H4tKvSnciA%0jPd=lYU*z#fwg|D7!6kF9xbHeDsn z1fZS+j_EAbGz| z^PYFaI_P=|&b!~UMQMzdFkRZ=!uE0W{N)jW`Qd?Y82K89RVQjO;wWXz^ zy`I*~l>$ujya!!&p5s4Rt~*UJT$WGWq7sVzB)H5J_X1-)R9d1s1Xo&4P@7rV%ERg8DLS|-?QkQjm1+NQ4=zL994dBzx~mKkd5=STB3k>g&|q^fS3 z7&SE1!>5|)YN{+Z3ozdXGaRwoOrdUd$_`KKpqfP{YwB_*y=;lo&WdwZu(nqE)^Qsw z*V8@j)4@VJR1+>hMRjF4Bu1b}lY|@Wloe7G$}~tHM;+ALwVLUmsi|^Ys=V@gc-}$> zED$bMV_m&#kByewrlSa;nl`ewKwM>EQ)Y8O3Go4k>Aahk#Un70gc2KTPa{a?0gR~LqUDvq8Q6Fk4&kSqS zm+TVH`9gtg>y@|Aer?tKqvZGoklNK&k-aYiUM zM5<=$TOvVcyVNt!RqA<5geKyx)6xN5oiI?g&GyLkC+%ej)!3UhOLN>Q5gJ*gwFa&e zZI1}aHaI3je@{vAm}pxa(n393^wU$8VXB&8tzIgLmEd%l^1#pebQ2qWZL>}~;Hb3U zH27IIs9eVUg_1nrqN640^Gh!h|BnG6PDGa)q`V>wWJ?66>TWzgQYGAQFQuPvOj%XuFvaD>|j3|ZO z7uu!176PQX)oItOrJP`&D>6z28|A4}@?-*4@Ugk_v=m)t0->M`z0Uv6I_yPV%e?PA zleN)7j`eDJ)ulG-WS^}zY3%P>=x2@xG&WR{Ol|bBN_o?KZMBmkRj^d5pB!<8Q`Sq? zS99xxtFD%AR@thjSUrXK%mgd!m+6{P`Q$PVgBiBCp~RG@d01oj36bJSwLN_v8I$GS z^^{|_yUs?7T`#I+v?RWCK6IA{4KE|WG|B7wxb?qPc%;~2#m3)u71Ybqp{tJ1=}T0Q&V(xgSX5Siz$wKTBvv2C_%JFIw`V3x(2S5 z>RUVYvD`uzx>zUkjdxs-P0}SwH&{QBdg^blAs#S93tNP$tAXPtC{$UfK*bKr66cVo zRri?AE;LAIT{PE5f2aK2K@C-O)N&WvD?tnC-jn8-2VEsbj0Ar**BTi@Ju6j_UKTrG zgbj`>P@tZ>^SIKr;b+^>_V$_o0T?ZwpZnj)KTrAOk3yqYkt_==JG|5Gl z$rdC_rk>_2?)>;1yL9Q)!swmC`4b=3QG;#jsv^&)h=qg)1W}ABqvsF7m*1KK>#je-XFjIwk zU5W_B%9$rhAH*qtp0iWlR`Xn=7FIibPC@wG5x(gfm#N1GO0`)_XDl_yT%GN6!hm0? zk}Q>^xj+HJwGixp`9AQbt!lf@!$xT%uH?7!oi)*`zH-1JAFJu*GP7GdZT(FJy+5)( z_k{uClrzn7Ep*0Cn_QrtV&BMhS*fLJSQ7jeIP9NZ(nxCo4%y=wos|=6kpo`TO*Jjm zFLT#%_Lye2rAUG6w6#mPMEkW=$ru;fW0xz8mm}IS$6RBkE*3fC9*2FWhCr!q zbwGmC8d#ybTtj^)&As-Rqp4A*Tce7W7Ay9wAak{JncZeMshcJaXkwRLs=C4;1s0ht z*J{)KXpS9HEVNEd30`&FbhY%d+&YbwbG??T3ih>3%`{Zodh~fzha7a!U~h}C-7;nVf zGXd&Ilc}aawY?)zALV?cg;N4mw@i*cdRXlS9ko%Qk{GjelxUU>x(GE#sFy9X*G?gh z7$ea=!iD?FdPCH--8!M_nq-@S4hvVqL{%(v)}7Lwward1*lHe9qzDnIuQZYJ1lVt$ zlSV0!;07Pal;$Fd=4&X*a}G;(o5L#VWq~^-`(6)mmU_@w0UC&qDoKo860|f+U**rE z&hRtLqn*{FwZUGozX>P_*F@Ag?jYEAIw~|)SG%<{U7hoQ)e~f?Ay~L3PMYWuUyCxz z11{2BB|)-Jc{1>QH!7)?AWLbe}`C>hv1WP(f7;#ZkNunvN4v|DG@&9cH0 zZwNB{f2H|dY`ruUd|`@8E)|Sbrt2h3j&fSd@R1X4)WH-NyHk`&&YGv24t675mAD?swsNZfm}2o|Y=f)%Zl85;t(xSWR?Bkq@o#Mi~I@Bp>QiMr8He zuERn-1UTap75*U4e4*o(dBt%xkFwA*%}S=KkIQz_9adSPrmBvbFU&Ps z881|j(+q7()~6% zZRGDBun0|6bjT~V>7}MhLM@OhST~_!oi#zS(^jeO1?BxryWL8tDrS1uAmvn$Y@eal zSfyB+OntwMXopza%cIj%I9=cnsr7G4qsfotsXy8^e3^dm^Lj)?2BUoe2wG^e$I%!sDWv(F_ zdDTwGoG`*xeT18*pYK)I)@b#_dr!Xo#%b&c(~Z_wRXJ`nPSEdk{(|kc#1I9hYWq9H z7GWjs;$Kr6QI;yFx^L8QT3tUGbRKfi2z3Q3a@-G|^O4$~@PJCj8n0Mo;m(wC0il}f zpsDuy>i&y<;|`yjExQbm_m_>`^S6Cx`$lIWs+gm#YCKj@D>78JzVZuZSR$GKRZgr(#^W3e1bdwD<*Z|ZrSB|PiIAVtd#@nj79fs*G z)BAS&S_5xtVY(Y_^;cn@a#|fp=36FPT`jz1uX;L}W44YiE)!$~{>P?>7b;Ai4@`Es z##rSA*Sq;VH+8~CF4n*oYAENJW2H0;IkHMdf0p{fEoCswnSK=Q&NB6|va4;0LR+>; z4wq&zr+!zLFV9;dHC0QdN^*bo^Q*k7j~vt8FUyV6l$Mj=j1aK=f+0-f}PBnhst*Y;n$t@K|Q zxd=s8+v-rs8}F>LJU1C-m_6=QUy5;prI;ii-R+SDE)-!l0$gjCHL4intTA#d@UpgM zJLC$ry(iH~p*AZp$1ZoO?I&;9>@kO2;cfAvJZ_Bc+Im@Qr!{hwjxq#_af<}y{AiYg z^5ib)DMXM&Yb9zS zLxBxi{SH0gOvBx7ub2HpgjrJbbiV;A2v*^|MnCYJY^DfDofWEzx6E@EX+HB$8S;PS zCNdP_w9lPDzKIT^f*SG=shU7197d!|#UMmz=@dz^EGP8zXZN^THP;z}Wj5=k$Px3s z;Hb7JcE;KBW@ERy#X4i15iL-*xgPhpz5feS7Fmj%74BLWm3*&~GxAVRCxmKcz4fw$ zDQ~lMF?y=#Rv$YcQGjq4dtVzT^-|Z54%=^mRHtkg=Sj8PC&^+j3Gfg7-Kd+Yp3=aB z?w4(%dtK*cHPu(?oUFDq!w4|l0XNFD$^F_3aNHwmdhR@!q+;*N@~9)Gx>*HtB)h2u zD0|2cu29VeuNdL#G9Na<=N@t0Z}cxBO6!9abtq{yt?`();uV!7q-4nwp~zeX;)U2M z&j?k;=_|2JgX&-7O_f!((^>V67oe~23=(FQKdEo6GY;A3h@LJnS1ThlGr2?#>7ab~ z$PjO+cl1=?2bYTXxfo4E+U%HiR=7!|ckR+koG)!~nYw-wq@Q^Pd(3{PC1@+fA@^u# zsaSvc$9@fA?ojhrdDZ=%YftG@uve+)Y#UVjoTdZ+KNr_;#2zS{c&43cR z>+%XLkSSV4tuz%P)dw~@Wxsw3e4&C0PMBz~JmEr}vCDLoTx7Iq2KioqUOqO@S^M=i zL`R?5ql-IjHq=jw4R^vC7g*^oQzQv?&_%|ZCCV_%)UsbQvn>&w|0r+-It)sj_^_U8|}cmTGOCE5&Fj z#S&K;Bgt(74AjDWTP1p5meYzHQse?V&GocD$u(Q3dKyVKN;BP^ahXHn4K+f7(RPS4 zU$l#?^e0EGu%o1X*j7_NsA_?mRrif;da5H+o;XJ(O7W0XbL zC0~S%Zjr9P1gW0a#4UEo)% z*Ag-I3vkhI5RDX?;VGL8^r~Uj$kbaKbyWJpWZ=cV^SLaWowm|!>s6QUX|LOAy%e2F zuR6y`r@g3|IEOr|t3-i*&_x{umg}ODKzsZk!Hvoz!WkKYjn&BIf)F55Q*}fNP$XDG zZ1a?SwH&wF*HXk;Xp^00%T`B_!e5laBXqFYPC*iFGv1HRct(3c&dC06AVJ?FS>i9= zRlY#QCaYw)x;mE*AH+$}Mv%Y~PJ$0?)!tc)U80@>Qx$t(6IW{@Rh(OWqpDPA-Q`A^ z5`>s(x0N<&?QY-rRD@xQ^m4gRykNEmJz~8@E>T@|8=Mwkic~H2JDXfQ^pElXW(miju8_Fb}$sW+yEB`5^E<~eJ!#`S* z8${V^bcu%4hrZQcjt5oK4CR&6NkjET{K{SY979L@hia}g&$r4s;<$UQ*F~gBg8fCB zRkC#yt&1Pj($MRA$Wl+Bm1_ImB`TX@kePORz&2Ag(cft;Ewf4$H%ar2{VsM)qUmnX z#^=(V)=C4^R^A?!om9mpkajTg%V1(UU{8l`O+Dco%EA`SfoIN!|ZgI zW5!x9))pPgsD*`}N1-f4R}CE3STh9KZMGdYTB@nXZ4pScNMvR(DZS?RA00Qtfbq_UAQ&MW(ycVb6F<3qk5=E%x6sn8&3#BU2MQ zrN~j&Gmd)FYB{>wXS+*F&+lgcRM$WCQcbS!wADbqu^MZoSd4~3QA>>edX-#7vgP7@ z?$Q$Os(>=xy4hyRH^DoyjM7MTH63FL|ctT2slTE^!zLoawV(nAu(q7%nl=6uE1tt9@fqR%{6q`VEHC%uAA?jGS7N#WV+5Fr&Sj$N_!pc zv(7PDYM+B^3oaW){9G~o`CCg&^!hKv0sjS!9jm8ic3bEToOIajWqx|v3Y%PNWSKvn z?gc0P?GH>)lr4KLb)y8VFxMR=t?{i26suH%1Zk)tLVpKp8{l$v#b~Ch1CFRI#_i_1 zMIW1eY@*saS|ZdQ!@S~B&HY({9$xjDNz%RP4TsIr*B(E5z-HfQE=~(gP4k)Vp0ZP* zR~+%6ZJzV6*WDq-Z8jRO&__P;r4J3TQj(#nIWFIBt&CNuv*R)~aJ_Mc`M}+tQqHxi zSY?B0vV1DoeQFC3>t=I|kz$>@rTftn`dI8Ut4rwNgSC_8ezDT*Gu*{C=_1beK2;#g zeC@nvmLCLZBi8MTjFX_VV%yAc!tJsx(9Fv|SL|D9$dn_@3eB7nY^qd|Dmo@aC!vx= z7_6Dkr8pv8j4*MY^R~A&Dg{jZtF@S6g5D)%%K!liOx40(u_`E1EW`*qtg*ve0@YRD zNa3b>^om5iakBt_cD+IF@Ua93bu-8;TLgPrU41;NucoG0BElK*dT8eXTQ%0e zAdTEC!98LXsq1Bl^6k>WR4W~~L7I_Tdecp|sOm`%3X|oqii%OegHAf4t^hl=)W}|K zF<2jyL>MnnoO0q6dR>?kwp-+^+w3ySRpz@wswV21AVj(h#rBJpZ-GH(ixuHMU%Aal zfgW+OV#`f;!*A~N>OS+| z(+X+lu~&P%EJvPZs%TnLa9gITPQNnrMe^lJlP||UTjXe}t>F#w{w!$)X zg5dv1Qga2BzJR@6Q0F{UARP3GXg6Ys8fs#_%4GnQCmisG$Io#WIsWb^50nvO`6KIq z`bMC@V&zLVX%)o^#CZA-%bXmvN}ecNT&j^#63x=bTQ zb=I5XY42KRxxabV69QailSLl&w7_xA8+=HGLZLbh- z=wq7o${T8zI~2+nEYDh_yljR95z=+D+*r36WtKnL-Eq9$;q+4N|A3g0M zA%d*4%t7tE;jGqLdldm%S?Uu#3>2t?LDrb8ymFe_sg2W8oH4=_X{rm+#4xYv;1M@@ z-7CMKvzX|0ov=bxHIX1jj{6LBj}%mLyMJ0COsrE9v{J=5%ar$_J6$Bl=fX5m-d!qr z(GGX0Z?kHGg=*|e_sO+hKZ%BTzyo%P@tU*ty2aZj>M!2{@8M+w6xgB2YOz`yCfGpD ztu{du2aUGdAoVTO-^dG5ro)dbiqgbeY@|{&nZF8NG}qGPdHk=dq6nm+TE`w#u_!kTAsp z6w8w&&?!;+36-I_V`@0%NvV2U<%ses$}ryvv50iruNu^4u}x{pTc_w3u-6Pzd@R$a zS}1n5Bs(jRsHb2Q$#L94r|g&JsI#&iQ&GILTB)l}iFofNhP%XgQ*A8icNA&sVsUE9 zw%I1b|A6MlzkmjZ9MM*w8bW^Y43A5<#wpd#Q`bo>4YpSrCrESGmQI=M)WTXFHS(jL zV!dI7sxG$B-QKXV1QB&wnjmNV#nldK=K?47^iTWz*=of)$}-*rg`Tp_L=oy~Z?ekg zgyW@F{j78`B}e;|7cBAKdGvzQJ*u)liE_p?eT2v}Nw?DBl2g9X&P^o{+kbiPPrap| zYyQoN$)=tYgA9jDWyq`Qt(?Gf#Fu`51)1wLt!&amPi_5B60bh#tZq^?R4mPVPUvTy zrY}w4jaI2Rrc7vHJ8m^q9<|%Zm6m`AmK`T^umFX^Xqbx6a%ypJX zQ>cr0KRWKTY-3dtqn&wv@T_d>J?fY-V$^lmApg`?TMcaRj@=&9!B9hS%Evx1*E8A( z)Y3nU_NiR0ysoDt@2h5|si@KX`+cXE^*Y4 zs;R1)Sd&%vp|&1#m*uvh*eW;ZVuPW|DHNf(e5>7{t+nE1c~KSJ6#H6`7-vK(lA^yZ zJ{IHYGUdWTNrtQItj~;8(`I|biy2=i zrv+%>DM>!nPi1?>qpSDqGt^d>s_mdYMmZ+R3~l_~d@oq(xTO{w;lUE>@OtL?UVCeN zYn3Mc>1vI9=Lx;s;h*ktMz-3jXs?ZAUl`_$Tov7GsVz7zOtx&RELPW1g%VxwU0WSg z#Wl9M(KwenEL5?Rw#byLg6hh-+#0D;h09c|NU#Wx2(eeNudT2}fU#mEYA4lnqkd<% z*Y=@Pe{fo$r*ygEbh6)0ul(lJ%nz0!L3d3{Bh7%{%_;I6kYt<{BIP@&eqdp%#` zYJy8GLJR4(T4RNM&WKP;bukju6e~(4@dAF)qX^Pc3%B^2agK=+Z=6}qs;H_8YX44I zs!*C};aKmq-WYG9@5QO~D|GcEh9>@ELj;$}Y|bb)Os2D9)i=eDlJ%77 za{IjJG=37LmJCJi5oMVuBk-dDy979@yIoEyknN0Ix2k2UTyyMHAV~RhuCug<5oD(0 zu2&A9dBa5>`bA_2(;e8g;zYUqo9gG=*YzAUW7 z?#F}G?SglKsRIz#niEzMo zE>p?(_KDHMI#=1~Lj~f+YpIpW=BOpwUNyb#q;>{dsl9N?wm7K13Le(oNM}T!=srtrv0AQ+&C$hfBQ4TiiZzbd z;(CYFwB0t>StM1gxmsK3l!tw5nWqFht+~_gFwq$4(j0Wukl!hTRJ6nyZLD|tH_(Xx zu_7H(q=`o6*yOg~fI#PYM~cq+d7?~V;+OUQVgd4;aL82O_{y8Uut}yoVOo3K?e1}d zZtAO~g?93!JF7sxJmuwR;iR{}iD_ z{eR%7tmdWCT&Kdn{oB(;_*N~C_}U7GJRnf2fxgq+F#|j-!+3vn&^Sdxyx~>bgjl4n zZr;>GS08x8cwM#jPp`Yd%f@*}XF0Z5D%$PReQb}RhPlsnkGn`Mf40V#o_4Fdyy!l6 z`%nj$DsO_n+39=ltF4x6J!q;MRPmwpa`ZOJJoAKj$h(%iRtF)1wDF!VeB+S&)IbfD zOcSD;_e6W%B3G;DtS~tasa29l=G&x3Nd_41E>ElG8-MnRD4p!|p^h$ajVY#^El)#t zNYT**xn8lzW4^Ooks?K6b(CbIx^mIQOQQ7`p^pw;RH%w8yyAp(X&Tt2NC*9l@w}=o zD~;6}meiIjtEIp(7iwv%iW(R#SE!x-;cr6RYML`*jnv)@xvI-h$p;>m<{=yX#hv!a z^1d5XQRJjVXGHjul^SYjwgDb7LV_)d#XF`zo_?07{l8yF=j#{`< zj9I>S!0WDbvnpP7!dxkO3R5836JkB;C(*`BGT0FBNzmOob;XJkCSR69@$PoS1fR=Q z?4Yyq1UR9A3oQ1Oy;?hEqZ+EpcEnPbO4m=g07ZU~u7hi(xkrI5HX7{(lO^f&o4dV& z8$7F%^&p{{RK+g4gxfFKX-DJ> z5}~GMs_CM>y62Dpxj;t0nXEU?-(6{=3BHr&tP={nEl3M_su<}TISxq`<$!C{J5Sj9 z>ng&<-jeR(a{{EQNYSH2?frn|)|w|?j6j#^u94lIa#*gOzqtF83V);I9j3Jw8u&y7 zkIxA@^8!?nyRLoOiwD%%vr@M_`9lJx84^rbyY{9Xdg%~Va#~h zYK8K=Bu}31>e?<#(fOL*S&oSis?fW_z4a@-iahUG?fw$ykY%O|gi5#Fu#$qqMz5(; zhITLjDIT)JtEG72|H=yf0|NHHy#~41T2o{Q7UphaM5v~TOMGmaKkMZydwlL$nWh@3 zs`uPtoEZOfy{*Q$z~BAo3fo-m2~YXNa^tLbxkYZZ&ZqjjU7lBc>`Bek^SLkGd(AVR_o0_Ga!3nlURK>LYWbNiezsO64YPW>dOm&m-3pr!DK%=tbzgsqC}`6%05M+ z9hGOJvj&;&X?dpNV%= zWtDXIxD4rbIIe;qdGh^JPi=K`Tp!=KUYIGaP-ve*L%m?9WbgY#kt!yu>j_sX5@x+L zi5?a#*#M2*sI?|qm}ik!4AMw1xB3FLoN(GO9~t9wYwZ)Ll0>1NaGhw!tWZ&md|CoR0A;U8#B7dRqYJ*U+9oxVqi@-ooQ5uchT-2qtw6eujI%7-WrC`_d4+6mE6 z1BvRYEL65^`;`|g-x1XWY3WsyT&t_LuCvNabLA;kWSaoP6x%J|Srs%;-+bF#@t@+c zvIW|xvKCTQJjcOw7c9+E3oWo$m@LL~kg<{M%%WHOc*<;#^k@~y&#d5)3R$skR zey&2Zd}pXaT{N)4Tgn?J$VzjuMUIuOa?rK@qMSfmjg{qF9n^A(k6dGmXrT)1mR5oe zTWh9Vcl*fNUp)WPlGGs|so{DH&G&p67I~#@@UJ~wO6oD&x9*nUE$cj@9FDuoCeNKi zzntSa<2~l?|1*7Difp$;V|6t1q!B6`jXwCyaphd$r0%k1i*`t$yKT2tuwv~kGs3sJ zNi{|X4b4(yo2Dw7=BR7US4Sh?SfQz*s+*vxx^}zE1|O>^(PTr_vdu_aosjAd11+)G zB1ujvG{QBu8YA5?Z6#`IjRKQ}Dss$V5suqoooN)&XN&;08Yrl*Vk())P*>0prUrQD))h;tlu*lvmYG*E-~Y4I;HrL34!$Xl{XZj;SeLC2I`Q$wwMG zE=Fw&T`9>FN!sb`fB>hwEL*T%rm3c@Nv@V@jJ?h{?n-Ob5NNFrZL-!Wi|nyTw8zZW z-L+PD+LhL+=rM~-ce9&q)<8Ks-J_M+Dp>7^HsWn_l^}-n&rP6r+o)wN+VbU3JjK1%|uT zO>T9YYmC%SD?zG>M7rnAFkFZL$$~_SvPzb2rU?+IpNkx`2F05AQU@^_JEXE_C3sAv zQGcKW9cI73s^>-pBG0ik$4vK(H*IyHC){DE0u!wjro1p=>g%MhaPw>st8$5H{Le@R z15|N=Ad7@(tBV}dtrD#!mU_pC(sJNdS&`lN4?~%LHddlAk4Ss+hes{(P~Ro%O2PG!D73ulp)Yc8x^}jKU+oH zq^D5b<>@V16FG8hv|Eg1OXce3!ZOdJ)M2FgN>x|LapAArMWH0QF43su7f*ZHAQwyb zlD>w3@4c(1C(2Yp^L^lLmw5hve3<_C)?r`SqDYj%>MM4@CWACpY>I|bY%0-J_))4q z$+OlizEw>_U8UHfpB)OEk*A$%GDHioPK2ILC~uydY?f`N2AcT7PB)wAgcrs5z(yy; z7+|H|y7|d|J6)!$)tZP_Fm+vket+L87h4MwKX1EJ1 zGEIsLd?3&}j_NJRT;<$gxxMzOAjbf~J`!$#@tVj`L$b>1TA+^3c50)xhUQyslN76U z_GbYWSfsMrrHG544`qN*fvBK@aIx|QS)rlY{;8pdtr4lNO|I2aJ=+X)(i%k$sAq)b zR@kJernYJ6J41D~%shP@aY}E2rr2(ms;c`@O~WO)#l?1r^r!(^+bG#4n}pb`soAwn2kDEVz^B*6+5Gi6aM0uEW1?F%@{2-vC*F-nkdErnYx*!hH%SW zXNhFT9PqjUcDP@TeXg|J1_SN2(hc^St*0PaZZXCT-BdQkBRV*tz0pn?F2r&}9JfgC z-wDCuv=Sk{)IFc_7p+x5q0K4?cG5l-@sm@A{U>;*K>PFW_J;$fY{ls=atDdu~`7mkTF&~t*tsI8f5=6lH!hi#Uvs%Xvi zlx?&EHUF?4V4$YXNU~o$8D`m_y6ysP5aAMelKtc-b3Lw+BB$hAsGCHDmsCtbG`7;m zYAZ5Sksmbsh1$ul2MwNgKuxjdbW9@jc7?hneWeJ|K2u4Q7AktoY8ldO5uueGdT1+C zni!RAbU>02nI5xBXX{-n$U{P%lrBJq-7Zr_xpO$-N*%^wUkY-$dcW!u6d3Ox253SmI$@=IEw<6+_(qD660}s!hgvz|umkdK zcgCHLSgM|7_BiRFJ4*iDpqp+o{Yjw%4*SV){WQ143`cd>*mAuMwApTJY|}@8T-^n` z)k7{ez)07*#Z9i%UXo*~2^XoFC;^&D^PvhF3Q&#VGoDelcAlC=BXkwWZvYA72&peNQlq$wM|3AEZ0|gHAD$FUl$9d7$VXV+w8L47N@+evDL0K)?!a+TcW%c zVuW>GGFxR$#41Otagd5 z7VD&@DY|IjJ(bQY8(LIyLKCFfSy~M^><2@|p;(Ga!kqECx++^H#ijqLiEJoQSNC|p zFtwBuq*##ceOV|M^TPTvtK*q5onXPf*iC?8@p9fNugll z&DO~v`MRsFmSC)r=njLViTK^?%e2@xUNTM>PnHC$MUL9wEid|7H&43DExMTN7GsUK z-Zpuvi?_v8@wy5^n8sRKBlUM?>3==^*hP{pGKA~oTI1BvzzWN3@vZ67O?J17r2E86 z61C9yoJ=lPrW0mqp`Lak98mpth*^H_$9^c#VTsz6G2wfRkzNwapRq~C|$sqDQ!JTLJ-wE~2ztEVPr z8Eu<;Mf^S?|n_R@~M@2YvU6GtgugWoy^kBGI{Q{&Jy=3 zG)q;9)_F#@shUdE){lmWHb%Z;cWLiy$@Z(|N&(uLY@NDx3vr9%rrV~4<{GGExjokE zD8K~$)spKz3ypV$d?OTl&oPa)S5vWYm4t}Z+EFtdRZVyaaX_}u&6KKME z@Na=P)$qAohh3S-;+9o{y}R?F0LtJ)4L?@E(YwL)WwRv2!B zhBDMJ+i{nwYqZmjOOWccN)EVB2Q%cj#5xDuVz0W!ny#2&_Mp~hzMowt&eW}W8XOrQ=t(B&xjasX3h7Q{L zPAwe-8(_Rin(AtzPP!RwvkR=!L}RP0H29n@MKOwvQ>3zD0oF*?ujIrYHMPWH9WbGV8Lnoz+vR69+ z%1KgPtaPgkwNSi#2L<|zgN|Bim=-0B)4?j1FwHL3@psB)Cq3yCTdh{$5nWIq$-7?m ziS=q4;tD|)*lD_%s_Lhak*+YzWk$F}TjOMFS<+jJ(^}1ci;p%;uxY5}A?^HxbtY=6 zo{p|p-w{J>_jfZ5H&nB8?&Oe_s!BE0UHS+YsLeUl^XFS@wQ;kSt~}@6FSF3_l8#28 zPpuVTrd2lEVTU|THF2S8{-%y(^98tD9qnACp&U6{$kx_B9hYRY{WeQcPfG>Tl(SC7 zQjL*w97dLJGd4{^9%x#?VgtgxM9X!YX z*2{&T z7lygg4#9563~f!&)TL5|s-U|@c6!=gt6gog<}R~Eiq#So8Kkr7HkmC+FGHNQz#?bV z)lq_hGEI?ag7p$?*4`aLEwRKd4@>uny)x9d(r7u-g@{vMwol9zsaH>=aie}*lCCuUs>X?Fcpl`Lm#cxH`Qu~ZPvnS zaq2qeHnAq@uZf9XP~Sw+k|Z0cy7~IsFGFYFIjFL2uCT>^9UO75D$<1OVVZ7Y9QTA= zUn{SJv1({#tX)4SZ^;vzoZiH9Dwk zhEL^NX@iEIHMm48C`(9*CEe#aoyD1AXvx4qxrWtOnIG0LQ-6SiNcaz%s3OC0BZ46Px z0*fpath2+e($Y6pS!TH$;!8$wTJL9xR1dGv0Tg7Hry)LssN)AU?b23x zv$b;2t`b1-$L>>Kh>I<7nN})FFxC>=q&R7kSRFOD+l3Nr(%<)H*lmkosfOF9xkWZP zWVsMAk_`~*M{Tw8lYSbT;eN4Z3ed=6ee82oC9}ntBgdtV8mFPzcGzu&eKIY!$40aD z(#{T>46{P6o))`NWuGW^xl~&vTcd-H7HFxJ&z;rLP8a!3s&=KP^|KxKeGi?GqVd*P=?be<*8C5A(tbCp?qU^85~Y_f#FsR_bNtnK zjZ5I_i5A-AQh##F)%JNps1!veJ8F%7u5?Ie6Rprnh<4)Rm)Hpf=JRvs;!D#F=o`(d10PIPOESEm4#lYtNm7`u^Nwl05(ab2;i8D|C`#k%l^`B}x?o1)5~L{-T^V z-GzeWYv^lzM0j5#?aej8JoA;g&^H=sWt!Tm>MUJb6D_jSax<;B&@qYfG_uZA3(T?F z`ttMW3G7wfwdQH3iAW*(P>a>G)`eCH zmu`CY?)G(6q}^jHd_tWSd?n| z8z4p_G4_}!TY$<|OO@e4qnuJ`oG;AQ%P|*Avd4>#m~6f+>TBUEVMdy*jwZg+LLYNf zG{bg{RJKxUE8Oq6+SWN?w(T}LCD&%f*27$I`~T@w{>)JnBw+AK>Or6PPFLQkPS_NG>PD-bOjVZwZ=uS#~AWsESH zR_LWbqHnyeP#rg&H)kF!)ajpfWm7%vq!`&Au|h-78e^Y(eJ)KO@4DPDL+tjNuH{^7 z^<>(1X6!9QBTdi9KmF$xs)PEzldq*aJnS7S92M^(O;i+h&VMfPstg0mv$S;cjJHYX zj|$5DFgPAG!#GXMFjyP&#h<~-RdHc?Pp-sj2dtCnhz)+Do0TrI%dMiUP-v%6^Id3& zsWLT?qO*F&$TSi?%u~&A(b9Ah=a68hHFn84Dvf7IKMG`?VccKmGV?s++H+!jmN$jE zQ5-(E#bWEcEz@J?G;4NvMxndTn#lP7%Vx<^L8?dm(eCoJuc;CXEk=|iQ(P)pruLpx zMJ3bK*TV;H_o6_#p7nuR?sLq0zVVW)ZPiOpBRu16pP1xZAA7~OKJcnX{mC2daGhWi zedwU~JuFtPzS`L2uP*nTn`~34r?)h8jW@J0M4{VUD%xC+i*b+f;;>1oKbqnh*BdR; zKtUd}R8e^|v%o+%87W4d6c-xmdAHkxg9_woLgn*qFn52ciCa7(*g`NRt)0xL5BS*I*cl!MCod_lbYx+-)iBGtEj3d zRU}yGu!<(QQ=;Z(iMCs;5>%9>v3NrSh_}!qJ~GpH62$w?R;5DqbfGl8edtTXdHS#+zNYLG9?o=kq7NsWoPPj~EW?JotV;+$zTf7&Qx?hn3c`nvYuxX}i z=nt0refb?5B)}FGRaYWOGOpB2>6yB~0hBpnX!#BZD3?--{5M>yrDv2XzOxyJY%iZt zDD$SR62;08uA(G^&6Xk1HJZu5Df^r*pN0ss6bFO|Mv(&&b@YL|WEg0oi+=FV#SZ^V zEgTB1cF4Ou9wFy``J$Em7=4wd}V`vU(SR_EfMlc6sd=R(0UeQ2m&rdr|>m!DO7I^lN~y4>CWCvt{A zUe`P-RIu$P8m*f48k+Aj$K?3PEFEaD{m2qm9vjHXABw0mynra}#x0c9J$2h~q80HF1ZSa|8mPzrEYVH$is^hlE zQfz`f-gZ(a)lAaP&5CVM>SDhUFGrBMn&_yB1={N8OT}8)XSqCe6k2AH3X;T%5F$ul zU3_Dj<6ak}w^KIB^sM8`48|v_X?v!DHc1D)tn+}=YWZ4SHB=VietVVKZ-c6y5a6gn z^=&fJK?m%!L6Yu1v(Pnadc!^^^>WHd+w?L|sg@d)PpxE0)l-hw1?aB85|@jUDM+eU z>=U3&jOR6QP#+akwNpFujj~gBlQmbxJiArW%29u^UZI_aXlbbk-|H*SVgVkoQDv9f zW|56Hn{SOHR{Bb@!$x~ujMJ{SS~DYkVUoGta!L=aeQ2L+9TDyx{S??>hv_z0p|-AO z=q|s!b98}iPI{_(YHn0 zoxH211hX_(Plq#QmZ}m(E3!@3@&Z($6*~S5?&w3NYA#Tq{b+2vxyFh{w5?Kg@r7gB z*{Y_Qid-O6MVl-#PKlQ^R~g|}D%R8!su(9wnym)e<#+Pj;^A^euk-sP75*hd(qM%>@z#9m13*mBGl2^3hgWsuh1+>I(Wt=M~xC=gB1$JijptN0UJddXT4^|p0z$_ z0tVj+cfANtS?zYWpVhher@iK=XH~;$fvzxJo~MjHtHO2KOJ38|tN(&i^Vbg;pNLY$ z26If1C_tkA8kpxL(_P>(;hO3u*hb47(n$kT-S2<}?zF&BgG^LSmRB9I*+NmSceCqV zDA77QY*#@|ttCm2q`G)v%7kdCokJ!&V4=6ovrj#DXzRFB=16r|8^gt@sDe*?r;CnO zt8Th=A{`QHyeOafQifi#+~9!ElxQ!~d#=>qEJyrCp+7mIyB2nM(JDKIsi0W4O%_{d zt_(N&n=#6)6yPG06sheS+l?+SVk|e^Xf<4Kxhw&0)xx(%d(t+cc1RZ{P<4g&+Gv+O z#yF(0ElO;YZ=<#b>1>9o`q}81SMAYDvQ!PF8|hm?lFigpHBZSg&H-N5m};(W#@gbr3l*E} zxD!ehN|$V$lXfYQ?SM;cb=;psS?Nx}rkQPt67@|rPZRacaIMC+dqyi;Y_&#-HG0T! zQcE+9w8lOcTcwxFEU{aVrRwQ!vN{_3-XMie`Hdx(h*Z~~WxG@Z2i0=erwUwPqb$R0 zRc5qR7HMR(9R}KCvN{GTldF$J!8%(dT3<)B6=aQG8v9yJmy43`JF%`Y&mMuQ2(VFS z-)XOb#a^>VPa)O|6fIITPFb%<`Oz-d2AzM#kuKY}>IoEKkyPCz$`)F#gI&=I-F+@t zGjlZcyavVykmgGXT54ssC@oN8vcopW)kZG?B86G&&k8;3w?6^95BQe_sUyDdSKA#> zB0!?LN`?7EnkMCp3Q>sDMN+wU3f160qGkWj?6}De*{_+gdTFJJ5SJP9gQ3HNcDb;; zg&e7>Hb1!ruluw4+N)=Vt(th(n=Uj&V_jAL34O!4K2l$qK>OV4px>G&L5Ted9F}H* zD;+Y&Y13?%r%13ZZm~s2pE)T|ut((ECsCR}m5j7Sp>by+>4N`XjVw}<1ZBpm^P`J+ zz-ISqieyvVVy&0Gavo#N8gB`4-H+;M{9jq1s&a8yR=J=j5qfB2me;&1*M%y`6)sjk z{e0yKYrW|Tf40Xpo;1K{kE$hGszDwSBUzdP$7N}zzPYw(sGjMzs->>s0))s{s)dtg z3Di!gJh|RgMJ3PM=(P0~yF+75E%2I4Jm)3tozz_;w^-u$!ab*(&&{;JG$+*eq5J&F z4$rvMTORR_`JR+7)pPcGz?JHI+?#3}sg2o|Nk*iRQq4EUt-5>5Mq|C@sKe4M)XEMW zoKh;=mzL@5W}`&;y(*?yA;2l6s=3L>p7*Mo{KjD+-V>;)er6f(h|LDe5T&zq?(#RE zDH9-DZF`kCB34zGh;zFVQEFS`kYXt|>mYSw_Ua(Uz=@$JsN1@Ng-t?4M z^nnm#9WhI1fAWmi-KdGpHru4JN@^h9X(vrL#3mUol<6{W%d$fa3yd^cwmv?V;|}*ai*l1h)@Z8R0&?Wm|5Q!Jw{unU2X)qW!NJ zFiMq)HA=9jg*v3n7+XwsNM%=?1uKXZede?tbq*m*j$K-xMU$8+L7`*Hd}z1UW-3s6 zMy=?_{ay!edR!+ZHmYQo`AYOM%uOy7;P1+OXPA9{>rGeTN%!k#tZ%&Mq#B}S*k^|@ z6MUtSF(O5&_~Rw1JReGNfr_gCC^9?U?}d6mh%7ItqQ9ray7rt8aL~Qhy4piOdtUOt zxAO%R&$cZ})bp~PEOFv3fb?8+$Z0 z)G*Ql*9sUuCItBf(h9&Kzl zPN*3=sA7qAPTK7nmzZj$LlRZ+ojQ7&<9f%PHo(^!O3~BzdTMNn(dyV?juEmg&`2+< zJSENvzwxLYX4`JRSl1XVMviASHO_34#S3+vUFPd(n=Y!GWQ*}S`-|0z#Hrz=#SW@w zhFqI{CdN}X*y2Jt)?2U0pM+`c4e6ed=s9%_5p1)z;$5$zrY0yc$ziR0VUHea3s5N1 z7}ad@kP_cYk!ifccA8*^69)Q1dl&g$mKbZa(8Of@q+4dF6bXK7wnJ(fAk{WeI?3=G zdwnTcj$mKgFF>;DUa;M84ear-FsZ)RTbP-;sq1S8bh60hs+b{No?Q| zEX(xOz~?q8G*E;oYPwXBX?8oVhe$+ec;?m*`ccKaJddlcu>~T_eZU&;xm`c(aNJM< zioBwwY6w;)z*bjDwNnqXbkGhfFx)}Y9ktgW(LPk{4y7(qO`uPGD$ZRl`UxfQpEq5# zRbA0Wn`y8(n?Z!3qZpKVaTxPwEu2M;i&DKa4=r_{ki1eKu+8O_2=3zhqm z5%hK6dQGHaFG}^09rk+soS6L&-k3TrvtQDG1lId+Y@<{|e&V@(D#~|MnPP`*Q}+xd zMGX%+?h`NRrK%{$Jnccdl&ET+<|deAf<@-I(haiR>y-NL(&jAn-B3NsAH|EuAuB{n zGDLT!rkL$6cR3+Ugg7)Y*BBklv`8hF8tY?!x7+Vb(9R!C@{H%b>lv$+Y3(VS-Qi(r z-gJR6`fBZYS16EXgf8w7<_j-7DM5saT6@$E`yJQ7Se@*3na2(FiRBu2K(dM+S6RNs z=E*k5Agk2W*e-YLW0qO&RH9UY5UKKw_ncY2Q%MIWe5Ie?$7SSSQOL2i11zwcqMx`2B?p0wf(%T<=J}IK+Qm{_ZJ`YFWQumH6~0r&crV&6+F|($t#wR-5?kGAnI#@@yA1oh zs-j3ky=#KwzVMX*qh04Yr7pEei99uZY@Vm}bKLv>po6Ab+OCyU8%-20Ops7{ie;*( zmRfGI(;5R5$dE5rj#9@&NibZjZldk>k*)^I5a4d>l^JNacnc&bu+|k8`qGtBC2M1v zwGL@5UbgCLnys12GSqUDS{{+^axr!yNDw0Q^o85K>t?rGB}-K`q{_8VKTlg~ri%m# zIS1r^P{nfmW2TbwIfNo7+}+95H8RpHC_lCR&AZZNWfQ?GvlMHTKAqsVYis z(*gB7rlZpii?cyD)ny2F(qod`t;K(+jdQ+j^|2(;3KaTQpr#%bW4?uMmtdR9swx(& zi<**z2sw*E_Sdjj!9qnD;z6}7zhdx6~vuyLq zuNpAQ1jsO1-=9b_3*-tCBUprJ`+TXcHY%!TuPF+Ru+ctMRWev5vvjanBmGTrjk#Vj z)~#}V;g}{K*5F4scbOB`JFbxwOY9P$rY_ohz-ARxJ&OY;)F9ie6sNzf-ca3r+I!Y| z&*<&~6K(UItGyyvs$6YMw9~Wd=wquV?G&U~nGB~L^@T+J+^V0CePExlMyTqv0((+lnu%WU zC+&<<;w?`Zp|Sn8d(bIW+~I3ewAb506{KlnqfcC^zP(P$wplxsg&^70x_Mt0$857y zCtbX0r5x4NG(@n&rpb4q=C1doBd&3Y1qOIQnX5EcPnKf!UFJ&P2-jMM*$N!f)J;;# zHARA*^gAVD%rQz2`!%rDOQQTyOV3GksU=?YJL5fJi*=rGqnA~6m%~b2?lq6O*QM%O zV!xU~&c?dSQhPk=Ry}>~n2tIiNRk0E^bjN6LD$LfkgGLvOhI|Ra7>P; zJmUekxZZ>2=`YkKi>xzBw00iX>IYc=Z`Cyl%#r1q@*+ufS?FoLi!HIsNKxf-p@Gun zI4x3Fn_PfWQ!P+MsOqXZElf41EtRSn>S!y^b;=x3Xs`s0J?FF=4g8T}*neuv#Q0u` zOhr<~Xsu91cl*FzM}6uB)kJEg_5V>BJWQ~Bh3e_&JDgUcSXW2oqQ;pZ@$Z7xKg6a> ze5hvmT-!qq>E}~*z4C7rh4$Da#8D%3P}zP%%reRh0j>~ijMdtU7G|Vq$NWWvY^9zN zqLVpJ$xzW%c4+Sfnhr`iqZfUyCE6-XJ@aLVb)#{%S>!8aQjPVBFrSJ>j4E#Si2X*o zUvm?@bw8LWk_5R7EIa|J|7C0tPgl--b?V#=c;IZ>i)u#mtbl3uM;?&U15r1@- z_dMVhuW74=G#{I+yJ$7#yUBRZdfF>)waM#h>ZOq)TYPP$&gvlF42Kn1Z?m^_Hd+_0 z+$Gz4X3JFHW11*2%ft3dwM}DJ`%bot75G*YcSurVx8KQisZxmo99JqpZM)1?26~$3C6^nfP=ZAB)t4(xt`M=p70Gmyn!;pxTqCFb-9Z5w zd)!-AYG|PdwXCqsHJbW^?f#&d-5Qv0j6gHh_J|5@R%o|S``n?E(N@cIiSN|V(|0y| z!*IK8l_5!j<}UG?B_2{=mRuzY6blq4Sb__^XOHC)Qpm*4BeY zyG(tL2vaQEeVV!xl}&K?2LYqc8PMvEGv~)p9Ymw0Pwkg(0P@RU7cJi|Sq5uvpAx}> z95>0kXy$cum5Ec}d9~F*9!5(vO%rWJ`OJC)jsFFRNQ-SVTaev?9aJVrCBahFRoT7D z6uHeF-^&mrQ7c`3#ZuHit(C?OIwnqQ6LnQ8#ry6PYQ1d^NYPUavJ{-5CI4y5wb}*c zkK1aCi*(ZI-+qq4{^pd5_8MlR?$QkwVxY3*3FUnD3gUgNeCnuGuB0;hJ_N%YH z`6f!WM6Pi49nej@mFM`tvr1A$!hSUA+3tR|Jg$OGUUZ{@j(fu;=g{z;Hqkc3`<+XE z)#UFV^B|MmEXC%Z2pE+m%a@?Q215l(&_K4iGBHady`(#&l|*TtG|b<0G15eVcI#u9 zm(=&rzX*DzJ~l@ecc>}XHtXf;qJ=?@oTZDL?4ZtO+TbdK)pS?`(RNrR!Iy6FxjWtA zubz;sy)P`bP9<#xNYdOwH@j1JFMHcZ?o-tu1H9yUhutSab!%MZTE!+=Wr{vp%F{(n z)1(Xau$J~Z>VzYTOf+1u(~7+yPJh{+6t6^Q!+hfJVmxh$575k&(&X6XV-4ka&JCh$ zw9r^jYAi_&MaKJ3Rh?~D#~Lx3`BJVd5iWJ3=iR551^Sz2n`ixAiFQ7+&IBV&a@s~s zTr5SjEQfvKdVlqxuiPO(n7iEQ70rzkV7K++EmzH0`&CvfQ5R!ms;HTn#>@4vd<|SI z-?fgpUI%&FdR7geN>-+$s~z*W%0lJ1O+z!iE65#sYU#9ECVEa&*Ln#~PFc*(eq&UIiEL1&w9{L$_9o$K70_FNKsnxXpW1R&HbR0G{%CG_z=#nhOA}AK!-s;M z@}$o4tkb#tEZ@lyr_Y0~)+`SMWsaW({tQwXiK47GMzB4y<%2dt?U8A)5DDe~D_poF zB&y_D)kO#vsFq+X7iEC_asc=PDth979^}oIYr7Ava8R)a6na)gquiygO66XsNUj3g zBxo#1nE3y(`1SKFL1UY((!?ZdHIOI8F{Q#CvQ{mpv=f8k@)@ch4-;P*teSs_+!mhm z+z6#VBkVOW!N>Yo>Qa*oFhze;jP(~ItWoGHt5i0@UJtw1<&Idcn;~ZU&=oeQZj~bn z&|6)fE4I(k^We>A9ybxK^hbn4_P9-myHv2r(+0UhfKMn#Ui{N$dqS?3?l=Bd3m2!A zl$W4F=9d=Zb zVsCj$oK$fdn(s-`u5wDIE+XyI(m~;(oVMClN3;|qS&WyIsUt(C5Ydh*5}~i-UiY;| zYWuAV(8gbN)S}u35V`_O>yev@y#7fn{L%vp`rKxH;<$Yt! zGuaV&GGz&Jks7Ld#B-)gc877s+3tO-1gYbcY`0qHdnK;$wW)?VZK5l+@~DnxOZL9q z4mqWfx~|j01D-D*V9ZunzS^-GxW|V+@sOj&%9kzB5J478aF;}5^fOT-FL_f37s$5W zMzusbrlR^P8zxyJ*U0dYy~e1dnNVEpS`CdAh{hsZuadVhS~V3ka8QzlKJ>mnDYa66 zPr6Pi${ZGJwTkDRZ09=VX5>3@=9w}L)JKTwHW{zf3WuGv*M7|<36!nGHdV{-@f49_ zQ7YGd)ujlwQ8`G5%?y?;%Xl5t6X>v9>8>!__ln&kM38GW`4`drhz*Lx zX|0dW@-5dvq)%)qClF8fqP-f4P+3=tEc9EAR1>9C9Y=j2*AAXtx%cIwI9B`werai#2lGBn2ADbHEp#v{#OFqs2SyUA5G;R6B{b zDzI987kSBQc^-3{170@W36<5y8hHYg+J@m`oi$0iFI5>A*ws-8`lZ4*%tdOw#OcG?Ut=b zsv^{Nui2us)Wj2r4+U1KqpDdBJ7KyV;w6Z8%op0KELfmo6*X1Y7N2OYvcod8K%};6+b-31mx{5} zAc0=e%0ku7lU&|tm;M5rHcQ8Hea$ShwNU{pr0QsvuWUl90QJn)LuIvmq@4!H_l}(| zP+hhq#+sne7Dpv%CD?T1B--sIOWo(vf5Qs(^Q;l@M&|$kfB;EEK~#n&2Dr!w%Npa&T^#jH6U*7^0n&qf%?sbicPAXL0C?`FwqW->DOSnB|YxRSS=RGs*@9VqEY;E~yf4TBoUt&WUBEp0>l^G`7;840DrkMgAb>EMav{d)bGQ{9U_W zd0A$tr6TgZXP-xZlC-OWgE9;-$7*dg@tHC)Ld$i=mRP92iv?qaTth9e({A-8Yv!7N zqwuxQw-!j#T%brD^-xiubg!7ChFW5@wbwVI)Df+xT<;m7woI=HFj%@xnrJQB*VY?i zoQOGv5he#&}X&7mJhblog^BinGPbLR_zt zsdB85?4+6+SY?=*4hb^MT-zN|!3jsSa!4&pU1^OHsd_u;uxlO0Fga?-a;q&G2^Q~F z+2S5aW=##Z$)~u(8ZE_GC0+%!6?j#3o7HijfmTXZ zMW$;0uB`=1$|tVxwOLoSR8`eg%B=97*$NHR9UIIlS3vwyXSK{TNGr3wCSL{Jt<>KT z^XzoW20g@D=W6S;SJ`S|dic%&6)iT-4k3PLn=A_?>hFlI))_6uWm=dmOK0m{q?37~ zwQ|($>ez3Aox&ukEkKcag01prmn!m+J!)%Xsu_lO8)sCaJ5HOXX?Z*Kxaahih*k0pm8hm2o-jsxc_!hK$VWycPQGL_(6(;mY70NTbria?7rH&W`%D3I% z|El+rWVu~V3v*N-iw*UyW@?y#0==XPaLga1%5>Ukwf)u+GvzB2AzP6Gxl-)JWs2ph z=<>6|eR;qLw99M_&P*ZxbAEBJTh#Tg_gv&^VffBh9yq6evDJgJJZj9ZyhK4hby`d8 z^tvH#{>d*iKqV^;5^Sm{BSbjrP1&m1Ux;Rs{Z+8mHu$R&m#bunB7>BeW|N_=l;=e! z1)3>OdyO5DY?_to8Ec>E=2>dJ?OLhkQ?L2fbSd^)Y`thjrm1S22w(U@eYM1i6)IP{ zBUU@4xkub)g4VwCgw66)*25g{`$)1TLWSuq*o$&Zb4n#_RVrSVXyIC#Ex~oZmMYl@ z%XOBoh6pXJb;zw|+pM}_ma1vFQIcI{v3=6S8)~@_eKb_+HrqwI$3a!y;JB%RY_LK@ z7a3rrj`pi*gh2b;=6&;BYmB)Pb@!wVDjR36o({QEmX`La<{J}jlVP}cZ;01KvQD}> zWT6tBJmIvBR*O^10k7$=r@`W^6=a7+YP&&y^Bvbnnq^8Y(m)gKY!%@OUznt~K@Pgo zR&y~}gceS#VT=XpDl^qERjn|@32BB)ce!9+Xd+r$3w1DA747Zvy}nlIB2k==Rh8vp zE%nmCI!8>kLy}UJG_~6aUA5I-nknKnGgoJ|b3Y>Y{NER)zw?G?tuRtuRsBuAw(1HOpx7}>y=S5A z@+7GFe;hEvb#hFqLH_P;gJoMK+9aKIvPYp|vV5%3j}+#rI;4h1sCb5IzOKfq{8!zV zC>_+%-b5$#vQIyUoD!^;4%X@F6@>z=mn~9fsR9g^Wu7*2jT5fE1U*D4kSAZbEb%V; zF?#b&rfOmQS%}+g`MTlHX1m8|K}hznD~&#DF;2PPVuL;Wt5048*kF^P0?oF>Gw10V zm)LWbo^P~oR5a99EA`MueTn9H%gYixZipm-nhJKnM`p`*lNRnW>fg+QE^(WQHYyUJ z!g*R?u?9%@o~oJ%R!=?eDAH7j4l>Qs$zajmQ^6P~l}gl0lo@7e>vE^eaj~l`G+CS* z3{z^SWTom0m12)X5tfM6SGaxly21qpO7W7f9TzG`md=ut$W_k;9`=F~(Uu!0-xfPf z^rd7wg%{ccB^Zlw)&bSNn11g&JIbc8>^~FJ#F__b&OKab{VP&RY4uk z%hN-OV4-#xB*09?QXP}0iUBt3<9SPzX=kG{A1ZLQa21vL+;}%SAXj~_NkKPPX#lxE zM!zUdu-k-q!F16Q<>_dGi;Yy-Qd`6cGgMpm2=k3Jo1M}{v^B1^&t!wOwafth%#o$Q zex2nxC_=KoI%bN~T3BSLbi4GmLS1o=XyJW3EK)(JH&l{ovVM-KtFi*&);g-cXn~3x za*r+wY%pC_^>sGY_xh@=rIt>qA;$`Xg$q|jklm8i(OO&4V$M1|1*mO+Odr{!M1&YU zoN!3rb6jXm^_6(fQHzZ(udMGDqrU)!zSc*5EOorRhJC_z$y%#ovGE$&>Lu;mY?VZG zcghLVg}cZ~JB_g23%Ysc7v+2?@{oO6$}_|O&pYh*hS}_W)dkw9p`OMVp@&-k=S3;P zRJT?Wb6ugj&mFYc9=E7rimG~<PZC8JC&q zJ+0-t7tiP@0H^&;i3iSctJ6K9qraC|L4RF4WvY=PeJ0y2=Rtr|+^X)G^fb&NlZ?>8 z0xJv=rH0OCSz@-Vi6{IOb|OX4YXk*m3&SLA8X=s!0HS~LXedd5vt=#XV?Shqv7B9&o zR%&OcQ!1J+!9YvYaigs=U1y;kZZTJa9P8w{U4%{Q+NFoOmKr0+Y2T=&jqep2q(nQ5 zwU(~F1Fn?fxFKffqRjQy>+A~iMEIR!YT06?hehkJvsWEe%YK8^^q%UP`_eqS?XlZ7 z2UPQ@5VaKB;(#5-NYuqT-&-fZXjl5cXYzC~OnvW|E=3vIiuax4^0akOu4bw^E!%cm zM2OMa014*X=RuVnGFlz`+-0vdj#z5AUQz_gsEATqV|K-@8h%CRWSS!o3=MS;8-J-@1%^s&uyfvVe}o~P8bUzv^))RQ1a_^&*o_pd|7Y?bYBp#=3zk}Si;;yk0d9-dLn zMOdX+jI?sT;D2N%zce#OjOLCDbfXwGwb4lfRc*D)PHV;KEk%E`99C1LB*{kj)B$_6 zcFYnLb@jbWHJlK8P8xA0U~Dl_!!tdMd@qU8$7yw3aRy+z$SdwI7wY(@eQcrM8h2(R z{+f2ucSeZynZ`zzS1n7+zxHI$3fBM3BGmM?Orx|mS*hmI6{@6)txlQfOD)uqD%y&{dl~uA$TQ$XL zCRT0hZII~#$)<}m*a7=R33XHzt&~|}n|MR)^_mlgYio-2+Q~9Wv1Z1)*ae1|;qM9@ z60NmVi(Tdc{nZua6$Ku3xABr~x7&WDLOiUim2SW^1FY0fD>JQdNG%x#`b3sE>s%$z zJS|0PElo`eJTBcLEiKjGV*6xip^iC1%4r9-t1MY1$F;E6GF@b7c!6bg|4X1H@{mmk^7MH%EXEjS{Yo;S%f@>=~Oyd0dKas(Hv>7YP)onF+pB z>~d+=+hU+Y@-W6|tNl%|k*bPNT`zCwAl_sCZlemSsIP&Y28i*tFwHD*xe-dd;ecJj zbrG+g`r;k+u~9A&=zYP$wDGkmwu_Kwz9OlPsH%hI9dk*PCp)&#iRAQUyZvRbPNn0yNM;q|*Wg{2%zBe_aEa zW|Nb~Ns#MXx66`ih#8v5_mW$*kmWZrwDEgYew3$nr&r`_@IQWzKy?k(TY>-q0)>kc zh?fj>+Ct;xYvf7Qy7((tXm6^%s{q?FJpiDe*UdFv7i>`Q5*fg3OVlP5F5#NF^~p(Z-8%kKtZ& z3bb>Px9mft8?18>-CZJ3jQSFUYU>q^&9XvoQGz6S(A(O`7a`9srJ^0OT$&b|o9k}V zTL!)aEbD@v)*Pe+hm>~$6YDVOeOkRjzX*Sa@;GnDirK3Ej6}LOOH7%U9tqZ!lWov zq@vqZGRC*wQ)Zy5LiKVf0{l^_304cS+yd1+B*Q!esIQWfnz|gZ0yNa!CV%vIU&wTu zr%ds8pZJ44+WLzzZgmUTt`r+oG0LNQIqHafpBtn%3Zx@arXxT4Kc@T8^OApotBIH7r0lbP zv)E>hT3Dh6m~mrCw%)Dex&8MZu=VXQGldt(Jj@t}z= zbJ01cmts#k=`ZJv^}l0^NA$-@f7brr4zK@rn`V=WLU7nD7u)KPYlUE!yCfPQK(UuB zRm&A;U0;%5Gd0&*zK^W8NvVdK_(&c1sqb@-sNzo=o~2RzQxU-bwsHLT_ZrG z?&dkDy-?##b4pzgEA@y#@zyvgS(%E8^w3w3R9iIC(@7uNZ=kjoSZ|y}ZS=I)7gkEt zPz_-!sjsdy8#FY-HM*E+x~5tPu~Me1<=CN-_DV$xk*<$!np)%{6XaT?krUEAVY%+^ zlB!s$$vU`Hq}eiEYKNLmyGpDOC#*EbVwu9v;xhezy|EU)ajcxlG+cmrdI>7;RmA;- z2y&^lPDoVUN;@2JSdkGv*IZSN?6Rqx5^sh)4_jcB=Jx6$Oo$~ua;+K;SgxeJU%60$ zGQ9kE0t$n=sR7x}wmE>&BGG}9D#>SxR|{~X)xFItP&Lb7gZS?Ox~-Qfb% z)=W4KcuR@i>i_=$r#;^q%C|%(ExakhC{@(;y^jqv)OfqaTjG1yYUZRm=M6IE$rI*7 z4TUQ@52Enj7x4qnc=0kbEjCDRQ*6>wU#k@w;TyXQQ{4hpbd@eks&qxFxx{-8>36tf2NoG;XG*Get%NmW5RLB30M50wYWUlBFbUAk&>|8mj;=t zsV>;(75&^K3Mu~Lgxd{0XUjBn*w=ch<2yz6nju_Ms|ETD&#CDpJ^sxm%e79h3je`o z4AH=Q%Ctp*dS(jKM1cCL36iW(v>ZDn3M@x-&9Ki{Cv9`9W&%a4pg^*jQgm~L3so}N z0{vZUfDoI-xmp{oRC2^%sn&_o+*lnP^sY6Uiqctg-}%%k-CZf$LiN=#MXnGxI4nw* zx-Rs&d5%eOi*;&?P@;wRB$}X>ucXSfSB@htRpd#PT;XlqG&jppJ?&TGO5Z!7hjeuu zQr#i{AgpLF+N&P4PcM57aFebMo9CEty)C!X4U&9ppAt8TQAvH@2@qhBb<(}=kQAGZ zb<$#&i1P>IOp&9t4c2>D7w@W}s@ENHN)yAhQ_pIl`st^)16t~bYz@RHF<5~2%@rWf zOpj`1vKZslH`x^H6su;PK=l>-qewffm#I*hy_&en07qToLPHHVOixL!k>V~{nwlwB zSA!h$r92gl_N^Epwj1aobL=%-pea&}w^w)BO)^@VW@8nGzv9rwcQ{74Xf&ZV(&@STBvm%Ge<>5 zg54$3KjzH;kwdmLK&}6iiSB=Ap^{9Irk~F>(Nc~G(^XK}RVoN{#GSgjO|V=U=Sf3M zw?HRTR1jd20sp4v@pF3_k!S6R1{Mi7*cLskH9(+k%FNP9O$TIXCQ-7vc1w{aNn?`~ z8m#w^1&nN;YiEcxCVNV=^UmBy+@_IR&uMoTdCUwC>x?YVYIqJA;s0(^eXEBcK{l6< zAk8vaMQdECx>+99(QnH$ik)85${)|0`JAMR8j6)#>LyziNLNp&yX^C=T<_}oZ^OVz zFACA@Kf3aYk{s7sAfnXufkr9|5QJxK)=Q?R)GfcQ;%%~6B@;{(X_I|o)N!GUG`7N< z7K=AfHyNI>S1sKPl;JJ4U9PWOWx8qRxJh=3)k~aDO!BFzmdO(+S3gx8Hd~xN7CWS| zCxm-Wsx()KG*hZmx@l{Ms*VWty%fVVu|TrxZ8K56fm-`Yq8qFdtDf0Ybm>AXk-2wNAwcaY7R1|NcodTRju8oditj_0DP|l!?vYkd#Fa8MP z>1(+jJ}>7uXokk+(dR>7ofj|vS1U8qNA`jScF4kZ1>VqFE8G1=CpVnQXpYD;`aEW- z5Out1nG(6;j4;51(iFKtU2W`k%g^GntmfJB2K#?vU0ro1yQy3-W(^^@vp zk|**UB4INeI@?p2*%p3o+Rt6^NJzHsVUE^LPglEP_~*H`kNdLRg&fb zUF4YPpmwS%lP*h3u>xG=lw5(jI3QbrBBuqb<8mF;H`NCMBxo()X)#uNO%FrV5+Xpj zD#$WGZTlTR(|cO$FIwy8Y8_m!hn*ghthwKNKrO`T=yFMtJ*1W^U9PH?=GukYYDyHL zjbdAU?SvGkEH1ygUUDr}*)VSyu9qxysVKm9=FR3$AqZpW1nauUYZ=a9`(NEj=1fd zgGhkrpKM`wbO-%3bGIpu8`;^^UMFLwtMZczr3$e zY@r-ev{20oN{Z|Np^(&JvV?u%C*6T_VNXt5{co4&X!S8k8S#lhiFI6r#Xi?Gfmh zTsczYx>s$PrhBejhx~uF(-uoXRr{?m!Ds{R60XE$#@cJE!`cebT&9{55FpKtAL*=} z$uPb%O%)?mlK6vD_fn6!?i_t6_{JCRFbvy0qU%}i`xe#z9dw~Qe^Aq-|7NE9pBv!6(fzttiTYTgyGgYTP^W| zy~>oi%O2CT6{U|pR%)!40-p=h+$(NVL5?DELWMcy8`%cyWUpz)DYV{=y6WaO4MZSV zq&ePk+(3V}Sb_|*95!CGIi^at&K4h=u1Kj87s>LBS7aEhiKkT8O{jG7o^Z%AwXOD^ zM%s#SSQp)Gw9ghzm71iHdgb_=tulRRxd^{APFLOZw$*k+RaHl<&U#yJrBQka6znO{ zBK*yEgWceJoxP>K1s-#~leSxBg}n~S7WFfTGlG6*Nwmy9lO0oAv_Ns9HIQ$DszNtMM|sjUtk zvdTrONHNK^zZf>EOo3p*cAG6;f4vM<{|w3C|36l0lKZ_YUxalgnW>Vb^YWWuog`Rg zt5|JqG0Vl+ps_TUS}jCxL~3xxM+C?c>1!+XwA~_mb#RL?uPSwooz|)UKcl9mo3E#n zzLsW$C+vvruk=vvD$CTnPO8s zVv!0e3l*!Q%09Hm0jE@Qp%1jN$yCpkC$?q$>RT{Wf^9z4Q4`5N(^is5iwv;QLcJX~ zMTld{oN!EnAnB6Lx6yvPMCh)&t)_`~jiF*BX(~elR~sl!CwCd4t}@AXYw2k%>~dN= zA$FLpli!(Pr^R+F*28l`)V9;N#_1@^Q4MWTPjgYW+bK+Q8Lqd-3N(a&oqaG8?2$u=Gy9Zqa?`mzPe6$!PhD|X^M+9 zH`qs(>Z5`az7`-=qIVoM)?6E#p$lTmu$4r0bAr~ z=oYhO8>5@UzH~^C1~x0yAFHi1R#Q8T5a!fLw)???RnycY!RW23adW8?`KRp)T?@aD&?Nt?-Qn z_95XXI}-odQKhjSPD@r*nIHi|^^oHWS8L&@*=L%qp&F^}BYB#apLw&a)YLi+_3?t8 zZq>kt4(cOHRfQHyH$;YIuGCOf8N&2d!(?X zk2oaKHoui;u~HWZ@QH3Z`;$F}{LenBlINXvQkKkeDwrvHYp;e-D;#mF8Yb%HTUEpe zRzr--1zN9;3w}6#LB?ojfvJ*=_JL)_Yb{+pQytgNC`+u)j z2ACmAf4faHP^3l%Ds)UM+XNe+s_GJ*kl}ihylauYcKb#T*Ewm01(uj+n}gPR-(uSw z)W8O{)Y3#PThtaKK(ZEUNwG(FRkbw0K#kXY= zIAyXPwM& zs^t|!&gk>~XO?1DIcfSfw`#2_c6&xI->K&kOAPu2*lzz9w9yLdE%sNLUeHyf0EaDe zkyWbd`6DO#riP35n#B&HtqsO&rNAV^G*>F!F{ut%XS$EQWTQC2)?4a?6QZ?J(N;Iv z<`Z}Qgp9*~VzH9_QL<+hS!uWsbG1-MB`ciJ(;({|Ro|C-JEVqV(*4Fht2Hv=hXEtd zc5{^)@Ph@<^oR&|o>#tE?9Yl^E!gv#`^&H3a)WFap{88j1e)XRRj-$Fx;lju0I+k?pWbA}#a1MaJss4M&YuY>Cf( zX_BRit#VpN3(d1lkvwT~B9b72Dms%O)O%WE_uaIpBa?`ansr=2zKaG#HSBhQx(Nm0qulBK!HRpv|9RJ@kDnBX_U@u{!9YqUhc8t7`9 z1p?JoLvLGcb3mja zvPy;su}XbOLY1g10D+>*XK{atVoQ-U;Q|pXShR)G)fA?Rd=rgQS)@1<<*88)V2M%F z39nnAjs%rGEyb;7JLVSq)Hgu|vkeqri;ZFomn&A5JYjbDULP6W@{lf8JK)OyfR#4S z9C77-WuiNEQv)BF=_(1>Y_fV9xI|?Wb^XP1yF{y_lN()cf>u6JL5@thdTOSIznA0B z{0s+#!doHIGMn|1&aIfF#ZIBnVFyhQBTVs|v{}q|=Pg$~jb&iKK`l@G>5Z%2iP_UUkb%}bm`cjlb65Q%y2dxpIvEx3rOA02a?iN)&;ixn(DG=^? zxdMd=(@#rDl8p6RTg1D{LU%YJR-nUb8)mOZE%L1>Bb*j2(+nfZ3o5xj!f&nhz9}_M|G{m3sz`=-cH-4k}!Yrkqd>ZRnBeJKzEn;Oo=Nj@;ARR&kN=%bD>b- zQYE958Kk*@Nc&)nxK%@jy5NSeyX*U)babh%tnf@BERz;|9huT1>!-SF>yP+msfFGU{G zP1B+Lo7^W&mdiye5cMyFhkk84=pLJ0=Sr<*dD{E-ct>4fGW^*AOVro@NBg%K<~b(G z6;63wZShjYIN@V6j4?n16$GF2mpST4Q!2xJY1%uW@)_;DpKnLq=VtXCu~}EqK5)o$ z0>$cqYVz#UScJpEosgiXm2zdub6Nv8cvVwH#)%YqHZJPifYDxkTYgY~JmNj03_tI; zJ4{2FO|J2mvv@LpS<6-^&MsvNRrIhc%THhjHTnU*sZhZg%)$Qyk^SCZT;aG{s!CSu zM&D^|xx359ii(_4Re&ZM|4-nxLc!wGQr-fExHTD~ud}N-c2FUikNF&v?z%|OGsARF~2FsDIy2~_{?kiJ8X@ld^)pxrn zJB2Dz%~;!!;7ggVG}K-8X{UvUU21_UMoIF5Ek3u=1brMf!p9!-xMNm1B|;_heC#(C zSgNKgO;S~=M}6a%L-tv1oZTuoY_vaHT~B#i9U)c;@S-K2^^(J$v)nNC#M!02dhYj_=arf67WwAe;E!smq@_+) z`J-sd?KMINVLp;7#cq+-i_u;+>AI?bNX=~#sk;wFxJsH9KJl5>t~X9R5)J)TprDCv zvBXDW4AVk@F#TnltgaoZDYZ~HJA5I-B;TuVq${)(pt?uh=5obuaIJT&(_V(bDl1Y+ z52XTBFkFNHwFRkfk0K=!ML4Og24<;vUe^Eb>{$6sG=+8=q%CI3@j`jlaY_@{sem%k zztW-f=hzJM-0W!~N<3$gy5@VrLw5K;u0PxCRqOT8S>QQ5R=Yi9jmDlbRJxCy_NI^I zSfP%$wf)icZ|pPKQcQDH6so)Rzwk_(?NkBZde9%;=}H&6MX(sPP%PYGX|fdCYMX}y zt7E-vy9BvIl4Qe`*@u&y=ULALj4&Ze&yoB72iahV2hU403w-V%0$k*=UoBjeDO68Y zc~0A^t$WTy;`|?k1}cdwKhbY>T+i~?M!DT;d(1Fi3)@_$rngkq?@V{*kZYCwj}^i) zle9Yr8{S%HOZ7f86;fGEn^jh7ize~~*djz#B?2@P;ebOrI%S<>D*IG|wyL<@HCD*d zLn~jnRhXmFG*UqeReUa8a~J9@+D@rjsbQ@bolqpmH6ld$qqpp{z;GGXt7okWI!V<- zEscF-j~JsZ6emI*t<8~VvnJkGUq|nG+$Z8p)k~sFtrwuVBwv&#uHG&5IAd(E&*8&UQfZ?`W@mnKG` zT$i~3xP4omTvin4uXO!;B3%rOnh@1R^Q|4+zGf827F+9pFq3w@!f0H>_>gyYt@ z&KNg3Ww!(YPM+~X9QLT?`ng3X#JUXyj(JC*$F={7_X;WZBLftQLg;^mJWZGDD2~bT zotj4J@1XiF5UNCgSV{66R%p2%TBF2FReUH`M^UO<;G{iD1&NWX@T~sPSplO0=LL+z zwtDD18gV}Hiqk?2_tY=YjQLlNxS|Ys^1LhItS>IsQ76u$39hJ3c{=>Px83a8@~sx{ zX{Ba+%_Wu#QO#P9m7i9!ePoDQssX1Y~pWNZUeu}4GcLX--W zD_fx>a^z?x+c8CAY)7msb@YMfWeRq;;XZPmV$lwZa;pjsTVBq3HM7PY#+feJLWNpt=!Bb8@Tv#>MS#^Vc9#f;#8~86?}^b| zqKB+?r!4pTvsJ=eVVeEMc~_PV9*`o^WhTl|EW}PH{lzI4ndozo3Nq=kvP z8g7Xb3iMFy&(ee&R=&~+ey_P%KCwWW7fZUK@|`kgg~;#;`MY ze+_lY-BTswe-;G(*Rh&HZMMNOuQ;KKtF6|>Fu^wZ)YXRQt(`DbIkTQA?)9DeCY&?$ z)=rWQs{Rb2xsd+}F?UpfPmPeOmb)cepr)f973z7zL@HEOq%y0Nx}y9$jzFdGC76{Wq6)U|X-|tlQvG?Q(6s()S2vo}wbtP!#HjnyB zuoPXq>0JkHc7u8zvD!36+M8mu74ju{Sb^yx%`@8=;R1c*E}6bjU4P3o*2QAWT%?un zd}ENsrny8n`HGy<*F}Q05#cl0N?dH18#Hve5=BnQvd~oF?su^xnh28WD}kyyDo}>K z(i}F_X=_C2=v#;V%~*YqC)I^YEVJELsu?KFa&?u;)72ImMQUif!S-9JhJ5)R6YX-f zv=!!Z!)$by{qAwGOmB-d#AZ3Vx>8fkO*2@I?>(Wa3Tldzcw@A)#w0DYbVzZz=EZ7v8>(1af3#Die8;_Ru1BRf>>srJ|Hz6jDc2A` zchA48lc6H5bh%SbIB2hq7Dy}y=l&R;|htGmu4I(l5J5SPa5%pwirp!&oo|DSfuv_2rHs3$V&T6Tpm*xIyv!^V#)Nd6! zVWEz;`og&KjH$?%(#`YW52~XDw(20%hhoop-}CLHH4=2PMY2#N`(6jZ2vkMB#X3oI zOn-&e*ygl2H5I9a01@g779mBX4T3e4hCB;xc7>IS-E6L@ie;;%nP>q%v`#lQgqZ2? zqLm0&K<=9}$OGwd?j<3co6!%8RA5GKI;c1shgvIW|U5~GdJ1$fLUfv$DA z5OMknRVLMYHtFXf_iE*9z2qs@O`c*;_??3;ldYWs*II9u%BCssiiTF)QiOwB#)c6$vq$Q|BQqQCLp(g>fKYqY+aAWlcEjds%i$K74VSy^}O!~gE- zE?|J6ySqaWkTkG6u@k$!?C$Pv>;^$ZkP;=NJBJ~sJD(TsYwiI-(aY<9-=Al_+@C#r z&hr;5k9Dl4Y|=!$fKvCPyAX%kX{!@-^PHa6dea)|#ydezxsoihK)$)Ywp=d_RcRz% zcauD%t$IGx5~)&ku-q^|_{luc`kSMVFz-1gxc9XT)z3Q9%+l#U9y}K9B1g%TuTZfC zrbyLOCoMJA#Bx7M6R*7_gg9F>gd41d0)suL7^__@MzlghYM_yRj~fir+1G~a?ID|_ zTIg$ACHhhOe+2egGvbQ%e?wY0*A>1}%l&4{wax`PTIP18E_IBN3ThMY#lW- z%ZGXyW~(H>ny;T6pNf;^Gs(i#HN;LGbhp~C&d^DsVrj}XwAH5uc~-dHuJf2}TDr_o zuX)}bj?>#K9yifAn{?O22Tt;)lMVB&-F`7sq|4lGg$QYSdQMx}-gSq@UNlH^Yo%+T zo7yh&nVsUa_OPz%`c;JC9=8cijZ>vifgH^Bv)wLru1#_*lxVxB6>DOQyDd{kwnA;4 zWR52UaIz6L>Ta#nVBWm3Ftl;Kc3!j7p>CAvGmYg-6m78`Dn#3+kx)%F*1>R-ec(MK zoTiyb!}QR^5#G>OcN{FoPpWLv-uX7#Emkib9jeFzWfp6qxiFC)RA`+I%5}9vYxQ-K zCdW2yMVMu-AN3F^MY?Pw9qk=odEen;R0vZnt44Y^S_kcw|E;;rdn?(L8ZB)n%COiH zKL~N0gSFR6m?&2YGeL{$GyR1%QjD|G*M93YPElW`R(}%l^z@q9I;m~C4tAR6Bqf&q z4jA+QCy7xd#&{>&=nf0rX{;k;m|&*9;%k`7U7qlyA~!fjI{}oLsB;k6x5kr>{GH}3 z_nf*q?`2%d_iF7saLJXef!dl{Bu$ABP4o{=cueq%t_c-!$@fzE6=?>_B%{{#Wh)Y+Jlzi?{sh%-=x{1BSTS=0D-v zZ|GV_Sg5@MIV#k#PN6%3{Qi|bQRF7a|87&V%yTY^h3_@{WADnvQeiqtH^WUqD_vC` zyv5q6w4=%STm{hTFAm{cppnP8d}g^;a!k`)o^0)v+N7mQo5VZR$8xljVwaXm z)HTVM!F|fnOoC{c^1SOpzvwR7Qrmr|txt54CS51Jyy{+$8LX?%t(WgYE3^`=n{&l^ zSga5ww&*Alu};y>Q(jXcPbX_U?OL~4VU>Uea!fGE87kyRbd>f!^^*(raDs;3ag>&Z zTP4&gi!@PBw8@Tfm@~~Z$CpB#Of-dv$g!agU+Ztuo1iZ^34hjCbZfZ1@`8b--$2d$D5f9RujmgyeM9UcT6)@clFIsV2dhwZne!a zsY;bw?QL%vDMy-sx5aC$P`0hkakLV%)so;%g-#bG)4Q73t%p|XnrEsMal+JhpObac zK#zUQbN)}HLbjdCrKq)!S@gAxRZ%^pr%J$7q1ERyny;w9Lo)_x7y zF4sFznui?kUCUh|#+Sl1(DeU|p{SB;wcUPE<+Oj`_dfHDL)1|y)FMaMXl)McmF4)} zM9&JY zY;=g3!N$Y?(Yvo|=ceiqph#U^e1s;(ctuWi7_pbZs2}VR{VfO^vXA20>vjq^-U-Kqc6Wp+mD*}rxFiNUQJB3K_qD8)O5Z24lr#kGL zuH5na?CmZIPRRIP^dDwr(`Bk7V40&7S*n9@g-V0Vo~Tlcb$->>7CBNRNmo~YUn>xz zu~|+;*GEQC5k}dJJ6fxTB>M55?ROWPRb&zd|3=0f5 z-1B}mMoTx?Wv#8++hnJPimXsiL%Yq@%VaT{dDva^@)>>kZrMF6&SC* zGwhV?eMdXRX_{&3DN98-9NE^n-)V~cVvO5VS!KP?9PNJZxKXM}HXEp~#WFo4qlW71CDWZ~v`*fz+T)5$ahpdKnWw%M zx;ny-668BYH__Ue?_v#fQb$9Jd?L?Q3-qwcPJKj+Qr8&UWH?uWa=qNFm00f>q@hUB z{}6Loj%UmhP^?s%Zu;r`i0GfxN;sk0@LWxLDm z`vu6x%5kHId~cIO%#^3nj{?D|H2*hbmB*~s-O;-4al`)}Yh0=C6q#m&G2*4{p|kcj zRNrXjkUcchX0^R778TyMUE=R_&KIU>BgygZG&X23ss#RKO`}|hDitb)*`c-~30BKj zB*HX(EO4YwlJ_u1lk9MR_5S5qr%P z!}gj@{_o{#90b{>==g`NRaI(_nkruhg*M9%{*O4ZN~OxwR&CqVm7-XgZ249z zQ%}H7-6Uz~dnXAMB_3fKds(qc8@wmc7X9?o#s%_~sPA_10#d#2b&EafQK_c6O;fF% zZ?Q<<%U7k!6Nogx)jE67MCbXySXGX($_rZf)dxl!>LMWqi8I&-YO9p4hiS@P_m_q)YSy0}!9lT_H?QOk|c#0=M(rltPsiPA%&GUei3>^nt{@}hNq5zx&7E!=9d z?S8NY^JELC>u6!=aGR!&v?x26DQ~jTiG#5)yXRp-HMw1-6&wRxn%R)aOPm+LGSNs82R z6KRLp4iSq=FY4d~)-ba=&6I%}%TFUE;M#U3Q*VgC~vO;Gd)7C6__wuo`T z-&pkjk!7xNzfPvh*Ac~@G+aCUsE*dyXog}DF0XE{`ztcYtL}D@d$ciItat$(q+4J> zjhN|Y8(dTUt~D>mo06S`9NQf7Cz;K7$vzh=V5)-)G20>fNHa}mg*v%fg-p2;EmtATA-=TE zn{Jb)zA_b>IK%ZOJ5qmNC{xd7(W2Fn<~HqwTVbT5Dvsa2-WyCdqnT6pGT#YVBQX5{3v-Ukj;DutTBEzHo(TL(H{9OQZZ? znWNN_B2Sbtn)}T2E;lR)11(qS2|u~X3zn(ysdk#0XQ#$ul?V6W;9x)da2+f(S(Q`% zMwj>A{&7t38T_tKYTwwSO@=tdFWMQbiv%=snXe_f!aO@An5)uutKIG=Vf*!@dwR~< z9&)?))Rr$*zTAIkAnQLP@jC7mBjlLvBZK~8W8uFm3|kQEa%~C1=Jzc>+oCgGHpw8d zD6v*wRC&oqnmhk@5QiTu5pbFkV;m>UPVafwXgLRDFshV@tZ^!;d@ol&O@(UVGp9=S zxFk17vQ|g4ovqnk&+xsfYTQSnaR zCo^o3q{LQrb;A~$v_YYbj!;{vH>?$K;U8|z{+6#&sGgp6zl&X9kwjtW=`rcvs1X+} zbWnAXu0nZr5SeMZi@2`Wts!>|#?KS^$m!@*nmu{B~H_LI8S6pU;6p1QDTOe1VS{C|1yk53ip-QqsYi0S? z7(2b}Q1sEsWOa0QfeURhz!a+-Z;2%u$a0W}EcS!f6^OE1thS=fFj`}cMEFd+6hnPu zxq6-n=9xRV*_*x;VWv#OR#Hv3cuwS-uv zhps*ss*ViJEK#P+YAb^>) zFs${a5XY;nGPw6^#j2;=bmd~y@vB3HnePU_2)9Y5R3ZCGyVuMKJ?+{W4nsg=@7W(oztP#5>1D@hrk*=o z<$gzKfOPMfV`L4lW0xhy1vjozPK{FJ9L@DbzAqg6huc+dgBZ(&8RBt?qW#v$7lNr8 z86;bwy1o~tk*%VI2oWJ#p$&*stge^*sG|Yc;SHaon-Jexp_y?S$`&q4h7jS(m5SHj z7n%o6UwtQA=`0Ie<5US!r79B8OILTh!j0}y-~soWFT*em%+%gQcMDf2M=b>w+2vZH zZga5fd@MwLk%pP&8{c}s7N5CKOR17w=0*WM)RrS!Z$DdPj9D^Oh}TnFzxZC9!@Q%m za#@-=L8wI0p482mLN&L-#R}bJgVu^HagaORp^j+lR7%&}XU=wq@ru<}s$3sminql* z-W98XY`d*;yJHM6$BoiF;YfANQzlZm90BwF zIoB^f@s^`pXPQ^Np}*!%(%jp&YowJN?|D%xeRR;oSwbOUjn4y74hpT6k z&pam4QekpLsZ^>&g>nV*MafqwMySNSuHm1@2~_>YT+aU|WU;%H zAWWh&98m);Rc4bF`b!XsEcyG5(JH*)OCz1&$Umi3++wkDQY{ebjG)&as*!q_Vwp<} zv(<-AlWddw9j~5E7NVX{G}PGp?y=GcJtRo+vLaXh$?i_}ohz%8{p+L{<5km@YNVk! zaej1yHFoN!P=h__RVw`Gb+Im~&b&$`5wi-wn>Jgq}VPp`0Kw>q!r6H z!*+wjS*MLSAqY{W*hbm5h)~x?^ZcOF;aXs_Z`jS141c zxy^Pe(^!Ohel|{??Sw((Zw?K^}4&1Li8-chcuOq*mIrKuQEwrC<-q7Vrp1vGK7;lA~) z9RJc>nN#eFE3CBAGip0kw*v-St}@59H56Z^ zU78E`qqUl7uZ1vq+Id*-z1+e=MZWR9L>)TqMPz_)fEG?UJvpW;S}=p{^9= zD<3)47I!$x0A-%BLKA1{tg}zOpuJX_DlkI0FM_wc*iY(874kcyyu&n?1o5gx-u0ME z)V9S7Y8j=eQj0Bdqt#y3TFbpo+xOmfvi{Xo>ncAeGf!O!4z)ymzZzqP&ARQo)0;Gr z`$ zb~#3wv)xeRxfgret<{LaTRV7)fFRYg#+R3=QkmWUH4Rgv!%X|JVJz1=QPxNMoq z-Q_l21<*)C-|Oo>6TRUJ-Q^psp4T_l^NN8tHwUq^(?zai zcACrF?ixoL=p1uIxzb}A1?m3d4K+l*T~=9Qo*|B~TZM2Wb+iIxgT(O-X6a^(L74%e+daCoo_>E8*7OAT>`wVLXzy*hR~ zUa6(OOGstOQf9Cv-m%;k<29CKww+dp2={3_w%Jn+CO^l0F$@Y}TU9PqU4i;U*kuLMRhRz6PN&LS_t54=!klBNIJ*tjP(vRnvQw3c{TYm8QTxn{ zmU`G^G;qS-Z>MRl{*O95I(p7I?(&ob z_t+R5r+&j8N9rq0tMieS@@rtFCh4FlezeB5`~4r^YoaBRgo)G4ZuvT?i-sRnyQ!O>c)qg0dxbtD+9=pW*v zt@MStQYDH|S7T{GXD9HN7?$!ptVJ*_{67v>BX{~-nadSwt%0@L_&^297Gp3p$H8-+U>sVZfP_KfXr z))mX$uD9mq`Bkh8<4yLWI==FX3e9yh+Xk5i%dd`JHY#>~Fg_^swWFPCwFoils;7x4 zVHW8xS6vtE<9VCxVeB?57iyGWB`K0DLM?0U6ob?~P_bcqW+`*`S%H|K0!QvOruENd zwo)T}E?EM~{9vd!Pg~|}F>-z2RC!)CRyUM5c^|_Le}D7~|Db!bm0Mk6f-|-7zAtoh zp+ptcmwS^RjIWL!@|9N~hfGVHD@>IywD{eX`Jd~%SS?hl6t9_7zlzWzsP;pJVq|cr zOtKAXNwZvp80Y(5iF!g*I^0~vc8V1xUZn?otxBbGRX+2WT>^IaO0l{^v=(odVtngt z&$>~mB3B#k481&Qj?svAgn1UoFkC0ESz(JKovqv&pW0%*jzR@Y^Q1)Q_{9@Wa+9yD zwq2%SdYj@q)(FL6FIOoFEBBH0mksI*FkFtv>KqvO@X z;l41#2+;=1aknDOI&Z9N&0!)O(wWlyvt=c!YBm}_layPeWQiYxzEwC}kG<4+q+67F(uIyzq_!-dnrN8^f5-6f@Bb4j*?GcD&`}cB z3w2QNHf`~wi~cJOy?+Ftz16#3_nxC2tghI7tVo#+HY;+d?&^xR)b+Ob(RPQ~WxcO` zuSmRqNztZycHV9eSf!~xLE4``m)07Zria!(bcVJTn&V!few3&!X8GE4V$o8nRc3j^ zs314*yVm%`v!2t;!Cn*YU<3T>W=%cidGUVH)fk`GNTw$mU!6EyC&UmmaEM9n^RaJ? zQlLQ20VVgd-J(P%>@-NBWIMD~EMF}FvHPP2$=<8c{oji8L0izInh1CQQYvhZE$bmf zx`n~cjpdfR)K>4PYY=8h(AQ&SE+8OE9r?oawc7^uq$smgs3gbvPKYXnLF7y~$=bVAUCqSFRUuZ43g6iz(+2bX zY?NEPF$kTbD`qhHP`p_KdcUbCv6)OA+Eu zwWL|%IRn)8y~AB-ir0;BjBJrwcu9_JDy8_)Cx)46h3*>5HWj~EC)Y4lO2zuscrBFL zWxalOxX{(Qs%4vicdhq^SM(HTs&^fvw^kDIp(Lm5buJnkyT_R+ma|W{rcjP7*(&79 z6|F?2dUneeu9ZI3*SjismVP^N{ZXt$rj<6EYoQQv+8C<$0g#JS2$8hUIzytH>@eSI zeQmbQw|;h){)$BHH&zIBqHo*+!dahK~h|F;;`U zo;-RF8jR&0Fx{I9-05=_T1fJ)W%8YY5UrGmRO%5E4REc|2mCh4PWOt_4E2~#U2l?x zS|CE1ieUVe7OZqO@ssTacwA#t$rO$C`l}SB%9-MAak=Hr#1g$6>`cWz2$B%}7Sa5V zEHYf0Ov$!uAx@qzw3n$+-vh$0HPg|(>WDN{57UI$B0`xpT1wa}?ODSHtX8rQW?G}0S}iBM{W zJdv8(V7U-obe1Dknq1*xoaA)dDBb6N5$jkd_?K+)N>F0CCpD7cV;RzI zQ=utVo97~5$ndzH&XFTavdNyc+Z(1TQEZVV+Gy%m6~6F^a-E&y0be`E7^CIb?pIf; zua$YO(_E3QPBhgkx;foc6AjYSE|;m}6h)rb(;(xucC;kNSR%o0yCkA>FzHZJ8tyey zC33H!#=pr1vn-V-M~rA8YO4||V5@wQY6Ww}rRG~=y;_>8t7XveM2V898O~H7-!|Kn zD*sc3R_YBy_o!Xel)4^rsS{nUjS%SuI^9|`oW39D@HebpA2$ovLOm_2vkvV&pv=QA z-)~dxKQ9Zs=U6?BbBfjGDYHhsKXhxG8tq5Zv{h`hZNBlc1 zZ-+B%H&wbcJ4Aa;-Tmm`gCyDJcE?!iG*6kQnVEXXQt+o}(<*D!GQ>2)_0ic1xpJk8 zlxV3V#Ozhq-h&z>=640>LSHDx5zgGlMpW7=TxxJxBSm@2GPl+UObdOiN(45U=PZ0C z+;PG!QLLLcjMPw-&1whz%!k=)9Fgj*-A#Hr$7HpB2m6aOMF$rOpo3PjOcHOn5L3md z7c?>RMAu-bFSNv|!T4mAb=n70UOTIa+t;ZjaWC@}2$qPdlxd(siWb6=YlopiQK%g8 zrfX<}3MInK5T~IW2?}(#Q?>$Ww#t=*-qLI|c(3;kh}Pe!=Ifxd-69qGS*F@r`pm(i z4b#TYzBJciLU6FpEH=a-#h&wkTg50f$w|I9)>P*^*+8pZYNzwHaIg@?;;eMN`d&9o zXJ5&6vX@OV+!Rrc_pI7Zbe|9PHA-jY0-D-oj{1^(=Uc~NzRg;D$qdVMkz|scPSwcK z9`T4qXyH!H9f<_fTq#4CI!d+C*CJH{cG#uL#}4t3C)HBlaBaNdawi+&E|YXp4Lb(LY?Dj zc}~>VJ06s%i*Z4pu;zK|bpZ3F_suk#Y=lFF2oWM&$bM2vVOofhYN_vJt8}8y8rCoj z;gTdB@X)UiYi)JyKB|*D6>FrS$KBuovEpSrLtVG)vR|e9tDQy~YpQQ_F`~wVxhPR) z*zx~#lxkZ&z2E~!>#n1Y?6*Vx-*MkuLtLyxdkfX|re(G|(G`+0M5ZJi{p4OfUH6w8 z2x`05Q`$PotuD4HShww^g^yjMg;et$9yGg|TGcS(9V|3Slz1f)ogl*J-jw7-@7b)e zl|I(e23PF|iqjbDeeDZvUFcysBF)fE9m|7oqd$s1-x1|XUq}!xS}URQWXpE2xyFjN zSaFTh6H?Rq#{X`)zw