From 0a104b1f856f2beda134200512d065ce36619917 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 20:01:56 -0700 Subject: [PATCH 001/267] Initial commit --- .gitignore | 25 +++++++ LICENSE | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 4 ++ 3 files changed, 230 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..da23d0d4ba --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# Deployed apps should consider commenting this line out: +# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git +node_modules diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..ad410e1130 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000000..b003ce0278 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +gitbook +======= + +Library and command line utility for generating GitBooks From 71e9d7bd800c4c5593e470ccbb2957436d5abea7 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 20:10:04 -0700 Subject: [PATCH 002/267] Initial package.json --- package.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 0000000000..84d8426f4f --- /dev/null +++ b/package.json @@ -0,0 +1,23 @@ +{ + "name": "gitbook", + "version": "0.0.0", + "description": "Library and cmd utility to generate GitBooks", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://github.com/GitbookIO/gitbook.git" + }, + "keywords": [ + "git", + "book", + "gitbook" + ], + "author": "Aaron O'Mullan ", + "license": "Apache 2", + "bugs": { + "url": "https://github.com/GitbookIO/gitbook/issues" + } +} From d5070c0bf1fa7ed6a8669383d218a2e903847bbd Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 20:13:47 -0700 Subject: [PATCH 003/267] Add base dependencies --- package.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/package.json b/package.json index 84d8426f4f..b7c95383ad 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,14 @@ "version": "0.0.0", "description": "Library and cmd utility to generate GitBooks", "main": "index.js", + "dependencies": { + "q": "1.0.1", + "lodash": "2.4.1", + "marked": "0.3.2" + }, + "devDependencies": { + "mocha": "1.18.2" + }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, From 1d28ab441a9f64357804ca7f983cbe884239e6a3 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 21:30:21 -0700 Subject: [PATCH 004/267] Add tests for summary parsing --- package.json | 2 +- test/fixtures/SUMMARY.md | 7 +++++++ test/summary.js | 22 ++++++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/SUMMARY.md create mode 100644 test/summary.js diff --git a/package.json b/package.json index b7c95383ad..26ca48f4d1 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "mocha": "1.18.2" }, "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "export TESTING=true; mocha --reporter list" }, "repository": { "type": "git", diff --git a/test/fixtures/SUMMARY.md b/test/fixtures/SUMMARY.md new file mode 100644 index 0000000000..9f55e4cbca --- /dev/null +++ b/test/fixtures/SUMMARY.md @@ -0,0 +1,7 @@ +# Summary + +* [Chapter 1](chapter-1/README.md) + * [Article 1](chapter-1/ARTICLE1.md) + * [Article 2](chapter-1/ARTICLE2.md) +* [Chapter 2](chapter-2/README.md) +* [Chapter 3](chapter-3/README.md) diff --git a/test/summary.js b/test/summary.js new file mode 100644 index 0000000000..ea3df21fdc --- /dev/null +++ b/test/summary.js @@ -0,0 +1,22 @@ +var fs = require('fs'); +var path = require('path'); +var assert = require('assert'); + +var summary = require('../lib/summary'); + + +var CONTENT = fs.readFileSync(path.join(__dirname, './fixtures/SUMMARY.md'), 'utf8'); +var LEXED = summary(CONTENT); + + +describe('Summary parsing', function () { + console.log(LEXED); + it('should detect chapters', function() { + assert.equal(LEXED.chapters.length, 3); + }); + it('should support articles', function() { + assert.equal(LEXED.chapters[0].articles.length, 2); + assert.equal(LEXED.chapters[1].articles.length, 0); + assert.equal(LEXED.chapters[2].articles.length, 0); + }); +}); From 39a80421fc2bffe255cbfa06aea4d74876fb50b6 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 21:30:33 -0700 Subject: [PATCH 005/267] Add summary parsing --- lib/index.js | 3 ++ lib/summary.js | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 lib/index.js create mode 100644 lib/summary.js diff --git a/lib/index.js b/lib/index.js new file mode 100644 index 0000000000..8fbc605458 --- /dev/null +++ b/lib/index.js @@ -0,0 +1,3 @@ +module.exports = { + summary: require('./summary') +}; diff --git a/lib/summary.js b/lib/summary.js new file mode 100644 index 0000000000..37e920af8d --- /dev/null +++ b/lib/summary.js @@ -0,0 +1,92 @@ +var _ = require('lodash'); +var marked = require('marked'); + + +// Utility function for splitting a list into groups +function splitBy(list, starter, ender) { + var starts = 0; + var ends = 0; + var group = []; + + // Groups + return _.reduce(list, function(groups, value) { + // Ignore start and end delimiters in resulted groups + if(starter(value)) { + starts++; + } else if(ender(value)) { + ends++; + } + + // Add current value to group + group.push(value); + + // We've got a matching + if(starts === ends && starts !== 0) { + // Add group to end groups + // (remove starter and ender token) + groups.push(group.slice(1, -1)); + + // Reset group + group = []; + } + + return groups; + }, []); +} + +function listSplit(nodes, start_type, end_type) { + return splitBy(nodes, function(el) { + return el.type === start_type; + }, function(el) { + return el.type === end_type; + }); +} + +// Get the biggest list +// out of a list of marked nodes +function filterList(nodes) { + return _.chain(nodes) + .toArray() + .rest(function(el) { + // Get everything after list_start + return el.type !== 'list_start'; + }) + .reverse() + .rest(function(el) { + // Get everything after list_end (remember we're reversed) + return el.type !== 'list_end'; + }) + .reverse() + .value().slice(1, -1); +} + +function parseArticle(nodes) { + return _.first(nodes).text; +} + +function parseChapter(nodes) { + return { + chapter: _.first(nodes).text, + articles: _.map(listSplit(filterList(nodes), 'list_item_start', 'list_item_end'), parseArticle) + }; +} + +function parseSummary(src) { + var nodes = marked.lexer(src); + + // Get out list of chapters + var chapterList = filterList(nodes); + + // Split out chapter sections + var chapters = _.chain(listSplit(chapterList, 'list_item_start', 'list_item_end')) + .map(parseChapter) + .value(); + + return { + chapters: chapters + }; +} + + +// Exports +module.exports = parseSummary; From 603870ee07d2d62382cf19107643e0acb79e3b58 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 22:01:37 -0700 Subject: [PATCH 006/267] Add test for titles & paths --- test/summary.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/summary.js b/test/summary.js index ea3df21fdc..20535e2f3b 100644 --- a/test/summary.js +++ b/test/summary.js @@ -11,12 +11,24 @@ var LEXED = summary(CONTENT); describe('Summary parsing', function () { console.log(LEXED); + it('should detect chapters', function() { assert.equal(LEXED.chapters.length, 3); }); + it('should support articles', function() { assert.equal(LEXED.chapters[0].articles.length, 2); assert.equal(LEXED.chapters[1].articles.length, 0); assert.equal(LEXED.chapters[2].articles.length, 0); }); + + it('should detect paths and titles', function() { + assert(LEXED.chapters[0].chapter.path); + assert(LEXED.chapters[1].chapter.path); + assert(LEXED.chapters[2].chapter.path); + + assert(LEXED.chapters[0].chapter.title); + assert(LEXED.chapters[1].chapter.title); + assert(LEXED.chapters[2].chapter.title); + }); }); From cfbdadd6e412ae7affbf23f11a9de6a938b1a74b Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 22:02:07 -0700 Subject: [PATCH 007/267] Add title and path parsing for chapters & articles --- lib/summary.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/summary.js b/lib/summary.js index 37e920af8d..8787554419 100644 --- a/lib/summary.js +++ b/lib/summary.js @@ -60,13 +60,33 @@ function filterList(nodes) { .value().slice(1, -1); } +// Parses an Article or Chapter title +// supports extracting links +function parseTitle(src) { + // Check if it's a link + var matches = marked.InlineLexer.rules.link.exec(src); + + // Not a link, return plain text + if(!matches) { + return { + title: src, + path: null, + }; + } + + return { + title: matches[1], + path: matches[2], + }; +} + function parseArticle(nodes) { - return _.first(nodes).text; + return parseTitle(_.first(nodes).text); } function parseChapter(nodes) { return { - chapter: _.first(nodes).text, + chapter: parseTitle(_.first(nodes).text), articles: _.map(listSplit(filterList(nodes), 'list_item_start', 'list_item_end'), parseArticle) }; } From 9284eb4115a38d1a45f12b343a4bf9a4cae90331 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 22:30:30 -0700 Subject: [PATCH 008/267] Add basic page tests --- test/fixtures/PAGE.MD | 30 ++++++++++++++++++++++++++++++ test/page.js | 15 +++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 test/fixtures/PAGE.MD create mode 100644 test/page.js diff --git a/test/fixtures/PAGE.MD b/test/fixtures/PAGE.MD new file mode 100644 index 0000000000..79fc10c61a --- /dev/null +++ b/test/fixtures/PAGE.MD @@ -0,0 +1,30 @@ +# Python basics + +Python is a nice language, you can add stuff. Bla bla bla. + +Lets jump into an exercise : + +--- + +It's dead simple, `c` must be the sum of `a` and `b` + +```py +a = 1 +b = 2 +``` + +```py +a = 1 +b = 2 +c = a + b +``` + +```py +assert(c, 3) +``` + +--- + +Some more nice content .... + +[Cool stuff](http://gitbook.io) diff --git a/test/page.js b/test/page.js new file mode 100644 index 0000000000..9ed91bbffe --- /dev/null +++ b/test/page.js @@ -0,0 +1,15 @@ +var fs = require('fs'); +var path = require('path'); +var assert = require('assert'); + +var page = require('../lib/page'); + + +var CONTENT = fs.readFileSync(path.join(__dirname, './fixtures/PAGE.md'), 'utf8'); +var LEXED = page(CONTENT); + +describe('Page parsing', function() { + it('should detection sections', function() { + assert.equal(LEXED.length, 3); + }); +}); From 0199e5600009989f511169f0bd8300e92fd0fd9b Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 22:30:45 -0700 Subject: [PATCH 009/267] Add initial page parsing (Split sections) --- lib/page.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 lib/page.js diff --git a/lib/page.js b/lib/page.js new file mode 100644 index 0000000000..3eabb09936 --- /dev/null +++ b/lib/page.js @@ -0,0 +1,28 @@ +var _ = require('lodash'); +var marked = require('marked'); + + +// Split a page up into sections (lesson, exercises, ...) +function splitSections(nodes) { + var section = []; + + return _.reduce(nodes, function(sections, el) { + if(el.type === 'hr') { + sections.push(section); + section = []; + } else { + section.push(el); + } + + return sections; + }, []).concat([section]); // Add remaining nodes +} + +function parsePage(src) { + var nodes = marked.lexer(src); + + return splitSections(nodes); +} + +// Exports +module.exports = parsePage; From 4c1435f27f7c17ffb8dcdd8c9f0f6b870c3e14ce Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 22:36:08 -0700 Subject: [PATCH 010/267] Test for section types --- test/page.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/page.js b/test/page.js index 9ed91bbffe..910685e466 100644 --- a/test/page.js +++ b/test/page.js @@ -12,4 +12,10 @@ describe('Page parsing', function() { it('should detection sections', function() { assert.equal(LEXED.length, 3); }); + + it('should detection section types', function() { + assert.equal(LEXED[0].type, 'normal'); + assert.equal(LEXED[1].type, 'exercise'); + assert.equal(LEXED[2].type, 'normal'); + }); }); From c21303c762e0bd019a1fbe54a0b6ec6408dfc685 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 22:36:22 -0700 Subject: [PATCH 011/267] Add section type detection --- lib/page.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/page.js b/lib/page.js index 3eabb09936..1929f6ba24 100644 --- a/lib/page.js +++ b/lib/page.js @@ -18,10 +18,26 @@ function splitSections(nodes) { }, []).concat([section]); // Add remaining nodes } +// What is the type of this section +function sectionType(nodes) { + if(_.filter(nodes, { + type: 'code' + }).length === 3) { + return 'exercise'; + } + + return 'normal'; +} + function parsePage(src) { var nodes = marked.lexer(src); - return splitSections(nodes); + return _.chain(splitSections(nodes)) + .map(function(section) { + section.type = sectionType(section); + return section; + }) + .value(); } // Exports From 7b4974209b8f05d89363d5431310c452dee98a70 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 22:51:02 -0700 Subject: [PATCH 012/267] Add tests for page content rendering --- test/page.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/page.js b/test/page.js index 910685e466..160e3d0343 100644 --- a/test/page.js +++ b/test/page.js @@ -18,4 +18,10 @@ describe('Page parsing', function() { assert.equal(LEXED[1].type, 'exercise'); assert.equal(LEXED[2].type, 'normal'); }); + + it('should gen content for normal sections', function() { + assert(LEXED[0].content); + assert(!LEXED[1].content); + assert(LEXED[2].content); + }); }); From 2c36a219380c923996ddef505567b2fc2fea32f7 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 22:51:30 -0700 Subject: [PATCH 013/267] Render normal sections' content to HTML --- lib/page.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/page.js b/lib/page.js index 1929f6ba24..7288fb956f 100644 --- a/lib/page.js +++ b/lib/page.js @@ -34,9 +34,27 @@ function parsePage(src) { return _.chain(splitSections(nodes)) .map(function(section) { + // Detect section type section.type = sectionType(section); return section; }) + .map(function(section) { + // Transform given type + if(section.type === 'exercise') { + return { + type: section.type, + }; + } + + // marked's Render expects this, we don't use it yet + section.links = {}; + + // Render normal pages + return { + type: section.type, + content: marked.parser(section) + }; + }) .value(); } From 5e183f24de46697a291d952be77b5326d5f2651d Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 30 Mar 2014 22:52:27 -0700 Subject: [PATCH 014/267] Expose page module in index.js --- lib/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/index.js b/lib/index.js index 8fbc605458..2caf6a46ed 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,3 +1,4 @@ module.exports = { - summary: require('./summary') + summary: require('./summary'), + page: require('./page'), }; From 7ab78b420a2805084b74078aa7db3fac903046fd Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Mon, 31 Mar 2014 01:02:35 -0700 Subject: [PATCH 015/267] Change lib entry point to lib/index.js --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 26ca48f4d1..07b8dcc6c0 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "gitbook", "version": "0.0.0", "description": "Library and cmd utility to generate GitBooks", - "main": "index.js", + "main": "lib/index.js", "dependencies": { "q": "1.0.1", "lodash": "2.4.1", From d18da55a184ef514cb996e731830cd0749ccdfe9 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Mon, 31 Mar 2014 01:34:37 -0700 Subject: [PATCH 016/267] Improve section classification --- lib/page.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/page.js b/lib/page.js index 7288fb956f..047f3e4de3 100644 --- a/lib/page.js +++ b/lib/page.js @@ -38,9 +38,9 @@ function parsePage(src) { section.type = sectionType(section); return section; }) - .map(function(section) { + .map(function(section, idx) { // Transform given type - if(section.type === 'exercise') { + if(section.type === 'exercise' && (idx % 2) == 1) { return { type: section.type, }; From 0af1886358e79b5e9f84fcdeb7017edbc185d3c7 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Mon, 31 Mar 2014 01:50:21 -0700 Subject: [PATCH 017/267] Move summary & page parsing code to lib/parse/ --- lib/index.js | 4 ++-- lib/parse/index.js | 4 ++++ lib/{ => parse}/page.js | 0 lib/{ => parse}/summary.js | 0 test/page.js | 2 +- test/summary.js | 2 +- 6 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 lib/parse/index.js rename lib/{ => parse}/page.js (100%) rename lib/{ => parse}/summary.js (100%) diff --git a/lib/index.js b/lib/index.js index 2caf6a46ed..8278529293 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,4 +1,4 @@ module.exports = { - summary: require('./summary'), - page: require('./page'), + parse: require('./parse/'), }; + diff --git a/lib/parse/index.js b/lib/parse/index.js new file mode 100644 index 0000000000..2caf6a46ed --- /dev/null +++ b/lib/parse/index.js @@ -0,0 +1,4 @@ +module.exports = { + summary: require('./summary'), + page: require('./page'), +}; diff --git a/lib/page.js b/lib/parse/page.js similarity index 100% rename from lib/page.js rename to lib/parse/page.js diff --git a/lib/summary.js b/lib/parse/summary.js similarity index 100% rename from lib/summary.js rename to lib/parse/summary.js diff --git a/test/page.js b/test/page.js index 160e3d0343..831d8b1d89 100644 --- a/test/page.js +++ b/test/page.js @@ -2,7 +2,7 @@ var fs = require('fs'); var path = require('path'); var assert = require('assert'); -var page = require('../lib/page'); +var page = require('../').parse.page; var CONTENT = fs.readFileSync(path.join(__dirname, './fixtures/PAGE.md'), 'utf8'); diff --git a/test/summary.js b/test/summary.js index 20535e2f3b..2a1af965bf 100644 --- a/test/summary.js +++ b/test/summary.js @@ -2,7 +2,7 @@ var fs = require('fs'); var path = require('path'); var assert = require('assert'); -var summary = require('../lib/summary'); +var summary = require('../').parse.summary; var CONTENT = fs.readFileSync(path.join(__dirname, './fixtures/SUMMARY.md'), 'utf8'); From 75073d47a2bd0401cc66d2e3c1692c31917e6a4c Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Mon, 31 Mar 2014 11:57:16 -0700 Subject: [PATCH 018/267] Add link to PAGE.md fixture --- test/fixtures/PAGE.MD | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/fixtures/PAGE.MD b/test/fixtures/PAGE.MD index 79fc10c61a..2839e6d428 100644 --- a/test/fixtures/PAGE.MD +++ b/test/fixtures/PAGE.MD @@ -28,3 +28,5 @@ assert(c, 3) Some more nice content .... [Cool stuff](http://gitbook.io) + +[Link to another Markdown file](./xyz/file.md) From bd7531f3cc848e1410e0f0bb6d22cba0a90972d8 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Mon, 31 Mar 2014 11:58:31 -0700 Subject: [PATCH 019/267] Add tests for path normalization .md to .html --- test/summary.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/summary.js b/test/summary.js index 2a1af965bf..543918218d 100644 --- a/test/summary.js +++ b/test/summary.js @@ -31,4 +31,13 @@ describe('Summary parsing', function () { assert(LEXED.chapters[1].chapter.title); assert(LEXED.chapters[2].chapter.title); }); + + it('should normalize paths from .md to .html', function() { + assert.equal(LEXED.chapters[0].chapter.path,'chapter-1/README.html'); + assert.equal(LEXED.chapters[0].chapter._path,'chapter-1/README.md'); + assert.equal(LEXED.chapters[1].chapter.path,'chapter-2/README.html'); + assert.equal(LEXED.chapters[1].chapter._path,'chapter-2/README.md'); + assert.equal(LEXED.chapters[2].chapter.path,'chapter-3/README.html'); + assert.equal(LEXED.chapters[2].chapter._path,'chapter-3/README.md'); + }); }); From 1d321207b045f7f9c34267fa4ce86fb41a1172a4 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Mon, 31 Mar 2014 12:00:13 -0700 Subject: [PATCH 020/267] Normalize chapter & article paths --- lib/parse/summary.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/parse/summary.js b/lib/parse/summary.js index 8787554419..f0214016a6 100644 --- a/lib/parse/summary.js +++ b/lib/parse/summary.js @@ -76,7 +76,12 @@ function parseTitle(src) { return { title: matches[1], - path: matches[2], + + // Replace .md references with .html + path: matches[2].replace(/\.md$/, '.html'), + + // Original, non normalized path + _path: matches[2], }; } From 1f3f06284193fa6da12629966e0438f5a1f75bf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samy=20Pess=C3=A9?= Date: Mon, 31 Mar 2014 12:00:22 -0700 Subject: [PATCH 021/267] Add base for generation --- Gruntfile.js | 32 + lib/generate/fs.js | 10 + lib/generate/index.js | 93 +++ lib/generate/template.js | 53 ++ lib/index.js | 1 + package.json | 11 +- .../static/fonts/fontawesome/FontAwesome.otf | Bin 0 -> 63008 bytes .../fonts/fontawesome/fontawesome-webfont.eot | Bin 0 -> 38239 bytes .../fonts/fontawesome/fontawesome-webfont.svg | 414 ++++++++++ .../fonts/fontawesome/fontawesome-webfont.ttf | Bin 0 -> 80776 bytes .../fontawesome/fontawesome-webfont.woff | Bin 0 -> 44476 bytes public/static/fonts/helvetica/normal.eot | Bin 0 -> 50032 bytes public/static/fonts/helvetica/normal.svg | 240 ++++++ public/static/fonts/helvetica/normal.ttf | Bin 0 -> 49832 bytes public/static/fonts/helvetica/normal.woff | Bin 0 -> 25784 bytes public/static/fonts/helvetica/ultralight.eot | Bin 0 -> 50360 bytes public/static/fonts/helvetica/ultralight.svg | 239 ++++++ public/static/fonts/helvetica/ultralight.ttf | Bin 0 -> 50148 bytes public/static/fonts/helvetica/ultralight.woff | Bin 0 -> 26020 bytes public/static/style.css | 1 + public/stylesheets/book/body.less | 33 + public/stylesheets/book/header.less | 48 ++ public/stylesheets/book/summary.less | 60 ++ public/stylesheets/fonts.less | 17 + public/stylesheets/main.less | 32 + public/stylesheets/mixins.less | 7 + public/stylesheets/variables.less | 42 + .../stylesheets/vendors/bootstrap/alerts.less | 67 ++ .../stylesheets/vendors/bootstrap/badges.less | 51 ++ .../vendors/bootstrap/bootstrap.less | 59 ++ .../vendors/bootstrap/breadcrumbs.less | 23 + .../vendors/bootstrap/button-groups.less | 248 ++++++ .../vendors/bootstrap/buttons.less | 160 ++++ .../vendors/bootstrap/carousel.less | 209 +++++ .../stylesheets/vendors/bootstrap/close.less | 33 + .../stylesheets/vendors/bootstrap/code.less | 56 ++ .../bootstrap/component-animations.less | 29 + .../vendors/bootstrap/dropdowns.less | 193 +++++ .../stylesheets/vendors/bootstrap/forms.less | 353 +++++++++ .../vendors/bootstrap/glyphicons.less | 232 ++++++ .../stylesheets/vendors/bootstrap/grid.less | 346 +++++++++ .../vendors/bootstrap/input-groups.less | 127 +++ .../vendors/bootstrap/jumbotron.less | 40 + .../stylesheets/vendors/bootstrap/labels.less | 58 ++ .../vendors/bootstrap/list-group.less | 88 +++ .../stylesheets/vendors/bootstrap/media.less | 56 ++ .../stylesheets/vendors/bootstrap/mixins.less | 723 ++++++++++++++++++ .../stylesheets/vendors/bootstrap/modals.less | 141 ++++ .../stylesheets/vendors/bootstrap/navbar.less | 621 +++++++++++++++ .../stylesheets/vendors/bootstrap/navs.less | 229 ++++++ .../vendors/bootstrap/normalize.less | 396 ++++++++++ .../stylesheets/vendors/bootstrap/pager.less | 55 ++ .../vendors/bootstrap/pagination.less | 83 ++ .../stylesheets/vendors/bootstrap/panels.less | 148 ++++ .../vendors/bootstrap/popovers.less | 133 ++++ .../stylesheets/vendors/bootstrap/print.less | 100 +++ .../vendors/bootstrap/progress-bars.less | 95 +++ .../bootstrap/responsive-utilities.less | 220 ++++++ .../vendors/bootstrap/scaffolding.less | 130 ++++ .../stylesheets/vendors/bootstrap/tables.less | 236 ++++++ .../stylesheets/vendors/bootstrap/theme.less | 232 ++++++ .../vendors/bootstrap/thumbnails.less | 31 + .../vendors/bootstrap/tooltip.less | 95 +++ .../stylesheets/vendors/bootstrap/type.less | 238 ++++++ .../vendors/bootstrap/utilities.less | 42 + .../vendors/bootstrap/variables.less | 620 +++++++++++++++ .../stylesheets/vendors/bootstrap/wells.less | 29 + .../vendors/fontawesome/bordered-pulled.less | 16 + .../stylesheets/vendors/fontawesome/core.less | 12 + .../vendors/fontawesome/fixed-width.less | 6 + .../vendors/fontawesome/font-awesome.less | 38 + .../vendors/fontawesome/icons.less | 412 ++++++++++ .../vendors/fontawesome/larger.less | 13 + .../stylesheets/vendors/fontawesome/list.less | 19 + .../vendors/fontawesome/mixins.less | 20 + .../stylesheets/vendors/fontawesome/path.less | 14 + .../vendors/fontawesome/rotated-flipped.less | 9 + .../vendors/fontawesome/spinning.less | 30 + .../vendors/fontawesome/stacked.less | 20 + .../vendors/fontawesome/variables.less | 382 +++++++++ templates/includes/book/header.html | 22 + templates/includes/book/summary.html | 25 + templates/layout.html | 37 + templates/page.html | 25 + 84 files changed, 9456 insertions(+), 2 deletions(-) create mode 100644 Gruntfile.js create mode 100644 lib/generate/fs.js create mode 100644 lib/generate/index.js create mode 100644 lib/generate/template.js create mode 100644 public/static/fonts/fontawesome/FontAwesome.otf create mode 100755 public/static/fonts/fontawesome/fontawesome-webfont.eot create mode 100755 public/static/fonts/fontawesome/fontawesome-webfont.svg create mode 100755 public/static/fonts/fontawesome/fontawesome-webfont.ttf create mode 100755 public/static/fonts/fontawesome/fontawesome-webfont.woff create mode 100644 public/static/fonts/helvetica/normal.eot create mode 100644 public/static/fonts/helvetica/normal.svg create mode 100644 public/static/fonts/helvetica/normal.ttf create mode 100644 public/static/fonts/helvetica/normal.woff create mode 100644 public/static/fonts/helvetica/ultralight.eot create mode 100644 public/static/fonts/helvetica/ultralight.svg create mode 100644 public/static/fonts/helvetica/ultralight.ttf create mode 100644 public/static/fonts/helvetica/ultralight.woff create mode 100644 public/static/style.css create mode 100644 public/stylesheets/book/body.less create mode 100644 public/stylesheets/book/header.less create mode 100644 public/stylesheets/book/summary.less create mode 100644 public/stylesheets/fonts.less create mode 100644 public/stylesheets/main.less create mode 100644 public/stylesheets/mixins.less create mode 100644 public/stylesheets/variables.less create mode 100755 public/stylesheets/vendors/bootstrap/alerts.less create mode 100755 public/stylesheets/vendors/bootstrap/badges.less create mode 100755 public/stylesheets/vendors/bootstrap/bootstrap.less create mode 100755 public/stylesheets/vendors/bootstrap/breadcrumbs.less create mode 100755 public/stylesheets/vendors/bootstrap/button-groups.less create mode 100755 public/stylesheets/vendors/bootstrap/buttons.less create mode 100755 public/stylesheets/vendors/bootstrap/carousel.less create mode 100755 public/stylesheets/vendors/bootstrap/close.less create mode 100755 public/stylesheets/vendors/bootstrap/code.less create mode 100755 public/stylesheets/vendors/bootstrap/component-animations.less create mode 100755 public/stylesheets/vendors/bootstrap/dropdowns.less create mode 100755 public/stylesheets/vendors/bootstrap/forms.less create mode 100755 public/stylesheets/vendors/bootstrap/glyphicons.less create mode 100755 public/stylesheets/vendors/bootstrap/grid.less create mode 100755 public/stylesheets/vendors/bootstrap/input-groups.less create mode 100755 public/stylesheets/vendors/bootstrap/jumbotron.less create mode 100755 public/stylesheets/vendors/bootstrap/labels.less create mode 100755 public/stylesheets/vendors/bootstrap/list-group.less create mode 100755 public/stylesheets/vendors/bootstrap/media.less create mode 100755 public/stylesheets/vendors/bootstrap/mixins.less create mode 100755 public/stylesheets/vendors/bootstrap/modals.less create mode 100755 public/stylesheets/vendors/bootstrap/navbar.less create mode 100755 public/stylesheets/vendors/bootstrap/navs.less create mode 100755 public/stylesheets/vendors/bootstrap/normalize.less create mode 100755 public/stylesheets/vendors/bootstrap/pager.less create mode 100755 public/stylesheets/vendors/bootstrap/pagination.less create mode 100755 public/stylesheets/vendors/bootstrap/panels.less create mode 100755 public/stylesheets/vendors/bootstrap/popovers.less create mode 100755 public/stylesheets/vendors/bootstrap/print.less create mode 100755 public/stylesheets/vendors/bootstrap/progress-bars.less create mode 100755 public/stylesheets/vendors/bootstrap/responsive-utilities.less create mode 100755 public/stylesheets/vendors/bootstrap/scaffolding.less create mode 100755 public/stylesheets/vendors/bootstrap/tables.less create mode 100755 public/stylesheets/vendors/bootstrap/theme.less create mode 100755 public/stylesheets/vendors/bootstrap/thumbnails.less create mode 100755 public/stylesheets/vendors/bootstrap/tooltip.less create mode 100755 public/stylesheets/vendors/bootstrap/type.less create mode 100755 public/stylesheets/vendors/bootstrap/utilities.less create mode 100755 public/stylesheets/vendors/bootstrap/variables.less create mode 100755 public/stylesheets/vendors/bootstrap/wells.less create mode 100644 public/stylesheets/vendors/fontawesome/bordered-pulled.less create mode 100644 public/stylesheets/vendors/fontawesome/core.less create mode 100644 public/stylesheets/vendors/fontawesome/fixed-width.less create mode 100644 public/stylesheets/vendors/fontawesome/font-awesome.less create mode 100644 public/stylesheets/vendors/fontawesome/icons.less create mode 100644 public/stylesheets/vendors/fontawesome/larger.less create mode 100644 public/stylesheets/vendors/fontawesome/list.less create mode 100644 public/stylesheets/vendors/fontawesome/mixins.less create mode 100644 public/stylesheets/vendors/fontawesome/path.less create mode 100644 public/stylesheets/vendors/fontawesome/rotated-flipped.less create mode 100644 public/stylesheets/vendors/fontawesome/spinning.less create mode 100644 public/stylesheets/vendors/fontawesome/stacked.less create mode 100644 public/stylesheets/vendors/fontawesome/variables.less create mode 100644 templates/includes/book/header.html create mode 100644 templates/includes/book/summary.html create mode 100644 templates/layout.html create mode 100644 templates/page.html diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000000..a00e2f3a37 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,32 @@ +module.exports = function (grunt) { + var path = require("path"); + + // Load NPM tasks + grunt.loadNpmTasks('grunt-contrib-less'); + + // Init GRUNT configuraton + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + less: { + development: { + options: { + compress: true, + yuicompress: true, + optimization: 2 + }, + files: { + "public/static/style.css": "public/stylesheets/main.less" + } + } + } + }); + + // Build + grunt.registerTask('build', [ + 'less' + ]); + + grunt.registerTask('default', [ + 'build' + ]); +}; \ No newline at end of file diff --git a/lib/generate/fs.js b/lib/generate/fs.js new file mode 100644 index 0000000000..df39bb8e06 --- /dev/null +++ b/lib/generate/fs.js @@ -0,0 +1,10 @@ +var Q = require("q"); +var fs = require("fs"); +var fsExtra = require("fs-extra"); + +module.exports = { + readFile: Q.denodeify(fs.readFile), + writeFile: Q.denodeify(fs.writeFile), + mkdirp: Q.denodeify(fsExtra.mkdirp), + copy: Q.denodeify(fsExtra.copy) +} \ No newline at end of file diff --git a/lib/generate/index.js b/lib/generate/index.js new file mode 100644 index 0000000000..fff3ca90fa --- /dev/null +++ b/lib/generate/index.js @@ -0,0 +1,93 @@ +var Q = require("q"); +var _ = require("lodash"); +var path = require("path"); +var glob = require("glob"); +var fs = require("./fs"); +var parse = require("../parse"); +var template = require("./template"); + +var generate = function(root, output, options) { + var files, summary, tpl; + + options = _.defaults(options || {}, { + // Book title + title: null, + + // Origin github repository id + github: null + }); + + if (!options.github) return Q.reject(new Error("Need options.github for specifing the github origin")); + + // List all files in the repository + return Q.nfcall(glob, "**/*", { + cwd: root, + mark: true + }) + + // Check repository is valid + .then(function(_files) { + files = _files; + + if (!_.contains(files, "SUMMARY.md") || !_.contains(files, "README.md")) { + return Q.reject(new Error("Invalid gitbook repository, need SUMMARY.md and README.md")); + } + }) + + // Get summary + .then(function() { + return fs.readFile(path.join(root, "SUMMARY.md"), "utf-8") + .then(function(_summary) { + summary = parse.summary(_summary); + }); + }) + + // Create template + .then(function() { + tpl = template({ + root: root, + output: output, + locals: { + githubId: options.github, + title: options.title, + summary: summary + } + }) + }) + + // Copy file and replace markdown file + .then(function() { + console.log(files, summary); + return Q.all( + _.chain(files) + .map(function(file) { + if (!file) return; + + // Folder + if (file[file.length -1] == "/") { + return fs.mkdirp( + path.join(output, file) + ); + } + + // Markdown file + else if (path.extname(file) == ".md") { + return tpl(file, file.replace(".md", ".html")); + } + + // Copy file + else { + return fs.copy( + path.join(root, file), + path.join(output, file) + ); + } + }) + .value() + ) + }) +}; + +module.exports = { + folder: generate +} \ No newline at end of file diff --git a/lib/generate/template.js b/lib/generate/template.js new file mode 100644 index 0000000000..8f631907cc --- /dev/null +++ b/lib/generate/template.js @@ -0,0 +1,53 @@ +var swig = require('swig'); +var path = require('path'); +var _ = require("lodash"); + +var parse = require("../parse"); + +var fs = require('./fs'); + +// return a templeter for page +var initTemplate = function(options) { + var tpl = swig.compileFile(path.resolve(__dirname, '../../templates/page.html')); + + options = _.defaults(options || {}, { + // Base folder for input + root: "./", + + // Base folder for output + output: "./", + + // Locals for templates + locals: {} + }); + + return function(input, output, local) { + input = path.join(options.root, input); + output = path.join(options.output, output); + + // Read markdown file + return fs.readFile(input, "utf-8") + + // Parse sections + .then(function(markdown) { + return parse.page(markdown); + }) + + //Calcul template + .then(function(sections) { + return tpl( + _.extend(local || {}, options.locals, { + _input: input, + content: sections + }) + ); + }) + + // Write html + .then(function(html) { + return fs.writeFile(output, html); + }) + } +}; + +module.exports = initTemplate; \ No newline at end of file diff --git a/lib/index.js b/lib/index.js index 8278529293..ba240cefb6 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,4 +1,5 @@ module.exports = { parse: require('./parse/'), + generate: require('./generate/') }; diff --git a/package.json b/package.json index 07b8dcc6c0..56cfdad6e8 100644 --- a/package.json +++ b/package.json @@ -6,10 +6,17 @@ "dependencies": { "q": "1.0.1", "lodash": "2.4.1", - "marked": "0.3.2" + "marked": "0.3.2", + "swig": "1.3.2", + "glob": "3.2.9", + "q": "1.0.1", + "fs-extra": "0.8.1" }, "devDependencies": { - "mocha": "1.18.2" + "mocha": "1.18.2", + "grunt": "~0.4.2", + "grunt-cli": "0.1.11", + "grunt-contrib-less": "~0.5.0" }, "scripts": { "test": "export TESTING=true; mocha --reporter list" diff --git a/public/static/fonts/fontawesome/FontAwesome.otf b/public/static/fonts/fontawesome/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..4dfe30ac7a723e20d0a472069a09cd8bdf04b80a GIT binary patch literal 63008 zcmce-2UHu!_Bgyk+LhP^>=?-biIs4PdkwhT35i=0Tw~(cxKIVcfFw(z_g+LtbZju- z5*OTvTkIFo9Xoj`Cdo^E$;(T13eIyf5+m&I&I%mo{r>-Re&;*i`B+vvGdpwV&dj}c z?!9w&V@SwG%ALxk#MIc8Yu5Ppto%bwQJx_b_5E8Lx6FOGPM`Y$MTsc*3y(^SFfPXH zmr|7EGDW#rblQk$D!p(6ylaPhp$-Z>3#7x49)NqYF42=0*a*52q;ccB8>;xtm3WLjQsA-e2feOclI^uRjqsX8G@wSPI1y zbv+~>;8E1yD=u{3y?f`bG>;(&iYYfz3V)DesJoDm=H7)rX`X8U!aLzdltodSC{Yn) z#0)K}p=e4XsgMLfzS#A2GgF~L{?A7Ll`^K8%v2EN|NBT^bgrlxst8jhr2tcZxX7PE z&SgL0v z%~1-f7v@AHafd!1rd}CIi>UDw%%o86MtO<2k+hhaDDoXiOYW;fQ518}toO%8a&zm2xDM1?n?M&Jjt;yeF z@CWMiUul3vh>O)({LR`Z3#lJtfS2$lhV*4IMMP^8BTVuB5f+OnE;31|qBmFo2lJdY z29w2qr2kbB$y)!l5&GyfoyB5YI(IHv87VELhtwL%08a~~ z)=_a(lu&AhUw>*oH3#m|_m5F2P-=$SiST?H?pP{`N}wVr6V%yAZJ1e36P_1t(Zms|_ajsYEH)8tMyTQXfwGYr_Z9vhi~jQd|F4WYC!?9uQtHhA*Bwek zPXoveAg5@`3l`uxkO_U%>k}qUR8I^a^cqwTJ~FsraQ9%$VBDa7Fnh3SaQ|TM;F-a{ z4}LND%ix_`Ubob@rrw%%YtF4lZf&@=`?m5r5-g_RsD9_uz%G?p53cg&qJx5xZv%x`0E zjTs#C>zH4>J{$A%n4iYn9P{ItAI5w?=DRW9a%Y9LUiW{U%!U8gH~+U6MEZ(By1I#T zDWj+#_Lp2Lna+iskfOrKuJqqGc{ftFix48zAI%GCk{9a0^Zs|xCJoB=28!j))D#`DIZOf{w29W`yf(}FpC79Bt44X2plN8dsl!9?*Q(-Ixs!~ zZ=v2u`oG6|FHhP*9nxm>N!|%K!aD&U$d8nz3*#B7OX`fiXWZ`ImE=+j;7%fN{+D-< zP!HMxtOY_JuC|_|?Md0_xJi06Kic=bHlr|d@53F^Fn>WpJ5mnq$vp~(%-Oy6P%a+L z!;{pL!1LaFNDJ*po&+c1rtX!`B5O5Thrk}4D**=NLBF|6()VDF*8lHkE~OxKM#udZ zoJsp!fR#&)9eKu#!i4$~q5lzhBjsc6_2+7*f_%{Z^@O>EcZ3GW?UqXg!A<(OS9U*5 zk+uM1+6a7MJYuLz@}uiATA$!JIv4lGbAK7MA?3n5=vROVd4O{dM}RdOZcj-rwVvF7 z+ibY+h4q2YDyS{j*Fok|y=w-2(C? zbxGes|L`1z@qc=b)`RD4aXz$xi6Quqe&D&7q{$8VYRC=c!VR!A!ksI;8|_0Si~;JC z_HYM{=12P;%|m}1NEvh|+@vmPBfQTYc>?Isc0`7eG{I$bTu^@oDI;wGH-BOg5Ew$e zT%oSwUi*=9s3*Laz?0PdAAbZP_`91v@ry(r_i4B!zsf$Aa@a(U1~*58 z*zPOAYdyr@cu2}|gP%0dj}g)8PU@N5g?FvidkGJzpXQS>ej4Wky*x#IbaI?1gBTNJ zJ9+@j2Q@X3ngx1bAhn!&1T@FB)OyewcT!=XRp~%e+Y1_17L`X;QVmoa)kz(rPE!}C ze(F`~D)m0~8TB1CNc}+#i@+KX$wXsC3Xw{r5ls?J7X^wQ5j`Oa5rv5oL`G4Ds6^Bt zY8Q2hj*HHS&WSFGUKG75x+?lW^e@qmqF+S+5h2kXH`Z;uo62pfTcFztx3z9hyKQ%i zaWlB3xfQ!ryS2D=yY;%AbL)3|(`~@*OSeI{+irF@r&uEP6#I(R;wj=;;sEgy@k;SV z@m6t^*dR_9mx)`&-Qttt%i^oz>*9CBABq1h{*TxxkxINID#=92T*(5-GRYdrCdo6B zP>EJzmSjl^!F;QeG)uZAha}HQPD`Gb^h>TuZb&|nd@Z?6Gqi%9LeHe<(+lb4^lEw| z{VW|u>*z#!FP%(h(m8YiT}ju{ZFCpiLm#5g(wFI%=-27%^Z@-Y`Zs!*abr9fIiqH# zGxL~0W(Bi~*~DyPb}|vn9wv#&V~Usx#>TWT-OMrOBJ&#a7V{DFPv$%3XXX}jN6JXO zqz_7Y=``sq>BG{6(zVjsj?DTgRDi?B|9QJE;}!KS$19aj_gy}H?sf8 z9PUzgA9uC;WcLN`Yu&fH$GRuD8{L!LbKOhb+uV=4pK`zG{-XQa?*DNA()~yG+wQ}x zh~?OEtdgC=&R}P=^Vk4(A-jZK&OXXM&aPoMvSDl#o5Wh#X7)Mu1bdpj!oJF0W#3~z zXaCLKVuv`26LV5d!Kt_@+yd@#ZZj9b#c+w7g-hddxgxHbYv9_r4(=d#ggefi<<4;z zxGUT%+#B2n+{fH6+;1L~hs0y7hup)*!_ULtW3tCIk69k`JOVuydu;aD8JiGcHYX;T zru*I+!eGON5EsVcJBaB`wLUHO0gwBwBP~2@$4Ptwl#tab}Al z-lR=5Bx}qQiCU8(B0AcT zqECP)DH}~E8A(Z;KGKkCOo&Jei;6QvC1_1rqc*|5edl5zGK?Gyw!4ELuRy ztcx&dVZEZ_$<&)IT4PvbL{xlAgef{E0w!lPGx{VmX^en1g!M9lMSrj2NLqj}lGg44 z%O7ATn+&eujiv=;jR{HSFtW0Var%*zYyE{nL%i_Vn*<$!^FYYN>0=B+!W?DNf~P`f zfORBjk1Q>;ajkJ=1Wcl^+7Tv`A;mSdLdrFrLNdwddPx>mm<2)zKooK5+OU|UgoKf# zIWZz3L7N(t5Rn*h50luq7z_A3Vq)R|ku)F^m}K&dN-&tUFeUmpeXM{fOqX686_KFT zM?-Jm#4sdA84?p=@e(6q_1b&0lVlv78-k8WYe~^+VQmaXBY_kJOcVn&q&2yE7)g^} zN3cxRn!s}sF^aU#V2Vp8ZjuC`(Xc33V~Zsv4oJ=hjhggM>}LJTG)(iEqSi30x_AvzajgBwh{ zHwn029}}mKv!o?x&1Rt>)?|Q5f*AxtONx%vMgTuYC0U}t*Jg|`3gi)IG=sy8%y3vF z5Ff}?g9!*HDZ!9n21i>w$Xfsst4jhAVggVgz9JLA6Bi58!ju#h4{HTT0oUD22$LLZ zFvNn$y~nio#VA*}xh z1p$(V1Z`|YLNv(zNCPb62x*c^qf|=LAYm=$I17x!2qbHQ)r~NM_|k$5)qxO8N{9p& zhP8~<3Nt74OLhlW&P8}+V+u=*hE^7x0eHZuH7CUZ@@6fe7FUlkF4f==nHQstHYCB+hXGdb zOD5_s1;Tv&r6kGtmn@m=Kij%eLL*lanm!k}1Rm{S^ZBB&F zV?Z|R6ScZn*eHz=(I9+;B_z@nU(IQ56IV79^{HTEP5=T^lIL0apU& z0sFWXd-NFwgclYte~~uH6dMV90`QAz51bGrMaG*_A}vvbq3$u2AQ2+T3WNNO1i2FM z@RECFBgX|G5{UpIweFP=>_mI$DG?+9(&mvynU5!N6DbUj0g8Q95Wh>He#PD+i2qZ5!J=J+%t$fYEc8MY0w zlf$YTVn7-a$qoV(wtk?CBz;)G!i7XVk4x4@CdDSlr)c9M4X`1>e^|hxhlL>m0lOq6 zlmxo49o@-b{s?mLVqvraw$+ghj!f&K#mS&}f_f$(5Eig_9^CWcei-fmxMA8CFMxX? z+>78|4EK`%&H0mPDzU2F;dpB*oVn}*+c}BKq;jdF;NCtXVni(1#t#a%@hs6i(HhZH zBCW_QN)Z)_%0!i-I#H8g8y^$BF1jXqM|4AUQ}nA_gj<}O-p%Zm;+6qc?>pj|;sxRi zagn$}Tqpie{JBIdahHsfjF%`SlO)q5vm{F-k4nP9irpj8OZp^NB(F>UF1bt7^hB^& zXVDA5KFt98w1lpr>*!{BAAOKML7$<|(J#=~=y&KFj637S_<&uyoC#*OGP}Scjb-AQ zVy2F1X7(}9gEjg$<`w2w1~E=Jo}{JjV2h5EE|oqiT`7G^x?Z|jx>dSE8Yb0BWd5@0V2M5^TPs^9+a%j9iv=6BMRq~&1$FgO4!;0n;(33-U;x_Li3d^hhm)Y-*n=M>}=Yl?HK zvTb>201x;S)zz2QtLp2kYU?!U2D(9WB|HuZWH~7gKmY^7%dfH0**v#`)o_Yp z9*t+wu3pzYgH_vY!vl&FS;sA1YJ3yjq(4LM=a4^|sI>dychEadUne}V@I>&m`=W`+ z{~Xj(qnr3gw4CMU^J;EiR!f?ilcu#~?Nf8iWR}~+_Hqk&KS%CV-jB(h2KX)o)S3Lk z!hFq4X?|UyO?{KG)z#TF+zM#l!a8}hfwl8=ZBc%8fhxbChqcEzV`5;CE&S83zMsav z|LW7L05)_unbql!^!6S((t7}!F6Uub53$_7mX>{7ul|URo4{flw>3O`tA^n90h^Vk z;r?8b;em&E#{h$1cHs(u#!GmvJ+n2PW1e8SqFVL#D@$1?^gU0&U@?2;%667h%;CA~ zN-N&8Yd7N6R^7k1cd4zbU-+NKme{p#Dcw^VPvou7VHV?|Scxt^kae!|`r1u3%2Tc2CA zNQqy-PdtSmO;y8^sgXRI<@(Q^>*tUy5@uro&xP<-u9Zb0A}b0J+e3y17V$$bItP#! zKOE-RP5*7%jI*m$&Om1M=FO`$&Oqs^vorp-UF`@P4yP?$DSTJA#-3x(?Pj??zM0iH zL!2Rb{E&PliA{^L{d!}xI}wxV5l7qY5{2AEV<jrr3lm9VgY@iXjBT)1LOxcgSE>gGoauRR*fyp*6?%vnqz1w zJB>fjtAiQbi__ui)eMJ7Cw#TwceP#4{QlKfzZ3MND}XbQ4hNwitb;2EE_gyN2Syf9#dxx^( zwenxfZ&!R${-SS1cD}Vp6;V!G&3oc2)p3blB0Srt=RSXEeC*d5`60&oqDDi|)3 z1!+v@

J4BM{x~NCAvHfChj{stA=xOY2H%i)x2M9icv^o|JqbjCNJMt+J|K)78+{ zbr9&phUBiBBLW(hgL#zazFv6)#J|D{i?e{o7FeAlEP{tL$+aI?kcHv4@^=Q9>A)6S zc`n(Sya{COK^TnHr zXXICLLkhG^fkg}sN0-q$)Io!wSdJSQ?2l7T5ygcig=K}lr408t!9)RUF#{5?J7n=* z(nTz11M$oC9?|PK93th`@KziGDTaIRwb$O`uni_i&682(k>`dqSpXB?`g>Mx&2som)7MN*( z0iyJC1i@1JG5tW3fxKOg11njssiC5>UQ=6LQLQSK=H?d{7vvS>_&RClL3+OZGbu-R zSw7$`X3b+k^fA_=c4)X^P(j8{or=d2rp04^or1=y9U%-F`|BVY1IP{_eO*UIYZVZ6 z2VKn+RTNbesGD})zG3mueodwKOOcNz(tYxbK>;r@bldC=YIbAIhrd3 zp#iKvcIvNqtg9}x`fv>L^d1iKlN{zclX)wW z*YMx+kx!9lcx(dxfGe19ZT~i0psw-tM$#!`t%VnV;wuK{_PB*Z* zKZ}8Rq#&y4w0%8!J*u9bhJ7G9=%%K&I`k-8n9~HAw6r{vNoi^@?E~$`J^=K>?fDW& zYRr^DJcbAh&>+NUbD8GMmCozel`ZA1Wi3E;L>p@61#M_K$P@*1G#5AoWEzz)m+)jdXaeeEKm%9-ysUVfp zt*frLDY@omYe#l7cah)M!nJ{PYSK8w_Md2*4H?lcRH)<>TSB6rnzifdjStSh`rfC1 z4_u;l{=wlu(7@_!g5HG!LH{bu=XT;{D>trNm6?{FS!0q}t=4joM!+qwG(;eABI}S% zJY?gfx{myw9yOQELLs6-xJyB_PR3Ha3a-huFi-}MnKA{B(F_lui9j=}8JzBzLF0w+ z9G*e1p1>hD!nm(M8^5b~nF`0?Wc+|O7$o+D11v}*LNw&!7{VSJt~tBI+T6^2!CH7n z-{+wH%wo9%yyhYcRp#;YVP?=q{s^E8%!aJ6iSI(|Snhowo3IbjWEC3oY1Fns4TuCU z#PjpMT4V8G>z@H zeNFAM4`1S9*5mO(m{sjbtZm+_;j9fRG=CSg{E^3Um$t?=wKcTY@0WE{B1KE9lB1u8 zg(q4X*V3+p{nl1pUt6oL<#70&^)&hygTjZ_)7&_+Ue}QvltMY@uqfsNc4*9?!0Vv@ zfxgTQ*?EJyLm|ODXGQWKcy86JPrt9`8p+lNdo~B_Z{-|BSQ417OK#-$S~4to znmlujVSgHo&juo`tF601)6i9XICUS?bp(=WfGuk)>yRrrMHI`WXJ)2@wx@s{q909T z#g1A|WtAcZNnSYjsfJTm735dut6*Z8_O`6F3ZQc21)KW5inbQm&4&lT00L1#R683P z7WqLT%s#FkMA>hkbLscuiLgs25po>_ru0Cwff?J82giH{dtmPoAas454v6a^{F?Q*@707c$*)Q&H?g8#!uurj7>=)dlVC~-aIOfTEKI!?s zSG-rM*Tpg2V_Er0a_?G#8 zstiz`Q2wkEsdD_*@?-f+YF0f#y+j?WZc@LbzNQ}3&>EFytENTsqyHrT)&5^kSUlnU zM9IWslcbZLob>$U2PYRy{`W)tL!}QjJ#=!)*eP#M&7At_w94s+X3U@Q)6AY(>t`j+ zdTq9B_M+K8%-J)ic+Sna6X!lQcmKR)^9tsVng2$BHlRB2=z_ZoeHJDzJhN!wqN9s` zSUhv_drN*?x@B4B@(If~F3(s&t$1$5%|`+riFxGxM@xddgPI?k_4wSC<5$gE9kj-< z=IYwHYYW%DyDoE`eSP41%leNt?A>7AkhCFXRn#DHM^hR{qpX2cK;FfU|48ad{|0YVYp9tM}#JFOyvG3 zc~oH(j@D^4+J>0Am~Ug3##(htbl=1U#O1|(xM$g(e5G}w z^<+g-<+#e@RkNy}sCm3*V~wHaT#d7KZtdP$TkVCql=?>+>YGsW{+5j`&eozf-?qW_ z$?ebVOWI%2L3b2%yxpnn)ODUePhjJFI$yjW&!*8ENX6qfq)==2hTi4Lx(&X;*iE;g zbNN-BFWQgiK&?3&bjizmH~3!1ZoL~mNxs?(FVJinS{(%`UCE<2q)>DARoy3@y;ps& zBe&kG$)9ZK_4UGcJCkqo&Om!0^Eit`N+9VB1a+4G-+Sj0W~UQ4(!`^K!e_Oe5OEYxDY*x z_uz0mD-f^6lsY%9I;lMyEyfS{6xY|6+Ek5AwGH)}*FWg)?rxX09_VYip!#fJ`kNrq7fSy)*b>6%1UAxULzs-YQ zI+<@}!ET0kD2Nw27FnV9wYq53X;M~cSbG3-GP+mI*OV~6Bu zEsqBrHpb!M@Sr<7x{e%yPLf3jS@ak$-U>_Tujmgyw>2-nyfj}uJOEZlRJI`|LV0IL zKkL{oh0gM5=ZSvS%ioG@L-Jx4K-$FFtRrL=52gyh;$hd9J8Yk_P5iMEQ0apbc!y2e zY3@quNkNmqEioBOkOs?S>puMck^iVFAOPn--~Z#|oGBg>;ZW40q>F7Gp*)1Ek zNrz5K7B0c!r?#oFaw1kvz`he?;ag|UU9Bo-%9+(OzdN^8gMEL;O8CDmoB#gPzaU1r z2-f&9_H&--^KqX$@r&2CdX%Vx8Z zXJK)j^3k+cXJ_&WVqo=w{U0KE2$Tcj1Q-TYMIae9XvKo34(z?H=feBJY6jI091x_Q zUZ|&cHT)lt(s}d{3r74%^J{=B)ygj8|3^9W`}kifdUdw=NqR)c(~t22CMX%&tpE!k zZJ!$ZA-}`y@Z{l#@Fn!ZVHW#gzZ*QdgYO_ny~iVX@6b7PXc-G4qbga1+yD@WuW@M4 zD2PkQbuDA>hlwwd3thSgQ^?~>0Nn*yXoN4h`XKNLtJJ`x7qjFS+2qb48=43P1ep9T zcQf$^NOutz25|{6v8)=r&mea#(%G;~$7buCBSqR{4AQH-g0hfZp72!Tbh=>5+Ot5r+x*MgFJeLx5Lv3&!LcZ{tlFbF5ga= zwvhE&2XyR^#}mpEDcW<|(yP=s_;B9wtmEm&d{10Db^gRfSxsG4olRL^R$pAJj(C0b zn_Dl-Y76tL^HurzrA0*=Jkej@n%I=k;A=qZ==QRV<}?*H0TwwKC7O(lMNbuONXSdb z)@Ne%A3n7Oq+uLZ;VFB}8sg{3SArkAworX)_sQKSc4Q=GC+5ZD4F;dg(wwwRB{oUZ zn=;x<)hO855ZAJ&J>EBNXG~b!E?F_?0Qt&-%7U6g_4AwGTi?G!1{Pb1O=YtQM+6i8 zIFk8X&e1&I!+0H?UfGttPlZg(zLuu8YE9c4wQtp3J=$=z`A92LV+uAE(((jSp{d8Z zHMPQkp`@rz9djY}eB9->BTdgW9z*L7`?OUx?Q2y6RVVX6B64zx+E}sO=IB#|fpiAr z_s@qMPgCqL8j3;IGsVWkFKC9I7?R(4LOL8cbX5U9*D7MARQRIzn3{51QB}zc*xko& ziC@FxH<{IF8GSirfToMhf%dmEhC#DyV7^6{I&dP5d_Aov;j zkcGH`;VFl_1vZQ!3xeZ_+rP5GbAfIHK!docn8>2(ATuzqmhs(qfG&|btj<`)+1#_4C)LgcLr3VIJmUeQ3V#O` zT5$-SR*{_rG`f^Y%Wm0Mp=m`S&>Vlq7>!A$JdJa~og;K+Y;IJPQePi-n)rj#!CP9P z=>Xvm-ShyI4%oWWDzdWDRq*z7{rMw;00CM6(ExIlB;;a9gp{(*XoiSKIyPoU$~M)u z9UUiQG+2fFXs5P-Sk;Sp{4wm1U3r$ay((-24-I%QZ8O0mhHX+b7hE>Z5Fa#`wS$Lj z|Gt{TdELHV+hKZu)L`c1i-&I8Z+G+PHmuw2|IM-4KcSv|U^@R77{58DDQcQZoAVnm zcw>EP3k#|WR0Rd4MTHuC1K*&F3QG#|mBOhNoTcE~g)F*_LZr=2^-VPz{F}XVI^UT* z1Pk?dcBmd$U>3|WknJo4k9V2Mnu^-W8lDL?uExbpRE4e@lPunTx+2q6Kf_q#k~mt`Xb02U zU~8$-w4ZG{-F-%eW_^#Ae23Pkpo0fO1Af#HwDW-ARG|7&LEz?lG&OqlwNmojf#jOR0GY_X9OqGF|==l@gg2R70Aq4nHhTJeBMS5mejzwo(KSbu7W$ZJKhSrH)#LfQZNMS6{N0HF15?YkEDj>*rpf; z{&2{dgRH9+u_qvf<&3w#4|vra1T4wb%uD8-P#4M<6URIQy(4%7sbR1=M&USYAPh%f z63zcW@;K|YqsOitMdObC_~wsCkHPiBwI8mLzoXZF`~kApymRjMUmI_acb&W@!%>)U z=)4CGojW_M2UOQ86g&CcJZtVIzR6~7RQ<4xZEO&Hu-n)s8&dKq75sq?YljMr8+mi> z&!=}MMUB?xy|?%0cI~%zg8OzG-!;;Nw1tv!+gyns;Ehma^DZ_%!J4p%_s*sIj~%rh zRbAV~y3p`m^C;y)rCec;v)cFA)nrn}57aKMqZ$6`@C_c-^^x)TS@FOmb$k>mc;tUp-UVClKkeDK#?{wEkeu|ww+ znH|Y37F$J{HKiyO_un!2#O8)4$EfbiWkS|8y_TXWI8b4$Z<00H+NzpW4hMt051v4C zE@{xAA$7~8qDy;E`u3V4I(MpuE1C54;*xYtMHTiwS%CS7^}ZPvb4p2SX<9>iS$fgd zs9EMcnJGzmg_fd>21{9T@lM^t#$9=7saeITvf}iHq~g@vXXBP8ZqG0#rg%_^?9rgZfW*bZOQw^)cP^K8v5T>-3uHsi zL_himku{x%jkN+!hM!^mK}!P?MPqppp-$IS5XnED_#{9nxdU$%4*0MMsv*^>>$Df06gh22V^#w~O1_n-qKnuYT3w#sW3N{!l zS|;HU}8)6vg+XwFwYhD#q+=c$U0*4*{7i~#3+v&(ki-l99?~C z&gr>Fmvybtm-*}|$5a(wS1EHI9iF7l3va@x%cXxk7I7e-VFOW>^B@?xA^3C z(pwp`$qI_)@nId#b2?LFGm^6Ne6#aoayRB`3ynpY#bwKVK<;7r508E8Sn#v`(pL*_ zjYDSizITH6ar=v{io*8d)+S{s>Z(AG(P*-?ZvXMB%PQpdd0x`XnwOI=MVwhDJG{Gj zW03OkoQ->Ts7;}fFfUb5B*8NiZ&oZ>V#OLeMw`eo2EjV4$TJC$Itg9H-p`@m? zvbZ*@I<{g{E!J0JWyQ0V&LW?MrB4-wsY^2o({t0}vm^7i7Z^){Z%fK%`+#G#7*1^9 zzz~mECxy4PyXl%voxpRe*S7d4d0%9YgE-O*2->8MNK^j;OhNV&6T#Q z)~b$*u9(`Ss=|uc>ZrQ#hO(w|TV-w21)p;$=QMiwD!ShK{()OZkgsoLXZ7K_Ekrho_RT`$sGg~X8HTb=j)XBE8 z=JK|3-*-x0$UmGZORLB!FHje3Pr|B&2tplZ+@s_|Sj9*;$yW%p)LUGJ(P7gOyvbyz|idx%xh3JsJ~TqC8~bn zeeX{I_e=M1M|(eHW!0uKP&3_?HDNRkEhD(APqNh~HT7ElSr_h~+{66~7w%gC_xBm+ z(}4SBz?}~D!=4Jf5RIdChYVR^%4K(KpGwagT69J=UWmu(jMlJTqc4Ia-D^DDa$foA zkZqYX>~L1^AvJ<#y@#ylb%%Vt*04_b01KYJso>`WGv5Z8A;@fnXeHMh2sq4USHh=^ zBzs3bl^-JR0Gr*W2oZ{gp~xX873?+%L@17ea^*&0jl8=D4Dt{2fBtxF0g&LFLKekK z;D(Y2KYIu&esqvx4+}*vxPG7}IF9Y|A&X)qUqBp7YTSqWAh4{I1eR5iz%mGqfPz{Z z#DUHRpDPXtVue=dwj)GQU)sszKGa77Bf)sx1s<=b!E^#&wNNO;7x~ehPD>Cg_*!eh z*W9Ua1)Pu*)&f;}Mp1T-#yQnFg+@!Hvse-wG8&&c4DqR8>W^+k8njeupX!`SXE(JK z6%w@rjRR|cC?pj8-JoYXC7#Qy*;C)$)S+(f=zpj4@3O`!h_6!BHx%bqX*!?iU)!7_Yf7m% zo0Q(0KzSZa{9)Ut>TRFmJ*ayr>XMzyiR_G5#YZKFXKR+?E;u{t-nLBU9lm{8!t5!~ z>i9mwoE|R?%G0m{X(9smU(O%L@+n0a7g}P~vfWN!V;_ zYZ=7vHI_70*=(0D`#{`sLs?^4L!m9dTGk#DRUZX@j>q_!LxGCnz~MleP_EPw=m@0I zJTy;n>Xh}(m{UZ9@`*XM-Wn4#cdiei{_nn{z5LNUqMXJ$UV;&Tqwl<;Ip2jxR!M$- zMrK-eO1><&s4zE2iTCW~k%XzOsjRHgobI~NaRm;`sv4WyltL61gfO64yvIab{}_+* z93=`Q2iCXCeO&Q^1^H#A1saPGJcL7Vpmf-O5x$B$@lJ^6ORCG$6x22p!>&|aQBkdF zuC=w4wIrbQZZzYw?`8k~82LYsj4Bk^!|!dgbmgf_>uqKAs`j?p<|Yj>h{!;u@lU0U zgJ17|cwc~#{5CS9l_ez=CB*$ySf~jOCL(~$Yn?P;D;x!066OcuOVH!&ArPcaP?eb~usEFZi|k~!gVg|K zN3!j0br5I-V$VigImBqQ1OGDM$`OiS_ebN1KT13lOCoCY#19B@WSt|We#{Nz&O1WC zWA&^fw4e8fa^&U5Fkpvl8F@1tIvi>;S)+PPz79yzJ*Ey@uaeXTUCz&s84C(EodZWM zI{WX6qwUti3GIGE?>drw6536fIwg4jrMjNXqwQ)q0w5=oLBYHeypC|Z2@Yc0H2#hp zjDf$Dtz<`P9u^R?0zOE@4u^gZm^wm%bbLwJChZE_91eYvCBp%K8=Nc%wG8n4BFF$J zb-*-;FJP&{038N>&wJr4^eDs>xrtlsFDXnWTS~7Aju?Aw9X%!ufr`emzK%SyH_n6& zMGD&yiD<;O89aD5g8Z2AqW+;hVn=$6;_~*-tyivm_@U3`%hu0BuQ=1~X+HLJd%7#@ z8}#A!%S)`Gp}xcZ!8^Y0h+K`e^&4(S9ij1UqG%OrF)~QNQCx!FBp>vuF+uN1xb!|;eY9!P_P^YP|jTE*+;WytvJYV~0 zJRbo666E*Idd_L%wxUZ zy~cLJY+ZMRAR9QB;Z#)tp}iqe5|{|THV4>)vnFkRG+e#Ys1LO$;gFv_DgEiEFWx_< zzIyo3!55Y1H}wU_?ty7ir)H(3?c69UC;|gaRajVAU97=Azh*a-?6bA_qDfyNulLX* z6@+(%U>*m9l)@n}Cg|P*o23Po!GZz-2OHR}#6b(+ngoXOH^E!!N}+)rz(Y47RuW_- zmP5ckU>Yc33cIe{83@1xK_Un0_mi9eRVy5#%ow;Phs%(toy8(4o_r3&S4rV$GL#6B zc&5KTTO!=imW5=qhIa0Cs{;mJ@k6-pTN9h%DHNlYk;$1BhZ9DiAcCIQGv zQXC%&{?8SmI9`S)LETBrWgHJRR-pJ$C;@nrq$vI}f>xJNJhWOl>T4hR+`dckB@aGu z-iJ7*zvO-K6g1^G))yv7C??4%c*@(XFA_>HPm)mbA0A4`g?W;MRy2x7!EmN?&yQd4 zh$TDDL$`c@z42ju*auHV5E{$+KJ?ItXhU%P+haOw?dkEgFSReF(S*eSfgB?Zef&EM z(#_xTpaQ>)OK}D0URlFE2bc1&fq-GVqIvEnn@qg~Uqq5=8QsK_tKU zw>_J`QrmUT9SZvj{1f__d;kO=0{!e<;d}%>1p3*&T==-)XZs^+FF!gsMRXnHvltF~ z-`V}fO7JEy=pwpEcMH4@qQcy*4*CGJsQ52gvsp8&8CKI4^WXVBT_nVK*dM9c4?m*2 zyNF~Uwc-1ri|7&!+T@K3Z@i;%^#H=UABNKpXD27JNu6O05kBTUEf8-Pp9OG(f@m{H zpl*vAUBs7Yz+&a@jcXyqbM1wVH^?CszKAbET(epIAxNa|W3H%vaB4XONZrjuFo7pG zDCINO{wDbbW~7H^w1LkC5eJBCXfq%l-z~r}!zVD^T^cy1zX-iaSH7|P9r(zGdFPD_ zH^2`gg{8Sj3w63RAAU$A-!albkRN^hGYD9L4uYT*R7(q}mavR4U-!f7^yNr1rIBd!HDS3pR(&2GyjvH2D${>(XRGaS)qG!YYW!Cfp-V*mGW z@T*v^ZnQMUwgozxR2@xi``b$PmA7e1`^x(Il=i*on6j|k&xp1(!o=MGYY|*4UL^PZv*Hx=)YHd|E z6*4k5TWN8vrmm!_uuw^COYk1U;iFuHDvInc#BbJ9dZd2o00vWM>to!Rf-0-hFi~ zP0boqk1|jynuh*R!G;HiKB0;)V}O+DMaG@mLey|3IA>DEx}*?9Fui5EXf8B8nM6qAKnVPWz#La>2XMqjpt7Oc3iK_`MJw?U zb`#u)!Rc(*u5dhi}(p7 zXtKy2f+oWO5U??v*gT4l;C1)|75)H#u0v3u`4I%%cyKYy`&1USHhINzB^ExaBA*!| z>nF({M*)w`TLun?aX;dzvf*g3jz|ohsZ1r`XzueUTMtMSXwDZD@s)_~AAC>*_l)@hnL>$`dYV_3h!QH1R;qFoBS z>JyN^s!3?U|3q@qyKw#}Tck$U?RQ2InuDdE@aQhuqG&8?$g5R1CC`2>O_h^ZlvkvA zW(M83X+!Nsat`?>4#ThFP)&A9p~_hBBu%uc1ht z)A{4(eX7RB+J;)q<$t4CyC>4x$B?Hl9Cp@JDo;7LC=Qn%E*8AE$f(LSr5-##X!57c!YBojlFGx-U!&o3Yx{{cI~?Jb1cDHeDgKP@e@vx@BU%)AkH zZ)nz}+jr5mRSk7DgxzaL*u99bdvR4kkuu(HQ1m5*AKaU3rgt zja+pdw@cXI1n4)LzdrJD0vOen;d^jh;5DW<%YW660GkDrGdTRPonRevhR!O` z#3}f}FUa}4Wfcz*WoYJga!&f1=IjrB-@o#eY-nistRe*QmQ5uKPR1t_t1;$!BXa=B#5Y@w_xtxX=AT)<4{x%4xIi{#9tuLun<3NZk zsVmBZSTg4TIAuea6>Mv9YhEJ+Zh~u}B`2*uRh61nkOel;fKyKAgM?>aqR1g20Eah$p+%G>CWk0;RzEj)Zm zlE$isTv_s&CYsKBABQkR*hL25b3MF~c_FX-)3p!}geV?`GidejbvjGG^N|D?1PG?J z{GC}$Lq`ilw{+$AlpIhG9YJ2Sx9)g#_u*p%0TOEpk+*@jfJKZf9y2%vje&1E(0bSe ziBOR~D~8+tnc~8>##r^80VV*m&#c|7!T)yp(-~=*X0vkl-*QiqPkp~e>`U*wra}L< z`_pavTD!ZI@csKww^(PNku9hI=WIc zS@Qod_9lQ$RD1g{NVD9i=w%XZlV+xfAW}q@0;0$+D9B!RkbNnorL^h3rF)Y$X_BT* z_q{+j)+!)7vPn@9D=32EbwNc@q;MuVDffF$TDji$`@jG1Gtz7`XHL${oby|r=lMOf zQ{_}w=ziVQ`Xiej^+T=1_L zck`|qXt*4{DWN%Kmr*`%Z%|vidT-&L@<#q1Os$t+A(K<($RL%Ks)_vPpNah3sqi&> z`NQ^u<*l{xOE<4xx$Qmc{=&Uwa;!xQ{TOhrm-830glr`*_wKp z66aF@GH(Ssf%YUzWn>N6?WaXZM*E@o-p@q&k%tJ? z27_CPXebO$W_4ns7^Ywre=vJF!8}Ha=+Zw7qsOUTL+xv`0y>mx;ay_41pT1+Kn!UgO?a02o^Hyh| zYA0dn8|WoIpps)g+YqlR-3uUhjT{;GI7SCBR*r z__Bj{j_4fG&2jvot?dI3Dp{amB<%KWNmSMKm+Cb&w{F!4i1kNlv!V_~;mkaZU=&gI zVUSC1oJ+}ov=EoDtKOJ5cgh=cPhYOretHI=U6gk z)E&v&leYWp*w?Uo=RP?InO2*62c!~uY^&uh8JLU^uP|f+Y^xX^;Rr9>mhYnjVWZfP zSeU4xv!sd1DT!G^($dVp%q3x|;VI!sRQ7{+o@d8UV2Ym%ix!Y1fY$*^c3uYGw7y}( zj~od_N|Vv;xM1kbs-x<*UPgq00mTs5`|xV z1P`<)GBCD$6H*OC@qKM_oxVQJrv}`UL{qW8SVLw>iyZ~UhzTFDoU$C-o?ll`S43pP zyt6zz?gR;;_x4J`Vlmll>ildg=JVjaA$zv&FRCl7%daOd*LoM33QCI9Kp6a?BHobP zB*PTkxboG%r&jXBR|}+q7e3}DjaP7~_^Rs*ZWg}kS{K2Bw5yP=_=Lo|eMm0_AE#i^ z9J^|^mW=xO9-=9u)x8(^{r6|_>0j)tt8 zHf-HCIo;0gI81|_0{mF~lpWVYQg#X}aJhT0CeLZmm7k=$rB}6e2a1j!Ro7(KW>oV{ zhs#c%QTK-NX6YIojLcb#%zBK>lSDb~(csKJ!ClP;9)wYSxzYbUIPP}Uv{|#?|$UeBWyW*szTOI!H0QkwYj!NjYAwwIvRd}Hx=iW6sy~!+SVQAEi&%F2{JnulV=Y) zT|>R3bO>m+OX%}LO6aR0TQw8|H~Yk+Vcag=x9yW*4eMG~?pn2X?b+#D=!*CRsXxx8~9sXvW97xE!brbyWs@dT%k@Ivp-f4|}@9RW}tcu?)WlAEd=*>r^@ zN7lP4PRsZ_t_dpGXfx@!>}=lsh5G~dm*Q!O!9-`0ab$*?w2*mcVLrbInShZqkMp&m zM{{a-%0E0##=`J^5s4NuZw_sN1@TP0;$K?EXHb&B%Ksup-6!P&*5Jt{-yN7+ukbYbQ0e= zT~^}qQ@yoh!K-|ZQTFOr0aZ&J zD7^}!G~QgKFV$e7&M7S_DmC%P#At~)5q8M02os1M43XZBY+hgk;#L!35F=yEQX*Yu z4A|UABKRR0hd}HrEdK9D@EP%C&_QO;^aKP+*@agQVtDC}`(R^8-zl25b;CXj09mcT z?oS@Ulm`kRDAM)KM%aMurxmauT}b_k?Tk=Bl*(7ccbt7ybV)1qA-=zh^u%Glym(K; z{$p}-u>@e}4U9jB%VX2o>V%r;YIEby#mMTeB+5GS_Fm^$(#YkV5P9;pDlg9fv5ItC zYHn6$W|k?{mI2)wW1dCMP0+7CugbEenKQF8vvWY>u%zc_=b7a>GD}`gex^-6>zvAz zmu<-~11fGbWE--~nbvGew$)@Z%Nv7Kd1j+6)0$~XN4hX8J2%~uVac=^^77`s+a*G@GpQ3z;fgnkCi9r>19Sq}wtJas}>bz1?Q93TFyb zMk{n|jH!lE><}^15Emghl%&Buh$;tP!oO_OcGpzh=C~k zB5vt*h$sOe?*AC3$}uSP0evOIFBhMVgb5?`}J zI8goWAvI^Ix*mS*x|(EsN}9<#fh$d)Y?rru`@^oEG+d@1Rx`;m^7y`e_I;W> zOO7#5;A|7@@ww44@1(r5LcO3ctYR5oy4FsgT8??yq-xU>AKe)kL4L_isl~ew792XL zzPIK&mGbM>r>uvXh2$`OT*DbB&|c4PSkoV^`HkH&YQwZea;m4(0_ewdj~a&^Q#bb2 z6_Kl#tI^%TSBBr=j~?E6m`I3MD3NOJk*Dmt?tn`QOCz4#Bi~|0n}Iu;98uYFY}qzG zy=rN7biur)xsCIi<)zz#8@9|EPTyLf3ENax93jx@e*iGlX8@TlPpl2!wf!V{>-+QS z#*n7?dVccm;h^YOWgrnADqx(}MFj>t=zOF!Msf|S21 zTphr)cg+iI>S>oEAQEsNi}5&Z7b;Td(&aj>a3?cgh)pzLh+-#SIzZ-rO&m1*=I~MO z*W807zFyZ{cA0}H7bxa2w%={lw&cYr5&T;rw9m4snm1={ubC;(tzXeplKL9iD%X7& zcK&1arNgApM-6;I?J-Ba#$wGeScLM7&*^~Dt@6T{YMpK+eRldfb#!@nK`j3{_5N`v z@t!D8DX)vI+;@>Ydq7iD6REEdcEpnb6RojwQ)W&^CT1gNxgTRd_B`M#9f&M;pv$eA z8~%3e^z@JSAG=U{W#)!A!X_okFU%ReZ-@qr-{&DkFg4s9Zo%28DyC_;nn#eu@~z9_ z181wL*Xe=(n#(UVEh$-5D>vpCjA}ZJ^rFv@fgyZ)SZG$LCMw!wjuu*RH#|OsJeMsG zpuH#%qW+q&@LcmY;bpL3$1Nl?G~$osOHnV5FU~1877G^+ojQG>O%CrB(X2gKarX4Y z+WT`aG2gWbks#UUw*B{c&@lGUXeq7t2VEjwK#+GF-9yH8UL-#|FOq0k1KA_#JyHlCch z3vrTGa?9h$dk6+dm8H~O&p(K-L?xbhro6Xz9fdSP>%gc}}5FAC;GGn=1v>Q~h ze)ASQ)Y`^h%fZ*4K~;+H|r3YI|BuS{+Z9h<{2x z)xCLSqNcM(I`Pe=Zy*b{#QmovEj&#Zrl#$YiV{VIw#ua;Pxb^zLdni76yB6f<0JrR zn|7*mD>ZIiBGTNEKz~TzppoCwsb}caTcb#!2?@NuUk|(fDUrSYRV%pNkMAeHheAYX zCHgQ>4z4&_f)pTpZ=`qJf2e3NSx&7)LTx+bq((+;JBSsLb9^fA?MLljf$^jSiPekQ zT74|qwy(ZIwn>Lo4bJ+U?nPsa>-yT!$6I&5x3s0xB z7J4rub22;|_-wOnOOK5K!&LA_(n9Fk#3wu>IyxhK8J*)zXPpSQg<%t)nAmjeeuB>O zrgN6D4bsDXGVonRELK#2gYbuKVh#7Pg;z$`Wso_`ycg10>7Gq|%44>t*V)Ld6W)jE z9BX(*bbY!{UB-4>c?I$2(XqEN?RBaGkZX(pKkV_53t>@3ZVC9*&R=98!)P#kttZ=A=LsxBJo89CThEC z>YO=KdHRjC%MtwzUgMr_NA!tt%c&Pqfpk31!{jdi^Zw-@+S`QILwgT3pD3zwR6DBW zHHF8Be1`_@-MkX)kE_Lh`rB%;9S-Ot@6)Z2mbBX5JD>(=K=m&=f=3UidKDc%WUdgh zJZR0vHS*1&(?%|1{t}!ebm1?z^TM4Ck>`c=_wH{YUYe`gsy#*f&F{*|>ryCZ%HbCI z3G8PcB^-S2X+*Uazn599T<9w}{g`sNU5n{tOt4Cd#(PaVLKFfQdaxq5!d%X;uF;)7 zq^`BrI;wbX>nlM`G5g>YTHeJ~@BxV?k_}a#62b@V`iu>f2YEZf-wH zB{~Q1&^dI)k4Vp z{}LWQ$(Sjj^NmE^k5S4V>uB0@7r*M2>hpK@T+qNPV8Jn#KKc9Ezo_7Dt%}ovX5qA` zxLb2@T9sIOCaZ%x;W^(Qc6m}8k6*HPVRKYbq$AQH*A-Ivu^sB0O;>L7+>bYj@}mC* z#IR)_pF95v&;7pY(%Csv1^SJQBde-v-!E>`yuUvts0rCY45$VNICNUKx<)XUSC}BB z_~fDS6tX2siwd%Ty)~vFv)X>)hV8e`{YBGM+PjiL$LolWr<>*Xv=(p3BscEZ>_4Gw8_)#nt-YUDW z=T7x`e($};`^3u=mH3~R3Wg=G>pq~pmQJDyo^$MsiODs`3afSVbSpFw5mrZ(5EQ&N zX1Qkb%96@$o}avX54&ro%|8Dzj}du$x<6HF{DZID+)gA%YaBw2qsCEPe4-h5NvpiQ z?T5?v)lD+)lRXIUNx8f*WPz2qB+*|bqD);HtI!|Ck&)L%cZj_c(OPc zXQ0sPn;112n1^#cgW~C)CHGNVJjp&q`V-DzC)yIyr=+~1tmF`O4In*-6z9}GD9f#G zAp>w04wE;UuiZ$ket$>3{cvUe@u*57w{tgMXwk0*uMkgUySrRfXhSY3t1#Q1m6R&y ze#6I*Rn1E`fQpfom0F(=6dPxf=NrQla@DDs$vNq%Y5KyLguIL-oh>D?FgY?#Uy_n# z(WhkOL8&l3%arR#F&pKXhODeijU`E+m0J1(Cf|FWm#$Y$;Rx=6oBQeNd;Tu5^VC^yexxR z$WBhTWn^{r7#?*>MrKiXVnlA3Ji2I8g`T%(HW=)A#a2V1#bGJ3T1#@@Gi~0K8Jmp+ zx*=I^uvl_IbTM1ZYHLbmw$))vE>1Ni$`egR2{D?)(yf^$p)k5Ut+GI#mK~`#@F|9v zs=PvDR(5u_A;l4AO?4Q|VXanEV#d~jBwJKr_ReitvDumFQTg&jOL9S?E#AJ>o>7@m zYN|*rkr!mdRwij2x(0K$pf6gxE5FiYj?B->%}dGETT(5^pj%T4V@o0pkx5y36O4pKho!lC zWA=8l#gtc)kZV9VKi`0$x!#s;%{HyAHyZP7Mq7qO9+Ob8GsO(FvpFm8%&qHR+&&@C zwdUvKYsw7;2}P+UOICii#hmXj*-ZA_B2#`=2J~Rl^Nq%As5$8EQOPM;^0ch<%(U!G zr1`UQ**UwRZzydnZZ1SzJ>8z3Vad^%vgCycwFM={gBht$Ja0?MNdTbTo>XA9oASyn zkdm|{+p+;2SZA)NvE|og7%MkKKVXYJA#rsPIOLo_(PA}Il%Ol#4nrepz0pO_ev8)vc^BXx!>CM94< zGo+aGnJHx!`<8TLmANdZGQF#X;>;>sZF$y;Y^%YMk(*@J=Oq+{m*tyH)dgu*Z1e0c zeVQ$`Jij2nu)=I9mgm<5XP2o9ip)j_UyxAgu<-@f!zuO*d&Uj~f4bZc&kdHJZc9i+ zET=vtHUq!KV9m4T<=O0+CSzf>)rjAfl$Vj0T9}=eD!0XD$Jb=o3>AgO1bJSb$(*as zO|-_BnV|X@W60(+QWH$6nc2pOD06mFNmNc8t~RhX)6=rj@bj{>GGjB11tv>jKI<@U zVmkU^PnFSPEXY+GOUnw4CAgUw^{TAI;V5(znrpI)Gi!6|vTAcP%1p>R<78WGNCMfw z<|wdM)i@FhlEagV^m+MNj{N-6^1|rS%(6^tMv*=%uhM49l~?5D>x)u~Q>xPq(FF!; zHk8t{3K0Q&c@XVAjcOy9ji2l*4enXxD-8n4rfrhe=`FsZqR$?Gu455-w)6GQ*S%Td z{yq|PyuvxoIZop2ElyKaCYMA<(*!yoW;0J0Jdl8|3GCzR61&w_Sg3Yn*i&qL>#V`m zlQfyyE+i9_3FeaVpjA%2AQUz^TAP8W$|BC@wEOzO!dvX?B4 zNR*xJstDxJyt@A&Btn%s?bq-I;(fio>{iKug9^Q2t(f9Y@pi|_x-@&csW{F!nV2G` z{H2rum_$8O-(nhEaEY05sr1EqH5&a9ad4-y6a47_=zT&yy1f~A-Od2F4oX&?c6fT! zUZs!%6xacB4()&t=p==^J&QSL9gL^rR$3J@zzKaNyh3@( z)F30E2B~9eknC%3Ahqzof6tTWJzcEvsr3kdbjv+}Dp3ongsqDzVPhl$Y)L$OVNbkn z(~@CY_QIPr+GqDL48I(cVqU$(Fe0HmwF%2tgH@{Z=0Y25DE1^I9sIE3uo2&VR zRV&k0P))y^Q5wpbY2B-|*U!s-7l>N=@mD_|yl0lXKIr`CBi*bZ1keS#9FM1o5Cq+< z2ZKm}M>Z?q0aML-X!rH%oCx%%TNw;1nntRwn@JrYb5Z?9QH^HB%KVa5f;rL@8L1u` zI&9Gd{$BRa?|l549Ebb;=fi-zfGTl+B6MuviY}lFe5I=%2H?fWuHZ+XQUJ39yFQ#x zhm-l-q#j&q4`0b1ceLO6nyN~EbMuaM$24OV z+&_C9Teo9#GhbC%Q@9gywkfdybFQQ7B;~OM5!=+A^PLM+A<4R^Xuf&#)_sdL%xhh| zZ)@{rAu3vz658E9j!oB*b^lTzx%pQkYv@|m2$XPLT;~GS7ond8p5ob7l9LN2HjLMd zoftenP#E!@*JJRn$EQHBiCdy+So z)`Rw*l$w#Ao{{QPxpHyge9cP(Ll%qz;^K{|15^8_zrJ()>4oyeA6yOlLBq}N@$+vD zCvOVmu}?4kX8+UNoYkD#2(4;Uo{2p6k+%~alVsX~y3-V3@vy_)YO5$HsxViB#hY3k zTO{|T%bf#M5!==zuh4L{J!ZX8xo?(0dwjC~kMkeMYwKGbhcxFdN3T0CkRH?a4wyAx zKB_ZOwQkmw=-C?X=@To~IBK^Evp(4S2kG&NeBb#`E6-~VwI)Z@3+LyrA3%Fdlar~U zQw2>7lPTA1_Q|(d^YioT>%FfnPfU|UCnrH(M-NB`eN{yR{I}JoG2LJII`N{$XAakA%d4up`nR_s1CW;yjkED}Xwu0rG zJrlI&HFsx^ue1srNq2yB-I6%nI)Pk=t2zhsZ-8{+#4Q^(2=2jXXv2mr6BnvGp+kT@ z#8%q+A;M}1iMm^9kczu=i5{oNW%Os~c$Mdsm`*az1Hi#JGPLU}8C!&&CY?RhQ6rWy2jOtZClG(tcN=cL{UMKp?U$1M z>lW0^*U-mCj--zT)&%ZfCx}DbL%>>vaF(X(^yw-*XIKUI5OIhkp){qcTD@=Qj=j~@ zsR^ZsUAn)7VnW@bK=r7%-yXGKVcp*Kd}o=nT(a!&){CF0Nnhl~W#qX}E`}^W%!_}z z?|Is_YpOo@;IDS?BJTLvq!(NJYk*mL4ZM#{1Kxe{@?^nT-dQG@`Qgp=-)X=wd>oIV z0w55Otbs-seh{E6xP{q+DLsgAZJ}L)WHLr*lA;rfo;!egB!E06DLgQ6S>?X?#A1Q8 z&=yHiQrVgq^+To1ZFeDTN&~y1rU)WF4tE|ED!L>gnn`oFBm^dQIisCHYLn5*TpfPe z9J}^sh4Ln%p@HBaLkXq(575X6 z^!Pu&a0Z6|eLHsLk)D_o?JxdDly`O#dj;Mq@APT9UqK$<1mN{Q2={ykH(f9ObF}Kx z%HwaA^1l$7&5Jj#sGslMYHrJ(uU@+$ZqxcT zm33kKyb%&?`p&_&s0*5V-+l;zHj`7PdQQqc<~N&iGV_-tq?rs<-+ArSknz*jP2J4j zoFmy$wzFZErnxFMNEl6{w$hpESTi0xc_{Ujq|ku79JoeWs_*8Rv|hbyo-LfPb>DCywQg2JeAa{Wud z@l)k}u@P4@v_V@yp1+Cd)Ymy-KGW83K)}0Ko5~q44J!{W+gLWOVP5sJV)|U`koQ&| zl&?G(dFY7xO!bk2`}lna&sSd6e04cw)>)xttEj~XrvAN5Xur~u6_eYGRU_viO3un$&%I;hq5br!-%GY%4w? zoG3b4bF|?|RXHObG&%=Hi`CT8>J2>c! zB3@%2a3*fSVP8pK)eXau#8RESFy1d=GU8r)$Kxi^|^*4dk*j2+gg91tf9EI;20ivGl{>PGbf6@)5>$y#yUe~k-EZK zWViDc%XZ8Aww<{{ z7E6o?p~lskRmP=;1<14)7y{=T=V{{Sn=CI0=5_0HH)#@+a*RoW88^lPM|Me0xl!&b zx#a6g29*vRP$_4M)V3{UdSS~Lcm=Bi6WLS}L4mwi04g3Sz19O}h=?1Lw`6b$PYDw+ z0a-mGCWq>&6$7j_s^%!y!S-<4*J-iW05-98>5m}?_7I5|%sP-`9pEcn-*Y?u0HLwn zHCyHPfU&wB_({l+XUZ~4lN~%=N|qvi6mMnpN|tK!b-D0AB2XEKQXxa{Nao2>x|A9H z87PHdg}Lr4!ObcKancHYqp#}_nRiMHn7y}ZHd#EIDbBLzb9C`JvY0GBCvk?mN1f7k zMmdL{0(6a`2AQb}N7!PqHkh!ju!vf!xDChbbID7&7Iewp&Q zz<>m8&SB&=U`QF%#{^UHMPfm?bq=xgLgMlh1hr~NEq$CfoXovgd`6yA^5Hi`pHfBgOPNhDm zzQsEJHR<3Zj^uoXj(c7F=K7`PMKhE?v1s%^$%8c=Jye~QqtyeYKLZ*W&(MjGT^HH%Ok{*MkLIlkoGw#5# zFn%SS%sL)5X2GkQm&=_&|Iw0g1ww41H=N_ZHW<@6xJ71Bo|J}tG?m>DYj5V@z?{9ee>57do?^#wcmY+Zyw z2UJ@?^UaBZ`wba+;zROm1yKVbGf~V}k-@J*mSraOoZ0tep1S(!mM<}*7HHywtLkVgu?MD{Y z)R@e*JV#fhY)OvXte)SvqIgb;R*VPsBvF;qaRuc3K#|g+RngU zh@wn~z(EqOy$w(^NTSo}bb@DqwKl+TOd`_(jYB_T7!X@8g)kP7a#Iw5vtlOT0g!_g zz}N@Q9?$`x&;hVQ9|nB=cCq~ykSKGRoIAs#-9kcKHB0;O-zD+N50 z42#eS&ZQm>1%%Gs9S}iRKJ38H1f75>jz7XPu*tkL8FPB{Ed)U3vV~$6KA6G!$=;*W zU0*s`r(y2sv>xKj$EuLcC_WkvBUyq8MhfntLOyeJzwxxENBo@j?05CU(E=S!9;aiG zIDeH$Hq-^}3~82k?m~RX)$aA(q|X9?Y@Zzh z$6mhf5n;bh9=mn$BEE*TISjYVP|`#G-TANoV0kU)C{jdUBhUA#AYVK0kQ-bWx$Eku zqF+CZAYV(Xd?o)>aeIC>zVSJg;BKBcanRt);}I({S)ly!sH^vks`EYvxlN>;{3?Q+Zzhth#2Vfz} z4|?v$AD~ulL&FdJw||3M#5mCFx5S5q3G5C6d9n}6_gEZ7>Y_|Xs+|vMsNQ-=Q(se1 zULovmIlTL%x=T>pJy;x!a14qPX%=i;wlPSEjY&Znq!l|N8$x({Dr8$UNy(Y1sRI3j z{vk<4LM2I^WJ$KC@(m%8J6346=^(c!Yz$hqaY1)wBaykBT~&}y?moP`MJTT*Kuxkk zTdPAF_*A248S9mPB=neyG5VpV;za))q>^glvgB@?giieJ1)!o{RFg);YLdhNFq_<%jJkPgtj;E*rtPB-Kur^V&_-Iy z<10buG-(={6cbxofN#QtHxO{;KpY(lLK#Z%ASQ>^V+y^vXtBk zKI!?6tU}1%D-N$IL81ppcr3EGVg1E=mE5lZjU8Z;Vfa}uE zejsLQShG)Sm0=)9p-vM+ZvDc-WP!I|!HI*XP21BHw`m|#HDpC8X`nx=uF($W8eDGA z7T5=~c%XmU|Mn4^P$7&!0(vs%o`v0&&c!NQR8(H1CNe53JxXwYA$xPytT*4Bb^hbm zF&k3>S>}HLM1*HN1Rkr+QI*-F9xnDC=9ZAnZn?&-aQCE}-MwEHjD{RTwtAz&j>2I! z{^XgHd%xEFa)ZdUMVeybt-XHs7tJr%@wQk~gts^F_Un`D7n~6?Y&P)dUQ%@0ox!Tt zwaXPR%Bpg!bE~SVja5%P5Azp>#)}BoGt&pl88e0Ku>YM{G*zHnC_Ryf0A$cRp-oej z1v2OsZCeuD+b#gx45)#02EfjcK`!^Wgal!?uCN1}3G{`@_N06tgpp9=0HrDvh!#PD z603u&wGE*~4`ddwKn@&r?p4nx+>e~gsq^6N=(9(LfE2h{$MW{EI zh3tss(-Je|;?>-b(~oUA!_Tchv;KnS!kN8i>V-4M8ZRO>lvXV4C@*VhR@bK1#Fz1< zW%im{b#rV}Xc?dX;Kv7-uF5Z6ZTbFB-18Xbrxa{C1oyV9FrTZ6OwuM46PW^n-%tT( zvTL6~wJgI1Ahf2uxTH)VfdJ>Ac7js}KC7>*N`^vwl2vtD56RVI#^}1#JW;{4LzSA9 zmXXfWdlbQ{jMQvaves+`kqLNsM6a@;qFLr4R_jOy0y!Qz1y5PA4&<6vA$CM{3vgNB zQuwP)XMid$F##^14g`}}ttZsfL3J|b53;gfC=Yy(+(Si4yE$KD&(B7*4U<_1bm7b( zE26>H1#D&MqXoC6>q@gz9d1or1Kd4adx5w%SwNX#I_|sdvs7f+TJkYXJT3FF9)>}XJ-5ga<+@1oZ(#jEu#iwuZPPHxnx)CUBwK%X#-i+@0h}Q8tB9S3$TzC)OiFf z1nEZmKVgMk-Yx?bGM!m=g4sWok@Uc6m0%q5GmsNSvDT4&1%O~X?JC&A_#M*~ZHPDg zRkjuC;?SJx)S+abGZ2-~n%ZQn3NC`fp7a{Tv0<=EPIzWE^1K#wF&@k46vf|PL!bWD zSUo26+?|ZU>Yf(ytb9~f z!DS~MQ?;Fe^U26h_<^uZ1cFkAx%+n&aOLTwfx7*uBVRD7Fz=}Gf zfGw*-C(K}6^)jCE=W(lJ*Y*+re>VF6Xk!4TOf-fPS6@PcG6}Or4|p5E9y78tb2prD zH{!IDQLTsK@@7A=tLPEk(wOrO4qP+mL}|K&BG_7m*@<&jAzCw9+a0aRwF35PVbL0I?!gI5USXa! zS5AiG^fKFsWuKh^M(rhpW8qP?s<1bc*kqb!?VzV`TIz}3JUHPA--L%pFWscZWwbMN z7gh}^?F+^c(g1i!QB6|x1ai7w6QJnZrQN=p<$f5eMcT=r3vU zu7e?izl6(mB{w4CJ)*n24>5SkuBy_mzcu50^PU0^O z4u(KxQ!r7c$!K7N1egH)O{2=-;2LdHu!L*AEyclf66j6`U~kNn(%WclD$``@kl?+p zjdV0gpgob(l;Z)=p^raW=tD0G8dwZUo$9ff8q{ ztPLFqlpxL#OqCM1jy<&@w9(F{Jx|GIzVJST(E-6keG6EuvfdtoMW71uZtZS6Hk<}K z8rU(~4tuX1FW~SZLKontWg9{Zt{nkPwlOw^7+m`yE!!4bKG2G-esEt=P_ySj*V0~2 z83fM~Q1o5&JeDZ13crD{<}?4V&tS>0orEn^UuBGG&%*CpanEt#* zvWfs?qUSTLrK4Dobdm1rU=xJ zaJHkA77N{qt6c^foT-(n(^69wb)w0F2UQdi)XN$Fu)$HrY=f$a_?aNwX0n1 ziLentcz6g7TqnTv!Ojj9EDcwCm)!{dT`a!a0;72q)iLG+u1tUF!p~NH#|{sY9?ERp zmT|`(dikrq*QTbYrwaHHIXG4uV_J-cLhDP~Nf<_g%vUEGas|RF?P{Hj!sG=L(o>+i z6CGf`!r5M-eVCkcm;@Y#MrsqYbZ?98w|j{oAgfkx+_-Y(#@z=F>}LNqA|1buwd=NH zP|&Vuf7ELl==@&Ay2F331zNUL#axLlzu}=B%L^_&ufNpRoIqxvNDC-9Ox6{X7;Xl; z*dC;HDMe+Fhc0UG330maZ%P!KZ~;35H-Q7XvP!WG>v%eDyE^3GofuPeNr(G20DufG zPQ*8=uco(+eQm~!*IsLz@fFWyU%S}$l^{-`fgT|BUkVpffa-O3;1*<~QJ@&{+2rp~ z3)WSKJMY6KM`zAlvScPvU<5&g_;u{HL4(GQ9W?0L*k5_B@2}Uc{VHI17}cb;6Lx*~ zqK|TeT%WNDx=suPZ-YT`q&?6+z@uGqV!qNr9zih?eu0;s$X0{D0~s;*;4}0()K(C7 zL)6Od{#*5LWDo3m<~QkNNM!GR#l3BfVNLcL!5E(v8?TOW#8(#EYy~#HqzW?HHF5;# zK1J~eKg={#`3pQ29j4o-03$-B8jNMT>PrmiGhgC^XXshlyqsq9bgUG5bDNymF+lj4J~7}D9j*zQ7B^vndY*l5c_8mkz19Mb zJwQ!+71GC#4d4;W*NQ3~Dbt|j^uOz&2J9^yy<3R*doTPFHZ8*3#N5b&khq~xyAZPn zv$6mVfj|Uq2n4O)(jx8hr*;M_NJl2a?qC7L!2grt2pSZzth3fIC`zdCF=Env@vbT% zH7QlkLm%$nlGQ`IkEt4$i)@9qA z0|Q0dk78!={QT}x-~2H)?{znZ!9+p109e7t*i6)=y~f{u7;sd9h<2;W-98^ZZ_pwi zkDE*>2AU!A87i(;6}H6e+FTe^xG_c_B=_4qa5D8m1aRPI4>k+>mW>sg^+EcWO@%>n zI`SxZQ9a1(8i+W)fbinTqk=nCoHkGqg{Tk)ysJfWPDMs80iUV|eH~zYgur{ykxK-9 zP{pPeeY1XdMPZBlLGzu@z||mLcP9Ha3xz?uV_FKE3oCZ%TjXf*Th<~AE0|%#iGee; zok~D_oJxp_+krrXg`I$#Y}#HjJ{ zL#6aR1>Fs4>R7TH%1MeN*M1Nnwm0?%qF73v(cnYqR+HUKx`SQX|MhqPoH;)1vN73L z+`}e-qeL&0B7oVU9VVP@6a&Yk?=NG>9}s*|58P%4R*iibpoQgt;`3bJ9z8lc{%b>L zN7sfJBhQ9iI~>+>;S+iUXdk^BYUy!U8^8w8vlT2hv=-JMn{>S#`gjlju6AiU^^*Oc zx&rLf^H{j_E+rX>%h97U#N$2V8a(tUK#Wv)Bv(i+QGyT(T|{L*eq3Lykq)hxtlB)2 zJ~4;((yR;0M}efR#gY?#FC3#oG~CyS{f=EUi+T&w7h=J-bhxF$y4Kq`xyKx zmbj!(6%JOhi+JIyi}0)yHH-E6-Rl|r!(nui>P9joXnMx$Ig?1XGtHcoT9vHyL;`UUm6r*EesRL z99dFck|oJ1KMjSrr%zJUcaugD+?hWn@&}9|z1Tog5MYu7ma5!+ z#l9_CAF;3aoaB-b(?S!Fu(4zVIG``{;88=hpq=ilkdqRlg5*JHHjeO%Zw~&0dbQ9u zLutJ+!Jb%>DTk1Ej#=X%E$V8)rePBOP4#|ItKvkWiob7qr|mH z1_kmf4YNN=A>twlS>#Y1crWqY*>)6|_4ZVl-JTd%9IMHZ#l|LvB?&arz07T#G&?nM z^?R#)#2)m)NO!hmWqRqhMonRHUVe!nE+Bf5RijNS0slhNSXzG|T^K25lYf&3lD~nF zV|~49RYi4~4bc_yA`dbkCB*<#AzYzO<+h~65L>8EsI4x#fysrnOG7Hdcc$|!Ds0iz zRu@$l3Ql0CnDY6ME=x;1i75`|^eu_|maJ2G(DPa*p6m=@%Z~Gwl;jYjqbR2`xyUEU z5uKBi44us!@6KD8geG7MT##>KY3}U6dgSczEK3K#oboJ7a0saKc8TJ4)9pSvw=o&# zzyrLEP&0QM-jQcDe^1M!5-nTT@d}YKW!D}x!YaAC(m|#=XoIY=51a#bBem}wY#^8H`$xOlxdgOuA8qR)#X6#kV#?xta0K!%`dv48_KVLRA!kpWZ20U8wY$@~NyREUqG{GMTkpPSWXivi)C*+Jbsb zeXR#?T#rxE$|cSxNB_^C;%*gNztD>QgUY0&wfid_`)Z)J0e=0i+^st|vC5*G zwuWxX6?SymC7W^^LLs|um+orVxeFgT?GnJAUK2w|pN$ZixeXqZuVg-MJis})(_CGN zmOK4DU}Rq)J*t%@Yn}ge{!2ysyhanG#R#O|tR(4b;xphT?LTT(@aAt7E#-SPC*I$* zNZ?MBx3n>)MBW@G5eucg5oAKP43WyIND8Kru{g|v?!&ZmA`a93y@DM>ieqp~9v$L& zc8Ih`hu9MIt)jVnU)LdUfY{swKCkNlo@Ku)d<;`e)rlC}_fYF|qEPo3=Ub{nQ7d*X z(cse!o8q@dV8MK7-@HC;VdV;+6;+2qk7}^po?WFoYEj_ZWpCb_e>>Z5?m zpV3E*Br~`$EThv^9dm!BGM;jQgQjXWZK)FOQ2<&} z(r5if^RK-+CFe$wI<*nR|@*Ev=~2^9auv?7&dxKkmFq+HvTS+8MBoTbF9vU=2gO)c(v`#b2Lz z5N@jxBK;YL>FqwG^)_OAnBuuTq8$*2N$};HRFJAnvogszQ@X}r$T4OMpq5Ayv-L>{ zYI;g)ue3ljvdjMtE(k3N=eeKgis>)Vg_$Yw!A0vEz50z(00JlJw&%7yCuRPl)EZ!!q-D7rISZ%)on^+Bi(*(ylXS%Er7H5?_;*{#-s z+yb9U@u|z_K015mv=7v)Qf~pAb`y3cl#pkVuMoAAenqd5Yurs=>8H*-)ehnvN_<}X zP5#?h`qT%YulPbBjJ!m@B7R!34-9rKINrM(lB3Fm@+eDi+9o=+v)!BgO9}wRE6zNa z4N%WQI?ard0ewkd)z@10QgNwwi&kV$-ze_(_x?md&(U+zjh6qm8*0g<{HKF=@1lFGQ|K8vhrRCh$B{_&V%EEVi~8>{Q@;iMhxfl$ zxE{L3t2#$XOHc{I=`CI2Zl!df#F!B&Iuyekk(C+KkP51Gl;Ax%n7OU@KBlg&x?l;2*kj&mMb@fQcSw6m@e*8@yyDrt>gW(Stc~0d-<}vQYl=8O%Pxsho^giT-At=nA$$oMlk4Mk!bIkqy z*!5r+m0v5s7-&_ELs%BUz(-HLeO(1mn-v+S0C)H}B&oc*|3F^f6+zxbH|*@W7h;d_ z`0u@>%1zBm%^+GuQJGOlfO66pGKQ`$k;mmG5kYIU=h=`FwQ%>t!gV& zUBzkOEdA4a!UWnoXTp^US8_=2D_7)P6_YYwauhXdmiTa+9tscnC8%0+bg2&n&ih=s zLVD+1nc#C}LJsXcVFF;beY}q>MFE^6F2UvJ-5b-w2n7Uf+qH-SXb{nrcI6k4{(haE zD#Z5&YLz#!uIrFQL==kYz9E>PRO#>%k#8nX*Y3du-pBV7fuBjn31flcUM{n1jH<9Y zYkPbJvK&h9h@DGvB0_09rs?>Y?687JNKjNK*5R({RKm^#5jY)L{{R}8mSP0V%13W; zq&rYPeT3H8fjg_Ny11qgB8kaZD7y~O1T!@`IZcndQJwj_9BBp0qr%Bo@Vvv?SDZlZ5ti zPV~%p)J0sFUAtzyjdY{8xKZ5rXvRw+)zHj^{rv$lYGv$N?S9!y94JmuEm|aD#lvLB zfi@`-_o>qJ6AdUEc7Ps0*)T&Q7{_VFCcB*+AO}!3%v79agDPj|R26MSj!|qC@q~hQ zZEcq! zI%^S>u3=fZ8{LhMru;^+k$o0Zp1Gr-)~BYRrnFuo>eeaTIwYe+yQk#<7##tgyRZWS zi>?%qe!GeXp(LI;U5F@%2f_`~*mQQ^kg2nTNn>K@paz;@N=!>k%9Iop!oZ3rC)3EcekeZ=hydng{A=~Z z$`Qeb1;L_w5(KE$s*pyrOWgZpxYm%(BmGeKWgY-?vCg|HoYkTTO{Y>C5t)Q5Kp$n= zR?Mz|K<_w5MM{;Xs-mC_!Q*x@u(-lhudnhUn$Eddiid$+sTo(GCxyaNGj>-XOUa>G zakQ$i%21!kF6Kb*vgDY8C{0vMN*sn24JXDJwiQPCL>5*j)oPqdX_qq(i66)Rtyxz) zauHQ26>$#U4Hqt^c$+Co?-Qv{ibR!hr7WT-vRcnq>FZ4u#aN!&y~`X06;*0zl?bl_5VfKh2T`5redBxp7KF zfCd=t=YJzZQOD?6X-QFGiCL&6UM9PtAS2($mI0vyjeDiku+P|HZjy@$($eltq$YcI zL59sIKO;2{n{1Mj7e6L_eI4kBv^pDOEc&38fe5=KNoec1{ISde`&&oq={xQ0;Moy-ns~R9J z62VY@Q%2XX1-D=@eOpcQh;A5pa|-0H77)d9e>MGo8aofLD6anBgRnE>4v+$4V3(b> z#TsLe#;75dScox}#EKOQ3P|rP+o-#gh23T89l-*kL@{dA#2RCaCB}3UjfpWmd2<%d z;(Nb?{{QcD@Bg{az0ab%J8fsqoH^xJK400O6(gZmF_0+CxuV3f1d=jOpPgkK3N)2I z!<=HvD9XhAVIa}$;OJ}?vH+FX8}0XOmTYgsRC+Smpz!JK#qf42LOh3(X$X59;L$Un z=UtTJ%Z&EDgkw89Ig&n6^@k0uJ8oIPqdP>N#pw3?EkPY>*Z3FZ&mzKCpE}2Z<*F`3YzRp0NIew$4&CXT;cw5> z7H23Sh@;g?!X#NbQ$~@FeB!$4k9zi$YRFi$Lod+I7v)2xPxNaT(nt`4c_7X#4u%&w z3B$7)Ch=!eou|OP?b+S4UZ9HS#!E5LXe$_Kys>1^PvfaVO>_f@jlNFi(;Cs_YDdND z?f;t`R}PmE+z2RPKk4Ig=|^6|om%e9m)u7-l`9`V^do~ID|RL}1ViKJF^a@oalhPY zC-;S1AU_m&2%62y4;!O~bTJ4z_Y?Nx^HruzYC=D71!14u$NLma zBPadI3(P)gpA;rc+UEr0^rq6FcOE0{N1km}VUl-`{9ItowfD6VI zsY~W^XGRj2tSmdjmZqdnGwE29tsaFnlrrO`H8~n-jf&Cfve4aUg7Z4hbesrb_F=P-|Qn zS!6L%8-k%}^E_rK3qd%WBKiEQfq{G;_}k}wg9AMa;YCity73q2YK;4e=<}@aGMdY7 z-jtWONli@B_h4GY=Iz*F3WuqfZifc%B07~NvV2UO6(7`W+i6kLLrAwP-m9!AQfbS&?v6qqg zAJ&uXDzakicXU`A=lk}ZuJ^ytkN}SEbiFOmW%Tp9AtJfQ{zX0qoK-!?86_Y$vax28 zNY1n0k;Z1a0LGY%*APB}{=eHAj+iivOi)3H9~}A^G{MDaMX<<0x#vNIbB0R^HiU5= zzy#jAB8QJ%ag&(*8bb7lFg-Tt|pq_M|UcY7ZG zqC%od&=-gdp#Rw&W!!hfv#P&Nstk`0(legs{i6CpH6hURJ`R?LgXPEySi9|WIg3M( zH0HR<=PZVp4~D3|QT23EKWVHv2U9N6Pu}Z?4}SRIT0Tc|RrZ7R2tq4X+~%`L?cIs$ z+4p^-3Z3E&=>Xl6oH)Rv&80`EdpQo*ca;DBcBAj$GVDrTm5#+Y!xHbvN$ef8TYZPn zf4o5+(Y>)4!jo9rGZ>rQfv4e{J22?z`nCwA`eIdUpsZ;F5>!m9rGlO$=@>5;wngsR zzHQg;_O{(E?RD^gPr4zeoiGCV!MNHv0z(N*H-*0@-Wej&R;FaH&1SFTnoqWz{Yr7m zMCQ>rhg{sSF=LVTjf^GQ#i60$;b9xLg{)sPn(|w7xE(pWcI{B~3hegQUHkLIw!HHR zAH;K8;n7vDB}0^z%%?B{nF^J6%$J)EzuVDOc_H&=V?*^m+X4F_(;+PY&E@app5V%| zTeW+|{ReB$oRX|hQ~JW6ptplDgwP(j8|S}k+xFd&?FezjV`v4#op$bnM}n0WbcW($ z*q&Z8Qn2qWY%NpdpGbQr;*k9Se&CSqK+?XL2FuNq3tPH2yt|-jqM6H1Hzg}yW>OeB zgeuo=rEcoi;uj}u&*Q@KB6e+;E@sE>UEqBl$az5dBTL#t_HWn|elXO&xO9pAjnYMj zH*&FXq@!$ZeHC#w`lMQ0r?VOMa-@~{>$^LDnboHf&W3fsUI+;cGVlW7-n)JN-K)g! zBWLDMn9xU(NuPXwdELFzk1{S5eU$ZH>1FM?!poOG`ieyQw%<6=Gn%9eJ9Mc@T5XYC z3*Rj&xxL7)thS}>P}A|OZ}#9Kq#ODO``P{W%DOsxN|+eN_C7_b1)4VZGuKO>IA8jL zAtB3z`E(zXAT@?a_mrsMQLJ^)agl?yFwLIU_*-|%aX;I>Sj%w za{q2ebCtRTkgfc3&RlFRt5djEbbli3*H$IO>ypC|Fv5n}QtE2$mHS0!tLroz>7Q(P z!89&$il|w#X2Vh=mnP-un5YVkINr;tO1-pr&0)=1F7X@Fz1xu2{MLN0`fJf~?%3h8 z7Ootcb;v7H0eFe`G!m#jlX+}I*&AH-RMWW0*t$2nTP@I#S4aqJY)?BGdo}H7%F(o= z+-J-wy5e2rvfgCK8ke^aYK%ZuZ%k6O1{WCZXiQe8R~uVk3m(88EN&^owO2Jc_AB=_ zX=19?Wl6=6xb^`o1W3JvLu^D;Oj?XGArzBbxf?v@~N{nn+KxY31d{a%GdFu1ihs zk*z{kT75)BTHHD@f01fn_$wKbHw!gVoZ{&s>^oQsGUA{U3!-MNJa=DxjT#r;x=te(st#} z@Tvn5>NOL(N8e?AnNe;uf^BcvQ?*ao)|j-_t}af@-w~pK_nX|a36ZA6T)mi^Xh_zk za@%9KCPR#Dd*%LUby9=w;3)-pg*|2MsBRSZH?>tBRd%(dgf*$FVys)s`mJzEe=rHx7_+@HM7eHzN?43KDMlaqmI8z5x2&Pn z(PCI*TS}MmXj|p}Ms;wV4@w{dF9ho(fB6gUF;q1RnZuvf>nOS_iYi)_Vei_KJKbkMs_>Yrya zo0ZPSo@vDnEVBh5_ULiser(T85)1oCcd1}9YUpzMgP5XEPl}RsEwzTC64+x(@@y6x zo}6F(ajqs2CaUl(Tb{iL6U!oNVX2b5#_TRjPDM<|(=^(YhjaCGW(q|HlP*i=8q>SY zALj?xk;4^b(P5b(z>uZS#!&t>CNjOc0vUPb&N!$tC`^ue=iu(Q#41~9WwVkjX6z-| z2EdjR=?K_mFtNd~r%!>>Pl(qhBx#Yv3VWVWmywg9)av@|d3H_RBYU0$32%M&yc!Mi zr*8OHYwZX?aasqEAy7dNN7_^TFEg%>v2%?yhQ^yHGN&-yVyMjwP#64Q?)RQwZr=Fe>kn4ArJfI!UbaGwhO78~xS^9=m zXqM{xVi~N2M=sK67=65ZCJ`^_J`ttRyCP3UN3-24%rcURn?=1`4X@ysOuIP zAfx%+^B~DM**V1ZC3*6;?7eObZbwEF@7_gZWK*A`WG<4Z=VPKj2O5lA3jchJqq7Ox~b$Yx^gGInV? zF%>p3y@4z};A|Bz(-*0t57jOLjtY}9`YQ$4?k|IJte`K7puM|_U!3E=Qax;!ndgDi#QV!DiF5`cc~i!oAOKyb(=5&;~jivsoUKN1dBZr7~*#K zE^$*!w#H`XbTSbCn*E{zJs*(>V12?wSiozd6h!%)-1SbcRk)~fUKnsuV&QaKdxoLM zq~~PLVGJ});)Ee&lFU`j455=`V;JZ9?s?Ajz4K)74Osj9G2qdD4~d?M7#_vrp9RmQ zr@Qle65|}$;L-hl_lv@3qfXD?B+l4oqP|~jzqa9z%i3=^;!!J4ktmSIx zQpFb)g60p(T^X}+anz>Zf(3;WzMg%j{0!aLtASyN1vbyPG{W$ZfR zD#NbLM>l+EJZB(o8seV!PuaQRk1R*JxVL*XLc*NV=Ylp;VGbQ{po5!&91|NhT}%F0 zdoAN?QK^5ag@gl{e#!)y?7;#1bupV_G5SGxLJXZ4MaS>LP9f`~wKJUU)WM^p^A z4{e@yaZ9V|gyHQNGBT13PbQy5+c4OkSuUFJ+PmA!ky~$91f!jL(Y9 zj^#+@Z;~OgyM|=CI~8P?2mV_m*G*4e7`-BTW!U-+TQ_W5v1@T6MsB4fM|Gi~6g|i)SqkkaJ4U)m`4hkt}xQ%$YGWl0N&GAAc#cLa+Ey{wTM?=|}&x863H#MFFKn#de1R zNB6ufNi$1FgEt$3;>@Y;XM`W+Nao12h%P_!r>;bkpOF=ik!93s6u5di5CLS^4Kc2o z60JQ;L=rpDLU7mp<8Oi2-YTh*P(LYUI#3pkhB%shBD_)c*4rVMxsc0oH@{MRTKDnc zi(*4t$H9|F!rtD#e|rOWc+s4?mz1lQWW+B}$1PZ+ja0^k*lJ!?*UVjFTdkz*m^Gt= z)Ip=RfF?OcL8qReFa1n|L>lz#uao{%?mJ?ye@|U^`k4KYvh!VC{5f^P`J>wX%G=*U zUgTT#+3ya0)A%{(@(T2{3B`Gk$;-3k7UxOMP*BX?sI^ z``d5tIa+gqt3GZ!+KI_S`Y?OHlWoqOS={Lqe9RU9;GwM?=n>={kBwbk1Vm4>`I_?CDAp z9**jLo_YQF>I>p0jF~3Nu+jTxj$$K{h`uWE(N2%P-(=4pKYl??(|X<)u90U7Q3}Sw z0AqnZH`_QH635N2&nus;oINis>UH&O;-6it&o|}-7_)PMl)grv@u!1kKZkyCqM~O! zx}@iD_<`3&XS6F#I1|#fbXmx{rQ)Nrd~^b^l^kE+`A%)(1M+R9^TbC-Y6x4CUz1*L zY&}++R`ql-f+CR#HuV0_cdf^E?y+@-b$s}3^U3`cZD-r-&1=Iq9*{2H~1{VrXw73yjtHGmsb6`7N41swg$^|DX`YGYPPW;({nW~@rj zud)?8tYx`X)*P<;0j0vGee?-S&P!Z;YHq4V?K{HFZQQCij#7D6Fy}kK?SfnOvee~< zWfA6rTI(Lpx1ZaSZq{bUKJ#94YfhD+&{(9^r$&b@e-)Y%#5vSnWpBwz~rDE%q@Rry{D*mzkP)b#tRbLx_EbZgw z;}`&EXD4%g=Mg{n%H;AR_Ez0#%MlzZXqKDp(~rsUJtb@J{Bb4kR^Ev&>d_T@BKo~g zKkKNo?=H=?Nk8Zrr0;ru*p!?tdFj@)vh|0LZ@XODQe-RI!QukTy%a}Jd(Q2DT%tAw5-Gr3R?5`R=j^GuRX76UET~%bGEuBK`cvOgfXmW zZ#TAOlugMplr4!jM(I;*6-~A#-R0%k%W_Ial;@V`c0@I2ao?o`ud=_+`9A4ZoU`t9qeyThw^2 z!gvrWF}+;(6(I-lOQLU(XO5db4-9OzH9yOe4O4AqZf;en1c*+~j^UhB=qjNgU7wnf zpIEr|SZzJ$%elL`;Wlyo+}w(b3lpm|Ds*MVg-INJm4pd7y6k*KZn>chZYvxrKilHK zY_>KdFP1wETTzxat{^Kn$(Wg}FV>ZmTMO;js=%hJtpRzx#Aql{TaAv)ye!UnF%Zw) zuBv&}nPfn8TmkjI9{WYqiFI`3N?bn9U}RW|ZpOmt3#h!Q7R7hNaxVD;eQWk1OSAoS zOGV4dsvVXsmvT7YH$2_ke#@@;eQ!~1LEVMaUy}b`L|&Z!4d<(MbMstqb<>6D@8Unn zxK{YF<<4sI#Ei46+h^9in#YB1%}m>+rrc|(_aqb=8fC1Y{}9{>ak^1 z;>sPdIScZV%xfykuAID0{Sl|N4j0o9`W;v|&n2uhzSus!W=`cS`(}Ggu}*RfHn(?} z_vY`_RBD^FO*u7IJ7=+$71Zap zEt}U@g+8j5RiU@D?j)0^qi=+q&ApxDxJ~>E4w^giJIvhS!=}6=>N`0RA!j0w$9!k2 zt=ZlD>7_F*sPkI4pc@Csj1TA&pY{#eJe_y`NQK?Dig?1t=NSl`g{SYAJ=S(%$Mnfb z<0ScwXV3gd8MO)Ga#kgvVg$NovgifHtM;H%oCvQ$hP}%lA(Ia&*kU;Kt121L-OfZj(8d|2M8v{o*9y}^f@F}2aylE zJIF~yv3c5@5dvLLSB{}?fJXMlZ{&&h_MEsX{$r!h!tloY8!mto|!jMh5RBGZxcX3i59n zA>4`ha@B{T?U?1=cNNY6(BiJR0#>ff)U6RuES%OlQDTuIZH>TN%*7KYE~=6Dxg4&6(j0rHO-)VCu`=S{#li}6Ulvu>nz|QMZP%pk&NI@iqVH@Z zl3iTiAEME$-8aZgxrlI$E~I}>Vi(D!#KFHWJsip++tV3($rUPn=oxwm@o;@BX=nG} zXAq>-T}Ctl{lgg%bzmpqfBz`pyZ67^aCjA$T+tkVQh9QBT~&qp@QJSuf4l6D`8z2e zwUu*@pO5FE7Nh~@->{5af0`uypppOJdmvDD3T_#CjoR_LCcP6o)U2-I|Htpra*?#q zRsj)X@PE?z#Ox1etl45U+j49HIX37H6ws~*{^T5M%Yqt#2%(64T{i6+<1cNTQL)RE zks3hfQ#0+luPfB$>N5ijnW#1jdXA-Cqop{t99=+;&J2wS_=wHejhZtJdD;S9K!L8r zXw4yAqy4cl9IqvrqBRqNxP_$aK2C$0B^mlG8`#iAB>_ej?mTedCVY6(EJfz77C zX_2l6GT$h0PZ0ISN!f&P@Lc^ZC0ly_ioOl8%wBZCMEa)kzeD;ClcgkwRDZ6XKWHn4 zCAS58Lsm;tbyD@Nq8Kd~HtXe->B?L=b~;6#|3E?z{H2D9 zRg1P!*AQ2+E01$cNTZ+8?_CoWWVoEXOPUcV+CZK{%pB^*@;(a~;$kFGWxx<5QRUHa z(S^#LH;~!@!0l*+>5Kx$cZBLvpiGMh>mJ}CBx$?10HZ_tGC2O$KCkBuDULV@Q=AP* z7F1#W0t~}%mtn)k%MW37Ps-sxeZ{}`HbbRFPs#&gVoaMGV~DhLfoVAP!~6%yiD1JJS-Bs@U zaUh%CV-`&5hbAErwlh~2Uy!PY=`%%dh!@vV@5Mt*P#U64$wxYc_cKY;_ieea#; z>c#NlxT0z1q2@_>t3hy$*;bxgopV@UAI_N?Hx-T-?KFR7xJeP3Ft2Sm*~FQa{IL#J zctdTf9Y;?ti!KzwVQbEnZA?otnbK0rcBsL5k~p_TSWjYUIBg$}>>{xi%81e&Ogv4BEbGpX(Y*}eKzxH*acwMl3r`pX zyx)0{*2($QPW}UKUxa{dhHQ?+$$N#g5Y^Mpfj^U#_D{%C=T;*B7ZH8Q?d~b0NQews zlo(RGt~UKtOV{or=WDu>-bpNfYgY(&pLh$pXJD! zYoKtRC|<#gW_Sl3)J`YPT|}Q;M19W#oiQW?14M-Wt|7BNIZpziXA7r!HC+K~?*e)v zg7Ym3q9-C@Q&c3875KvpZvi>cN=|?kO%>RXBNws-5=fa_L-&d?B`HOYeY>w0Tns<5 zZObjpHY1z3qaW8au$ZZqbQPP>QJA8L|$;ON=7{uwq zD|hVC?a}S4wC!p9H1)fsAHal$#Av8RJwsnPPA7+9qpgP6Z6#YvwjPK*P(qjn^2GLU zp8sZS9rfKtJ+NB4t!7JmMtep_O=&y#qx=LJ7Y_A6IT;`g!2)G}egwlnM3{i!9#2%` z8EeSuwcwEq!9~oap4?)P44(=k0ZJHBpW1((xT{@;K$%sb4_}A8>=oCO3cBP9kkc}% z5J@fadzK)Z`zJ-u0NNnn+FQ{1KfEBil40itTlO7zW(J55a8+C(L1amv)xml<(6jDP zRO8d#^|vJ~A*glExdQ!+l+*X=9g|}3oyMOke&b9|)39=9x=6ppDCI@^nMsk~X8JPM z0>4wLbG~a0880HE;5(;3turZdGU+p!ucPK8VAi?DHIL2~+g%Ht#b1~dDTAX&ZJRI` zakar@qiZn6dE;HfNc#~o>MU%;d2}Nb5Hj+(n8c)*7^nfNNt+q1;BrtnPvRUB=zAo@ znJpql!$In=k&+wIUp*98Ja3};eL&iUKspMHRM{P{A4O*qtz%$?tdpIAy%=sqnc5jh zpkwug^q<<3cuu?rD|7F6urW^@M?KZ^aU9m?0-W^1RyjJ#k!aW-Be%d77%abl@EXLg z11JZY59nP$a2N{okLX?3AJe<0AzXs|4RRM?Fn!^ah*p+pR~k*W0lt&v@SUV&=n@kZ z3AUul4CHZOfx+&`b||GbT9U*3zlBh)QeiL?_c)v!qmNFYCXn>fhjT-QH=>10$R7f= zRRQT2MG+%5Ku$uC+xY6=ASFz>u1+D($Y|nJcvr${mV#a-r2wN{1#LfuOdH|rks z*7)x%+#R!5=?rIx!4)k_u+^tGpdaniSU_LW=YP=jY$9L6u;bVBZ__Qzn|9cEB=%6~YNU9L(7FR@wTB71l-8Rb>;hsp7-AH)gy?+*;pjJXU|a@F-^^ zZY#=18s0-oIQ9CmlJnMYb30eGY&EaZujLT^A1x`Mn@Bv}kRXLP#UVx}&Ns^U0AjWg z_(CTk3lg!6t5L26DQaixA^DGo{{-6p>QG9SgH3x$_r$0e_ zy3-$q$N%w)YDP9eGdfdrYP{6ZdU^Hz?+vmBTv!i;HedJQ{oLH$yxpF18|?P1+bFlm zZp+-(y4AV0xE*sl>Gr$jy}SigjRsr~f*>iXU4_iqozgZFsC!`I^(kBJ^rJZ5+-@Tm5v z_c-iv(&N0xM;`xp^msh<9PBy4GsCmp^N{Be&*PqFJwNmOTE@vnBiUn?EK!y!Gs((j zdu4}YM`RadS7o0jKxqyN$VpZ34q z|EKD%hTjqdA2-XULkLlAC@1JpO)W}-;-1RDSkLVmVc3- z!O!Lw@^A24_!QpE*Yd6W0lter!N12}=kM{qdG+%Wyp&#py@q*>@p{>7uGec`E4y@(J=;;IrIkwa+G>2%jV$jZdymfsf6n z+^5>7!KcL}hm-7Q^0RZg=pzhL@wxIM`Ac#PF>{I#krX#XK474Hdt~HxULs@;1;lHr zihl$zn<$rPm{KVBB`87!Ga;(rx$;X4@0?C?JlAx-F9*L5cL#<9+`ST@;J?0t(JK6Z zWx0d^O)*!_OQ#@W>ZX(vcU9ze^-(!LPNn82$VDD}Gk!e&%~py0V+0aZ| zJ}X>)bRz%%0HwVk=P?Ho`9isrv;V&Q5%$TY0xA(keBcbbR3}cXlJhfB27~0h#7M%= z^{p$hcBy#gc{vZ#Av^?1gC0HzHHvbZN*b;63vi}wEiG+Q87@Z|0+q&FYu^5?N|B#e zkdrSKXAJxxOPQG)78Vh@D>MMJ6thl;HOj1k!I>Fq2+tu9HRbJL)L3OH zN^FW-;3GsMBkOlbMwpivK_Wi_gsDMr-}ZS_csV!miuB=}3y0SyrA?uH4g7T3fGnE^5yA*-4{%qH-&h?d|B|WVmP3eP^E2MG!ogEi zqCj^c^`Ja>Wyld{rpf7TypVvRmAf#fL#Q-C)sxbHZlVo zmi8GZhl!1uDwnpCmf;3G0u1~YPe9}a5`pJ%0PKLn2Z7%WI`vQZ&1cV@t8Lva<}*W* z77eFf%E)L-aiUra5kY-nD3$q_W|d`CWO4eY1I8{T5b^zx+qzE8tC49703`TX$fjj- zRKe-;(JsFSK!!=5j>`K`yg)qQ!sAq6YRO_%c-BRpf#54YOeG0Uye{WUa%xqQ%|T`{ z;>lM^6^oauF)vv^V1|*bAAYQK324#&RPAJwR3h^Cfvf{T8?QDsFI3B=^nWeFF3}h+$YK16n#(B+B{Im2Skffr6C~7ve-+5%RF@0PnXQ!(Z$Y9_{Cdqry zOy=}V67U zmsu(Aon}z+dqGV?_7;6&*f0otqjkc=1m@x(-gB&6s(IZKvJkWLKt?-4#ZR0)n~apV zsCZUld*Q6WBH8NPioESrtB|wp1epZl*K(jpPOJim#EEq>9%32A5X<19sS-p+tN3eY z&RpZermhbSU9Z(>GGMp=QJzvzmQfB%s#)1u*a88R-<$3q{`wrJd;eVK1tl!MS0ug< zPma=gWHurXX49!uoH1SeY&u5qBE+w;3`2c-lp0AC4MDO}x2NmZKHZKAC0~+Vi)Rjc zete*(mQP6o_mYp1DD`|U8gsV5SeR+a>|Wiw+P^WT#@eRf!G#2onIEfyAD17m>U%Cl zzAr(`$_vRVeinwy174KE_v5}&@$?kU;i1eYfyVqF86hOfn7;`DbWM ziKQCuQMzbJNr6Pf#UW&PJ}cz>3>6}fr8_kd-`O@E+6-1ywec#jNyt1YBGR8BoqI9u z%^}AXd`hY@BLhFX>I8l?(DM{_`kyZza)%&nqIML~qPOIdg_N%}N*XGBN-<5R`!1L9WRaw-$tiHZ%-+q)ddazZi z#>sgn2I~BmfwBx?TAs`lVahPAH__3i&4aw2Ezwq|wIo9bv~sr%X;T{&T*yF;Cz-GB>$*=Vq-s2 z?P%bc2o>*cLYKi~u3{n~d~RHJQf7Kg+Pstn$)Vcl)bw~x&zhrUnP$CNE86SLyf8}6 zH^_Z9%X^W(1wor`q;E-NYMynfV2>^>U;-nI<)cXGHR1b#Uy*2IZW6{iyO`n-?!AU7)1yblXZaMuW(sE(k^sR)A55N6@#EwtR!x=j{|SLYWE@VMj8l;j$RQ>-Josd^Dj-0X z%So_`@5N(>u!qbXV}MkN;+&I^xj5-x;HhbF6pWO5q+!f|4Ib4#6WE&M( K1Qw9m z!{*Yankw-wi)ssJ0&1ZIYn`jYM_z-+#G&Eu6+GUFih_%(HHYugHs=@-PpUjL>HR>czkO->ebiUy{bWmz@a;nvqyu#eV9E_)+ zz|2EP;Xh9|Uu?4E75_I?$l-8QRw;aLY$5#k@mnZAYgPy4zyH32@Ha%hxTM5tu?9G0 z&Su$N*Cl|>ya>y$hEST+2)LgLWCpO_EIc*Q5Y!a%cVCu?A74&|vc!DRP^GKNsNi@hCj(Me z(uMWCUg^sUr3gPc9ex%xKm4mIunT$i zG5Jt>jwVXI7kU_a1N~DR+B)9#62O?hIA6l;#Pi5c6nk$lJi-u7QqybYO>d#g0cs65 z%8Gu%ih9FqN-Hxflogd02Ob6_lJ^b%ivGD&T&ga}H|G~9ct!#=NyQ-r>hg*)D!x?3 z@al)lS-wZQL61?U$e+Wg5pFb|nwbo}355irI-2q-8{}JgS#15j^!-Zw^pmIv(nyf6 zR905-JHixUJX$t}pCRw-ZPYyT(S^nHFwiy&C^sk!@KCXWsFoj3*TaCn0B+a*yeI5% xv;^ifhEG)0*Q2l3#U>-S5Q3{bGY3671ybQ_T&^h#Wup>!7lti7)bkkre*uhwo*DoE literal 0 HcmV?d00001 diff --git a/public/static/fonts/fontawesome/fontawesome-webfont.eot b/public/static/fonts/fontawesome/fontawesome-webfont.eot new file mode 100755 index 0000000000000000000000000000000000000000..e054c93d180825402bbac5a1967931c8d6dc17d9 GIT binary patch literal 38239 zcmZ^IRZtvE)a3w!+u#m^ySux)ySuwfa0YjW;O;KL-Q6v?Ly$m#gk-W0Km%y}$F=}(fD^zR;PIbA1z-)WJm#ixy9uo&G`p~2Y4XBL^8c0F*f^jhurdAWh}Eez0BeIb^-g!Jj*I8k`-RB zHUaGojX871&S7Zmii-tRA9Zm(q=PYB+%+S*ms9_|T8cNleC5&wZi{4lQ_@2z#>PFSq-i?knt}(Y2U|IlJ6SDB|a%&VSs0JSS_ZCZnJA=))?dPAE>3gl@o1HN2?u z6Ls!Do7{>P-@_y!;bVd|!#t34gt2roruO2s2G&AK7y$HtzMO+NA`o)qMgk%OW_FHE zWKqq4B!v?U}I1KzdD_ekY5Xc^%^Kkj52hjaM@bN(t}u3-Ze^>YiuA*A%Xv%;nt}4@;DmE7gA_JV$$Q zkT4po4ROY^C~AjtxPatv%WUG0Tg9oYP;tKttmPLcNN<&>bfIryiM>{AgEv>0XCDEfrpynGGJ$kQ$HKbPTw#fQ&f+6Mfd4vPLj=XmK*_*2FmOAcw++kr} zD`@eq#w5r^!c0$YUfxtq1}_{|+c>O?G>1Z+v8k%nL%gGUjKlJ69Sa=9M}6xUFKm{W zVu35W%??6j7QTcK;{u|HCHBuBERbh%`z~>TI}<(%I^r^17;{vJrd}qEUy??D&K4Ra zMeKoS_7SaCo5&l7JSq%E-MvmswcnG0LV?uwOip~MGno#iK$EH;XNmE{#oztac!a6{ zd8@F~CXNT&^Am+wnF^dy{4{@h+ap>+lh>Vpn>k~2+!BX*0a@M}B8a$WX8WXAVmW!= zloEL$YCW0-+ct%N9~?sj>pr}5oY6PLY#OMC>kYYDFB#Sbemp8ysMQ2p$*3U(|LnCVc|-m7uvBW#1TYRq)3lB%qvO

JQ6vGItzvJ1&`zP#7IY4h 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 literal 0 HcmV?d00001 diff --git a/public/static/fonts/fontawesome/fontawesome-webfont.svg b/public/static/fonts/fontawesome/fontawesome-webfont.svg new file mode 100755 index 0000000000..36d43b844a --- /dev/null +++ b/public/static/fonts/fontawesome/fontawesome-webfont.svg @@ -0,0 +1,414 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/static/fonts/fontawesome/fontawesome-webfont.ttf b/public/static/fonts/fontawesome/fontawesome-webfont.ttf new file mode 100755 index 0000000000000000000000000000000000000000..7ec2e1de899c20a4ca1c98f4b7d7daa828c9269f GIT binary patch literal 80776 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 literal 0 HcmV?d00001 diff --git a/public/static/fonts/helvetica/normal.svg b/public/static/fonts/helvetica/normal.svg new file mode 100644 index 0000000000..d956ef1632 --- /dev/null +++ b/public/static/fonts/helvetica/normal.svg @@ -0,0 +1,240 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Designer : Linotype Design Studio +Foundry URL : http://www.Linotype.com/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/static/fonts/helvetica/normal.ttf b/public/static/fonts/helvetica/normal.ttf new file mode 100644 index 0000000000000000000000000000000000000000..78bbf813e41406473bbd35addc1fcd063536de78 GIT binary patch literal 49832 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 F{{f!eP;meN literal 0 HcmV?d00001 diff --git a/public/static/fonts/helvetica/normal.woff b/public/static/fonts/helvetica/normal.woff new file mode 100644 index 0000000000000000000000000000000000000000..f39989a4e9204ad4b79eb89afc1e8f2658217783 GIT binary patch literal 25784 zcmY&;V{|4>wDl7w6HRQ}wr$(CZQHi(WMbPkC$=XxZr*#pKVPlhtNQG(^z`-ivu=}8$cnIgrMR0IJ4knkT3^$+OVzT3X!l;{|LxTYUl_y?+5 zU$1yZHU{=T+{=%z=MN^HF$L<4T%GX&05Int4flV55Cx|)wKuc*;eO%*)&ImWfp4NK zGc$1d@r5w{(ZKvKKmZVC)*hxm+z+pO3IJ4@C&wy8nVT5=XtdRTG|WF>eJ~=^F#jQc zxac1n{|CenWuPGDHqP!pT=h?kpL{^#XATMWt?i6{bh^bqTfq{UURzMB= zaXc`y(U#i0{gjH$=cFJH)j8Gub_GxB0mk#;JCM#;6zkz9mP`VJl%N4}=*}#$O#n|puT1hRr3qN19 z-msniR`plQ7t0sY&D@aL0&dD(i3PV)E>8Y1@@WbYL#Px59F~gaa2rE5&aHXWLr6!^ zGoiP5-eQQOiiuYj!z8W^@@y_3hJbW_(BD8qh=xE6!#u+{yKqf0PT@}Bi^FH4i)ayh z!YbkRl~$IpmRII{xL&ovf9G>q_jKITdLf+yCQcW=P9tq|x&jQVJO-wS?%m5Wa2lIY zm$S@QjVvijT#Aiy&ZRYulGOxISeExtyfQ7mpzW2%f8MJ9?zyqP{;uJi!JLu4qr*Lv z!S194^|(>IzCKVS)5kYF@o#E;03de)!s>suo3rcz0Vx3idoaHl=_mRvh(h&XV5DKH zr(p0SO9BE2a)6*-+}~cA*y+j1DH;B~)Q#)UbOr5EO2YxjHDS#E?-?`o*T(=C1^>+s ze8>>^N)1Eh--HYGzw%2()M!JThQmM5%ypPURtX69ES`7}4YqVOf z)_TmIw|!tlC@M1CC{a<3`DiB%Pt%9xr~2Y`;aqiOVFx31V#Yo2U2U(nic43{!r=7U zJ?~eVFSsz^a1Gp@zk%dS??!AwQ*)2EYrmk7-b-bT(izRJtwW1Oe+4M2@WTL9N&*T1 zfN!p!ssIK&3_Jml0%-o!J{5ohfC<0=5Crf6cmM_fS%5Y`9UuYF1&9Ka09*ie04;zV zKm{NMu)1&PD0Iqd3H;uIg$D^3TEpkqKyJ*42mTkrDvn=EJ22*I#38s5qkU+o-3K9$ zuMqTP1#V8RR4fw|4^7M)AQzsT!4gr(%*EB{G?T$3HIY#1X3>38;e;x_XB%Xit3Q@E9X1y3tQW!^-4&)Zx<`*Kf*vB#X)KF{?EpB)TY@k9yVa$H*77$NN3W4H1-T znwhI1Izr$d?Xo zZdntvJjgmodh&W78mcy-qk3ya|F_^(Fabc#-peDfKkcGZ{dJ(&4%2esE zRv5i6g4oR#-AE!FZ$kmAXz*IB`Y(Opgm?v&o`Ml4x+tLbr7x!6B>En2S9)Z?HC(I+ zbS5@AM$ssNxjU>ouO`D=mD(pF1)XjxEXrre$3k>wI|m4IaUpy8^}Ew2K7K{~SFll7 zu$dtJ@!K)m-}9O-Ln_CZlXjrmpU+A&tE%#%xqUVcAj(U^8WpfRfa5pcML8M zkBwKB4lfB#=bv@cmDSsB&+3to%Uf`R+$5X341GG-9K5LxV24DBAyH^0t!S2$B+Vo{ zDhRF8R9Z%)6?1vU_-v@NKc2#PV?a`}F(P~yA& zt+s8B!qRoBlhV}TGT*q-NsZ|~-%g3KS81fObZ1le$bM(vECVYm)-!DowW@O25o%Y( zqWc-(gTaujoXd(GO~n{Gn>}U$xXIZWD`Y4Ce2HgyRA)ROR2eCq6J++wq(ux`2%>- zxMd?(Hf`(Z1$1bn+&$jsksdujiSuP1v~By>C+;c_gdmsT zb6;;(t?QP(AP28g<3;;JkX_EV)r;L%&AndW_b!BmgoroV&aj3u0V99tIOwa}!h%9# znqwxJ7B6v(zKWxHF0vIrS`rCE3u%l+9a)@V~8( zUA>9q_`~6kO6AqMr~%8rx@Z6biJlzEV;~d@Yb|>R5EPoWpx?4=;~f3DGpk7zw7V_Y zM9Tg*pj`T5jxkVA7D1|IPhf!=+B9bth!kZ=mo&}1i`J|nVfLw+5tBGUT=YVS2Im19 zj1`rzXzhqK?L5nb(|y_XmD)4(CkT;CO3;J#DN5~;H_D%_sSk9VTjY4yF(i~OCoe2B zBqtR@F(0|2OIllMSbR77`Pgoph$Tcl+QR8xmn~>m@OY|XSYBa~jX}Jy-$r{Q2W2r% zjg{s`at8K{c=gV{hMRsLC!S*TNRg?8+^z3_IXmf&>|%j*nGZ9gb`-jEy^xRHLZcHv z4k2H8Ev5mss+gFFYA0GyDA-nOw~@1~Nq_p_xsZIi)B)Djmj-3Z+?t3vR#d`LjP^-4 z3k3Y@20w=`Ji39uOgqemeCuAH>z-a7^BA6}pAFPGM=mX!9r!Y*&9HC_GmLyXIzYuQ;(}0?ksgke>sS#Qo9~hr;nk4!1U50`R(se+33-CX# z5f+j{`fsE4rDT#LlPq$rbe|Gd^Jx@%@O0kzX%PRq`+w~Q#=W~`JJm<=?fas+|A~oC+InENh}qB13gAc!ddv9G1Xd@Pr&n(!0kCgQ z+mnlzaT^uhebdVOP2}N-s7qZJDWI#Z&GWq)=RHh&piHhg9HG)|%vP-> z(m^SEW8(`a4lcCe=1 zy77jur1D79$N`M!%aK^8A?Mh+mZc2iEQp#qqQ^kujP&;w!4uf|niW;ts*%YmAd*FJ zb?X)waAgoz0(&-Ivt2U#2kC-Y1hmw9}an^*=QG^thI-|b-4(`_LU>Bv?JmB{#=eQx6C$@qE_QGw)_peC!qX;@c#Kc85;x>KBw~LGZxtX)$ zzAp8B1lG#^Sh(J)XAj=%a!ZCbI=1udH@WalqvMiDXw1}Sr6XHokm*Cp(M`|r)vo0W z&}+Y+8q1OEx+M9YcsnXV+yXmjNTiET4G^j+Ca$bhZb}ip$}|SIJYgHtC=qd7sWf)< zy<3?THFjLND>PM6zAf~8{J0se3-MBOslpuB2en+Oo4D_f#-pdY?LijZLmsXdls^G*>oA|zrnX_%)p#FY}K!@>G_c+87o)kS(bkEEkBTaNayy0{? zn?W&kiJsm)IG*GFb>DdOu$-V&MyOUc$!NP9Ho1_8fRx?WiN7QutYYQ-{b3Y0%_m9} z$Hxo*otDSrc-uM_bO^(M#MZa1h}hnYl9USR?`fq5<*db#W0fd7M`WaI^axorXf~4` z1Qgdoh;6$~>{lk(BNsO(kzYoSU?D-6N%k%w(JCNWi*63Y!0B;=|Nef%`sE`UhJ1tw zN%L;X3G<*U8uI{IUcmTMi}#hBF-}Fn^!iUkIzr=$Huu~k`X(tg*369!n4a$JwrH71 zHIY?Bb_Eg5bRn2QFa_4~S(hPPLFj$Yuf1K+rXAz->>YLtIGy0!X-9ox-NjR|NopV+ zwdbrg!G0Gd!a?w8BX(O!*8pKa(I+qPPq4g@=<1Vw{rZDcg)j2!CaXnioZ1mH2ZTeW zgJP13WsJxrk2~;Qf<+pLg&ys(szM-KC2?F*nqFQ;ze^Vn-dwiw_2wpEWbA8?zAiNm z3*shS_aZM7lMXZ}+*K{e6MyB*IJ=hMr$!Hl5JK0)P88 z$yyA9?Zk*2*kcU-21aEC1IU+Y+TzF<;z7X0h$+`{YSp{+z_mRS#sO8olKZulq@faL z;a>z&Jla?{*XEF&Ra0nHqhuVFnns^1WG@`yXwRH)H7V64+Id1=1uc7W=jM9PxgfFp+86=u0w=?ZTSDcwv#_Sxj2g-m5|_B4+Kv78N{ z(b&YHMyW*HUEI(?gsu?C^blwwlYU>-qo`r0U<(yWXmUk-QiTM>GJepJ08^_c)k@*a zXl0#8*lCI!33eS>IW-SSGfT$5q5o9Pk*7RyY^ad&bIu!9Bi9kaBz0Z@dy!#i~j2Y*ya-EcN z6P-gcAjR9lZ-mz{^KXYt})@>M3j-mrIgj>!jO=~r6ED%(awCY;mKjE z7^JZCrB2A2Xz$a6N)AwEYLp6zs3IHS<$H#_n_#|?#OdP`z&w;)XdonxtLkiX`*AfVB)Wd^QjoD{?SOVn#dx2I!vII~`+OU8hJAW?2$SH%m zH?<21F8>}!kR~GDS1tgp@W5cZC{Jc^Xsd%qpKke7OY&JW`kagV3^iB=H>I<66N(j9 zSwuE~-CSyVu{@qed?C@FP)&julf0Nv>-2GJRhH+pvp=>~RtC)#YZ@9WO9~#=7H|Q# zEc(5WhZiN18N{n+%Z!RO`EHCMfv%%2;jcghw+2ZBT$mgUuFv6V%;Ha_2D2vRq9{V= zZ23@|aN(BLG?}@-@3MK13Lo43702g%7yk0KlXi7Y-KP#q-;#isK|n{C4}&xUqUjOb z0G@AM33dlCK@#+6A?`5g>2r&*+XXM03n0fnzr~EK;%Lh!>x0D(5bj|e&ezTY?i1bO zwau_EJO zxuB|4F=;U*v(?kxS%22tdxU8&JlIMjj!G$NhSnjKpVi#Pf433*e*TW2^J1got)PQ% zjh&s_t9j8QA3Lu?v}?G1=7K1tcrXR~R|plwDq+%&Lr9n?zi)47(-LIOZ~n>XIZB|W zO^RlW{3BIij;lyVhOj<_U3GE^4vmg?AZgBg^v+KoMG7#`Dx{B|TqK~WVBQO$no#gY%!Q^nK?M6cjfLLRAu8SU3?AJIT^0;@mbjI$ zI4_RJug~SJrE}?3qXf$dlc?o|anFg{0xMbHYa_O9OFLrTdSx75-i&gTw$&{z!MZr+ zd;ZKvdFw9Z2Q*O=Km5gEcG&x~5Xk%8g5x0-)h1~uB#DxX1(0S%fb7d|2Gc{0*^G0~ zFH8)wi^NNx+?QP+AeCzrtVPmW9k1`sNX3i*J915v7|NZEN-b2nS|^TJBF#H*45QP! zwU`}H6olJi5EMVyHwudY*GERG$DNOM)_atNLQM4vQNmOgmYcWx9c#a95O*P>%DvcM z*XGn0lneWP==^X}<(ftI>a18Sv@$fqN1T>#Q8Ns0XRm%)AIF;@FuEppgmaC0H1C>N zwQHbgPAO+{TyOXH_jMV0I}6VzHm9v?ZZZ;zR6eT{m4)I8JYm) zg|hDadvhAgoNdh95@l_tF64Q0HEEtD1 zt?y2wH8?1==*c_|2dD%z&Ui_LeD@!obCU`DlFuN#`0Wa+Y#PD>al6p8+U9v3lRKlH-LApGV&i9$RQe_Yo#evf49jalg99w7gw$RD&_YLqZC6x-=u;*zcz`Vgd;pIF+ z7(r?_LUO=AHn-d;+E4r%+6z(q-0*U}?0zn-pU=AHlJ7a5>vE&~?(8hhZDm&G^fv8q z{oD@Z<2t-O_l<)0pw^YAS~RhH1fyAZI|jnvSE{VP*SNd$4@CSy6wvx2`>e{6g_B>Mv2J*P6HM+&c87&(RE%yV}$)_G4!cZg326}_n3gQo^&Cohs81UPsw%J~#tlha#jR5q3 zM2Hdve-#``4Xa@;<>$Vg6Wy2m$=_AH;^EI$m)v5Ej=IItf8Fxm6KeYY^aG#tD`|rT z2}5J}9Q>N5$=MF^*`&sJeW7aN1J=L;rm21bA&K!mF!^guAot|J&uNJI@eylA0*(cg z0#}9bDB+pX;2WS|2Q9O{;%1SR!If^$M0v5yj@vn5oN{wW%|bD|1J=z9$-B^lEVFsO zEZm9D|FR41yaZ2hK%0YA>6VbDw=&kPs zV@~n}x;foXzU_UMiNSr(EbR8}dBtu%(_S=CYHLx;=rN(f#Om;LpTNE4O&b;M)o1`>VHolH?CTMjBBB;|d`(@2)p!(XdPcaP@lyq_Z0So4f?=va}%CNrzcmEmmOmZn{< zma6A=H;9*P!ua(m@$yb8hz+bhF!BAgSjK5~nv=se_dUboUEq5|29d|U=EVy%i*@r_ zc{lQ9(ouEK@J8sJe4UJ^a&za_Up%Y!`etKCPuF(BPMpID`}?_ag7!$E8G@i#{-wt>;7#TPIkx1 z5R~V$Kn-c$j0}ksge``}c0Kc@cpR*B4mzwf&k5{1ny!bZbvZ)~cjB7cdVY|X>v zV?MNW*oNlA)v_-MBiifFvWsFt?J)90!&>}@bV_KH%AY$%@~F8Ff_>JHIBK6H%DbE_ zfAL`RXSRR5*GoT00y9A3+(SQ+avh;+rGQAaEET6dZu3^%pF-a9c+5nU*G;u#9@tBn zy{MSc)?GcsvPPf^{MV(~_gxf)o7>5K)6K$+7J@k+*P;j3rxWJY2fU|e&=V6qYK-9f zfbZM#j1_vf6J5YN{|F^~Ru-Gh9jEuo?O}JrgXvac^#|u$*yz`4((LGD;&LGxO_vID z9k84RnoHFoc7wCiEQxe$ww<$HIp?mQI60~34e|4%klu-G&mGqHM7;0IfY^F(7@c=K zSM28w#HSzZ;4pELrVb>Z_hFvm=O@$I>b%C5s+DnupqJREUpk=+>1j_Aw$EM-8Ak?h zdjzx}RBzt?aXQ{E#kE5EEP7D38n;@@b@U4UnF&MF+G7T$$qsVkM@(Ncu^uo+^$2*_ zjQ#yDL(g6;>|R^bEU0;=+cPYEd9oHsJ9#5_A_fGeJHAqOU+ntcT zNlC5SQpmVoAVEoShXVT))hG;-$Z%Ebv4ghPUQiH+{@ko4YqqGcwca#c?6I!<+l=di>WvI1^w*!sD_@mk!w z{a3Z@>*bnne%5>0aZxf4edSRY2J`0@>1f*roMFO%xef~J+YhQ`!vAUVPc6fH5%V=s6e5hA16#!M;!l}h^-~FedO~iPAD+z!;d{grT@ntqd{OAG@QWK z`xcq^5olp*+hgO#)XHq7v(}P-1yYz);=XBTpGgzAb#yK8FS~!;FQA_`8Hln0_;8<+ z*oSYdBp5$5bHZ8(2wAlN26$S0J^`^(Smw6&TJKAh@Pw_31-p!ichq#zDSP5@T-bEv zx{Kp`&h2CbB*cM~FH}1saYv7?MCNJ1e(N8dS)k^O@8DGZV$S>O$wfv%e8O!9^3)bq z0JzxrU~!7zuLn1mVuau=^u>fq{s4vK9t8ICyF}=2{LhJnHkjqIp8Gz%N%>~RZ{PJE zTGXE}C7VXV8+Yqr#vR&}D1eChyEJ-RL|;{!d(Z+h2;%$SlBT#zCEP+)Kq#SelWOiE*e5Jc9b2FI`D^VbzWM*2XR~mm6?xfjgG}SRt*a78 z{=m5+iz;O(H`)9tsZm3hupdheujnnSZYAexr}Hy?o!;!U^?-kVyZG08>$B-qaDt~I zY?j02yBG9JTDFKgpJ081siq(zESEvrWMIumGls(?5i_))4!`e1|Mp_-u{Ig!>+m4& zQiQ<85gD;G08Uxs{q424!Do7m8BGacN_c4~dd3B`eWQKbXE}H(Q@$HSzjSqw$;MC- zMCyF&_@yOsvEN2^)V7MYz2<6*bs$1v(GQE)_S6U47VCyJgZ0@g%SKYz3Mpk}t`4=l zQeUeQJ3orp_igcnyUBBPw)Z{zz6NcMDTi%Q`lRXsrW?~*8eZWP*9C!x0$3WBTtRJ# zQF=L=T0TS$=s})pS3dnWjSxP$73tDy%)F&l@Vfi;y$eszl7bIv}2~au#qC{t1QIBydgK`^nDs1lc6t{eieM zE;w9J5GYbol1|!K1(X|coQO$XrSxESNTpd5$_j?U@|3N2sPrwUfJ)xmh!aP~^>{wP|vF9)>gn@u;` zHe;PsZET{v(|=qnK!;S~lXE^Efs3{~Lgg3jmB0@lDEF1mQ{Veqj+c4o?aa>(r`YDb zr*p{%Hv$}R@J>Kvz@GKU&!$YzL*j1W066}n6Kd%szVA8B=hzN%2TC4or6RADU()^@ zwef&X<5j|`e-$us6T)KCaaYzkI_}Z$?k9lm=6l!QpcCwRGT#^b9R4*}_egWl7s?GV z##9u-Ml5f7om40oXgkMGiSSI?!YLo&27`tga zZpE?_ki;{l65%Xh0cEICDir~gVj|WzjIHsXeKbrE-kTxb-nGP}tHlob;Rjvj|Dsse z)=7?i9w&LPJuu=+^LT$JL2(R3^{ZG+G|UbNA5%&6VkJD7RF6V$SsQuwi373Hl z0Vx?5{@f5IO>Ljd#hv9)1R_wzwt;hM%+ycEgeF2L^3iYE#GczY5U86iT(r1~Na&X) zGLSlQq&Vj_#S?dbc#5aWbi{Nf?OVs*tp;=rNP&+tEHLIf!v>We@IM%%q@n5pQBO%%&cKSej#CYn0js!|J37s;Vn!so=I|M?xa?c5s~k^46E~H?xgsghQ5! ztw%B{xLJ$1eUm^F8+|!k+ub!Dp)DT02SLJsIJf8GM(E^ibr&jf7|iXL&duaRI@2M# zRrfLDY@Z7kyC_!!&@AKu(UA6?Cv^+sF72>$080%MFYfeN_o-JUF@}cZqG%>4(o>uL zIoXZ$$X)MWKACq}bi-RM9({t9)n-D7mDc8QJ;+%xddpE-pD*q!BaM2r=+Mr_az1+A zWajkz6ntAzI%u5V@MdgeN32WQ#%=)S#b)GX)X8EPa zAJNQ|58WF~6EP9OZjp@v1|{bc{oFd> z!)S9b2hWQT&L?-z>{*|)cMb~;;)Q-fcS+k#TcNgUroTa}_c#MHQ77Qo`26Iv^?5g2l^Io)}9>LY}83d=^-sYJm%;39N zT&C-iQ<6qdZqJ0iwRU%rt0C#Q2x(m|w=WvbNO~2S(zkgtB6UcRL9=AtBpe)`ovGUv zJ*%sy+7tWPxr?*ESF*c!Y*Vl<^LP}JsI#j5O!&qxSu{c@QPXYm6=@m*G9^z-bhf!r z^8uHGg|o%m@Nqjvu_@@N(bLx%V4hwxwaqHUf2vhxrB7E1yXu8F{zj?MNoiEN)jW z*j0tZ?=qS$RmRar(AiZvZBptLK<4%w0#k&d&*2a&kAn&P1>?f2f?F zfMO#n7IUgKB;`+QyBx|rDJGJ#$h8QA@Xy>UR9=$lX_s z#n@hyr+uFIyP=gV6FOq)!=6|(D~8OC1qp_2an2j1~oXvM4u_2N##kIw9V=B>w52J7>%#w*5WG#p6{WR+ed@1q?pRG_-QbX z6hz72-lq~YZ#07M^{t%m{HVMS@K1k6a4=Q53;6B&r4x8?OoeuR+M_W>ixLJiR!tE` z1RNB~W3Ob!K5{UoCu@7tq@z4MUamD2#K!au@=^vvDpGo1Dp7;C;>Ysllgw$}z(5KA zu*dBLYB&eDGsNaI60PdgUnQHNB|1t8(OSKSRMIAuQog=^udxcTi`p+7In5}J1_X)s zF1&(fqi*X&9CX;-%zveS4Qq3FdDER0`2o2vTJwE+c@;U@75eG9k=K@*quQg2!>#zt zmR{RUL9G1kS+_Tnx!z8#u-`HWd44aTOM4M$--*Y2FzM;9SGTsFTm9t0$my{)yxTZ4 zcYfO#kGLo;N~WSw{rH+NtY~6Ce1@k<&19p7gQ4D@v)*n?pQPCqPq$?T??|}0n2%{N zFfNFcCFTT;aPQ3Ds>E7mo|R==08la7s>Y(W{4&=FjSh$<`0#Xw5tfo`{Vn9^eXocU z#HdiOG5R|6sPE(sQ4Ai{K>(UFy3H+v0q>H0aKCx@9;K}SI>a9aP*4J zoDWiwqksSyh&v73VT^gYx+C0mWhIMJyI`=wbFa$Nau8Y2UIo`0c9ef?JGedeaJCnX zU_G3?v_nH<{41nWr0AjyCrCFqh-3MZ@QtSPpx8^$N)W+%ImL~kg$g3fMWIWx4N~i# zo~v<$E!M|{iTO_R5XtEC2@^yqW5I&3Gq-judl5#M75+8&B+2$B5Bko$xbhSBj?!%@ zc+OWr^mF%7J5VRh&w8ecp=^%I1!Q{;Z`R6g^sA&2MOHlexUwi=AQkStsC&(Pl7T%d zKhpj-NEdbO(2mV7x+Ic(rBwf(Tu@;xoN(*tl{ISMu3Rln-%U))VN*ugJQXMCGLI9k zXXk4*?^JN=87vSJC54*c$#M{YT zZ$ut)6b;9HZYlQA`KjIL!3+pqe$AX>K6A-|2U&zco(NlStC{=2dJu!y$lZ^+B&E<< zLEyNlK(gE2?&|ub$0z)~KQMdimCtRz6Z}tS8=fP>_uMG!Bi{5l%zJl0=~c#8e6?;C zp5wFUz|Emm&x`7L;9}cvx@Oa6?iMM(VURDL^55lV@mxRHX>Ww++h=?QFW;g3Ed2Vi z5`8NYPl6CursQM)XzliSg!5#s`19MVm@8k4SrpjLdIouQ2J$bQfe6Uud}l`NGgT2Y+wg^+d;*zO20y86`ze~ysNuGO03FWD!;MA$p@XizlV}~h- zAh@KYpf{!s34%H4Mi`681t6(Gs)JI1H0V}ukmv-gm#`RT5FDS`10jVJ;VNb3w>4F< zR%Gf!Gg#R4C&aSX+U#XX`U6M9ap);Zj3Z!iqw>td8MKctdclzoN|B*m| zm=*Pzj@a~sUukzB)+?fniiIIQ-y_t;40qBUk7ud4&V}(Do~^cCWvQ+E?J0eBRBGCERb#G%4#jqL~+wpNP?!l!1UYW1dgit;^ZS>z-L?v2(zz(CO9xC8*=83v7IA_ z#@NEqfw@9se%VJA|EsA@U*|wMAfX^o+CjqeI<<)=bMJ4ut&;?w?GRn6$;JCBz;6CC z5RH0PiTqd_W&HSo#OHllVolii_(VS|Lbvne@yR}#*7Nqe6Xob{JvopD9Q*^=`!2;t zfEE_ocoUFmPk-IBh>=f~yYywD?7yqt>bc%x*!oQr?e>bKw2Cp;j+sGJAos)dagIdS zph+{Qm7oHIUOFU)izLmg$yqYduAYK?GL$DpDH44Ltsv8=L2$u#L#VbI-YOJ1bsDfg za(pw6d0x%PhuZulslZI)^|^xk2i2*-QZBx)2XTv`)_7=iJpqgMvmoQT_^pPl1oj2Q zwYg$WQ#vNMmQo=iAA?p4fJ`Im(cdT>JRK2K=+9{|Ac3F0vLaKqb#w%DvHWjJ85-#A zH78&#>7!<7pJSEzLXw=NvXDxsD%UkSZjf!dIP7S76f|&Q%TjOko*ql?(pYs@=ws2; zEJ1t6^P-OIrj4SZGOgQ~cGr?BXv`0~wF=ZzM_bMw8af+JKHc?Q^!(qY_kSy2ZmhYR zixQMq;&_Ke7~)bx#U~?*VEZ6Jy3j#5z@APbRb-P|R5b5T6)=Z6TIz^tYb99FZDU3= zCJm=JbTj=2B><1UB0(^`Z9xhZu;oiVl?jEI^nF5A`i(6fShQTIe?%6b#f0oJf2J5$ zrlaiKQDTBg*(jF<^mu2IF5Hc`38$nLx>}$h{!*EWUJe+NaLEZREUM&0ZDhfXGyL_; zoN;7HuJch52(tLnNcJECjGp$Nu{x5ayKc(t5SePWhK_ZYOs*;p>r_PQ_$qF}g;Yfe z2_ew;nd4G%iy4+Q31=SqJZ<_kNvSR>tz}KdyH^R-RfiN|f+~8$7n7IJCs!nOqbV+^ zLVE;!Co>{Brk_6lTCl7|-AviLtk7DSIb2HJ-6>J*7dn5e7&vla;u_Yk2XgrsC)>2-v$-b&e+_f#TDUS{dy!Bx#QLIM=B=-)gI~qQ}$H0>7zQxZr(B2=z1F$kFC|J#P zgse3C_3aieZryBe)IIF-aL<{cE_hQfEhGBM1i1++=sALzBYE}H4WQ#B2Lg$eB#?vp9bG=KQo-A zsn+Oud7IuWB;&8Flan(pzo*8$n!3hkB(za>mYX39M-(3_3ln*yn0-$UWB(*}sn`@@ z0~yXrp9ULt%G3MmNJ+%26HsjIBL;X_nmz$kZgV;~@ZAi8bn#IWNI##;sEzFb*x5>F z`Ci&<9iH#mRli#om>Z_9HX{|wKv?>zRHwFV+}&7P>tWKJT9&ZArkM?JE3rQzs~b*C zT)WP=TDSN++iv!B+1F-QK-OAwPt%b;G7f%?V0oiRZjE3&{Y9cm)ojC>Kg8g@M>->1 zYuR>sM%GUKbDuz&RU7NVW~<*{OLn!F{A|!X(Bmvi$%vvGD_h9`25oT+6BJ!ku=L@5 z{Muc@1!Lq-VDLn7IM+elrb#6ehV}%$5{g=fM@hX8VjuKvG>9Pn<-wM=H*5v$)&q4|4_H10*Xo zq@fsi6K+w#OZhGxVB4k&f~j;Fy}+??mFUl6;0o$Kvo;0pn68bYV}pd3l7%&O6s*L< zkC+}*Tow0{1N;Jz*s>3KU8z1sSBO37cuN*Qa7M*rs1sY0R?uq`F%s3rFZn+?i14)L z*^Uy^hJ}}mXrVvIhfQ76hTb+LwR71VT9#~w@$&*Q;C^wNb8lIg)RAAer&wrI>;#Qq zqOY6jBuve%!IeT75bl5GL%$vbJz8L-Wf`UB%2bJ5R7}38wi_*WoLM$xxNs~^E4zsD zne@1*J>H13GkUgl9F)dZIUl|@GR<-+QsQ`QPhH-}B_EI4wcG9VtZsAj`rcbTUv>UV zb-<)#7CJf;c5FDbJAAr~io>gc!O0QF{tRmGObxY%nutZyWnp$+hIYg5_*a^c@UuDW zy!*2QIK5aWqPti0Ja^GPi$Ik@xI;{Xrg{t2m<_INq*q4?1-H+>Yt=!Fy7C7V_-C~v z3dkAkE1N0XhwMO(v69 zqOaVh4K?cWxxmbXyL(8N|CgI5F8QM17dVrQun&ro*hsuRRr->Vp~}L|CQMtsp#bP_ zm~dQykwCaz+lqWKh${OvV`^jGmy%gV+!}>c(8_7+$DLO{ZrYu>KOwQ8*Y?McF{9J= z^T22_FKzYT4m_I%N77Rll#Zyyg)`=7lx@jMRuAAw?Qs@`!4FG}F`2Z2>vBg|Wpcfr zjceZT*Husdde5&9?&Mm*$8oG}h&@&4MOSKQi)i*<))WKNsgCy>aCmgugFKIWKdP1x z6rSB%AC``nEB5o&B1bIC`C( z)Ge!j+xm)EdDJ(XCF6VbFJ)k5d0n1l!1KH%xOP21+5Vd+g|d_UbBi~l7m7B$uwb*1 zh#q_%*l#GKy{^c*BaOy#y-QHC5+hQsQqhnO?+hhn7_vcTd4Zp>quBOb$+}Xn?S^wI zLIwvh;vl56?P(5rIsHG8cyaB+^+mr1G`YYlgo%MsfU==&XFIAC3M7LcBfDIyHj9?F z<_(`exqk-ux>)|5j80zXgdi*B(~n;bxOhGMMX}YO&N@+9L`3o%$y{s;7r zvQhvofO_%}9$B5T5vxYxkX~HjX(3V};O4h#q9757L8fRyT0-13W7CnuOyp+77bPN= z?7v^7{KY1pf8zVQ9Ex(rdXO!Ly4a#1Opp+W{Q$mBt`yX00`@Ly6eCPfC#){=O&zr1 zO%ZCNmkfM-iM->}?{`M^r{)ClRG^Lgt_kfv=daGRtm+XCEs@&@j>C&;Knd%wr}ET1 zz@<_I$e1wePgA9#g?qy29;B^lALUt9<%*UbHWMn!2I+D7WG>4iR&|-aDT!6#^|=hk z?@tLik$9qY)Hd}K$88mXs8|~ex*VHGefDuOq(Fq>kZ9dVjq&b!_Y3~;rd{(j1bHMg ziqW<)uiE8)TNGmic*kiy8A|oq4z1Wl^VK!#P2@t!4f>cs_!GrEqOoAIk3lD0#0zU` z*?!|(%4K<8My5T8=fo-@dgP8K@UKv>RBwicz%|OsDXK7-14O}7B&y_+Rl`cmk_pKg zq1+AIZLV@7|D?)3znE=a7B%Yla#DNC+SLiaLB$jpgFFZ$uSJH@HO&ia8U`k#qfbck zA}VUr+ptFOjDQCaR=FAu066J65jJWoj=bwf@XsI52})#L9g zGeEFY4AfNA>(Jfcx1gjih(PuvPY@QCS?mJ->7x?d*mX)ig&tT#H>{8JWDa$(MqZb* zJE#)gB@ajojx=2fl0HL4=v>x8Y31tZFpPJk zbqw^$56``%E7q?>Ch$M(5baZ=zywoBtOi_Z0g^gx284FlKI#A&jK3n4}20fxGqsIIGpkqE>v6or9|seysKju;6au%*v!B;=f?AF6iP zIH4-Q+l8WkRH#m2xST@(K~KNkg~W z-~-gwTP!3blcTTVU_#>0+lZKdCPwvnd!!sV!)Bt~n^us?nX4g?zAX$8e-`q;C*SRo z4jqTg7!)5wF^9dM&1caE`djI(>I04g3>!+&#z8%sfukh>xZ%?l-c$>Pfs7+cEnsy1dmaa zj1j5TVJ>igRtMvE0imThtVw1nXlqHsI=vx;<^=K+s zy*>59Pr5%z@XTxZt9jzt?Fpd((36)KI^eX80%5&oxn zLcA^&QWazVK@FoG*&(4_v%xS0K}#&byLR(G*FOG|N{gJMns8_H#T&&CNIS-vi5mT=7JHVpra&lTu_^yl76G^#Mn(MIG zc{yv&4|Jo|#RbMXSVbhNZ*&QROP#X~xYc^8)goThvRs~4+uIAp2N`Kcp+6>ENmUqR zQz!U)zxFMf!0`DUb+}C40GTF@#>R*qgW9zZ{;K>&ejA}_hc-s5mY2n*Ciyq7C zW7~qZ51u-Jr_f8~VKC(d`!=3^1FA%NtZ=_sGO009-GK8|G_&mVFC5j^6rb zm%#eesb`?KyGamq<}7_F!IViy6^oaO`bt}EuBv^iQ zx8#{k#?OXJBMoO687aA~NQnasV*tYhA|kaj7G>qo!Sb)L)QOJeUwL%veXvi% zdntG?gRsxSd)m*=GuZ3-wpNd{tiu-GZ#x|r&T+BUjqL`a5_~(92*dRxwk>EkZEDbh zZ}eTzHe2v5JaS?9hD_UBp>QmoNMg`Zt8=<9K_Pn}naU!j!MyTp7nGqkEaPbRM&)>1 z*F7&gdDHc7wnn{C-!zy0V_4&I^09cz>5Y2@?JyVTtqHq5VF{%yzRo{wLHymeki}-U zhqC|xvrcaotceR>+e8Lxg$8b8JjX;F%dhT@92Y|0B@`iwU#r< zAap44nSOYE{NxQMJ3re3mD@0ObK%q5!r@~8fe2WBdGa&T(x7)CB@atEC)5F5d^aG~bS< zV*t4fwk>G;AQwf*MPrO82jr@$UC6=JOg7&KIX`+ZY??UmYiR(NC?!B)@?gP6BP%89 z*y308^faM(x}V>C*&Z42c+eHAIn_0u!SkHI%BHeQP#fP zF4LlB4P6%L4FYVYpD1rBF6LZEX5Ln52`d{$SlO_?bSkU@2G%BW-;MN1b$``cT<+_@ zjY3=-6`ttZ2LA5O&fA}J^N;CgI`5>rJLl*!_ma;0>7QSy|Lxx@1)s2nQ;F5q+ClCk ztup$Rn%%k)bHGcJC54KpxWHB*P6F*rvZ8}41F}3D;L&zsr6qc0BzD3D? zn=MgjgLcI$VnG)2n}(s1g?#7xn??c>zJDw#Wh^pZcK{?6?%4mS4g*&&h7=DouCWRC>eR*A0y|tsmS9zsa7C-bACW7JcVl9} zC!@mezVi{ebY165^DIvXYfdm7FAKck z3N<|I+O}$4SCQMOofYH7_^OoEV=~%hw76eJSG$}FW^l#gTa+(4ZDAL;Rl0gAR|`}w z#Y}m6jZ4#4=?jG4GihAoy+UByDO<1DR2xhs*9K$r!~+_}PSOf>cT~uzyPF0KvK`O{jVg0j6s zS&Af1t;ZYNW;a_DMp(IhDUj+S z259WExY?&jrpK=YJ!q0%9zk9FApa_pdFmytI^t&#@H4HJi?Ut`Puo!vht}kBna^ys zVxiM9K;nXo#4bzwO>?vrSC5%d;BJ>Nu^t0E2MkO}>LOBn5O6d!)@(kr0eQLPuG}-S zxa%*E&23m;$A4MesukSI@-;w8WRbLD-KrgVHBlCuluKf8jphC8c`U2WiuU7zO1mD@ zOuzz+cKQv_7yffoy~)DNqo3)m zWzwx;2n_v7kA9|m*~lZ4Fz9e~UH55|T)|L_tHQKwRTyVfVcvG%ZB6gC0Zt6+{@VnM zZGubAh)yrBOWAtc)Vs}ghg3cDlC!73)m?z4?AxTv=sY{i=gyYTu9R1x-Bmt!u6z!T z;s3IJn!5Ns?#o~^1xSWe$xoHFmnpzJn%&ZnvdqZ1#u9u7c`1tKki5GP!n1Vh?|<5h zBGFaJ7C`Qb?gh?DSriEigtJ8uXc7ik8)R(=TYNIho*clo1<&`*&jCzk7dc!OLGV1t zcDoETW#FKDA`lE^2QCH9wzt^qjpAh0I4~wWltNqEEAO$U+eorivf1TOgn`OyA;4fW zP~2fmHqE{qJ&?O|4-(}-?r7{#?gfi@oXK?#(dYX-NWsmcwAp#1-^-4#;yxKZmMdb3 z$X&0lUK2W=Eg-?}dc|-jN#B+^HH4&`reEvamOWL)<1Aa>^Az`5Cf{9v8yPc3rD`tU zbI0ni)R$5Z<)F&X`$t=0I*v;X@l>ez5WJ1+VA^p&7H z{LwG-_qD`J-a}e$+GRyPkTh#-TOs}#6ak~WQ${z{|2JSJGBd{FZuZ%T+l+Tqmd8Kb zG-Q;!mkwH`j9KQzK2jqs5A7CS^|L|^tUed3+K;@LWyY8U#Rcct?1HP_OQ-Yir$G7&4$m!G1djV0_pJP7L7jxB&- zi{mWlF{(fhacP(ZNaGxC*;*_$m{bfWyY;!;xIdEUuuH{~yv?Jfvb9bL?(>K-QCBxQ zDwmUy1!n&)SJO-O$e`bw4GX?p(BaY>a`R>Xp&fd=-s!0>O~i$GHQp?x#&)L)i^DAW#IHZ*&Xa*OKN#L{qVq8w9m_JhsAnL&4`wkYQ@U~M_f z^%^D%R43O*7pqli47Zr7h-18{!I-sLt}e$bxTE4uRy2JYU^C5&ZUhe&WN?+(PE^yp zRHrOm0rw-?wY9ojf)}H!(i|x33#%9^h$W&RB;weLb9{S#ZUIhrVB3OQeKI57Y{5-D z+R-HUC!(?V-29G(jpgxMudtcyo@U8vVqG{(RXpco#oCQ_sa$2rpJQ;hjKyVEj3!sM zCg+ADcYSuH=I%un?0$CT<{pRHlX3*&-{z)mNUsfC@p7B7hl z0{FJO*^}rkN3e`B8BG(YrHbqK#5yLNPRgf2VZ~zg=0{{Eph*2^M?e28YX*PwY$*tp zh+mn8J`XniKC(>zg|rrshW1vaqd-H^3hwuV+go7N1ZijhX{d5#hW@FNII||50BSkG zizTEoRt>L&$uM}yhTpZy=DxMmbpxE>r2{}!jS2>~+ca@N-*b6hzm=zq^I~&Vx&~-! z`Pb?4+@Qd5zCAkLgzID2ir4V%Yp+>`)9bKp!L2?D9Ba1VCLUdP*|@dEHI7b(=IGcp z*Iu{0g*FA(c-QH$-2**3J%Bz40KIphg8PqSa@=B5N}yJ>7nKcMW4PE9E5b@5S)AFw zY3$vn6sR7ZvGTURyXqc2f&!4I!mBs<>$(CZA66 zq5&yVFH^dclXvK2o0t!-N%KIo^StOsI%eCGl`wVymv9$DF%6FoLmUY;fhv!Tc;hCbx^|;ki{@o3R|(-e1pyIYJb^Ucy=`KN-!y2@a!BW2*_( zY?gd4J^99xIKL)c11P?R7b}SMAvhi?p>_|Ko-y0tuqiK&R+w|_^j3-hG8{l)khJN%@*9mqw9eprp6~Gmrq@P!v;lcz0%7s zfRPT?7BM?BjS29353s7b#~7OsYr;x8Gc}tQx>Sby zekFOR+Rq7Ok{lt|QH{L&3F^iNfRaWlZ0WG5t)gF4GMq#)$M({brhqB{wa&gRkDct2 zv>PZO*e&yle(eTaI9ieFa!U`aquE*oGq~po)+YglzS#Oxv$XM41QNPD$Ga7nWFV#Y6kMYD(bqI)R+#7Y7)oQKI zsPEFjr=zuu+morwYi+RBFV?W0>*bO(x;3n4Hs_Mevs@Cng!-kqBv=}uDr0*GdQQjX zO%CNmlE%!_WRd_%Z2S-&&HM_vBu`fzJ6Jzdt37=#N$l#|pSE&#}T&;fblK1~I;{^VH!3zkhCt+3Q--p7Kj$s&W7 z(Sel{Y~f}%?CQ9pBGhPgx391cHJWFg6IWD=`qw%}72R%(%tXDiLfdGOI)Ckh+!!Os zIZ`E`ku@k5pUrS&qa4|wT-P1!0va6LFeQVV9J3A+7W`sc3?wSuK*DdxJ=+3C!dROH z_bu1iV=~bwX4@6PRI$=-zjCO8U3O(~RV#3nbyGVTCPzuD(v7`kxvuNChSd~U+|*FP z(5aK{^}>WrvVyJ`$r)l!53M>|kxNg2$=J_d|h!)WsVZXT1q zKaUCfIxXih9cSG|BON=ey7)~PSGUGVUmg>_fz?dT!sD_^yi10IT)X*km~l<=5NQRK z_zP}9ZAYpY#nq4f^{Zkq*fDvqf$4`lvQANA6*S7mbuqQtPL@-kP?Y#~rj!PSqKGZ- zeKmyFTX5Q^bY_|@xQs_hP&zTC6>CFnD4kocFo@ui%eFn3uQMu?S6#xK6Yc0k*;+xW zZ|$WVY-?n6=@JE5#$s?PPohYve{d@6=oXVcFxNaj9_dz;K63S)iMyTd#DX=;-;uu4 z9F0fKTwoXdi(q*&(Jd~$@6?`w9VdpmHKy-;U{5VI!rOcWz292R*7f0R$sb{BH|4tB z=nomDF_8M490|P=e@Bg#$YVQ^Rd8dJ?fn}OmW<3Q$jRHW$i9vG|AR>m5qMRsG+DC4 zioxzpl^H^j9;DFlWl|k9+tw_npMAyzhgWVbX}*mk;19R0a^96se#SE{$%W#6vpHRV z1Zu@=FI)7S$=b~23ZMTv#__Ckx<)Xk>#M(}k@Vw)<#ds={W)FSua?vG8`2fbxWUQh zq^mAhzYOr6Qarg=0zK3YehK(}Udg$N^ygf0&m!llZ4C|Sdns3;UXoRtjAitBWouQm0Ge(4!G)BTsn>NdQpbL-`CtX6RRvF&rOxc?KmS8u`GtG~be z5M@no_hkpABIS!uaaqm;I*td%G)Y=2tcoO8zi7EQ+5g5XbpQzNf~wTQ5bYH?yl=y5 zd`oS02tMkrU9C7%Z<=jA*nFxRB2lIQe}e^9o8wDBUhD)GT}k*>B0ucSArY#c5* z#8$2yi78D%)`q&zWY{xVY+LZ;riz`QZHcO83*Otvb0SKflM0t%1w)zaHc4RH-IDX1 z@>sA4_brr#wuwQLHl8lgi8{J@P7YN!&58cYcwjVoxQ_S_hbM#Mk;B7C6QR!8|FGDQ zRHpypKdd|+%+XKG`e#C6Ac1CMIkm$x8wep;G?qJmPc5FY6w(Vl-uVyTcoIp7>07Mk zKgv3cK*^adOelm(qP?fsVs)$l+iFJ&<0@*q9I4j{ZK`4!FQOVN3j^0i+E)jAPJ!(= z0eBOL>mOXQ4}fA-Y_}W0=6)_-X+L!~rc+S4hk~T?H#hgOmmRguMg=7h#Rq?xPLh6j zYDon59QOBiYlxOa*BaW}ZEAOISmk!P`d+w#^0%$g88-)bW53zFDVrZ-thnwigxjV0 z(UOYv8|T}@=HF#W`@wCXqgYx`10R(FADP!i(b5hegm{EdtR%YEWall*tr8=w#5F6P z<8XH)D<)wDhQtLBrFwfyrwuc8fyceN^wCY0_V%5B9q`&cm-M`6^ljU7PT4B}>CaDg zkd~Wt@fzsgMnbDtySSZ}0qrikgKd?#qM|07n@IfwGO>)}+4usT&r z_9G@40s@%0umCTY+*nxKD4auIjLqR^aCZQ4i~X^-?O}fgsN*HugI*>P^>)B#d)=!s z7bH$b$n}cFkifl?Fng_lU2ZaqAq!p3$}1d+xgzggrmtWOQyR`f*Bv1Qej?OOR4WK) ziOOK~#@Vh(cFAI58_)GE%#3Z`S7?%J==zGAfQ@<-$VH8KJxSx_ZU18RSn5^QQ5xt-h@51_v z-D(aP%Uh87p{pV;$iB6S3hsg>j#s2b1QyPw92mXgf*@rY@awdQ8T@z z^90>LH@6#pUQ7+TS*kPVNeDDnxb17dxSSl3jDVPGyksEgZ@8+)Nr->kn&um*-3M~v^OXx0I z2wx?%r7IRf8Wm6>;KATm@G1rpLlfg?ILU>7z<5!^)r)ZfPkJ$60^!C%Oh~*KO+1;H z;GvhT^WNLG+fowHm`Eti(%rXj-*o1^dGqG?i}dvO_q>kxQSJ`MN~-^)I@DUGGj50+ zMooxtX}pAv3l*Rck$S5s0qJr2i>pxcb)c{de5z0eO0}o&iV8t_c2}9Oa(WN!yuKwF zJ10YGWSP^3$atO_xrH!gQ(J zTGW>*|ZHqmu;yYVPIEU0^>Pw+=iP1TQFG@np^}^G&uceVre;M?Fwa z;I`HRYp{lQ{p_J(GgZJ;l!gcbw$JYKMrp^8=J_Gs1^VmDgYez07y zV0(FE+Mm8yzX^Ey{o3Vi0Dc|dHq?T4mPHI9R%!x>#i?T4T4H_OelV0b*J$}hDQ+LB zV|I?uVEdqsLBw$mkdAKBQS4Y+!IBy<)%yxMssdwaAc$hHCNW_6%C%zHevrv)X6}}4 z-QtGkY?Q6=S8^U*515uNMB{M7cc_6dExptoEke|iOv9*j?QLymdsVd;-s38twjaq) zDNdJnay*oOX`Q6SVt?c=9g!33qK8;j4h4xDUfRVZ*IPTMkIQwo$LUXiF#Qr66*3 zPA|uf4GgkWuS20bmeUFy9pO1{+aVlLFJJbj5>-C37`s~F$w6{1iYDXGlOb2r0vkCK zNKFenATT4<)gr%zK*1UUvY7xxk#8zQT`&egq(X?Wyq#Dc-Fk(lGz8^)oeX~ZDsaz( zo@{MTDJPTRWLWwdJrPu*Q#bC94>z7_8sj_~x)}L&Z8#EYi@yl(Hf1>H?vVLSbo7po zomZZozI0(e<@N}#%at-ech7eC>p!JjuBsZ3CpD>`IY;wk9(63?SP)>-3`p0YZUYSa z;r90>%JNj!8s7KI&c+Nh_uv!y_p%criCRA-fU2~NQ7vN$8A$**SH9?`_&5h@A|M8W zNemF~37|#;09nV<%%l0)5oNJ^Q8ByCw~t47ls`8&_<(tnUpHUkYdV=UpYiG6JhVu4CLzs*+$dFB^D5rz|MQ~to{|HuAovv4u*0CG7Pm_VWcmE8_= zc-muNWME+4@n4%khQ;XrvHu5IxEO#UDBuYIlVS$3c-n1~&r4KM6vw~!UQ2}%+6*&b z*pE@9hO|dSAr7ypAu-<2PjcZR5R?|tPQf-32(xS-%pVZ6ZzZm38MurX+5{0)i-wdS zrq8*)5s?}A@V)Pxd(OM_J@>he67h2x6d-8cz0osY(K#rEZ(8)LI!o>;xhWUAyY7jK zenHd39=J^JnIW@`0KjZ^2z&C^4nr4y#aJzAj8oShjJ z?@wF@6WZPHzNE6hr<=K!P2D85Rn`@yYOBt^-<+Xt>+nda#be&;sKLuw`i;364O@=& zi2tKg{wlhHQwj+Fg6RDndv~H ziSUBGoGI`5!F}f5ykjmson;&baehPKlGIl{CBc-muNU=V{s6NWHG8zv5>Z!97#CM;1b4XjM860A0?5v*mb z8`u=sT-e^Rx3M4MaN{_~@q=>$mmHTJR~FYct`pos+#7hd@#^qS?gcVBtoQ3WS7W2Q3+8i(H_wyqKCxh zh;xXih+mMfk|>enko1wvkz63fBqb%)A$3k#OM03NlZ=(jJ6R>!EZIr2pX6rAJ&~7? z?~-4lAf~Vf2=6F{DETNmDeqIhr>dmtr20kefVzu%f_jaHk%pJX8jTa0d78hpB(zer zdbGA^vuSH-x9M={^ys$fmFd0E&(MEiu)uJUk($vfV;AFBCLAUjCVeIwOpch`Ff}ms zFr8!;VYbIy$^4VW14}Q3 zR0}K#62Sotf_#FKf+~WR1zibd3JwZh68tShBP0L_=Y+fnc@Y{Bx&;7CiHu_a00961 z0OSB;00jU5000020096302TlM0RREu00000c-pO0OODe(6s%zk0u~$qvG9TgNFgGO zgpwTy#DIimF_R@5C$TdYjvdmS3Aq6$;2a!-V^OdCl6VFL8x+}j{XW(8s$UzxT@*OR zQF0GR9s_P4;SpD@eG3ngS8gBEK65)kFZty5ZTi2teFqPd?{5D@o&3NXG+1Jb6-vx; ziHHIVTs&56YiGr*>Zh~1=sIs zHT0y6Mg*Z1{FSKqWc202zKQpYl{s@N#-{Wy=rtZCy#alCUwib>U(m|pIsdPO+{ba#Y**2k*h`LdZ&2H zw{iNc?n0-(T1uXFPI-4uU2fK0(7Erj3}@@yY_cYMt-2amPgb?|{(61}fmxLhcHV_* zN=?S~%qcUQy*{nZQFCU@3U#>h=tk@>rC#hPmgB2-8jE?H_m^%8|@vlRn%!` z%sS(0&BwCmv?@*chO3F@yk_p->e3sPFS*ZvyAA0b{GoDJHb003 zz8DkD-|mFp?Q1UZg?Ob;MWruMx7xJo{{j;b?CAgic-n2vHEfk(7>42ND}~~;xV!7= zDaEZwad&rjDXzga5E3RJ*a8ICK!5=VZb1SJObmD!fEDY{#*@6cw)>Uf?|$wU_rJaU zeL;d866KUjlHBshE1&!dD5#KRDGDp1sA7sMp`=nuE2FG(%B!HFN-C?Os%omMp{81D ztD~-Z>T4h-_4n^I4W(Ypiv}F7K?f&1QQXb|~bq$!n|a42dD9ts$2Uu6q-b z>~+L<-~4dEF?ZZ@+!$kRH_kod-FDX__dW2?dlNkM*b^sA^wkb8JoDTnAAPpb6q8Lg z-83`oGt+Fd%rRG%dFET-gM}7bWQk>#x@f-@mRo6+PrkV1q*E??=~c)b@`Su0U&tQ{ zgo2?^NDe8Xa3~UrI_-?}F1X>Wb8cGiXej2YYoT~3VM|ihjLETBMl7;@wr%5)X_4uX zP5&5=#bS}Ek@3j1$cB;Wk&Pl7M>dK4*UQK@HR`5D-FRlU>6wWgvgXYE1sSf2761SM zxB>r#umOz#ORxw~Sg`>Cj#;rr1}j)0un<{GuoO~QA+Ug19k2!~Tv!0G1t3MR11m%U Pum&JSumdYZS+Eo<8u{ng literal 0 HcmV?d00001 diff --git a/public/static/fonts/helvetica/ultralight.eot b/public/static/fonts/helvetica/ultralight.eot new file mode 100644 index 0000000000000000000000000000000000000000..5e358e09528aecb8662e14cdb6b8ed28739423f9 GIT binary patch literal 50360 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 bEfC?_x*6*?j@1E;YZbhW$%`!ko9ll7rs_(8 literal 0 HcmV?d00001 diff --git a/public/static/fonts/helvetica/ultralight.svg b/public/static/fonts/helvetica/ultralight.svg new file mode 100644 index 0000000000..330d46c222 --- /dev/null +++ b/public/static/fonts/helvetica/ultralight.svg @@ -0,0 +1,239 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Foundry URL : http://www.LinotypeLibrary.com/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/static/fonts/helvetica/ultralight.ttf b/public/static/fonts/helvetica/ultralight.ttf new file mode 100644 index 0000000000000000000000000000000000000000..bf3c075d6e8282bed25a0330fcdb5d1b4c2a1abd GIT binary patch literal 50148 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

dM@SH@LuU-9-O)(5 zAg9e~+k!O1a30Jvsk47n=sxBYkfZkoLz&(|dZjZkK!)1O?CW!l^8YdZB;XH?PSG7s?WETXa;IwUhZ{CbeRzViq)42JQ;Hs& zUM5cYIS`1qz9OVP^h!|LH1CXTh;8EAS+%=irzL5H)P8#1U3GvapAf>RTk2eX)f#2N z)Z6_u&BG>ZErtR13Z`TZQ*z4-2xYv_Y2oG?cb0sRi{s(9pq`9Asan zs5GL5=@cmHJp0^%^A3Wd&Zp%IxFM?;-$ZOUiHPldGGEfCFOx27!uK3}iv6C8AWJUvJ4P z{zWRvf*wHak{e}m!e=)OszZ*Zx>cjP6~gj}a`71u*2V?O(r}~NC!@^R=VoU%f>1Wl z5`@xR!i^(D4I7|Icw{$N&c-?+@YA*h&f};rzJtQ{fzl-Ki4J7cHNxzV#`68cT0z%x zbm!&Do{}&NE_em_8zKkH4_^t&8uTPT%&wTKn^_8Sqk_SuMB&l~(C5A?y(bAekc~hTP;-9s&4elICtsaQAN-xwz`t!9{ z=>r3^`63$po~@&_Co`VhmPz{yYt!k8j3=>rUlD!h(}fMa-c&i18IIV_-e9`Bw0kTZ zpQ!iD4KB@!{>uikpzyc zr8I%*rZj;;G#?op0AncI=Z4A^umo&22?*>1OJK(mgXQVckj4(6d&Fsb?LcX$Qs)p2 zL6C#7=W07KY;bOldI)leP@nsx=pPQ}vl1v!jxVKW zqYi@H4*#C~{zZfwq_Wu2x`SSfh`JTcZHvAg^m+$Lha4>0lVjL}5PVanRh6?mG3y+d zHK~cM%Wodyr)>*noj@{-+D>oPF*)cx18O!5FP*a+J+B%zU(=*S{n_(1mcA7x-e14; z=F-BX8+y?W)2GArx|amk7c$e%fVl|m&$V}iv!s}q5>QwgaF{nZyY}04!{X^)CiueI34<{?)?<*tx9QMG%ey!VUs1 z++18Ki59D5IA#jeDmD!;MnuGcpg9PpoQ9!Afh6YW!V~^K&0PynoY!@}_upM$cVU-h zm-m7egal%FEz9nLKp>FBLx_g}Nr+gocuLrM84x12lObxNI;x`4xSqI~ku$CANozYw zb`h~%)lq5VhvcY^?6gc{O*Lw&abwv{9FOd{i3R=6z5l}U5{f;Y7U|#nKkob7$GP{O z^Bup@f>jp_6s*D!sE-EneIP*msXdpa7W>Ia2$mRFY#)Qa>O`*1Pr=H5MnZAX*en*k*BSdC~ z$|aFi8c;H-^*cwYY{07j1UkKwkYHQ~S<|s>YD=_h3)3gG)bs(ou{__uY6kq7fO1KU zm-zMyIUA(D`}%D;8(>qxJ0WDUJ<@`s&qfv;Z9Zwi@fS~Ac}seE{zO0*_z$96}U}+ z;PItu;^!D>kTx^qu@{L9F2K3I{AKgQG0vPdW^KxjyimOBgu+J8i20EiS4wnB-luun zH)LgP*q)cSqbe(_Y6ri#!MxGz^sG%?o$jpN<#z9`$p78Civf%2Vkif zti5vKK8}TZ2B|=@fD31l0eeunZc(`a5o(z-|tr z!7l__*9dzd?~AdCWRr06FZKeh7`ZcPzfs5Z&K^SBpQW0G^@~7cLh}& z797hBN03b_n2~=8+3gO|8X~EfwW!qpr?N>Tm=h>iD>~>Bdxe^1NHeKYeq=)*i4lFog#2VeR{0ayB~rO~zo}4~ED(&mo3cc6E^G@B44gHS6|11Xu zqv?JK3jwGVp=qTqC54itq)=p(ISF8wS!-sQDxB#=GETa*3%R9`1<$+ zG#GbLBTt%|$PsO)o`0C1u?Dt6JOv#q%T1*j*4LZy|GJYqI#UslbLW zQ6tI}{FAUNKXr>@We}5m8cs*8;JjL=qbcM8ar8 zKr8K_;5-@<2a8%5pv?##HJ7ar_&e%iW=UHE;PFE8*tKLH?>6bq%fApUibVDUso;P? z?K!2O$=A9>Da1y?`-_%>7EenRVzvxnkk$XOx`xHNLtR`!P9FjYD)`3YI|De&h8Yi` zd=6RuC1sJm$h;ab!`4n94d+7s6{r$3WG@5ZY1oGfvtVx^ZiQ4EP-T>stRZzX;MGMc zDY$T3s+!OWC9UOnoX&u>CU{0{zH1Y3cpR64YlMjlA-*KgRRYmC z;|fFwb}={%FV!x&T*UL_Me-Y5H!hi9=)?&d0EB%N%YF!(c!c^+w$*i5NJ8umvfQe= z;@sv*M?0X6lYCgiz{lVWGiAb^3y@gAwx5EhwA zF?}RaEK)y@VlW(HB&+KLf;mI62vCf4fD?&g37{BIETdq9Ui@)v0IL*>fF8AI+A+jo z%x+TY=20$MisdCOAYLPOKb~5Yd{{q2e?)Tw^1LzNeRi?2)if(Zbx3ZEvMYY@@!U^{Vb}>jg8H%EArOmS|NCROo_{_Eh?GTlN&X_tfWgG;ZC|y)CUQH@UogNC_uy!dcysSFjTYZ<{(Ch1<$A z$ONTEmHCwNr_t;&NPSwU?~EHHLMgfrhQIM>DcK2bnkKVZ$xb8s1>sfz=5XnxU zf*JG?Vwi)tIH9Vr7li)08TL0qxa&w`)6w5*05`22+$cHs0Wv;W6?S|o%LAp8at6u{z(?p{@4U1(VV*^pp0 zDjf?1KG4TG`+V5EpFbSVTKH`qhtb7K7{WMW0k@)s^#D#tjurx4#b*MNFs+$fu+80P&jx3nVdn`&Oq`Hm~i?% zljck{1Pi3`+&?eP(2AL#ChF)XY8_EIfdL|Gi2$;pTO5Q)0AqkO2~urN)dkb!NRukD zXKq!7)+q;C+!#Nn#Df~Z5Y^?6n{_Ol!2AGQfEuMC7LNotLRC3WH>%cNP`PSVrOR%2 zky~Kry`fL|D(6TThS$`iJaqPCBulSG;tH77?H)HkK>+b{9bw%7w^TMGNVKDo%S%&l zn|hu8cZol0gTNSP&kDTB0b$3TOK3?TplZdP7*4~4-8`B`)nRlNNBrJ^!N&j;iJ>3( z5r71z*#MIO)w9F^e|8rBTZ|FFz-0d*^7IfPU(p12>?BG)xpp!vI&U)F?j?kD!y< zAK?=W)-)nbL~|}wJ+LuD5BMWSfT60uiYi zY|kjR^s{HDCT-t_UC%eBdcX=0J1_#Qkx@QsqX#iKW22XaC4OfzGUfO8o6A0CD>T2N z?sMr}FKnnuclzSAQ*%S}G#(>RcKL^Jnx|n^ELrmheE+fL271WcznlCv_*4Ax23&Et z`CE*oajZ_sVJmUzlyfXrDTn3qzlJ>5bzn$dXBNJPIh1x*0Dt`m*97-#ykYwH@E?n7 z5SI^ECa!c`8S4EyxGU&h_(xd8kw@{6i+rSO9IQmCnEqJlX8A}r5!mToC6Rggzr%eS zY2ulU;`wJRM%gOgYa;QD{Jn+m<*M5ax0|K$+pq{Vg8QWD-)Q=#f2TxDzl;0-!24gL z9D69waHEiZDbi=`*z`4|6^Ar^cwPb54mXiq!4wlN?tSbS`pmKEtNdkhnNMR7etq9&mLwFy55@k9!{oimuqI>=%)1ltBA?;qc9;DxZIuUh``YEM4!j+0E zmi)jiL7KNvKS>-|>!|-KsyC{8dWUas^3$k0`7Q?U4al1T;ac&o3UNOOKfl8Jay5L1 zri%69s>J0*9^InesqW`pnl{QiXaPEeUThRt8>5)3M}d1WI{lvV80t4j2ckvj)z0>a zXQD;u1zHfzQ0G3X_r)&FmzjfTL39YcP@Zd4M!1)8-3ro2(1BO1HH1%^@2BP49PhHzcLo%*!_opZv*MK$}U?d|>(28lUvlhe_r~dP@?Yvm=Y7E*D?GxHpw6}G` zx|6!+bg$`t85S2d5cU`0N#Pg6KZ`i2PuFkO-!_~uJZE^@Xg3xZACAn5d?~6r>VnB( z+G83qoic09c5{(=zOUk z7+P`NVRQ639(7zzJB)v))5BKYm(h`NG2{BGude#;>e|(lncFi5GEZeSW<8MgTGlVu z^sV_cJ2kr}`(*aGv)MW1yqeRP^N+cY=Z)s?&i}OFjH|D3$Q|eYps3nYEzDYkjTt-8OAodD}?a587^Qi@?8@ZD+Qf*>2iS zZG%SJo9qZ#y2Kyh*DIhc9R6GJhQ{hX@IG7%JQ{5V-pPB;?0Ay*3bSd~tM?ja(zdDh zT2`nfzKO!>@cs$)K8zJ;&#L#A*g@^vz%V$(4uc070Fu^Twhyh=0Uo&wFR*rL<&Pl;V|n}-*h3hPF(1{tcD!`hgXZc zLwMtW{~@eyDYicR>u39Mb>dyGh4)8!;R}DwL0Yyd4C#g@aY9UuVll zu@8vvy>N#`%y}3q46F_1r#$u`{9ar`h>PN;eD)$%N})&icOa!sJnw_AgCY#Y*om*5 zD9wKHW)Qyn5XVuxqpuD;$ub_sGsScSF;Muu_%@`b-KN%5pNOAI;Xr)-@JTrs#4pwH z5W+j)^AO^oIwN0H&qu{KSqhm7)%pPZQyC~f4pC$Mq8$5?SNghF{5mjy4~RTHC`vaN zQoe%-R|#6pQaMPc(7aLU1_j-NZGmcuQkHGNA<~nzA6f@gCTcB5)bi0i(O?kN+%IAX z`Z$0x&=+bM!FSSUH+&va!w1{a5b{Gg8H9f-CsBcF?+%?ErF4zrnr~+BaHIO4;|R)Gea?p?yR4G3qHp@Y#(x9MC}NMeX&1PuY*R6fgBn z8Ou?;?-H&3Aimu#v}4imUi4fS%2bSaT#JMcrk%TJXzInXM^JyG91tZtMQu<^r~W!y z57Z{9g$CO|^-P#n_7F^lZm(sfIB{Rc%2@?lj}}sek$xlAbJZwC zEx3=(tR56=03DlHGj^a`SS!ZAZEQO*;M>_w@Eu=*jO#A88+sahSSMH5)7Yi{2F?t> z4UXhEJH`GCe9E)z8Sp44*gNb`*q_6imyUf4`m>K=7vee(ho1d&K>WXrQ}(m$9J>su zb5uYw2t8v6j~*%z?h z53s+3*3>U}1lMx|Hv+UV3O04jJepg047YL{U1WdH z<9Iwf8Ghtoe?dWIf$DCQZdIY`x>eVsx+UZm78D5oa9!%N@Q-KVA8wKQUWCK5SAF)W zZn5eHeDA5&ZaOk>h`q$8zv1WKV)g!r=60O%o!S|w4s*7r`J;E% h`)w__8Qq!U4|Cqvj{O_QCcnnH5!S}!%}&3~`9G&>E{^~J literal 0 HcmV?d00001 diff --git a/public/static/fonts/helvetica/ultralight.woff b/public/static/fonts/helvetica/ultralight.woff new file mode 100644 index 0000000000000000000000000000000000000000..402eadc97e28d130b4aeb72c315d0ae82e2acd94 GIT binary patch literal 26020 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

(hDKN98?g=X~Fh`GSg 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 AZvX%Q literal 0 HcmV?d00001 diff --git a/public/static/style.css b/public/static/style.css new file mode 100644 index 0000000000..5dcafff736 --- /dev/null +++ b/public/static/style.css @@ -0,0 +1 @@ +article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:'appNormal';font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:3px}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:1px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.099999999999998px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:'appNormal';font-weight:500;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}h1 small,.h1 small{font-size:24px}h2 small,.h2 small{font-size:18px}h3 small,.h3 small,h4 small,.h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:1px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:1px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media(min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media(min-width:992px){.container{max-width:970px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media(min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be}@media(max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:1px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,0.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:3px}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-error .help-block,.has-error .control-label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-success .help-block,.has-success .control-label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.form-control-static{margin-bottom:0;padding-top:7px}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:1px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{color:#428bca;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:3px}.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:""}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:1px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#fff;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px;padding:1px 5px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:3px}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:1px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:1px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified .btn{float:none;display:table-cell;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-left:0;padding-right:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:3px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:1px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:1px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:3px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:1px 1px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;margin-right:0}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;margin-right:0}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:before,.tabbable:after{content:" ";display:table}.tabbable:after{clear:both}.tabbable:before,.tabbable:after{content:" ";display:table}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:0}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{z-index:1030;top:0}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:1px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media(min-width:768px){.navbar-left{float:left!important;float:left}.navbar-right{float:right!important;float:right}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{margin-left:15px;margin-right:15px}}.navbar-default{background-color:#f8f8f8;border-color:#d5d5d5}.navbar-default .navbar-brand{color:#333}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#333;background-color:transparent}.navbar-default .navbar-text{color:#333}.navbar-default .navbar-nav>li>a{color:#333}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#f16956;background-color:#fff}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#e72d13}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#fff}.navbar-default .navbar-toggle .icon-bar{background-color:#e72d13}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#fff;color:#f16956}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#f16956;border-bottom-color:#f16956}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#333;border-bottom-color:#333}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#333}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#f16956;background-color:#fff}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#333}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:1px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:1px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:1px;border-top-left-radius:1px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:1px;border-top-right-radius:1px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:1px;border-top-left-radius:1px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:1px;border-top-right-radius:1px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:3px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:1px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto;display:block}.thumbnail>img{display:block;max-width:100%;height:auto}a.thumbnail:hover,a.thumbnail:focus{border-color:#428bca}.thumbnail>img{margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:1px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:1px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:1px;border-top-left-radius:1px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:1px;border-bottom-left-radius:1px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:1px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:0;border-top-left-radius:0}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:0;border-bottom-left-radius:0}.panel-group .panel{margin-bottom:0;border-radius:1px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:1px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:3px}.well-sm{padding:9px;border-radius:1px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:3px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{left:50%;right:auto;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:1px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:3px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-gradient(linear,0% top,100% top,from(rgba(0,0,0,0.5)),to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-gradient(linear,0% top,100% top,from(rgba(0,0,0,0.0001)),to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{display:none!important;visibility:hidden!important}.visible-xs{display:none!important}tr.visible-xs{display:none!important}th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm{display:none!important}tr.visible-sm{display:none!important}th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md{display:none!important}tr.visible-md{display:none!important}th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg{display:none!important}tr.visible-lg{display:none!important}th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs{display:none!important}tr.hidden-xs{display:none!important}th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm{display:none!important}tr.hidden-xs.hidden-sm{display:none!important}th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md{display:none!important}tr.hidden-xs.hidden-md{display:none!important}th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg{display:none!important}tr.hidden-xs.hidden-lg{display:none!important}th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs{display:none!important}tr.hidden-sm.hidden-xs{display:none!important}th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}tr.hidden-sm{display:none!important}th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md{display:none!important}tr.hidden-sm.hidden-md{display:none!important}th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg{display:none!important}tr.hidden-sm.hidden-lg{display:none!important}th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs{display:none!important}tr.hidden-md.hidden-xs{display:none!important}th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm{display:none!important}tr.hidden-md.hidden-sm{display:none!important}th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}tr.hidden-md{display:none!important}th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg{display:none!important}tr.hidden-md.hidden-lg{display:none!important}th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs{display:none!important}tr.hidden-lg.hidden-xs{display:none!important}th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm{display:none!important}tr.hidden-lg.hidden-sm{display:none!important}th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md{display:none!important}tr.hidden-lg.hidden-md{display:none!important}th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg{display:none!important}tr.hidden-lg{display:none!important}th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print{display:none!important}tr.visible-print{display:none!important}th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print{display:none!important}tr.hidden-print{display:none!important}th.hidden-print,td.hidden-print{display:none!important}}@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot');src:url('../fonts/fontawesome-webfont.eot') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff') format('woff'),url('../fonts/fontawesome-webfont.ttf') format('truetype'),url('../fonts/fontawesome-webfont.svg') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857142858em;text-align:center}.fa-ul{padding-left:0;margin-left:2.142857142857143em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;top:.14285714285714285em;text-align:center}.fa-li.fa-lg{left:-1.8571428571428572em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-move:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-resize-full:before{content:"\f065"}.fa-resize-small:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-resize-vertical:before{content:"\f07d"}.fa-resize-horizontal:before{content:"\f07e"}.fa-bar-chart-o:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-fullscreen:before{content:"\f0b2"}.fa-group:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-asc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-desc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building:before{content:"\f0f7"}.fa-hospital:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-expand-o:before{content:"\f116"}.fa-collapse-o:before{content:"\f117"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-reply-all:before{content:"\f122"}.fa-mail-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-o:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-horizontal:before{content:"\f141"}.fa-ellipsis-vertical:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.link-inherit{color:inherit}.link-inherit:hover,.link-inherit:focus{color:inherit}@font-face{font-family:'appNormal';src:url('/static/fonts/helvetica/normal.ttf'),url('/static/fonts/helvetica/normal.woff'),url('/static/fonts/helvetica/normal.eot'),url('/static/fonts/helvetica/normal.svg')}@font-face{font-family:'appLight';src:url('/static/fonts/helvetica/ultralight.ttf'),url('/static/fonts/helvetica/ultralight.woff'),url('/static/fonts/helvetica/ultralight.eot'),url('/static/fonts/helvetica/ultralight.svg')}.book .book-header{position:fixed;top:0;right:0;left:0;z-index:2;height:40px;font-size:.85em;background:#242628;color:#e2edf2}.book .book-header .btn{display:block;height:40px;padding:0 15px;border-bottom:0;color:#7d878a;text-transform:uppercase;line-height:40px}.book .book-header .btn:hover{color:#e2edf2;text-decoration:none;position:relative;background:#303436;box-shadow:0 -2px 2px rgba(0,0,0,0.2) inset}.book .book-header h1{margin:0;font-size:20px;text-align:center;line-height:40px}.book .book-header h1 a,.book .book-header h1 a:hover{color:inherit;text-decoration:none}@media(max-width:600px){.book .book-header h1{display:none}}.book .book-summary{position:fixed;top:40px;left:-250px;bottom:0;z-index:1;overflow-y:auto;width:250px;background:#2e3133;color:#e2edf2;-webkit-transition:all .5s ease;transition:all .5s ease}.book .book-summary ul.summary{list-style:none;margin:0;padding:0}.book .book-summary ul.summary li.divider{height:1px;margin:7px 0;overflow:hidden;background:#35393b}.book .book-summary ul.summary li a{display:block;height:40px;padding:11px 15px;border-bottom:0;text-transform:uppercase;color:#e2edf2}.book .book-summary ul.summary li a:hover{background:#242628;text-decoration:none}@media(max-width:600px){.book .book-summary{width:100%;bottom:0;left:-100%}}.book.with-summary .book-summary{left:0}.book .book-body{position:fixed;top:40px;right:0;left:0;bottom:0;overflow-y:auto;-webkit-transition:left .5s ease;transition:left .5s ease;background:#edece4}@media(min-width:800px){.book.with-summary .book-body{left:250px}}#gitbook-bookpage .page-inner{max-width:800px;margin:0 auto}#gitbook-bookpage .page-inner section{margin:10px 0;padding:5px 15px;background:#fff}#gitbook-homepage{text-align:center;width:100%;height:100%;background:url(/static/images/background.jpg);background-size:cover;color:#fff;padding:10px;overflow-y:auto}#gitbook-homepage .inner{margin-top:5%}#gitbook-homepage .inner h1{font-size:60px}#gitbook-homepage .inner p.intro{letter-spacing:-0.02em;font-family:"appLight";font-weight:600;font-style:normal;font-size:32px;line-height:1.5;margin:20px auto;max-width:500px}#gitbook-homepage .inner .btn{border:0;font-size:26px;border-radius:32px;padding:14px 30px}#gitbook-homepage .featured{padding:100px 0;max-width:900px;margin:0 auto}#gitbook-homepage .featured h2{margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid #fff;display:inline-block}#gitbook-homepage .featured .book{background:rgba(0,0,0,0.3);text-align:left;margin:5px 0;border-radius:2px}#gitbook-homepage .featured .book .content{padding:10px 15px}#gitbook-homepage .featured .book .content h3{margin:0;font-size:20px;text-align:center;margin-bottom:10px}#gitbook-homepage .featured .book .content p{margin:0;font-size:16px;opacity:.6}#gitbook-homepage .featured .book a{color:inherit;display:block;text-align:center;background:rgba(0,0,0,0.2);padding:6px 10px;font-size:18px;text-transform:uppercase}#gitbook-homepage .featured .book a:hover{background:rgba(0,0,0,0.4);text-decoration:none}#gitbook-homepage .footer{position:fixed;bottom:0;right:0;left:0;background:rgba(255,255,255,0.06);text-align:center;padding:10px 0}#gitbook-homepage .footer a{margin:0 12px;color:inherit}*{-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:none;-webkit-touch-callout:none;-webkit-font-smoothing:antialiased}.form-control{-webkit-box-shadow:none;box-shadow:none}html,body{height:100%}body{font-smoothing:antialiased;font-family:'appNormal'} \ No newline at end of file diff --git a/public/stylesheets/book/body.less b/public/stylesheets/book/body.less new file mode 100644 index 0000000000..731a0e3ab5 --- /dev/null +++ b/public/stylesheets/book/body.less @@ -0,0 +1,33 @@ +.book { + .book-body { + position: fixed; + top: 40px; + right: 0px; + left: 0px; + bottom: 0px; + overflow-y: auto; + + .transition(left 0.5s ease); + + background: #edece4; + + .page-inner { + max-width: 800px; + margin: 0px auto; + + section { + margin: 10px 0px; + padding: 5px 15px; + background: #fff; + } + } + } + + &.with-summary { + @media (min-width: 800px) { + .book-body { + left: 250px; + } + } + } +} \ No newline at end of file diff --git a/public/stylesheets/book/header.less b/public/stylesheets/book/header.less new file mode 100644 index 0000000000..d859b348be --- /dev/null +++ b/public/stylesheets/book/header.less @@ -0,0 +1,48 @@ +.book .book-header { + position: fixed; + top: 0px; + right: 0px; + left: 0px; + z-index: 2; + + height: 40px; + + font-size: 0.85em; + + background: #242628; + color: #e2edf2; + + .btn { + display: block; + height: 40px; + padding: 0px 15px; + border-bottom: none; + color: #7d878a; + text-transform: uppercase; + line-height: 40px; + + &:hover { + color: #e2edf2; + text-decoration: none; + position: relative; + background: #303436; + box-shadow: 0 -2px 2px rgba(0,0,0,0.2) inset; + } + } + + h1 { + margin: 0px; + font-size: 20px; + text-align: center; + line-height: 40px; + + a, a:hover { + color: inherit; + text-decoration: none; + } + + @media (max-width: 600px) { + display: none; + } + } +} \ No newline at end of file diff --git a/public/stylesheets/book/summary.less b/public/stylesheets/book/summary.less new file mode 100644 index 0000000000..9ed73a8265 --- /dev/null +++ b/public/stylesheets/book/summary.less @@ -0,0 +1,60 @@ +.book { + .book-summary { + @width: 250px; + + position: fixed; + top: 40px; + left: -@width; + bottom: 0px; + z-index: 1; + + overflow-y: auto; + + width: @width; + background: #2e3133; + color: #e2edf2; + + .transition(all 0.5s ease); + + ul.summary { + list-style: none; + margin: 0px; + padding: 0px; + + li { + &.divider { + height: 1px; + margin: 7px 0; + overflow: hidden; + background: #35393b; + } + + a { + display: block; + height: 40px; + padding: 11px 15px; + border-bottom: none; + text-transform: uppercase; + color: #e2edf2; + + &:hover { + background: #242628; + text-decoration: none; + } + } + } + } + + @media (max-width: 600px) { + width: 100%; + bottom: 0px; + left: -100%; + } + } + + &.with-summary { + .book-summary { + left: 0px; + } + } +} diff --git a/public/stylesheets/fonts.less b/public/stylesheets/fonts.less new file mode 100644 index 0000000000..a88849a4d3 --- /dev/null +++ b/public/stylesheets/fonts.less @@ -0,0 +1,17 @@ +@font-face +{ + font-family: 'appNormal'; + src: url('@{FontPath}/helvetica/normal.ttf'), + url('@{FontPath}/helvetica/normal.woff'), + url('@{FontPath}/helvetica/normal.eot'), + url('@{FontPath}/helvetica/normal.svg'); +} + +@font-face +{ + font-family: 'appLight'; + src: url('@{FontPath}/helvetica/ultralight.ttf'), + url('@{FontPath}/helvetica/ultralight.woff'), + url('@{FontPath}/helvetica/ultralight.eot'), + url('@{FontPath}/helvetica/ultralight.svg'); +} \ No newline at end of file diff --git a/public/stylesheets/main.less b/public/stylesheets/main.less new file mode 100644 index 0000000000..101c396a2a --- /dev/null +++ b/public/stylesheets/main.less @@ -0,0 +1,32 @@ +@import "vendors/bootstrap/bootstrap.less"; +@import "vendors/fontawesome/font-awesome.less"; + +@import "mixins.less"; +@import "variables.less"; +@import "fonts.less"; + +@import "book/header.less"; +@import "book/summary.less"; +@import "book/body.less"; + +* { + -webkit-overflow-scrolling: touch; + -webkit-tap-highlight-color: transparent; + -webkit-text-size-adjust: none; + -webkit-touch-callout: none; + -webkit-font-smoothing: antialiased; +} + +.form-control { + .box-shadow(none); +} + +html, body { + height: 100%; +} + +body { + + font-smoothing: antialiased; + font-family: 'appNormal'; +} diff --git a/public/stylesheets/mixins.less b/public/stylesheets/mixins.less new file mode 100644 index 0000000000..0216ea4429 --- /dev/null +++ b/public/stylesheets/mixins.less @@ -0,0 +1,7 @@ +.link-inherit { + color: inherit; + + &:hover, &:focus { + color: inherit; + } +} \ No newline at end of file diff --git a/public/stylesheets/variables.less b/public/stylesheets/variables.less new file mode 100644 index 0000000000..a5a9f0c18c --- /dev/null +++ b/public/stylesheets/variables.less @@ -0,0 +1,42 @@ +/* Base static */ +@staticPath: "/static"; + +/* Colors */ +@codeboxMainColor: #F16956; /* red */ +@codeboxMainColorDarker: darken(@codeboxMainColor, 15%); + +@codeboxMainColor2: #353D48; + +// Basics of a navbar +@navbar-height: 50px; +@navbar-margin-bottom: @line-height-computed; +@navbar-default-border: #d5d5d5; +@navbar-border-radius: 0px; +@navbar-padding-horizontal: floor(@grid-gutter-width / 2); +@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); + +// Navbar brand label +@navbar-default-color: #333; +@navbar-default-link-color: #333; +@navbar-default-brand-color: @navbar-default-link-color; +@navbar-default-brand-hover-color: @navbar-default-link-color; +@navbar-default-brand-hover-bg: transparent; + +// Navbar toggle +@navbar-default-toggle-hover-bg: #fff; +@navbar-default-toggle-icon-bar-bg: @codeboxMainColorDarker; +@navbar-default-toggle-border-color: @codeboxMainColorDarker; +@navbar-default-link-active-color: @codeboxMainColor; +@navbar-default-link-active-bg: #fff; + +@border-radius-base: 1px; +@border-radius-large: 3px; +@border-radius-small: 1px; + +/* Fonts */ +@font-family-base: 'appNormal'; + + +/* Fonts */ +@FontPath: '@{staticPath}/fonts'; +@FontAwesomePath: "@{FontPath}/fontawesome"; diff --git a/public/stylesheets/vendors/bootstrap/alerts.less b/public/stylesheets/vendors/bootstrap/alerts.less new file mode 100755 index 0000000000..be09d18d0a --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/alerts.less @@ -0,0 +1,67 @@ +// +// Alerts +// -------------------------------------------------- + + +// Base styles +// ------------------------- + +.alert { + padding: @alert-padding; + margin-bottom: @line-height-computed; + border: 1px solid transparent; + border-radius: @alert-border-radius; + + // Headings for larger alerts + h4 { + margin-top: 0; + // Specified for the h4 to prevent conflicts of changing @headingsColor + color: inherit; + } + // Provide class for links that match alerts + .alert-link { + font-weight: @alert-link-font-weight; + } + + // Improve alignment and spacing of inner content + > p, + > ul { + margin-bottom: 0; + } + > p + p { + margin-top: 5px; + } +} + +// Dismissable alerts +// +// Expand the right padding and account for the close button's positioning. + +.alert-dismissable { + padding-right: (@alert-padding + 20); + + // Adjust close link position + .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; + } +} + +// Alternate styles +// +// Generate contextual modifier classes for colorizing the alert. + +.alert-success { + .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); +} +.alert-info { + .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); +} +.alert-warning { + .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); +} +.alert-danger { + .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); +} diff --git a/public/stylesheets/vendors/bootstrap/badges.less b/public/stylesheets/vendors/bootstrap/badges.less new file mode 100755 index 0000000000..0b69753eff --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/badges.less @@ -0,0 +1,51 @@ +// +// Badges +// -------------------------------------------------- + + +// Base classes +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: @font-size-small; + font-weight: @badge-font-weight; + color: @badge-color; + line-height: @badge-line-height; + vertical-align: baseline; + white-space: nowrap; + text-align: center; + background-color: @badge-bg; + border-radius: @badge-border-radius; + + // Empty badges collapse automatically (not available in IE8) + &:empty { + display: none; + } +} + +// Hover state, but only for links +a.badge { + &:hover, + &:focus { + color: @badge-link-hover-color; + text-decoration: none; + cursor: pointer; + } +} + +// Quick fix for labels/badges in buttons +.btn .badge { + position: relative; + top: -1px; +} + +// Account for counters in navs +a.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: @badge-active-color; + background-color: @badge-active-bg; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} diff --git a/public/stylesheets/vendors/bootstrap/bootstrap.less b/public/stylesheets/vendors/bootstrap/bootstrap.less new file mode 100755 index 0000000000..1344b462f7 --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/bootstrap.less @@ -0,0 +1,59 @@ +/*! + * Bootstrap v3.0.0 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */ + +// Core variables and mixins +@import "variables.less"; +@import "mixins.less"; + +// Reset +@import "normalize.less"; +@import "print.less"; + +// Core CSS +@import "scaffolding.less"; +@import "type.less"; +@import "code.less"; +@import "grid.less"; +@import "tables.less"; +@import "forms.less"; +@import "buttons.less"; + +// Components +@import "component-animations.less"; +@import "glyphicons.less"; +@import "dropdowns.less"; +@import "button-groups.less"; +@import "input-groups.less"; +@import "navs.less"; +@import "navbar.less"; +@import "breadcrumbs.less"; +@import "pagination.less"; +@import "pager.less"; +@import "labels.less"; +@import "badges.less"; +@import "jumbotron.less"; +@import "thumbnails.less"; +@import "alerts.less"; +@import "progress-bars.less"; +@import "media.less"; +@import "list-group.less"; +@import "panels.less"; +@import "wells.less"; +@import "close.less"; + +// Components w/ JavaScript +@import "modals.less"; +@import "tooltip.less"; +@import "popovers.less"; +@import "carousel.less"; + +// Utility classes +@import "utilities.less"; +@import "responsive-utilities.less"; diff --git a/public/stylesheets/vendors/bootstrap/breadcrumbs.less b/public/stylesheets/vendors/bootstrap/breadcrumbs.less new file mode 100755 index 0000000000..92643d1674 --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/breadcrumbs.less @@ -0,0 +1,23 @@ +// +// Breadcrumbs +// -------------------------------------------------- + + +.breadcrumb { + padding: 8px 15px; + margin-bottom: @line-height-computed; + list-style: none; + background-color: @breadcrumb-bg; + border-radius: @border-radius-base; + > li { + display: inline-block; + &+li:before { + content: "/\00a0"; // Unicode space added since inline-block means non-collapsing white-space + padding: 0 5px; + color: @breadcrumb-color; + } + } + > .active { + color: @breadcrumb-active-color; + } +} diff --git a/public/stylesheets/vendors/bootstrap/button-groups.less b/public/stylesheets/vendors/bootstrap/button-groups.less new file mode 100755 index 0000000000..43ada11d9a --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/button-groups.less @@ -0,0 +1,248 @@ +// +// Button groups +// -------------------------------------------------- + +// Button carets +// +// Match the button text color to the arrow/caret for indicating dropdown-ness. + +.caret { + .btn-default & { + border-top-color: @btn-default-color; + } + .btn-primary &, + .btn-success &, + .btn-warning &, + .btn-danger &, + .btn-info & { + border-top-color: #fff; + } +} +.dropup { + & .btn-default .caret { + border-bottom-color: @btn-default-color; + } + .btn-primary, + .btn-success, + .btn-warning, + .btn-danger, + .btn-info { + .caret { + border-bottom-color: #fff; + } + } +} + +// Make the div behave like a button +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; // match .btn alignment given font-size hack above + > .btn { + position: relative; + float: left; + // Bring the "active" button to the front + &:hover, + &:focus, + &:active, + &.active { + z-index: 2; + } + &:focus { + // Remove focus outline when dropdown JS adds it after closing the menu + outline: none; + } + } +} + +// Prevent double borders when buttons are next to each other +.btn-group { + .btn + .btn, + .btn + .btn-group, + .btn-group + .btn, + .btn-group + .btn-group { + margin-left: -1px; + } +} + +// Optional: Group multiple button groups together for a toolbar +.btn-toolbar { + .clearfix(); + + .btn-group { + float: left; + } + // Space out series of button groups + > .btn, + > .btn-group { + + .btn, + + .btn-group { + margin-left: 5px; + } + } +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match +.btn-group > .btn:first-child { + margin-left: 0; + &:not(:last-child):not(.dropdown-toggle) { + .border-right-radius(0); + } +} +// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + .border-left-radius(0); +} + +// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child { + > .btn:last-child, + > .dropdown-toggle { + .border-right-radius(0); + } +} +.btn-group > .btn-group:last-child > .btn:first-child { + .border-left-radius(0); +} + +// On active and open, don't show outline +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + + +// Sizing +// +// Remix the default button sizing classes into new ones for easier manipulation. + +.btn-group-xs > .btn { .btn-xs(); } +.btn-group-sm > .btn { .btn-sm(); } +.btn-group-lg > .btn { .btn-lg(); } + + +// Split button dropdowns +// ---------------------- + +// Give the line between buttons some depth +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} + +// The clickable button for toggling the menu +// Remove the gradient and set the same inset shadow as the :active state +.btn-group.open .dropdown-toggle { + .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); +} + + +// Reposition the caret +.btn .caret { + margin-left: 0; +} +// Carets in other button sizes +.btn-lg .caret { + border-width: @caret-width-large @caret-width-large 0; + border-bottom-width: 0; +} +// Upside down carets for .dropup +.dropup .btn-lg .caret { + border-width: 0 @caret-width-large @caret-width-large; +} + + +// Vertical button groups +// ---------------------- + +.btn-group-vertical { + > .btn, + > .btn-group { + display: block; + float: none; + width: 100%; + max-width: 100%; + } + + // Clear floats so dropdown menus can be properly placed + > .btn-group { + .clearfix(); + > .btn { + float: none; + } + } + + > .btn + .btn, + > .btn + .btn-group, + > .btn-group + .btn, + > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; + } +} + +.btn-group-vertical > .btn { + &:not(:first-child):not(:last-child) { + border-radius: 0; + } + &:first-child:not(:last-child) { + border-top-right-radius: @border-radius-base; + .border-bottom-radius(0); + } + &:last-child:not(:first-child) { + border-bottom-left-radius: @border-radius-base; + .border-top-radius(0); + } +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child { + > .btn:last-child, + > .dropdown-toggle { + .border-bottom-radius(0); + } +} +.btn-group-vertical > .btn-group:last-child > .btn:first-child { + .border-top-radius(0); +} + + + +// Justified button groups +// ---------------------- + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; + .btn { + float: none; + display: table-cell; + width: 1%; + } +} + + +// Checkbox and radio options +[data-toggle="buttons"] > .btn > input[type="radio"], +[data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none; +} diff --git a/public/stylesheets/vendors/bootstrap/buttons.less b/public/stylesheets/vendors/bootstrap/buttons.less new file mode 100755 index 0000000000..5d60d39a71 --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/buttons.less @@ -0,0 +1,160 @@ +// +// Buttons +// -------------------------------------------------- + + +// Base styles +// -------------------------------------------------- + +// Core styles +.btn { + display: inline-block; + padding: @padding-base-vertical @padding-base-horizontal; + margin-bottom: 0; // For input.btn + font-size: @font-size-base; + font-weight: @btn-font-weight; + line-height: @line-height-base; + text-align: center; + vertical-align: middle; + cursor: pointer; + border: 1px solid transparent; + border-radius: @border-radius-base; + white-space: nowrap; + .user-select(none); + + &:focus { + .tab-focus(); + } + + &:hover, + &:focus { + color: @btn-default-color; + text-decoration: none; + } + + &:active, + &.active { + outline: 0; + background-image: none; + .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + cursor: not-allowed; + pointer-events: none; // Future-proof disabling of clicks + .opacity(.65); + .box-shadow(none); + } + +} + + +// Alternate buttons +// -------------------------------------------------- + +.btn-default { + .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border); +} +.btn-primary { + .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border); +} +// Warning appears as orange +.btn-warning { + .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border); +} +// Danger and error appear as red +.btn-danger { + .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border); +} +// Success appears as green +.btn-success { + .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border); +} +// Info appears as blue-green +.btn-info { + .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border); +} + + +// Link buttons +// ------------------------- + +// Make a button look and behave like a link +.btn-link { + color: @link-color; + font-weight: normal; + cursor: pointer; + border-radius: 0; + + &, + &:active, + &[disabled], + fieldset[disabled] & { + background-color: transparent; + .box-shadow(none); + } + &, + &:hover, + &:focus, + &:active { + border-color: transparent; + } + &:hover, + &:focus { + color: @link-hover-color; + text-decoration: underline; + background-color: transparent; + } + &[disabled], + fieldset[disabled] & { + &:hover, + &:focus { + color: @btn-link-disabled-color; + text-decoration: none; + } + } +} + + +// Button Sizes +// -------------------------------------------------- + +.btn-lg { + // line-height: ensure even-numbered height of button next to large input + .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); +} +.btn-sm, +.btn-xs { + // line-height: ensure proper height of button next to small input + .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); +} +.btn-xs { + padding: 1px 5px; +} + + +// Block button +// -------------------------------------------------- + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} + +// Vertically space out multiple block buttons +.btn-block + .btn-block { + margin-top: 5px; +} + +// Specificity overrides +input[type="submit"], +input[type="reset"], +input[type="button"] { + &.btn-block { + width: 100%; + } +} diff --git a/public/stylesheets/vendors/bootstrap/carousel.less b/public/stylesheets/vendors/bootstrap/carousel.less new file mode 100755 index 0000000000..c468d435cd --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/carousel.less @@ -0,0 +1,209 @@ +// +// Carousel +// -------------------------------------------------- + + +// Wrapper for the slide container and indicators +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + overflow: hidden; + width: 100%; + + > .item { + display: none; + position: relative; + .transition(.6s ease-in-out left); + + // Account for jankitude on images + > img, + > a > img { + .img-responsive(); + line-height: 1; + } + } + + > .active, + > .next, + > .prev { display: block; } + + > .active { + left: 0; + } + + > .next, + > .prev { + position: absolute; + top: 0; + width: 100%; + } + + > .next { + left: 100%; + } + > .prev { + left: -100%; + } + > .next.left, + > .prev.right { + left: 0; + } + + > .active.left { + left: -100%; + } + > .active.right { + left: 100%; + } + +} + +// Left/right controls for nav +// --------------------------- + +.carousel-control { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: @carousel-control-width; + .opacity(@carousel-control-opacity); + font-size: @carousel-control-font-size; + color: @carousel-control-color; + text-align: center; + text-shadow: @carousel-text-shadow; + // We can't have this transition here because webkit cancels the carousel + // animation if you trip this while in the middle of another animation. + + // Set gradients for backgrounds + &.left { + #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001)); + } + &.right { + left: auto; + right: 0; + #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5)); + } + + // Hover/focus state + &:hover, + &:focus { + color: @carousel-control-color; + text-decoration: none; + .opacity(.9); + } + + // Toggles + .icon-prev, + .icon-next, + .glyphicon-chevron-left, + .glyphicon-chevron-right { + position: absolute; + top: 50%; + left: 50%; + z-index: 5; + display: inline-block; + } + .icon-prev, + .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + font-family: serif; + } + + .icon-prev { + &:before { + content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) + } + } + .icon-next { + &:before { + content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) + } + } +} + +// Optional indicator pips +// +// Add an unordered list with the following class and add a list item for each +// slide your carousel holds. + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + margin-left: -30%; + padding-left: 0; + list-style: none; + text-align: center; + + li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + border: 1px solid @carousel-indicator-border-color; + border-radius: 10px; + cursor: pointer; + } + .active { + margin: 0; + width: 12px; + height: 12px; + background-color: @carousel-indicator-active-bg; + } +} + +// Optional captions +// ----------------------------- +// Hidden by default for smaller viewports +.carousel-caption { + position: absolute; + left: 15%; + right: 15%; + bottom: 20px; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: @carousel-caption-color; + text-align: center; + text-shadow: @carousel-text-shadow; + & .btn { + text-shadow: none; // No shadow for button elements in carousel-caption + } +} + + +// Scale up controls for tablets and up +@media screen and (min-width: @screen-tablet) { + + // Scale up the controls a smidge + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + font-size: 30px; + } + + // Show and left align the captions + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + + // Move up the indicators + .carousel-indicators { + bottom: 20px; + } +} diff --git a/public/stylesheets/vendors/bootstrap/close.less b/public/stylesheets/vendors/bootstrap/close.less new file mode 100755 index 0000000000..9b4e74f2b8 --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/close.less @@ -0,0 +1,33 @@ +// +// Close icons +// -------------------------------------------------- + + +.close { + float: right; + font-size: (@font-size-base * 1.5); + font-weight: @close-font-weight; + line-height: 1; + color: @close-color; + text-shadow: @close-text-shadow; + .opacity(.2); + + &:hover, + &:focus { + color: @close-color; + text-decoration: none; + cursor: pointer; + .opacity(.5); + } + + // Additional properties for button version + // iOS requires the button element instead of an anchor tag. + // If you want the anchor version, it requires `href="#"`. + button& { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; + } +} diff --git a/public/stylesheets/vendors/bootstrap/code.less b/public/stylesheets/vendors/bootstrap/code.less new file mode 100755 index 0000000000..d6661d2b9f --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/code.less @@ -0,0 +1,56 @@ +// +// Code (inline and blocK) +// -------------------------------------------------- + + +// Inline and block code styles +code, +pre { + font-family: @font-family-monospace; +} + +// Inline code +code { + padding: 2px 4px; + font-size: 90%; + color: @code-color; + background-color: @code-bg; + white-space: nowrap; + border-radius: @border-radius-base; +} + +// Blocks of code +pre { + display: block; + padding: ((@line-height-computed - 1) / 2); + margin: 0 0 (@line-height-computed / 2); + font-size: (@font-size-base - 1); // 14px to 13px + line-height: @line-height-base; + word-break: break-all; + word-wrap: break-word; + color: @pre-color; + background-color: @pre-bg; + border: 1px solid @pre-border-color; + border-radius: @border-radius-base; + + // Make prettyprint styles more spaced out for readability + &.prettyprint { + margin-bottom: @line-height-computed; + } + + // Account for some code outputs that place code tags in pre tags + code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border: 0; + } +} + +// Enable scrollable blocks of code +.pre-scrollable { + max-height: @pre-scrollable-max-height; + overflow-y: scroll; +} diff --git a/public/stylesheets/vendors/bootstrap/component-animations.less b/public/stylesheets/vendors/bootstrap/component-animations.less new file mode 100755 index 0000000000..1efe45e2c3 --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/component-animations.less @@ -0,0 +1,29 @@ +// +// Component animations +// -------------------------------------------------- + +// Heads up! +// +// We don't use the `.opacity()` mixin here since it causes a bug with text +// fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552. + +.fade { + opacity: 0; + .transition(opacity .15s linear); + &.in { + opacity: 1; + } +} + +.collapse { + display: none; + &.in { + display: block; + } +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + .transition(height .35s ease); +} diff --git a/public/stylesheets/vendors/bootstrap/dropdowns.less b/public/stylesheets/vendors/bootstrap/dropdowns.less new file mode 100755 index 0000000000..96af127a5c --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/dropdowns.less @@ -0,0 +1,193 @@ +// +// Dropdown menus +// -------------------------------------------------- + + +// Dropdown arrow/caret +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: @caret-width-base solid @dropdown-caret-color; + border-right: @caret-width-base solid transparent; + border-left: @caret-width-base solid transparent; + // Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once fixed, + // we can just straight up remove this. + border-bottom: 0 dotted; + content: ""; +} + +// The dropdown wrapper (div) +.dropdown { + position: relative; +} + +// Prevent the focus on the dropdown toggle when closing dropdowns +.dropdown-toggle:focus { + outline: 0; +} + +// The dropdown menu (ul) +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: @zindex-dropdown; + display: none; // none by default, but block on "open" of the menu + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; // override default ul + list-style: none; + font-size: @font-size-base; + background-color: @dropdown-bg; + border: 1px solid @dropdown-fallback-border; // IE8 fallback + border: 1px solid @dropdown-border; + border-radius: @border-radius-base; + .box-shadow(0 6px 12px rgba(0,0,0,.175)); + background-clip: padding-box; + + // Aligns the dropdown menu to right + &.pull-right { + right: 0; + left: auto; + } + + // Dividers (basically an hr) within the dropdown + .divider { + .nav-divider(@dropdown-divider-bg); + } + + // Links within the dropdown menu + > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: @line-height-base; + color: @dropdown-link-color; + white-space: nowrap; // prevent links from randomly breaking onto new lines + } +} + +// Hover/Focus state +.dropdown-menu > li > a { + &:hover, + &:focus { + text-decoration: none; + color: @dropdown-link-hover-color; + background-color: @dropdown-link-hover-bg; + } +} + +// Active state +.dropdown-menu > .active > a { + &, + &:hover, + &:focus { + color: @dropdown-link-active-color; + text-decoration: none; + outline: 0; + background-color: @dropdown-link-active-bg; + } +} + +// Disabled state +// +// Gray out text and ensure the hover/focus state remains gray + +.dropdown-menu > .disabled > a { + &, + &:hover, + &:focus { + color: @dropdown-link-disabled-color; + } +} +// Nuke hover/focus effects +.dropdown-menu > .disabled > a { + &:hover, + &:focus { + text-decoration: none; + background-color: transparent; + background-image: none; // Remove CSS gradient + .reset-filter(); + cursor: not-allowed; + } +} + +// Open state for the dropdown +.open { + // Show the menu + > .dropdown-menu { + display: block; + } + + // Remove the outline when :focus is triggered + > a { + outline: 0; + } +} + +// Dropdown section headers +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: @font-size-small; + line-height: @line-height-base; + color: @dropdown-header-color; +} + +// Backdrop to catch body clicks on mobile, etc. +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: @zindex-dropdown - 10; +} + +// Right aligned dropdowns +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +// Allow for dropdowns to go bottom up (aka, dropup-menu) +// +// Just add .dropup after the standard .dropdown class and you're set, bro. +// TODO: abstract this so that the navbar fixed styles are not placed here? + +.dropup, +.navbar-fixed-bottom .dropdown { + // Reverse the caret + .caret { + // Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once this + // gets fixed, restore `border-top: 0;`. + border-top: 0 dotted; + border-bottom: 4px solid @dropdown-caret-color; + content: ""; + } + // Different positioning for bottom up menu + .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; + } +} + + +// Component alignment +// +// Reiterate per navbar.less and the modified component alignment there. + +@media (min-width: @grid-float-breakpoint) { + .navbar-right { + .dropdown-menu { + .pull-right > .dropdown-menu(); + } + } +} + diff --git a/public/stylesheets/vendors/bootstrap/forms.less b/public/stylesheets/vendors/bootstrap/forms.less new file mode 100755 index 0000000000..f87b602764 --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/forms.less @@ -0,0 +1,353 @@ +// +// Forms +// -------------------------------------------------- + + +// Normalize non-controls +// +// Restyle and baseline non-control form elements. + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: @line-height-computed; + font-size: (@font-size-base * 1.5); + line-height: inherit; + color: @legend-color; + border: 0; + border-bottom: 1px solid @legend-border-color; +} + +label { + display: inline-block; + margin-bottom: 5px; + font-weight: bold; +} + + +// Normalize form controls + +// Override content-box in Normalize (* isn't specific enough) +input[type="search"] { + .box-sizing(border-box); +} + +// Position radios and checkboxes better +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; /* IE8-9 */ + line-height: normal; +} + +// Set the height of select and file controls to match text inputs +input[type="file"] { + display: block; +} + +// Make multiple select elements height not fixed +select[multiple], +select[size] { + height: auto; +} + +// Fix optgroup Firefox bug per https://github.com/twbs/bootstrap/issues/7611 +select optgroup { + font-size: inherit; + font-style: inherit; + font-family: inherit; +} + +// Focus for select, file, radio, and checkbox +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + .tab-focus(); +} + +// Fix for Chrome number input +// Setting certain font-sizes causes the `I` bar to appear on hover of the bottom increment button. +// See https://github.com/twbs/bootstrap/issues/8350 for more. +input[type="number"] { + &::-webkit-outer-spin-button, + &::-webkit-inner-spin-button { + height: auto; + } +} + + +// Placeholder +// +// Placeholder text gets special styles because when browsers invalidate entire +// lines if it doesn't understand a selector/ +.form-control { + .placeholder(); +} + + +// Common form controls +// +// Shared size and type resets for form controls. Apply `.form-control` to any +// of the following form controls: +// +// select +// textarea +// input[type="text"] +// input[type="password"] +// input[type="datetime"] +// input[type="datetime-local"] +// input[type="date"] +// input[type="month"] +// input[type="time"] +// input[type="week"] +// input[type="number"] +// input[type="email"] +// input[type="url"] +// input[type="search"] +// input[type="tel"] +// input[type="color"] + +.form-control { + display: block; + width: 100%; + height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border) + padding: @padding-base-vertical @padding-base-horizontal; + font-size: @font-size-base; + line-height: @line-height-base; + color: @input-color; + vertical-align: middle; + background-color: @input-bg; + border: 1px solid @input-border; + border-radius: @input-border-radius; + .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); + .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s"); + + // Customize the `:focus` state to imitate native WebKit styles. + .form-control-focus(); + + // Disabled and read-only inputs + // Note: HTML5 says that controls under a fieldset > legend:first-child won't + // be disabled if the fieldset is disabled. Due to implementation difficulty, + // we don't honor that edge case; we style them as disabled anyway. + &[disabled], + &[readonly], + fieldset[disabled] & { + cursor: not-allowed; + background-color: @input-bg-disabled; + } + + // Reset height for `textarea`s + textarea& { + height: auto; + } +} + + +// Form groups +// +// Designed to help with the organization and spacing of vertical forms. For +// horizontal forms, use the predefined grid classes. + +.form-group { + margin-bottom: 15px; +} + + +// Checkboxes and radios +// +// Indent the labels to position radios/checkboxes as hanging controls. + +.radio, +.checkbox { + display: block; + min-height: @line-height-computed; // clear the floating input if there is no label text + margin-top: 10px; + margin-bottom: 10px; + padding-left: 20px; + vertical-align: middle; + label { + display: inline; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; + } +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + float: left; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing +} + +// Radios and checkboxes on same line +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; // space out consecutive inline controls +} + +// Apply same disabled cursor tweak as for inputs +// +// Note: Neither radios nor checkboxes can be readonly. +input[type="radio"], +input[type="checkbox"], +.radio, +.radio-inline, +.checkbox, +.checkbox-inline { + &[disabled], + fieldset[disabled] & { + cursor: not-allowed; + } +} + +// Form control sizing +.input-sm { + .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); +} + +.input-lg { + .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); +} + + +// Form control feedback states +// +// Apply contextual and semantic states to individual form controls. + +// Warning +.has-warning { + .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg); +} +// Error +.has-error { + .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg); +} +// Success +.has-success { + .form-control-validation(@state-success-text; @state-success-text; @state-success-bg); +} + + +// Static form control text +// +// Apply class to a `p` element to make any string of text align with labels in +// a horizontal form layout. + +.form-control-static { + margin-bottom: 0; // Remove default margin from `p` + padding-top: (@padding-base-vertical + 1); +} + + +// Help text +// +// Apply to any element you wish to create light text for placement immediately +// below a form control. Use for general help, formatting, or instructional text. + +.help-block { + display: block; // account for any element using help-block + margin-top: 5px; + margin-bottom: 10px; + color: lighten(@text-color, 25%); // lighten the text some for contrast +} + + + +// Inline forms +// +// Make forms appear inline(-block) by adding the `.form-inline` class. Inline +// forms begin stacked on extra small (mobile) devices and then go inline when +// viewports reach <768px. +// +// Requires wrapping inputs and labels with `.form-group` for proper display of +// default HTML form controls and our custom form controls (e.g., input groups). +// +// Heads up! This is mixin-ed into `.navbar-form` in navbars.less. + +.form-inline { + + // Kick in the inline + @media (min-width: @screen-tablet) { + // Inline-block all the things for "inline" + .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + + // In navbar-form, allow folks to *not* use `.form-group` + .form-control { + display: inline-block; + } + + // Remove default margin on radios/checkboxes that were used for stacking, and + // then undo the floating of radios and checkboxes to match (which also avoids + // a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969). + .radio, + .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + } + .radio input[type="radio"], + .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } + } +} + + +// Horizontal forms +// +// Horizontal forms are built on grid classes and allow you to create forms with +// labels on the left and inputs on the right. + +.form-horizontal { + + // Consistent vertical alignment of labels, radios, and checkboxes + .control-label, + .radio, + .checkbox, + .radio-inline, + .checkbox-inline { + margin-top: 0; + margin-bottom: 0; + padding-top: (@padding-base-vertical + 1); // Default padding plus a border + } + + // Make form groups behave like rows + .form-group { + .make-row(); + } + + // Only right align form labels here when the columns stop stacking + @media (min-width: @screen-tablet) { + .control-label { + text-align: right; + } + } +} diff --git a/public/stylesheets/vendors/bootstrap/glyphicons.less b/public/stylesheets/vendors/bootstrap/glyphicons.less new file mode 100755 index 0000000000..0e0ba986c3 --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/glyphicons.less @@ -0,0 +1,232 @@ +// +// Glyphicons for Bootstrap +// +// Since icons are fonts, they can be placed anywhere text is placed and are +// thus automatically sized to match the surrounding child. To use, create an +// inline element with the appropriate classes, like so: +// +// Star + +// Import the fonts +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('@{icon-font-path}@{icon-font-name}.eot'); + src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'), + url('@{icon-font-path}@{icon-font-name}.woff') format('woff'), + url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'), + url('@{icon-font-path}@{icon-font-name}.svg#glyphicons-halflingsregular') format('svg'); +} + +// Catchall baseclass +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; +} + +// Individual icons +.glyphicon-asterisk { &:before { content: "\2a"; } } +.glyphicon-plus { &:before { content: "\2b"; } } +.glyphicon-euro { &:before { content: "\20ac"; } } +.glyphicon-minus { &:before { content: "\2212"; } } +.glyphicon-cloud { &:before { content: "\2601"; } } +.glyphicon-envelope { &:before { content: "\2709"; } } +.glyphicon-pencil { &:before { content: "\270f"; } } +.glyphicon-glass { &:before { content: "\e001"; } } +.glyphicon-music { &:before { content: "\e002"; } } +.glyphicon-search { &:before { content: "\e003"; } } +.glyphicon-heart { &:before { content: "\e005"; } } +.glyphicon-star { &:before { content: "\e006"; } } +.glyphicon-star-empty { &:before { content: "\e007"; } } +.glyphicon-user { &:before { content: "\e008"; } } +.glyphicon-film { &:before { content: "\e009"; } } +.glyphicon-th-large { &:before { content: "\e010"; } } +.glyphicon-th { &:before { content: "\e011"; } } +.glyphicon-th-list { &:before { content: "\e012"; } } +.glyphicon-ok { &:before { content: "\e013"; } } +.glyphicon-remove { &:before { content: "\e014"; } } +.glyphicon-zoom-in { &:before { content: "\e015"; } } +.glyphicon-zoom-out { &:before { content: "\e016"; } } +.glyphicon-off { &:before { content: "\e017"; } } +.glyphicon-signal { &:before { content: "\e018"; } } +.glyphicon-cog { &:before { content: "\e019"; } } +.glyphicon-trash { &:before { content: "\e020"; } } +.glyphicon-home { &:before { content: "\e021"; } } +.glyphicon-file { &:before { content: "\e022"; } } +.glyphicon-time { &:before { content: "\e023"; } } +.glyphicon-road { &:before { content: "\e024"; } } +.glyphicon-download-alt { &:before { content: "\e025"; } } +.glyphicon-download { &:before { content: "\e026"; } } +.glyphicon-upload { &:before { content: "\e027"; } } +.glyphicon-inbox { &:before { content: "\e028"; } } +.glyphicon-play-circle { &:before { content: "\e029"; } } +.glyphicon-repeat { &:before { content: "\e030"; } } +.glyphicon-refresh { &:before { content: "\e031"; } } +.glyphicon-list-alt { &:before { content: "\e032"; } } +.glyphicon-flag { &:before { content: "\e034"; } } +.glyphicon-headphones { &:before { content: "\e035"; } } +.glyphicon-volume-off { &:before { content: "\e036"; } } +.glyphicon-volume-down { &:before { content: "\e037"; } } +.glyphicon-volume-up { &:before { content: "\e038"; } } +.glyphicon-qrcode { &:before { content: "\e039"; } } +.glyphicon-barcode { &:before { content: "\e040"; } } +.glyphicon-tag { &:before { content: "\e041"; } } +.glyphicon-tags { &:before { content: "\e042"; } } +.glyphicon-book { &:before { content: "\e043"; } } +.glyphicon-print { &:before { content: "\e045"; } } +.glyphicon-font { &:before { content: "\e047"; } } +.glyphicon-bold { &:before { content: "\e048"; } } +.glyphicon-italic { &:before { content: "\e049"; } } +.glyphicon-text-height { &:before { content: "\e050"; } } +.glyphicon-text-width { &:before { content: "\e051"; } } +.glyphicon-align-left { &:before { content: "\e052"; } } +.glyphicon-align-center { &:before { content: "\e053"; } } +.glyphicon-align-right { &:before { content: "\e054"; } } +.glyphicon-align-justify { &:before { content: "\e055"; } } +.glyphicon-list { &:before { content: "\e056"; } } +.glyphicon-indent-left { &:before { content: "\e057"; } } +.glyphicon-indent-right { &:before { content: "\e058"; } } +.glyphicon-facetime-video { &:before { content: "\e059"; } } +.glyphicon-picture { &:before { content: "\e060"; } } +.glyphicon-map-marker { &:before { content: "\e062"; } } +.glyphicon-adjust { &:before { content: "\e063"; } } +.glyphicon-tint { &:before { content: "\e064"; } } +.glyphicon-edit { &:before { content: "\e065"; } } +.glyphicon-share { &:before { content: "\e066"; } } +.glyphicon-check { &:before { content: "\e067"; } } +.glyphicon-move { &:before { content: "\e068"; } } +.glyphicon-step-backward { &:before { content: "\e069"; } } +.glyphicon-fast-backward { &:before { content: "\e070"; } } +.glyphicon-backward { &:before { content: "\e071"; } } +.glyphicon-play { &:before { content: "\e072"; } } +.glyphicon-pause { &:before { content: "\e073"; } } +.glyphicon-stop { &:before { content: "\e074"; } } +.glyphicon-forward { &:before { content: "\e075"; } } +.glyphicon-fast-forward { &:before { content: "\e076"; } } +.glyphicon-step-forward { &:before { content: "\e077"; } } +.glyphicon-eject { &:before { content: "\e078"; } } +.glyphicon-chevron-left { &:before { content: "\e079"; } } +.glyphicon-chevron-right { &:before { content: "\e080"; } } +.glyphicon-plus-sign { &:before { content: "\e081"; } } +.glyphicon-minus-sign { &:before { content: "\e082"; } } +.glyphicon-remove-sign { &:before { content: "\e083"; } } +.glyphicon-ok-sign { &:before { content: "\e084"; } } +.glyphicon-question-sign { &:before { content: "\e085"; } } +.glyphicon-info-sign { &:before { content: "\e086"; } } +.glyphicon-screenshot { &:before { content: "\e087"; } } +.glyphicon-remove-circle { &:before { content: "\e088"; } } +.glyphicon-ok-circle { &:before { content: "\e089"; } } +.glyphicon-ban-circle { &:before { content: "\e090"; } } +.glyphicon-arrow-left { &:before { content: "\e091"; } } +.glyphicon-arrow-right { &:before { content: "\e092"; } } +.glyphicon-arrow-up { &:before { content: "\e093"; } } +.glyphicon-arrow-down { &:before { content: "\e094"; } } +.glyphicon-share-alt { &:before { content: "\e095"; } } +.glyphicon-resize-full { &:before { content: "\e096"; } } +.glyphicon-resize-small { &:before { content: "\e097"; } } +.glyphicon-exclamation-sign { &:before { content: "\e101"; } } +.glyphicon-gift { &:before { content: "\e102"; } } +.glyphicon-leaf { &:before { content: "\e103"; } } +.glyphicon-eye-open { &:before { content: "\e105"; } } +.glyphicon-eye-close { &:before { content: "\e106"; } } +.glyphicon-warning-sign { &:before { content: "\e107"; } } +.glyphicon-plane { &:before { content: "\e108"; } } +.glyphicon-random { &:before { content: "\e110"; } } +.glyphicon-comment { &:before { content: "\e111"; } } +.glyphicon-magnet { &:before { content: "\e112"; } } +.glyphicon-chevron-up { &:before { content: "\e113"; } } +.glyphicon-chevron-down { &:before { content: "\e114"; } } +.glyphicon-retweet { &:before { content: "\e115"; } } +.glyphicon-shopping-cart { &:before { content: "\e116"; } } +.glyphicon-folder-close { &:before { content: "\e117"; } } +.glyphicon-folder-open { &:before { content: "\e118"; } } +.glyphicon-resize-vertical { &:before { content: "\e119"; } } +.glyphicon-resize-horizontal { &:before { content: "\e120"; } } +.glyphicon-hdd { &:before { content: "\e121"; } } +.glyphicon-bullhorn { &:before { content: "\e122"; } } +.glyphicon-certificate { &:before { content: "\e124"; } } +.glyphicon-thumbs-up { &:before { content: "\e125"; } } +.glyphicon-thumbs-down { &:before { content: "\e126"; } } +.glyphicon-hand-right { &:before { content: "\e127"; } } +.glyphicon-hand-left { &:before { content: "\e128"; } } +.glyphicon-hand-up { &:before { content: "\e129"; } } +.glyphicon-hand-down { &:before { content: "\e130"; } } +.glyphicon-circle-arrow-right { &:before { content: "\e131"; } } +.glyphicon-circle-arrow-left { &:before { content: "\e132"; } } +.glyphicon-circle-arrow-up { &:before { content: "\e133"; } } +.glyphicon-circle-arrow-down { &:before { content: "\e134"; } } +.glyphicon-globe { &:before { content: "\e135"; } } +.glyphicon-tasks { &:before { content: "\e137"; } } +.glyphicon-filter { &:before { content: "\e138"; } } +.glyphicon-fullscreen { &:before { content: "\e140"; } } +.glyphicon-dashboard { &:before { content: "\e141"; } } +.glyphicon-heart-empty { &:before { content: "\e143"; } } +.glyphicon-link { &:before { content: "\e144"; } } +.glyphicon-phone { &:before { content: "\e145"; } } +.glyphicon-usd { &:before { content: "\e148"; } } +.glyphicon-gbp { &:before { content: "\e149"; } } +.glyphicon-sort { &:before { content: "\e150"; } } +.glyphicon-sort-by-alphabet { &:before { content: "\e151"; } } +.glyphicon-sort-by-alphabet-alt { &:before { content: "\e152"; } } +.glyphicon-sort-by-order { &:before { content: "\e153"; } } +.glyphicon-sort-by-order-alt { &:before { content: "\e154"; } } +.glyphicon-sort-by-attributes { &:before { content: "\e155"; } } +.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } } +.glyphicon-unchecked { &:before { content: "\e157"; } } +.glyphicon-expand { &:before { content: "\e158"; } } +.glyphicon-collapse-down { &:before { content: "\e159"; } } +.glyphicon-collapse-up { &:before { content: "\e160"; } } +.glyphicon-log-in { &:before { content: "\e161"; } } +.glyphicon-flash { &:before { content: "\e162"; } } +.glyphicon-log-out { &:before { content: "\e163"; } } +.glyphicon-new-window { &:before { content: "\e164"; } } +.glyphicon-record { &:before { content: "\e165"; } } +.glyphicon-save { &:before { content: "\e166"; } } +.glyphicon-open { &:before { content: "\e167"; } } +.glyphicon-saved { &:before { content: "\e168"; } } +.glyphicon-import { &:before { content: "\e169"; } } +.glyphicon-export { &:before { content: "\e170"; } } +.glyphicon-send { &:before { content: "\e171"; } } +.glyphicon-floppy-disk { &:before { content: "\e172"; } } +.glyphicon-floppy-saved { &:before { content: "\e173"; } } +.glyphicon-floppy-remove { &:before { content: "\e174"; } } +.glyphicon-floppy-save { &:before { content: "\e175"; } } +.glyphicon-floppy-open { &:before { content: "\e176"; } } +.glyphicon-credit-card { &:before { content: "\e177"; } } +.glyphicon-transfer { &:before { content: "\e178"; } } +.glyphicon-cutlery { &:before { content: "\e179"; } } +.glyphicon-header { &:before { content: "\e180"; } } +.glyphicon-compressed { &:before { content: "\e181"; } } +.glyphicon-earphone { &:before { content: "\e182"; } } +.glyphicon-phone-alt { &:before { content: "\e183"; } } +.glyphicon-tower { &:before { content: "\e184"; } } +.glyphicon-stats { &:before { content: "\e185"; } } +.glyphicon-sd-video { &:before { content: "\e186"; } } +.glyphicon-hd-video { &:before { content: "\e187"; } } +.glyphicon-subtitles { &:before { content: "\e188"; } } +.glyphicon-sound-stereo { &:before { content: "\e189"; } } +.glyphicon-sound-dolby { &:before { content: "\e190"; } } +.glyphicon-sound-5-1 { &:before { content: "\e191"; } } +.glyphicon-sound-6-1 { &:before { content: "\e192"; } } +.glyphicon-sound-7-1 { &:before { content: "\e193"; } } +.glyphicon-copyright-mark { &:before { content: "\e194"; } } +.glyphicon-registration-mark { &:before { content: "\e195"; } } +.glyphicon-cloud-download { &:before { content: "\e197"; } } +.glyphicon-cloud-upload { &:before { content: "\e198"; } } +.glyphicon-tree-conifer { &:before { content: "\e199"; } } +.glyphicon-tree-deciduous { &:before { content: "\e200"; } } +.glyphicon-briefcase { &:before { content: "\1f4bc"; } } +.glyphicon-calendar { &:before { content: "\1f4c5"; } } +.glyphicon-pushpin { &:before { content: "\1f4cc"; } } +.glyphicon-paperclip { &:before { content: "\1f4ce"; } } +.glyphicon-camera { &:before { content: "\1f4f7"; } } +.glyphicon-lock { &:before { content: "\1f512"; } } +.glyphicon-bell { &:before { content: "\1f514"; } } +.glyphicon-bookmark { &:before { content: "\1f516"; } } +.glyphicon-fire { &:before { content: "\1f525"; } } +.glyphicon-wrench { &:before { content: "\1f527"; } } diff --git a/public/stylesheets/vendors/bootstrap/grid.less b/public/stylesheets/vendors/bootstrap/grid.less new file mode 100755 index 0000000000..44e38994ef --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/grid.less @@ -0,0 +1,346 @@ +// +// Grid system +// -------------------------------------------------- + + +// Set the container width, and override it for fixed navbars in media queries +.container { + .container-fixed(); +} + +// mobile first defaults +.row { + .make-row(); +} + +// Common styles for small and large grid columns +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12, +.col-sm-1, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-md-1, +.col-md-2, +.col-md-3, +.col-md-4, +.col-md-5, +.col-md-6, +.col-md-7, +.col-md-8, +.col-md-9, +.col-md-10, +.col-md-11, +.col-md-12, +.col-lg-1, +.col-lg-2, +.col-lg-3, +.col-lg-4, +.col-lg-5, +.col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-lg-10, +.col-lg-11, +.col-lg-12 { + position: relative; + // Prevent columns from collapsing when empty + min-height: 1px; + // Inner gutter via padding + padding-left: (@grid-gutter-width / 2); + padding-right: (@grid-gutter-width / 2); +} + + +// Extra small grid +// +// Grid classes for extra small devices like smartphones. No offset, push, or +// pull classes are present here due to the size of the target. +// +// Note that `.col-xs-12` doesn't get floated on purpose—there's no need since +// it's full-width. + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11 { + float: left; +} +.col-xs-1 { width: percentage((1 / @grid-columns)); } +.col-xs-2 { width: percentage((2 / @grid-columns)); } +.col-xs-3 { width: percentage((3 / @grid-columns)); } +.col-xs-4 { width: percentage((4 / @grid-columns)); } +.col-xs-5 { width: percentage((5 / @grid-columns)); } +.col-xs-6 { width: percentage((6 / @grid-columns)); } +.col-xs-7 { width: percentage((7 / @grid-columns)); } +.col-xs-8 { width: percentage((8 / @grid-columns)); } +.col-xs-9 { width: percentage((9 / @grid-columns)); } +.col-xs-10 { width: percentage((10/ @grid-columns)); } +.col-xs-11 { width: percentage((11/ @grid-columns)); } +.col-xs-12 { width: 100%; } + + +// Small grid +// +// Columns, offsets, pushes, and pulls for the small device range, from phones +// to tablets. +// +// Note that `.col-sm-12` doesn't get floated on purpose—there's no need since +// it's full-width. + +@media (min-width: @screen-tablet) { + .container { + max-width: @container-tablet; + } + + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11 { + float: left; + } + .col-sm-1 { width: percentage((1 / @grid-columns)); } + .col-sm-2 { width: percentage((2 / @grid-columns)); } + .col-sm-3 { width: percentage((3 / @grid-columns)); } + .col-sm-4 { width: percentage((4 / @grid-columns)); } + .col-sm-5 { width: percentage((5 / @grid-columns)); } + .col-sm-6 { width: percentage((6 / @grid-columns)); } + .col-sm-7 { width: percentage((7 / @grid-columns)); } + .col-sm-8 { width: percentage((8 / @grid-columns)); } + .col-sm-9 { width: percentage((9 / @grid-columns)); } + .col-sm-10 { width: percentage((10/ @grid-columns)); } + .col-sm-11 { width: percentage((11/ @grid-columns)); } + .col-sm-12 { width: 100%; } + + // Push and pull columns for source order changes + .col-sm-push-1 { left: percentage((1 / @grid-columns)); } + .col-sm-push-2 { left: percentage((2 / @grid-columns)); } + .col-sm-push-3 { left: percentage((3 / @grid-columns)); } + .col-sm-push-4 { left: percentage((4 / @grid-columns)); } + .col-sm-push-5 { left: percentage((5 / @grid-columns)); } + .col-sm-push-6 { left: percentage((6 / @grid-columns)); } + .col-sm-push-7 { left: percentage((7 / @grid-columns)); } + .col-sm-push-8 { left: percentage((8 / @grid-columns)); } + .col-sm-push-9 { left: percentage((9 / @grid-columns)); } + .col-sm-push-10 { left: percentage((10/ @grid-columns)); } + .col-sm-push-11 { left: percentage((11/ @grid-columns)); } + + .col-sm-pull-1 { right: percentage((1 / @grid-columns)); } + .col-sm-pull-2 { right: percentage((2 / @grid-columns)); } + .col-sm-pull-3 { right: percentage((3 / @grid-columns)); } + .col-sm-pull-4 { right: percentage((4 / @grid-columns)); } + .col-sm-pull-5 { right: percentage((5 / @grid-columns)); } + .col-sm-pull-6 { right: percentage((6 / @grid-columns)); } + .col-sm-pull-7 { right: percentage((7 / @grid-columns)); } + .col-sm-pull-8 { right: percentage((8 / @grid-columns)); } + .col-sm-pull-9 { right: percentage((9 / @grid-columns)); } + .col-sm-pull-10 { right: percentage((10/ @grid-columns)); } + .col-sm-pull-11 { right: percentage((11/ @grid-columns)); } + + // Offsets + .col-sm-offset-1 { margin-left: percentage((1 / @grid-columns)); } + .col-sm-offset-2 { margin-left: percentage((2 / @grid-columns)); } + .col-sm-offset-3 { margin-left: percentage((3 / @grid-columns)); } + .col-sm-offset-4 { margin-left: percentage((4 / @grid-columns)); } + .col-sm-offset-5 { margin-left: percentage((5 / @grid-columns)); } + .col-sm-offset-6 { margin-left: percentage((6 / @grid-columns)); } + .col-sm-offset-7 { margin-left: percentage((7 / @grid-columns)); } + .col-sm-offset-8 { margin-left: percentage((8 / @grid-columns)); } + .col-sm-offset-9 { margin-left: percentage((9 / @grid-columns)); } + .col-sm-offset-10 { margin-left: percentage((10/ @grid-columns)); } + .col-sm-offset-11 { margin-left: percentage((11/ @grid-columns)); } +} + + +// Medium grid +// +// Columns, offsets, pushes, and pulls for the desktop device range. +// +// Note that `.col-md-12` doesn't get floated on purpose—there's no need since +// it's full-width. + +@media (min-width: @screen-desktop) { + .container { + max-width: @container-desktop; + } + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11 { + float: left; + } + .col-md-1 { width: percentage((1 / @grid-columns)); } + .col-md-2 { width: percentage((2 / @grid-columns)); } + .col-md-3 { width: percentage((3 / @grid-columns)); } + .col-md-4 { width: percentage((4 / @grid-columns)); } + .col-md-5 { width: percentage((5 / @grid-columns)); } + .col-md-6 { width: percentage((6 / @grid-columns)); } + .col-md-7 { width: percentage((7 / @grid-columns)); } + .col-md-8 { width: percentage((8 / @grid-columns)); } + .col-md-9 { width: percentage((9 / @grid-columns)); } + .col-md-10 { width: percentage((10/ @grid-columns)); } + .col-md-11 { width: percentage((11/ @grid-columns)); } + .col-md-12 { width: 100%; } + + // Push and pull columns for source order changes + .col-md-push-0 { left: auto; } + .col-md-push-1 { left: percentage((1 / @grid-columns)); } + .col-md-push-2 { left: percentage((2 / @grid-columns)); } + .col-md-push-3 { left: percentage((3 / @grid-columns)); } + .col-md-push-4 { left: percentage((4 / @grid-columns)); } + .col-md-push-5 { left: percentage((5 / @grid-columns)); } + .col-md-push-6 { left: percentage((6 / @grid-columns)); } + .col-md-push-7 { left: percentage((7 / @grid-columns)); } + .col-md-push-8 { left: percentage((8 / @grid-columns)); } + .col-md-push-9 { left: percentage((9 / @grid-columns)); } + .col-md-push-10 { left: percentage((10/ @grid-columns)); } + .col-md-push-11 { left: percentage((11/ @grid-columns)); } + + .col-md-pull-0 { right: auto; } + .col-md-pull-1 { right: percentage((1 / @grid-columns)); } + .col-md-pull-2 { right: percentage((2 / @grid-columns)); } + .col-md-pull-3 { right: percentage((3 / @grid-columns)); } + .col-md-pull-4 { right: percentage((4 / @grid-columns)); } + .col-md-pull-5 { right: percentage((5 / @grid-columns)); } + .col-md-pull-6 { right: percentage((6 / @grid-columns)); } + .col-md-pull-7 { right: percentage((7 / @grid-columns)); } + .col-md-pull-8 { right: percentage((8 / @grid-columns)); } + .col-md-pull-9 { right: percentage((9 / @grid-columns)); } + .col-md-pull-10 { right: percentage((10/ @grid-columns)); } + .col-md-pull-11 { right: percentage((11/ @grid-columns)); } + + // Offsets + .col-md-offset-0 { margin-left: 0; } + .col-md-offset-1 { margin-left: percentage((1 / @grid-columns)); } + .col-md-offset-2 { margin-left: percentage((2 / @grid-columns)); } + .col-md-offset-3 { margin-left: percentage((3 / @grid-columns)); } + .col-md-offset-4 { margin-left: percentage((4 / @grid-columns)); } + .col-md-offset-5 { margin-left: percentage((5 / @grid-columns)); } + .col-md-offset-6 { margin-left: percentage((6 / @grid-columns)); } + .col-md-offset-7 { margin-left: percentage((7 / @grid-columns)); } + .col-md-offset-8 { margin-left: percentage((8 / @grid-columns)); } + .col-md-offset-9 { margin-left: percentage((9 / @grid-columns)); } + .col-md-offset-10 { margin-left: percentage((10/ @grid-columns)); } + .col-md-offset-11 { margin-left: percentage((11/ @grid-columns)); } +} + + +// Large grid +// +// Columns, offsets, pushes, and pulls for the large desktop device range. +// +// Note that `.col-lg-12` doesn't get floated on purpose—there's no need since +// it's full-width. + +@media (min-width: @screen-lg-desktop) { + .container { + max-width: @container-lg-desktop; + } + + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11 { + float: left; + } + .col-lg-1 { width: percentage((1 / @grid-columns)); } + .col-lg-2 { width: percentage((2 / @grid-columns)); } + .col-lg-3 { width: percentage((3 / @grid-columns)); } + .col-lg-4 { width: percentage((4 / @grid-columns)); } + .col-lg-5 { width: percentage((5 / @grid-columns)); } + .col-lg-6 { width: percentage((6 / @grid-columns)); } + .col-lg-7 { width: percentage((7 / @grid-columns)); } + .col-lg-8 { width: percentage((8 / @grid-columns)); } + .col-lg-9 { width: percentage((9 / @grid-columns)); } + .col-lg-10 { width: percentage((10/ @grid-columns)); } + .col-lg-11 { width: percentage((11/ @grid-columns)); } + .col-lg-12 { width: 100%; } + + // Push and pull columns for source order changes + .col-lg-push-0 { left: auto; } + .col-lg-push-1 { left: percentage((1 / @grid-columns)); } + .col-lg-push-2 { left: percentage((2 / @grid-columns)); } + .col-lg-push-3 { left: percentage((3 / @grid-columns)); } + .col-lg-push-4 { left: percentage((4 / @grid-columns)); } + .col-lg-push-5 { left: percentage((5 / @grid-columns)); } + .col-lg-push-6 { left: percentage((6 / @grid-columns)); } + .col-lg-push-7 { left: percentage((7 / @grid-columns)); } + .col-lg-push-8 { left: percentage((8 / @grid-columns)); } + .col-lg-push-9 { left: percentage((9 / @grid-columns)); } + .col-lg-push-10 { left: percentage((10/ @grid-columns)); } + .col-lg-push-11 { left: percentage((11/ @grid-columns)); } + + .col-lg-pull-0 { right: auto; } + .col-lg-pull-1 { right: percentage((1 / @grid-columns)); } + .col-lg-pull-2 { right: percentage((2 / @grid-columns)); } + .col-lg-pull-3 { right: percentage((3 / @grid-columns)); } + .col-lg-pull-4 { right: percentage((4 / @grid-columns)); } + .col-lg-pull-5 { right: percentage((5 / @grid-columns)); } + .col-lg-pull-6 { right: percentage((6 / @grid-columns)); } + .col-lg-pull-7 { right: percentage((7 / @grid-columns)); } + .col-lg-pull-8 { right: percentage((8 / @grid-columns)); } + .col-lg-pull-9 { right: percentage((9 / @grid-columns)); } + .col-lg-pull-10 { right: percentage((10/ @grid-columns)); } + .col-lg-pull-11 { right: percentage((11/ @grid-columns)); } + + // Offsets + .col-lg-offset-0 { margin-left: 0; } + .col-lg-offset-1 { margin-left: percentage((1 / @grid-columns)); } + .col-lg-offset-2 { margin-left: percentage((2 / @grid-columns)); } + .col-lg-offset-3 { margin-left: percentage((3 / @grid-columns)); } + .col-lg-offset-4 { margin-left: percentage((4 / @grid-columns)); } + .col-lg-offset-5 { margin-left: percentage((5 / @grid-columns)); } + .col-lg-offset-6 { margin-left: percentage((6 / @grid-columns)); } + .col-lg-offset-7 { margin-left: percentage((7 / @grid-columns)); } + .col-lg-offset-8 { margin-left: percentage((8 / @grid-columns)); } + .col-lg-offset-9 { margin-left: percentage((9 / @grid-columns)); } + .col-lg-offset-10 { margin-left: percentage((10/ @grid-columns)); } + .col-lg-offset-11 { margin-left: percentage((11/ @grid-columns)); } +} diff --git a/public/stylesheets/vendors/bootstrap/input-groups.less b/public/stylesheets/vendors/bootstrap/input-groups.less new file mode 100755 index 0000000000..570f03f904 --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/input-groups.less @@ -0,0 +1,127 @@ +// +// Input groups +// -------------------------------------------------- + +// Base styles +// ------------------------- +.input-group { + position: relative; // For dropdowns + display: table; + border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table + + // Undo padding and float of grid classes + &.col { + float: none; + padding-left: 0; + padding-right: 0; + } + + .form-control { + width: 100%; + margin-bottom: 0; + } +} + +// Sizing options +// +// Remix the default form control sizing classes into new ones for easier +// manipulation. + +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { .input-lg(); } +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { .input-sm(); } + + +// Display as table-cell +// ------------------------- +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; + + &:not(:first-child):not(:last-child) { + border-radius: 0; + } +} +// Addon and addon wrapper for buttons +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; // Match the inputs +} + +// Text input groups +// ------------------------- +.input-group-addon { + padding: @padding-base-vertical @padding-base-horizontal; + font-size: @font-size-base; + font-weight: normal; + line-height: 1; + text-align: center; + background-color: @input-group-addon-bg; + border: 1px solid @input-group-addon-border-color; + border-radius: @border-radius-base; + + // Sizing + &.input-sm { + padding: @padding-small-vertical @padding-small-horizontal; + font-size: @font-size-small; + border-radius: @border-radius-small; + } + &.input-lg { + padding: @padding-large-vertical @padding-large-horizontal; + font-size: @font-size-large; + border-radius: @border-radius-large; + } + + // Nuke default margins from checkboxes and radios to vertically center within. + input[type="radio"], + input[type="checkbox"] { + margin-top: 0; + } +} + +// Reset rounded corners +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + .border-right-radius(0); +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child) { + .border-left-radius(0); +} +.input-group-addon:last-child { + border-left: 0; +} + +// Button input groups +// ------------------------- +.input-group-btn { + position: relative; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; + // Jankily prevent input button groups from wrapping + + .btn { + margin-left: -4px; + } + // Bring the "active" button to the front + &:hover, + &:active { + z-index: 2; + } +} diff --git a/public/stylesheets/vendors/bootstrap/jumbotron.less b/public/stylesheets/vendors/bootstrap/jumbotron.less new file mode 100755 index 0000000000..8f482af527 --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/jumbotron.less @@ -0,0 +1,40 @@ +// +// Jumbotron +// -------------------------------------------------- + + +.jumbotron { + padding: @jumbotron-padding; + margin-bottom: @jumbotron-padding; + font-size: (@font-size-base * 1.5); + font-weight: 200; + line-height: (@line-height-base * 1.5); + color: @jumbotron-color; + background-color: @jumbotron-bg; + + h1 { + line-height: 1; + color: @jumbotron-heading-color; + } + p { + line-height: 1.4; + } + + .container & { + border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container + } + + @media screen and (min-width: @screen-tablet) { + padding-top: (@jumbotron-padding * 1.6); + padding-bottom: (@jumbotron-padding * 1.6); + + .container & { + padding-left: (@jumbotron-padding * 2); + padding-right: (@jumbotron-padding * 2); + } + + h1 { + font-size: (@font-size-base * 4.5); + } + } +} diff --git a/public/stylesheets/vendors/bootstrap/labels.less b/public/stylesheets/vendors/bootstrap/labels.less new file mode 100755 index 0000000000..cad5ce5160 --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/labels.less @@ -0,0 +1,58 @@ +// +// Labels +// -------------------------------------------------- + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: @label-color; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; + + // Add hover effects, but only for links + &[href] { + &:hover, + &:focus { + color: @label-link-hover-color; + text-decoration: none; + cursor: pointer; + } + } + + // Empty labels collapse automatically (not available in IE8) + &:empty { + display: none; + } +} + +// Colors +// Contextual variations (linked labels get darker on :hover) + +.label-default { + .label-variant(@label-default-bg); +} + +.label-primary { + .label-variant(@label-primary-bg); +} + +.label-success { + .label-variant(@label-success-bg); +} + +.label-info { + .label-variant(@label-info-bg); +} + +.label-warning { + .label-variant(@label-warning-bg); +} + +.label-danger { + .label-variant(@label-danger-bg); +} diff --git a/public/stylesheets/vendors/bootstrap/list-group.less b/public/stylesheets/vendors/bootstrap/list-group.less new file mode 100755 index 0000000000..46cda4085c --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/list-group.less @@ -0,0 +1,88 @@ +// +// List groups +// -------------------------------------------------- + +// Base class +// +// Easily usable on

    ,
      , or
      . +.list-group { + // No need to set list-style: none; since .list-group-item is block level + margin-bottom: 20px; + padding-left: 0; // reset padding because ul and ol +} + +// Individual list items +// ------------------------- + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + // Place the border on the list items and negative margin up for better styling + margin-bottom: -1px; + background-color: @list-group-bg; + border: 1px solid @list-group-border; + + // Round the first and last items + &:first-child { + .border-top-radius(@list-group-border-radius); + } + &:last-child { + margin-bottom: 0; + .border-bottom-radius(@list-group-border-radius); + } + + // Align badges within list items + > .badge { + float: right; + } + > .badge + .badge { + margin-right: 5px; + } + + // Linked list items + a& { + color: @list-group-link-color; + + .list-group-item-heading { + color: @list-group-link-heading-color; + } + + // Hover state + &:hover, + &:focus { + text-decoration: none; + background-color: @list-group-hover-bg; + } + } + + // Active class on item itself, not parent + &.active, + &.active:hover, + &.active:focus { + z-index: 2; // Place active items above their siblings for proper border styling + color: @list-group-active-color; + background-color: @list-group-active-bg; + border-color: @list-group-active-border; + + // Force color to inherit for custom content + .list-group-item-heading { + color: inherit; + } + .list-group-item-text { + color: lighten(@list-group-active-bg, 40%); + } + } +} + +// Custom content options +// ------------------------- + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} diff --git a/public/stylesheets/vendors/bootstrap/media.less b/public/stylesheets/vendors/bootstrap/media.less new file mode 100755 index 0000000000..5ad22cd6d5 --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/media.less @@ -0,0 +1,56 @@ +// Media objects +// Source: http://stubbornella.org/content/?p=497 +// -------------------------------------------------- + + +// Common styles +// ------------------------- + +// Clear the floats +.media, +.media-body { + overflow: hidden; + zoom: 1; +} + +// Proper spacing between instances of .media +.media, +.media .media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} + +// For images and videos, set to block +.media-object { + display: block; +} + +// Reset margins on headings for tighter default spacing +.media-heading { + margin: 0 0 5px; +} + + +// Media image alignment +// ------------------------- + +.media { + > .pull-left { + margin-right: 10px; + } + > .pull-right { + margin-left: 10px; + } +} + + +// Media list variation +// ------------------------- + +// Undo default ul/ol styles +.media-list { + padding-left: 0; + list-style: none; +} diff --git a/public/stylesheets/vendors/bootstrap/mixins.less b/public/stylesheets/vendors/bootstrap/mixins.less new file mode 100755 index 0000000000..3f230205b6 --- /dev/null +++ b/public/stylesheets/vendors/bootstrap/mixins.less @@ -0,0 +1,723 @@ +// +// Mixins +// -------------------------------------------------- + + +// Utilities +// ------------------------- + +// Clearfix +// Source: http://nicolasgallagher.com/micro-clearfix-hack/ +// +// For modern browsers +// 1. The space content is one way to avoid an Opera bug when the +// contenteditable attribute is included anywhere else in the document. +// Otherwise it causes space to appear at the top and bottom of elements +// that are clearfixed. +// 2. The use of `table` rather than `block` is only necessary if using +// `:before` to contain the top-margins of child elements. +.clearfix() { + &:before, + &:after { + content: " "; /* 1 */ + display: table; /* 2 */ + } + &:after { + clear: both; + } +} + +// Webkit-style focus +.tab-focus() { + // Default + outline: thin dotted #333; + // Webkit + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +// Center-align a block level element +.center-block() { + display: block; + margin-left: auto; + margin-right: auto; +} + +// Sizing shortcuts +.size(@width; @height) { + width: @width; + height: @height; +} +.square(@size) { + .size(@size; @size); +} + +// Placeholder text +.placeholder(@color: @input-color-placeholder) { + &:-moz-placeholder { color: @color; } // Firefox 4-18 + &::-moz-placeholder { color: @color; } // Firefox 19+ + &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+ + &::-webkit-input-placeholder { color: @color; } // Safari and Chrome +} + +// Text overflow +// Requires inline-block or block for proper styling +.text-overflow() { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +// CSS image replacement +// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 +.hide-text() { + font: ~"0/0" a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + + + +// CSS3 PROPERTIES +// -------------------------------------------------- + +// Single side border-radius +.border-top-radius(@radius) { + border-top-right-radius: @radius; + border-top-left-radius: @radius; +} +.border-right-radius(@radius) { + border-bottom-right-radius: @radius; + border-top-right-radius: @radius; +} +.border-bottom-radius(@radius) { + border-bottom-right-radius: @radius; + border-bottom-left-radius: @radius; +} +.border-left-radius(@radius) { + border-bottom-left-radius: @radius; + border-top-left-radius: @radius; +} + +// Drop shadows +.box-shadow(@shadow) { + -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1 + box-shadow: @shadow; +} + +// Transitions +.transition(@transition) { + -webkit-transition: @transition; + transition: @transition; +} +.transition-delay(@transition-delay) { + -webkit-transition-delay: @transition-delay; + transition-delay: @transition-delay; +} +.transition-duration(@transition-duration) { + -webkit-transition-duration: @transition-duration; + transition-duration: @transition-duration; +} +.transition-transform(@transition) { + -webkit-transition: -webkit-transform @transition; + -moz-transition: -moz-transform @transition; + -o-transition: -o-transform @transition; + transition: transform @transition; +} + +// Transformations +.rotate(@degrees) { + -webkit-transform: rotate(@degrees); + -ms-transform: rotate(@degrees); // IE9+ + transform: rotate(@degrees); +} +.scale(@ratio) { + -webkit-transform: scale(@ratio); + -ms-transform: scale(@ratio); // IE9+ + transform: scale(@ratio); +} +.translate(@x; @y) { + -webkit-transform: translate(@x, @y); + -ms-transform: translate(@x, @y); // IE9+ + transform: translate(@x, @y); +} +.skew(@x; @y) { + -webkit-transform: skew(@x, @y); + -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+ + transform: skew(@x, @y); +} +.translate3d(@x; @y; @z) { + -webkit-transform: translate3d(@x, @y, @z); + transform: translate3d(@x, @y, @z); +} + +// Backface visibility +// Prevent browsers from flickering when using CSS 3D transforms. +// Default value is `visible`, but can be changed to `hidden` +// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples +.backface-visibility(@visibility){ + -webkit-backface-visibility: @visibility; + -moz-backface-visibility: @visibility; + backface-visibility: @visibility; +} + +// Box sizing +.box-sizing(@boxmodel) { + -webkit-box-sizing: @boxmodel; + -moz-box-sizing: @boxmodel; + box-sizing: @boxmodel; +} + +// User select +// For selecting text on the page +.user-select(@select) { + -webkit-user-select: @select; + -moz-user-select: @select; + -ms-user-select: @select; // IE10+ + -o-user-select: @select; + user-select: @select; +} + +// Resize anything +.resizable(@direction) { + resize: @direction; // Options: horizontal, vertical, both + overflow: auto; // Safari fix +} + +// CSS3 Content Columns +.content-columns(@column-count; @column-gap: @grid-gutter-width) { + -webkit-column-count: @column-count; + -moz-column-count: @column-count; + column-count: @column-count; + -webkit-column-gap: @column-gap; + -moz-column-gap: @column-gap; + column-gap: @column-gap; +} + +// Optional hyphenation +.hyphens(@mode: auto) { + word-wrap: break-word; + -webkit-hyphens: @mode; + -moz-hyphens: @mode; + -ms-hyphens: @mode; // IE10+ + -o-hyphens: @mode; + hyphens: @mode; +} + +// Opacity +.opacity(@opacity) { + opacity: @opacity; + // IE8 filter + @opacity-ie: (@opacity * 100); + filter: ~"alpha(opacity=@{opacity-ie})"; +} + + + +// GRADIENTS +// -------------------------------------------------- + +#gradient { + + // Horizontal gradient, from left to right + // + // Creates two color stops, start and end, by specifying a color and position for each color stop. + // Color stops are not available in IE9 and below. + .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) { + background-image: -webkit-gradient(linear, @start-percent top, @end-percent top, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+ + background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1+, Chrome 10+ + background-image: -moz-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // FF 3.6+ + background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10 + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down + } + + // Vertical gradient, from top to bottom + // + // Creates two color stops, start and end, by specifying a color and position for each color stop. + // Color stops are not available in IE9 and below. + .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) { + background-image: -webkit-gradient(linear, left @start-percent, left @end-percent, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+ + background-image: -webkit-linear-gradient(top, @start-color, @start-percent, @end-color, @end-percent); // Safari 5.1+, Chrome 10+ + background-image: -moz-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // FF 3.6+ + background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10 + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down + } + + .directional(@start-color: #555; @end-color: #333; @deg: 45deg) { + background-repeat: repeat-x; + background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1+, Chrome 10+ + background-image: -moz-linear-gradient(@deg, @start-color, @end-color); // FF 3.6+ + background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10 + } + .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { + background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color)); + background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); + background-image: -moz-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); + background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color); + background-repeat: no-repeat; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback + } + .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color)); + background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color); + background-image: -moz-linear-gradient(top, @start-color, @mid-color @color-stop, @end-color); + background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color); + background-repeat: no-repeat; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback + } + .radial(@inner-color: #555; @outer-color: #333) { + background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@inner-color), to(@outer-color)); + background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color); + background-image: -moz-radial-gradient(circle, @inner-color, @outer-color); + background-image: radial-gradient(circle, @inner-color, @outer-color); + background-repeat: no-repeat; + } + .striped(@color: #555; @angle: 45deg) { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); + } +} + +// Reset filters for IE +// +// When you need to remove a gradient background, do not forget to use this to reset +// the IE filter for IE9 and below. +.reset-filter() { + filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); +} + + + +// Retina images +// +// Short retina mixin for setting background-image and -size + +.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) { + background-image: url("@{file-1x}"); + + @media + only screen and (-webkit-min-device-pixel-ratio: 2), + only screen and ( min--moz-device-pixel-ratio: 2), + only screen and ( -o-min-device-pixel-ratio: 2/1), + only screen and ( min-device-pixel-ratio: 2), + only screen and ( min-resolution: 192dpi), + only screen and ( min-resolution: 2dppx) { + background-image: url("@{file-2x}"); + background-size: @width-1x @height-1x; + } +} + + +// Responsive image +// +// Keep images from scaling beyond the width of their parents. + +.img-responsive(@display: block;) { + display: @display; + max-width: 100%; // Part 1: Set a maximum relative to the parent + height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching +} + + +// COMPONENT MIXINS +// -------------------------------------------------- + +// Horizontal dividers +// ------------------------- +// Dividers (basically an hr) within dropdowns and nav lists +.nav-divider(@color: #e5e5e5) { + height: 1px; + margin: ((@line-height-computed / 2) - 1) 0; + overflow: hidden; + background-color: @color; +} + +// Panels +// ------------------------- +.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border;) { + border-color: @border; + & > .panel-heading { + color: @heading-text-color; + background-color: @heading-bg-color; + border-color: @heading-border; + + .panel-collapse .panel-body { + border-top-color: @border; + } + } + & > .panel-footer { + + .panel-collapse .panel-body { + border-bottom-color: @border; + } + } +} + +// Alerts +// ------------------------- +.alert-variant(@background; @border; @text-color) { + background-color: @background; + border-color: @border; + color: @text-color; + hr { + border-top-color: darken(@border, 5%); + } + .alert-link { + color: darken(@text-color, 10%); + } +} + +// Tables +// ------------------------- +.table-row-variant(@state; @background; @border) { + // Exact selectors below required to override `.table-striped` and prevent + // inheritance to nested tables. + .table > thead > tr, + .table > tbody > tr, + .table > tfoot > tr { + > td.@{state}, + > th.@{state}, + &.@{state} > td, + &.@{state} > th { + background-color: @background; + border-color: @border; + } + } + + // Hover states for `.table-hover` + // Note: this is not available for cells or rows within `thead` or `tfoot`. + .table-hover > tbody > tr { + > td.@{state}:hover, + > th.@{state}:hover, + &.@{state}:hover > td { + background-color: darken(@background, 5%); + border-color: darken(@border, 5%); + } + } +} + +// Button variants +// ------------------------- +// Easily pump out default styles, as well as :hover, :focus, :active, +// and disabled options for all buttons +.button-variant(@color; @background; @border) { + color: @color; + background-color: @background; + border-color: @border; + + &:hover, + &:focus, + &:active, + &.active, + .open .dropdown-toggle& { + color: @color; + background-color: darken(@background, 8%); + border-color: darken(@border, 12%); + } + &:active, + &.active, + .open .dropdown-toggle& { + background-image: none; + } + &.disabled, + &[disabled], + fieldset[disabled] & { + &, + &:hover, + &:focus, + &:active, + &.active { + background-color: @background; + border-color: @border + } + } +} + +// Button sizes +// ------------------------- +.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { + padding: @padding-vertical @padding-horizontal; + font-size: @font-size; + line-height: @line-height; + border-radius: @border-radius; +} + +// Pagination +// ------------------------- +.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) { + > li { + > a, + > span { + padding: @padding-vertical @padding-horizontal; + font-size: @font-size; + } + &:first-child { + > a, + > span { + .border-left-radius(@border-radius); + } + } + &:last-child { + > a, + > span { + .border-right-radius(@border-radius); + } + } + } +} + +// Labels +// ------------------------- +.label-variant(@color) { + background-color: @color; + &[href] { + &:hover, + &:focus { + background-color: darken(@color, 10%); + } + } +} + +// Navbar vertical align +// ------------------------- +// Vertically center elements in the navbar. +// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. +.navbar-vertical-align(@element-height) { + margin-top: ((@navbar-height - @element-height) / 2); + margin-bottom: ((@navbar-height - @element-height) / 2); +} + +// Progress bars +// ------------------------- +.progress-bar-variant(@color) { + background-color: @color; + .progress-striped & { + #gradient > .striped(@color); + } +} + +// Responsive utilities +// ------------------------- +// More easily include all the states for responsive-utilities.less. +.responsive-visibility() { + display: block !important; + tr& { display: table-row !important; } + th&, + td& { display: table-cell !important; } +} + +.responsive-invisibility() { + display: none !important; + tr& { display: none !important; } + th&, + td& { display: none !important; } +} + +// Grid System +// ----------- + +// Centered container element +.container-fixed() { + margin-right: auto; + margin-left: auto; + padding-left: (@grid-gutter-width / 2); + padding-right: (@grid-gutter-width / 2); + .clearfix(); +} + +// Creates a wrapper for a series of columns +.make-row(@gutter: @grid-gutter-width) { + margin-left: (@gutter / -2); + margin-right: (@gutter / -2); + .clearfix(); +} + +// Generate the extra small columns +.make-xs-column(@columns; @gutter: @grid-gutter-width) { + position: relative; + float: left; + width: percentage((@columns / @grid-columns)); + // Prevent columns from collapsing when empty + min-height: 1px; + // Inner gutter via padding + padding-left: (@gutter / 2); + padding-right: (@gutter / 2); +} + +// Generate the small columns +.make-sm-column(@columns; @gutter: @grid-gutter-width) { + position: relative; + // Prevent columns from collapsing when empty + min-height: 1px; + // Inner gutter via padding + padding-left: (@gutter / 2); + padding-right: (@gutter / 2); + + // Calculate width based on number of columns available + @media (min-width: @screen-sm) { + float: left; + width: percentage((@columns / @grid-columns)); + } +} + +// Generate the small column offsets +.make-sm-column-offset(@columns) { + @media (min-width: @screen-sm) { + margin-left: percentage((@columns / @grid-columns)); + } +} +.make-sm-column-push(@columns) { + @media (min-width: @screen-sm) { + left: percentage((@columns / @grid-columns)); + } +} +.make-sm-column-pull(@columns) { + @media (min-width: @screen-sm) { + right: percentage((@columns / @grid-columns)); + } +} + +// Generate the medium columns +.make-md-column(@columns; @gutter: @grid-gutter-width) { + position: relative; + // Prevent columns from collapsing when empty + min-height: 1px; + // Inner gutter via padding + padding-left: (@gutter / 2); + padding-right: (@gutter / 2); + + // Calculate width based on number of columns available + @media (min-width: @screen-md) { + float: left; + width: percentage((@columns / @grid-columns)); + } +} + +// Generate the large column offsets +.make-md-column-offset(@columns) { + @media (min-width: @screen-md) { + margin-left: percentage((@columns / @grid-columns)); + } +} +.make-md-column-push(@columns) { + @media (min-width: @screen-md) { + left: percentage((@columns / @grid-columns)); + } +} +.make-md-column-pull(@columns) { + @media (min-width: @screen-md) { + right: percentage((@columns / @grid-columns)); + } +} + +// Generate the large columns +.make-lg-column(@columns; @gutter: @grid-gutter-width) { + position: relative; + // Prevent columns from collapsing when empty + min-height: 1px; + // Inner gutter via padding + padding-left: (@gutter / 2); + padding-right: (@gutter / 2); + + // Calculate width based on number of columns available + @media (min-width: @screen-lg) { + float: left; + width: percentage((@columns / @grid-columns)); + } +} + +// Generate the large column offsets +.make-lg-column-offset(@columns) { + @media (min-width: @screen-lg) { + margin-left: percentage((@columns / @grid-columns)); + } +} +.make-lg-column-push(@columns) { + @media (min-width: @screen-lg) { + left: percentage((@columns / @grid-columns)); + } +} +.make-lg-column-pull(@columns) { + @media (min-width: @screen-lg) { + right: percentage((@columns / @grid-columns)); + } +} + + +// Form validation states +// +// Used in forms.less to generate the form validation CSS for warnings, errors, +// and successes. + +.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) { + // Color the label and help text + .help-block, + .control-label { + color: @text-color; + } + // Set the border and box shadow on specific inputs to match + .form-control { + border-color: @border-color; + .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work + &:focus { + border-color: darken(@border-color, 10%); + @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%); + .box-shadow(@shadow); + } + } + // Set validation states also for addons + .input-group-addon { + color: @text-color; + border-color: @border-color; + background-color: @background-color; + } +} + +// Form control focus state +// +// Generate a customized focus state and for any input with the specified color, +// which defaults to the `@input-focus-border` variable. +// +// We highly encourage you to not customize the default value, but instead use +// this to tweak colors on an as-needed basis. This aesthetic change is based on +// WebKit's default styles, but applicable to a wider range of browsers. Its +// usability and accessibility should be taken into account with any change. +// +// Example usage: change the default blue border and shadow to white for better +// contrast against a dark gray background. + +.form-control-focus(@color: @input-border-focus) { + @color-rgba: rgba(red(@color), green(@color), blue(@color), .6); + &:focus { + border-color: @color; + outline: 0; + .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}"); + } +} + +// Form control sizing +// +// Relative text size, padding, and border-radii changes for form controls. For +// horizontal sizing, wrap controls in the predefined grid classes. `"; + + // Support: IE8, Opera 10-12 + // Nothing should be selected when empty strings follow ^= or $= or *= + if ( div.querySelectorAll("[t^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( div.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] && match[4] !== undefined ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (oldCache = outerCache[ dir ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + outerCache[ dir ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context !== document && context; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + } + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +} + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome<14 +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = ""; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = ""; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) >= 0 ) !== not; + }); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); +}; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + len = this.length, + ret = [], + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +}); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + init = jQuery.fn.init = function( selector, context ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return typeof rootjQuery.ready !== "undefined" ? + rootjQuery.ready( selector ) : + // Execute immediately if ready is not present + selector( jQuery ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.extend({ + dir: function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; + }, + + sibling: function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; + } +}); + +jQuery.fn.extend({ + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter(function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + matched.push( cur ); + break; + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.unique( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return elem.contentDocument || jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.unique( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +}); +var rnotwhite = (/\S+/g); + + + +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // Flag to know if list is currently firing + firing, + // First callback to fire (used internally by add and fireWith) + firingStart, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); + + +// The deferred used on DOM ready +var readyList; + +jQuery.fn.ready = function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; +}; + +jQuery.extend({ + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + } +}); + +/** + * The ready event handler and self cleanup method + */ +function completed() { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + jQuery.ready(); +} + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + } else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + } + } + return readyList.promise( obj ); +}; + +// Kick off the DOM ready check even if the user does not +jQuery.ready.promise(); + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + len ? fn( elems[0], key ) : emptyGet; +}; + + +/** + * Determines whether an object can have data + */ +jQuery.acceptData = function( owner ) { + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + /* jshint -W018 */ + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + +function Data() { + // Support: Android < 4, + // Old WebKit does not have Object.preventExtensions/freeze method, + // return new empty object instead with no [[set]] accessor + Object.defineProperty( this.cache = {}, 0, { + get: function() { + return {}; + } + }); + + this.expando = jQuery.expando + Math.random(); +} + +Data.uid = 1; +Data.accepts = jQuery.acceptData; + +Data.prototype = { + key: function( owner ) { + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return the key for a frozen object. + if ( !Data.accepts( owner ) ) { + return 0; + } + + var descriptor = {}, + // Check if the owner object already has a cache key + unlock = owner[ this.expando ]; + + // If not, create one + if ( !unlock ) { + unlock = Data.uid++; + + // Secure it in a non-enumerable, non-writable property + try { + descriptor[ this.expando ] = { value: unlock }; + Object.defineProperties( owner, descriptor ); + + // Support: Android < 4 + // Fallback to a less secure definition + } catch ( e ) { + descriptor[ this.expando ] = unlock; + jQuery.extend( owner, descriptor ); + } + } + + // Ensure the cache object + if ( !this.cache[ unlock ] ) { + this.cache[ unlock ] = {}; + } + + return unlock; + }, + set: function( owner, data, value ) { + var prop, + // There may be an unlock assigned to this node, + // if there is no entry for this "owner", create one inline + // and set the unlock as though an owner entry had always existed + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + // Handle: [ owner, key, value ] args + if ( typeof data === "string" ) { + cache[ data ] = value; + + // Handle: [ owner, { properties } ] args + } else { + // Fresh assignments by object are shallow copied + if ( jQuery.isEmptyObject( cache ) ) { + jQuery.extend( this.cache[ unlock ], data ); + // Otherwise, copy the properties one-by-one to the cache object + } else { + for ( prop in data ) { + cache[ prop ] = data[ prop ]; + } + } + } + return cache; + }, + get: function( owner, key ) { + // Either a valid cache is found, or will be created. + // New caches will be created and the unlock returned, + // allowing direct access to the newly created + // empty data object. A valid owner object must be provided. + var cache = this.cache[ this.key( owner ) ]; + + return key === undefined ? + cache : cache[ key ]; + }, + access: function( owner, key, value ) { + var stored; + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ((key && typeof key === "string") && value === undefined) ) { + + stored = this.get( owner, key ); + + return stored !== undefined ? + stored : this.get( owner, jQuery.camelCase(key) ); + } + + // [*]When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, name, camel, + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + if ( key === undefined ) { + this.cache[ unlock ] = {}; + + } else { + // Support array or space separated string of keys + if ( jQuery.isArray( key ) ) { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = key.concat( key.map( jQuery.camelCase ) ); + } else { + camel = jQuery.camelCase( key ); + // Try the string as a key before any manipulation + if ( key in cache ) { + name = [ key, camel ]; + } else { + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + name = camel; + name = name in cache ? + [ name ] : ( name.match( rnotwhite ) || [] ); + } + } + + i = name.length; + while ( i-- ) { + delete cache[ name[ i ] ]; + } + } + }, + hasData: function( owner ) { + return !jQuery.isEmptyObject( + this.cache[ owner[ this.expando ] ] || {} + ); + }, + discard: function( owner ) { + if ( owner[ this.expando ] ) { + delete this.cache[ owner[ this.expando ] ]; + } + } +}; +var data_priv = new Data(); + +var data_user = new Data(); + + + +/* + Implementation Summary + + 1. Enforce API surface and semantic compatibility with 1.9.x branch + 2. Improve the module's maintainability by reducing the storage + paths to a single mechanism. + 3. Use the same single mechanism to support "private" and "user" data. + 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) + 5. Avoid exposing implementation details on user objects (eg. expando properties) + 6. Provide a clear path for implementation upgrade to WeakMap in 2014 +*/ +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /([A-Z])/g; + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + data_user.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend({ + hasData: function( elem ) { + return data_user.hasData( elem ) || data_priv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return data_user.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + data_user.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to data_priv methods, these can be deprecated. + _data: function( elem, name, data ) { + return data_priv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + data_priv.remove( elem, name ); + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = data_user.get( elem ); + + if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + name = attrs[ i ].name; + + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + dataAttr( elem, name, data[ name ] ); + } + } + data_priv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + data_user.set( this, key ); + }); + } + + return access( this, function( value ) { + var data, + camelKey = jQuery.camelCase( key ); + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + // Attempt to get data from the cache + // with the key as-is + data = data_user.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to get data from the cache + // with the key camelized + data = data_user.get( elem, camelKey ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, camelKey, undefined ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each(function() { + // First, attempt to store a copy or reference of any + // data that might've been store with a camelCased key. + var data = data_user.get( this, camelKey ); + + // For HTML5 data-* attribute interop, we have to + // store property names with dashes in a camelCase form. + // This might not apply to all properties...* + data_user.set( this, camelKey, value ); + + // *... In the case of properties that might _actually_ + // have dashes, we need to also store a copy of that + // unchanged property. + if ( key.indexOf("-") !== -1 && data !== undefined ) { + data_user.set( this, key, value ); + } + }); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each(function() { + data_user.remove( this, key ); + }); + } +}); + + +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = data_priv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray( data ) ) { + queue = data_priv.access( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return data_priv.get( elem, key ) || data_priv.access( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + data_priv.remove( elem, [ type + "queue", key ] ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = data_priv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHidden = function( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); + }; + +var rcheckableType = (/^(?:checkbox|radio)$/i); + + + +(function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ); + + // #11217 - WebKit loses check when the name is after the checked attribute + div.innerHTML = ""; + + // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 + // old WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Make sure textarea (and checkbox) defaultValue is properly cloned + // Support: IE9-IE11+ + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +})(); +var strundefined = typeof undefined; + + + +support.focusinBubbles = "onfocusin" in window; + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.hasData( elem ) && data_priv.get( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + data_priv.remove( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && jQuery.acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, j, ret, matched, handleObj, + handlerQueue = [], + args = slice.call( arguments ), + handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, matches, sel, handleObj, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.disabled !== true || event.type !== "click" ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var eventDoc, doc, body, + button = original.button; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: Cordova 2.5 (WebKit) (#13255) + // All events should have a target; Cordova deviceready doesn't + if ( !event.target ) { + event.target = document; + } + + // Support: Safari 6.0+, Chrome < 28 + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } +}; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + // Support: Android < 4.0 + src.defaultPrevented === undefined && + src.getPreventDefault && src.getPreventDefault() ? + returnTrue : + returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && e.preventDefault ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && e.stopPropagation ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +// Support: Chrome 15+ +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// Create "bubbling" focus and blur events +// Support: Firefox, Chrome, Safari +if ( !support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + data_priv.remove( doc, fix ); + + } else { + data_priv.access( doc, fix, attaches ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); + + +var + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rhtml = /<|&#?\w+;/, + rnoInnerhtml = /<(?:script|style|link)/i, + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /^$|\/(?:java|ecma)script/i, + rscriptTypeMasked = /^true\/(.*)/, + rcleanScript = /^\s*\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + + // Support: IE 9 + option: [ 1, "" ], + + thead: [ 1, "", "
      " ], + col: [ 2, "", "
      " ], + tr: [ 2, "", "
      " ], + td: [ 3, "", "
      " ], + + _default: [ 0, "", "" ] + }; + +// Support: IE 9 +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: 1.x compatibility +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute("type"); + } + + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + data_priv.set( + elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) + ); + } +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( data_priv.hasData( src ) ) { + pdataOld = data_priv.access( src ); + pdataCur = data_priv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( data_user.hasData( src ) ) { + udataOld = data_user.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + data_user.set( dest, udataCur ); + } +} + +function getAll( context, tag ) { + var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : + context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : + []; + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], ret ) : + ret; +} + +// Support: IE >= 9 +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Support: IE >= 9 + // Fix Cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + // Support: QtWebKit + // jQuery.merge because push.apply(_, arraylike) throws + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: QtWebKit + // jQuery.merge because push.apply(_, arraylike) throws + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Fixes #12346 + // Support: Webkit, IE + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; + }, + + cleanData: function( elems ) { + var data, elem, events, type, key, j, + special = jQuery.event.special, + i = 0; + + for ( ; (elem = elems[ i ]) !== undefined; i++ ) { + if ( jQuery.acceptData( elem ) ) { + key = elem[ data_priv.expando ]; + + if ( key && (data = data_priv.cache[ key ]) ) { + events = Object.keys( data.events || {} ); + if ( events.length ) { + for ( j = 0; (type = events[j]) !== undefined; j++ ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + if ( data_priv.cache[ key ] ) { + // Discard any remaining `private` data + delete data_priv.cache[ key ]; + } + } + } + // Discard any remaining `user` data + delete data_user.cache[ elem[ data_user.expando ] ]; + } + } +}); + +jQuery.fn.extend({ + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each(function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + }); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + remove: function( selector, keepData /* Internal Use Only */ ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map(function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var arg = arguments[ 0 ]; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + arg = this.parentNode; + + jQuery.cleanData( getAll( this ) ); + + if ( arg ) { + arg.replaceChild( elem, this ); + } + }); + + // Force removal if there was no new content (e.g., from empty arguments) + return arg && (arg.length || arg.nodeType) ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + self.domManip( args, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + // Support: QtWebKit + // jQuery.merge because push.apply(_, arraylike) throws + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); + } + } + } + } + } + } + + return this; + } +}); + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: QtWebKit + // .get() because push.apply(_, arraylike) throws + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + + +var iframe, + elemdisplay = {}; + +/** + * Retrieve the actual display of a element + * @param {String} name nodeName of the element + * @param {Object} doc Document object + */ +// Called only from within defaultDisplay +function actualDisplay( name, doc ) { + var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), + + // getDefaultComputedStyle might be reliably used only on attached element + display = window.getDefaultComputedStyle ? + + // Use of this method is a temporary fix (more like optmization) until something better comes along, + // since it was removed from specification and supported only in FF + window.getDefaultComputedStyle( elem[ 0 ] ).display : jQuery.css( elem[ 0 ], "display" ); + + // We don't have any data stored on the element, + // so use "detach" method as fast way to get rid of the element + elem.detach(); + + return display; +} + +/** + * Try to determine the default display value of an element + * @param {String} nodeName + */ +function defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + + // Use the already-created iframe if possible + iframe = (iframe || jQuery( "