aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDeployment Bot (from Travis CI) <deploy@travis-ci.org>2019-07-08 09:12:57 +0000
committerDeployment Bot (from Travis CI) <deploy@travis-ci.org>2019-07-08 09:12:57 +0000
commitadc0eb57cc28212ad5d2969d069c33cdc1e9e90c (patch)
treeebb438b590fddac6568e31f8394f3cae8b94e830
parent3a3956704ca728f2a6763180db34e564b77f9199 (diff)
downloadterraform-provider-mailgun-adc0eb57cc28212ad5d2969d069c33cdc1e9e90c.tar.gz
terraform-provider-mailgun-adc0eb57cc28212ad5d2969d069c33cdc1e9e90c.tar.zst
terraform-provider-mailgun-adc0eb57cc28212ad5d2969d069c33cdc1e9e90c.zip
Deploy fretlink/terraform-provider-mailgun to github.com/fretlink/terraform-provider-mailgun.git:gh-pages
-rw-r--r--.travis.yml34
-rw-r--r--GNUmakefile61
-rw-r--r--LICENSE373
-rw-r--r--README.md63
-rw-r--r--__rack/livereload.js?host=0.0.0.0&port=357291055
-rw-r--r--__rack/swfobject.js4
-rw-r--r--__rack/web_socket.js379
-rw-r--r--assets/fonts/bootstrap/glyphicons-halflings-regular.eotbin0 -> 20127 bytes
-rw-r--r--assets/fonts/bootstrap/glyphicons-halflings-regular.eot?bin0 -> 20127 bytes
-rw-r--r--assets/fonts/bootstrap/glyphicons-halflings-regular.svg288
-rw-r--r--assets/fonts/bootstrap/glyphicons-halflings-regular.ttfbin0 -> 45404 bytes
-rw-r--r--assets/fonts/bootstrap/glyphicons-halflings-regular.woffbin0 -> 23424 bytes
-rw-r--r--assets/fonts/bootstrap/glyphicons-halflings-regular.woff2bin0 -> 18028 bytes
-rw-r--r--assets/images/mega-nav/logo-consul.svg1
-rw-r--r--assets/images/mega-nav/logo-hashicorp-wordmark.svg1
-rw-r--r--assets/images/mega-nav/logo-hashicorp.svg1
-rw-r--r--assets/images/mega-nav/logo-nomad.svg1
-rw-r--r--assets/images/mega-nav/logo-packer.svg1
-rw-r--r--assets/images/mega-nav/logo-terraform.svg1
-rw-r--r--assets/images/mega-nav/logo-vagrant.svg1
-rw-r--r--assets/images/mega-nav/logo-vault.svg1
-rw-r--r--assets/javascripts/application.js9567
-rw-r--r--assets/stylesheets/application.css9313
-rw-r--r--docs/providers/mailgun/index.html477
-rw-r--r--docs/providers/mailgun/r/domain.html528
-rw-r--r--docs/providers/mailgun/r/route.html473
-rw-r--r--go.mod6
-rw-r--r--index.html6
-rw-r--r--mailgun/provider.go37
-rw-r--r--mailgun/provider_test.go38
-rw-r--r--mailgun/resource_mailgun_domain.go484
-rw-r--r--mailgun/resource_mailgun_domain_test.go228
-rw-r--r--mailgun/resource_mailgun_route.go132
-rw-r--r--mailgun/resource_mailgun_route_test.go165
-rw-r--r--main.go11
-rw-r--r--robots.txt3
-rwxr-xr-xscripts/changelog-links.sh31
-rwxr-xr-xscripts/errcheck.sh24
-rwxr-xr-xscripts/gofmtcheck.sh13
-rwxr-xr-xscripts/gogetcookie.sh9
-rw-r--r--website/docs/index.html.markdown63
-rw-r--r--website/docs/r/domain.html.markdown84
-rw-r--r--website/docs/r/route.html.markdown51
-rw-r--r--website/mailgun.erb29
44 files changed, 22095 insertions, 1942 deletions
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index a6b90ed..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,34 +0,0 @@
1dist: trusty
2sudo: required
3services:
4- docker
5language: go
6go:
7 - "1.12.x"
8 - "1.11.x"
9
10install:
11# This script is used by the Travis build to install a cookie for
12# go.googlesource.com so rate limits are higher when using `go get` to fetch
13# packages that live there.
14# See: https://github.com/golang/go/issues/12933
15- bash scripts/gogetcookie.sh
16
17script:
18- make test
19- make vet
20- make website-test
21
22matrix:
23 fast_finish: true
24 allow_failures:
25 - go: tip
26
27cache:
28 directories:
29 - $GOPATH/src
30 - $HOME/.cache/go-build
31 - $HOME/gopath/pkg/mod
32
33env:
34 GO111MODULE=on
diff --git a/GNUmakefile b/GNUmakefile
deleted file mode 100644
index f5f0c29..0000000
--- a/GNUmakefile
+++ /dev/null
@@ -1,61 +0,0 @@
1TEST?=$$(go list ./... |grep -v 'vendor')
2GOFMT_FILES?=$$(find . -name '*.go' |grep -v vendor)
3PKG_NAME=mailgun
4WEBSITE_REPO=github.com/hashicorp/terraform-website
5
6default: build
7
8build: fmtcheck
9 go install
10
11test: fmtcheck
12 go test -i $(TEST) || exit 1
13 echo $(TEST) | \
14 xargs -t -n4 go test $(TESTARGS) -timeout=30s -parallel=4
15
16testacc: fmtcheck
17 TF_ACC=1 go test $(TEST) -v $(TESTARGS) -timeout 120m
18
19vet:
20 @echo "go vet ."
21 @go vet $$(go list ./... | grep -v vendor/) ; if [ $$? -eq 1 ]; then \
22 echo ""; \
23 echo "Vet found suspicious constructs. Please check the reported constructs"; \
24 echo "and fix them if necessary before submitting the code for review."; \
25 exit 1; \
26 fi
27
28fmt:
29 gofmt -w $(GOFMT_FILES)
30
31fmtcheck:
32 @sh -c "'$(CURDIR)/scripts/gofmtcheck.sh'"
33
34errcheck:
35 @sh -c "'$(CURDIR)/scripts/errcheck.sh'"
36
37
38test-compile:
39 @if [ "$(TEST)" = "./..." ]; then \
40 echo "ERROR: Set TEST to a specific package. For example,"; \
41 echo " make test-compile TEST=./$(PKG_NAME)"; \
42 exit 1; \
43 fi
44 go test -c $(TEST) $(TESTARGS)
45
46website:
47ifeq (,$(wildcard $(GOPATH)/src/$(WEBSITE_REPO)))
48 echo "$(WEBSITE_REPO) not found in your GOPATH (necessary for layouts and assets), get-ting..."
49 git clone https://$(WEBSITE_REPO) $(GOPATH)/src/$(WEBSITE_REPO)
50endif
51 @$(MAKE) -C $(GOPATH)/src/$(WEBSITE_REPO) website-provider PROVIDER_PATH=$(shell pwd) PROVIDER_NAME=$(PKG_NAME)
52
53website-test:
54ifeq (,$(wildcard $(GOPATH)/src/$(WEBSITE_REPO)))
55 echo "$(WEBSITE_REPO) not found in your GOPATH (necessary for layouts and assets), get-ting..."
56 git clone https://$(WEBSITE_REPO) $(GOPATH)/src/$(WEBSITE_REPO)
57endif
58 @$(MAKE) -C $(GOPATH)/src/$(WEBSITE_REPO) website-provider-test PROVIDER_PATH=$(shell pwd) PROVIDER_NAME=$(PKG_NAME)
59
60.PHONY: build test testacc vet fmt fmtcheck errcheck test-compile website website-test
61
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index a612ad9..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,373 +0,0 @@
1Mozilla Public License Version 2.0
2==================================
3
41. Definitions
5--------------
6
71.1. "Contributor"
8 means each individual or legal entity that creates, contributes to
9 the creation of, or owns Covered Software.
10
111.2. "Contributor Version"
12 means the combination of the Contributions of others (if any) used
13 by a Contributor and that particular Contributor's Contribution.
14
151.3. "Contribution"
16 means Covered Software of a particular Contributor.
17
181.4. "Covered Software"
19 means Source Code Form to which the initial Contributor has attached
20 the notice in Exhibit A, the Executable Form of such Source Code
21 Form, and Modifications of such Source Code Form, in each case
22 including portions thereof.
23
241.5. "Incompatible With Secondary Licenses"
25 means
26
27 (a) that the initial Contributor has attached the notice described
28 in Exhibit B to the Covered Software; or
29
30 (b) that the Covered Software was made available under the terms of
31 version 1.1 or earlier of the License, but not also under the
32 terms of a Secondary License.
33
341.6. "Executable Form"
35 means any form of the work other than Source Code Form.
36
371.7. "Larger Work"
38 means a work that combines Covered Software with other material, in
39 a separate file or files, that is not Covered Software.
40
411.8. "License"
42 means this document.
43
441.9. "Licensable"
45 means having the right to grant, to the maximum extent possible,
46 whether at the time of the initial grant or subsequently, any and
47 all of the rights conveyed by this License.
48
491.10. "Modifications"
50 means any of the following:
51
52 (a) any file in Source Code Form that results from an addition to,
53 deletion from, or modification of the contents of Covered
54 Software; or
55
56 (b) any new file in Source Code Form that contains any Covered
57 Software.
58
591.11. "Patent Claims" of a Contributor
60 means any patent claim(s), including without limitation, method,
61 process, and apparatus claims, in any patent Licensable by such
62 Contributor that would be infringed, but for the grant of the
63 License, by the making, using, selling, offering for sale, having
64 made, import, or transfer of either its Contributions or its
65 Contributor Version.
66
671.12. "Secondary License"
68 means either the GNU General Public License, Version 2.0, the GNU
69 Lesser General Public License, Version 2.1, the GNU Affero General
70 Public License, Version 3.0, or any later versions of those
71 licenses.
72
731.13. "Source Code Form"
74 means the form of the work preferred for making modifications.
75
761.14. "You" (or "Your")
77 means an individual or a legal entity exercising rights under this
78 License. For legal entities, "You" includes any entity that
79 controls, is controlled by, or is under common control with You. For
80 purposes of this definition, "control" means (a) the power, direct
81 or indirect, to cause the direction or management of such entity,
82 whether by contract or otherwise, or (b) ownership of more than
83 fifty percent (50%) of the outstanding shares or beneficial
84 ownership of such entity.
85
862. License Grants and Conditions
87--------------------------------
88
892.1. Grants
90
91Each Contributor hereby grants You a world-wide, royalty-free,
92non-exclusive license:
93
94(a) under intellectual property rights (other than patent or trademark)
95 Licensable by such Contributor to use, reproduce, make available,
96 modify, display, perform, distribute, and otherwise exploit its
97 Contributions, either on an unmodified basis, with Modifications, or
98 as part of a Larger Work; and
99
100(b) under Patent Claims of such Contributor to make, use, sell, offer
101 for sale, have made, import, and otherwise transfer either its
102 Contributions or its Contributor Version.
103
1042.2. Effective Date
105
106The licenses granted in Section 2.1 with respect to any Contribution
107become effective for each Contribution on the date the Contributor first
108distributes such Contribution.
109
1102.3. Limitations on Grant Scope
111
112The licenses granted in this Section 2 are the only rights granted under
113this License. No additional rights or licenses will be implied from the
114distribution or licensing of Covered Software under this License.
115Notwithstanding Section 2.1(b) above, no patent license is granted by a
116Contributor:
117
118(a) for any code that a Contributor has removed from Covered Software;
119 or
120
121(b) for infringements caused by: (i) Your and any other third party's
122 modifications of Covered Software, or (ii) the combination of its
123 Contributions with other software (except as part of its Contributor
124 Version); or
125
126(c) under Patent Claims infringed by Covered Software in the absence of
127 its Contributions.
128
129This License does not grant any rights in the trademarks, service marks,
130or logos of any Contributor (except as may be necessary to comply with
131the notice requirements in Section 3.4).
132
1332.4. Subsequent Licenses
134
135No Contributor makes additional grants as a result of Your choice to
136distribute the Covered Software under a subsequent version of this
137License (see Section 10.2) or under the terms of a Secondary License (if
138permitted under the terms of Section 3.3).
139
1402.5. Representation
141
142Each Contributor represents that the Contributor believes its
143Contributions are its original creation(s) or it has sufficient rights
144to grant the rights to its Contributions conveyed by this License.
145
1462.6. Fair Use
147
148This License is not intended to limit any rights You have under
149applicable copyright doctrines of fair use, fair dealing, or other
150equivalents.
151
1522.7. Conditions
153
154Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
155in Section 2.1.
156
1573. Responsibilities
158-------------------
159
1603.1. Distribution of Source Form
161
162All distribution of Covered Software in Source Code Form, including any
163Modifications that You create or to which You contribute, must be under
164the terms of this License. You must inform recipients that the Source
165Code Form of the Covered Software is governed by the terms of this
166License, and how they can obtain a copy of this License. You may not
167attempt to alter or restrict the recipients' rights in the Source Code
168Form.
169
1703.2. Distribution of Executable Form
171
172If You distribute Covered Software in Executable Form then:
173
174(a) such Covered Software must also be made available in Source Code
175 Form, as described in Section 3.1, and You must inform recipients of
176 the Executable Form how they can obtain a copy of such Source Code
177 Form by reasonable means in a timely manner, at a charge no more
178 than the cost of distribution to the recipient; and
179
180(b) You may distribute such Executable Form under the terms of this
181 License, or sublicense it under different terms, provided that the
182 license for the Executable Form does not attempt to limit or alter
183 the recipients' rights in the Source Code Form under this License.
184
1853.3. Distribution of a Larger Work
186
187You may create and distribute a Larger Work under terms of Your choice,
188provided that You also comply with the requirements of this License for
189the Covered Software. If the Larger Work is a combination of Covered
190Software with a work governed by one or more Secondary Licenses, and the
191Covered Software is not Incompatible With Secondary Licenses, this
192License permits You to additionally distribute such Covered Software
193under the terms of such Secondary License(s), so that the recipient of
194the Larger Work may, at their option, further distribute the Covered
195Software under the terms of either this License or such Secondary
196License(s).
197
1983.4. Notices
199
200You may not remove or alter the substance of any license notices
201(including copyright notices, patent notices, disclaimers of warranty,
202or limitations of liability) contained within the Source Code Form of
203the Covered Software, except that You may alter any license notices to
204the extent required to remedy known factual inaccuracies.
205
2063.5. Application of Additional Terms
207
208You may choose to offer, and to charge a fee for, warranty, support,
209indemnity or liability obligations to one or more recipients of Covered
210Software. However, You may do so only on Your own behalf, and not on
211behalf of any Contributor. You must make it absolutely clear that any
212such warranty, support, indemnity, or liability obligation is offered by
213You alone, and You hereby agree to indemnify every Contributor for any
214liability incurred by such Contributor as a result of warranty, support,
215indemnity or liability terms You offer. You may include additional
216disclaimers of warranty and limitations of liability specific to any
217jurisdiction.
218
2194. Inability to Comply Due to Statute or Regulation
220---------------------------------------------------
221
222If it is impossible for You to comply with any of the terms of this
223License with respect to some or all of the Covered Software due to
224statute, judicial order, or regulation then You must: (a) comply with
225the terms of this License to the maximum extent possible; and (b)
226describe the limitations and the code they affect. Such description must
227be placed in a text file included with all distributions of the Covered
228Software under this License. Except to the extent prohibited by statute
229or regulation, such description must be sufficiently detailed for a
230recipient of ordinary skill to be able to understand it.
231
2325. Termination
233--------------
234
2355.1. The rights granted under this License will terminate automatically
236if You fail to comply with any of its terms. However, if You become
237compliant, then the rights granted under this License from a particular
238Contributor are reinstated (a) provisionally, unless and until such
239Contributor explicitly and finally terminates Your grants, and (b) on an
240ongoing basis, if such Contributor fails to notify You of the
241non-compliance by some reasonable means prior to 60 days after You have
242come back into compliance. Moreover, Your grants from a particular
243Contributor are reinstated on an ongoing basis if such Contributor
244notifies You of the non-compliance by some reasonable means, this is the
245first time You have received notice of non-compliance with this License
246from such Contributor, and You become compliant prior to 30 days after
247Your receipt of the notice.
248
2495.2. If You initiate litigation against any entity by asserting a patent
250infringement claim (excluding declaratory judgment actions,
251counter-claims, and cross-claims) alleging that a Contributor Version
252directly or indirectly infringes any patent, then the rights granted to
253You by any and all Contributors for the Covered Software under Section
2542.1 of this License shall terminate.
255
2565.3. In the event of termination under Sections 5.1 or 5.2 above, all
257end user license agreements (excluding distributors and resellers) which
258have been validly granted by You or Your distributors under this License
259prior to termination shall survive termination.
260
261************************************************************************
262* *
263* 6. Disclaimer of Warranty *
264* ------------------------- *
265* *
266* Covered Software is provided under this License on an "as is" *
267* basis, without warranty of any kind, either expressed, implied, or *
268* statutory, including, without limitation, warranties that the *
269* Covered Software is free of defects, merchantable, fit for a *
270* particular purpose or non-infringing. The entire risk as to the *
271* quality and performance of the Covered Software is with You. *
272* Should any Covered Software prove defective in any respect, You *
273* (not any Contributor) assume the cost of any necessary servicing, *
274* repair, or correction. This disclaimer of warranty constitutes an *
275* essential part of this License. No use of any Covered Software is *
276* authorized under this License except under this disclaimer. *
277* *
278************************************************************************
279
280************************************************************************
281* *
282* 7. Limitation of Liability *
283* -------------------------- *
284* *
285* Under no circumstances and under no legal theory, whether tort *
286* (including negligence), contract, or otherwise, shall any *
287* Contributor, or anyone who distributes Covered Software as *
288* permitted above, be liable to You for any direct, indirect, *
289* special, incidental, or consequential damages of any character *
290* including, without limitation, damages for lost profits, loss of *
291* goodwill, work stoppage, computer failure or malfunction, or any *
292* and all other commercial damages or losses, even if such party *
293* shall have been informed of the possibility of such damages. This *
294* limitation of liability shall not apply to liability for death or *
295* personal injury resulting from such party's negligence to the *
296* extent applicable law prohibits such limitation. Some *
297* jurisdictions do not allow the exclusion or limitation of *
298* incidental or consequential damages, so this exclusion and *
299* limitation may not apply to You. *
300* *
301************************************************************************
302
3038. Litigation
304-------------
305
306Any litigation relating to this License may be brought only in the
307courts of a jurisdiction where the defendant maintains its principal
308place of business and such litigation shall be governed by laws of that
309jurisdiction, without reference to its conflict-of-law provisions.
310Nothing in this Section shall prevent a party's ability to bring
311cross-claims or counter-claims.
312
3139. Miscellaneous
314----------------
315
316This License represents the complete agreement concerning the subject
317matter hereof. If any provision of this License is held to be
318unenforceable, such provision shall be reformed only to the extent
319necessary to make it enforceable. Any law or regulation which provides
320that the language of a contract shall be construed against the drafter
321shall not be used to construe this License against a Contributor.
322
32310. Versions of the License
324---------------------------
325
32610.1. New Versions
327
328Mozilla Foundation is the license steward. Except as provided in Section
32910.3, no one other than the license steward has the right to modify or
330publish new versions of this License. Each version will be given a
331distinguishing version number.
332
33310.2. Effect of New Versions
334
335You may distribute the Covered Software under the terms of the version
336of the License under which You originally received the Covered Software,
337or under the terms of any subsequent version published by the license
338steward.
339
34010.3. Modified Versions
341
342If you create software not governed by this License, and you want to
343create a new license for such software, you may create and use a
344modified version of this License if you rename the license and remove
345any references to the name of the license steward (except to note that
346such modified license differs from this License).
347
34810.4. Distributing Source Code Form that is Incompatible With Secondary
349Licenses
350
351If You choose to distribute Source Code Form that is Incompatible With
352Secondary Licenses under the terms of this version of the License, the
353notice described in Exhibit B of this License must be attached.
354
355Exhibit A - Source Code Form License Notice
356-------------------------------------------
357
358 This Source Code Form is subject to the terms of the Mozilla Public
359 License, v. 2.0. If a copy of the MPL was not distributed with this
360 file, You can obtain one at http://mozilla.org/MPL/2.0/.
361
362If it is not possible or desirable to put the notice in a particular
363file, then You may include the notice in a location (such as a LICENSE
364file in a relevant directory) where a recipient would be likely to look
365for such a notice.
366
367You may add additional accurate notices of copyright ownership.
368
369Exhibit B - "Incompatible With Secondary Licenses" Notice
370---------------------------------------------------------
371
372 This Source Code Form is "Incompatible With Secondary Licenses", as
373 defined by the Mozilla Public License, v. 2.0.
diff --git a/README.md b/README.md
deleted file mode 100644
index 1bd1668..0000000
--- a/README.md
+++ /dev/null
@@ -1,63 +0,0 @@
1Terraform Provider Mailgun
2==================
3
4- Website: https://www.terraform.io
5- [![Gitter chat](https://badges.gitter.im/hashicorp-terraform/Lobby.png)](https://gitter.im/hashicorp-terraform/Lobby)
6- Mailing list: [Google Groups](http://groups.google.com/group/terraform-tool)
7
8<img src="https://cdn.rawgit.com/hashicorp/terraform-website/master/content/source/assets/images/logo-hashicorp.svg" width="600px">
9
10Requirements
11------------
12
13- [Terraform](https://www.terraform.io/downloads.html) 0.10.x
14- [Go](https://golang.org/doc/install) 1.12 (to build the provider plugin)
15
16Building The Provider
17---------------------
18
19Clone repository to: `$GOPATH/src/github.com/fretlink/terraform-provider-mailgun`
20
21```sh
22$ mkdir -p $GOPATH/src/github.com/fretlink; cd $GOPATH/src/github.com/fretlink
23$ git clone git@github.com:fretlink/terraform-provider-mailgun
24```
25
26Enter the provider directory and build the provider
27
28```sh
29$ cd $GOPATH/src/github.com/fretlink/terraform-provider-mailgun
30$ make build
31```
32
33Using the provider
34----------------------
35## Fill in for each provider
36
37Developing the Provider
38---------------------------
39
40If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (version 1.12+ is *required*). You'll also need to correctly setup a [GOPATH](http://golang.org/doc/code.html#GOPATH), as well as adding `$GOPATH/bin` to your `$PATH`.
41
42To compile the provider, run `make build`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory.
43
44```sh
45$ make bin
46...
47$ $GOPATH/bin/terraform-provider-mailgun
48...
49```
50
51In order to test the provider, you can simply run `make test`.
52
53```sh
54$ make test
55```
56
57In order to run the full suite of Acceptance tests, run `make testacc`.
58
59*Note:* Acceptance tests create real resources, and often cost money to run.
60
61```sh
62$ make testacc
63```
diff --git a/__rack/livereload.js?host=0.0.0.0&port=35729 b/__rack/livereload.js?host=0.0.0.0&port=35729
new file mode 100644
index 0000000..0e9fbd6
--- /dev/null
+++ b/__rack/livereload.js?host=0.0.0.0&port=35729
@@ -0,0 +1,1055 @@
1(function() {
2var __customevents = {}, __protocol = {}, __connector = {}, __timer = {}, __options = {}, __reloader = {}, __livereload = {}, __less = {}, __startup = {};
3
4// customevents
5var CustomEvents;
6CustomEvents = {
7 bind: function(element, eventName, handler) {
8 if (element.addEventListener) {
9 return element.addEventListener(eventName, handler, false);
10 } else if (element.attachEvent) {
11 element[eventName] = 1;
12 return element.attachEvent('onpropertychange', function(event) {
13 if (event.propertyName === eventName) {
14 return handler();
15 }
16 });
17 } else {
18 throw new Error("Attempt to attach custom event " + eventName + " to something which isn't a DOMElement");
19 }
20 },
21 fire: function(element, eventName) {
22 var event;
23 if (element.addEventListener) {
24 event = document.createEvent('HTMLEvents');
25 event.initEvent(eventName, true, true);
26 return document.dispatchEvent(event);
27 } else if (element.attachEvent) {
28 if (element[eventName]) {
29 return element[eventName]++;
30 }
31 } else {
32 throw new Error("Attempt to fire custom event " + eventName + " on something which isn't a DOMElement");
33 }
34 }
35};
36__customevents.bind = CustomEvents.bind;
37__customevents.fire = CustomEvents.fire;
38
39// protocol
40var PROTOCOL_6, PROTOCOL_7, Parser, ProtocolError;
41var __indexOf = Array.prototype.indexOf || function(item) {
42 for (var i = 0, l = this.length; i < l; i++) {
43 if (this[i] === item) return i;
44 }
45 return -1;
46};
47__protocol.PROTOCOL_6 = PROTOCOL_6 = 'http://livereload.com/protocols/official-6';
48__protocol.PROTOCOL_7 = PROTOCOL_7 = 'http://livereload.com/protocols/official-7';
49__protocol.ProtocolError = ProtocolError = (function() {
50 function ProtocolError(reason, data) {
51 this.message = "LiveReload protocol error (" + reason + ") after receiving data: \"" + data + "\".";
52 }
53 return ProtocolError;
54})();
55__protocol.Parser = Parser = (function() {
56 function Parser(handlers) {
57 this.handlers = handlers;
58 this.reset();
59 }
60 Parser.prototype.reset = function() {
61 return this.protocol = null;
62 };
63 Parser.prototype.process = function(data) {
64 var command, message, options, _ref;
65 try {
66 if (!(this.protocol != null)) {
67 if (data.match(/^!!ver:([\d.]+)$/)) {
68 this.protocol = 6;
69 } else if (message = this._parseMessage(data, ['hello'])) {
70 if (!message.protocols.length) {
71 throw new ProtocolError("no protocols specified in handshake message");
72 } else if (__indexOf.call(message.protocols, PROTOCOL_7) >= 0) {
73 this.protocol = 7;
74 } else if (__indexOf.call(message.protocols, PROTOCOL_6) >= 0) {
75 this.protocol = 6;
76 } else {
77 throw new ProtocolError("no supported protocols found");
78 }
79 }
80 return this.handlers.connected(this.protocol);
81 } else if (this.protocol === 6) {
82 message = JSON.parse(data);
83 if (!message.length) {
84 throw new ProtocolError("protocol 6 messages must be arrays");
85 }
86 command = message[0], options = message[1];
87 if (command !== 'refresh') {
88 throw new ProtocolError("unknown protocol 6 command");
89 }
90 return this.handlers.message({
91 command: 'reload',
92 path: options.path,
93 liveCSS: (_ref = options.apply_css_live) != null ? _ref : true
94 });
95 } else {
96 message = this._parseMessage(data, ['reload', 'alert']);
97 return this.handlers.message(message);
98 }
99 } catch (e) {
100 if (e instanceof ProtocolError) {
101 return this.handlers.error(e);
102 } else {
103 throw e;
104 }
105 }
106 };
107 Parser.prototype._parseMessage = function(data, validCommands) {
108 var message, _ref;
109 try {
110 message = JSON.parse(data);
111 } catch (e) {
112 throw new ProtocolError('unparsable JSON', data);
113 }
114 if (!message.command) {
115 throw new ProtocolError('missing "command" key', data);
116 }
117 if (_ref = message.command, __indexOf.call(validCommands, _ref) < 0) {
118 throw new ProtocolError("invalid command '" + message.command + "', only valid commands are: " + (validCommands.join(', ')) + ")", data);
119 }
120 return message;
121 };
122 return Parser;
123})();
124
125// connector
126// Generated by CoffeeScript 1.3.3
127var Connector, PROTOCOL_6, PROTOCOL_7, Parser, Version, _ref;
128
129_ref = __protocol, Parser = _ref.Parser, PROTOCOL_6 = _ref.PROTOCOL_6, PROTOCOL_7 = _ref.PROTOCOL_7;
130
131Version = '2.0.8';
132
133__connector.Connector = Connector = (function() {
134
135 function Connector(options, WebSocket, Timer, handlers) {
136 var _this = this;
137 this.options = options;
138 this.WebSocket = WebSocket;
139 this.Timer = Timer;
140 this.handlers = handlers;
141 this._uri = "ws://" + this.options.host + ":" + this.options.port + "/livereload";
142 this._nextDelay = this.options.mindelay;
143 this._connectionDesired = false;
144 this.protocol = 0;
145 this.protocolParser = new Parser({
146 connected: function(protocol) {
147 _this.protocol = protocol;
148 _this._handshakeTimeout.stop();
149 _this._nextDelay = _this.options.mindelay;
150 _this._disconnectionReason = 'broken';
151 return _this.handlers.connected(protocol);
152 },
153 error: function(e) {
154 _this.handlers.error(e);
155 return _this._closeOnError();
156 },
157 message: function(message) {
158 return _this.handlers.message(message);
159 }
160 });
161 this._handshakeTimeout = new Timer(function() {
162 if (!_this._isSocketConnected()) {
163 return;
164 }
165 _this._disconnectionReason = 'handshake-timeout';
166 return _this.socket.close();
167 });
168 this._reconnectTimer = new Timer(function() {
169 if (!_this._connectionDesired) {
170 return;
171 }
172 return _this.connect();
173 });
174 this.connect();
175 }
176
177 Connector.prototype._isSocketConnected = function() {
178 return this.socket && this.socket.readyState === this.WebSocket.OPEN;
179 };
180
181 Connector.prototype.connect = function() {
182 var _this = this;
183 this._connectionDesired = true;
184 if (this._isSocketConnected()) {
185 return;
186 }
187 this._reconnectTimer.stop();
188 this._disconnectionReason = 'cannot-connect';
189 this.protocolParser.reset();
190 this.handlers.connecting();
191 this.socket = new this.WebSocket(this._uri);
192 this.socket.onopen = function(e) {
193 return _this._onopen(e);
194 };
195 this.socket.onclose = function(e) {
196 return _this._onclose(e);
197 };
198 this.socket.onmessage = function(e) {
199 return _this._onmessage(e);
200 };
201 return this.socket.onerror = function(e) {
202 return _this._onerror(e);
203 };
204 };
205
206 Connector.prototype.disconnect = function() {
207 this._connectionDesired = false;
208 this._reconnectTimer.stop();
209 if (!this._isSocketConnected()) {
210 return;
211 }
212 this._disconnectionReason = 'manual';
213 return this.socket.close();
214 };
215
216 Connector.prototype._scheduleReconnection = function() {
217 if (!this._connectionDesired) {
218 return;
219 }
220 if (!this._reconnectTimer.running) {
221 this._reconnectTimer.start(this._nextDelay);
222 return this._nextDelay = Math.min(this.options.maxdelay, this._nextDelay * 2);
223 }
224 };
225
226 Connector.prototype.sendCommand = function(command) {
227 if (this.protocol == null) {
228 return;
229 }
230 return this._sendCommand(command);
231 };
232
233 Connector.prototype._sendCommand = function(command) {
234 return this.socket.send(JSON.stringify(command));
235 };
236
237 Connector.prototype._closeOnError = function() {
238 this._handshakeTimeout.stop();
239 this._disconnectionReason = 'error';
240 return this.socket.close();
241 };
242
243 Connector.prototype._onopen = function(e) {
244 var hello;
245 this.handlers.socketConnected();
246 this._disconnectionReason = 'handshake-failed';
247 hello = {
248 command: 'hello',
249 protocols: [PROTOCOL_6, PROTOCOL_7]
250 };
251 hello.ver = Version;
252 if (this.options.ext) {
253 hello.ext = this.options.ext;
254 }
255 if (this.options.extver) {
256 hello.extver = this.options.extver;
257 }
258 if (this.options.snipver) {
259 hello.snipver = this.options.snipver;
260 }
261 this._sendCommand(hello);
262 return this._handshakeTimeout.start(this.options.handshake_timeout);
263 };
264
265 Connector.prototype._onclose = function(e) {
266 this.protocol = 0;
267 this.handlers.disconnected(this._disconnectionReason, this._nextDelay);
268 return this._scheduleReconnection();
269 };
270
271 Connector.prototype._onerror = function(e) {};
272
273 Connector.prototype._onmessage = function(e) {
274 return this.protocolParser.process(e.data);
275 };
276
277 return Connector;
278
279})();
280
281// timer
282var Timer;
283var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
284__timer.Timer = Timer = (function() {
285 function Timer(func) {
286 this.func = func;
287 this.running = false;
288 this.id = null;
289 this._handler = __bind(function() {
290 this.running = false;
291 this.id = null;
292 return this.func();
293 }, this);
294 }
295 Timer.prototype.start = function(timeout) {
296 if (this.running) {
297 clearTimeout(this.id);
298 }
299 this.id = setTimeout(this._handler, timeout);
300 return this.running = true;
301 };
302 Timer.prototype.stop = function() {
303 if (this.running) {
304 clearTimeout(this.id);
305 this.running = false;
306 return this.id = null;
307 }
308 };
309 return Timer;
310})();
311Timer.start = function(timeout, func) {
312 return setTimeout(func, timeout);
313};
314
315// options
316var Options;
317__options.Options = Options = (function() {
318 function Options() {
319 this.host = null;
320 this.port = RACK_LIVERELOAD_PORT;
321 this.snipver = null;
322 this.ext = null;
323 this.extver = null;
324 this.mindelay = 1000;
325 this.maxdelay = 60000;
326 this.handshake_timeout = 5000;
327 }
328 Options.prototype.set = function(name, value) {
329 switch (typeof this[name]) {
330 case 'undefined':
331 break;
332 case 'number':
333 return this[name] = +value;
334 default:
335 return this[name] = value;
336 }
337 };
338 return Options;
339})();
340Options.extract = function(document) {
341 var element, keyAndValue, m, mm, options, pair, src, _i, _j, _len, _len2, _ref, _ref2;
342 _ref = document.getElementsByTagName('script');
343 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
344 element = _ref[_i];
345 if ((src = element.src) && (m = src.match(/^[^:]+:\/\/(.*)\/z?livereload\.js(?:\?(.*))?$/))) {
346 options = new Options();
347 if (mm = m[1].match(/^([^\/:]+)(?::(\d+))?$/)) {
348 options.host = mm[1];
349 if (mm[2]) {
350 options.port = parseInt(mm[2], 10);
351 }
352 }
353 if (m[2]) {
354 _ref2 = m[2].split('&');
355 for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) {
356 pair = _ref2[_j];
357 if ((keyAndValue = pair.split('=')).length > 1) {
358 options.set(keyAndValue[0].replace(/-/g, '_'), keyAndValue.slice(1).join('='));
359 }
360 }
361 }
362 return options;
363 }
364 }
365 return null;
366};
367
368// reloader
369// Generated by CoffeeScript 1.3.1
370(function() {
371 var IMAGE_STYLES, Reloader, numberOfMatchingSegments, pathFromUrl, pathsMatch, pickBestMatch, splitUrl;
372
373 splitUrl = function(url) {
374 var hash, index, params;
375 if ((index = url.indexOf('#')) >= 0) {
376 hash = url.slice(index);
377 url = url.slice(0, index);
378 } else {
379 hash = '';
380 }
381 if ((index = url.indexOf('?')) >= 0) {
382 params = url.slice(index);
383 url = url.slice(0, index);
384 } else {
385 params = '';
386 }
387 return {
388 url: url,
389 params: params,
390 hash: hash
391 };
392 };
393
394 pathFromUrl = function(url) {
395 var path;
396 url = splitUrl(url).url;
397 if (url.indexOf('file://') === 0) {
398 path = url.replace(/^file:\/\/(localhost)?/, '');
399 } else {
400 path = url.replace(/^([^:]+:)?\/\/([^:\/]+)(:\d*)?\//, '/');
401 }
402 return decodeURIComponent(path);
403 };
404
405 pickBestMatch = function(path, objects, pathFunc) {
406 var bestMatch, object, score, _i, _len;
407 bestMatch = {
408 score: 0
409 };
410 for (_i = 0, _len = objects.length; _i < _len; _i++) {
411 object = objects[_i];
412 score = numberOfMatchingSegments(path, pathFunc(object));
413 if (score > bestMatch.score) {
414 bestMatch = {
415 object: object,
416 score: score
417 };
418 }
419 }
420 if (bestMatch.score > 0) {
421 return bestMatch;
422 } else {
423 return null;
424 }
425 };
426
427 numberOfMatchingSegments = function(path1, path2) {
428 var comps1, comps2, eqCount, len;
429 path1 = path1.replace(/^\/+/, '').toLowerCase();
430 path2 = path2.replace(/^\/+/, '').toLowerCase();
431 if (path1 === path2) {
432 return 10000;
433 }
434 comps1 = path1.split('/').reverse();
435 comps2 = path2.split('/').reverse();
436 len = Math.min(comps1.length, comps2.length);
437 eqCount = 0;
438 while (eqCount < len && comps1[eqCount] === comps2[eqCount]) {
439 ++eqCount;
440 }
441 return eqCount;
442 };
443
444 pathsMatch = function(path1, path2) {
445 return numberOfMatchingSegments(path1, path2) > 0;
446 };
447
448 IMAGE_STYLES = [
449 {
450 selector: 'background',
451 styleNames: ['backgroundImage']
452 }, {
453 selector: 'border',
454 styleNames: ['borderImage', 'webkitBorderImage', 'MozBorderImage']
455 }
456 ];
457
458 __reloader.Reloader = Reloader = (function() {
459
460 Reloader.name = 'Reloader';
461
462 function Reloader(window, console, Timer) {
463 this.window = window;
464 this.console = console;
465 this.Timer = Timer;
466 this.document = this.window.document;
467 this.importCacheWaitPeriod = 200;
468 this.plugins = [];
469 }
470
471 Reloader.prototype.addPlugin = function(plugin) {
472 return this.plugins.push(plugin);
473 };
474
475 Reloader.prototype.analyze = function(callback) {
476 return results;
477 };
478
479 Reloader.prototype.reload = function(path, options) {
480 var plugin, _base, _i, _len, _ref;
481 this.options = options;
482 if ((_base = this.options).stylesheetReloadTimeout == null) {
483 _base.stylesheetReloadTimeout = 15000;
484 }
485 _ref = this.plugins;
486 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
487 plugin = _ref[_i];
488 if (plugin.reload && plugin.reload(path, options)) {
489 return;
490 }
491 }
492 if (options.liveCSS) {
493 if (path.match(/\.css$/i)) {
494 if (this.reloadStylesheet(path)) {
495 return;
496 }
497 }
498 }
499 if (options.liveImg) {
500 if (path.match(/\.(jpe?g|png|gif)$/i)) {
501 this.reloadImages(path);
502 return;
503 }
504 }
505 return this.reloadPage();
506 };
507
508 Reloader.prototype.reloadPage = function() {
509 return this.window.document.location.reload();
510 };
511
512 Reloader.prototype.reloadImages = function(path) {
513 var expando, img, selector, styleNames, styleSheet, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref, _ref1, _ref2, _ref3, _results;
514 expando = this.generateUniqueString();
515 _ref = this.document.images;
516 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
517 img = _ref[_i];
518 if (pathsMatch(path, pathFromUrl(img.src))) {
519 img.src = this.generateCacheBustUrl(img.src, expando);
520 }
521 }
522 if (this.document.querySelectorAll) {
523 for (_j = 0, _len1 = IMAGE_STYLES.length; _j < _len1; _j++) {
524 _ref1 = IMAGE_STYLES[_j], selector = _ref1.selector, styleNames = _ref1.styleNames;
525 _ref2 = this.document.querySelectorAll("[style*=" + selector + "]");
526 for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {
527 img = _ref2[_k];
528 this.reloadStyleImages(img.style, styleNames, path, expando);
529 }
530 }
531 }
532 if (this.document.styleSheets) {
533 _ref3 = this.document.styleSheets;
534 _results = [];
535 for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {
536 styleSheet = _ref3[_l];
537 _results.push(this.reloadStylesheetImages(styleSheet, path, expando));
538 }
539 return _results;
540 }
541 };
542
543 Reloader.prototype.reloadStylesheetImages = function(styleSheet, path, expando) {
544 var rule, rules, styleNames, _i, _j, _len, _len1;
545 try {
546 rules = styleSheet != null ? styleSheet.cssRules : void 0;
547 } catch (e) {
548
549 }
550 if (!rules) {
551 return;
552 }
553 for (_i = 0, _len = rules.length; _i < _len; _i++) {
554 rule = rules[_i];
555 switch (rule.type) {
556 case CSSRule.IMPORT_RULE:
557 this.reloadStylesheetImages(rule.styleSheet, path, expando);
558 break;
559 case CSSRule.STYLE_RULE:
560 for (_j = 0, _len1 = IMAGE_STYLES.length; _j < _len1; _j++) {
561 styleNames = IMAGE_STYLES[_j].styleNames;
562 this.reloadStyleImages(rule.style, styleNames, path, expando);
563 }
564 break;
565 case CSSRule.MEDIA_RULE:
566 this.reloadStylesheetImages(rule, path, expando);
567 }
568 }
569 };
570
571 Reloader.prototype.reloadStyleImages = function(style, styleNames, path, expando) {
572 var newValue, styleName, value, _i, _len,
573 _this = this;
574 for (_i = 0, _len = styleNames.length; _i < _len; _i++) {
575 styleName = styleNames[_i];
576 value = style[styleName];
577 if (typeof value === 'string') {
578 newValue = value.replace(/\burl\s*\(([^)]*)\)/, function(match, src) {
579 if (pathsMatch(path, pathFromUrl(src))) {
580 return "url(" + (_this.generateCacheBustUrl(src, expando)) + ")";
581 } else {
582 return match;
583 }
584 });
585 if (newValue !== value) {
586 style[styleName] = newValue;
587 }
588 }
589 }
590 };
591
592 Reloader.prototype.reloadStylesheet = function(path) {
593 var imported, link, links, match, style, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref, _ref1,
594 _this = this;
595 links = (function() {
596 var _i, _len, _ref, _results;
597 _ref = this.document.getElementsByTagName('link');
598 _results = [];
599 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
600 link = _ref[_i];
601 if (link.rel === 'stylesheet' && !link.__LiveReload_pendingRemoval) {
602 _results.push(link);
603 }
604 }
605 return _results;
606 }).call(this);
607 imported = [];
608 _ref = this.document.getElementsByTagName('style');
609 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
610 style = _ref[_i];
611 if (style.sheet) {
612 this.collectImportedStylesheets(style, style.sheet, imported);
613 }
614 }
615 for (_j = 0, _len1 = links.length; _j < _len1; _j++) {
616 link = links[_j];
617 this.collectImportedStylesheets(link, link.sheet, imported);
618 }
619 if (this.window.StyleFix && this.document.querySelectorAll) {
620 _ref1 = this.document.querySelectorAll('style[data-href]');
621 for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) {
622 style = _ref1[_k];
623 links.push(style);
624 }
625 }
626 this.console.log("LiveReload found " + links.length + " LINKed stylesheets, " + imported.length + " @imported stylesheets");
627 match = pickBestMatch(path, links.concat(imported), function(l) {
628 return pathFromUrl(_this.linkHref(l));
629 });
630 if (match) {
631 if (match.object.rule) {
632 this.console.log("LiveReload is reloading imported stylesheet: " + match.object.href);
633 this.reattachImportedRule(match.object);
634 } else {
635 this.console.log("LiveReload is reloading stylesheet: " + (this.linkHref(match.object)));
636 this.reattachStylesheetLink(match.object);
637 }
638 } else {
639 this.console.log("LiveReload will reload all stylesheets because path '" + path + "' did not match any specific one");
640 for (_l = 0, _len3 = links.length; _l < _len3; _l++) {
641 link = links[_l];
642 this.reattachStylesheetLink(link);
643 }
644 }
645 return true;
646 };
647
648 Reloader.prototype.collectImportedStylesheets = function(link, styleSheet, result) {
649 var index, rule, rules, _i, _len;
650 try {
651 rules = styleSheet != null ? styleSheet.cssRules : void 0;
652 } catch (e) {
653
654 }
655 if (rules && rules.length) {
656 for (index = _i = 0, _len = rules.length; _i < _len; index = ++_i) {
657 rule = rules[index];
658 switch (rule.type) {
659 case CSSRule.CHARSET_RULE:
660 continue;
661 case CSSRule.IMPORT_RULE:
662 result.push({
663 link: link,
664 rule: rule,
665 index: index,
666 href: rule.href
667 });
668 this.collectImportedStylesheets(link, rule.styleSheet, result);
669 break;
670 default:
671 break;
672 }
673 }
674 }
675 };
676
677 Reloader.prototype.waitUntilCssLoads = function(clone, func) {
678 var callbackExecuted, executeCallback, poll,
679 _this = this;
680 callbackExecuted = false;
681 executeCallback = function() {
682 if (callbackExecuted) {
683 return;
684 }
685 callbackExecuted = true;
686 return func();
687 };
688 clone.onload = function() {
689 console.log("onload!");
690 _this.knownToSupportCssOnLoad = true;
691 return executeCallback();
692 };
693 if (!this.knownToSupportCssOnLoad) {
694 (poll = function() {
695 if (clone.sheet) {
696 console.log("polling!");
697 return executeCallback();
698 } else {
699 return _this.Timer.start(50, poll);
700 }
701 })();
702 }
703 return this.Timer.start(this.options.stylesheetReloadTimeout, executeCallback);
704 };
705
706 Reloader.prototype.linkHref = function(link) {
707 return link.href || link.getAttribute('data-href');
708 };
709
710 Reloader.prototype.reattachStylesheetLink = function(link) {
711 var clone, parent,
712 _this = this;
713 if (link.__LiveReload_pendingRemoval) {
714 return;
715 }
716 link.__LiveReload_pendingRemoval = true;
717 if (link.tagName === 'STYLE') {
718 clone = this.document.createElement('link');
719 clone.rel = 'stylesheet';
720 clone.media = link.media;
721 clone.disabled = link.disabled;
722 } else {
723 clone = link.cloneNode(false);
724 }
725 clone.href = this.generateCacheBustUrl(this.linkHref(link));
726 parent = link.parentNode;
727 if (parent.lastChild === link) {
728 parent.appendChild(clone);
729 } else {
730 parent.insertBefore(clone, link.nextSibling);
731 }
732 return this.waitUntilCssLoads(clone, function() {
733 var additionalWaitingTime;
734 if (/AppleWebKit/.test(navigator.userAgent)) {
735 additionalWaitingTime = 5;
736 } else {
737 additionalWaitingTime = 200;
738 }
739 return _this.Timer.start(additionalWaitingTime, function() {
740 var _ref;
741 if (!link.parentNode) {
742 return;
743 }
744 link.parentNode.removeChild(link);
745 clone.onreadystatechange = null;
746 return (_ref = _this.window.StyleFix) != null ? _ref.link(clone) : void 0;
747 });
748 });
749 };
750
751 Reloader.prototype.reattachImportedRule = function(_arg) {
752 var href, index, link, media, newRule, parent, rule, tempLink,
753 _this = this;
754 rule = _arg.rule, index = _arg.index, link = _arg.link;
755 parent = rule.parentStyleSheet;
756 href = this.generateCacheBustUrl(rule.href);
757 media = rule.media.length ? [].join.call(rule.media, ', ') : '';
758 newRule = "@import url(\"" + href + "\") " + media + ";";
759 rule.__LiveReload_newHref = href;
760 tempLink = this.document.createElement("link");
761 tempLink.rel = 'stylesheet';
762 tempLink.href = href;
763 tempLink.__LiveReload_pendingRemoval = true;
764 if (link.parentNode) {
765 link.parentNode.insertBefore(tempLink, link);
766 }
767 return this.Timer.start(this.importCacheWaitPeriod, function() {
768 if (tempLink.parentNode) {
769 tempLink.parentNode.removeChild(tempLink);
770 }
771 if (rule.__LiveReload_newHref !== href) {
772 return;
773 }
774 parent.insertRule(newRule, index);
775 parent.deleteRule(index + 1);
776 rule = parent.cssRules[index];
777 rule.__LiveReload_newHref = href;
778 return _this.Timer.start(_this.importCacheWaitPeriod, function() {
779 if (rule.__LiveReload_newHref !== href) {
780 return;
781 }
782 parent.insertRule(newRule, index);
783 return parent.deleteRule(index + 1);
784 });
785 });
786 };
787
788 Reloader.prototype.generateUniqueString = function() {
789 return 'livereload=' + Date.now();
790 };
791
792 Reloader.prototype.generateCacheBustUrl = function(url, expando) {
793 var hash, oldParams, params, _ref;
794 if (expando == null) {
795 expando = this.generateUniqueString();
796 }
797 _ref = splitUrl(url), url = _ref.url, hash = _ref.hash, oldParams = _ref.params;
798 if (this.options.overrideURL) {
799 if (url.indexOf(this.options.serverURL) < 0) {
800 url = this.options.serverURL + this.options.overrideURL + "?url=" + encodeURIComponent(url);
801 }
802 }
803 params = oldParams.replace(/(\?|&)livereload=(\d+)/, function(match, sep) {
804 return "" + sep + expando;
805 });
806 if (params === oldParams) {
807 if (oldParams.length === 0) {
808 params = "?" + expando;
809 } else {
810 params = "" + oldParams + "&" + expando;
811 }
812 }
813 return url + params + hash;
814 };
815
816 return Reloader;
817
818 })();
819
820}).call(this);
821
822// livereload
823var Connector, LiveReload, Options, Reloader, Timer;
824
825Connector = __connector.Connector;
826
827Timer = __timer.Timer;
828
829Options = __options.Options;
830
831Reloader = __reloader.Reloader;
832
833__livereload.LiveReload = LiveReload = (function() {
834
835 function LiveReload(window) {
836 var _this = this;
837 this.window = window;
838 this.listeners = {};
839 this.plugins = [];
840 this.pluginIdentifiers = {};
841 this.console = this.window.location.href.match(/LR-verbose/) && this.window.console && this.window.console.log && this.window.console.error ? this.window.console : {
842 log: function() {},
843 error: function() {}
844 };
845 if (!(this.WebSocket = this.window.WebSocket || this.window.MozWebSocket)) {
846 console.error("LiveReload disabled because the browser does not seem to support web sockets");
847 return;
848 }
849 if (!(this.options = Options.extract(this.window.document))) {
850 console.error("LiveReload disabled because it could not find its own <SCRIPT> tag");
851 return;
852 }
853 this.reloader = new Reloader(this.window, this.console, Timer);
854 this.connector = new Connector(this.options, this.WebSocket, Timer, {
855 connecting: function() {},
856 socketConnected: function() {},
857 connected: function(protocol) {
858 var _base;
859 if (typeof (_base = _this.listeners).connect === "function") {
860 _base.connect();
861 }
862 _this.log("LiveReload is connected to " + _this.options.host + ":" + _this.options.port + " (protocol v" + protocol + ").");
863 return _this.analyze();
864 },
865 error: function(e) {
866 if (e instanceof ProtocolError) {
867 return console.log("" + e.message + ".");
868 } else {
869 return console.log("LiveReload internal error: " + e.message);
870 }
871 },
872 disconnected: function(reason, nextDelay) {
873 var _base;
874 if (typeof (_base = _this.listeners).disconnect === "function") {
875 _base.disconnect();
876 }
877 switch (reason) {
878 case 'cannot-connect':
879 return _this.log("LiveReload cannot connect to " + _this.options.host + ":" + _this.options.port + ", will retry in " + nextDelay + " sec.");
880 case 'broken':
881 return _this.log("LiveReload disconnected from " + _this.options.host + ":" + _this.options.port + ", reconnecting in " + nextDelay + " sec.");
882 case 'handshake-timeout':
883 return _this.log("LiveReload cannot connect to " + _this.options.host + ":" + _this.options.port + " (handshake timeout), will retry in " + nextDelay + " sec.");
884 case 'handshake-failed':
885 return _this.log("LiveReload cannot connect to " + _this.options.host + ":" + _this.options.port + " (handshake failed), will retry in " + nextDelay + " sec.");
886 case 'manual':
887 break;
888 case 'error':
889 break;
890 default:
891 return _this.log("LiveReload disconnected from " + _this.options.host + ":" + _this.options.port + " (" + reason + "), reconnecting in " + nextDelay + " sec.");
892 }
893 },
894 message: function(message) {
895 switch (message.command) {
896 case 'reload':
897 return _this.performReload(message);
898 case 'alert':
899 return _this.performAlert(message);
900 }
901 }
902 });
903 }
904
905 LiveReload.prototype.on = function(eventName, handler) {
906 return this.listeners[eventName] = handler;
907 };
908
909 LiveReload.prototype.log = function(message) {
910 return this.console.log("" + message);
911 };
912
913 LiveReload.prototype.performReload = function(message) {
914 var _ref, _ref2;
915 this.log("LiveReload received reload request for " + message.path + ".");
916 return this.reloader.reload(message.path, {
917 liveCSS: (_ref = message.liveCSS) != null ? _ref : true,
918 liveImg: (_ref2 = message.liveImg) != null ? _ref2 : true,
919 originalPath: message.originalPath || '',
920 overrideURL: message.overrideURL || '',
921 serverURL: "http://" + this.options.host + ":" + this.options.port
922 });
923 };
924
925 LiveReload.prototype.performAlert = function(message) {
926 return alert(message.message);
927 };
928
929 LiveReload.prototype.shutDown = function() {
930 var _base;
931 this.connector.disconnect();
932 this.log("LiveReload disconnected.");
933 return typeof (_base = this.listeners).shutdown === "function" ? _base.shutdown() : void 0;
934 };
935
936 LiveReload.prototype.hasPlugin = function(identifier) {
937 return !!this.pluginIdentifiers[identifier];
938 };
939
940 LiveReload.prototype.addPlugin = function(pluginClass) {
941 var plugin;
942 var _this = this;
943 if (this.hasPlugin(pluginClass.identifier)) return;
944 this.pluginIdentifiers[pluginClass.identifier] = true;
945 plugin = new pluginClass(this.window, {
946 _livereload: this,
947 _reloader: this.reloader,
948 _connector: this.connector,
949 console: this.console,
950 Timer: Timer,
951 generateCacheBustUrl: function(url) {
952 return _this.reloader.generateCacheBustUrl(url);
953 }
954 });
955 this.plugins.push(plugin);
956 this.reloader.addPlugin(plugin);
957 };
958
959 LiveReload.prototype.analyze = function() {
960 var plugin, pluginData, pluginsData, _i, _len, _ref;
961 if (!(this.connector.protocol >= 7)) return;
962 pluginsData = {};
963 _ref = this.plugins;
964 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
965 plugin = _ref[_i];
966 pluginsData[plugin.constructor.identifier] = pluginData = (typeof plugin.analyze === "function" ? plugin.analyze() : void 0) || {};
967 pluginData.version = plugin.constructor.version;
968 }
969 this.connector.sendCommand({
970 command: 'info',
971 plugins: pluginsData,
972 url: this.window.location.href
973 });
974 };
975
976 return LiveReload;
977
978})();
979
980// less
981var LessPlugin;
982__less = LessPlugin = (function() {
983 LessPlugin.identifier = 'less';
984 LessPlugin.version = '1.0';
985 function LessPlugin(window, host) {
986 this.window = window;
987 this.host = host;
988 }
989 LessPlugin.prototype.reload = function(path, options) {
990 if (this.window.less && this.window.less.refresh) {
991 if (path.match(/\.less$/i)) {
992 return this.reloadLess(path);
993 }
994 if (options.originalPath.match(/\.less$/i)) {
995 return this.reloadLess(options.originalPath);
996 }
997 }
998 return false;
999 };
1000 LessPlugin.prototype.reloadLess = function(path) {
1001 var link, links, _i, _len;
1002 links = (function() {
1003 var _i, _len, _ref, _results;
1004 _ref = document.getElementsByTagName('link');
1005 _results = [];
1006 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
1007 link = _ref[_i];
1008 if (link.href && link.rel === 'stylesheet/less' || (link.rel.match(/stylesheet/) && link.type.match(/^text\/(x-)?less$/))) {
1009 _results.push(link);
1010 }
1011 }
1012 return _results;
1013 })();
1014 if (links.length === 0) {
1015 return false;
1016 }
1017 for (_i = 0, _len = links.length; _i < _len; _i++) {
1018 link = links[_i];
1019 link.href = this.host.generateCacheBustUrl(link.href);
1020 }
1021 this.host.console.log("LiveReload is asking LESS to recompile all stylesheets");
1022 this.window.less.refresh(true);
1023 return true;
1024 };
1025 LessPlugin.prototype.analyze = function() {
1026 return {
1027 disable: !!(this.window.less && this.window.less.refresh)
1028 };
1029 };
1030 return LessPlugin;
1031})();
1032
1033// startup
1034var CustomEvents, LiveReload, k;
1035CustomEvents = __customevents;
1036LiveReload = window.LiveReload = new (__livereload.LiveReload)(window);
1037for (k in window) {
1038 if (k.match(/^LiveReloadPlugin/)) {
1039 LiveReload.addPlugin(window[k]);
1040 }
1041}
1042LiveReload.addPlugin(__less);
1043LiveReload.on('shutdown', function() {
1044 return delete window.LiveReload;
1045});
1046LiveReload.on('connect', function() {
1047 return CustomEvents.fire(document, 'LiveReloadConnect');
1048});
1049LiveReload.on('disconnect', function() {
1050 return CustomEvents.fire(document, 'LiveReloadDisconnect');
1051});
1052CustomEvents.bind(document, 'LiveReloadShutDown', function() {
1053 return LiveReload.shutDown();
1054});
1055})();
diff --git a/__rack/swfobject.js b/__rack/swfobject.js
new file mode 100644
index 0000000..8eafe9d
--- /dev/null
+++ b/__rack/swfobject.js
@@ -0,0 +1,4 @@
1/* SWFObject v2.2 <http://code.google.com/p/swfobject/>
2 is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
3*/
4var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}(); \ No newline at end of file
diff --git a/__rack/web_socket.js b/__rack/web_socket.js
new file mode 100644
index 0000000..6569c3c
--- /dev/null
+++ b/__rack/web_socket.js
@@ -0,0 +1,379 @@
1// Copyright: Hiroshi Ichikawa <http://gimite.net/en/>
2// License: New BSD License
3// Reference: http://dev.w3.org/html5/websockets/
4// Reference: http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-10
5
6(function() {
7
8 if (window.WebSocket && !window.WEB_SOCKET_FORCE_FLASH) return;
9
10 var logger;
11 if (window.WEB_SOCKET_LOGGER) {
12 logger = WEB_SOCKET_LOGGER;
13 } else if (window.console && window.console.log && window.console.error) {
14 // In some environment, console is defined but console.log or console.error is missing.
15 logger = window.console;
16 } else {
17 logger = {log: function(){ }, error: function(){ }};
18 }
19
20 // swfobject.hasFlashPlayerVersion("10.0.0") doesn't work with Gnash.
21 if (swfobject.getFlashPlayerVersion().major < 10) {
22 logger.error("Flash Player >= 10.0.0 is required.");
23 return;
24 }
25 if (location.protocol == "file:") {
26 logger.error(
27 "WARNING: web-socket-js doesn't work in file:///... URL " +
28 "unless you set Flash Security Settings properly. " +
29 "Open the page via Web server i.e. http://...");
30 }
31
32 /**
33 * This class represents a faux web socket.
34 * @param {string} url
35 * @param {array or string} protocols
36 * @param {string} proxyHost
37 * @param {int} proxyPort
38 * @param {string} headers
39 */
40 WebSocket = function(url, protocols, proxyHost, proxyPort, headers) {
41 var self = this;
42 self.__id = WebSocket.__nextId++;
43 WebSocket.__instances[self.__id] = self;
44 self.readyState = WebSocket.CONNECTING;
45 self.bufferedAmount = 0;
46 self.__events = {};
47 if (!protocols) {
48 protocols = [];
49 } else if (typeof protocols == "string") {
50 protocols = [protocols];
51 }
52 // Uses setTimeout() to make sure __createFlash() runs after the caller sets ws.onopen etc.
53 // Otherwise, when onopen fires immediately, onopen is called before it is set.
54 self.__createTask = setTimeout(function() {
55 WebSocket.__addTask(function() {
56 self.__createTask = null;
57 WebSocket.__flash.create(
58 self.__id, url, protocols, proxyHost || null, proxyPort || 0, headers || null);
59 });
60 }, 0);
61 };
62
63 /**
64 * Send data to the web socket.
65 * @param {string} data The data to send to the socket.
66 * @return {boolean} True for success, false for failure.
67 */
68 WebSocket.prototype.send = function(data) {
69 if (this.readyState == WebSocket.CONNECTING) {
70 throw "INVALID_STATE_ERR: Web Socket connection has not been established";
71 }
72 // We use encodeURIComponent() here, because FABridge doesn't work if
73 // the argument includes some characters. We don't use escape() here
74 // because of this:
75 // https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Functions#escape_and_unescape_Functions
76 // But it looks decodeURIComponent(encodeURIComponent(s)) doesn't
77 // preserve all Unicode characters either e.g. "\uffff" in Firefox.
78 // Note by wtritch: Hopefully this will not be necessary using ExternalInterface. Will require
79 // additional testing.
80 var result = WebSocket.__flash.send(this.__id, encodeURIComponent(data));
81 if (result < 0) { // success
82 return true;
83 } else {
84 this.bufferedAmount += result;
85 return false;
86 }
87 };
88
89 /**
90 * Close this web socket gracefully.
91 */
92 WebSocket.prototype.close = function() {
93 if (this.__createTask) {
94 clearTimeout(this.__createTask);
95 this.__createTask = null;
96 this.readyState = WebSocket.CLOSED;
97 return;
98 }
99 if (this.readyState == WebSocket.CLOSED || this.readyState == WebSocket.CLOSING) {
100 return;
101 }
102 this.readyState = WebSocket.CLOSING;
103 WebSocket.__flash.close(this.__id);
104 };
105
106 /**
107 * Implementation of {@link <a href="http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-registration">DOM 2 EventTarget Interface</a>}
108 *
109 * @param {string} type
110 * @param {function} listener
111 * @param {boolean} useCapture
112 * @return void
113 */
114 WebSocket.prototype.addEventListener = function(type, listener, useCapture) {
115 if (!(type in this.__events)) {
116 this.__events[type] = [];
117 }
118 this.__events[type].push(listener);
119 };
120
121 /**
122 * Implementation of {@link <a href="http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-registration">DOM 2 EventTarget Interface</a>}
123 *
124 * @param {string} type
125 * @param {function} listener
126 * @param {boolean} useCapture
127 * @return void
128 */
129 WebSocket.prototype.removeEventListener = function(type, listener, useCapture) {
130 if (!(type in this.__events)) return;
131 var events = this.__events[type];
132 for (var i = events.length - 1; i >= 0; --i) {
133 if (events[i] === listener) {
134 events.splice(i, 1);
135 break;
136 }
137 }
138 };
139
140 /**
141 * Implementation of {@link <a href="http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-registration">DOM 2 EventTarget Interface</a>}
142 *
143 * @param {Event} event
144 * @return void
145 */
146 WebSocket.prototype.dispatchEvent = function(event) {
147 var events = this.__events[event.type] || [];
148 for (var i = 0; i < events.length; ++i) {
149 events[i](event);
150 }
151 var handler = this["on" + event.type];
152 if (handler) handler.apply(this, [event]);
153 };
154
155 /**
156 * Handles an event from Flash.
157 * @param {Object} flashEvent
158 */
159 WebSocket.prototype.__handleEvent = function(flashEvent) {
160
161 if ("readyState" in flashEvent) {
162 this.readyState = flashEvent.readyState;
163 }
164 if ("protocol" in flashEvent) {
165 this.protocol = flashEvent.protocol;
166 }
167
168 var jsEvent;
169 if (flashEvent.type == "open" || flashEvent.type == "error") {
170 jsEvent = this.__createSimpleEvent(flashEvent.type);
171 } else if (flashEvent.type == "close") {
172 jsEvent = this.__createSimpleEvent("close");
173 jsEvent.wasClean = flashEvent.wasClean ? true : false;
174 jsEvent.code = flashEvent.code;
175 jsEvent.reason = flashEvent.reason;
176 } else if (flashEvent.type == "message") {
177 var data = decodeURIComponent(flashEvent.message);
178 jsEvent = this.__createMessageEvent("message", data);
179 } else {
180 throw "unknown event type: " + flashEvent.type;
181 }
182
183 this.dispatchEvent(jsEvent);
184
185 };
186
187 WebSocket.prototype.__createSimpleEvent = function(type) {
188 if (document.createEvent && window.Event) {
189 var event = document.createEvent("Event");
190 event.initEvent(type, false, false);
191 return event;
192 } else {
193 return {type: type, bubbles: false, cancelable: false};
194 }
195 };
196
197 WebSocket.prototype.__createMessageEvent = function(type, data) {
198 if (document.createEvent && window.MessageEvent && !window.opera) {
199 var event = document.createEvent("MessageEvent");
200 event.initMessageEvent("message", false, false, data, null, null, window, null);
201 return event;
202 } else {
203 // IE and Opera, the latter one truncates the data parameter after any 0x00 bytes.
204 return {type: type, data: data, bubbles: false, cancelable: false};
205 }
206 };
207
208 /**
209 * Define the WebSocket readyState enumeration.
210 */
211 WebSocket.CONNECTING = 0;
212 WebSocket.OPEN = 1;
213 WebSocket.CLOSING = 2;
214 WebSocket.CLOSED = 3;
215
216 WebSocket.__flash = null;
217 WebSocket.__instances = {};
218 WebSocket.__tasks = [];
219 WebSocket.__nextId = 0;
220
221 /**
222 * Load a new flash security policy file.
223 * @param {string} url
224 */
225 WebSocket.loadFlashPolicyFile = function(url){
226 WebSocket.__addTask(function() {
227 WebSocket.__flash.loadManualPolicyFile(url);
228 });
229 };
230
231 /**
232 * Loads WebSocketMain.swf and creates WebSocketMain object in Flash.
233 */
234 WebSocket.__initialize = function() {
235 if (WebSocket.__flash) return;
236
237 if (WebSocket.__swfLocation) {
238 // For backword compatibility.
239 window.WEB_SOCKET_SWF_LOCATION = WebSocket.__swfLocation;
240 }
241 if (!window.WEB_SOCKET_SWF_LOCATION) {
242 logger.error("[WebSocket] set WEB_SOCKET_SWF_LOCATION to location of WebSocketMain.swf");
243 return;
244 }
245 if (!window.WEB_SOCKET_SUPPRESS_CROSS_DOMAIN_SWF_ERROR &&
246 !WEB_SOCKET_SWF_LOCATION.match(/(^|\/)WebSocketMainInsecure\.swf(\?.*)?$/) &&
247 WEB_SOCKET_SWF_LOCATION.match(/^\w+:\/\/([^\/]+)/)) {
248 var swfHost = RegExp.$1;
249 if (location.host != swfHost) {
250 logger.error(
251 "[WebSocket] You must host HTML and WebSocketMain.swf in the same host " +
252 "('" + location.host + "' != '" + swfHost + "'). " +
253 "See also 'How to host HTML file and SWF file in different domains' section " +
254 "in README.md. If you use WebSocketMainInsecure.swf, you can suppress this message " +
255 "by WEB_SOCKET_SUPPRESS_CROSS_DOMAIN_SWF_ERROR = true;");
256 }
257 }
258 var container = document.createElement("div");
259 container.id = "webSocketContainer";
260 // Hides Flash box. We cannot use display: none or visibility: hidden because it prevents
261 // Flash from loading at least in IE. So we move it out of the screen at (-100, -100).
262 // But this even doesn't work with Flash Lite (e.g. in Droid Incredible). So with Flash
263 // Lite, we put it at (0, 0). This shows 1x1 box visible at left-top corner but this is
264 // the best we can do as far as we know now.
265 container.style.position = "absolute";
266 if (WebSocket.__isFlashLite()) {
267 container.style.left = "0px";
268 container.style.top = "0px";
269 } else {
270 container.style.left = "-100px";
271 container.style.top = "-100px";
272 }
273 var holder = document.createElement("div");
274 holder.id = "webSocketFlash";
275 container.appendChild(holder);
276 document.body.appendChild(container);
277 // See this article for hasPriority:
278 // http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36cfb8137124318eebc6-7ffd.html
279 swfobject.embedSWF(
280 WEB_SOCKET_SWF_LOCATION,
281 "webSocketFlash",
282 "1" /* width */,
283 "1" /* height */,
284 "10.0.0" /* SWF version */,
285 null,
286 null,
287 {hasPriority: true, swliveconnect : true, allowScriptAccess: "always"},
288 null,
289 function(e) {
290 if (!e.success) {
291 logger.error("[WebSocket] swfobject.embedSWF failed");
292 }
293 });
294 };
295
296 /**
297 * Called by Flash to notify JS that it's fully loaded and ready
298 * for communication.
299 */
300 WebSocket.__onFlashInitialized = function() {
301 // We need to set a timeout here to avoid round-trip calls
302 // to flash during the initialization process.
303 setTimeout(function() {
304 WebSocket.__flash = document.getElementById("webSocketFlash");
305 WebSocket.__flash.setCallerUrl(location.href);
306 WebSocket.__flash.setDebug(!!window.WEB_SOCKET_DEBUG);
307 for (var i = 0; i < WebSocket.__tasks.length; ++i) {
308 WebSocket.__tasks[i]();
309 }
310 WebSocket.__tasks = [];
311 }, 0);
312 };
313
314 /**
315 * Called by Flash to notify WebSockets events are fired.
316 */
317 WebSocket.__onFlashEvent = function() {
318 setTimeout(function() {
319 try {
320 // Gets events using receiveEvents() instead of getting it from event object
321 // of Flash event. This is to make sure to keep message order.
322 // It seems sometimes Flash events don't arrive in the same order as they are sent.
323 var events = WebSocket.__flash.receiveEvents();
324 for (var i = 0; i < events.length; ++i) {
325 WebSocket.__instances[events[i].webSocketId].__handleEvent(events[i]);
326 }
327 } catch (e) {
328 logger.error(e);
329 }
330 }, 0);
331 return true;
332 };
333
334 // Called by Flash.
335 WebSocket.__log = function(message) {
336 logger.log(decodeURIComponent(message));
337 };
338
339 // Called by Flash.
340 WebSocket.__error = function(message) {
341 logger.error(decodeURIComponent(message));
342 };
343
344 WebSocket.__addTask = function(task) {
345 if (WebSocket.__flash) {
346 task();
347 } else {
348 WebSocket.__tasks.push(task);
349 }
350 };
351
352 /**
353 * Test if the browser is running flash lite.
354 * @return {boolean} True if flash lite is running, false otherwise.
355 */
356 WebSocket.__isFlashLite = function() {
357 if (!window.navigator || !window.navigator.mimeTypes) {
358 return false;
359 }
360 var mimeType = window.navigator.mimeTypes["application/x-shockwave-flash"];
361 if (!mimeType || !mimeType.enabledPlugin || !mimeType.enabledPlugin.filename) {
362 return false;
363 }
364 return mimeType.enabledPlugin.filename.match(/flashlite/i) ? true : false;
365 };
366
367 if (!window.WEB_SOCKET_DISABLE_AUTO_INITIALIZATION) {
368 if (window.addEventListener) {
369 window.addEventListener("load", function(){
370 WebSocket.__initialize();
371 }, false);
372 } else {
373 window.attachEvent("onload", function(){
374 WebSocket.__initialize();
375 });
376 }
377 }
378
379})();
diff --git a/assets/fonts/bootstrap/glyphicons-halflings-regular.eot b/assets/fonts/bootstrap/glyphicons-halflings-regular.eot
new file mode 100644
index 0000000..b93a495
--- /dev/null
+++ b/assets/fonts/bootstrap/glyphicons-halflings-regular.eot
Binary files differ
diff --git a/assets/fonts/bootstrap/glyphicons-halflings-regular.eot? b/assets/fonts/bootstrap/glyphicons-halflings-regular.eot?
new file mode 100644
index 0000000..b93a495
--- /dev/null
+++ b/assets/fonts/bootstrap/glyphicons-halflings-regular.eot?
Binary files differ
diff --git a/assets/fonts/bootstrap/glyphicons-halflings-regular.svg b/assets/fonts/bootstrap/glyphicons-halflings-regular.svg
new file mode 100644
index 0000000..94fb549
--- /dev/null
+++ b/assets/fonts/bootstrap/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
1<?xml version="1.0" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3<svg xmlns="http://www.w3.org/2000/svg">
4<metadata></metadata>
5<defs>
6<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
7<font-face units-per-em="1200" ascent="960" descent="-240" />
8<missing-glyph horiz-adv-x="500" />
9<glyph horiz-adv-x="0" />
10<glyph horiz-adv-x="400" />
11<glyph unicode=" " />
12<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
13<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
14<glyph unicode="&#xa0;" />
15<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
16<glyph unicode="&#x2000;" horiz-adv-x="650" />
17<glyph unicode="&#x2001;" horiz-adv-x="1300" />
18<glyph unicode="&#x2002;" horiz-adv-x="650" />
19<glyph unicode="&#x2003;" horiz-adv-x="1300" />
20<glyph unicode="&#x2004;" horiz-adv-x="433" />
21<glyph unicode="&#x2005;" horiz-adv-x="325" />
22<glyph unicode="&#x2006;" horiz-adv-x="216" />
23<glyph unicode="&#x2007;" horiz-adv-x="216" />
24<glyph unicode="&#x2008;" horiz-adv-x="162" />
25<glyph unicode="&#x2009;" horiz-adv-x="260" />
26<glyph unicode="&#x200a;" horiz-adv-x="72" />
27<glyph unicode="&#x202f;" horiz-adv-x="260" />
28<glyph unicode="&#x205f;" horiz-adv-x="325" />
29<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
30<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
31<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
32<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
33<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
34<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
35<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
36<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
37<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
38<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
39<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
40<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
41<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
42<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
43<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
44<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
45<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
46<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
47<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
48<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
49<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
50<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
51<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
52<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
53<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
54<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
55<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
56<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
57<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
58<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
59<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
60<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
61<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
62<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
63<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
64<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
65<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
66<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
67<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
68<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
69<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
70<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
71<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
72<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
73<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
74<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
75<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
76<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
77<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
78<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
79<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
80<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
81<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
82<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
83<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
84<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
85<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
86<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
87<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
88<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
89<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
90<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
91<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
92<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
93<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
94<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
95<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
96<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
97<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
98<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
99<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
100<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
101<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
102<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
103<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
104<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
105<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
106<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
107<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
108<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
109<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
110<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
111<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
112<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
113<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
114<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
115<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
116<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
117<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
118<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
119<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
120<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
121<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
122<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
123<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
124<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
125<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
126<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
127<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
128<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
129<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
130<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
131<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
132<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
133<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
134<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
135<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
136<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
137<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
138<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
139<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
140<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
141<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
142<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
143<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
144<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
145<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
146<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
147<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
148<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
149<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
150<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
151<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
152<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
153<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
154<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
155<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
156<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
157<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
158<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
159<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
160<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
161<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
162<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
163<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
164<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
165<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
166<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
167<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
168<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
169<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
170<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
171<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
172<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
173<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
174<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
175<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
176<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
177<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
178<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
179<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
180<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
181<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
182<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
183<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
184<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
185<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
186<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
187<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
188<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
189<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
190<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
191<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
192<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
193<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
194<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
195<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
196<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
197<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
198<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
199<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
200<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
201<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
202<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
203<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
204<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
205<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
206<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
207<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
208<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
209<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
210<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
211<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
212<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
213<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
214<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
215<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
216<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
217<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
218<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
219<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
220<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
221<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
222<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
223<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
224<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
225<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
226<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
227<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
228<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
229<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
230<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
231<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
232<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
233<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
234<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
235<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
236<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
237<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
238<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
239<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
240<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
241<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
242<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
243<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
244<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
245<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
246<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
247<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
248<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
249<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
250<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
251<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
252<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
253<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
254<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
255<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
256<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
257<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
258<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
259<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
260<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
261<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
262<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
263<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
264<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
265<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
266<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
267<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
268<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
269<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
270<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
271<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
272<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
273<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
274<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
275<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
276<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
277<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
278<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
279<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
280<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
281<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
282<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
283<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
284<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
285<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
286<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
287</font>
288</defs></svg> \ No newline at end of file
diff --git a/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf b/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf
new file mode 100644
index 0000000..1413fc6
--- /dev/null
+++ b/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf
Binary files differ
diff --git a/assets/fonts/bootstrap/glyphicons-halflings-regular.woff b/assets/fonts/bootstrap/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000..9e61285
--- /dev/null
+++ b/assets/fonts/bootstrap/glyphicons-halflings-regular.woff
Binary files differ
diff --git a/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 b/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2
new file mode 100644
index 0000000..64539b5
--- /dev/null
+++ b/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2
Binary files differ
diff --git a/assets/images/mega-nav/logo-consul.svg b/assets/images/mega-nav/logo-consul.svg
new file mode 100644
index 0000000..f69580e
--- /dev/null
+++ b/assets/images/mega-nav/logo-consul.svg
@@ -0,0 +1 @@
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="64" height="66" viewBox="0 0 64 66"><style>.st0{fill:#961d59}.st0,.st1{fill-rule:evenodd;clip-rule:evenodd}.st1,.st2{fill:#d62783}</style><path class="st0" d="M30.9 39.3c-3.6 0-6.4-2.8-6.4-6.4 0-3.6 2.8-6.4 6.4-6.4s6.4 2.8 6.4 6.4c0 3.6-2.8 6.4-6.4 6.4"/><path class="st1" d="M43.4 35.9c-1.6 0-3-1.3-3-3 0-1.6 1.3-3 3-3 1.6 0 3 1.3 3 3s-1.4 3-3 3m10.8 2.8c-.4 1.6-2 2.5-3.6 2.1-1.6-.4-2.5-2-2.1-3.6.4-1.6 2-2.5 3.6-2.1 1.5.4 2.5 1.8 2.2 3.4 0 0 0 .1-.1.2m-2.1-7.6c-1.6.4-3.2-.6-3.6-2.2-.4-1.6.6-3.2 2.2-3.6 1.6-.4 3.2.6 3.6 2.2.1.4.1.8 0 1.2-.1 1.1-.9 2.1-2.2 2.4m10.6 7.2c-.3 1.6-1.8 2.7-3.4 2.4-1.6-.3-2.7-1.8-2.4-3.4.3-1.6 1.8-2.7 3.4-2.4 1.5.3 2.6 1.7 2.5 3.2-.1.1-.1.1-.1.2m-2.4-7.4c-1.6.3-3.1-.8-3.4-2.4-.3-1.6.8-3.1 2.4-3.4 1.6-.3 3.1.8 3.4 2.4 0 .3.1.5 0 .8-.1 1.3-1.1 2.4-2.4 2.6m-2.1 17.7c-.8 1.4-2.6 1.9-4 1.1-1.4-.8-1.9-2.6-1.1-4 .8-1.4 2.6-1.9 4-1.1 1 .6 1.6 1.7 1.5 2.8-.1.4-.2.8-.4 1.2m-1.1-27.2c-1.4.8-3.2.3-4-1.1-.8-1.4-.3-3.2 1.1-4 1.4-.8 3.2-.3 4 1.1.3.6.4 1.1.4 1.7-.1.9-.6 1.8-1.5 2.3"/><path class="st2" d="M31 62.8c-8 0-15.4-3.1-21.1-8.7C4.4 48.4 1.3 40.9 1.3 33c0-8 3.1-15.4 8.7-21.1 5.6-5.6 13.1-8.7 21-8.7 6.6 0 12.9 2.1 18.1 6.1l-3.7 4.8c-4.2-3.2-9.2-4.9-14.4-4.9-6.3 0-12.3 2.5-16.8 7S7.3 26.6 7.3 33c0 6.3 2.5 12.3 7 16.8s10.4 6.9 16.8 6.9c5.3 0 10.3-1.7 14.4-4.9l3.6 4.8c-5.2 4-11.5 6.2-18.1 6.2z"/></svg> \ No newline at end of file
diff --git a/assets/images/mega-nav/logo-hashicorp-wordmark.svg b/assets/images/mega-nav/logo-hashicorp-wordmark.svg
new file mode 100644
index 0000000..ba527a9
--- /dev/null
+++ b/assets/images/mega-nav/logo-hashicorp-wordmark.svg
@@ -0,0 +1 @@
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="86.2" height="20" viewBox="0 0 86.2 20"><style>.st0{fill:#fff}</style><path class="st0" d="M30.1 15.6v-4.8H26v4.8h-2V4.7h2v4.5h4.2V4.7h1.9v10.9h-2zm9.7 0h-1.7L38 15c-.7.5-1.6.7-2.4.7-1.5 0-2.1-1-2.1-2.3 0-1.6.7-2.2 2.3-2.2h2v-.9c0-.9-.3-1.2-1.6-1.2-.7 0-1.5.1-2.2.2l-.3-1.5c.8-.2 1.9-.4 2.7-.4 2.5 0 3.2.9 3.2 2.9v5.3zm-2-3.2h-1.6c-.7 0-.8.2-.8.8 0 .6.2.8.9.8.6 0 1.2-.2 1.6-.4v-1.2zm5.8 3.2c-.9 0-2-.2-2.8-.5l.3-1.5c.7.2 1.6.3 2.4.3.9 0 1-.2 1-.8 0-.5-.1-.7-1.4-1-1.9-.5-2.2-1-2.2-2.5 0-1.6.7-2.3 3-2.3.7 0 1.7.1 2.4.3l-.2 1.6c-.6-.1-1.6-.2-2.2-.2-.9 0-1 .2-1 .7 0 .6 0 .7 1.1 1 2.2.6 2.4.9 2.4 2.5.1 1.5-.4 2.4-2.8 2.4zm8.7 0V9.9c0-.4-.1-.6-.6-.6s-1.4.3-2 .7v5.7h-2.2V4.2l2.2-.2v4.1c.6-.5 1.9-.8 2.8-.8 1.3 0 1.7.9 1.7 2.4v5.9h-1.9zm3.5-9.3V4.1h1.9v2.2h-1.9zm0 9.3v-8h1.9v8h-1.9zm3.5-8c0-2 1.2-3.2 3.9-3.2 1 0 2.1.1 3 .4L66 6.5c-.9-.2-1.8-.3-2.6-.3-1.4 0-1.8.5-1.8 1.7v4.2c0 1.2.4 1.7 1.8 1.7.8 0 1.7-.1 2.6-.3l.2 1.8c-.9.2-2 .4-3 .4-2.7 0-3.9-1.2-3.9-3.2V7.6zm10.9 8c-2.7 0-3.5-1.5-3.5-3.1v-2c0-1.6.8-3.1 3.5-3.1s3.5 1.5 3.5 3.1v2c0 1.6-.7 3.1-3.5 3.1zm0-6.6c-1.1 0-1.6.5-1.6 1.4v2.1c0 .9.5 1.4 1.6 1.4s1.6-.5 1.6-1.4v-2.1c0-.9-.5-1.4-1.6-1.4zm8.8.2c-.8.3-1.4.7-2.1 1.2v5.3H75v-8h1.5l.1.8c.4-.3 1.4-.9 2.1-1.1l.3 1.8zm7.2 3.6c0 1.8-.6 2.8-2.5 2.8-.7 0-1.3-.1-2-.2v3.3l-2.2.3V7.6h1.7l.2.6c.7-.5 1.4-.9 2.4-.9 1.6 0 2.4.9 2.4 2.7v2.8zm-4.4.9c.3.1 1.1.2 1.7.2.7 0 .9-.3.9-1.1V10c0-.7-.1-1-.9-1-.7 0-1.4.3-1.7.7v4zM2.9 6.5l4.8-2.8V0L0 4.5v11.1l2.9 1.6V7.1zm13.5-3.7v10.7l-4.9 2.8V20l7.7-4.4V4.5z"/><path class="st0" d="M14.4 1.7L11.5 0v8.9H7.7v-3L4.8 7.6v10.7L7.7 20v-8.6h3.8v2.7l2.9-1.7z"/></svg> \ No newline at end of file
diff --git a/assets/images/mega-nav/logo-hashicorp.svg b/assets/images/mega-nav/logo-hashicorp.svg
new file mode 100644
index 0000000..af32f0d
--- /dev/null
+++ b/assets/images/mega-nav/logo-hashicorp.svg
@@ -0,0 +1 @@
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="21" height="22" viewBox="0 0 21 22"><style>.st0{fill:#fff}</style><path class="st0" d="M3.1 7.1l5.3-3V0L0 4.9v12.2l3.1 1.8V7.8zm14.7-4v11.8l-5.2 3V22l8.4-4.9V4.9z"/><path class="st0" d="M15.7 1.8L12.6 0v9.8H8.4V6.5L5.2 8.4v11.8L8.4 22v-9.4h4.2v2.9l3.1-1.8z"/></svg> \ No newline at end of file
diff --git a/assets/images/mega-nav/logo-nomad.svg b/assets/images/mega-nav/logo-nomad.svg
new file mode 100644
index 0000000..f183d38
--- /dev/null
+++ b/assets/images/mega-nav/logo-nomad.svg
@@ -0,0 +1 @@
<svg width="57" height="66" viewBox="0 0 57 66" xmlns="http://www.w3.org/2000/svg"><desc>HashiCorp Nomad</desc><g fill="none" fill-rule="evenodd"><path fill="#1F9967" d="M40.8578856 24.9296462v10.7592401l-7.4452708 4.3258801-5.2064569-3.2420601v28.0843803l.1476346.00282 28.0599249-16.2150001V16.2543862l-.5241964-.00188"/><path fill="#25BA81" d="M27.9744276-.000282L-.0004672 16.2617182l18.8720047 11.1493401 3.8198127-2.3377801 9.2766877 5.2047801V19.4652382l8.8898477-5.3739801v10.8382001l15.5558318-8.67432v-.04042"/><path fill="#25BA81" d="M0 16.2615302v32.3830003l28.2066251 16.2131201V36.7723303l-3.7600112-2.16012v10.8034201l-8.4628285 5.3993601V29.2025103l3.2087173-1.9881L.16538817 16.2568302"/></g></svg>
diff --git a/assets/images/mega-nav/logo-packer.svg b/assets/images/mega-nav/logo-packer.svg
new file mode 100644
index 0000000..fd820c9
--- /dev/null
+++ b/assets/images/mega-nav/logo-packer.svg
@@ -0,0 +1 @@
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="42" height="66" viewBox="0 0 42 66"><style>.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#1DAEFF}.st1{fill:#1D94DD}</style><path class="st0" d="M1 8.5l20.9 12.1V65L1 53z"/><path class="st1" d="M32.2 14.1L9.5 1v9.1L24.9 19v27.2l7.3 4.2c4.5 2.6 8.2 1 8.2-3.4V27c-.1-4.6-3.7-10.4-8.2-12.9z"/></svg>
diff --git a/assets/images/mega-nav/logo-terraform.svg b/assets/images/mega-nav/logo-terraform.svg
new file mode 100644
index 0000000..c14cd55
--- /dev/null
+++ b/assets/images/mega-nav/logo-terraform.svg
@@ -0,0 +1 @@
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="58" height="66" viewBox="0 0 58 66"><style>.st0,.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#5c4ee5}.st1{fill:#4040b2}</style><path class="st0" d="M20.4 12.3l17.5 10.1v20.2L20.4 32.5z"/><path class="st1" d="M39.8 22.4v20.2l17.5-10.1V12.3z"/><path class="st0" d="M1 1v20.2l17.5 10.1V11.1zm19.4 53.9L37.9 65V44.8L20.4 34.7z"/></svg>
diff --git a/assets/images/mega-nav/logo-vagrant.svg b/assets/images/mega-nav/logo-vagrant.svg
new file mode 100644
index 0000000..e57ea43
--- /dev/null
+++ b/assets/images/mega-nav/logo-vagrant.svg
@@ -0,0 +1 @@
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="64" height="66" viewBox="0 0 64 66"><style>.st0{fill:#104eb2}.st1{fill:#1563ff}</style><path class="st0" d="M62.9 11.8V5.9l-14.1 8.2v5L37.7 44.4 32 47.2V65l12-7z"/><path class="st1" d="M9.4 32.5L20 58.1 32 65V47.2l-5.7-2.8-11.2-25.3v-5L1 5.9V12l5.6 13.5M40.4 9.2v5.7l-3 6.5-2.9 7.1-2.5 6.1v7l5.7 2.8 11.1-25.3v-5z"/><path class="st0" d="M32 34.6l-8.5-19.7V9.3l-8.4 4.8v5l11.2 25.3 5.7-2.8z"/><path class="st1" d="M32 41.1l-6 3.3 5.6 3.3 6.1-3.3z"/><path class="st0" d="M9.1 1L1 5.9l14.1 8.2 8.4-4.9z"/><path class="st1" d="M54.1 1l8.8 4.9-14.1 8.2-8.4-4.9z"/></svg> \ No newline at end of file
diff --git a/assets/images/mega-nav/logo-vault.svg b/assets/images/mega-nav/logo-vault.svg
new file mode 100644
index 0000000..12dfc59
--- /dev/null
+++ b/assets/images/mega-nav/logo-vault.svg
@@ -0,0 +1 @@
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="60" height="66" viewBox="0 0 60 66"><style>.st0{fill:#fff}</style><path d="M59 4L29.9 62 1 4z"/><path class="st0" d="M23.3 15.6h3.4V19h-3.4zm5 0h3.4V19h-3.4zm5 0h3.4V19h-3.4zm-10 5.1h3.4v3.4h-3.4zm5 0h3.4v3.4h-3.4zm5 0h3.4v3.4h-3.4zm-10 5h3.4v3.4h-3.4zm5 0h3.4v3.4h-3.4zm0 5.1h3.4v3.4h-3.4zm5.1-5.1h3.4v3.4h-3.4z"/></svg> \ No newline at end of file
diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js
new file mode 100644
index 0000000..53004d2
--- /dev/null
+++ b/assets/javascripts/application.js
@@ -0,0 +1,9567 @@
1/*
2Turbolinks 5.2.0
3Copyright © 2018 Basecamp, LLC
4 */
5
6(function(){var t=this;(function(){(function(){this.Turbolinks={supported:function(){return null!=window.history.pushState&&null!=window.requestAnimationFrame&&null!=window.addEventListener}(),visit:function(t,r){return e.controller.visit(t,r)},clearCache:function(){return e.controller.clearCache()},setProgressBarDelay:function(t){return e.controller.setProgressBarDelay(t)}}}).call(this)}).call(t);var e=t.Turbolinks;(function(){(function(){var t,r,n,o=[].slice;e.copyObject=function(t){var e,r,n;r={};for(e in t)n=t[e],r[e]=n;return r},e.closest=function(e,r){return t.call(e,r)},t=function(){var t,e;return t=document.documentElement,null!=(e=t.closest)?e:function(t){var e;for(e=this;e;){if(e.nodeType===Node.ELEMENT_NODE&&r.call(e,t))return e;e=e.parentNode}}}(),e.defer=function(t){return setTimeout(t,1)},e.throttle=function(t){var e;return e=null,function(){var r;return r=1<=arguments.length?o.call(arguments,0):[],null!=e?e:e=requestAnimationFrame(function(n){return function(){return e=null,t.apply(n,r)}}(this))}},e.dispatch=function(t,e){var r,o,i,s,a,u;return a=null!=e?e:{},u=a.target,r=a.cancelable,o=a.data,i=document.createEvent("Events"),i.initEvent(t,!0,r===!0),i.data=null!=o?o:{},i.cancelable&&!n&&(s=i.preventDefault,i.preventDefault=function(){return this.defaultPrevented||Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}}),s.call(this)}),(null!=u?u:document).dispatchEvent(i),i},n=function(){var t;return t=document.createEvent("Events"),t.initEvent("test",!0,!0),t.preventDefault(),t.defaultPrevented}(),e.match=function(t,e){return r.call(t,e)},r=function(){var t,e,r,n;return t=document.documentElement,null!=(e=null!=(r=null!=(n=t.matchesSelector)?n:t.webkitMatchesSelector)?r:t.msMatchesSelector)?e:t.mozMatchesSelector}(),e.uuid=function(){var t,e,r;for(r="",t=e=1;36>=e;t=++e)r+=9===t||14===t||19===t||24===t?"-":15===t?"4":20===t?(Math.floor(4*Math.random())+8).toString(16):Math.floor(15*Math.random()).toString(16);return r}}).call(this),function(){e.Location=function(){function t(t){var e,r;null==t&&(t=""),r=document.createElement("a"),r.href=t.toString(),this.absoluteURL=r.href,e=r.hash.length,2>e?this.requestURL=this.absoluteURL:(this.requestURL=this.absoluteURL.slice(0,-e),this.anchor=r.hash.slice(1))}var e,r,n,o;return t.wrap=function(t){return t instanceof this?t:new this(t)},t.prototype.getOrigin=function(){return this.absoluteURL.split("/",3).join("/")},t.prototype.getPath=function(){var t,e;return null!=(t=null!=(e=this.requestURL.match(/\/\/[^\/]*(\/[^?;]*)/))?e[1]:void 0)?t:"/"},t.prototype.getPathComponents=function(){return this.getPath().split("/").slice(1)},t.prototype.getLastPathComponent=function(){return this.getPathComponents().slice(-1)[0]},t.prototype.getExtension=function(){var t,e;return null!=(t=null!=(e=this.getLastPathComponent().match(/\.[^.]*$/))?e[0]:void 0)?t:""},t.prototype.isHTML=function(){return this.getExtension().match(/^(?:|\.(?:htm|html|xhtml))$/)},t.prototype.isPrefixedBy=function(t){var e;return e=r(t),this.isEqualTo(t)||o(this.absoluteURL,e)},t.prototype.isEqualTo=function(t){return this.absoluteURL===(null!=t?t.absoluteURL:void 0)},t.prototype.toCacheKey=function(){return this.requestURL},t.prototype.toJSON=function(){return this.absoluteURL},t.prototype.toString=function(){return this.absoluteURL},t.prototype.valueOf=function(){return this.absoluteURL},r=function(t){return e(t.getOrigin()+t.getPath())},e=function(t){return n(t,"/")?t:t+"/"},o=function(t,e){return t.slice(0,e.length)===e},n=function(t,e){return t.slice(-e.length)===e},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.HttpRequest=function(){function r(r,n,o){this.delegate=r,this.requestCanceled=t(this.requestCanceled,this),this.requestTimedOut=t(this.requestTimedOut,this),this.requestFailed=t(this.requestFailed,this),this.requestLoaded=t(this.requestLoaded,this),this.requestProgressed=t(this.requestProgressed,this),this.url=e.Location.wrap(n).requestURL,this.referrer=e.Location.wrap(o).absoluteURL,this.createXHR()}return r.NETWORK_FAILURE=0,r.TIMEOUT_FAILURE=-1,r.timeout=60,r.prototype.send=function(){var t;return this.xhr&&!this.sent?(this.notifyApplicationBeforeRequestStart(),this.setProgress(0),this.xhr.send(),this.sent=!0,"function"==typeof(t=this.delegate).requestStarted?t.requestStarted():void 0):void 0},r.prototype.cancel=function(){return this.xhr&&this.sent?this.xhr.abort():void 0},r.prototype.requestProgressed=function(t){return t.lengthComputable?this.setProgress(t.loaded/t.total):void 0},r.prototype.requestLoaded=function(){return this.endRequest(function(t){return function(){var e;return 200<=(e=t.xhr.status)&&300>e?t.delegate.requestCompletedWithResponse(t.xhr.responseText,t.xhr.getResponseHeader("Turbolinks-Location")):(t.failed=!0,t.delegate.requestFailedWithStatusCode(t.xhr.status,t.xhr.responseText))}}(this))},r.prototype.requestFailed=function(){return this.endRequest(function(t){return function(){return t.failed=!0,t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE)}}(this))},r.prototype.requestTimedOut=function(){return this.endRequest(function(t){return function(){return t.failed=!0,t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE)}}(this))},r.prototype.requestCanceled=function(){return this.endRequest()},r.prototype.notifyApplicationBeforeRequestStart=function(){return e.dispatch("turbolinks:request-start",{data:{url:this.url,xhr:this.xhr}})},r.prototype.notifyApplicationAfterRequestEnd=function(){return e.dispatch("turbolinks:request-end",{data:{url:this.url,xhr:this.xhr}})},r.prototype.createXHR=function(){return this.xhr=new XMLHttpRequest,this.xhr.open("GET",this.url,!0),this.xhr.timeout=1e3*this.constructor.timeout,this.xhr.setRequestHeader("Accept","text/html, application/xhtml+xml"),this.xhr.setRequestHeader("Turbolinks-Referrer",this.referrer),this.xhr.onprogress=this.requestProgressed,this.xhr.onload=this.requestLoaded,this.xhr.onerror=this.requestFailed,this.xhr.ontimeout=this.requestTimedOut,this.xhr.onabort=this.requestCanceled},r.prototype.endRequest=function(t){return this.xhr?(this.notifyApplicationAfterRequestEnd(),null!=t&&t.call(this),this.destroy()):void 0},r.prototype.setProgress=function(t){var e;return this.progress=t,"function"==typeof(e=this.delegate).requestProgressed?e.requestProgressed(this.progress):void 0},r.prototype.destroy=function(){var t;return this.setProgress(1),"function"==typeof(t=this.delegate).requestFinished&&t.requestFinished(),this.delegate=null,this.xhr=null},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.ProgressBar=function(){function e(){this.trickle=t(this.trickle,this),this.stylesheetElement=this.createStylesheetElement(),this.progressElement=this.createProgressElement()}var r;return r=300,e.defaultCSS=".turbolinks-progress-bar {\n position: fixed;\n display: block;\n top: 0;\n left: 0;\n height: 3px;\n background: #0076ff;\n z-index: 9999;\n transition: width "+r+"ms ease-out, opacity "+r/2+"ms "+r/2+"ms ease-in;\n transform: translate3d(0, 0, 0);\n}",e.prototype.show=function(){return this.visible?void 0:(this.visible=!0,this.installStylesheetElement(),this.installProgressElement(),this.startTrickling())},e.prototype.hide=function(){return this.visible&&!this.hiding?(this.hiding=!0,this.fadeProgressElement(function(t){return function(){return t.uninstallProgressElement(),t.stopTrickling(),t.visible=!1,t.hiding=!1}}(this))):void 0},e.prototype.setValue=function(t){return this.value=t,this.refresh()},e.prototype.installStylesheetElement=function(){return document.head.insertBefore(this.stylesheetElement,document.head.firstChild)},e.prototype.installProgressElement=function(){return this.progressElement.style.width=0,this.progressElement.style.opacity=1,document.documentElement.insertBefore(this.progressElement,document.body),this.refresh()},e.prototype.fadeProgressElement=function(t){return this.progressElement.style.opacity=0,setTimeout(t,1.5*r)},e.prototype.uninstallProgressElement=function(){return this.progressElement.parentNode?document.documentElement.removeChild(this.progressElement):void 0},e.prototype.startTrickling=function(){return null!=this.trickleInterval?this.trickleInterval:this.trickleInterval=setInterval(this.trickle,r)},e.prototype.stopTrickling=function(){return clearInterval(this.trickleInterval),this.trickleInterval=null},e.prototype.trickle=function(){return this.setValue(this.value+Math.random()/100)},e.prototype.refresh=function(){return requestAnimationFrame(function(t){return function(){return t.progressElement.style.width=10+90*t.value+"%"}}(this))},e.prototype.createStylesheetElement=function(){var t;return t=document.createElement("style"),t.type="text/css",t.textContent=this.constructor.defaultCSS,t},e.prototype.createProgressElement=function(){var t;return t=document.createElement("div"),t.className="turbolinks-progress-bar",t},e}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.BrowserAdapter=function(){function r(r){this.controller=r,this.showProgressBar=t(this.showProgressBar,this),this.progressBar=new e.ProgressBar}var n,o,i;return i=e.HttpRequest,n=i.NETWORK_FAILURE,o=i.TIMEOUT_FAILURE,r.prototype.visitProposedToLocationWithAction=function(t,e){return this.controller.startVisitToLocationWithAction(t,e)},r.prototype.visitStarted=function(t){return t.issueRequest(),t.changeHistory(),t.loadCachedSnapshot()},r.prototype.visitRequestStarted=function(t){return this.progressBar.setValue(0),t.hasCachedSnapshot()||"restore"!==t.action?this.showProgressBarAfterDelay():this.showProgressBar()},r.prototype.visitRequestProgressed=function(t){return this.progressBar.setValue(t.progress)},r.prototype.visitRequestCompleted=function(t){return t.loadResponse()},r.prototype.visitRequestFailedWithStatusCode=function(t,e){switch(e){case n:case o:return this.reload();default:return t.loadResponse()}},r.prototype.visitRequestFinished=function(t){return this.hideProgressBar()},r.prototype.visitCompleted=function(t){return t.followRedirect()},r.prototype.pageInvalidated=function(){return this.reload()},r.prototype.showProgressBarAfterDelay=function(){return this.progressBarTimeout=setTimeout(this.showProgressBar,this.controller.progressBarDelay)},r.prototype.showProgressBar=function(){return this.progressBar.show()},r.prototype.hideProgressBar=function(){return this.progressBar.hide(),clearTimeout(this.progressBarTimeout)},r.prototype.reload=function(){return window.location.reload()},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.History=function(){function r(e){this.delegate=e,this.onPageLoad=t(this.onPageLoad,this),this.onPopState=t(this.onPopState,this)}return r.prototype.start=function(){return this.started?void 0:(addEventListener("popstate",this.onPopState,!1),addEventListener("load",this.onPageLoad,!1),this.started=!0)},r.prototype.stop=function(){return this.started?(removeEventListener("popstate",this.onPopState,!1),removeEventListener("load",this.onPageLoad,!1),this.started=!1):void 0},r.prototype.push=function(t,r){return t=e.Location.wrap(t),this.update("push",t,r)},r.prototype.replace=function(t,r){return t=e.Location.wrap(t),this.update("replace",t,r)},r.prototype.onPopState=function(t){var r,n,o,i;return this.shouldHandlePopState()&&(i=null!=(n=t.state)?n.turbolinks:void 0)?(r=e.Location.wrap(window.location),o=i.restorationIdentifier,this.delegate.historyPoppedToLocationWithRestorationIdentifier(r,o)):void 0},r.prototype.onPageLoad=function(t){return e.defer(function(t){return function(){return t.pageLoaded=!0}}(this))},r.prototype.shouldHandlePopState=function(){return this.pageIsLoaded()},r.prototype.pageIsLoaded=function(){return this.pageLoaded||"complete"===document.readyState},r.prototype.update=function(t,e,r){var n;return n={turbolinks:{restorationIdentifier:r}},history[t+"State"](n,null,e)},r}()}.call(this),function(){e.HeadDetails=function(){function t(t){var e,r,n,s,a,u;for(this.elements={},n=0,a=t.length;a>n;n++)u=t[n],u.nodeType===Node.ELEMENT_NODE&&(s=u.outerHTML,r=null!=(e=this.elements)[s]?e[s]:e[s]={type:i(u),tracked:o(u),elements:[]},r.elements.push(u))}var e,r,n,o,i;return t.fromHeadElement=function(t){var e;return new this(null!=(e=null!=t?t.childNodes:void 0)?e:[])},t.prototype.hasElementWithKey=function(t){return t in this.elements},t.prototype.getTrackedElementSignature=function(){var t,e;return function(){var r,n;r=this.elements,n=[];for(t in r)e=r[t].tracked,e&&n.push(t);return n}.call(this).join("")},t.prototype.getScriptElementsNotInDetails=function(t){return this.getElementsMatchingTypeNotInDetails("script",t)},t.prototype.getStylesheetElementsNotInDetails=function(t){return this.getElementsMatchingTypeNotInDetails("stylesheet",t)},t.prototype.getElementsMatchingTypeNotInDetails=function(t,e){var r,n,o,i,s,a;o=this.elements,s=[];for(n in o)i=o[n],a=i.type,r=i.elements,a!==t||e.hasElementWithKey(n)||s.push(r[0]);return s},t.prototype.getProvisionalElements=function(){var t,e,r,n,o,i,s;r=[],n=this.elements;for(e in n)o=n[e],s=o.type,i=o.tracked,t=o.elements,null!=s||i?t.length>1&&r.push.apply(r,t.slice(1)):r.push.apply(r,t);return r},t.prototype.getMetaValue=function(t){var e;return null!=(e=this.findMetaElementByName(t))?e.getAttribute("content"):void 0},t.prototype.findMetaElementByName=function(t){var r,n,o,i;r=void 0,i=this.elements;for(o in i)n=i[o].elements,e(n[0],t)&&(r=n[0]);return r},i=function(t){return r(t)?"script":n(t)?"stylesheet":void 0},o=function(t){return"reload"===t.getAttribute("data-turbolinks-track")},r=function(t){var e;return e=t.tagName.toLowerCase(),"script"===e},n=function(t){var e;return e=t.tagName.toLowerCase(),"style"===e||"link"===e&&"stylesheet"===t.getAttribute("rel")},e=function(t,e){var r;return r=t.tagName.toLowerCase(),"meta"===r&&t.getAttribute("name")===e},t}()}.call(this),function(){e.Snapshot=function(){function t(t,e){this.headDetails=t,this.bodyElement=e}return t.wrap=function(t){return t instanceof this?t:"string"==typeof t?this.fromHTMLString(t):this.fromHTMLElement(t)},t.fromHTMLString=function(t){var e;return e=document.createElement("html"),e.innerHTML=t,this.fromHTMLElement(e)},t.fromHTMLElement=function(t){var r,n,o,i;return o=t.querySelector("head"),r=null!=(i=t.querySelector("body"))?i:document.createElement("body"),n=e.HeadDetails.fromHeadElement(o),new this(n,r)},t.prototype.clone=function(){return new this.constructor(this.headDetails,this.bodyElement.cloneNode(!0))},t.prototype.getRootLocation=function(){var t,r;return r=null!=(t=this.getSetting("root"))?t:"/",new e.Location(r)},t.prototype.getCacheControlValue=function(){return this.getSetting("cache-control")},t.prototype.getElementForAnchor=function(t){try{return this.bodyElement.querySelector("[id='"+t+"'], a[name='"+t+"']")}catch(e){}},t.prototype.getPermanentElements=function(){return this.bodyElement.querySelectorAll("[id][data-turbolinks-permanent]")},t.prototype.getPermanentElementById=function(t){return this.bodyElement.querySelector("#"+t+"[data-turbolinks-permanent]")},t.prototype.getPermanentElementsPresentInSnapshot=function(t){var e,r,n,o,i;for(o=this.getPermanentElements(),i=[],r=0,n=o.length;n>r;r++)e=o[r],t.getPermanentElementById(e.id)&&i.push(e);return i},t.prototype.findFirstAutofocusableElement=function(){return this.bodyElement.querySelector("[autofocus]")},t.prototype.hasAnchor=function(t){return null!=this.getElementForAnchor(t)},t.prototype.isPreviewable=function(){return"no-preview"!==this.getCacheControlValue()},t.prototype.isCacheable=function(){return"no-cache"!==this.getCacheControlValue()},t.prototype.isVisitable=function(){return"reload"!==this.getSetting("visit-control")},t.prototype.getSetting=function(t){return this.headDetails.getMetaValue("turbolinks-"+t)},t}()}.call(this),function(){var t=[].slice;e.Renderer=function(){function e(){}var r;return e.render=function(){var e,r,n,o;return n=arguments[0],r=arguments[1],e=3<=arguments.length?t.call(arguments,2):[],o=function(t,e,r){r.prototype=t.prototype;var n=new r,o=t.apply(n,e);return Object(o)===o?o:n}(this,e,function(){}),o.delegate=n,o.render(r),o},e.prototype.renderView=function(t){return this.delegate.viewWillRender(this.newBody),t(),this.delegate.viewRendered(this.newBody)},e.prototype.invalidateView=function(){return this.delegate.viewInvalidated()},e.prototype.createScriptElement=function(t){var e;return"false"===t.getAttribute("data-turbolinks-eval")?t:(e=document.createElement("script"),e.textContent=t.textContent,e.async=!1,r(e,t),e)},r=function(t,e){var r,n,o,i,s,a,u;for(i=e.attributes,a=[],r=0,n=i.length;n>r;r++)s=i[r],o=s.name,u=s.value,a.push(t.setAttribute(o,u));return a},e}()}.call(this),function(){var t,r,n=function(t,e){function r(){this.constructor=t}for(var n in e)o.call(e,n)&&(t[n]=e[n]);return r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype,t},o={}.hasOwnProperty;e.SnapshotRenderer=function(e){function o(t,e,r){this.currentSnapshot=t,this.newSnapshot=e,this.isPreview=r,this.currentHeadDetails=this.currentSnapshot.headDetails,this.newHeadDetails=this.newSnapshot.headDetails,this.currentBody=this.currentSnapshot.bodyElement,this.newBody=this.newSnapshot.bodyElement}return n(o,e),o.prototype.render=function(t){return this.shouldRender()?(this.mergeHead(),this.renderView(function(e){return function(){return e.replaceBody(),e.isPreview||e.focusFirstAutofocusableElement(),t()}}(this))):this.invalidateView()},o.prototype.mergeHead=function(){return this.copyNewHeadStylesheetElements(),this.copyNewHeadScriptElements(),this.removeCurrentHeadProvisionalElements(),this.copyNewHeadProvisionalElements()},o.prototype.replaceBody=function(){var t;return t=this.relocateCurrentBodyPermanentElements(),this.activateNewBodyScriptElements(),this.assignNewBody(),this.replacePlaceholderElementsWithClonedPermanentElements(t)},o.prototype.shouldRender=function(){return this.newSnapshot.isVisitable()&&this.trackedElementsAreIdentical()},o.prototype.trackedElementsAreIdentical=function(){return this.currentHeadDetails.getTrackedElementSignature()===this.newHeadDetails.getTrackedElementSignature()},o.prototype.copyNewHeadStylesheetElements=function(){var t,e,r,n,o;for(n=this.getNewHeadStylesheetElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(t));return o},o.prototype.copyNewHeadScriptElements=function(){var t,e,r,n,o;for(n=this.getNewHeadScriptElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(this.createScriptElement(t)));return o},o.prototype.removeCurrentHeadProvisionalElements=function(){var t,e,r,n,o;for(n=this.getCurrentHeadProvisionalElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.removeChild(t));return o},o.prototype.copyNewHeadProvisionalElements=function(){var t,e,r,n,o;for(n=this.getNewHeadProvisionalElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(t));return o},o.prototype.relocateCurrentBodyPermanentElements=function(){var e,n,o,i,s,a,u;for(a=this.getCurrentBodyPermanentElements(),u=[],e=0,n=a.length;n>e;e++)i=a[e],s=t(i),o=this.newSnapshot.getPermanentElementById(i.id),r(i,s.element),r(o,i),u.push(s);return u},o.prototype.replacePlaceholderElementsWithClonedPermanentElements=function(t){var e,n,o,i,s,a,u;for(u=[],o=0,i=t.length;i>o;o++)a=t[o],n=a.element,s=a.permanentElement,e=s.cloneNode(!0),u.push(r(n,e));return u},o.prototype.activateNewBodyScriptElements=function(){var t,e,n,o,i,s;for(i=this.getNewBodyScriptElements(),s=[],e=0,o=i.length;o>e;e++)n=i[e],t=this.createScriptElement(n),s.push(r(n,t));return s},o.prototype.assignNewBody=function(){return document.body=this.newBody},o.prototype.focusFirstAutofocusableElement=function(){var t;return null!=(t=this.newSnapshot.findFirstAutofocusableElement())?t.focus():void 0},o.prototype.getNewHeadStylesheetElements=function(){return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails)},o.prototype.getNewHeadScriptElements=function(){return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails)},o.prototype.getCurrentHeadProvisionalElements=function(){return this.currentHeadDetails.getProvisionalElements()},o.prototype.getNewHeadProvisionalElements=function(){return this.newHeadDetails.getProvisionalElements()},o.prototype.getCurrentBodyPermanentElements=function(){return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot)},o.prototype.getNewBodyScriptElements=function(){return this.newBody.querySelectorAll("script")},o}(e.Renderer),t=function(t){var e;return e=document.createElement("meta"),e.setAttribute("name","turbolinks-permanent-placeholder"),e.setAttribute("content",t.id),{element:e,permanentElement:t}},r=function(t,e){var r;return(r=t.parentNode)?r.replaceChild(e,t):void 0}}.call(this),function(){var t=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;e.ErrorRenderer=function(e){function r(t){var e;e=document.createElement("html"),e.innerHTML=t,this.newHead=e.querySelector("head"),this.newBody=e.querySelector("body")}return t(r,e),r.prototype.render=function(t){return this.renderView(function(e){return function(){return e.replaceHeadAndBody(),e.activateBodyScriptElements(),t()}}(this))},r.prototype.replaceHeadAndBody=function(){var t,e;return e=document.head,t=document.body,e.parentNode.replaceChild(this.newHead,e),t.parentNode.replaceChild(this.newBody,t)},r.prototype.activateBodyScriptElements=function(){var t,e,r,n,o,i;for(n=this.getScriptElements(),i=[],e=0,r=n.length;r>e;e++)o=n[e],t=this.createScriptElement(o),i.push(o.parentNode.replaceChild(t,o));return i},r.prototype.getScriptElements=function(){return document.documentElement.querySelectorAll("script")},r}(e.Renderer)}.call(this),function(){e.View=function(){function t(t){this.delegate=t,this.htmlElement=document.documentElement}return t.prototype.getRootLocation=function(){return this.getSnapshot().getRootLocation()},t.prototype.getElementForAnchor=function(t){return this.getSnapshot().getElementForAnchor(t)},t.prototype.getSnapshot=function(){return e.Snapshot.fromHTMLElement(this.htmlElement)},t.prototype.render=function(t,e){var r,n,o;return o=t.snapshot,r=t.error,n=t.isPreview,this.markAsPreview(n),null!=o?this.renderSnapshot(o,n,e):this.renderError(r,e)},t.prototype.markAsPreview=function(t){return t?this.htmlElement.setAttribute("data-turbolinks-preview",""):this.htmlElement.removeAttribute("data-turbolinks-preview")},t.prototype.renderSnapshot=function(t,r,n){return e.SnapshotRenderer.render(this.delegate,n,this.getSnapshot(),e.Snapshot.wrap(t),r)},t.prototype.renderError=function(t,r){return e.ErrorRenderer.render(this.delegate,r,t)},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.ScrollManager=function(){function r(r){this.delegate=r,this.onScroll=t(this.onScroll,this),this.onScroll=e.throttle(this.onScroll)}return r.prototype.start=function(){return this.started?void 0:(addEventListener("scroll",this.onScroll,!1),this.onScroll(),this.started=!0)},r.prototype.stop=function(){return this.started?(removeEventListener("scroll",this.onScroll,!1),this.started=!1):void 0},r.prototype.scrollToElement=function(t){return t.scrollIntoView()},r.prototype.scrollToPosition=function(t){var e,r;return e=t.x,r=t.y,window.scrollTo(e,r)},r.prototype.onScroll=function(t){return this.updatePosition({x:window.pageXOffset,y:window.pageYOffset})},r.prototype.updatePosition=function(t){var e;return this.position=t,null!=(e=this.delegate)?e.scrollPositionChanged(this.position):void 0},r}()}.call(this),function(){e.SnapshotCache=function(){function t(t){this.size=t,this.keys=[],this.snapshots={}}var r;return t.prototype.has=function(t){var e;return e=r(t),e in this.snapshots},t.prototype.get=function(t){var e;if(this.has(t))return e=this.read(t),this.touch(t),e},t.prototype.put=function(t,e){return this.write(t,e),this.touch(t),e},t.prototype.read=function(t){var e;return e=r(t),this.snapshots[e]},t.prototype.write=function(t,e){var n;return n=r(t),this.snapshots[n]=e},t.prototype.touch=function(t){var e,n;return n=r(t),e=this.keys.indexOf(n),e>-1&&this.keys.splice(e,1),this.keys.unshift(n),this.trim()},t.prototype.trim=function(){var t,e,r,n,o;for(n=this.keys.splice(this.size),o=[],t=0,r=n.length;r>t;t++)e=n[t],o.push(delete this.snapshots[e]);return o},r=function(t){return e.Location.wrap(t).toCacheKey()},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.Visit=function(){function r(r,n,o){this.controller=r,this.action=o,this.performScroll=t(this.performScroll,this),this.identifier=e.uuid(),this.location=e.Location.wrap(n),this.adapter=this.controller.adapter,this.state="initialized",this.timingMetrics={}}var n;return r.prototype.start=function(){return"initialized"===this.state?(this.recordTimingMetric("visitStart"),this.state="started",this.adapter.visitStarted(this)):void 0},r.prototype.cancel=function(){var t;return"started"===this.state?(null!=(t=this.request)&&t.cancel(),this.cancelRender(),this.state="canceled"):void 0},r.prototype.complete=function(){var t;return"started"===this.state?(this.recordTimingMetric("visitEnd"),this.state="completed","function"==typeof(t=this.adapter).visitCompleted&&t.visitCompleted(this),this.controller.visitCompleted(this)):void 0},r.prototype.fail=function(){var t;return"started"===this.state?(this.state="failed","function"==typeof(t=this.adapter).visitFailed?t.visitFailed(this):void 0):void 0},r.prototype.changeHistory=function(){var t,e;return this.historyChanged?void 0:(t=this.location.isEqualTo(this.referrer)?"replace":this.action,e=n(t),this.controller[e](this.location,this.restorationIdentifier),this.historyChanged=!0)},r.prototype.issueRequest=function(){return this.shouldIssueRequest()&&null==this.request?(this.progress=0,this.request=new e.HttpRequest(this,this.location,this.referrer),this.request.send()):void 0},r.prototype.getCachedSnapshot=function(){var t;return!(t=this.controller.getCachedSnapshotForLocation(this.location))||null!=this.location.anchor&&!t.hasAnchor(this.location.anchor)||"restore"!==this.action&&!t.isPreviewable()?void 0:t},r.prototype.hasCachedSnapshot=function(){return null!=this.getCachedSnapshot()},r.prototype.loadCachedSnapshot=function(){var t,e;return(e=this.getCachedSnapshot())?(t=this.shouldIssueRequest(),this.render(function(){var r;return this.cacheSnapshot(),this.controller.render({snapshot:e,isPreview:t},this.performScroll),"function"==typeof(r=this.adapter).visitRendered&&r.visitRendered(this),t?void 0:this.complete()})):void 0},r.prototype.loadResponse=function(){return null!=this.response?this.render(function(){var t,e;return this.cacheSnapshot(),this.request.failed?(this.controller.render({error:this.response},this.performScroll),"function"==typeof(t=this.adapter).visitRendered&&t.visitRendered(this),this.fail()):(this.controller.render({snapshot:this.response},this.performScroll),"function"==typeof(e=this.adapter).visitRendered&&e.visitRendered(this),this.complete())}):void 0},r.prototype.followRedirect=function(){return this.redirectedToLocation&&!this.followedRedirect?(this.location=this.redirectedToLocation,this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation,this.restorationIdentifier),this.followedRedirect=!0):void 0},r.prototype.requestStarted=function(){var t;return this.recordTimingMetric("requestStart"),"function"==typeof(t=this.adapter).visitRequestStarted?t.visitRequestStarted(this):void 0},r.prototype.requestProgressed=function(t){var e;return this.progress=t,"function"==typeof(e=this.adapter).visitRequestProgressed?e.visitRequestProgressed(this):void 0},r.prototype.requestCompletedWithResponse=function(t,r){return this.response=t,null!=r&&(this.redirectedToLocation=e.Location.wrap(r)),this.adapter.visitRequestCompleted(this)},r.prototype.requestFailedWithStatusCode=function(t,e){return this.response=e,this.adapter.visitRequestFailedWithStatusCode(this,t)},r.prototype.requestFinished=function(){var t;return this.recordTimingMetric("requestEnd"),"function"==typeof(t=this.adapter).visitRequestFinished?t.visitRequestFinished(this):void 0},r.prototype.performScroll=function(){return this.scrolled?void 0:("restore"===this.action?this.scrollToRestoredPosition()||this.scrollToTop():this.scrollToAnchor()||this.scrollToTop(),this.scrolled=!0)},r.prototype.scrollToRestoredPosition=function(){var t,e;return t=null!=(e=this.restorationData)?e.scrollPosition:void 0,null!=t?(this.controller.scrollToPosition(t),!0):void 0},r.prototype.scrollToAnchor=function(){return null!=this.location.anchor?(this.controller.scrollToAnchor(this.location.anchor),!0):void 0},r.prototype.scrollToTop=function(){return this.controller.scrollToPosition({x:0,y:0})},r.prototype.recordTimingMetric=function(t){var e;return null!=(e=this.timingMetrics)[t]?e[t]:e[t]=(new Date).getTime()},r.prototype.getTimingMetrics=function(){return e.copyObject(this.timingMetrics)},n=function(t){switch(t){case"replace":return"replaceHistoryWithLocationAndRestorationIdentifier";case"advance":case"restore":return"pushHistoryWithLocationAndRestorationIdentifier"}},r.prototype.shouldIssueRequest=function(){return"restore"===this.action?!this.hasCachedSnapshot():!0},r.prototype.cacheSnapshot=function(){return this.snapshotCached?void 0:(this.controller.cacheSnapshot(),this.snapshotCached=!0)},r.prototype.render=function(t){return this.cancelRender(),this.frame=requestAnimationFrame(function(e){return function(){return e.frame=null,t.call(e)}}(this))},r.prototype.cancelRender=function(){return this.frame?cancelAnimationFrame(this.frame):void 0},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.Controller=function(){function r(){this.clickBubbled=t(this.clickBubbled,this),this.clickCaptured=t(this.clickCaptured,this),this.pageLoaded=t(this.pageLoaded,this),this.history=new e.History(this),this.view=new e.View(this),this.scrollManager=new e.ScrollManager(this),this.restorationData={},this.clearCache(),this.setProgressBarDelay(500)}return r.prototype.start=function(){return e.supported&&!this.started?(addEventListener("click",this.clickCaptured,!0),addEventListener("DOMContentLoaded",this.pageLoaded,!1),this.scrollManager.start(),this.startHistory(),this.started=!0,this.enabled=!0):void 0},r.prototype.disable=function(){return this.enabled=!1},r.prototype.stop=function(){return this.started?(removeEventListener("click",this.clickCaptured,!0),removeEventListener("DOMContentLoaded",this.pageLoaded,!1),this.scrollManager.stop(),this.stopHistory(),this.started=!1):void 0},r.prototype.clearCache=function(){return this.cache=new e.SnapshotCache(10)},r.prototype.visit=function(t,r){var n,o;return null==r&&(r={}),t=e.Location.wrap(t),this.applicationAllowsVisitingLocation(t)?this.locationIsVisitable(t)?(n=null!=(o=r.action)?o:"advance",this.adapter.visitProposedToLocationWithAction(t,n)):window.location=t:void 0},r.prototype.startVisitToLocationWithAction=function(t,r,n){var o;return e.supported?(o=this.getRestorationDataForIdentifier(n),this.startVisit(t,r,{restorationData:o})):window.location=t},r.prototype.setProgressBarDelay=function(t){return this.progressBarDelay=t},r.prototype.startHistory=function(){return this.location=e.Location.wrap(window.location),this.restorationIdentifier=e.uuid(),this.history.start(),this.history.replace(this.location,this.restorationIdentifier)},r.prototype.stopHistory=function(){return this.history.stop()},r.prototype.pushHistoryWithLocationAndRestorationIdentifier=function(t,r){return this.restorationIdentifier=r,this.location=e.Location.wrap(t),this.history.push(this.location,this.restorationIdentifier)},r.prototype.replaceHistoryWithLocationAndRestorationIdentifier=function(t,r){return this.restorationIdentifier=r,this.location=e.Location.wrap(t),this.history.replace(this.location,this.restorationIdentifier)},r.prototype.historyPoppedToLocationWithRestorationIdentifier=function(t,r){var n;return this.restorationIdentifier=r,this.enabled?(n=this.getRestorationDataForIdentifier(this.restorationIdentifier),this.startVisit(t,"restore",{restorationIdentifier:this.restorationIdentifier,restorationData:n,historyChanged:!0}),this.location=e.Location.wrap(t)):this.adapter.pageInvalidated()},r.prototype.getCachedSnapshotForLocation=function(t){var e;return null!=(e=this.cache.get(t))?e.clone():void 0},r.prototype.shouldCacheSnapshot=function(){return this.view.getSnapshot().isCacheable();
7},r.prototype.cacheSnapshot=function(){var t,r;return this.shouldCacheSnapshot()?(this.notifyApplicationBeforeCachingSnapshot(),r=this.view.getSnapshot(),t=this.lastRenderedLocation,e.defer(function(e){return function(){return e.cache.put(t,r.clone())}}(this))):void 0},r.prototype.scrollToAnchor=function(t){var e;return(e=this.view.getElementForAnchor(t))?this.scrollToElement(e):this.scrollToPosition({x:0,y:0})},r.prototype.scrollToElement=function(t){return this.scrollManager.scrollToElement(t)},r.prototype.scrollToPosition=function(t){return this.scrollManager.scrollToPosition(t)},r.prototype.scrollPositionChanged=function(t){var e;return e=this.getCurrentRestorationData(),e.scrollPosition=t},r.prototype.render=function(t,e){return this.view.render(t,e)},r.prototype.viewInvalidated=function(){return this.adapter.pageInvalidated()},r.prototype.viewWillRender=function(t){return this.notifyApplicationBeforeRender(t)},r.prototype.viewRendered=function(){return this.lastRenderedLocation=this.currentVisit.location,this.notifyApplicationAfterRender()},r.prototype.pageLoaded=function(){return this.lastRenderedLocation=this.location,this.notifyApplicationAfterPageLoad()},r.prototype.clickCaptured=function(){return removeEventListener("click",this.clickBubbled,!1),addEventListener("click",this.clickBubbled,!1)},r.prototype.clickBubbled=function(t){var e,r,n;return this.enabled&&this.clickEventIsSignificant(t)&&(r=this.getVisitableLinkForNode(t.target))&&(n=this.getVisitableLocationForLink(r))&&this.applicationAllowsFollowingLinkToLocation(r,n)?(t.preventDefault(),e=this.getActionForLink(r),this.visit(n,{action:e})):void 0},r.prototype.applicationAllowsFollowingLinkToLocation=function(t,e){var r;return r=this.notifyApplicationAfterClickingLinkToLocation(t,e),!r.defaultPrevented},r.prototype.applicationAllowsVisitingLocation=function(t){var e;return e=this.notifyApplicationBeforeVisitingLocation(t),!e.defaultPrevented},r.prototype.notifyApplicationAfterClickingLinkToLocation=function(t,r){return e.dispatch("turbolinks:click",{target:t,data:{url:r.absoluteURL},cancelable:!0})},r.prototype.notifyApplicationBeforeVisitingLocation=function(t){return e.dispatch("turbolinks:before-visit",{data:{url:t.absoluteURL},cancelable:!0})},r.prototype.notifyApplicationAfterVisitingLocation=function(t){return e.dispatch("turbolinks:visit",{data:{url:t.absoluteURL}})},r.prototype.notifyApplicationBeforeCachingSnapshot=function(){return e.dispatch("turbolinks:before-cache")},r.prototype.notifyApplicationBeforeRender=function(t){return e.dispatch("turbolinks:before-render",{data:{newBody:t}})},r.prototype.notifyApplicationAfterRender=function(){return e.dispatch("turbolinks:render")},r.prototype.notifyApplicationAfterPageLoad=function(t){return null==t&&(t={}),e.dispatch("turbolinks:load",{data:{url:this.location.absoluteURL,timing:t}})},r.prototype.startVisit=function(t,e,r){var n;return null!=(n=this.currentVisit)&&n.cancel(),this.currentVisit=this.createVisit(t,e,r),this.currentVisit.start(),this.notifyApplicationAfterVisitingLocation(t)},r.prototype.createVisit=function(t,r,n){var o,i,s,a,u;return i=null!=n?n:{},a=i.restorationIdentifier,s=i.restorationData,o=i.historyChanged,u=new e.Visit(this,t,r),u.restorationIdentifier=null!=a?a:e.uuid(),u.restorationData=e.copyObject(s),u.historyChanged=o,u.referrer=this.location,u},r.prototype.visitCompleted=function(t){return this.notifyApplicationAfterPageLoad(t.getTimingMetrics())},r.prototype.clickEventIsSignificant=function(t){return!(t.defaultPrevented||t.target.isContentEditable||t.which>1||t.altKey||t.ctrlKey||t.metaKey||t.shiftKey)},r.prototype.getVisitableLinkForNode=function(t){return this.nodeIsVisitable(t)?e.closest(t,"a[href]:not([target]):not([download])"):void 0},r.prototype.getVisitableLocationForLink=function(t){var r;return r=new e.Location(t.getAttribute("href")),this.locationIsVisitable(r)?r:void 0},r.prototype.getActionForLink=function(t){var e;return null!=(e=t.getAttribute("data-turbolinks-action"))?e:"advance"},r.prototype.nodeIsVisitable=function(t){var r;return(r=e.closest(t,"[data-turbolinks]"))?"false"!==r.getAttribute("data-turbolinks"):!0},r.prototype.locationIsVisitable=function(t){return t.isPrefixedBy(this.view.getRootLocation())&&t.isHTML()},r.prototype.getCurrentRestorationData=function(){return this.getRestorationDataForIdentifier(this.restorationIdentifier)},r.prototype.getRestorationDataForIdentifier=function(t){var e;return null!=(e=this.restorationData)[t]?e[t]:e[t]={}},r}()}.call(this),function(){!function(){var t,e;if((t=e=document.currentScript)&&!e.hasAttribute("data-turbolinks-suppress-warning"))for(;t=t.parentNode;)if(t===document.body)return console.warn("You are loading Turbolinks from a <script> element inside the <body> element. This is probably not what you meant to do!\n\nLoad your application\u2019s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.\n\nFor more information, see: https://github.com/turbolinks/turbolinks#working-with-script-elements\n\n\u2014\u2014\nSuppress this warning by adding a `data-turbolinks-suppress-warning` attribute to: %s",e.outerHTML)}()}.call(this),function(){var t,r,n;e.start=function(){return r()?(null==e.controller&&(e.controller=t()),e.controller.start()):void 0},r=function(){return null==window.Turbolinks&&(window.Turbolinks=e),n()},t=function(){var t;return t=new e.Controller,t.adapter=new e.BrowserAdapter(t),t},n=function(){return window.Turbolinks===e},n()&&e.start()}.call(this)}).call(this),"object"==typeof module&&module.exports?module.exports=e:"function"==typeof define&&define.amd&&define(e)}).call(this);
8/*!
9 * jQuery JavaScript Library v2.1.1
10 * http://jquery.com/
11 *
12 * Includes Sizzle.js
13 * http://sizzlejs.com/
14 *
15 * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
16 * Released under the MIT license
17 * http://jquery.org/license
18 *
19 * Date: 2014-05-01T17:11Z
20 */
21
22
23(function( global, factory ) {
24
25 if ( typeof module === "object" && typeof module.exports === "object" ) {
26 // For CommonJS and CommonJS-like environments where a proper window is present,
27 // execute the factory and get jQuery
28 // For environments that do not inherently posses a window with a document
29 // (such as Node.js), expose a jQuery-making factory as module.exports
30 // This accentuates the need for the creation of a real window
31 // e.g. var jQuery = require("jquery")(window);
32 // See ticket #14549 for more info
33 module.exports = global.document ?
34 factory( global, true ) :
35 function( w ) {
36 if ( !w.document ) {
37 throw new Error( "jQuery requires a window with a document" );
38 }
39 return factory( w );
40 };
41 } else {
42 factory( global );
43 }
44
45// Pass this if window is not defined yet
46}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
47
48// Can't do this because several apps including ASP.NET trace
49// the stack via arguments.caller.callee and Firefox dies if
50// you try to trace through "use strict" call chains. (#13335)
51// Support: Firefox 18+
52//
53
54var arr = [];
55
56var slice = arr.slice;
57
58var concat = arr.concat;
59
60var push = arr.push;
61
62var indexOf = arr.indexOf;
63
64var class2type = {};
65
66var toString = class2type.toString;
67
68var hasOwn = class2type.hasOwnProperty;
69
70var support = {};
71
72
73
74var
75 // Use the correct document accordingly with window argument (sandbox)
76 document = window.document,
77
78 version = "2.1.1",
79
80 // Define a local copy of jQuery
81 jQuery = function( selector, context ) {
82 // The jQuery object is actually just the init constructor 'enhanced'
83 // Need init if jQuery is called (just allow error to be thrown if not included)
84 return new jQuery.fn.init( selector, context );
85 },
86
87 // Support: Android<4.1
88 // Make sure we trim BOM and NBSP
89 rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
90
91 // Matches dashed string for camelizing
92 rmsPrefix = /^-ms-/,
93 rdashAlpha = /-([\da-z])/gi,
94
95 // Used by jQuery.camelCase as callback to replace()
96 fcamelCase = function( all, letter ) {
97 return letter.toUpperCase();
98 };
99
100jQuery.fn = jQuery.prototype = {
101 // The current version of jQuery being used
102 jquery: version,
103
104 constructor: jQuery,
105
106 // Start with an empty selector
107 selector: "",
108
109 // The default length of a jQuery object is 0
110 length: 0,
111
112 toArray: function() {
113 return slice.call( this );
114 },
115
116 // Get the Nth element in the matched element set OR
117 // Get the whole matched element set as a clean array
118 get: function( num ) {
119 return num != null ?
120
121 // Return just the one element from the set
122 ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
123
124 // Return all the elements in a clean array
125 slice.call( this );
126 },
127
128 // Take an array of elements and push it onto the stack
129 // (returning the new matched element set)
130 pushStack: function( elems ) {
131
132 // Build a new jQuery matched element set
133 var ret = jQuery.merge( this.constructor(), elems );
134
135 // Add the old object onto the stack (as a reference)
136 ret.prevObject = this;
137 ret.context = this.context;
138
139 // Return the newly-formed element set
140 return ret;
141 },
142
143 // Execute a callback for every element in the matched set.
144 // (You can seed the arguments with an array of args, but this is
145 // only used internally.)
146 each: function( callback, args ) {
147 return jQuery.each( this, callback, args );
148 },
149
150 map: function( callback ) {
151 return this.pushStack( jQuery.map(this, function( elem, i ) {
152 return callback.call( elem, i, elem );
153 }));
154 },
155
156 slice: function() {
157 return this.pushStack( slice.apply( this, arguments ) );
158 },
159
160 first: function() {
161 return this.eq( 0 );
162 },
163
164 last: function() {
165 return this.eq( -1 );
166 },
167
168 eq: function( i ) {
169 var len = this.length,
170 j = +i + ( i < 0 ? len : 0 );
171 return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
172 },
173
174 end: function() {
175 return this.prevObject || this.constructor(null);
176 },
177
178 // For internal use only.
179 // Behaves like an Array's method, not like a jQuery method.
180 push: push,
181 sort: arr.sort,
182 splice: arr.splice
183};
184
185jQuery.extend = jQuery.fn.extend = function() {
186 var options, name, src, copy, copyIsArray, clone,
187 target = arguments[0] || {},
188 i = 1,
189 length = arguments.length,
190 deep = false;
191
192 // Handle a deep copy situation
193 if ( typeof target === "boolean" ) {
194 deep = target;
195
196 // skip the boolean and the target
197 target = arguments[ i ] || {};
198 i++;
199 }
200
201 // Handle case when target is a string or something (possible in deep copy)
202 if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
203 target = {};
204 }
205
206 // extend jQuery itself if only one argument is passed
207 if ( i === length ) {
208 target = this;
209 i--;
210 }
211
212 for ( ; i < length; i++ ) {
213 // Only deal with non-null/undefined values
214 if ( (options = arguments[ i ]) != null ) {
215 // Extend the base object
216 for ( name in options ) {
217 src = target[ name ];
218 copy = options[ name ];
219
220 // Prevent never-ending loop
221 if ( target === copy ) {
222 continue;
223 }
224
225 // Recurse if we're merging plain objects or arrays
226 if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
227 if ( copyIsArray ) {
228 copyIsArray = false;
229 clone = src && jQuery.isArray(src) ? src : [];
230
231 } else {
232 clone = src && jQuery.isPlainObject(src) ? src : {};
233 }
234
235 // Never move original objects, clone them
236 target[ name ] = jQuery.extend( deep, clone, copy );
237
238 // Don't bring in undefined values
239 } else if ( copy !== undefined ) {
240 target[ name ] = copy;
241 }
242 }
243 }
244 }
245
246 // Return the modified object
247 return target;
248};
249
250jQuery.extend({
251 // Unique for each copy of jQuery on the page
252 expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
253
254 // Assume jQuery is ready without the ready module
255 isReady: true,
256
257 error: function( msg ) {
258 throw new Error( msg );
259 },
260
261 noop: function() {},
262
263 // See test/unit/core.js for details concerning isFunction.
264 // Since version 1.3, DOM methods and functions like alert
265 // aren't supported. They return false on IE (#2968).
266 isFunction: function( obj ) {
267 return jQuery.type(obj) === "function";
268 },
269
270 isArray: Array.isArray,
271
272 isWindow: function( obj ) {
273 return obj != null && obj === obj.window;
274 },
275
276 isNumeric: function( obj ) {
277 // parseFloat NaNs numeric-cast false positives (null|true|false|"")
278 // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
279 // subtraction forces infinities to NaN
280 return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0;
281 },
282
283 isPlainObject: function( obj ) {
284 // Not plain objects:
285 // - Any object or value whose internal [[Class]] property is not "[object Object]"
286 // - DOM nodes
287 // - window
288 if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
289 return false;
290 }
291
292 if ( obj.constructor &&
293 !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
294 return false;
295 }
296
297 // If the function hasn't returned already, we're confident that
298 // |obj| is a plain object, created by {} or constructed with new Object
299 return true;
300 },
301
302 isEmptyObject: function( obj ) {
303 var name;
304 for ( name in obj ) {
305 return false;
306 }
307 return true;
308 },
309
310 type: function( obj ) {
311 if ( obj == null ) {
312 return obj + "";
313 }
314 // Support: Android < 4.0, iOS < 6 (functionish RegExp)
315 return typeof obj === "object" || typeof obj === "function" ?
316 class2type[ toString.call(obj) ] || "object" :
317 typeof obj;
318 },
319
320 // Evaluates a script in a global context
321 globalEval: function( code ) {
322 var script,
323 indirect = eval;
324
325 code = jQuery.trim( code );
326
327 if ( code ) {
328 // If the code includes a valid, prologue position
329 // strict mode pragma, execute code by injecting a
330 // script tag into the document.
331 if ( code.indexOf("use strict") === 1 ) {
332 script = document.createElement("script");
333 script.text = code;
334 document.head.appendChild( script ).parentNode.removeChild( script );
335 } else {
336 // Otherwise, avoid the DOM node creation, insertion
337 // and removal by using an indirect global eval
338 indirect( code );
339 }
340 }
341 },
342
343 // Convert dashed to camelCase; used by the css and data modules
344 // Microsoft forgot to hump their vendor prefix (#9572)
345 camelCase: function( string ) {
346 return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
347 },
348
349 nodeName: function( elem, name ) {
350 return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
351 },
352
353 // args is for internal usage only
354 each: function( obj, callback, args ) {
355 var value,
356 i = 0,
357 length = obj.length,
358 isArray = isArraylike( obj );
359
360 if ( args ) {
361 if ( isArray ) {
362 for ( ; i < length; i++ ) {
363 value = callback.apply( obj[ i ], args );
364
365 if ( value === false ) {
366 break;
367 }
368 }
369 } else {
370 for ( i in obj ) {
371 value = callback.apply( obj[ i ], args );
372
373 if ( value === false ) {
374 break;
375 }
376 }
377 }
378
379 // A special, fast, case for the most common use of each
380 } else {
381 if ( isArray ) {
382 for ( ; i < length; i++ ) {
383 value = callback.call( obj[ i ], i, obj[ i ] );
384
385 if ( value === false ) {
386 break;
387 }
388 }
389 } else {
390 for ( i in obj ) {
391 value = callback.call( obj[ i ], i, obj[ i ] );
392
393 if ( value === false ) {
394 break;
395 }
396 }
397 }
398 }
399
400 return obj;
401 },
402
403 // Support: Android<4.1
404 trim: function( text ) {
405 return text == null ?
406 "" :
407 ( text + "" ).replace( rtrim, "" );
408 },
409
410 // results is for internal usage only
411 makeArray: function( arr, results ) {
412 var ret = results || [];
413
414 if ( arr != null ) {
415 if ( isArraylike( Object(arr) ) ) {
416 jQuery.merge( ret,
417 typeof arr === "string" ?
418 [ arr ] : arr
419 );
420 } else {
421 push.call( ret, arr );
422 }
423 }
424
425 return ret;
426 },
427
428 inArray: function( elem, arr, i ) {
429 return arr == null ? -1 : indexOf.call( arr, elem, i );
430 },
431
432 merge: function( first, second ) {
433 var len = +second.length,
434 j = 0,
435 i = first.length;
436
437 for ( ; j < len; j++ ) {
438 first[ i++ ] = second[ j ];
439 }
440
441 first.length = i;
442
443 return first;
444 },
445
446 grep: function( elems, callback, invert ) {
447 var callbackInverse,
448 matches = [],
449 i = 0,
450 length = elems.length,
451 callbackExpect = !invert;
452
453 // Go through the array, only saving the items
454 // that pass the validator function
455 for ( ; i < length; i++ ) {
456 callbackInverse = !callback( elems[ i ], i );
457 if ( callbackInverse !== callbackExpect ) {
458 matches.push( elems[ i ] );
459 }
460 }
461
462 return matches;
463 },
464
465 // arg is for internal usage only
466 map: function( elems, callback, arg ) {
467 var value,
468 i = 0,
469 length = elems.length,
470 isArray = isArraylike( elems ),
471 ret = [];
472
473 // Go through the array, translating each of the items to their new values
474 if ( isArray ) {
475 for ( ; i < length; i++ ) {
476 value = callback( elems[ i ], i, arg );
477
478 if ( value != null ) {
479 ret.push( value );
480 }
481 }
482
483 // Go through every key on the object,
484 } else {
485 for ( i in elems ) {
486 value = callback( elems[ i ], i, arg );
487
488 if ( value != null ) {
489 ret.push( value );
490 }
491 }
492 }
493
494 // Flatten any nested arrays
495 return concat.apply( [], ret );
496 },
497
498 // A global GUID counter for objects
499 guid: 1,
500
501 // Bind a function to a context, optionally partially applying any
502 // arguments.
503 proxy: function( fn, context ) {
504 var tmp, args, proxy;
505
506 if ( typeof context === "string" ) {
507 tmp = fn[ context ];
508 context = fn;
509 fn = tmp;
510 }
511
512 // Quick check to determine if target is callable, in the spec
513 // this throws a TypeError, but we will just return undefined.
514 if ( !jQuery.isFunction( fn ) ) {
515 return undefined;
516 }
517
518 // Simulated bind
519 args = slice.call( arguments, 2 );
520 proxy = function() {
521 return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
522 };
523
524 // Set the guid of unique handler to the same of original handler, so it can be removed
525 proxy.guid = fn.guid = fn.guid || jQuery.guid++;
526
527 return proxy;
528 },
529
530 now: Date.now,
531
532 // jQuery.support is not used in Core but other projects attach their
533 // properties to it so it needs to exist.
534 support: support
535});
536
537// Populate the class2type map
538jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
539 class2type[ "[object " + name + "]" ] = name.toLowerCase();
540});
541
542function isArraylike( obj ) {
543 var length = obj.length,
544 type = jQuery.type( obj );
545
546 if ( type === "function" || jQuery.isWindow( obj ) ) {
547 return false;
548 }
549
550 if ( obj.nodeType === 1 && length ) {
551 return true;
552 }
553
554 return type === "array" || length === 0 ||
555 typeof length === "number" && length > 0 && ( length - 1 ) in obj;
556}
557var Sizzle =
558/*!
559 * Sizzle CSS Selector Engine v1.10.19
560 * http://sizzlejs.com/
561 *
562 * Copyright 2013 jQuery Foundation, Inc. and other contributors
563 * Released under the MIT license
564 * http://jquery.org/license
565 *
566 * Date: 2014-04-18
567 */
568(function( window ) {
569
570var i,
571 support,
572 Expr,
573 getText,
574 isXML,
575 tokenize,
576 compile,
577 select,
578 outermostContext,
579 sortInput,
580 hasDuplicate,
581
582 // Local document vars
583 setDocument,
584 document,
585 docElem,
586 documentIsHTML,
587 rbuggyQSA,
588 rbuggyMatches,
589 matches,
590 contains,
591
592 // Instance-specific data
593 expando = "sizzle" + -(new Date()),
594 preferredDoc = window.document,
595 dirruns = 0,
596 done = 0,
597 classCache = createCache(),
598 tokenCache = createCache(),
599 compilerCache = createCache(),
600 sortOrder = function( a, b ) {
601 if ( a === b ) {
602 hasDuplicate = true;
603 }
604 return 0;
605 },
606
607 // General-purpose constants
608 strundefined = typeof undefined,
609 MAX_NEGATIVE = 1 << 31,
610
611 // Instance methods
612 hasOwn = ({}).hasOwnProperty,
613 arr = [],
614 pop = arr.pop,
615 push_native = arr.push,
616 push = arr.push,
617 slice = arr.slice,
618 // Use a stripped-down indexOf if we can't use a native one
619 indexOf = arr.indexOf || function( elem ) {
620 var i = 0,
621 len = this.length;
622 for ( ; i < len; i++ ) {
623 if ( this[i] === elem ) {
624 return i;
625 }
626 }
627 return -1;
628 },
629
630 booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
631
632 // Regular expressions
633
634 // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
635 whitespace = "[\\x20\\t\\r\\n\\f]",
636 // http://www.w3.org/TR/css3-syntax/#characters
637 characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
638
639 // Loosely modeled on CSS identifier characters
640 // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
641 // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
642 identifier = characterEncoding.replace( "w", "w#" ),
643
644 // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
645 attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace +
646 // Operator (capture 2)
647 "*([*^$|!~]?=)" + whitespace +
648 // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
649 "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
650 "*\\]",
651
652 pseudos = ":(" + characterEncoding + ")(?:\\((" +
653 // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
654 // 1. quoted (capture 3; capture 4 or capture 5)
655 "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
656 // 2. simple (capture 6)
657 "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
658 // 3. anything else (capture 2)
659 ".*" +
660 ")\\)|)",
661
662 // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
663 rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
664
665 rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
666 rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
667
668 rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
669
670 rpseudo = new RegExp( pseudos ),
671 ridentifier = new RegExp( "^" + identifier + "$" ),
672
673 matchExpr = {
674 "ID": new RegExp( "^#(" + characterEncoding + ")" ),
675 "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
676 "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
677 "ATTR": new RegExp( "^" + attributes ),
678 "PSEUDO": new RegExp( "^" + pseudos ),
679 "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
680 "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
681 "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
682 "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
683 // For use in libraries implementing .is()
684 // We use this for POS matching in `select`
685 "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
686 whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
687 },
688
689 rinputs = /^(?:input|select|textarea|button)$/i,
690 rheader = /^h\d$/i,
691
692 rnative = /^[^{]+\{\s*\[native \w/,
693
694 // Easily-parseable/retrievable ID or TAG or CLASS selectors
695 rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
696
697 rsibling = /[+~]/,
698 rescape = /'|\\/g,
699
700 // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
701 runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
702 funescape = function( _, escaped, escapedWhitespace ) {
703 var high = "0x" + escaped - 0x10000;
704 // NaN means non-codepoint
705 // Support: Firefox<24
706 // Workaround erroneous numeric interpretation of +"0x"
707 return high !== high || escapedWhitespace ?
708 escaped :
709 high < 0 ?
710 // BMP codepoint
711 String.fromCharCode( high + 0x10000 ) :
712 // Supplemental Plane codepoint (surrogate pair)
713 String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
714 };
715
716// Optimize for push.apply( _, NodeList )
717try {
718 push.apply(
719 (arr = slice.call( preferredDoc.childNodes )),
720 preferredDoc.childNodes
721 );
722 // Support: Android<4.0
723 // Detect silently failing push.apply
724 arr[ preferredDoc.childNodes.length ].nodeType;
725} catch ( e ) {
726 push = { apply: arr.length ?
727
728 // Leverage slice if possible
729 function( target, els ) {
730 push_native.apply( target, slice.call(els) );
731 } :
732
733 // Support: IE<9
734 // Otherwise append directly
735 function( target, els ) {
736 var j = target.length,
737 i = 0;
738 // Can't trust NodeList.length
739 while ( (target[j++] = els[i++]) ) {}
740 target.length = j - 1;
741 }
742 };
743}
744
745function Sizzle( selector, context, results, seed ) {
746 var match, elem, m, nodeType,
747 // QSA vars
748 i, groups, old, nid, newContext, newSelector;
749
750 if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
751 setDocument( context );
752 }
753
754 context = context || document;
755 results = results || [];
756
757 if ( !selector || typeof selector !== "string" ) {
758 return results;
759 }
760
761 if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
762 return [];
763 }
764
765 if ( documentIsHTML && !seed ) {
766
767 // Shortcuts
768 if ( (match = rquickExpr.exec( selector )) ) {
769 // Speed-up: Sizzle("#ID")
770 if ( (m = match[1]) ) {
771 if ( nodeType === 9 ) {
772 elem = context.getElementById( m );
773 // Check parentNode to catch when Blackberry 4.6 returns
774 // nodes that are no longer in the document (jQuery #6963)
775 if ( elem && elem.parentNode ) {
776 // Handle the case where IE, Opera, and Webkit return items
777 // by name instead of ID
778 if ( elem.id === m ) {
779 results.push( elem );
780 return results;
781 }
782 } else {
783 return results;
784 }
785 } else {
786 // Context is not a document
787 if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
788 contains( context, elem ) && elem.id === m ) {
789 results.push( elem );
790 return results;
791 }
792 }
793
794 // Speed-up: Sizzle("TAG")
795 } else if ( match[2] ) {
796 push.apply( results, context.getElementsByTagName( selector ) );
797 return results;
798
799 // Speed-up: Sizzle(".CLASS")
800 } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {
801 push.apply( results, context.getElementsByClassName( m ) );
802 return results;
803 }
804 }
805
806 // QSA path
807 if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
808 nid = old = expando;
809 newContext = context;
810 newSelector = nodeType === 9 && selector;
811
812 // qSA works strangely on Element-rooted queries
813 // We can work around this by specifying an extra ID on the root
814 // and working up from there (Thanks to Andrew Dupont for the technique)
815 // IE 8 doesn't work on object elements
816 if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
817 groups = tokenize( selector );
818
819 if ( (old = context.getAttribute("id")) ) {
820 nid = old.replace( rescape, "\\$&" );
821 } else {
822 context.setAttribute( "id", nid );
823 }
824 nid = "[id='" + nid + "'] ";
825
826 i = groups.length;
827 while ( i-- ) {
828 groups[i] = nid + toSelector( groups[i] );
829 }
830 newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;
831 newSelector = groups.join(",");
832 }
833
834 if ( newSelector ) {
835 try {
836 push.apply( results,
837 newContext.querySelectorAll( newSelector )
838 );
839 return results;
840 } catch(qsaError) {
841 } finally {
842 if ( !old ) {
843 context.removeAttribute("id");
844 }
845 }
846 }
847 }
848 }
849
850 // All others
851 return select( selector.replace( rtrim, "$1" ), context, results, seed );
852}
853
854/**
855 * Create key-value caches of limited size
856 * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
857 * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
858 * deleting the oldest entry
859 */
860function createCache() {
861 var keys = [];
862
863 function cache( key, value ) {
864 // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
865 if ( keys.push( key + " " ) > Expr.cacheLength ) {
866 // Only keep the most recent entries
867 delete cache[ keys.shift() ];
868 }
869 return (cache[ key + " " ] = value);
870 }
871 return cache;
872}
873
874/**
875 * Mark a function for special use by Sizzle
876 * @param {Function} fn The function to mark
877 */
878function markFunction( fn ) {
879 fn[ expando ] = true;
880 return fn;
881}
882
883/**
884 * Support testing using an element
885 * @param {Function} fn Passed the created div and expects a boolean result
886 */
887function assert( fn ) {
888 var div = document.createElement("div");
889
890 try {
891 return !!fn( div );
892 } catch (e) {
893 return false;
894 } finally {
895 // Remove from its parent by default
896 if ( div.parentNode ) {
897 div.parentNode.removeChild( div );
898 }
899 // release memory in IE
900 div = null;
901 }
902}
903
904/**
905 * Adds the same handler for all of the specified attrs
906 * @param {String} attrs Pipe-separated list of attributes
907 * @param {Function} handler The method that will be applied
908 */
909function addHandle( attrs, handler ) {
910 var arr = attrs.split("|"),
911 i = attrs.length;
912
913 while ( i-- ) {
914 Expr.attrHandle[ arr[i] ] = handler;
915 }
916}
917
918/**
919 * Checks document order of two siblings
920 * @param {Element} a
921 * @param {Element} b
922 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
923 */
924function siblingCheck( a, b ) {
925 var cur = b && a,
926 diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
927 ( ~b.sourceIndex || MAX_NEGATIVE ) -
928 ( ~a.sourceIndex || MAX_NEGATIVE );
929
930 // Use IE sourceIndex if available on both nodes
931 if ( diff ) {
932 return diff;
933 }
934
935 // Check if b follows a
936 if ( cur ) {
937 while ( (cur = cur.nextSibling) ) {
938 if ( cur === b ) {
939 return -1;
940 }
941 }
942 }
943
944 return a ? 1 : -1;
945}
946
947/**
948 * Returns a function to use in pseudos for input types
949 * @param {String} type
950 */
951function createInputPseudo( type ) {
952 return function( elem ) {
953 var name = elem.nodeName.toLowerCase();
954 return name === "input" && elem.type === type;
955 };
956}
957
958/**
959 * Returns a function to use in pseudos for buttons
960 * @param {String} type
961 */
962function createButtonPseudo( type ) {
963 return function( elem ) {
964 var name = elem.nodeName.toLowerCase();
965 return (name === "input" || name === "button") && elem.type === type;
966 };
967}
968
969/**
970 * Returns a function to use in pseudos for positionals
971 * @param {Function} fn
972 */
973function createPositionalPseudo( fn ) {
974 return markFunction(function( argument ) {
975 argument = +argument;
976 return markFunction(function( seed, matches ) {
977 var j,
978 matchIndexes = fn( [], seed.length, argument ),
979 i = matchIndexes.length;
980
981 // Match elements found at the specified indexes
982 while ( i-- ) {
983 if ( seed[ (j = matchIndexes[i]) ] ) {
984 seed[j] = !(matches[j] = seed[j]);
985 }
986 }
987 });
988 });
989}
990
991/**
992 * Checks a node for validity as a Sizzle context
993 * @param {Element|Object=} context
994 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
995 */
996function testContext( context ) {
997 return context && typeof context.getElementsByTagName !== strundefined && context;
998}
999
1000// Expose support vars for convenience
1001support = Sizzle.support = {};
1002
1003/**
1004 * Detects XML nodes
1005 * @param {Element|Object} elem An element or a document
1006 * @returns {Boolean} True iff elem is a non-HTML XML node
1007 */
1008isXML = Sizzle.isXML = function( elem ) {
1009 // documentElement is verified for cases where it doesn't yet exist
1010 // (such as loading iframes in IE - #4833)
1011 var documentElement = elem && (elem.ownerDocument || elem).documentElement;
1012 return documentElement ? documentElement.nodeName !== "HTML" : false;
1013};
1014
1015/**
1016 * Sets document-related variables once based on the current document
1017 * @param {Element|Object} [doc] An element or document object to use to set the document
1018 * @returns {Object} Returns the current document
1019 */
1020setDocument = Sizzle.setDocument = function( node ) {
1021 var hasCompare,
1022 doc = node ? node.ownerDocument || node : preferredDoc,
1023 parent = doc.defaultView;
1024
1025 // If no document and documentElement is available, return
1026 if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
1027 return document;
1028 }
1029
1030 // Set our document
1031 document = doc;
1032 docElem = doc.documentElement;
1033
1034 // Support tests
1035 documentIsHTML = !isXML( doc );
1036
1037 // Support: IE>8
1038 // If iframe document is assigned to "document" variable and if iframe has been reloaded,
1039 // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
1040 // IE6-8 do not support the defaultView property so parent will be undefined
1041 if ( parent && parent !== parent.top ) {
1042 // IE11 does not have attachEvent, so all must suffer
1043 if ( parent.addEventListener ) {
1044 parent.addEventListener( "unload", function() {
1045 setDocument();
1046 }, false );
1047 } else if ( parent.attachEvent ) {
1048 parent.attachEvent( "onunload", function() {
1049 setDocument();
1050 });
1051 }
1052 }
1053
1054 /* Attributes
1055 ---------------------------------------------------------------------- */
1056
1057 // Support: IE<8
1058 // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)
1059 support.attributes = assert(function( div ) {
1060 div.className = "i";
1061 return !div.getAttribute("className");
1062 });
1063
1064 /* getElement(s)By*
1065 ---------------------------------------------------------------------- */
1066
1067 // Check if getElementsByTagName("*") returns only elements
1068 support.getElementsByTagName = assert(function( div ) {
1069 div.appendChild( doc.createComment("") );
1070 return !div.getElementsByTagName("*").length;
1071 });
1072
1073 // Check if getElementsByClassName can be trusted
1074 support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) {
1075 div.innerHTML = "<div class='a'></div><div class='a i'></div>";
1076
1077 // Support: Safari<4
1078 // Catch class over-caching
1079 div.firstChild.className = "i";
1080 // Support: Opera<10
1081 // Catch gEBCN failure to find non-leading classes
1082 return div.getElementsByClassName("i").length === 2;
1083 });
1084
1085 // Support: IE<10
1086 // Check if getElementById returns elements by name
1087 // The broken getElementById methods don't pick up programatically-set names,
1088 // so use a roundabout getElementsByName test
1089 support.getById = assert(function( div ) {
1090 docElem.appendChild( div ).id = expando;
1091 return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
1092 });
1093
1094 // ID find and filter
1095 if ( support.getById ) {
1096 Expr.find["ID"] = function( id, context ) {
1097 if ( typeof context.getElementById !== strundefined && documentIsHTML ) {
1098 var m = context.getElementById( id );
1099 // Check parentNode to catch when Blackberry 4.6 returns
1100 // nodes that are no longer in the document #6963
1101 return m && m.parentNode ? [ m ] : [];
1102 }
1103 };
1104 Expr.filter["ID"] = function( id ) {
1105 var attrId = id.replace( runescape, funescape );
1106 return function( elem ) {
1107 return elem.getAttribute("id") === attrId;
1108 };
1109 };
1110 } else {
1111 // Support: IE6/7
1112 // getElementById is not reliable as a find shortcut
1113 delete Expr.find["ID"];
1114
1115 Expr.filter["ID"] = function( id ) {
1116 var attrId = id.replace( runescape, funescape );
1117 return function( elem ) {
1118 var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
1119 return node && node.value === attrId;
1120 };
1121 };
1122 }
1123
1124 // Tag
1125 Expr.find["TAG"] = support.getElementsByTagName ?
1126 function( tag, context ) {
1127 if ( typeof context.getElementsByTagName !== strundefined ) {
1128 return context.getElementsByTagName( tag );
1129 }
1130 } :
1131 function( tag, context ) {
1132 var elem,
1133 tmp = [],
1134 i = 0,
1135 results = context.getElementsByTagName( tag );
1136
1137 // Filter out possible comments
1138 if ( tag === "*" ) {
1139 while ( (elem = results[i++]) ) {
1140 if ( elem.nodeType === 1 ) {
1141 tmp.push( elem );
1142 }
1143 }
1144
1145 return tmp;
1146 }
1147 return results;
1148 };
1149
1150 // Class
1151 Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
1152 if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {
1153 return context.getElementsByClassName( className );
1154 }
1155 };
1156
1157 /* QSA/matchesSelector
1158 ---------------------------------------------------------------------- */
1159
1160 // QSA and matchesSelector support
1161
1162 // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
1163 rbuggyMatches = [];
1164
1165 // qSa(:focus) reports false when true (Chrome 21)
1166 // We allow this because of a bug in IE8/9 that throws an error
1167 // whenever `document.activeElement` is accessed on an iframe
1168 // So, we allow :focus to pass through QSA all the time to avoid the IE error
1169 // See http://bugs.jquery.com/ticket/13378
1170 rbuggyQSA = [];
1171
1172 if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
1173 // Build QSA regex
1174 // Regex strategy adopted from Diego Perini
1175 assert(function( div ) {
1176 // Select is set to empty string on purpose
1177 // This is to test IE's treatment of not explicitly
1178 // setting a boolean content attribute,
1179 // since its presence should be enough
1180 // http://bugs.jquery.com/ticket/12359
1181 div.innerHTML = "<select msallowclip=''><option selected=''></option></select>";
1182
1183 // Support: IE8, Opera 11-12.16
1184 // Nothing should be selected when empty strings follow ^= or $= or *=
1185 // The test attribute must be unknown in Opera but "safe" for WinRT
1186 // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
1187 if ( div.querySelectorAll("[msallowclip^='']").length ) {
1188 rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
1189 }
1190
1191 // Support: IE8
1192 // Boolean attributes and "value" are not treated correctly
1193 if ( !div.querySelectorAll("[selected]").length ) {
1194 rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
1195 }
1196
1197 // Webkit/Opera - :checked should return selected option elements
1198 // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
1199 // IE8 throws error here and will not see later tests
1200 if ( !div.querySelectorAll(":checked").length ) {
1201 rbuggyQSA.push(":checked");
1202 }
1203 });
1204
1205 assert(function( div ) {
1206 // Support: Windows 8 Native Apps
1207 // The type and name attributes are restricted during .innerHTML assignment
1208 var input = doc.createElement("input");
1209 input.setAttribute( "type", "hidden" );
1210 div.appendChild( input ).setAttribute( "name", "D" );
1211
1212 // Support: IE8
1213 // Enforce case-sensitivity of name attribute
1214 if ( div.querySelectorAll("[name=d]").length ) {
1215 rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
1216 }
1217
1218 // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
1219 // IE8 throws error here and will not see later tests
1220 if ( !div.querySelectorAll(":enabled").length ) {
1221 rbuggyQSA.push( ":enabled", ":disabled" );
1222 }
1223
1224 // Opera 10-11 does not throw on post-comma invalid pseudos
1225 div.querySelectorAll("*,:x");
1226 rbuggyQSA.push(",.*:");
1227 });
1228 }
1229
1230 if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
1231 docElem.webkitMatchesSelector ||
1232 docElem.mozMatchesSelector ||
1233 docElem.oMatchesSelector ||
1234 docElem.msMatchesSelector) )) ) {
1235
1236 assert(function( div ) {
1237 // Check to see if it's possible to do matchesSelector
1238 // on a disconnected node (IE 9)
1239 support.disconnectedMatch = matches.call( div, "div" );
1240
1241 // This should fail with an exception
1242 // Gecko does not error, returns false instead
1243 matches.call( div, "[s!='']:x" );
1244 rbuggyMatches.push( "!=", pseudos );
1245 });
1246 }
1247
1248 rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
1249 rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
1250
1251 /* Contains
1252 ---------------------------------------------------------------------- */
1253 hasCompare = rnative.test( docElem.compareDocumentPosition );
1254
1255 // Element contains another
1256 // Purposefully does not implement inclusive descendent
1257 // As in, an element does not contain itself
1258 contains = hasCompare || rnative.test( docElem.contains ) ?
1259 function( a, b ) {
1260 var adown = a.nodeType === 9 ? a.documentElement : a,
1261 bup = b && b.parentNode;
1262 return a === bup || !!( bup && bup.nodeType === 1 && (
1263 adown.contains ?
1264 adown.contains( bup ) :
1265 a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
1266 ));
1267 } :
1268 function( a, b ) {
1269 if ( b ) {
1270 while ( (b = b.parentNode) ) {
1271 if ( b === a ) {
1272 return true;
1273 }
1274 }
1275 }
1276 return false;
1277 };
1278
1279 /* Sorting
1280 ---------------------------------------------------------------------- */
1281
1282 // Document order sorting
1283 sortOrder = hasCompare ?
1284 function( a, b ) {
1285
1286 // Flag for duplicate removal
1287 if ( a === b ) {
1288 hasDuplicate = true;
1289 return 0;
1290 }
1291
1292 // Sort on method existence if only one input has compareDocumentPosition
1293 var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
1294 if ( compare ) {
1295 return compare;
1296 }
1297
1298 // Calculate position if both inputs belong to the same document
1299 compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
1300 a.compareDocumentPosition( b ) :
1301
1302 // Otherwise we know they are disconnected
1303 1;
1304
1305 // Disconnected nodes
1306 if ( compare & 1 ||
1307 (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
1308
1309 // Choose the first element that is related to our preferred document
1310 if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
1311 return -1;
1312 }
1313 if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
1314 return 1;
1315 }
1316
1317 // Maintain original order
1318 return sortInput ?
1319 ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
1320 0;
1321 }
1322
1323 return compare & 4 ? -1 : 1;
1324 } :
1325 function( a, b ) {
1326 // Exit early if the nodes are identical
1327 if ( a === b ) {
1328 hasDuplicate = true;
1329 return 0;
1330 }
1331
1332 var cur,
1333 i = 0,
1334 aup = a.parentNode,
1335 bup = b.parentNode,
1336 ap = [ a ],
1337 bp = [ b ];
1338
1339 // Parentless nodes are either documents or disconnected
1340 if ( !aup || !bup ) {
1341 return a === doc ? -1 :
1342 b === doc ? 1 :
1343 aup ? -1 :
1344 bup ? 1 :
1345 sortInput ?
1346 ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
1347 0;
1348
1349 // If the nodes are siblings, we can do a quick check
1350 } else if ( aup === bup ) {
1351 return siblingCheck( a, b );
1352 }
1353
1354 // Otherwise we need full lists of their ancestors for comparison
1355 cur = a;
1356 while ( (cur = cur.parentNode) ) {
1357 ap.unshift( cur );
1358 }
1359 cur = b;
1360 while ( (cur = cur.parentNode) ) {
1361 bp.unshift( cur );
1362 }
1363
1364 // Walk down the tree looking for a discrepancy
1365 while ( ap[i] === bp[i] ) {
1366 i++;
1367 }
1368
1369 return i ?
1370 // Do a sibling check if the nodes have a common ancestor
1371 siblingCheck( ap[i], bp[i] ) :
1372
1373 // Otherwise nodes in our document sort first
1374 ap[i] === preferredDoc ? -1 :
1375 bp[i] === preferredDoc ? 1 :
1376 0;
1377 };
1378
1379 return doc;
1380};
1381
1382Sizzle.matches = function( expr, elements ) {
1383 return Sizzle( expr, null, null, elements );
1384};
1385
1386Sizzle.matchesSelector = function( elem, expr ) {
1387 // Set document vars if needed
1388 if ( ( elem.ownerDocument || elem ) !== document ) {
1389 setDocument( elem );
1390 }
1391
1392 // Make sure that attribute selectors are quoted
1393 expr = expr.replace( rattributeQuotes, "='$1']" );
1394
1395 if ( support.matchesSelector && documentIsHTML &&
1396 ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
1397 ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
1398
1399 try {
1400 var ret = matches.call( elem, expr );
1401
1402 // IE 9's matchesSelector returns false on disconnected nodes
1403 if ( ret || support.disconnectedMatch ||
1404 // As well, disconnected nodes are said to be in a document
1405 // fragment in IE 9
1406 elem.document && elem.document.nodeType !== 11 ) {
1407 return ret;
1408 }
1409 } catch(e) {}
1410 }
1411
1412 return Sizzle( expr, document, null, [ elem ] ).length > 0;
1413};
1414
1415Sizzle.contains = function( context, elem ) {
1416 // Set document vars if needed
1417 if ( ( context.ownerDocument || context ) !== document ) {
1418 setDocument( context );
1419 }
1420 return contains( context, elem );
1421};
1422
1423Sizzle.attr = function( elem, name ) {
1424 // Set document vars if needed
1425 if ( ( elem.ownerDocument || elem ) !== document ) {
1426 setDocument( elem );
1427 }
1428
1429 var fn = Expr.attrHandle[ name.toLowerCase() ],
1430 // Don't get fooled by Object.prototype properties (jQuery #13807)
1431 val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
1432 fn( elem, name, !documentIsHTML ) :
1433 undefined;
1434
1435 return val !== undefined ?
1436 val :
1437 support.attributes || !documentIsHTML ?
1438 elem.getAttribute( name ) :
1439 (val = elem.getAttributeNode(name)) && val.specified ?
1440 val.value :
1441 null;
1442};
1443
1444Sizzle.error = function( msg ) {
1445 throw new Error( "Syntax error, unrecognized expression: " + msg );
1446};
1447
1448/**
1449 * Document sorting and removing duplicates
1450 * @param {ArrayLike} results
1451 */
1452Sizzle.uniqueSort = function( results ) {
1453 var elem,
1454 duplicates = [],
1455 j = 0,
1456 i = 0;
1457
1458 // Unless we *know* we can detect duplicates, assume their presence
1459 hasDuplicate = !support.detectDuplicates;
1460 sortInput = !support.sortStable && results.slice( 0 );
1461 results.sort( sortOrder );
1462
1463 if ( hasDuplicate ) {
1464 while ( (elem = results[i++]) ) {
1465 if ( elem === results[ i ] ) {
1466 j = duplicates.push( i );
1467 }
1468 }
1469 while ( j-- ) {
1470 results.splice( duplicates[ j ], 1 );
1471 }
1472 }
1473
1474 // Clear input after sorting to release objects
1475 // See https://github.com/jquery/sizzle/pull/225
1476 sortInput = null;
1477
1478 return results;
1479};
1480
1481/**
1482 * Utility function for retrieving the text value of an array of DOM nodes
1483 * @param {Array|Element} elem
1484 */
1485getText = Sizzle.getText = function( elem ) {
1486 var node,
1487 ret = "",
1488 i = 0,
1489 nodeType = elem.nodeType;
1490
1491 if ( !nodeType ) {
1492 // If no nodeType, this is expected to be an array
1493 while ( (node = elem[i++]) ) {
1494 // Do not traverse comment nodes
1495 ret += getText( node );
1496 }
1497 } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
1498 // Use textContent for elements
1499 // innerText usage removed for consistency of new lines (jQuery #11153)
1500 if ( typeof elem.textContent === "string" ) {
1501 return elem.textContent;
1502 } else {
1503 // Traverse its children
1504 for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
1505 ret += getText( elem );
1506 }
1507 }
1508 } else if ( nodeType === 3 || nodeType === 4 ) {
1509 return elem.nodeValue;
1510 }
1511 // Do not include comment or processing instruction nodes
1512
1513 return ret;
1514};
1515
1516Expr = Sizzle.selectors = {
1517
1518 // Can be adjusted by the user
1519 cacheLength: 50,
1520
1521 createPseudo: markFunction,
1522
1523 match: matchExpr,
1524
1525 attrHandle: {},
1526
1527 find: {},
1528
1529 relative: {
1530 ">": { dir: "parentNode", first: true },
1531 " ": { dir: "parentNode" },
1532 "+": { dir: "previousSibling", first: true },
1533 "~": { dir: "previousSibling" }
1534 },
1535
1536 preFilter: {
1537 "ATTR": function( match ) {
1538 match[1] = match[1].replace( runescape, funescape );
1539
1540 // Move the given value to match[3] whether quoted or unquoted
1541 match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
1542
1543 if ( match[2] === "~=" ) {
1544 match[3] = " " + match[3] + " ";
1545 }
1546
1547 return match.slice( 0, 4 );
1548 },
1549
1550 "CHILD": function( match ) {
1551 /* matches from matchExpr["CHILD"]
1552 1 type (only|nth|...)
1553 2 what (child|of-type)
1554 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
1555 4 xn-component of xn+y argument ([+-]?\d*n|)
1556 5 sign of xn-component
1557 6 x of xn-component
1558 7 sign of y-component
1559 8 y of y-component
1560 */
1561 match[1] = match[1].toLowerCase();
1562
1563 if ( match[1].slice( 0, 3 ) === "nth" ) {
1564 // nth-* requires argument
1565 if ( !match[3] ) {
1566 Sizzle.error( match[0] );
1567 }
1568
1569 // numeric x and y parameters for Expr.filter.CHILD
1570 // remember that false/true cast respectively to 0/1
1571 match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
1572 match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
1573
1574 // other types prohibit arguments
1575 } else if ( match[3] ) {
1576 Sizzle.error( match[0] );
1577 }
1578
1579 return match;
1580 },
1581
1582 "PSEUDO": function( match ) {
1583 var excess,
1584 unquoted = !match[6] && match[2];
1585
1586 if ( matchExpr["CHILD"].test( match[0] ) ) {
1587 return null;
1588 }
1589
1590 // Accept quoted arguments as-is
1591 if ( match[3] ) {
1592 match[2] = match[4] || match[5] || "";
1593
1594 // Strip excess characters from unquoted arguments
1595 } else if ( unquoted && rpseudo.test( unquoted ) &&
1596 // Get excess from tokenize (recursively)
1597 (excess = tokenize( unquoted, true )) &&
1598 // advance to the next closing parenthesis
1599 (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
1600
1601 // excess is a negative index
1602 match[0] = match[0].slice( 0, excess );
1603 match[2] = unquoted.slice( 0, excess );
1604 }
1605
1606 // Return only captures needed by the pseudo filter method (type and argument)
1607 return match.slice( 0, 3 );
1608 }
1609 },
1610
1611 filter: {
1612
1613 "TAG": function( nodeNameSelector ) {
1614 var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
1615 return nodeNameSelector === "*" ?
1616 function() { return true; } :
1617 function( elem ) {
1618 return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
1619 };
1620 },
1621
1622 "CLASS": function( className ) {
1623 var pattern = classCache[ className + " " ];
1624
1625 return pattern ||
1626 (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
1627 classCache( className, function( elem ) {
1628 return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" );
1629 });
1630 },
1631
1632 "ATTR": function( name, operator, check ) {
1633 return function( elem ) {
1634 var result = Sizzle.attr( elem, name );
1635
1636 if ( result == null ) {
1637 return operator === "!=";
1638 }
1639 if ( !operator ) {
1640 return true;
1641 }
1642
1643 result += "";
1644
1645 return operator === "=" ? result === check :
1646 operator === "!=" ? result !== check :
1647 operator === "^=" ? check && result.indexOf( check ) === 0 :
1648 operator === "*=" ? check && result.indexOf( check ) > -1 :
1649 operator === "$=" ? check && result.slice( -check.length ) === check :
1650 operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
1651 operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
1652 false;
1653 };
1654 },
1655
1656 "CHILD": function( type, what, argument, first, last ) {
1657 var simple = type.slice( 0, 3 ) !== "nth",
1658 forward = type.slice( -4 ) !== "last",
1659 ofType = what === "of-type";
1660
1661 return first === 1 && last === 0 ?
1662
1663 // Shortcut for :nth-*(n)
1664 function( elem ) {
1665 return !!elem.parentNode;
1666 } :
1667
1668 function( elem, context, xml ) {
1669 var cache, outerCache, node, diff, nodeIndex, start,
1670 dir = simple !== forward ? "nextSibling" : "previousSibling",
1671 parent = elem.parentNode,
1672 name = ofType && elem.nodeName.toLowerCase(),
1673 useCache = !xml && !ofType;
1674
1675 if ( parent ) {
1676
1677 // :(first|last|only)-(child|of-type)
1678 if ( simple ) {
1679 while ( dir ) {
1680 node = elem;
1681 while ( (node = node[ dir ]) ) {
1682 if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
1683 return false;
1684 }
1685 }
1686 // Reverse direction for :only-* (if we haven't yet done so)
1687 start = dir = type === "only" && !start && "nextSibling";
1688 }
1689 return true;
1690 }
1691
1692 start = [ forward ? parent.firstChild : parent.lastChild ];
1693
1694 // non-xml :nth-child(...) stores cache data on `parent`
1695 if ( forward && useCache ) {
1696 // Seek `elem` from a previously-cached index
1697 outerCache = parent[ expando ] || (parent[ expando ] = {});
1698 cache = outerCache[ type ] || [];
1699 nodeIndex = cache[0] === dirruns && cache[1];
1700 diff = cache[0] === dirruns && cache[2];
1701 node = nodeIndex && parent.childNodes[ nodeIndex ];
1702
1703 while ( (node = ++nodeIndex && node && node[ dir ] ||
1704
1705 // Fallback to seeking `elem` from the start
1706 (diff = nodeIndex = 0) || start.pop()) ) {
1707
1708 // When found, cache indexes on `parent` and break
1709 if ( node.nodeType === 1 && ++diff && node === elem ) {
1710 outerCache[ type ] = [ dirruns, nodeIndex, diff ];
1711 break;
1712 }
1713 }
1714
1715 // Use previously-cached element index if available
1716 } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
1717 diff = cache[1];
1718
1719 // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
1720 } else {
1721 // Use the same loop as above to seek `elem` from the start
1722 while ( (node = ++nodeIndex && node && node[ dir ] ||
1723 (diff = nodeIndex = 0) || start.pop()) ) {
1724
1725 if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
1726 // Cache the index of each encountered element
1727 if ( useCache ) {
1728 (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
1729 }
1730
1731 if ( node === elem ) {
1732 break;
1733 }
1734 }
1735 }
1736 }
1737
1738 // Incorporate the offset, then check against cycle size
1739 diff -= last;
1740 return diff === first || ( diff % first === 0 && diff / first >= 0 );
1741 }
1742 };
1743 },
1744
1745 "PSEUDO": function( pseudo, argument ) {
1746 // pseudo-class names are case-insensitive
1747 // http://www.w3.org/TR/selectors/#pseudo-classes
1748 // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
1749 // Remember that setFilters inherits from pseudos
1750 var args,
1751 fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
1752 Sizzle.error( "unsupported pseudo: " + pseudo );
1753
1754 // The user may use createPseudo to indicate that
1755 // arguments are needed to create the filter function
1756 // just as Sizzle does
1757 if ( fn[ expando ] ) {
1758 return fn( argument );
1759 }
1760
1761 // But maintain support for old signatures
1762 if ( fn.length > 1 ) {
1763 args = [ pseudo, pseudo, "", argument ];
1764 return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
1765 markFunction(function( seed, matches ) {
1766 var idx,
1767 matched = fn( seed, argument ),
1768 i = matched.length;
1769 while ( i-- ) {
1770 idx = indexOf.call( seed, matched[i] );
1771 seed[ idx ] = !( matches[ idx ] = matched[i] );
1772 }
1773 }) :
1774 function( elem ) {
1775 return fn( elem, 0, args );
1776 };
1777 }
1778
1779 return fn;
1780 }
1781 },
1782
1783 pseudos: {
1784 // Potentially complex pseudos
1785 "not": markFunction(function( selector ) {
1786 // Trim the selector passed to compile
1787 // to avoid treating leading and trailing
1788 // spaces as combinators
1789 var input = [],
1790 results = [],
1791 matcher = compile( selector.replace( rtrim, "$1" ) );
1792
1793 return matcher[ expando ] ?
1794 markFunction(function( seed, matches, context, xml ) {
1795 var elem,
1796 unmatched = matcher( seed, null, xml, [] ),
1797 i = seed.length;
1798
1799 // Match elements unmatched by `matcher`
1800 while ( i-- ) {
1801 if ( (elem = unmatched[i]) ) {
1802 seed[i] = !(matches[i] = elem);
1803 }
1804 }
1805 }) :
1806 function( elem, context, xml ) {
1807 input[0] = elem;
1808 matcher( input, null, xml, results );
1809 return !results.pop();
1810 };
1811 }),
1812
1813 "has": markFunction(function( selector ) {
1814 return function( elem ) {
1815 return Sizzle( selector, elem ).length > 0;
1816 };
1817 }),
1818
1819 "contains": markFunction(function( text ) {
1820 return function( elem ) {
1821 return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
1822 };
1823 }),
1824
1825 // "Whether an element is represented by a :lang() selector
1826 // is based solely on the element's language value
1827 // being equal to the identifier C,
1828 // or beginning with the identifier C immediately followed by "-".
1829 // The matching of C against the element's language value is performed case-insensitively.
1830 // The identifier C does not have to be a valid language name."
1831 // http://www.w3.org/TR/selectors/#lang-pseudo
1832 "lang": markFunction( function( lang ) {
1833 // lang value must be a valid identifier
1834 if ( !ridentifier.test(lang || "") ) {
1835 Sizzle.error( "unsupported lang: " + lang );
1836 }
1837 lang = lang.replace( runescape, funescape ).toLowerCase();
1838 return function( elem ) {
1839 var elemLang;
1840 do {
1841 if ( (elemLang = documentIsHTML ?
1842 elem.lang :
1843 elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
1844
1845 elemLang = elemLang.toLowerCase();
1846 return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
1847 }
1848 } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
1849 return false;
1850 };
1851 }),
1852
1853 // Miscellaneous
1854 "target": function( elem ) {
1855 var hash = window.location && window.location.hash;
1856 return hash && hash.slice( 1 ) === elem.id;
1857 },
1858
1859 "root": function( elem ) {
1860 return elem === docElem;
1861 },
1862
1863 "focus": function( elem ) {
1864 return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
1865 },
1866
1867 // Boolean properties
1868 "enabled": function( elem ) {
1869 return elem.disabled === false;
1870 },
1871
1872 "disabled": function( elem ) {
1873 return elem.disabled === true;
1874 },
1875
1876 "checked": function( elem ) {
1877 // In CSS3, :checked should return both checked and selected elements
1878 // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
1879 var nodeName = elem.nodeName.toLowerCase();
1880 return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
1881 },
1882
1883 "selected": function( elem ) {
1884 // Accessing this property makes selected-by-default
1885 // options in Safari work properly
1886 if ( elem.parentNode ) {
1887 elem.parentNode.selectedIndex;
1888 }
1889
1890 return elem.selected === true;
1891 },
1892
1893 // Contents
1894 "empty": function( elem ) {
1895 // http://www.w3.org/TR/selectors/#empty-pseudo
1896 // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
1897 // but not by others (comment: 8; processing instruction: 7; etc.)
1898 // nodeType < 6 works because attributes (2) do not appear as children
1899 for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
1900 if ( elem.nodeType < 6 ) {
1901 return false;
1902 }
1903 }
1904 return true;
1905 },
1906
1907 "parent": function( elem ) {
1908 return !Expr.pseudos["empty"]( elem );
1909 },
1910
1911 // Element/input types
1912 "header": function( elem ) {
1913 return rheader.test( elem.nodeName );
1914 },
1915
1916 "input": function( elem ) {
1917 return rinputs.test( elem.nodeName );
1918 },
1919
1920 "button": function( elem ) {
1921 var name = elem.nodeName.toLowerCase();
1922 return name === "input" && elem.type === "button" || name === "button";
1923 },
1924
1925 "text": function( elem ) {
1926 var attr;
1927 return elem.nodeName.toLowerCase() === "input" &&
1928 elem.type === "text" &&
1929
1930 // Support: IE<8
1931 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
1932 ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
1933 },
1934
1935 // Position-in-collection
1936 "first": createPositionalPseudo(function() {
1937 return [ 0 ];
1938 }),
1939
1940 "last": createPositionalPseudo(function( matchIndexes, length ) {
1941 return [ length - 1 ];
1942 }),
1943
1944 "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
1945 return [ argument < 0 ? argument + length : argument ];
1946 }),
1947
1948 "even": createPositionalPseudo(function( matchIndexes, length ) {
1949 var i = 0;
1950 for ( ; i < length; i += 2 ) {
1951 matchIndexes.push( i );
1952 }
1953 return matchIndexes;
1954 }),
1955
1956 "odd": createPositionalPseudo(function( matchIndexes, length ) {
1957 var i = 1;
1958 for ( ; i < length; i += 2 ) {
1959 matchIndexes.push( i );
1960 }
1961 return matchIndexes;
1962 }),
1963
1964 "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
1965 var i = argument < 0 ? argument + length : argument;
1966 for ( ; --i >= 0; ) {
1967 matchIndexes.push( i );
1968 }
1969 return matchIndexes;
1970 }),
1971
1972 "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
1973 var i = argument < 0 ? argument + length : argument;
1974 for ( ; ++i < length; ) {
1975 matchIndexes.push( i );
1976 }
1977 return matchIndexes;
1978 })
1979 }
1980};
1981
1982Expr.pseudos["nth"] = Expr.pseudos["eq"];
1983
1984// Add button/input type pseudos
1985for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
1986 Expr.pseudos[ i ] = createInputPseudo( i );
1987}
1988for ( i in { submit: true, reset: true } ) {
1989 Expr.pseudos[ i ] = createButtonPseudo( i );
1990}
1991
1992// Easy API for creating new setFilters
1993function setFilters() {}
1994setFilters.prototype = Expr.filters = Expr.pseudos;
1995Expr.setFilters = new setFilters();
1996
1997tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
1998 var matched, match, tokens, type,
1999 soFar, groups, preFilters,
2000 cached = tokenCache[ selector + " " ];
2001
2002 if ( cached ) {
2003 return parseOnly ? 0 : cached.slice( 0 );
2004 }
2005
2006 soFar = selector;
2007 groups = [];
2008 preFilters = Expr.preFilter;
2009
2010 while ( soFar ) {
2011
2012 // Comma and first run
2013 if ( !matched || (match = rcomma.exec( soFar )) ) {
2014 if ( match ) {
2015 // Don't consume trailing commas as valid
2016 soFar = soFar.slice( match[0].length ) || soFar;
2017 }
2018 groups.push( (tokens = []) );
2019 }
2020
2021 matched = false;
2022
2023 // Combinators
2024 if ( (match = rcombinators.exec( soFar )) ) {
2025 matched = match.shift();
2026 tokens.push({
2027 value: matched,
2028 // Cast descendant combinators to space
2029 type: match[0].replace( rtrim, " " )
2030 });
2031 soFar = soFar.slice( matched.length );
2032 }
2033
2034 // Filters
2035 for ( type in Expr.filter ) {
2036 if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
2037 (match = preFilters[ type ]( match ))) ) {
2038 matched = match.shift();
2039 tokens.push({
2040 value: matched,
2041 type: type,
2042 matches: match
2043 });
2044 soFar = soFar.slice( matched.length );
2045 }
2046 }
2047
2048 if ( !matched ) {
2049 break;
2050 }
2051 }
2052
2053 // Return the length of the invalid excess
2054 // if we're just parsing
2055 // Otherwise, throw an error or return tokens
2056 return parseOnly ?
2057 soFar.length :
2058 soFar ?
2059 Sizzle.error( selector ) :
2060 // Cache the tokens
2061 tokenCache( selector, groups ).slice( 0 );
2062};
2063
2064function toSelector( tokens ) {
2065 var i = 0,
2066 len = tokens.length,
2067 selector = "";
2068 for ( ; i < len; i++ ) {
2069 selector += tokens[i].value;
2070 }
2071 return selector;
2072}
2073
2074function addCombinator( matcher, combinator, base ) {
2075 var dir = combinator.dir,
2076 checkNonElements = base && dir === "parentNode",
2077 doneName = done++;
2078
2079 return combinator.first ?
2080 // Check against closest ancestor/preceding element
2081 function( elem, context, xml ) {
2082 while ( (elem = elem[ dir ]) ) {
2083 if ( elem.nodeType === 1 || checkNonElements ) {
2084 return matcher( elem, context, xml );
2085 }
2086 }
2087 } :
2088
2089 // Check against all ancestor/preceding elements
2090 function( elem, context, xml ) {
2091 var oldCache, outerCache,
2092 newCache = [ dirruns, doneName ];
2093
2094 // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
2095 if ( xml ) {
2096 while ( (elem = elem[ dir ]) ) {
2097 if ( elem.nodeType === 1 || checkNonElements ) {
2098 if ( matcher( elem, context, xml ) ) {
2099 return true;
2100 }
2101 }
2102 }
2103 } else {
2104 while ( (elem = elem[ dir ]) ) {
2105 if ( elem.nodeType === 1 || checkNonElements ) {
2106 outerCache = elem[ expando ] || (elem[ expando ] = {});
2107 if ( (oldCache = outerCache[ dir ]) &&
2108 oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
2109
2110 // Assign to newCache so results back-propagate to previous elements
2111 return (newCache[ 2 ] = oldCache[ 2 ]);
2112 } else {
2113 // Reuse newcache so results back-propagate to previous elements
2114 outerCache[ dir ] = newCache;
2115
2116 // A match means we're done; a fail means we have to keep checking
2117 if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
2118 return true;
2119 }
2120 }
2121 }
2122 }
2123 }
2124 };
2125}
2126
2127function elementMatcher( matchers ) {
2128 return matchers.length > 1 ?
2129 function( elem, context, xml ) {
2130 var i = matchers.length;
2131 while ( i-- ) {
2132 if ( !matchers[i]( elem, context, xml ) ) {
2133 return false;
2134 }
2135 }
2136 return true;
2137 } :
2138 matchers[0];
2139}
2140
2141function multipleContexts( selector, contexts, results ) {
2142 var i = 0,
2143 len = contexts.length;
2144 for ( ; i < len; i++ ) {
2145 Sizzle( selector, contexts[i], results );
2146 }
2147 return results;
2148}
2149
2150function condense( unmatched, map, filter, context, xml ) {
2151 var elem,
2152 newUnmatched = [],
2153 i = 0,
2154 len = unmatched.length,
2155 mapped = map != null;
2156
2157 for ( ; i < len; i++ ) {
2158 if ( (elem = unmatched[i]) ) {
2159 if ( !filter || filter( elem, context, xml ) ) {
2160 newUnmatched.push( elem );
2161 if ( mapped ) {
2162 map.push( i );
2163 }
2164 }
2165 }
2166 }
2167
2168 return newUnmatched;
2169}
2170
2171function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
2172 if ( postFilter && !postFilter[ expando ] ) {
2173 postFilter = setMatcher( postFilter );
2174 }
2175 if ( postFinder && !postFinder[ expando ] ) {
2176 postFinder = setMatcher( postFinder, postSelector );
2177 }
2178 return markFunction(function( seed, results, context, xml ) {
2179 var temp, i, elem,
2180 preMap = [],
2181 postMap = [],
2182 preexisting = results.length,
2183
2184 // Get initial elements from seed or context
2185 elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
2186
2187 // Prefilter to get matcher input, preserving a map for seed-results synchronization
2188 matcherIn = preFilter && ( seed || !selector ) ?
2189 condense( elems, preMap, preFilter, context, xml ) :
2190 elems,
2191
2192 matcherOut = matcher ?
2193 // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
2194 postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
2195
2196 // ...intermediate processing is necessary
2197 [] :
2198
2199 // ...otherwise use results directly
2200 results :
2201 matcherIn;
2202
2203 // Find primary matches
2204 if ( matcher ) {
2205 matcher( matcherIn, matcherOut, context, xml );
2206 }
2207
2208 // Apply postFilter
2209 if ( postFilter ) {
2210 temp = condense( matcherOut, postMap );
2211 postFilter( temp, [], context, xml );
2212
2213 // Un-match failing elements by moving them back to matcherIn
2214 i = temp.length;
2215 while ( i-- ) {
2216 if ( (elem = temp[i]) ) {
2217 matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
2218 }
2219 }
2220 }
2221
2222 if ( seed ) {
2223 if ( postFinder || preFilter ) {
2224 if ( postFinder ) {
2225 // Get the final matcherOut by condensing this intermediate into postFinder contexts
2226 temp = [];
2227 i = matcherOut.length;
2228 while ( i-- ) {
2229 if ( (elem = matcherOut[i]) ) {
2230 // Restore matcherIn since elem is not yet a final match
2231 temp.push( (matcherIn[i] = elem) );
2232 }
2233 }
2234 postFinder( null, (matcherOut = []), temp, xml );
2235 }
2236
2237 // Move matched elements from seed to results to keep them synchronized
2238 i = matcherOut.length;
2239 while ( i-- ) {
2240 if ( (elem = matcherOut[i]) &&
2241 (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
2242
2243 seed[temp] = !(results[temp] = elem);
2244 }
2245 }
2246 }
2247
2248 // Add elements to results, through postFinder if defined
2249 } else {
2250 matcherOut = condense(
2251 matcherOut === results ?
2252 matcherOut.splice( preexisting, matcherOut.length ) :
2253 matcherOut
2254 );
2255 if ( postFinder ) {
2256 postFinder( null, results, matcherOut, xml );
2257 } else {
2258 push.apply( results, matcherOut );
2259 }
2260 }
2261 });
2262}
2263
2264function matcherFromTokens( tokens ) {
2265 var checkContext, matcher, j,
2266 len = tokens.length,
2267 leadingRelative = Expr.relative[ tokens[0].type ],
2268 implicitRelative = leadingRelative || Expr.relative[" "],
2269 i = leadingRelative ? 1 : 0,
2270
2271 // The foundational matcher ensures that elements are reachable from top-level context(s)
2272 matchContext = addCombinator( function( elem ) {
2273 return elem === checkContext;
2274 }, implicitRelative, true ),
2275 matchAnyContext = addCombinator( function( elem ) {
2276 return indexOf.call( checkContext, elem ) > -1;
2277 }, implicitRelative, true ),
2278 matchers = [ function( elem, context, xml ) {
2279 return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
2280 (checkContext = context).nodeType ?
2281 matchContext( elem, context, xml ) :
2282 matchAnyContext( elem, context, xml ) );
2283 } ];
2284
2285 for ( ; i < len; i++ ) {
2286 if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
2287 matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
2288 } else {
2289 matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
2290
2291 // Return special upon seeing a positional matcher
2292 if ( matcher[ expando ] ) {
2293 // Find the next relative operator (if any) for proper handling
2294 j = ++i;
2295 for ( ; j < len; j++ ) {
2296 if ( Expr.relative[ tokens[j].type ] ) {
2297 break;
2298 }
2299 }
2300 return setMatcher(
2301 i > 1 && elementMatcher( matchers ),
2302 i > 1 && toSelector(
2303 // If the preceding token was a descendant combinator, insert an implicit any-element `*`
2304 tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
2305 ).replace( rtrim, "$1" ),
2306 matcher,
2307 i < j && matcherFromTokens( tokens.slice( i, j ) ),
2308 j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
2309 j < len && toSelector( tokens )
2310 );
2311 }
2312 matchers.push( matcher );
2313 }
2314 }
2315
2316 return elementMatcher( matchers );
2317}
2318
2319function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
2320 var bySet = setMatchers.length > 0,
2321 byElement = elementMatchers.length > 0,
2322 superMatcher = function( seed, context, xml, results, outermost ) {
2323 var elem, j, matcher,
2324 matchedCount = 0,
2325 i = "0",
2326 unmatched = seed && [],
2327 setMatched = [],
2328 contextBackup = outermostContext,
2329 // We must always have either seed elements or outermost context
2330 elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
2331 // Use integer dirruns iff this is the outermost matcher
2332 dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
2333 len = elems.length;
2334
2335 if ( outermost ) {
2336 outermostContext = context !== document && context;
2337 }
2338
2339 // Add elements passing elementMatchers directly to results
2340 // Keep `i` a string if there are no elements so `matchedCount` will be "00" below
2341 // Support: IE<9, Safari
2342 // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
2343 for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
2344 if ( byElement && elem ) {
2345 j = 0;
2346 while ( (matcher = elementMatchers[j++]) ) {
2347 if ( matcher( elem, context, xml ) ) {
2348 results.push( elem );
2349 break;
2350 }
2351 }
2352 if ( outermost ) {
2353 dirruns = dirrunsUnique;
2354 }
2355 }
2356
2357 // Track unmatched elements for set filters
2358 if ( bySet ) {
2359 // They will have gone through all possible matchers
2360 if ( (elem = !matcher && elem) ) {
2361 matchedCount--;
2362 }
2363
2364 // Lengthen the array for every element, matched or not
2365 if ( seed ) {
2366 unmatched.push( elem );
2367 }
2368 }
2369 }
2370
2371 // Apply set filters to unmatched elements
2372 matchedCount += i;
2373 if ( bySet && i !== matchedCount ) {
2374 j = 0;
2375 while ( (matcher = setMatchers[j++]) ) {
2376 matcher( unmatched, setMatched, context, xml );
2377 }
2378
2379 if ( seed ) {
2380 // Reintegrate element matches to eliminate the need for sorting
2381 if ( matchedCount > 0 ) {
2382 while ( i-- ) {
2383 if ( !(unmatched[i] || setMatched[i]) ) {
2384 setMatched[i] = pop.call( results );
2385 }
2386 }
2387 }
2388
2389 // Discard index placeholder values to get only actual matches
2390 setMatched = condense( setMatched );
2391 }
2392
2393 // Add matches to results
2394 push.apply( results, setMatched );
2395
2396 // Seedless set matches succeeding multiple successful matchers stipulate sorting
2397 if ( outermost && !seed && setMatched.length > 0 &&
2398 ( matchedCount + setMatchers.length ) > 1 ) {
2399
2400 Sizzle.uniqueSort( results );
2401 }
2402 }
2403
2404 // Override manipulation of globals by nested matchers
2405 if ( outermost ) {
2406 dirruns = dirrunsUnique;
2407 outermostContext = contextBackup;
2408 }
2409
2410 return unmatched;
2411 };
2412
2413 return bySet ?
2414 markFunction( superMatcher ) :
2415 superMatcher;
2416}
2417
2418compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
2419 var i,
2420 setMatchers = [],
2421 elementMatchers = [],
2422 cached = compilerCache[ selector + " " ];
2423
2424 if ( !cached ) {
2425 // Generate a function of recursive functions that can be used to check each element
2426 if ( !match ) {
2427 match = tokenize( selector );
2428 }
2429 i = match.length;
2430 while ( i-- ) {
2431 cached = matcherFromTokens( match[i] );
2432 if ( cached[ expando ] ) {
2433 setMatchers.push( cached );
2434 } else {
2435 elementMatchers.push( cached );
2436 }
2437 }
2438
2439 // Cache the compiled function
2440 cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
2441
2442 // Save selector and tokenization
2443 cached.selector = selector;
2444 }
2445 return cached;
2446};
2447
2448/**
2449 * A low-level selection function that works with Sizzle's compiled
2450 * selector functions
2451 * @param {String|Function} selector A selector or a pre-compiled
2452 * selector function built with Sizzle.compile
2453 * @param {Element} context
2454 * @param {Array} [results]
2455 * @param {Array} [seed] A set of elements to match against
2456 */
2457select = Sizzle.select = function( selector, context, results, seed ) {
2458 var i, tokens, token, type, find,
2459 compiled = typeof selector === "function" && selector,
2460 match = !seed && tokenize( (selector = compiled.selector || selector) );
2461
2462 results = results || [];
2463
2464 // Try to minimize operations if there is no seed and only one group
2465 if ( match.length === 1 ) {
2466
2467 // Take a shortcut and set the context if the root selector is an ID
2468 tokens = match[0] = match[0].slice( 0 );
2469 if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
2470 support.getById && context.nodeType === 9 && documentIsHTML &&
2471 Expr.relative[ tokens[1].type ] ) {
2472
2473 context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
2474 if ( !context ) {
2475 return results;
2476
2477 // Precompiled matchers will still verify ancestry, so step up a level
2478 } else if ( compiled ) {
2479 context = context.parentNode;
2480 }
2481
2482 selector = selector.slice( tokens.shift().value.length );
2483 }
2484
2485 // Fetch a seed set for right-to-left matching
2486 i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
2487 while ( i-- ) {
2488 token = tokens[i];
2489
2490 // Abort if we hit a combinator
2491 if ( Expr.relative[ (type = token.type) ] ) {
2492 break;
2493 }
2494 if ( (find = Expr.find[ type ]) ) {
2495 // Search, expanding context for leading sibling combinators
2496 if ( (seed = find(
2497 token.matches[0].replace( runescape, funescape ),
2498 rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
2499 )) ) {
2500
2501 // If seed is empty or no tokens remain, we can return early
2502 tokens.splice( i, 1 );
2503 selector = seed.length && toSelector( tokens );
2504 if ( !selector ) {
2505 push.apply( results, seed );
2506 return results;
2507 }
2508
2509 break;
2510 }
2511 }
2512 }
2513 }
2514
2515 // Compile and execute a filtering function if one is not provided
2516 // Provide `match` to avoid retokenization if we modified the selector above
2517 ( compiled || compile( selector, match ) )(
2518 seed,
2519 context,
2520 !documentIsHTML,
2521 results,
2522 rsibling.test( selector ) && testContext( context.parentNode ) || context
2523 );
2524 return results;
2525};
2526
2527// One-time assignments
2528
2529// Sort stability
2530support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
2531
2532// Support: Chrome<14
2533// Always assume duplicates if they aren't passed to the comparison function
2534support.detectDuplicates = !!hasDuplicate;
2535
2536// Initialize against the default document
2537setDocument();
2538
2539// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
2540// Detached nodes confoundingly follow *each other*
2541support.sortDetached = assert(function( div1 ) {
2542 // Should return 1, but returns 4 (following)
2543 return div1.compareDocumentPosition( document.createElement("div") ) & 1;
2544});
2545
2546// Support: IE<8
2547// Prevent attribute/property "interpolation"
2548// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
2549if ( !assert(function( div ) {
2550 div.innerHTML = "<a href='#'></a>";
2551 return div.firstChild.getAttribute("href") === "#" ;
2552}) ) {
2553 addHandle( "type|href|height|width", function( elem, name, isXML ) {
2554 if ( !isXML ) {
2555 return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
2556 }
2557 });
2558}
2559
2560// Support: IE<9
2561// Use defaultValue in place of getAttribute("value")
2562if ( !support.attributes || !assert(function( div ) {
2563 div.innerHTML = "<input/>";
2564 div.firstChild.setAttribute( "value", "" );
2565 return div.firstChild.getAttribute( "value" ) === "";
2566}) ) {
2567 addHandle( "value", function( elem, name, isXML ) {
2568 if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
2569 return elem.defaultValue;
2570 }
2571 });
2572}
2573
2574// Support: IE<9
2575// Use getAttributeNode to fetch booleans when getAttribute lies
2576if ( !assert(function( div ) {
2577 return div.getAttribute("disabled") == null;
2578}) ) {
2579 addHandle( booleans, function( elem, name, isXML ) {
2580 var val;
2581 if ( !isXML ) {
2582 return elem[ name ] === true ? name.toLowerCase() :
2583 (val = elem.getAttributeNode( name )) && val.specified ?
2584 val.value :
2585 null;
2586 }
2587 });
2588}
2589
2590return Sizzle;
2591
2592})( window );
2593
2594
2595
2596jQuery.find = Sizzle;
2597jQuery.expr = Sizzle.selectors;
2598jQuery.expr[":"] = jQuery.expr.pseudos;
2599jQuery.unique = Sizzle.uniqueSort;
2600jQuery.text = Sizzle.getText;
2601jQuery.isXMLDoc = Sizzle.isXML;
2602jQuery.contains = Sizzle.contains;
2603
2604
2605
2606var rneedsContext = jQuery.expr.match.needsContext;
2607
2608var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/);
2609
2610
2611
2612var risSimple = /^.[^:#\[\.,]*$/;
2613
2614// Implement the identical functionality for filter and not
2615function winnow( elements, qualifier, not ) {
2616 if ( jQuery.isFunction( qualifier ) ) {
2617 return jQuery.grep( elements, function( elem, i ) {
2618 /* jshint -W018 */
2619 return !!qualifier.call( elem, i, elem ) !== not;
2620 });
2621
2622 }
2623
2624 if ( qualifier.nodeType ) {
2625 return jQuery.grep( elements, function( elem ) {
2626 return ( elem === qualifier ) !== not;
2627 });
2628
2629 }
2630
2631 if ( typeof qualifier === "string" ) {
2632 if ( risSimple.test( qualifier ) ) {
2633 return jQuery.filter( qualifier, elements, not );
2634 }
2635
2636 qualifier = jQuery.filter( qualifier, elements );
2637 }
2638
2639 return jQuery.grep( elements, function( elem ) {
2640 return ( indexOf.call( qualifier, elem ) >= 0 ) !== not;
2641 });
2642}
2643
2644jQuery.filter = function( expr, elems, not ) {
2645 var elem = elems[ 0 ];
2646
2647 if ( not ) {
2648 expr = ":not(" + expr + ")";
2649 }
2650
2651 return elems.length === 1 && elem.nodeType === 1 ?
2652 jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
2653 jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
2654 return elem.nodeType === 1;
2655 }));
2656};
2657
2658jQuery.fn.extend({
2659 find: function( selector ) {
2660 var i,
2661 len = this.length,
2662 ret = [],
2663 self = this;
2664
2665 if ( typeof selector !== "string" ) {
2666 return this.pushStack( jQuery( selector ).filter(function() {
2667 for ( i = 0; i < len; i++ ) {
2668 if ( jQuery.contains( self[ i ], this ) ) {
2669 return true;
2670 }
2671 }
2672 }) );
2673 }
2674
2675 for ( i = 0; i < len; i++ ) {
2676 jQuery.find( selector, self[ i ], ret );
2677 }
2678
2679 // Needed because $( selector, context ) becomes $( context ).find( selector )
2680 ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
2681 ret.selector = this.selector ? this.selector + " " + selector : selector;
2682 return ret;
2683 },
2684 filter: function( selector ) {
2685 return this.pushStack( winnow(this, selector || [], false) );
2686 },
2687 not: function( selector ) {
2688 return this.pushStack( winnow(this, selector || [], true) );
2689 },
2690 is: function( selector ) {
2691 return !!winnow(
2692 this,
2693
2694 // If this is a positional/relative selector, check membership in the returned set
2695 // so $("p:first").is("p:last") won't return true for a doc with two "p".
2696 typeof selector === "string" && rneedsContext.test( selector ) ?
2697 jQuery( selector ) :
2698 selector || [],
2699 false
2700 ).length;
2701 }
2702});
2703
2704
2705// Initialize a jQuery object
2706
2707
2708// A central reference to the root jQuery(document)
2709var rootjQuery,
2710
2711 // A simple way to check for HTML strings
2712 // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
2713 // Strict HTML recognition (#11290: must start with <)
2714 rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
2715
2716 init = jQuery.fn.init = function( selector, context ) {
2717 var match, elem;
2718
2719 // HANDLE: $(""), $(null), $(undefined), $(false)
2720 if ( !selector ) {
2721 return this;
2722 }
2723
2724 // Handle HTML strings
2725 if ( typeof selector === "string" ) {
2726 if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) {
2727 // Assume that strings that start and end with <> are HTML and skip the regex check
2728 match = [ null, selector, null ];
2729
2730 } else {
2731 match = rquickExpr.exec( selector );
2732 }
2733
2734 // Match html or make sure no context is specified for #id
2735 if ( match && (match[1] || !context) ) {
2736
2737 // HANDLE: $(html) -> $(array)
2738 if ( match[1] ) {
2739 context = context instanceof jQuery ? context[0] : context;
2740
2741 // scripts is true for back-compat
2742 // Intentionally let the error be thrown if parseHTML is not present
2743 jQuery.merge( this, jQuery.parseHTML(
2744 match[1],
2745 context && context.nodeType ? context.ownerDocument || context : document,
2746 true
2747 ) );
2748
2749 // HANDLE: $(html, props)
2750 if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
2751 for ( match in context ) {
2752 // Properties of context are called as methods if possible
2753 if ( jQuery.isFunction( this[ match ] ) ) {
2754 this[ match ]( context[ match ] );
2755
2756 // ...and otherwise set as attributes
2757 } else {
2758 this.attr( match, context[ match ] );
2759 }
2760 }
2761 }
2762
2763 return this;
2764
2765 // HANDLE: $(#id)
2766 } else {
2767 elem = document.getElementById( match[2] );
2768
2769 // Check parentNode to catch when Blackberry 4.6 returns
2770 // nodes that are no longer in the document #6963
2771 if ( elem && elem.parentNode ) {
2772 // Inject the element directly into the jQuery object
2773 this.length = 1;
2774 this[0] = elem;
2775 }
2776
2777 this.context = document;
2778 this.selector = selector;
2779 return this;
2780 }
2781
2782 // HANDLE: $(expr, $(...))
2783 } else if ( !context || context.jquery ) {
2784 return ( context || rootjQuery ).find( selector );
2785
2786 // HANDLE: $(expr, context)
2787 // (which is just equivalent to: $(context).find(expr)
2788 } else {
2789 return this.constructor( context ).find( selector );
2790 }
2791
2792 // HANDLE: $(DOMElement)
2793 } else if ( selector.nodeType ) {
2794 this.context = this[0] = selector;
2795 this.length = 1;
2796 return this;
2797
2798 // HANDLE: $(function)
2799 // Shortcut for document ready
2800 } else if ( jQuery.isFunction( selector ) ) {
2801 return typeof rootjQuery.ready !== "undefined" ?
2802 rootjQuery.ready( selector ) :
2803 // Execute immediately if ready is not present
2804 selector( jQuery );
2805 }
2806
2807 if ( selector.selector !== undefined ) {
2808 this.selector = selector.selector;
2809 this.context = selector.context;
2810 }
2811
2812 return jQuery.makeArray( selector, this );
2813 };
2814
2815// Give the init function the jQuery prototype for later instantiation
2816init.prototype = jQuery.fn;
2817
2818// Initialize central reference
2819rootjQuery = jQuery( document );
2820
2821
2822var rparentsprev = /^(?:parents|prev(?:Until|All))/,
2823 // methods guaranteed to produce a unique set when starting from a unique set
2824 guaranteedUnique = {
2825 children: true,
2826 contents: true,
2827 next: true,
2828 prev: true
2829 };
2830
2831jQuery.extend({
2832 dir: function( elem, dir, until ) {
2833 var matched = [],
2834 truncate = until !== undefined;
2835
2836 while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {
2837 if ( elem.nodeType === 1 ) {
2838 if ( truncate && jQuery( elem ).is( until ) ) {
2839 break;
2840 }
2841 matched.push( elem );
2842 }
2843 }
2844 return matched;
2845 },
2846
2847 sibling: function( n, elem ) {
2848 var matched = [];
2849
2850 for ( ; n; n = n.nextSibling ) {
2851 if ( n.nodeType === 1 && n !== elem ) {
2852 matched.push( n );
2853 }
2854 }
2855
2856 return matched;
2857 }
2858});
2859
2860jQuery.fn.extend({
2861 has: function( target ) {
2862 var targets = jQuery( target, this ),
2863 l = targets.length;
2864
2865 return this.filter(function() {
2866 var i = 0;
2867 for ( ; i < l; i++ ) {
2868 if ( jQuery.contains( this, targets[i] ) ) {
2869 return true;
2870 }
2871 }
2872 });
2873 },
2874
2875 closest: function( selectors, context ) {
2876 var cur,
2877 i = 0,
2878 l = this.length,
2879 matched = [],
2880 pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
2881 jQuery( selectors, context || this.context ) :
2882 0;
2883
2884 for ( ; i < l; i++ ) {
2885 for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
2886 // Always skip document fragments
2887 if ( cur.nodeType < 11 && (pos ?
2888 pos.index(cur) > -1 :
2889
2890 // Don't pass non-elements to Sizzle
2891 cur.nodeType === 1 &&
2892 jQuery.find.matchesSelector(cur, selectors)) ) {
2893
2894 matched.push( cur );
2895 break;
2896 }
2897 }
2898 }
2899
2900 return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );
2901 },
2902
2903 // Determine the position of an element within
2904 // the matched set of elements
2905 index: function( elem ) {
2906
2907 // No argument, return index in parent
2908 if ( !elem ) {
2909 return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
2910 }
2911
2912 // index in selector
2913 if ( typeof elem === "string" ) {
2914 return indexOf.call( jQuery( elem ), this[ 0 ] );
2915 }
2916
2917 // Locate the position of the desired element
2918 return indexOf.call( this,
2919
2920 // If it receives a jQuery object, the first element is used
2921 elem.jquery ? elem[ 0 ] : elem
2922 );
2923 },
2924
2925 add: function( selector, context ) {
2926 return this.pushStack(
2927 jQuery.unique(
2928 jQuery.merge( this.get(), jQuery( selector, context ) )
2929 )
2930 );
2931 },
2932
2933 addBack: function( selector ) {
2934 return this.add( selector == null ?
2935 this.prevObject : this.prevObject.filter(selector)
2936 );
2937 }
2938});
2939
2940function sibling( cur, dir ) {
2941 while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}
2942 return cur;
2943}
2944
2945jQuery.each({
2946 parent: function( elem ) {
2947 var parent = elem.parentNode;
2948 return parent && parent.nodeType !== 11 ? parent : null;
2949 },
2950 parents: function( elem ) {
2951 return jQuery.dir( elem, "parentNode" );
2952 },
2953 parentsUntil: function( elem, i, until ) {
2954 return jQuery.dir( elem, "parentNode", until );
2955 },
2956 next: function( elem ) {
2957 return sibling( elem, "nextSibling" );
2958 },
2959 prev: function( elem ) {
2960 return sibling( elem, "previousSibling" );
2961 },
2962 nextAll: function( elem ) {
2963 return jQuery.dir( elem, "nextSibling" );
2964 },
2965 prevAll: function( elem ) {
2966 return jQuery.dir( elem, "previousSibling" );
2967 },
2968 nextUntil: function( elem, i, until ) {
2969 return jQuery.dir( elem, "nextSibling", until );
2970 },
2971 prevUntil: function( elem, i, until ) {
2972 return jQuery.dir( elem, "previousSibling", until );
2973 },
2974 siblings: function( elem ) {
2975 return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
2976 },
2977 children: function( elem ) {
2978 return jQuery.sibling( elem.firstChild );
2979 },
2980 contents: function( elem ) {
2981 return elem.contentDocument || jQuery.merge( [], elem.childNodes );
2982 }
2983}, function( name, fn ) {
2984 jQuery.fn[ name ] = function( until, selector ) {
2985 var matched = jQuery.map( this, fn, until );
2986
2987 if ( name.slice( -5 ) !== "Until" ) {
2988 selector = until;
2989 }
2990
2991 if ( selector && typeof selector === "string" ) {
2992 matched = jQuery.filter( selector, matched );
2993 }
2994
2995 if ( this.length > 1 ) {
2996 // Remove duplicates
2997 if ( !guaranteedUnique[ name ] ) {
2998 jQuery.unique( matched );
2999 }
3000
3001 // Reverse order for parents* and prev-derivatives
3002 if ( rparentsprev.test( name ) ) {
3003 matched.reverse();
3004 }
3005 }
3006
3007 return this.pushStack( matched );
3008 };
3009});
3010var rnotwhite = (/\S+/g);
3011
3012
3013
3014// String to Object options format cache
3015var optionsCache = {};
3016
3017// Convert String-formatted options into Object-formatted ones and store in cache
3018function createOptions( options ) {
3019 var object = optionsCache[ options ] = {};
3020 jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
3021 object[ flag ] = true;
3022 });
3023 return object;
3024}
3025
3026/*
3027 * Create a callback list using the following parameters:
3028 *
3029 * options: an optional list of space-separated options that will change how
3030 * the callback list behaves or a more traditional option object
3031 *
3032 * By default a callback list will act like an event callback list and can be
3033 * "fired" multiple times.
3034 *
3035 * Possible options:
3036 *
3037 * once: will ensure the callback list can only be fired once (like a Deferred)
3038 *
3039 * memory: will keep track of previous values and will call any callback added
3040 * after the list has been fired right away with the latest "memorized"
3041 * values (like a Deferred)
3042 *
3043 * unique: will ensure a callback can only be added once (no duplicate in the list)
3044 *
3045 * stopOnFalse: interrupt callings when a callback returns false
3046 *
3047 */
3048jQuery.Callbacks = function( options ) {
3049
3050 // Convert options from String-formatted to Object-formatted if needed
3051 // (we check in cache first)
3052 options = typeof options === "string" ?
3053 ( optionsCache[ options ] || createOptions( options ) ) :
3054 jQuery.extend( {}, options );
3055
3056 var // Last fire value (for non-forgettable lists)
3057 memory,
3058 // Flag to know if list was already fired
3059 fired,
3060 // Flag to know if list is currently firing
3061 firing,
3062 // First callback to fire (used internally by add and fireWith)
3063 firingStart,
3064 // End of the loop when firing
3065 firingLength,
3066 // Index of currently firing callback (modified by remove if needed)
3067 firingIndex,
3068 // Actual callback list
3069 list = [],
3070 // Stack of fire calls for repeatable lists
3071 stack = !options.once && [],
3072 // Fire callbacks
3073 fire = function( data ) {
3074 memory = options.memory && data;
3075 fired = true;
3076 firingIndex = firingStart || 0;
3077 firingStart = 0;
3078 firingLength = list.length;
3079 firing = true;
3080 for ( ; list && firingIndex < firingLength; firingIndex++ ) {
3081 if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
3082 memory = false; // To prevent further calls using add
3083 break;
3084 }
3085 }
3086 firing = false;
3087 if ( list ) {
3088 if ( stack ) {
3089 if ( stack.length ) {
3090 fire( stack.shift() );
3091 }
3092 } else if ( memory ) {
3093 list = [];
3094 } else {
3095 self.disable();
3096 }
3097 }
3098 },
3099 // Actual Callbacks object
3100 self = {
3101 // Add a callback or a collection of callbacks to the list
3102 add: function() {
3103 if ( list ) {
3104 // First, we save the current length
3105 var start = list.length;
3106 (function add( args ) {
3107 jQuery.each( args, function( _, arg ) {
3108 var type = jQuery.type( arg );
3109 if ( type === "function" ) {
3110 if ( !options.unique || !self.has( arg ) ) {
3111 list.push( arg );
3112 }
3113 } else if ( arg && arg.length && type !== "string" ) {
3114 // Inspect recursively
3115 add( arg );
3116 }
3117 });
3118 })( arguments );
3119 // Do we need to add the callbacks to the
3120 // current firing batch?
3121 if ( firing ) {
3122 firingLength = list.length;
3123 // With memory, if we're not firing then
3124 // we should call right away
3125 } else if ( memory ) {
3126 firingStart = start;
3127 fire( memory );
3128 }
3129 }
3130 return this;
3131 },
3132 // Remove a callback from the list
3133 remove: function() {
3134 if ( list ) {
3135 jQuery.each( arguments, function( _, arg ) {
3136 var index;
3137 while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
3138 list.splice( index, 1 );
3139 // Handle firing indexes
3140 if ( firing ) {
3141 if ( index <= firingLength ) {
3142 firingLength--;
3143 }
3144 if ( index <= firingIndex ) {
3145 firingIndex--;
3146 }
3147 }
3148 }
3149 });
3150 }
3151 return this;
3152 },
3153 // Check if a given callback is in the list.
3154 // If no argument is given, return whether or not list has callbacks attached.
3155 has: function( fn ) {
3156 return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
3157 },
3158 // Remove all callbacks from the list
3159 empty: function() {
3160 list = [];
3161 firingLength = 0;
3162 return this;
3163 },
3164 // Have the list do nothing anymore
3165 disable: function() {
3166 list = stack = memory = undefined;
3167 return this;
3168 },
3169 // Is it disabled?
3170 disabled: function() {
3171 return !list;
3172 },
3173 // Lock the list in its current state
3174 lock: function() {
3175 stack = undefined;
3176 if ( !memory ) {
3177 self.disable();
3178 }
3179 return this;
3180 },
3181 // Is it locked?
3182 locked: function() {
3183 return !stack;
3184 },
3185 // Call all callbacks with the given context and arguments
3186 fireWith: function( context, args ) {
3187 if ( list && ( !fired || stack ) ) {
3188 args = args || [];
3189 args = [ context, args.slice ? args.slice() : args ];
3190 if ( firing ) {
3191 stack.push( args );
3192 } else {
3193 fire( args );
3194 }
3195 }
3196 return this;
3197 },
3198 // Call all the callbacks with the given arguments
3199 fire: function() {
3200 self.fireWith( this, arguments );
3201 return this;
3202 },
3203 // To know if the callbacks have already been called at least once
3204 fired: function() {
3205 return !!fired;
3206 }
3207 };
3208
3209 return self;
3210};
3211
3212
3213jQuery.extend({
3214
3215 Deferred: function( func ) {
3216 var tuples = [
3217 // action, add listener, listener list, final state
3218 [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
3219 [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
3220 [ "notify", "progress", jQuery.Callbacks("memory") ]
3221 ],
3222 state = "pending",
3223 promise = {
3224 state: function() {
3225 return state;
3226 },
3227 always: function() {
3228 deferred.done( arguments ).fail( arguments );
3229 return this;
3230 },
3231 then: function( /* fnDone, fnFail, fnProgress */ ) {
3232 var fns = arguments;
3233 return jQuery.Deferred(function( newDefer ) {
3234 jQuery.each( tuples, function( i, tuple ) {
3235 var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
3236 // deferred[ done | fail | progress ] for forwarding actions to newDefer
3237 deferred[ tuple[1] ](function() {
3238 var returned = fn && fn.apply( this, arguments );
3239 if ( returned && jQuery.isFunction( returned.promise ) ) {
3240 returned.promise()
3241 .done( newDefer.resolve )
3242 .fail( newDefer.reject )
3243 .progress( newDefer.notify );
3244 } else {
3245 newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
3246 }
3247 });
3248 });
3249 fns = null;
3250 }).promise();
3251 },
3252 // Get a promise for this deferred
3253 // If obj is provided, the promise aspect is added to the object
3254 promise: function( obj ) {
3255 return obj != null ? jQuery.extend( obj, promise ) : promise;
3256 }
3257 },
3258 deferred = {};
3259
3260 // Keep pipe for back-compat
3261 promise.pipe = promise.then;
3262
3263 // Add list-specific methods
3264 jQuery.each( tuples, function( i, tuple ) {
3265 var list = tuple[ 2 ],
3266 stateString = tuple[ 3 ];
3267
3268 // promise[ done | fail | progress ] = list.add
3269 promise[ tuple[1] ] = list.add;
3270
3271 // Handle state
3272 if ( stateString ) {
3273 list.add(function() {
3274 // state = [ resolved | rejected ]
3275 state = stateString;
3276
3277 // [ reject_list | resolve_list ].disable; progress_list.lock
3278 }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
3279 }
3280
3281 // deferred[ resolve | reject | notify ]
3282 deferred[ tuple[0] ] = function() {
3283 deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
3284 return this;
3285 };
3286 deferred[ tuple[0] + "With" ] = list.fireWith;
3287 });
3288
3289 // Make the deferred a promise
3290 promise.promise( deferred );
3291
3292 // Call given func if any
3293 if ( func ) {
3294 func.call( deferred, deferred );
3295 }
3296
3297 // All done!
3298 return deferred;
3299 },
3300
3301 // Deferred helper
3302 when: function( subordinate /* , ..., subordinateN */ ) {
3303 var i = 0,
3304 resolveValues = slice.call( arguments ),
3305 length = resolveValues.length,
3306
3307 // the count of uncompleted subordinates
3308 remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
3309
3310 // the master Deferred. If resolveValues consist of only a single Deferred, just use that.
3311 deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
3312
3313 // Update function for both resolve and progress values
3314 updateFunc = function( i, contexts, values ) {
3315 return function( value ) {
3316 contexts[ i ] = this;
3317 values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
3318 if ( values === progressValues ) {
3319 deferred.notifyWith( contexts, values );
3320 } else if ( !( --remaining ) ) {
3321 deferred.resolveWith( contexts, values );
3322 }
3323 };
3324 },
3325
3326 progressValues, progressContexts, resolveContexts;
3327
3328 // add listeners to Deferred subordinates; treat others as resolved
3329 if ( length > 1 ) {
3330 progressValues = new Array( length );
3331 progressContexts = new Array( length );
3332 resolveContexts = new Array( length );
3333 for ( ; i < length; i++ ) {
3334 if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
3335 resolveValues[ i ].promise()
3336 .done( updateFunc( i, resolveContexts, resolveValues ) )
3337 .fail( deferred.reject )
3338 .progress( updateFunc( i, progressContexts, progressValues ) );
3339 } else {
3340 --remaining;
3341 }
3342 }
3343 }
3344
3345 // if we're not waiting on anything, resolve the master
3346 if ( !remaining ) {
3347 deferred.resolveWith( resolveContexts, resolveValues );
3348 }
3349
3350 return deferred.promise();
3351 }
3352});
3353
3354
3355// The deferred used on DOM ready
3356var readyList;
3357
3358jQuery.fn.ready = function( fn ) {
3359 // Add the callback
3360 jQuery.ready.promise().done( fn );
3361
3362 return this;
3363};
3364
3365jQuery.extend({
3366 // Is the DOM ready to be used? Set to true once it occurs.
3367 isReady: false,
3368
3369 // A counter to track how many items to wait for before
3370 // the ready event fires. See #6781
3371 readyWait: 1,
3372
3373 // Hold (or release) the ready event
3374 holdReady: function( hold ) {
3375 if ( hold ) {
3376 jQuery.readyWait++;
3377 } else {
3378 jQuery.ready( true );
3379 }
3380 },
3381
3382 // Handle when the DOM is ready
3383 ready: function( wait ) {
3384
3385 // Abort if there are pending holds or we're already ready
3386 if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
3387 return;
3388 }
3389
3390 // Remember that the DOM is ready
3391 jQuery.isReady = true;
3392
3393 // If a normal DOM Ready event fired, decrement, and wait if need be
3394 if ( wait !== true && --jQuery.readyWait > 0 ) {
3395 return;
3396 }
3397
3398 // If there are functions bound, to execute
3399 readyList.resolveWith( document, [ jQuery ] );
3400
3401 // Trigger any bound ready events
3402 if ( jQuery.fn.triggerHandler ) {
3403 jQuery( document ).triggerHandler( "ready" );
3404 jQuery( document ).off( "ready" );
3405 }
3406 }
3407});
3408
3409/**
3410 * The ready event handler and self cleanup method
3411 */
3412function completed() {
3413 document.removeEventListener( "DOMContentLoaded", completed, false );
3414 window.removeEventListener( "load", completed, false );
3415 jQuery.ready();
3416}
3417
3418jQuery.ready.promise = function( obj ) {
3419 if ( !readyList ) {
3420
3421 readyList = jQuery.Deferred();
3422
3423 // Catch cases where $(document).ready() is called after the browser event has already occurred.
3424 // we once tried to use readyState "interactive" here, but it caused issues like the one
3425 // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
3426 if ( document.readyState === "complete" ) {
3427 // Handle it asynchronously to allow scripts the opportunity to delay ready
3428 setTimeout( jQuery.ready );
3429
3430 } else {
3431
3432 // Use the handy event callback
3433 document.addEventListener( "DOMContentLoaded", completed, false );
3434
3435 // A fallback to window.onload, that will always work
3436 window.addEventListener( "load", completed, false );
3437 }
3438 }
3439 return readyList.promise( obj );
3440};
3441
3442// Kick off the DOM ready check even if the user does not
3443jQuery.ready.promise();
3444
3445
3446
3447
3448// Multifunctional method to get and set values of a collection
3449// The value/s can optionally be executed if it's a function
3450var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
3451 var i = 0,
3452 len = elems.length,
3453 bulk = key == null;
3454
3455 // Sets many values
3456 if ( jQuery.type( key ) === "object" ) {
3457 chainable = true;
3458 for ( i in key ) {
3459 jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
3460 }
3461
3462 // Sets one value
3463 } else if ( value !== undefined ) {
3464 chainable = true;
3465
3466 if ( !jQuery.isFunction( value ) ) {
3467 raw = true;
3468 }
3469
3470 if ( bulk ) {
3471 // Bulk operations run against the entire set
3472 if ( raw ) {
3473 fn.call( elems, value );
3474 fn = null;
3475
3476 // ...except when executing function values
3477 } else {
3478 bulk = fn;
3479 fn = function( elem, key, value ) {
3480 return bulk.call( jQuery( elem ), value );
3481 };
3482 }
3483 }
3484
3485 if ( fn ) {
3486 for ( ; i < len; i++ ) {
3487 fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
3488 }
3489 }
3490 }
3491
3492 return chainable ?
3493 elems :
3494
3495 // Gets
3496 bulk ?
3497 fn.call( elems ) :
3498 len ? fn( elems[0], key ) : emptyGet;
3499};
3500
3501
3502/**
3503 * Determines whether an object can have data
3504 */
3505jQuery.acceptData = function( owner ) {
3506 // Accepts only:
3507 // - Node
3508 // - Node.ELEMENT_NODE
3509 // - Node.DOCUMENT_NODE
3510 // - Object
3511 // - Any
3512 /* jshint -W018 */
3513 return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
3514};
3515
3516
3517function Data() {
3518 // Support: Android < 4,
3519 // Old WebKit does not have Object.preventExtensions/freeze method,
3520 // return new empty object instead with no [[set]] accessor
3521 Object.defineProperty( this.cache = {}, 0, {
3522 get: function() {
3523 return {};
3524 }
3525 });
3526
3527 this.expando = jQuery.expando + Math.random();
3528}
3529
3530Data.uid = 1;
3531Data.accepts = jQuery.acceptData;
3532
3533Data.prototype = {
3534 key: function( owner ) {
3535 // We can accept data for non-element nodes in modern browsers,
3536 // but we should not, see #8335.
3537 // Always return the key for a frozen object.
3538 if ( !Data.accepts( owner ) ) {
3539 return 0;
3540 }
3541
3542 var descriptor = {},
3543 // Check if the owner object already has a cache key
3544 unlock = owner[ this.expando ];
3545
3546 // If not, create one
3547 if ( !unlock ) {
3548 unlock = Data.uid++;
3549
3550 // Secure it in a non-enumerable, non-writable property
3551 try {
3552 descriptor[ this.expando ] = { value: unlock };
3553 Object.defineProperties( owner, descriptor );
3554
3555 // Support: Android < 4
3556 // Fallback to a less secure definition
3557 } catch ( e ) {
3558 descriptor[ this.expando ] = unlock;
3559 jQuery.extend( owner, descriptor );
3560 }
3561 }
3562
3563 // Ensure the cache object
3564 if ( !this.cache[ unlock ] ) {
3565 this.cache[ unlock ] = {};
3566 }
3567
3568 return unlock;
3569 },
3570 set: function( owner, data, value ) {
3571 var prop,
3572 // There may be an unlock assigned to this node,
3573 // if there is no entry for this "owner", create one inline
3574 // and set the unlock as though an owner entry had always existed
3575 unlock = this.key( owner ),
3576 cache = this.cache[ unlock ];
3577
3578 // Handle: [ owner, key, value ] args
3579 if ( typeof data === "string" ) {
3580 cache[ data ] = value;
3581
3582 // Handle: [ owner, { properties } ] args
3583 } else {
3584 // Fresh assignments by object are shallow copied
3585 if ( jQuery.isEmptyObject( cache ) ) {
3586 jQuery.extend( this.cache[ unlock ], data );
3587 // Otherwise, copy the properties one-by-one to the cache object
3588 } else {
3589 for ( prop in data ) {
3590 cache[ prop ] = data[ prop ];
3591 }
3592 }
3593 }
3594 return cache;
3595 },
3596 get: function( owner, key ) {
3597 // Either a valid cache is found, or will be created.
3598 // New caches will be created and the unlock returned,
3599 // allowing direct access to the newly created
3600 // empty data object. A valid owner object must be provided.
3601 var cache = this.cache[ this.key( owner ) ];
3602
3603 return key === undefined ?
3604 cache : cache[ key ];
3605 },
3606 access: function( owner, key, value ) {
3607 var stored;
3608 // In cases where either:
3609 //
3610 // 1. No key was specified
3611 // 2. A string key was specified, but no value provided
3612 //
3613 // Take the "read" path and allow the get method to determine
3614 // which value to return, respectively either:
3615 //
3616 // 1. The entire cache object
3617 // 2. The data stored at the key
3618 //
3619 if ( key === undefined ||
3620 ((key && typeof key === "string") && value === undefined) ) {
3621
3622 stored = this.get( owner, key );
3623
3624 return stored !== undefined ?
3625 stored : this.get( owner, jQuery.camelCase(key) );
3626 }
3627
3628 // [*]When the key is not a string, or both a key and value
3629 // are specified, set or extend (existing objects) with either:
3630 //
3631 // 1. An object of properties
3632 // 2. A key and value
3633 //
3634 this.set( owner, key, value );
3635
3636 // Since the "set" path can have two possible entry points
3637 // return the expected data based on which path was taken[*]
3638 return value !== undefined ? value : key;
3639 },
3640 remove: function( owner, key ) {
3641 var i, name, camel,
3642 unlock = this.key( owner ),
3643 cache = this.cache[ unlock ];
3644
3645 if ( key === undefined ) {
3646 this.cache[ unlock ] = {};
3647
3648 } else {
3649 // Support array or space separated string of keys
3650 if ( jQuery.isArray( key ) ) {
3651 // If "name" is an array of keys...
3652 // When data is initially created, via ("key", "val") signature,
3653 // keys will be converted to camelCase.
3654 // Since there is no way to tell _how_ a key was added, remove
3655 // both plain key and camelCase key. #12786
3656 // This will only penalize the array argument path.
3657 name = key.concat( key.map( jQuery.camelCase ) );
3658 } else {
3659 camel = jQuery.camelCase( key );
3660 // Try the string as a key before any manipulation
3661 if ( key in cache ) {
3662 name = [ key, camel ];
3663 } else {
3664 // If a key with the spaces exists, use it.
3665 // Otherwise, create an array by matching non-whitespace
3666 name = camel;
3667 name = name in cache ?
3668 [ name ] : ( name.match( rnotwhite ) || [] );
3669 }
3670 }
3671
3672 i = name.length;
3673 while ( i-- ) {
3674 delete cache[ name[ i ] ];
3675 }
3676 }
3677 },
3678 hasData: function( owner ) {
3679 return !jQuery.isEmptyObject(
3680 this.cache[ owner[ this.expando ] ] || {}
3681 );
3682 },
3683 discard: function( owner ) {
3684 if ( owner[ this.expando ] ) {
3685 delete this.cache[ owner[ this.expando ] ];
3686 }
3687 }
3688};
3689var data_priv = new Data();
3690
3691var data_user = new Data();
3692
3693
3694
3695/*
3696 Implementation Summary
3697
3698 1. Enforce API surface and semantic compatibility with 1.9.x branch
3699 2. Improve the module's maintainability by reducing the storage
3700 paths to a single mechanism.
3701 3. Use the same single mechanism to support "private" and "user" data.
3702 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
3703 5. Avoid exposing implementation details on user objects (eg. expando properties)
3704 6. Provide a clear path for implementation upgrade to WeakMap in 2014
3705*/
3706var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
3707 rmultiDash = /([A-Z])/g;
3708
3709function dataAttr( elem, key, data ) {
3710 var name;
3711
3712 // If nothing was found internally, try to fetch any
3713 // data from the HTML5 data-* attribute
3714 if ( data === undefined && elem.nodeType === 1 ) {
3715 name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
3716 data = elem.getAttribute( name );
3717
3718 if ( typeof data === "string" ) {
3719 try {
3720 data = data === "true" ? true :
3721 data === "false" ? false :
3722 data === "null" ? null :
3723 // Only convert to a number if it doesn't change the string
3724 +data + "" === data ? +data :
3725 rbrace.test( data ) ? jQuery.parseJSON( data ) :
3726 data;
3727 } catch( e ) {}
3728
3729 // Make sure we set the data so it isn't changed later
3730 data_user.set( elem, key, data );
3731 } else {
3732 data = undefined;
3733 }
3734 }
3735 return data;
3736}
3737
3738jQuery.extend({
3739 hasData: function( elem ) {
3740 return data_user.hasData( elem ) || data_priv.hasData( elem );
3741 },
3742
3743 data: function( elem, name, data ) {
3744 return data_user.access( elem, name, data );
3745 },
3746
3747 removeData: function( elem, name ) {
3748 data_user.remove( elem, name );
3749 },
3750
3751 // TODO: Now that all calls to _data and _removeData have been replaced
3752 // with direct calls to data_priv methods, these can be deprecated.
3753 _data: function( elem, name, data ) {
3754 return data_priv.access( elem, name, data );
3755 },
3756
3757 _removeData: function( elem, name ) {
3758 data_priv.remove( elem, name );
3759 }
3760});
3761
3762jQuery.fn.extend({
3763 data: function( key, value ) {
3764 var i, name, data,
3765 elem = this[ 0 ],
3766 attrs = elem && elem.attributes;
3767
3768 // Gets all values
3769 if ( key === undefined ) {
3770 if ( this.length ) {
3771 data = data_user.get( elem );
3772
3773 if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) {
3774 i = attrs.length;
3775 while ( i-- ) {
3776
3777 // Support: IE11+
3778 // The attrs elements can be null (#14894)
3779 if ( attrs[ i ] ) {
3780 name = attrs[ i ].name;
3781 if ( name.indexOf( "data-" ) === 0 ) {
3782 name = jQuery.camelCase( name.slice(5) );
3783 dataAttr( elem, name, data[ name ] );
3784 }
3785 }
3786 }
3787 data_priv.set( elem, "hasDataAttrs", true );
3788 }
3789 }
3790
3791 return data;
3792 }
3793
3794 // Sets multiple values
3795 if ( typeof key === "object" ) {
3796 return this.each(function() {
3797 data_user.set( this, key );
3798 });
3799 }
3800
3801 return access( this, function( value ) {
3802 var data,
3803 camelKey = jQuery.camelCase( key );
3804
3805 // The calling jQuery object (element matches) is not empty
3806 // (and therefore has an element appears at this[ 0 ]) and the
3807 // `value` parameter was not undefined. An empty jQuery object
3808 // will result in `undefined` for elem = this[ 0 ] which will
3809 // throw an exception if an attempt to read a data cache is made.
3810 if ( elem && value === undefined ) {
3811 // Attempt to get data from the cache
3812 // with the key as-is
3813 data = data_user.get( elem, key );
3814 if ( data !== undefined ) {
3815 return data;
3816 }
3817
3818 // Attempt to get data from the cache
3819 // with the key camelized
3820 data = data_user.get( elem, camelKey );
3821 if ( data !== undefined ) {
3822 return data;
3823 }
3824
3825 // Attempt to "discover" the data in
3826 // HTML5 custom data-* attrs
3827 data = dataAttr( elem, camelKey, undefined );
3828 if ( data !== undefined ) {
3829 return data;
3830 }
3831
3832 // We tried really hard, but the data doesn't exist.
3833 return;
3834 }
3835
3836 // Set the data...
3837 this.each(function() {
3838 // First, attempt to store a copy or reference of any
3839 // data that might've been store with a camelCased key.
3840 var data = data_user.get( this, camelKey );
3841
3842 // For HTML5 data-* attribute interop, we have to
3843 // store property names with dashes in a camelCase form.
3844 // This might not apply to all properties...*
3845 data_user.set( this, camelKey, value );
3846
3847 // *... In the case of properties that might _actually_
3848 // have dashes, we need to also store a copy of that
3849 // unchanged property.
3850 if ( key.indexOf("-") !== -1 && data !== undefined ) {
3851 data_user.set( this, key, value );
3852 }
3853 });
3854 }, null, value, arguments.length > 1, null, true );
3855 },
3856
3857 removeData: function( key ) {
3858 return this.each(function() {
3859 data_user.remove( this, key );
3860 });
3861 }
3862});
3863
3864
3865jQuery.extend({
3866 queue: function( elem, type, data ) {
3867 var queue;
3868
3869 if ( elem ) {
3870 type = ( type || "fx" ) + "queue";
3871 queue = data_priv.get( elem, type );
3872
3873 // Speed up dequeue by getting out quickly if this is just a lookup
3874 if ( data ) {
3875 if ( !queue || jQuery.isArray( data ) ) {
3876 queue = data_priv.access( elem, type, jQuery.makeArray(data) );
3877 } else {
3878 queue.push( data );
3879 }
3880 }
3881 return queue || [];
3882 }
3883 },
3884
3885 dequeue: function( elem, type ) {
3886 type = type || "fx";
3887
3888 var queue = jQuery.queue( elem, type ),
3889 startLength = queue.length,
3890 fn = queue.shift(),
3891 hooks = jQuery._queueHooks( elem, type ),
3892 next = function() {
3893 jQuery.dequeue( elem, type );
3894 };
3895
3896 // If the fx queue is dequeued, always remove the progress sentinel
3897 if ( fn === "inprogress" ) {
3898 fn = queue.shift();
3899 startLength--;
3900 }
3901
3902 if ( fn ) {
3903
3904 // Add a progress sentinel to prevent the fx queue from being
3905 // automatically dequeued
3906 if ( type === "fx" ) {
3907 queue.unshift( "inprogress" );
3908 }
3909
3910 // clear up the last queue stop function
3911 delete hooks.stop;
3912 fn.call( elem, next, hooks );
3913 }
3914
3915 if ( !startLength && hooks ) {
3916 hooks.empty.fire();
3917 }
3918 },
3919
3920 // not intended for public consumption - generates a queueHooks object, or returns the current one
3921 _queueHooks: function( elem, type ) {
3922 var key = type + "queueHooks";
3923 return data_priv.get( elem, key ) || data_priv.access( elem, key, {
3924 empty: jQuery.Callbacks("once memory").add(function() {
3925 data_priv.remove( elem, [ type + "queue", key ] );
3926 })
3927 });
3928 }
3929});
3930
3931jQuery.fn.extend({
3932 queue: function( type, data ) {
3933 var setter = 2;
3934
3935 if ( typeof type !== "string" ) {
3936 data = type;
3937 type = "fx";
3938 setter--;
3939 }
3940
3941 if ( arguments.length < setter ) {
3942 return jQuery.queue( this[0], type );
3943 }
3944
3945 return data === undefined ?
3946 this :
3947 this.each(function() {
3948 var queue = jQuery.queue( this, type, data );
3949
3950 // ensure a hooks for this queue
3951 jQuery._queueHooks( this, type );
3952
3953 if ( type === "fx" && queue[0] !== "inprogress" ) {
3954 jQuery.dequeue( this, type );
3955 }
3956 });
3957 },
3958 dequeue: function( type ) {
3959 return this.each(function() {
3960 jQuery.dequeue( this, type );
3961 });
3962 },
3963 clearQueue: function( type ) {
3964 return this.queue( type || "fx", [] );
3965 },
3966 // Get a promise resolved when queues of a certain type
3967 // are emptied (fx is the type by default)
3968 promise: function( type, obj ) {
3969 var tmp,
3970 count = 1,
3971 defer = jQuery.Deferred(),
3972 elements = this,
3973 i = this.length,
3974 resolve = function() {
3975 if ( !( --count ) ) {
3976 defer.resolveWith( elements, [ elements ] );
3977 }
3978 };
3979
3980 if ( typeof type !== "string" ) {
3981 obj = type;
3982 type = undefined;
3983 }
3984 type = type || "fx";
3985
3986 while ( i-- ) {
3987 tmp = data_priv.get( elements[ i ], type + "queueHooks" );
3988 if ( tmp && tmp.empty ) {
3989 count++;
3990 tmp.empty.add( resolve );
3991 }
3992 }
3993 resolve();
3994 return defer.promise( obj );
3995 }
3996});
3997var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;
3998
3999var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
4000
4001var isHidden = function( elem, el ) {
4002 // isHidden might be called from jQuery#filter function;
4003 // in that case, element will be second argument
4004 elem = el || elem;
4005 return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
4006 };
4007
4008var rcheckableType = (/^(?:checkbox|radio)$/i);
4009
4010
4011
4012(function() {
4013 var fragment = document.createDocumentFragment(),
4014 div = fragment.appendChild( document.createElement( "div" ) ),
4015 input = document.createElement( "input" );
4016
4017 // #11217 - WebKit loses check when the name is after the checked attribute
4018 // Support: Windows Web Apps (WWA)
4019 // `name` and `type` need .setAttribute for WWA
4020 input.setAttribute( "type", "radio" );
4021 input.setAttribute( "checked", "checked" );
4022 input.setAttribute( "name", "t" );
4023
4024 div.appendChild( input );
4025
4026 // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3
4027 // old WebKit doesn't clone checked state correctly in fragments
4028 support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
4029
4030 // Make sure textarea (and checkbox) defaultValue is properly cloned
4031 // Support: IE9-IE11+
4032 div.innerHTML = "<textarea>x</textarea>";
4033 support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
4034})();
4035var strundefined = typeof undefined;
4036
4037
4038
4039support.focusinBubbles = "onfocusin" in window;
4040
4041
4042var
4043 rkeyEvent = /^key/,
4044 rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,
4045 rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
4046 rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
4047
4048function returnTrue() {
4049 return true;
4050}
4051
4052function returnFalse() {
4053 return false;
4054}
4055
4056function safeActiveElement() {
4057 try {
4058 return document.activeElement;
4059 } catch ( err ) { }
4060}
4061
4062/*
4063 * Helper functions for managing events -- not part of the public interface.
4064 * Props to Dean Edwards' addEvent library for many of the ideas.
4065 */
4066jQuery.event = {
4067
4068 global: {},
4069
4070 add: function( elem, types, handler, data, selector ) {
4071
4072 var handleObjIn, eventHandle, tmp,
4073 events, t, handleObj,
4074 special, handlers, type, namespaces, origType,
4075 elemData = data_priv.get( elem );
4076
4077 // Don't attach events to noData or text/comment nodes (but allow plain objects)
4078 if ( !elemData ) {
4079 return;
4080 }
4081
4082 // Caller can pass in an object of custom data in lieu of the handler
4083 if ( handler.handler ) {
4084 handleObjIn = handler;
4085 handler = handleObjIn.handler;
4086 selector = handleObjIn.selector;
4087 }
4088
4089 // Make sure that the handler has a unique ID, used to find/remove it later
4090 if ( !handler.guid ) {
4091 handler.guid = jQuery.guid++;
4092 }
4093
4094 // Init the element's event structure and main handler, if this is the first
4095 if ( !(events = elemData.events) ) {
4096 events = elemData.events = {};
4097 }
4098 if ( !(eventHandle = elemData.handle) ) {
4099 eventHandle = elemData.handle = function( e ) {
4100 // Discard the second event of a jQuery.event.trigger() and
4101 // when an event is called after a page has unloaded
4102 return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?
4103 jQuery.event.dispatch.apply( elem, arguments ) : undefined;
4104 };
4105 }
4106
4107 // Handle multiple events separated by a space
4108 types = ( types || "" ).match( rnotwhite ) || [ "" ];
4109 t = types.length;
4110 while ( t-- ) {
4111 tmp = rtypenamespace.exec( types[t] ) || [];
4112 type = origType = tmp[1];
4113 namespaces = ( tmp[2] || "" ).split( "." ).sort();
4114
4115 // There *must* be a type, no attaching namespace-only handlers
4116 if ( !type ) {
4117 continue;
4118 }
4119
4120 // If event changes its type, use the special event handlers for the changed type
4121 special = jQuery.event.special[ type ] || {};
4122
4123 // If selector defined, determine special event api type, otherwise given type
4124 type = ( selector ? special.delegateType : special.bindType ) || type;
4125
4126 // Update special based on newly reset type
4127 special = jQuery.event.special[ type ] || {};
4128
4129 // handleObj is passed to all event handlers
4130 handleObj = jQuery.extend({
4131 type: type,
4132 origType: origType,
4133 data: data,
4134 handler: handler,
4135 guid: handler.guid,
4136 selector: selector,
4137 needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
4138 namespace: namespaces.join(".")
4139 }, handleObjIn );
4140
4141 // Init the event handler queue if we're the first
4142 if ( !(handlers = events[ type ]) ) {
4143 handlers = events[ type ] = [];
4144 handlers.delegateCount = 0;
4145
4146 // Only use addEventListener if the special events handler returns false
4147 if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
4148 if ( elem.addEventListener ) {
4149 elem.addEventListener( type, eventHandle, false );
4150 }
4151 }
4152 }
4153
4154 if ( special.add ) {
4155 special.add.call( elem, handleObj );
4156
4157 if ( !handleObj.handler.guid ) {
4158 handleObj.handler.guid = handler.guid;
4159 }
4160 }
4161
4162 // Add to the element's handler list, delegates in front
4163 if ( selector ) {
4164 handlers.splice( handlers.delegateCount++, 0, handleObj );
4165 } else {
4166 handlers.push( handleObj );
4167 }
4168
4169 // Keep track of which events have ever been used, for event optimization
4170 jQuery.event.global[ type ] = true;
4171 }
4172
4173 },
4174
4175 // Detach an event or set of events from an element
4176 remove: function( elem, types, handler, selector, mappedTypes ) {
4177
4178 var j, origCount, tmp,
4179 events, t, handleObj,
4180 special, handlers, type, namespaces, origType,
4181 elemData = data_priv.hasData( elem ) && data_priv.get( elem );
4182
4183 if ( !elemData || !(events = elemData.events) ) {
4184 return;
4185 }
4186
4187 // Once for each type.namespace in types; type may be omitted
4188 types = ( types || "" ).match( rnotwhite ) || [ "" ];
4189 t = types.length;
4190 while ( t-- ) {
4191 tmp = rtypenamespace.exec( types[t] ) || [];
4192 type = origType = tmp[1];
4193 namespaces = ( tmp[2] || "" ).split( "." ).sort();
4194
4195 // Unbind all events (on this namespace, if provided) for the element
4196 if ( !type ) {
4197 for ( type in events ) {
4198 jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
4199 }
4200 continue;
4201 }
4202
4203 special = jQuery.event.special[ type ] || {};
4204 type = ( selector ? special.delegateType : special.bindType ) || type;
4205 handlers = events[ type ] || [];
4206 tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
4207
4208 // Remove matching events
4209 origCount = j = handlers.length;
4210 while ( j-- ) {
4211 handleObj = handlers[ j ];
4212
4213 if ( ( mappedTypes || origType === handleObj.origType ) &&
4214 ( !handler || handler.guid === handleObj.guid ) &&
4215 ( !tmp || tmp.test( handleObj.namespace ) ) &&
4216 ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
4217 handlers.splice( j, 1 );
4218
4219 if ( handleObj.selector ) {
4220 handlers.delegateCount--;
4221 }
4222 if ( special.remove ) {
4223 special.remove.call( elem, handleObj );
4224 }
4225 }
4226 }
4227
4228 // Remove generic event handler if we removed something and no more handlers exist
4229 // (avoids potential for endless recursion during removal of special event handlers)
4230 if ( origCount && !handlers.length ) {
4231 if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
4232 jQuery.removeEvent( elem, type, elemData.handle );
4233 }
4234
4235 delete events[ type ];
4236 }
4237 }
4238
4239 // Remove the expando if it's no longer used
4240 if ( jQuery.isEmptyObject( events ) ) {
4241 delete elemData.handle;
4242 data_priv.remove( elem, "events" );
4243 }
4244 },
4245
4246 trigger: function( event, data, elem, onlyHandlers ) {
4247
4248 var i, cur, tmp, bubbleType, ontype, handle, special,
4249 eventPath = [ elem || document ],
4250 type = hasOwn.call( event, "type" ) ? event.type : event,
4251 namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
4252
4253 cur = tmp = elem = elem || document;
4254
4255 // Don't do events on text and comment nodes
4256 if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
4257 return;
4258 }
4259
4260 // focus/blur morphs to focusin/out; ensure we're not firing them right now
4261 if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
4262 return;
4263 }
4264
4265 if ( type.indexOf(".") >= 0 ) {
4266 // Namespaced trigger; create a regexp to match event type in handle()
4267 namespaces = type.split(".");
4268 type = namespaces.shift();
4269 namespaces.sort();
4270 }
4271 ontype = type.indexOf(":") < 0 && "on" + type;
4272
4273 // Caller can pass in a jQuery.Event object, Object, or just an event type string
4274 event = event[ jQuery.expando ] ?
4275 event :
4276 new jQuery.Event( type, typeof event === "object" && event );
4277
4278 // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
4279 event.isTrigger = onlyHandlers ? 2 : 3;
4280 event.namespace = namespaces.join(".");
4281 event.namespace_re = event.namespace ?
4282 new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
4283 null;
4284
4285 // Clean up the event in case it is being reused
4286 event.result = undefined;
4287 if ( !event.target ) {
4288 event.target = elem;
4289 }
4290
4291 // Clone any incoming data and prepend the event, creating the handler arg list
4292 data = data == null ?
4293 [ event ] :
4294 jQuery.makeArray( data, [ event ] );
4295
4296 // Allow special events to draw outside the lines
4297 special = jQuery.event.special[ type ] || {};
4298 if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
4299 return;
4300 }
4301
4302 // Determine event propagation path in advance, per W3C events spec (#9951)
4303 // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
4304 if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
4305
4306 bubbleType = special.delegateType || type;
4307 if ( !rfocusMorph.test( bubbleType + type ) ) {
4308 cur = cur.parentNode;
4309 }
4310 for ( ; cur; cur = cur.parentNode ) {
4311 eventPath.push( cur );
4312 tmp = cur;
4313 }
4314
4315 // Only add window if we got to document (e.g., not plain obj or detached DOM)
4316 if ( tmp === (elem.ownerDocument || document) ) {
4317 eventPath.push( tmp.defaultView || tmp.parentWindow || window );
4318 }
4319 }
4320
4321 // Fire handlers on the event path
4322 i = 0;
4323 while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
4324
4325 event.type = i > 1 ?
4326 bubbleType :
4327 special.bindType || type;
4328
4329 // jQuery handler
4330 handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" );
4331 if ( handle ) {
4332 handle.apply( cur, data );
4333 }
4334
4335 // Native handler
4336 handle = ontype && cur[ ontype ];
4337 if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
4338 event.result = handle.apply( cur, data );
4339 if ( event.result === false ) {
4340 event.preventDefault();
4341 }
4342 }
4343 }
4344 event.type = type;
4345
4346 // If nobody prevented the default action, do it now
4347 if ( !onlyHandlers && !event.isDefaultPrevented() ) {
4348
4349 if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
4350 jQuery.acceptData( elem ) ) {
4351
4352 // Call a native DOM method on the target with the same name name as the event.
4353 // Don't do default actions on window, that's where global variables be (#6170)
4354 if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
4355
4356 // Don't re-trigger an onFOO event when we call its FOO() method
4357 tmp = elem[ ontype ];
4358
4359 if ( tmp ) {
4360 elem[ ontype ] = null;
4361 }
4362
4363 // Prevent re-triggering of the same event, since we already bubbled it above
4364 jQuery.event.triggered = type;
4365 elem[ type ]();
4366 jQuery.event.triggered = undefined;
4367
4368 if ( tmp ) {
4369 elem[ ontype ] = tmp;
4370 }
4371 }
4372 }
4373 }
4374
4375 return event.result;
4376 },
4377
4378 dispatch: function( event ) {
4379
4380 // Make a writable jQuery.Event from the native event object
4381 event = jQuery.event.fix( event );
4382
4383 var i, j, ret, matched, handleObj,
4384 handlerQueue = [],
4385 args = slice.call( arguments ),
4386 handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [],
4387 special = jQuery.event.special[ event.type ] || {};
4388
4389 // Use the fix-ed jQuery.Event rather than the (read-only) native event
4390 args[0] = event;
4391 event.delegateTarget = this;
4392
4393 // Call the preDispatch hook for the mapped type, and let it bail if desired
4394 if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
4395 return;
4396 }
4397
4398 // Determine handlers
4399 handlerQueue = jQuery.event.handlers.call( this, event, handlers );
4400
4401 // Run delegates first; they may want to stop propagation beneath us
4402 i = 0;
4403 while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
4404 event.currentTarget = matched.elem;
4405
4406 j = 0;
4407 while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
4408
4409 // Triggered event must either 1) have no namespace, or
4410 // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
4411 if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
4412
4413 event.handleObj = handleObj;
4414 event.data = handleObj.data;
4415
4416 ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
4417 .apply( matched.elem, args );
4418
4419 if ( ret !== undefined ) {
4420 if ( (event.result = ret) === false ) {
4421 event.preventDefault();
4422 event.stopPropagation();
4423 }
4424 }
4425 }
4426 }
4427 }
4428
4429 // Call the postDispatch hook for the mapped type
4430 if ( special.postDispatch ) {
4431 special.postDispatch.call( this, event );
4432 }
4433
4434 return event.result;
4435 },
4436
4437 handlers: function( event, handlers ) {
4438 var i, matches, sel, handleObj,
4439 handlerQueue = [],
4440 delegateCount = handlers.delegateCount,
4441 cur = event.target;
4442
4443 // Find delegate handlers
4444 // Black-hole SVG <use> instance trees (#13180)
4445 // Avoid non-left-click bubbling in Firefox (#3861)
4446 if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
4447
4448 for ( ; cur !== this; cur = cur.parentNode || this ) {
4449
4450 // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
4451 if ( cur.disabled !== true || event.type !== "click" ) {
4452 matches = [];
4453 for ( i = 0; i < delegateCount; i++ ) {
4454 handleObj = handlers[ i ];
4455
4456 // Don't conflict with Object.prototype properties (#13203)
4457 sel = handleObj.selector + " ";
4458
4459 if ( matches[ sel ] === undefined ) {
4460 matches[ sel ] = handleObj.needsContext ?
4461 jQuery( sel, this ).index( cur ) >= 0 :
4462 jQuery.find( sel, this, null, [ cur ] ).length;
4463 }
4464 if ( matches[ sel ] ) {
4465 matches.push( handleObj );
4466 }
4467 }
4468 if ( matches.length ) {
4469 handlerQueue.push({ elem: cur, handlers: matches });
4470 }
4471 }
4472 }
4473 }
4474
4475 // Add the remaining (directly-bound) handlers
4476 if ( delegateCount < handlers.length ) {
4477 handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
4478 }
4479
4480 return handlerQueue;
4481 },
4482
4483 // Includes some event props shared by KeyEvent and MouseEvent
4484 props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
4485
4486 fixHooks: {},
4487
4488 keyHooks: {
4489 props: "char charCode key keyCode".split(" "),
4490 filter: function( event, original ) {
4491
4492 // Add which for key events
4493 if ( event.which == null ) {
4494 event.which = original.charCode != null ? original.charCode : original.keyCode;
4495 }
4496
4497 return event;
4498 }
4499 },
4500
4501 mouseHooks: {
4502 props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
4503 filter: function( event, original ) {
4504 var eventDoc, doc, body,
4505 button = original.button;
4506
4507 // Calculate pageX/Y if missing and clientX/Y available
4508 if ( event.pageX == null && original.clientX != null ) {
4509 eventDoc = event.target.ownerDocument || document;
4510 doc = eventDoc.documentElement;
4511 body = eventDoc.body;
4512
4513 event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
4514 event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );
4515 }
4516
4517 // Add which for click: 1 === left; 2 === middle; 3 === right
4518 // Note: button is not normalized, so don't use it
4519 if ( !event.which && button !== undefined ) {
4520 event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
4521 }
4522
4523 return event;
4524 }
4525 },
4526
4527 fix: function( event ) {
4528 if ( event[ jQuery.expando ] ) {
4529 return event;
4530 }
4531
4532 // Create a writable copy of the event object and normalize some properties
4533 var i, prop, copy,
4534 type = event.type,
4535 originalEvent = event,
4536 fixHook = this.fixHooks[ type ];
4537
4538 if ( !fixHook ) {
4539 this.fixHooks[ type ] = fixHook =
4540 rmouseEvent.test( type ) ? this.mouseHooks :
4541 rkeyEvent.test( type ) ? this.keyHooks :
4542 {};
4543 }
4544 copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
4545
4546 event = new jQuery.Event( originalEvent );
4547
4548 i = copy.length;
4549 while ( i-- ) {
4550 prop = copy[ i ];
4551 event[ prop ] = originalEvent[ prop ];
4552 }
4553
4554 // Support: Cordova 2.5 (WebKit) (#13255)
4555 // All events should have a target; Cordova deviceready doesn't
4556 if ( !event.target ) {
4557 event.target = document;
4558 }
4559
4560 // Support: Safari 6.0+, Chrome < 28
4561 // Target should not be a text node (#504, #13143)
4562 if ( event.target.nodeType === 3 ) {
4563 event.target = event.target.parentNode;
4564 }
4565
4566 return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
4567 },
4568
4569 special: {
4570 load: {
4571 // Prevent triggered image.load events from bubbling to window.load
4572 noBubble: true
4573 },
4574 focus: {
4575 // Fire native event if possible so blur/focus sequence is correct
4576 trigger: function() {
4577 if ( this !== safeActiveElement() && this.focus ) {
4578 this.focus();
4579 return false;
4580 }
4581 },
4582 delegateType: "focusin"
4583 },
4584 blur: {
4585 trigger: function() {
4586 if ( this === safeActiveElement() && this.blur ) {
4587 this.blur();
4588 return false;
4589 }
4590 },
4591 delegateType: "focusout"
4592 },
4593 click: {
4594 // For checkbox, fire native event so checked state will be right
4595 trigger: function() {
4596 if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
4597 this.click();
4598 return false;
4599 }
4600 },
4601
4602 // For cross-browser consistency, don't fire native .click() on links
4603 _default: function( event ) {
4604 return jQuery.nodeName( event.target, "a" );
4605 }
4606 },
4607
4608 beforeunload: {
4609 postDispatch: function( event ) {
4610
4611 // Support: Firefox 20+
4612 // Firefox doesn't alert if the returnValue field is not set.
4613 if ( event.result !== undefined && event.originalEvent ) {
4614 event.originalEvent.returnValue = event.result;
4615 }
4616 }
4617 }
4618 },
4619
4620 simulate: function( type, elem, event, bubble ) {
4621 // Piggyback on a donor event to simulate a different one.
4622 // Fake originalEvent to avoid donor's stopPropagation, but if the
4623 // simulated event prevents default then we do the same on the donor.
4624 var e = jQuery.extend(
4625 new jQuery.Event(),
4626 event,
4627 {
4628 type: type,
4629 isSimulated: true,
4630 originalEvent: {}
4631 }
4632 );
4633 if ( bubble ) {
4634 jQuery.event.trigger( e, null, elem );
4635 } else {
4636 jQuery.event.dispatch.call( elem, e );
4637 }
4638 if ( e.isDefaultPrevented() ) {
4639 event.preventDefault();
4640 }
4641 }
4642};
4643
4644jQuery.removeEvent = function( elem, type, handle ) {
4645 if ( elem.removeEventListener ) {
4646 elem.removeEventListener( type, handle, false );
4647 }
4648};
4649
4650jQuery.Event = function( src, props ) {
4651 // Allow instantiation without the 'new' keyword
4652 if ( !(this instanceof jQuery.Event) ) {
4653 return new jQuery.Event( src, props );
4654 }
4655
4656 // Event object
4657 if ( src && src.type ) {
4658 this.originalEvent = src;
4659 this.type = src.type;
4660
4661 // Events bubbling up the document may have been marked as prevented
4662 // by a handler lower down the tree; reflect the correct value.
4663 this.isDefaultPrevented = src.defaultPrevented ||
4664 src.defaultPrevented === undefined &&
4665 // Support: Android < 4.0
4666 src.returnValue === false ?
4667 returnTrue :
4668 returnFalse;
4669
4670 // Event type
4671 } else {
4672 this.type = src;
4673 }
4674
4675 // Put explicitly provided properties onto the event object
4676 if ( props ) {
4677 jQuery.extend( this, props );
4678 }
4679
4680 // Create a timestamp if incoming event doesn't have one
4681 this.timeStamp = src && src.timeStamp || jQuery.now();
4682
4683 // Mark it as fixed
4684 this[ jQuery.expando ] = true;
4685};
4686
4687// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
4688// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
4689jQuery.Event.prototype = {
4690 isDefaultPrevented: returnFalse,
4691 isPropagationStopped: returnFalse,
4692 isImmediatePropagationStopped: returnFalse,
4693
4694 preventDefault: function() {
4695 var e = this.originalEvent;
4696
4697 this.isDefaultPrevented = returnTrue;
4698
4699 if ( e && e.preventDefault ) {
4700 e.preventDefault();
4701 }
4702 },
4703 stopPropagation: function() {
4704 var e = this.originalEvent;
4705
4706 this.isPropagationStopped = returnTrue;
4707
4708 if ( e && e.stopPropagation ) {
4709 e.stopPropagation();
4710 }
4711 },
4712 stopImmediatePropagation: function() {
4713 var e = this.originalEvent;
4714
4715 this.isImmediatePropagationStopped = returnTrue;
4716
4717 if ( e && e.stopImmediatePropagation ) {
4718 e.stopImmediatePropagation();
4719 }
4720
4721 this.stopPropagation();
4722 }
4723};
4724
4725// Create mouseenter/leave events using mouseover/out and event-time checks
4726// Support: Chrome 15+
4727jQuery.each({
4728 mouseenter: "mouseover",
4729 mouseleave: "mouseout",
4730 pointerenter: "pointerover",
4731 pointerleave: "pointerout"
4732}, function( orig, fix ) {
4733 jQuery.event.special[ orig ] = {
4734 delegateType: fix,
4735 bindType: fix,
4736
4737 handle: function( event ) {
4738 var ret,
4739 target = this,
4740 related = event.relatedTarget,
4741 handleObj = event.handleObj;
4742
4743 // For mousenter/leave call the handler if related is outside the target.
4744 // NB: No relatedTarget if the mouse left/entered the browser window
4745 if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
4746 event.type = handleObj.origType;
4747 ret = handleObj.handler.apply( this, arguments );
4748 event.type = fix;
4749 }
4750 return ret;
4751 }
4752 };
4753});
4754
4755// Create "bubbling" focus and blur events
4756// Support: Firefox, Chrome, Safari
4757if ( !support.focusinBubbles ) {
4758 jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
4759
4760 // Attach a single capturing handler on the document while someone wants focusin/focusout
4761 var handler = function( event ) {
4762 jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
4763 };
4764
4765 jQuery.event.special[ fix ] = {
4766 setup: function() {
4767 var doc = this.ownerDocument || this,
4768 attaches = data_priv.access( doc, fix );
4769
4770 if ( !attaches ) {
4771 doc.addEventListener( orig, handler, true );
4772 }
4773 data_priv.access( doc, fix, ( attaches || 0 ) + 1 );
4774 },
4775 teardown: function() {
4776 var doc = this.ownerDocument || this,
4777 attaches = data_priv.access( doc, fix ) - 1;
4778
4779 if ( !attaches ) {
4780 doc.removeEventListener( orig, handler, true );
4781 data_priv.remove( doc, fix );
4782
4783 } else {
4784 data_priv.access( doc, fix, attaches );
4785 }
4786 }
4787 };
4788 });
4789}
4790
4791jQuery.fn.extend({
4792
4793 on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
4794 var origFn, type;
4795
4796 // Types can be a map of types/handlers
4797 if ( typeof types === "object" ) {
4798 // ( types-Object, selector, data )
4799 if ( typeof selector !== "string" ) {
4800 // ( types-Object, data )
4801 data = data || selector;
4802 selector = undefined;
4803 }
4804 for ( type in types ) {
4805 this.on( type, selector, data, types[ type ], one );
4806 }
4807 return this;
4808 }
4809
4810 if ( data == null && fn == null ) {
4811 // ( types, fn )
4812 fn = selector;
4813 data = selector = undefined;
4814 } else if ( fn == null ) {
4815 if ( typeof selector === "string" ) {
4816 // ( types, selector, fn )
4817 fn = data;
4818 data = undefined;
4819 } else {
4820 // ( types, data, fn )
4821 fn = data;
4822 data = selector;
4823 selector = undefined;
4824 }
4825 }
4826 if ( fn === false ) {
4827 fn = returnFalse;
4828 } else if ( !fn ) {
4829 return this;
4830 }
4831
4832 if ( one === 1 ) {
4833 origFn = fn;
4834 fn = function( event ) {
4835 // Can use an empty set, since event contains the info
4836 jQuery().off( event );
4837 return origFn.apply( this, arguments );
4838 };
4839 // Use same guid so caller can remove using origFn
4840 fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
4841 }
4842 return this.each( function() {
4843 jQuery.event.add( this, types, fn, data, selector );
4844 });
4845 },
4846 one: function( types, selector, data, fn ) {
4847 return this.on( types, selector, data, fn, 1 );
4848 },
4849 off: function( types, selector, fn ) {
4850 var handleObj, type;
4851 if ( types && types.preventDefault && types.handleObj ) {
4852 // ( event ) dispatched jQuery.Event
4853 handleObj = types.handleObj;
4854 jQuery( types.delegateTarget ).off(
4855 handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
4856 handleObj.selector,
4857 handleObj.handler
4858 );
4859 return this;
4860 }
4861 if ( typeof types === "object" ) {
4862 // ( types-object [, selector] )
4863 for ( type in types ) {
4864 this.off( type, selector, types[ type ] );
4865 }
4866 return this;
4867 }
4868 if ( selector === false || typeof selector === "function" ) {
4869 // ( types [, fn] )
4870 fn = selector;
4871 selector = undefined;
4872 }
4873 if ( fn === false ) {
4874 fn = returnFalse;
4875 }
4876 return this.each(function() {
4877 jQuery.event.remove( this, types, fn, selector );
4878 });
4879 },
4880
4881 trigger: function( type, data ) {
4882 return this.each(function() {
4883 jQuery.event.trigger( type, data, this );
4884 });
4885 },
4886 triggerHandler: function( type, data ) {
4887 var elem = this[0];
4888 if ( elem ) {
4889 return jQuery.event.trigger( type, data, elem, true );
4890 }
4891 }
4892});
4893
4894
4895var
4896 rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
4897 rtagName = /<([\w:]+)/,
4898 rhtml = /<|&#?\w+;/,
4899 rnoInnerhtml = /<(?:script|style|link)/i,
4900 // checked="checked" or checked
4901 rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
4902 rscriptType = /^$|\/(?:java|ecma)script/i,
4903 rscriptTypeMasked = /^true\/(.*)/,
4904 rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
4905
4906 // We have to close these tags to support XHTML (#13200)
4907 wrapMap = {
4908
4909 // Support: IE 9
4910 option: [ 1, "<select multiple='multiple'>", "</select>" ],
4911
4912 thead: [ 1, "<table>", "</table>" ],
4913 col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
4914 tr: [ 2, "<table><tbody>", "</tbody></table>" ],
4915 td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
4916
4917 _default: [ 0, "", "" ]
4918 };
4919
4920// Support: IE 9
4921wrapMap.optgroup = wrapMap.option;
4922
4923wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
4924wrapMap.th = wrapMap.td;
4925
4926// Support: 1.x compatibility
4927// Manipulating tables requires a tbody
4928function manipulationTarget( elem, content ) {
4929 return jQuery.nodeName( elem, "table" ) &&
4930 jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
4931
4932 elem.getElementsByTagName("tbody")[0] ||
4933 elem.appendChild( elem.ownerDocument.createElement("tbody") ) :
4934 elem;
4935}
4936
4937// Replace/restore the type attribute of script elements for safe DOM manipulation
4938function disableScript( elem ) {
4939 elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type;
4940 return elem;
4941}
4942function restoreScript( elem ) {
4943 var match = rscriptTypeMasked.exec( elem.type );
4944
4945 if ( match ) {
4946 elem.type = match[ 1 ];
4947 } else {
4948 elem.removeAttribute("type");
4949 }
4950
4951 return elem;
4952}
4953
4954// Mark scripts as having already been evaluated
4955function setGlobalEval( elems, refElements ) {
4956 var i = 0,
4957 l = elems.length;
4958
4959 for ( ; i < l; i++ ) {
4960 data_priv.set(
4961 elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" )
4962 );
4963 }
4964}
4965
4966function cloneCopyEvent( src, dest ) {
4967 var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
4968
4969 if ( dest.nodeType !== 1 ) {
4970 return;
4971 }
4972
4973 // 1. Copy private data: events, handlers, etc.
4974 if ( data_priv.hasData( src ) ) {
4975 pdataOld = data_priv.access( src );
4976 pdataCur = data_priv.set( dest, pdataOld );
4977 events = pdataOld.events;
4978
4979 if ( events ) {
4980 delete pdataCur.handle;
4981 pdataCur.events = {};
4982
4983 for ( type in events ) {
4984 for ( i = 0, l = events[ type ].length; i < l; i++ ) {
4985 jQuery.event.add( dest, type, events[ type ][ i ] );
4986 }
4987 }
4988 }
4989 }
4990
4991 // 2. Copy user data
4992 if ( data_user.hasData( src ) ) {
4993 udataOld = data_user.access( src );
4994 udataCur = jQuery.extend( {}, udataOld );
4995
4996 data_user.set( dest, udataCur );
4997 }
4998}
4999
5000function getAll( context, tag ) {
5001 var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) :
5002 context.querySelectorAll ? context.querySelectorAll( tag || "*" ) :
5003 [];
5004
5005 return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
5006 jQuery.merge( [ context ], ret ) :
5007 ret;
5008}
5009
5010// Support: IE >= 9
5011function fixInput( src, dest ) {
5012 var nodeName = dest.nodeName.toLowerCase();
5013
5014 // Fails to persist the checked state of a cloned checkbox or radio button.
5015 if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
5016 dest.checked = src.checked;
5017
5018 // Fails to return the selected option to the default selected state when cloning options
5019 } else if ( nodeName === "input" || nodeName === "textarea" ) {
5020 dest.defaultValue = src.defaultValue;
5021 }
5022}
5023
5024jQuery.extend({
5025 clone: function( elem, dataAndEvents, deepDataAndEvents ) {
5026 var i, l, srcElements, destElements,
5027 clone = elem.cloneNode( true ),
5028 inPage = jQuery.contains( elem.ownerDocument, elem );
5029
5030 // Support: IE >= 9
5031 // Fix Cloning issues
5032 if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
5033 !jQuery.isXMLDoc( elem ) ) {
5034
5035 // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
5036 destElements = getAll( clone );
5037 srcElements = getAll( elem );
5038
5039 for ( i = 0, l = srcElements.length; i < l; i++ ) {
5040 fixInput( srcElements[ i ], destElements[ i ] );
5041 }
5042 }
5043
5044 // Copy the events from the original to the clone
5045 if ( dataAndEvents ) {
5046 if ( deepDataAndEvents ) {
5047 srcElements = srcElements || getAll( elem );
5048 destElements = destElements || getAll( clone );
5049
5050 for ( i = 0, l = srcElements.length; i < l; i++ ) {
5051 cloneCopyEvent( srcElements[ i ], destElements[ i ] );
5052 }
5053 } else {
5054 cloneCopyEvent( elem, clone );
5055 }
5056 }
5057
5058 // Preserve script evaluation history
5059 destElements = getAll( clone, "script" );
5060 if ( destElements.length > 0 ) {
5061 setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
5062 }
5063
5064 // Return the cloned set
5065 return clone;
5066 },
5067
5068 buildFragment: function( elems, context, scripts, selection ) {
5069 var elem, tmp, tag, wrap, contains, j,
5070 fragment = context.createDocumentFragment(),
5071 nodes = [],
5072 i = 0,
5073 l = elems.length;
5074
5075 for ( ; i < l; i++ ) {
5076 elem = elems[ i ];
5077
5078 if ( elem || elem === 0 ) {
5079
5080 // Add nodes directly
5081 if ( jQuery.type( elem ) === "object" ) {
5082 // Support: QtWebKit
5083 // jQuery.merge because push.apply(_, arraylike) throws
5084 jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
5085
5086 // Convert non-html into a text node
5087 } else if ( !rhtml.test( elem ) ) {
5088 nodes.push( context.createTextNode( elem ) );
5089
5090 // Convert html into DOM nodes
5091 } else {
5092 tmp = tmp || fragment.appendChild( context.createElement("div") );
5093
5094 // Deserialize a standard representation
5095 tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
5096 wrap = wrapMap[ tag ] || wrapMap._default;
5097 tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[ 2 ];
5098
5099 // Descend through wrappers to the right content
5100 j = wrap[ 0 ];
5101 while ( j-- ) {
5102 tmp = tmp.lastChild;
5103 }
5104
5105 // Support: QtWebKit
5106 // jQuery.merge because push.apply(_, arraylike) throws
5107 jQuery.merge( nodes, tmp.childNodes );
5108
5109 // Remember the top-level container
5110 tmp = fragment.firstChild;
5111
5112 // Fixes #12346
5113 // Support: Webkit, IE
5114 tmp.textContent = "";
5115 }
5116 }
5117 }
5118
5119 // Remove wrapper from fragment
5120 fragment.textContent = "";
5121
5122 i = 0;
5123 while ( (elem = nodes[ i++ ]) ) {
5124
5125 // #4087 - If origin and destination elements are the same, and this is
5126 // that element, do not do anything
5127 if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
5128 continue;
5129 }
5130
5131 contains = jQuery.contains( elem.ownerDocument, elem );
5132
5133 // Append to fragment
5134 tmp = getAll( fragment.appendChild( elem ), "script" );
5135
5136 // Preserve script evaluation history
5137 if ( contains ) {
5138 setGlobalEval( tmp );
5139 }
5140
5141 // Capture executables
5142 if ( scripts ) {
5143 j = 0;
5144 while ( (elem = tmp[ j++ ]) ) {
5145 if ( rscriptType.test( elem.type || "" ) ) {
5146 scripts.push( elem );
5147 }
5148 }
5149 }
5150 }
5151
5152 return fragment;
5153 },
5154
5155 cleanData: function( elems ) {
5156 var data, elem, type, key,
5157 special = jQuery.event.special,
5158 i = 0;
5159
5160 for ( ; (elem = elems[ i ]) !== undefined; i++ ) {
5161 if ( jQuery.acceptData( elem ) ) {
5162 key = elem[ data_priv.expando ];
5163
5164 if ( key && (data = data_priv.cache[ key ]) ) {
5165 if ( data.events ) {
5166 for ( type in data.events ) {
5167 if ( special[ type ] ) {
5168 jQuery.event.remove( elem, type );
5169
5170 // This is a shortcut to avoid jQuery.event.remove's overhead
5171 } else {
5172 jQuery.removeEvent( elem, type, data.handle );
5173 }
5174 }
5175 }
5176 if ( data_priv.cache[ key ] ) {
5177 // Discard any remaining `private` data
5178 delete data_priv.cache[ key ];
5179 }
5180 }
5181 }
5182 // Discard any remaining `user` data
5183 delete data_user.cache[ elem[ data_user.expando ] ];
5184 }
5185 }
5186});
5187
5188jQuery.fn.extend({
5189 text: function( value ) {
5190 return access( this, function( value ) {
5191 return value === undefined ?
5192 jQuery.text( this ) :
5193 this.empty().each(function() {
5194 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
5195 this.textContent = value;
5196 }
5197 });
5198 }, null, value, arguments.length );
5199 },
5200
5201 append: function() {
5202 return this.domManip( arguments, function( elem ) {
5203 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
5204 var target = manipulationTarget( this, elem );
5205 target.appendChild( elem );
5206 }
5207 });
5208 },
5209
5210 prepend: function() {
5211 return this.domManip( arguments, function( elem ) {
5212 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
5213 var target = manipulationTarget( this, elem );
5214 target.insertBefore( elem, target.firstChild );
5215 }
5216 });
5217 },
5218
5219 before: function() {
5220 return this.domManip( arguments, function( elem ) {
5221 if ( this.parentNode ) {
5222 this.parentNode.insertBefore( elem, this );
5223 }
5224 });
5225 },
5226
5227 after: function() {
5228 return this.domManip( arguments, function( elem ) {
5229 if ( this.parentNode ) {
5230 this.parentNode.insertBefore( elem, this.nextSibling );
5231 }
5232 });
5233 },
5234
5235 remove: function( selector, keepData /* Internal Use Only */ ) {
5236 var elem,
5237 elems = selector ? jQuery.filter( selector, this ) : this,
5238 i = 0;
5239
5240 for ( ; (elem = elems[i]) != null; i++ ) {
5241 if ( !keepData && elem.nodeType === 1 ) {
5242 jQuery.cleanData( getAll( elem ) );
5243 }
5244
5245 if ( elem.parentNode ) {
5246 if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
5247 setGlobalEval( getAll( elem, "script" ) );
5248 }
5249 elem.parentNode.removeChild( elem );
5250 }
5251 }
5252
5253 return this;
5254 },
5255
5256 empty: function() {
5257 var elem,
5258 i = 0;
5259
5260 for ( ; (elem = this[i]) != null; i++ ) {
5261 if ( elem.nodeType === 1 ) {
5262
5263 // Prevent memory leaks
5264 jQuery.cleanData( getAll( elem, false ) );
5265
5266 // Remove any remaining nodes
5267 elem.textContent = "";
5268 }
5269 }
5270
5271 return this;
5272 },
5273
5274 clone: function( dataAndEvents, deepDataAndEvents ) {
5275 dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
5276 deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
5277
5278 return this.map(function() {
5279 return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
5280 });
5281 },
5282
5283 html: function( value ) {
5284 return access( this, function( value ) {
5285 var elem = this[ 0 ] || {},
5286 i = 0,
5287 l = this.length;
5288
5289 if ( value === undefined && elem.nodeType === 1 ) {
5290 return elem.innerHTML;
5291 }
5292
5293 // See if we can take a shortcut and just use innerHTML
5294 if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
5295 !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
5296
5297 value = value.replace( rxhtmlTag, "<$1></$2>" );
5298
5299 try {
5300 for ( ; i < l; i++ ) {
5301 elem = this[ i ] || {};
5302
5303 // Remove element nodes and prevent memory leaks
5304 if ( elem.nodeType === 1 ) {
5305 jQuery.cleanData( getAll( elem, false ) );
5306 elem.innerHTML = value;
5307 }
5308 }
5309
5310 elem = 0;
5311
5312 // If using innerHTML throws an exception, use the fallback method
5313 } catch( e ) {}
5314 }
5315
5316 if ( elem ) {
5317 this.empty().append( value );
5318 }
5319 }, null, value, arguments.length );
5320 },
5321
5322 replaceWith: function() {
5323 var arg = arguments[ 0 ];
5324
5325 // Make the changes, replacing each context element with the new content
5326 this.domManip( arguments, function( elem ) {
5327 arg = this.parentNode;
5328
5329 jQuery.cleanData( getAll( this ) );
5330
5331 if ( arg ) {
5332 arg.replaceChild( elem, this );
5333 }
5334 });
5335
5336 // Force removal if there was no new content (e.g., from empty arguments)
5337 return arg && (arg.length || arg.nodeType) ? this : this.remove();
5338 },
5339
5340 detach: function( selector ) {
5341 return this.remove( selector, true );
5342 },
5343
5344 domManip: function( args, callback ) {
5345
5346 // Flatten any nested arrays
5347 args = concat.apply( [], args );
5348
5349 var fragment, first, scripts, hasScripts, node, doc,
5350 i = 0,
5351 l = this.length,
5352 set = this,
5353 iNoClone = l - 1,
5354 value = args[ 0 ],
5355 isFunction = jQuery.isFunction( value );
5356
5357 // We can't cloneNode fragments that contain checked, in WebKit
5358 if ( isFunction ||
5359 ( l > 1 && typeof value === "string" &&
5360 !support.checkClone && rchecked.test( value ) ) ) {
5361 return this.each(function( index ) {
5362 var self = set.eq( index );
5363 if ( isFunction ) {
5364 args[ 0 ] = value.call( this, index, self.html() );
5365 }
5366 self.domManip( args, callback );
5367 });
5368 }
5369
5370 if ( l ) {
5371 fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );
5372 first = fragment.firstChild;
5373
5374 if ( fragment.childNodes.length === 1 ) {
5375 fragment = first;
5376 }
5377
5378 if ( first ) {
5379 scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
5380 hasScripts = scripts.length;
5381
5382 // Use the original fragment for the last item instead of the first because it can end up
5383 // being emptied incorrectly in certain situations (#8070).
5384 for ( ; i < l; i++ ) {
5385 node = fragment;
5386
5387 if ( i !== iNoClone ) {
5388 node = jQuery.clone( node, true, true );
5389
5390 // Keep references to cloned scripts for later restoration
5391 if ( hasScripts ) {
5392 // Support: QtWebKit
5393 // jQuery.merge because push.apply(_, arraylike) throws
5394 jQuery.merge( scripts, getAll( node, "script" ) );
5395 }
5396 }
5397
5398 callback.call( this[ i ], node, i );
5399 }
5400
5401 if ( hasScripts ) {
5402 doc = scripts[ scripts.length - 1 ].ownerDocument;
5403
5404 // Reenable scripts
5405 jQuery.map( scripts, restoreScript );
5406
5407 // Evaluate executable scripts on first document insertion
5408 for ( i = 0; i < hasScripts; i++ ) {
5409 node = scripts[ i ];
5410 if ( rscriptType.test( node.type || "" ) &&
5411 !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
5412
5413 if ( node.src ) {
5414 // Optional AJAX dependency, but won't run scripts if not present
5415 if ( jQuery._evalUrl ) {
5416 jQuery._evalUrl( node.src );
5417 }
5418 } else {
5419 jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) );
5420 }
5421 }
5422 }
5423 }
5424 }
5425 }
5426
5427 return this;
5428 }
5429});
5430
5431jQuery.each({
5432 appendTo: "append",
5433 prependTo: "prepend",
5434 insertBefore: "before",
5435 insertAfter: "after",
5436 replaceAll: "replaceWith"
5437}, function( name, original ) {
5438 jQuery.fn[ name ] = function( selector ) {
5439 var elems,
5440 ret = [],
5441 insert = jQuery( selector ),
5442 last = insert.length - 1,
5443 i = 0;
5444
5445 for ( ; i <= last; i++ ) {
5446 elems = i === last ? this : this.clone( true );
5447 jQuery( insert[ i ] )[ original ]( elems );
5448
5449 // Support: QtWebKit
5450 // .get() because push.apply(_, arraylike) throws
5451 push.apply( ret, elems.get() );
5452 }
5453
5454 return this.pushStack( ret );
5455 };
5456});
5457
5458
5459var iframe,
5460 elemdisplay = {};
5461
5462/**
5463 * Retrieve the actual display of a element
5464 * @param {String} name nodeName of the element
5465 * @param {Object} doc Document object
5466 */
5467// Called only from within defaultDisplay
5468function actualDisplay( name, doc ) {
5469 var style,
5470 elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
5471
5472 // getDefaultComputedStyle might be reliably used only on attached element
5473 display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?
5474
5475 // Use of this method is a temporary fix (more like optmization) until something better comes along,
5476 // since it was removed from specification and supported only in FF
5477 style.display : jQuery.css( elem[ 0 ], "display" );
5478
5479 // We don't have any data stored on the element,
5480 // so use "detach" method as fast way to get rid of the element
5481 elem.detach();
5482
5483 return display;
5484}
5485
5486/**
5487 * Try to determine the default display value of an element
5488 * @param {String} nodeName
5489 */
5490function defaultDisplay( nodeName ) {
5491 var doc = document,
5492 display = elemdisplay[ nodeName ];
5493
5494 if ( !display ) {
5495 display = actualDisplay( nodeName, doc );
5496
5497 // If the simple way fails, read from inside an iframe
5498 if ( display === "none" || !display ) {
5499
5500 // Use the already-created iframe if possible
5501 iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement );
5502
5503 // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
5504 doc = iframe[ 0 ].contentDocument;
5505
5506 // Support: IE
5507 doc.write();
5508 doc.close();
5509
5510 display = actualDisplay( nodeName, doc );
5511 iframe.detach();
5512 }
5513
5514 // Store the correct default display
5515 elemdisplay[ nodeName ] = display;
5516 }
5517
5518 return display;
5519}
5520var rmargin = (/^margin/);
5521
5522var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
5523
5524var getStyles = function( elem ) {
5525 return elem.ownerDocument.defaultView.getComputedStyle( elem, null );
5526 };
5527
5528
5529
5530function curCSS( elem, name, computed ) {
5531 var width, minWidth, maxWidth, ret,
5532 style = elem.style;
5533
5534 computed = computed || getStyles( elem );
5535
5536 // Support: IE9
5537 // getPropertyValue is only needed for .css('filter') in IE9, see #12537
5538 if ( computed ) {
5539 ret = computed.getPropertyValue( name ) || computed[ name ];
5540 }
5541
5542 if ( computed ) {
5543
5544 if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
5545 ret = jQuery.style( elem, name );
5546 }
5547
5548 // Support: iOS < 6
5549 // A tribute to the "awesome hack by Dean Edwards"
5550 // iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
5551 // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
5552 if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
5553
5554 // Remember the original values
5555 width = style.width;
5556 minWidth = style.minWidth;
5557 maxWidth = style.maxWidth;
5558
5559 // Put in the new values to get a computed value out
5560 style.minWidth = style.maxWidth = style.width = ret;
5561 ret = computed.width;
5562
5563 // Revert the changed values
5564 style.width = width;
5565 style.minWidth = minWidth;
5566 style.maxWidth = maxWidth;
5567 }
5568 }
5569
5570 return ret !== undefined ?
5571 // Support: IE
5572 // IE returns zIndex value as an integer.
5573 ret + "" :
5574 ret;
5575}
5576
5577
5578function addGetHookIf( conditionFn, hookFn ) {
5579 // Define the hook, we'll check on the first run if it's really needed.
5580 return {
5581 get: function() {
5582 if ( conditionFn() ) {
5583 // Hook not needed (or it's not possible to use it due to missing dependency),
5584 // remove it.
5585 // Since there are no other hooks for marginRight, remove the whole object.
5586 delete this.get;
5587 return;
5588 }
5589
5590 // Hook needed; redefine it so that the support test is not executed again.
5591
5592 return (this.get = hookFn).apply( this, arguments );
5593 }
5594 };
5595}
5596
5597
5598(function() {
5599 var pixelPositionVal, boxSizingReliableVal,
5600 docElem = document.documentElement,
5601 container = document.createElement( "div" ),
5602 div = document.createElement( "div" );
5603
5604 if ( !div.style ) {
5605 return;
5606 }
5607
5608 div.style.backgroundClip = "content-box";
5609 div.cloneNode( true ).style.backgroundClip = "";
5610 support.clearCloneStyle = div.style.backgroundClip === "content-box";
5611
5612 container.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;" +
5613 "position:absolute";
5614 container.appendChild( div );
5615
5616 // Executing both pixelPosition & boxSizingReliable tests require only one layout
5617 // so they're executed at the same time to save the second computation.
5618 function computePixelPositionAndBoxSizingReliable() {
5619 div.style.cssText =
5620 // Support: Firefox<29, Android 2.3
5621 // Vendor-prefix box-sizing
5622 "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" +
5623 "box-sizing:border-box;display:block;margin-top:1%;top:1%;" +
5624 "border:1px;padding:1px;width:4px;position:absolute";
5625 div.innerHTML = "";
5626 docElem.appendChild( container );
5627
5628 var divStyle = window.getComputedStyle( div, null );
5629 pixelPositionVal = divStyle.top !== "1%";
5630 boxSizingReliableVal = divStyle.width === "4px";
5631
5632 docElem.removeChild( container );
5633 }
5634
5635 // Support: node.js jsdom
5636 // Don't assume that getComputedStyle is a property of the global object
5637 if ( window.getComputedStyle ) {
5638 jQuery.extend( support, {
5639 pixelPosition: function() {
5640 // This test is executed only once but we still do memoizing
5641 // since we can use the boxSizingReliable pre-computing.
5642 // No need to check if the test was already performed, though.
5643 computePixelPositionAndBoxSizingReliable();
5644 return pixelPositionVal;
5645 },
5646 boxSizingReliable: function() {
5647 if ( boxSizingReliableVal == null ) {
5648 computePixelPositionAndBoxSizingReliable();
5649 }
5650 return boxSizingReliableVal;
5651 },
5652 reliableMarginRight: function() {
5653 // Support: Android 2.3
5654 // Check if div with explicit width and no margin-right incorrectly
5655 // gets computed margin-right based on width of container. (#3333)
5656 // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
5657 // This support function is only executed once so no memoizing is needed.
5658 var ret,
5659 marginDiv = div.appendChild( document.createElement( "div" ) );
5660
5661 // Reset CSS: box-sizing; display; margin; border; padding
5662 marginDiv.style.cssText = div.style.cssText =
5663 // Support: Firefox<29, Android 2.3
5664 // Vendor-prefix box-sizing
5665 "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
5666 "box-sizing:content-box;display:block;margin:0;border:0;padding:0";
5667 marginDiv.style.marginRight = marginDiv.style.width = "0";
5668 div.style.width = "1px";
5669 docElem.appendChild( container );
5670
5671 ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight );
5672
5673 docElem.removeChild( container );
5674
5675 return ret;
5676 }
5677 });
5678 }
5679})();
5680
5681
5682// A method for quickly swapping in/out CSS properties to get correct calculations.
5683jQuery.swap = function( elem, options, callback, args ) {
5684 var ret, name,
5685 old = {};
5686
5687 // Remember the old values, and insert the new ones
5688 for ( name in options ) {
5689 old[ name ] = elem.style[ name ];
5690 elem.style[ name ] = options[ name ];
5691 }
5692
5693 ret = callback.apply( elem, args || [] );
5694
5695 // Revert the old values
5696 for ( name in options ) {
5697 elem.style[ name ] = old[ name ];
5698 }
5699
5700 return ret;
5701};
5702
5703
5704var
5705 // swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
5706 // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
5707 rdisplayswap = /^(none|table(?!-c[ea]).+)/,
5708 rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ),
5709 rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ),
5710
5711 cssShow = { position: "absolute", visibility: "hidden", display: "block" },
5712 cssNormalTransform = {
5713 letterSpacing: "0",
5714 fontWeight: "400"
5715 },
5716
5717 cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
5718
5719// return a css property mapped to a potentially vendor prefixed property
5720function vendorPropName( style, name ) {
5721
5722 // shortcut for names that are not vendor prefixed
5723 if ( name in style ) {
5724 return name;
5725 }
5726
5727 // check for vendor prefixed names
5728 var capName = name[0].toUpperCase() + name.slice(1),
5729 origName = name,
5730 i = cssPrefixes.length;
5731
5732 while ( i-- ) {
5733 name = cssPrefixes[ i ] + capName;
5734 if ( name in style ) {
5735 return name;
5736 }
5737 }
5738
5739 return origName;
5740}
5741
5742function setPositiveNumber( elem, value, subtract ) {
5743 var matches = rnumsplit.exec( value );
5744 return matches ?
5745 // Guard against undefined "subtract", e.g., when used as in cssHooks
5746 Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
5747 value;
5748}
5749
5750function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
5751 var i = extra === ( isBorderBox ? "border" : "content" ) ?
5752 // If we already have the right measurement, avoid augmentation
5753 4 :
5754 // Otherwise initialize for horizontal or vertical properties
5755 name === "width" ? 1 : 0,
5756
5757 val = 0;
5758
5759 for ( ; i < 4; i += 2 ) {
5760 // both box models exclude margin, so add it if we want it
5761 if ( extra === "margin" ) {
5762 val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
5763 }
5764
5765 if ( isBorderBox ) {
5766 // border-box includes padding, so remove it if we want content
5767 if ( extra === "content" ) {
5768 val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
5769 }
5770
5771 // at this point, extra isn't border nor margin, so remove border
5772 if ( extra !== "margin" ) {
5773 val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
5774 }
5775 } else {
5776 // at this point, extra isn't content, so add padding
5777 val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
5778
5779 // at this point, extra isn't content nor padding, so add border
5780 if ( extra !== "padding" ) {
5781 val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
5782 }
5783 }
5784 }
5785
5786 return val;
5787}
5788
5789function getWidthOrHeight( elem, name, extra ) {
5790
5791 // Start with offset property, which is equivalent to the border-box value
5792 var valueIsBorderBox = true,
5793 val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
5794 styles = getStyles( elem ),
5795 isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
5796
5797 // some non-html elements return undefined for offsetWidth, so check for null/undefined
5798 // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
5799 // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
5800 if ( val <= 0 || val == null ) {
5801 // Fall back to computed then uncomputed css if necessary
5802 val = curCSS( elem, name, styles );
5803 if ( val < 0 || val == null ) {
5804 val = elem.style[ name ];
5805 }
5806
5807 // Computed unit is not pixels. Stop here and return.
5808 if ( rnumnonpx.test(val) ) {
5809 return val;
5810 }
5811
5812 // we need the check for style in case a browser which returns unreliable values
5813 // for getComputedStyle silently falls back to the reliable elem.style
5814 valueIsBorderBox = isBorderBox &&
5815 ( support.boxSizingReliable() || val === elem.style[ name ] );
5816
5817 // Normalize "", auto, and prepare for extra
5818 val = parseFloat( val ) || 0;
5819 }
5820
5821 // use the active box-sizing model to add/subtract irrelevant styles
5822 return ( val +
5823 augmentWidthOrHeight(
5824 elem,
5825 name,
5826 extra || ( isBorderBox ? "border" : "content" ),
5827 valueIsBorderBox,
5828 styles
5829 )
5830 ) + "px";
5831}
5832
5833function showHide( elements, show ) {
5834 var display, elem, hidden,
5835 values = [],
5836 index = 0,
5837 length = elements.length;
5838
5839 for ( ; index < length; index++ ) {
5840 elem = elements[ index ];
5841 if ( !elem.style ) {
5842 continue;
5843 }
5844
5845 values[ index ] = data_priv.get( elem, "olddisplay" );
5846 display = elem.style.display;
5847 if ( show ) {
5848 // Reset the inline display of this element to learn if it is
5849 // being hidden by cascaded rules or not
5850 if ( !values[ index ] && display === "none" ) {
5851 elem.style.display = "";
5852 }
5853
5854 // Set elements which have been overridden with display: none
5855 // in a stylesheet to whatever the default browser style is
5856 // for such an element
5857 if ( elem.style.display === "" && isHidden( elem ) ) {
5858 values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) );
5859 }
5860 } else {
5861 hidden = isHidden( elem );
5862
5863 if ( display !== "none" || !hidden ) {
5864 data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
5865 }
5866 }
5867 }
5868
5869 // Set the display of most of the elements in a second loop
5870 // to avoid the constant reflow
5871 for ( index = 0; index < length; index++ ) {
5872 elem = elements[ index ];
5873 if ( !elem.style ) {
5874 continue;
5875 }
5876 if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
5877 elem.style.display = show ? values[ index ] || "" : "none";
5878 }
5879 }
5880
5881 return elements;
5882}
5883
5884jQuery.extend({
5885 // Add in style property hooks for overriding the default
5886 // behavior of getting and setting a style property
5887 cssHooks: {
5888 opacity: {
5889 get: function( elem, computed ) {
5890 if ( computed ) {
5891 // We should always get a number back from opacity
5892 var ret = curCSS( elem, "opacity" );
5893 return ret === "" ? "1" : ret;
5894 }
5895 }
5896 }
5897 },
5898
5899 // Don't automatically add "px" to these possibly-unitless properties
5900 cssNumber: {
5901 "columnCount": true,
5902 "fillOpacity": true,
5903 "flexGrow": true,
5904 "flexShrink": true,
5905 "fontWeight": true,
5906 "lineHeight": true,
5907 "opacity": true,
5908 "order": true,
5909 "orphans": true,
5910 "widows": true,
5911 "zIndex": true,
5912 "zoom": true
5913 },
5914
5915 // Add in properties whose names you wish to fix before
5916 // setting or getting the value
5917 cssProps: {
5918 // normalize float css property
5919 "float": "cssFloat"
5920 },
5921
5922 // Get and set the style property on a DOM Node
5923 style: function( elem, name, value, extra ) {
5924 // Don't set styles on text and comment nodes
5925 if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
5926 return;
5927 }
5928
5929 // Make sure that we're working with the right name
5930 var ret, type, hooks,
5931 origName = jQuery.camelCase( name ),
5932 style = elem.style;
5933
5934 name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
5935
5936 // gets hook for the prefixed version
5937 // followed by the unprefixed version
5938 hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
5939
5940 // Check if we're setting a value
5941 if ( value !== undefined ) {
5942 type = typeof value;
5943
5944 // convert relative number strings (+= or -=) to relative numbers. #7345
5945 if ( type === "string" && (ret = rrelNum.exec( value )) ) {
5946 value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
5947 // Fixes bug #9237
5948 type = "number";
5949 }
5950
5951 // Make sure that null and NaN values aren't set. See: #7116
5952 if ( value == null || value !== value ) {
5953 return;
5954 }
5955
5956 // If a number was passed in, add 'px' to the (except for certain CSS properties)
5957 if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
5958 value += "px";
5959 }
5960
5961 // Fixes #8908, it can be done more correctly by specifying setters in cssHooks,
5962 // but it would mean to define eight (for every problematic property) identical functions
5963 if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
5964 style[ name ] = "inherit";
5965 }
5966
5967 // If a hook was provided, use that value, otherwise just set the specified value
5968 if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
5969 style[ name ] = value;
5970 }
5971
5972 } else {
5973 // If a hook was provided get the non-computed value from there
5974 if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
5975 return ret;
5976 }
5977
5978 // Otherwise just get the value from the style object
5979 return style[ name ];
5980 }
5981 },
5982
5983 css: function( elem, name, extra, styles ) {
5984 var val, num, hooks,
5985 origName = jQuery.camelCase( name );
5986
5987 // Make sure that we're working with the right name
5988 name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
5989
5990 // gets hook for the prefixed version
5991 // followed by the unprefixed version
5992 hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
5993
5994 // If a hook was provided get the computed value from there
5995 if ( hooks && "get" in hooks ) {
5996 val = hooks.get( elem, true, extra );
5997 }
5998
5999 // Otherwise, if a way to get the computed value exists, use that
6000 if ( val === undefined ) {
6001 val = curCSS( elem, name, styles );
6002 }
6003
6004 //convert "normal" to computed value
6005 if ( val === "normal" && name in cssNormalTransform ) {
6006 val = cssNormalTransform[ name ];
6007 }
6008
6009 // Return, converting to number if forced or a qualifier was provided and val looks numeric
6010 if ( extra === "" || extra ) {
6011 num = parseFloat( val );
6012 return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
6013 }
6014 return val;
6015 }
6016});
6017
6018jQuery.each([ "height", "width" ], function( i, name ) {
6019 jQuery.cssHooks[ name ] = {
6020 get: function( elem, computed, extra ) {
6021 if ( computed ) {
6022 // certain elements can have dimension info if we invisibly show them
6023 // however, it must have a current display style that would benefit from this
6024 return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ?
6025 jQuery.swap( elem, cssShow, function() {
6026 return getWidthOrHeight( elem, name, extra );
6027 }) :
6028 getWidthOrHeight( elem, name, extra );
6029 }
6030 },
6031
6032 set: function( elem, value, extra ) {
6033 var styles = extra && getStyles( elem );
6034 return setPositiveNumber( elem, value, extra ?
6035 augmentWidthOrHeight(
6036 elem,
6037 name,
6038 extra,
6039 jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6040 styles
6041 ) : 0
6042 );
6043 }
6044 };
6045});
6046
6047// Support: Android 2.3
6048jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
6049 function( elem, computed ) {
6050 if ( computed ) {
6051 // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
6052 // Work around by temporarily setting element display to inline-block
6053 return jQuery.swap( elem, { "display": "inline-block" },
6054 curCSS, [ elem, "marginRight" ] );
6055 }
6056 }
6057);
6058
6059// These hooks are used by animate to expand properties
6060jQuery.each({
6061 margin: "",
6062 padding: "",
6063 border: "Width"
6064}, function( prefix, suffix ) {
6065 jQuery.cssHooks[ prefix + suffix ] = {
6066 expand: function( value ) {
6067 var i = 0,
6068 expanded = {},
6069
6070 // assumes a single number if not a string
6071 parts = typeof value === "string" ? value.split(" ") : [ value ];
6072
6073 for ( ; i < 4; i++ ) {
6074 expanded[ prefix + cssExpand[ i ] + suffix ] =
6075 parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
6076 }
6077
6078 return expanded;
6079 }
6080 };
6081
6082 if ( !rmargin.test( prefix ) ) {
6083 jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
6084 }
6085});
6086
6087jQuery.fn.extend({
6088 css: function( name, value ) {
6089 return access( this, function( elem, name, value ) {
6090 var styles, len,
6091 map = {},
6092 i = 0;
6093
6094 if ( jQuery.isArray( name ) ) {
6095 styles = getStyles( elem );
6096 len = name.length;
6097
6098 for ( ; i < len; i++ ) {
6099 map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
6100 }
6101
6102 return map;
6103 }
6104
6105 return value !== undefined ?
6106 jQuery.style( elem, name, value ) :
6107 jQuery.css( elem, name );
6108 }, name, value, arguments.length > 1 );
6109 },
6110 show: function() {
6111 return showHide( this, true );
6112 },
6113 hide: function() {
6114 return showHide( this );
6115 },
6116 toggle: function( state ) {
6117 if ( typeof state === "boolean" ) {
6118 return state ? this.show() : this.hide();
6119 }
6120
6121 return this.each(function() {
6122 if ( isHidden( this ) ) {
6123 jQuery( this ).show();
6124 } else {
6125 jQuery( this ).hide();
6126 }
6127 });
6128 }
6129});
6130
6131
6132function Tween( elem, options, prop, end, easing ) {
6133 return new Tween.prototype.init( elem, options, prop, end, easing );
6134}
6135jQuery.Tween = Tween;
6136
6137Tween.prototype = {
6138 constructor: Tween,
6139 init: function( elem, options, prop, end, easing, unit ) {
6140 this.elem = elem;
6141 this.prop = prop;
6142 this.easing = easing || "swing";
6143 this.options = options;
6144 this.start = this.now = this.cur();
6145 this.end = end;
6146 this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
6147 },
6148 cur: function() {
6149 var hooks = Tween.propHooks[ this.prop ];
6150
6151 return hooks && hooks.get ?
6152 hooks.get( this ) :
6153 Tween.propHooks._default.get( this );
6154 },
6155 run: function( percent ) {
6156 var eased,
6157 hooks = Tween.propHooks[ this.prop ];
6158
6159 if ( this.options.duration ) {
6160 this.pos = eased = jQuery.easing[ this.easing ](
6161 percent, this.options.duration * percent, 0, 1, this.options.duration
6162 );
6163 } else {
6164 this.pos = eased = percent;
6165 }
6166 this.now = ( this.end - this.start ) * eased + this.start;
6167
6168 if ( this.options.step ) {
6169 this.options.step.call( this.elem, this.now, this );
6170 }
6171
6172 if ( hooks && hooks.set ) {
6173 hooks.set( this );
6174 } else {
6175 Tween.propHooks._default.set( this );
6176 }
6177 return this;
6178 }
6179};
6180
6181Tween.prototype.init.prototype = Tween.prototype;
6182
6183Tween.propHooks = {
6184 _default: {
6185 get: function( tween ) {
6186 var result;
6187
6188 if ( tween.elem[ tween.prop ] != null &&
6189 (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
6190 return tween.elem[ tween.prop ];
6191 }
6192
6193 // passing an empty string as a 3rd parameter to .css will automatically
6194 // attempt a parseFloat and fallback to a string if the parse fails
6195 // so, simple values such as "10px" are parsed to Float.
6196 // complex values such as "rotate(1rad)" are returned as is.
6197 result = jQuery.css( tween.elem, tween.prop, "" );
6198 // Empty strings, null, undefined and "auto" are converted to 0.
6199 return !result || result === "auto" ? 0 : result;
6200 },
6201 set: function( tween ) {
6202 // use step hook for back compat - use cssHook if its there - use .style if its
6203 // available and use plain properties where available
6204 if ( jQuery.fx.step[ tween.prop ] ) {
6205 jQuery.fx.step[ tween.prop ]( tween );
6206 } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
6207 jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
6208 } else {
6209 tween.elem[ tween.prop ] = tween.now;
6210 }
6211 }
6212 }
6213};
6214
6215// Support: IE9
6216// Panic based approach to setting things on disconnected nodes
6217
6218Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
6219 set: function( tween ) {
6220 if ( tween.elem.nodeType && tween.elem.parentNode ) {
6221 tween.elem[ tween.prop ] = tween.now;
6222 }
6223 }
6224};
6225
6226jQuery.easing = {
6227 linear: function( p ) {
6228 return p;
6229 },
6230 swing: function( p ) {
6231 return 0.5 - Math.cos( p * Math.PI ) / 2;
6232 }
6233};
6234
6235jQuery.fx = Tween.prototype.init;
6236
6237// Back Compat <1.8 extension point
6238jQuery.fx.step = {};
6239
6240
6241
6242
6243var
6244 fxNow, timerId,
6245 rfxtypes = /^(?:toggle|show|hide)$/,
6246 rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ),
6247 rrun = /queueHooks$/,
6248 animationPrefilters = [ defaultPrefilter ],
6249 tweeners = {
6250 "*": [ function( prop, value ) {
6251 var tween = this.createTween( prop, value ),
6252 target = tween.cur(),
6253 parts = rfxnum.exec( value ),
6254 unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
6255
6256 // Starting value computation is required for potential unit mismatches
6257 start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) &&
6258 rfxnum.exec( jQuery.css( tween.elem, prop ) ),
6259 scale = 1,
6260 maxIterations = 20;
6261
6262 if ( start && start[ 3 ] !== unit ) {
6263 // Trust units reported by jQuery.css
6264 unit = unit || start[ 3 ];
6265
6266 // Make sure we update the tween properties later on
6267 parts = parts || [];
6268
6269 // Iteratively approximate from a nonzero starting point
6270 start = +target || 1;
6271
6272 do {
6273 // If previous iteration zeroed out, double until we get *something*
6274 // Use a string for doubling factor so we don't accidentally see scale as unchanged below
6275 scale = scale || ".5";
6276
6277 // Adjust and apply
6278 start = start / scale;
6279 jQuery.style( tween.elem, prop, start + unit );
6280
6281 // Update scale, tolerating zero or NaN from tween.cur()
6282 // And breaking the loop if scale is unchanged or perfect, or if we've just had enough
6283 } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
6284 }
6285
6286 // Update tween properties
6287 if ( parts ) {
6288 start = tween.start = +start || +target || 0;
6289 tween.unit = unit;
6290 // If a +=/-= token was provided, we're doing a relative animation
6291 tween.end = parts[ 1 ] ?
6292 start + ( parts[ 1 ] + 1 ) * parts[ 2 ] :
6293 +parts[ 2 ];
6294 }
6295
6296 return tween;
6297 } ]
6298 };
6299
6300// Animations created synchronously will run synchronously
6301function createFxNow() {
6302 setTimeout(function() {
6303 fxNow = undefined;
6304 });
6305 return ( fxNow = jQuery.now() );
6306}
6307
6308// Generate parameters to create a standard animation
6309function genFx( type, includeWidth ) {
6310 var which,
6311 i = 0,
6312 attrs = { height: type };
6313
6314 // if we include width, step value is 1 to do all cssExpand values,
6315 // if we don't include width, step value is 2 to skip over Left and Right
6316 includeWidth = includeWidth ? 1 : 0;
6317 for ( ; i < 4 ; i += 2 - includeWidth ) {
6318 which = cssExpand[ i ];
6319 attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
6320 }
6321
6322 if ( includeWidth ) {
6323 attrs.opacity = attrs.width = type;
6324 }
6325
6326 return attrs;
6327}
6328
6329function createTween( value, prop, animation ) {
6330 var tween,
6331 collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
6332 index = 0,
6333 length = collection.length;
6334 for ( ; index < length; index++ ) {
6335 if ( (tween = collection[ index ].call( animation, prop, value )) ) {
6336
6337 // we're done with this property
6338 return tween;
6339 }
6340 }
6341}
6342
6343function defaultPrefilter( elem, props, opts ) {
6344 /* jshint validthis: true */
6345 var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
6346 anim = this,
6347 orig = {},
6348 style = elem.style,
6349 hidden = elem.nodeType && isHidden( elem ),
6350 dataShow = data_priv.get( elem, "fxshow" );
6351
6352 // handle queue: false promises
6353 if ( !opts.queue ) {
6354 hooks = jQuery._queueHooks( elem, "fx" );
6355 if ( hooks.unqueued == null ) {
6356 hooks.unqueued = 0;
6357 oldfire = hooks.empty.fire;
6358 hooks.empty.fire = function() {
6359 if ( !hooks.unqueued ) {
6360 oldfire();
6361 }
6362 };
6363 }
6364 hooks.unqueued++;
6365
6366 anim.always(function() {
6367 // doing this makes sure that the complete handler will be called
6368 // before this completes
6369 anim.always(function() {
6370 hooks.unqueued--;
6371 if ( !jQuery.queue( elem, "fx" ).length ) {
6372 hooks.empty.fire();
6373 }
6374 });
6375 });
6376 }
6377
6378 // height/width overflow pass
6379 if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
6380 // Make sure that nothing sneaks out
6381 // Record all 3 overflow attributes because IE9-10 do not
6382 // change the overflow attribute when overflowX and
6383 // overflowY are set to the same value
6384 opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
6385
6386 // Set display property to inline-block for height/width
6387 // animations on inline elements that are having width/height animated
6388 display = jQuery.css( elem, "display" );
6389
6390 // Test default display if display is currently "none"
6391 checkDisplay = display === "none" ?
6392 data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
6393
6394 if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
6395 style.display = "inline-block";
6396 }
6397 }
6398
6399 if ( opts.overflow ) {
6400 style.overflow = "hidden";
6401 anim.always(function() {
6402 style.overflow = opts.overflow[ 0 ];
6403 style.overflowX = opts.overflow[ 1 ];
6404 style.overflowY = opts.overflow[ 2 ];
6405 });
6406 }
6407
6408 // show/hide pass
6409 for ( prop in props ) {
6410 value = props[ prop ];
6411 if ( rfxtypes.exec( value ) ) {
6412 delete props[ prop ];
6413 toggle = toggle || value === "toggle";
6414 if ( value === ( hidden ? "hide" : "show" ) ) {
6415
6416 // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden
6417 if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
6418 hidden = true;
6419 } else {
6420 continue;
6421 }
6422 }
6423 orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
6424
6425 // Any non-fx value stops us from restoring the original display value
6426 } else {
6427 display = undefined;
6428 }
6429 }
6430
6431 if ( !jQuery.isEmptyObject( orig ) ) {
6432 if ( dataShow ) {
6433 if ( "hidden" in dataShow ) {
6434 hidden = dataShow.hidden;
6435 }
6436 } else {
6437 dataShow = data_priv.access( elem, "fxshow", {} );
6438 }
6439
6440 // store state if its toggle - enables .stop().toggle() to "reverse"
6441 if ( toggle ) {
6442 dataShow.hidden = !hidden;
6443 }
6444 if ( hidden ) {
6445 jQuery( elem ).show();
6446 } else {
6447 anim.done(function() {
6448 jQuery( elem ).hide();
6449 });
6450 }
6451 anim.done(function() {
6452 var prop;
6453
6454 data_priv.remove( elem, "fxshow" );
6455 for ( prop in orig ) {
6456 jQuery.style( elem, prop, orig[ prop ] );
6457 }
6458 });
6459 for ( prop in orig ) {
6460 tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
6461
6462 if ( !( prop in dataShow ) ) {
6463 dataShow[ prop ] = tween.start;
6464 if ( hidden ) {
6465 tween.end = tween.start;
6466 tween.start = prop === "width" || prop === "height" ? 1 : 0;
6467 }
6468 }
6469 }
6470
6471 // If this is a noop like .hide().hide(), restore an overwritten display value
6472 } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) {
6473 style.display = display;
6474 }
6475}
6476
6477function propFilter( props, specialEasing ) {
6478 var index, name, easing, value, hooks;
6479
6480 // camelCase, specialEasing and expand cssHook pass
6481 for ( index in props ) {
6482 name = jQuery.camelCase( index );
6483 easing = specialEasing[ name ];
6484 value = props[ index ];
6485 if ( jQuery.isArray( value ) ) {
6486 easing = value[ 1 ];
6487 value = props[ index ] = value[ 0 ];
6488 }
6489
6490 if ( index !== name ) {
6491 props[ name ] = value;
6492 delete props[ index ];
6493 }
6494
6495 hooks = jQuery.cssHooks[ name ];
6496 if ( hooks && "expand" in hooks ) {
6497 value = hooks.expand( value );
6498 delete props[ name ];
6499
6500 // not quite $.extend, this wont overwrite keys already present.
6501 // also - reusing 'index' from above because we have the correct "name"
6502 for ( index in value ) {
6503 if ( !( index in props ) ) {
6504 props[ index ] = value[ index ];
6505 specialEasing[ index ] = easing;
6506 }
6507 }
6508 } else {
6509 specialEasing[ name ] = easing;
6510 }
6511 }
6512}
6513
6514function Animation( elem, properties, options ) {
6515 var result,
6516 stopped,
6517 index = 0,
6518 length = animationPrefilters.length,
6519 deferred = jQuery.Deferred().always( function() {
6520 // don't match elem in the :animated selector
6521 delete tick.elem;
6522 }),
6523 tick = function() {
6524 if ( stopped ) {
6525 return false;
6526 }
6527 var currentTime = fxNow || createFxNow(),
6528 remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
6529 // archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)
6530 temp = remaining / animation.duration || 0,
6531 percent = 1 - temp,
6532 index = 0,
6533 length = animation.tweens.length;
6534
6535 for ( ; index < length ; index++ ) {
6536 animation.tweens[ index ].run( percent );
6537 }
6538
6539 deferred.notifyWith( elem, [ animation, percent, remaining ]);
6540
6541 if ( percent < 1 && length ) {
6542 return remaining;
6543 } else {
6544 deferred.resolveWith( elem, [ animation ] );
6545 return false;
6546 }
6547 },
6548 animation = deferred.promise({
6549 elem: elem,
6550 props: jQuery.extend( {}, properties ),
6551 opts: jQuery.extend( true, { specialEasing: {} }, options ),
6552 originalProperties: properties,
6553 originalOptions: options,
6554 startTime: fxNow || createFxNow(),
6555 duration: options.duration,
6556 tweens: [],
6557 createTween: function( prop, end ) {
6558 var tween = jQuery.Tween( elem, animation.opts, prop, end,
6559 animation.opts.specialEasing[ prop ] || animation.opts.easing );
6560 animation.tweens.push( tween );
6561 return tween;
6562 },
6563 stop: function( gotoEnd ) {
6564 var index = 0,
6565 // if we are going to the end, we want to run all the tweens
6566 // otherwise we skip this part
6567 length = gotoEnd ? animation.tweens.length : 0;
6568 if ( stopped ) {
6569 return this;
6570 }
6571 stopped = true;
6572 for ( ; index < length ; index++ ) {
6573 animation.tweens[ index ].run( 1 );
6574 }
6575
6576 // resolve when we played the last frame
6577 // otherwise, reject
6578 if ( gotoEnd ) {
6579 deferred.resolveWith( elem, [ animation, gotoEnd ] );
6580 } else {
6581 deferred.rejectWith( elem, [ animation, gotoEnd ] );
6582 }
6583 return this;
6584 }
6585 }),
6586 props = animation.props;
6587
6588 propFilter( props, animation.opts.specialEasing );
6589
6590 for ( ; index < length ; index++ ) {
6591 result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
6592 if ( result ) {
6593 return result;
6594 }
6595 }
6596
6597 jQuery.map( props, createTween, animation );
6598
6599 if ( jQuery.isFunction( animation.opts.start ) ) {
6600 animation.opts.start.call( elem, animation );
6601 }
6602
6603 jQuery.fx.timer(
6604 jQuery.extend( tick, {
6605 elem: elem,
6606 anim: animation,
6607 queue: animation.opts.queue
6608 })
6609 );
6610
6611 // attach callbacks from options
6612 return animation.progress( animation.opts.progress )
6613 .done( animation.opts.done, animation.opts.complete )
6614 .fail( animation.opts.fail )
6615 .always( animation.opts.always );
6616}
6617
6618jQuery.Animation = jQuery.extend( Animation, {
6619
6620 tweener: function( props, callback ) {
6621 if ( jQuery.isFunction( props ) ) {
6622 callback = props;
6623 props = [ "*" ];
6624 } else {
6625 props = props.split(" ");
6626 }
6627
6628 var prop,
6629 index = 0,
6630 length = props.length;
6631
6632 for ( ; index < length ; index++ ) {
6633 prop = props[ index ];
6634 tweeners[ prop ] = tweeners[ prop ] || [];
6635 tweeners[ prop ].unshift( callback );
6636 }
6637 },
6638
6639 prefilter: function( callback, prepend ) {
6640 if ( prepend ) {
6641 animationPrefilters.unshift( callback );
6642 } else {
6643 animationPrefilters.push( callback );
6644 }
6645 }
6646});
6647
6648jQuery.speed = function( speed, easing, fn ) {
6649 var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
6650 complete: fn || !fn && easing ||
6651 jQuery.isFunction( speed ) && speed,
6652 duration: speed,
6653 easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
6654 };
6655
6656 opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
6657 opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
6658
6659 // normalize opt.queue - true/undefined/null -> "fx"
6660 if ( opt.queue == null || opt.queue === true ) {
6661 opt.queue = "fx";
6662 }
6663
6664 // Queueing
6665 opt.old = opt.complete;
6666
6667 opt.complete = function() {
6668 if ( jQuery.isFunction( opt.old ) ) {
6669 opt.old.call( this );
6670 }
6671
6672 if ( opt.queue ) {
6673 jQuery.dequeue( this, opt.queue );
6674 }
6675 };
6676
6677 return opt;
6678};
6679
6680jQuery.fn.extend({
6681 fadeTo: function( speed, to, easing, callback ) {
6682
6683 // show any hidden elements after setting opacity to 0
6684 return this.filter( isHidden ).css( "opacity", 0 ).show()
6685
6686 // animate to the value specified
6687 .end().animate({ opacity: to }, speed, easing, callback );
6688 },
6689 animate: function( prop, speed, easing, callback ) {
6690 var empty = jQuery.isEmptyObject( prop ),
6691 optall = jQuery.speed( speed, easing, callback ),
6692 doAnimation = function() {
6693 // Operate on a copy of prop so per-property easing won't be lost
6694 var anim = Animation( this, jQuery.extend( {}, prop ), optall );
6695
6696 // Empty animations, or finishing resolves immediately
6697 if ( empty || data_priv.get( this, "finish" ) ) {
6698 anim.stop( true );
6699 }
6700 };
6701 doAnimation.finish = doAnimation;
6702
6703 return empty || optall.queue === false ?
6704 this.each( doAnimation ) :
6705 this.queue( optall.queue, doAnimation );
6706 },
6707 stop: function( type, clearQueue, gotoEnd ) {
6708 var stopQueue = function( hooks ) {
6709 var stop = hooks.stop;
6710 delete hooks.stop;
6711 stop( gotoEnd );
6712 };
6713
6714 if ( typeof type !== "string" ) {
6715 gotoEnd = clearQueue;
6716 clearQueue = type;
6717 type = undefined;
6718 }
6719 if ( clearQueue && type !== false ) {
6720 this.queue( type || "fx", [] );
6721 }
6722
6723 return this.each(function() {
6724 var dequeue = true,
6725 index = type != null && type + "queueHooks",
6726 timers = jQuery.timers,
6727 data = data_priv.get( this );
6728
6729 if ( index ) {
6730 if ( data[ index ] && data[ index ].stop ) {
6731 stopQueue( data[ index ] );
6732 }
6733 } else {
6734 for ( index in data ) {
6735 if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
6736 stopQueue( data[ index ] );
6737 }
6738 }
6739 }
6740
6741 for ( index = timers.length; index--; ) {
6742 if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
6743 timers[ index ].anim.stop( gotoEnd );
6744 dequeue = false;
6745 timers.splice( index, 1 );
6746 }
6747 }
6748
6749 // start the next in the queue if the last step wasn't forced
6750 // timers currently will call their complete callbacks, which will dequeue
6751 // but only if they were gotoEnd
6752 if ( dequeue || !gotoEnd ) {
6753 jQuery.dequeue( this, type );
6754 }
6755 });
6756 },
6757 finish: function( type ) {
6758 if ( type !== false ) {
6759 type = type || "fx";
6760 }
6761 return this.each(function() {
6762 var index,
6763 data = data_priv.get( this ),
6764 queue = data[ type + "queue" ],
6765 hooks = data[ type + "queueHooks" ],
6766 timers = jQuery.timers,
6767 length = queue ? queue.length : 0;
6768
6769 // enable finishing flag on private data
6770 data.finish = true;
6771
6772 // empty the queue first
6773 jQuery.queue( this, type, [] );
6774
6775 if ( hooks && hooks.stop ) {
6776 hooks.stop.call( this, true );
6777 }
6778
6779 // look for any active animations, and finish them
6780 for ( index = timers.length; index--; ) {
6781 if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
6782 timers[ index ].anim.stop( true );
6783 timers.splice( index, 1 );
6784 }
6785 }
6786
6787 // look for any animations in the old queue and finish them
6788 for ( index = 0; index < length; index++ ) {
6789 if ( queue[ index ] && queue[ index ].finish ) {
6790 queue[ index ].finish.call( this );
6791 }
6792 }
6793
6794 // turn off finishing flag
6795 delete data.finish;
6796 });
6797 }
6798});
6799
6800jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
6801 var cssFn = jQuery.fn[ name ];
6802 jQuery.fn[ name ] = function( speed, easing, callback ) {
6803 return speed == null || typeof speed === "boolean" ?
6804 cssFn.apply( this, arguments ) :
6805 this.animate( genFx( name, true ), speed, easing, callback );
6806 };
6807});
6808
6809// Generate shortcuts for custom animations
6810jQuery.each({
6811 slideDown: genFx("show"),
6812 slideUp: genFx("hide"),
6813 slideToggle: genFx("toggle"),
6814 fadeIn: { opacity: "show" },
6815 fadeOut: { opacity: "hide" },
6816 fadeToggle: { opacity: "toggle" }
6817}, function( name, props ) {
6818 jQuery.fn[ name ] = function( speed, easing, callback ) {
6819 return this.animate( props, speed, easing, callback );
6820 };
6821});
6822
6823jQuery.timers = [];
6824jQuery.fx.tick = function() {
6825 var timer,
6826 i = 0,
6827 timers = jQuery.timers;
6828
6829 fxNow = jQuery.now();
6830
6831 for ( ; i < timers.length; i++ ) {
6832 timer = timers[ i ];
6833 // Checks the timer has not already been removed
6834 if ( !timer() && timers[ i ] === timer ) {
6835 timers.splice( i--, 1 );
6836 }
6837 }
6838
6839 if ( !timers.length ) {
6840 jQuery.fx.stop();
6841 }
6842 fxNow = undefined;
6843};
6844
6845jQuery.fx.timer = function( timer ) {
6846 jQuery.timers.push( timer );
6847 if ( timer() ) {
6848 jQuery.fx.start();
6849 } else {
6850 jQuery.timers.pop();
6851 }
6852};
6853
6854jQuery.fx.interval = 13;
6855
6856jQuery.fx.start = function() {
6857 if ( !timerId ) {
6858 timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
6859 }
6860};
6861
6862jQuery.fx.stop = function() {
6863 clearInterval( timerId );
6864 timerId = null;
6865};
6866
6867jQuery.fx.speeds = {
6868 slow: 600,
6869 fast: 200,
6870 // Default speed
6871 _default: 400
6872};
6873
6874
6875// Based off of the plugin by Clint Helfers, with permission.
6876// http://blindsignals.com/index.php/2009/07/jquery-delay/
6877jQuery.fn.delay = function( time, type ) {
6878 time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
6879 type = type || "fx";
6880
6881 return this.queue( type, function( next, hooks ) {
6882 var timeout = setTimeout( next, time );
6883 hooks.stop = function() {
6884 clearTimeout( timeout );
6885 };
6886 });
6887};
6888
6889
6890(function() {
6891 var input = document.createElement( "input" ),
6892 select = document.createElement( "select" ),
6893 opt = select.appendChild( document.createElement( "option" ) );
6894
6895 input.type = "checkbox";
6896
6897 // Support: iOS 5.1, Android 4.x, Android 2.3
6898 // Check the default checkbox/radio value ("" on old WebKit; "on" elsewhere)
6899 support.checkOn = input.value !== "";
6900
6901 // Must access the parent to make an option select properly
6902 // Support: IE9, IE10
6903 support.optSelected = opt.selected;
6904
6905 // Make sure that the options inside disabled selects aren't marked as disabled
6906 // (WebKit marks them as disabled)
6907 select.disabled = true;
6908 support.optDisabled = !opt.disabled;
6909
6910 // Check if an input maintains its value after becoming a radio
6911 // Support: IE9, IE10
6912 input = document.createElement( "input" );
6913 input.value = "t";
6914 input.type = "radio";
6915 support.radioValue = input.value === "t";
6916})();
6917
6918
6919var nodeHook, boolHook,
6920 attrHandle = jQuery.expr.attrHandle;
6921
6922jQuery.fn.extend({
6923 attr: function( name, value ) {
6924 return access( this, jQuery.attr, name, value, arguments.length > 1 );
6925 },
6926
6927 removeAttr: function( name ) {
6928 return this.each(function() {
6929 jQuery.removeAttr( this, name );
6930 });
6931 }
6932});
6933
6934jQuery.extend({
6935 attr: function( elem, name, value ) {
6936 var hooks, ret,
6937 nType = elem.nodeType;
6938
6939 // don't get/set attributes on text, comment and attribute nodes
6940 if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
6941 return;
6942 }
6943
6944 // Fallback to prop when attributes are not supported
6945 if ( typeof elem.getAttribute === strundefined ) {
6946 return jQuery.prop( elem, name, value );
6947 }
6948
6949 // All attributes are lowercase
6950 // Grab necessary hook if one is defined
6951 if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
6952 name = name.toLowerCase();
6953 hooks = jQuery.attrHooks[ name ] ||
6954 ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
6955 }
6956
6957 if ( value !== undefined ) {
6958
6959 if ( value === null ) {
6960 jQuery.removeAttr( elem, name );
6961
6962 } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
6963 return ret;
6964
6965 } else {
6966 elem.setAttribute( name, value + "" );
6967 return value;
6968 }
6969
6970 } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
6971 return ret;
6972
6973 } else {
6974 ret = jQuery.find.attr( elem, name );
6975
6976 // Non-existent attributes return null, we normalize to undefined
6977 return ret == null ?
6978 undefined :
6979 ret;
6980 }
6981 },
6982
6983 removeAttr: function( elem, value ) {
6984 var name, propName,
6985 i = 0,
6986 attrNames = value && value.match( rnotwhite );
6987
6988 if ( attrNames && elem.nodeType === 1 ) {
6989 while ( (name = attrNames[i++]) ) {
6990 propName = jQuery.propFix[ name ] || name;
6991
6992 // Boolean attributes get special treatment (#10870)
6993 if ( jQuery.expr.match.bool.test( name ) ) {
6994 // Set corresponding property to false
6995 elem[ propName ] = false;
6996 }
6997
6998 elem.removeAttribute( name );
6999 }
7000 }
7001 },
7002
7003 attrHooks: {
7004 type: {
7005 set: function( elem, value ) {
7006 if ( !support.radioValue && value === "radio" &&
7007 jQuery.nodeName( elem, "input" ) ) {
7008 // Setting the type on a radio button after the value resets the value in IE6-9
7009 // Reset value to default in case type is set after value during creation
7010 var val = elem.value;
7011 elem.setAttribute( "type", value );
7012 if ( val ) {
7013 elem.value = val;
7014 }
7015 return value;
7016 }
7017 }
7018 }
7019 }
7020});
7021
7022// Hooks for boolean attributes
7023boolHook = {
7024 set: function( elem, value, name ) {
7025 if ( value === false ) {
7026 // Remove boolean attributes when set to false
7027 jQuery.removeAttr( elem, name );
7028 } else {
7029 elem.setAttribute( name, name );
7030 }
7031 return name;
7032 }
7033};
7034jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
7035 var getter = attrHandle[ name ] || jQuery.find.attr;
7036
7037 attrHandle[ name ] = function( elem, name, isXML ) {
7038 var ret, handle;
7039 if ( !isXML ) {
7040 // Avoid an infinite loop by temporarily removing this function from the getter
7041 handle = attrHandle[ name ];
7042 attrHandle[ name ] = ret;
7043 ret = getter( elem, name, isXML ) != null ?
7044 name.toLowerCase() :
7045 null;
7046 attrHandle[ name ] = handle;
7047 }
7048 return ret;
7049 };
7050});
7051
7052
7053
7054
7055var rfocusable = /^(?:input|select|textarea|button)$/i;
7056
7057jQuery.fn.extend({
7058 prop: function( name, value ) {
7059 return access( this, jQuery.prop, name, value, arguments.length > 1 );
7060 },
7061
7062 removeProp: function( name ) {
7063 return this.each(function() {
7064 delete this[ jQuery.propFix[ name ] || name ];
7065 });
7066 }
7067});
7068
7069jQuery.extend({
7070 propFix: {
7071 "for": "htmlFor",
7072 "class": "className"
7073 },
7074
7075 prop: function( elem, name, value ) {
7076 var ret, hooks, notxml,
7077 nType = elem.nodeType;
7078
7079 // don't get/set properties on text, comment and attribute nodes
7080 if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
7081 return;
7082 }
7083
7084 notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
7085
7086 if ( notxml ) {
7087 // Fix name and attach hooks
7088 name = jQuery.propFix[ name ] || name;
7089 hooks = jQuery.propHooks[ name ];
7090 }
7091
7092 if ( value !== undefined ) {
7093 return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?
7094 ret :
7095 ( elem[ name ] = value );
7096
7097 } else {
7098 return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ?
7099 ret :
7100 elem[ name ];
7101 }
7102 },
7103
7104 propHooks: {
7105 tabIndex: {
7106 get: function( elem ) {
7107 return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ?
7108 elem.tabIndex :
7109 -1;
7110 }
7111 }
7112 }
7113});
7114
7115// Support: IE9+
7116// Selectedness for an option in an optgroup can be inaccurate
7117if ( !support.optSelected ) {
7118 jQuery.propHooks.selected = {
7119 get: function( elem ) {
7120 var parent = elem.parentNode;
7121 if ( parent && parent.parentNode ) {
7122 parent.parentNode.selectedIndex;
7123 }
7124 return null;
7125 }
7126 };
7127}
7128
7129jQuery.each([
7130 "tabIndex",
7131 "readOnly",
7132 "maxLength",
7133 "cellSpacing",
7134 "cellPadding",
7135 "rowSpan",
7136 "colSpan",
7137 "useMap",
7138 "frameBorder",
7139 "contentEditable"
7140], function() {
7141 jQuery.propFix[ this.toLowerCase() ] = this;
7142});
7143
7144
7145
7146
7147var rclass = /[\t\r\n\f]/g;
7148
7149jQuery.fn.extend({
7150 addClass: function( value ) {
7151 var classes, elem, cur, clazz, j, finalValue,
7152 proceed = typeof value === "string" && value,
7153 i = 0,
7154 len = this.length;
7155
7156 if ( jQuery.isFunction( value ) ) {
7157 return this.each(function( j ) {
7158 jQuery( this ).addClass( value.call( this, j, this.className ) );
7159 });
7160 }
7161
7162 if ( proceed ) {
7163 // The disjunction here is for better compressibility (see removeClass)
7164 classes = ( value || "" ).match( rnotwhite ) || [];
7165
7166 for ( ; i < len; i++ ) {
7167 elem = this[ i ];
7168 cur = elem.nodeType === 1 && ( elem.className ?
7169 ( " " + elem.className + " " ).replace( rclass, " " ) :
7170 " "
7171 );
7172
7173 if ( cur ) {
7174 j = 0;
7175 while ( (clazz = classes[j++]) ) {
7176 if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
7177 cur += clazz + " ";
7178 }
7179 }
7180
7181 // only assign if different to avoid unneeded rendering.
7182 finalValue = jQuery.trim( cur );
7183 if ( elem.className !== finalValue ) {
7184 elem.className = finalValue;
7185 }
7186 }
7187 }
7188 }
7189
7190 return this;
7191 },
7192
7193 removeClass: function( value ) {
7194 var classes, elem, cur, clazz, j, finalValue,
7195 proceed = arguments.length === 0 || typeof value === "string" && value,
7196 i = 0,
7197 len = this.length;
7198
7199 if ( jQuery.isFunction( value ) ) {
7200 return this.each(function( j ) {
7201 jQuery( this ).removeClass( value.call( this, j, this.className ) );
7202 });
7203 }
7204 if ( proceed ) {
7205 classes = ( value || "" ).match( rnotwhite ) || [];
7206
7207 for ( ; i < len; i++ ) {
7208 elem = this[ i ];
7209 // This expression is here for better compressibility (see addClass)
7210 cur = elem.nodeType === 1 && ( elem.className ?
7211 ( " " + elem.className + " " ).replace( rclass, " " ) :
7212 ""
7213 );
7214
7215 if ( cur ) {
7216 j = 0;
7217 while ( (clazz = classes[j++]) ) {
7218 // Remove *all* instances
7219 while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {
7220 cur = cur.replace( " " + clazz + " ", " " );
7221 }
7222 }
7223
7224 // only assign if different to avoid unneeded rendering.
7225 finalValue = value ? jQuery.trim( cur ) : "";
7226 if ( elem.className !== finalValue ) {
7227 elem.className = finalValue;
7228 }
7229 }
7230 }
7231 }
7232
7233 return this;
7234 },
7235
7236 toggleClass: function( value, stateVal ) {
7237 var type = typeof value;
7238
7239 if ( typeof stateVal === "boolean" && type === "string" ) {
7240 return stateVal ? this.addClass( value ) : this.removeClass( value );
7241 }
7242
7243 if ( jQuery.isFunction( value ) ) {
7244 return this.each(function( i ) {
7245 jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
7246 });
7247 }
7248
7249 return this.each(function() {
7250 if ( type === "string" ) {
7251 // toggle individual class names
7252 var className,
7253 i = 0,
7254 self = jQuery( this ),
7255 classNames = value.match( rnotwhite ) || [];
7256
7257 while ( (className = classNames[ i++ ]) ) {
7258 // check each className given, space separated list
7259 if ( self.hasClass( className ) ) {
7260 self.removeClass( className );
7261 } else {
7262 self.addClass( className );
7263 }
7264 }
7265
7266 // Toggle whole class name
7267 } else if ( type === strundefined || type === "boolean" ) {
7268 if ( this.className ) {
7269 // store className if set
7270 data_priv.set( this, "__className__", this.className );
7271 }
7272
7273 // If the element has a class name or if we're passed "false",
7274 // then remove the whole classname (if there was one, the above saved it).
7275 // Otherwise bring back whatever was previously saved (if anything),
7276 // falling back to the empty string if nothing was stored.
7277 this.className = this.className || value === false ? "" : data_priv.get( this, "__className__" ) || "";
7278 }
7279 });
7280 },
7281
7282 hasClass: function( selector ) {
7283 var className = " " + selector + " ",
7284 i = 0,
7285 l = this.length;
7286 for ( ; i < l; i++ ) {
7287 if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
7288 return true;
7289 }
7290 }
7291
7292 return false;
7293 }
7294});
7295
7296
7297
7298
7299var rreturn = /\r/g;
7300
7301jQuery.fn.extend({
7302 val: function( value ) {
7303 var hooks, ret, isFunction,
7304 elem = this[0];
7305
7306 if ( !arguments.length ) {
7307 if ( elem ) {
7308 hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
7309
7310 if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
7311 return ret;
7312 }
7313
7314 ret = elem.value;
7315
7316 return typeof ret === "string" ?
7317 // handle most common string cases
7318 ret.replace(rreturn, "") :
7319 // handle cases where value is null/undef or number
7320 ret == null ? "" : ret;
7321 }
7322
7323 return;
7324 }
7325
7326 isFunction = jQuery.isFunction( value );
7327
7328 return this.each(function( i ) {
7329 var val;
7330
7331 if ( this.nodeType !== 1 ) {
7332 return;
7333 }
7334
7335 if ( isFunction ) {
7336 val = value.call( this, i, jQuery( this ).val() );
7337 } else {
7338 val = value;
7339 }
7340
7341 // Treat null/undefined as ""; convert numbers to string
7342 if ( val == null ) {
7343 val = "";
7344
7345 } else if ( typeof val === "number" ) {
7346 val += "";
7347
7348 } else if ( jQuery.isArray( val ) ) {
7349 val = jQuery.map( val, function( value ) {
7350 return value == null ? "" : value + "";
7351 });
7352 }
7353
7354 hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
7355
7356 // If set returns undefined, fall back to normal setting
7357 if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
7358 this.value = val;
7359 }
7360 });
7361 }
7362});
7363
7364jQuery.extend({
7365 valHooks: {
7366 option: {
7367 get: function( elem ) {
7368 var val = jQuery.find.attr( elem, "value" );
7369 return val != null ?
7370 val :
7371 // Support: IE10-11+
7372 // option.text throws exceptions (#14686, #14858)
7373 jQuery.trim( jQuery.text( elem ) );
7374 }
7375 },
7376 select: {
7377 get: function( elem ) {
7378 var value, option,
7379 options = elem.options,
7380 index = elem.selectedIndex,
7381 one = elem.type === "select-one" || index < 0,
7382 values = one ? null : [],
7383 max = one ? index + 1 : options.length,
7384 i = index < 0 ?
7385 max :
7386 one ? index : 0;
7387
7388 // Loop through all the selected options
7389 for ( ; i < max; i++ ) {
7390 option = options[ i ];
7391
7392 // IE6-9 doesn't update selected after form reset (#2551)
7393 if ( ( option.selected || i === index ) &&
7394 // Don't return options that are disabled or in a disabled optgroup
7395 ( support.optDisabled ? !option.disabled : option.getAttribute( "disabled" ) === null ) &&
7396 ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
7397
7398 // Get the specific value for the option
7399 value = jQuery( option ).val();
7400
7401 // We don't need an array for one selects
7402 if ( one ) {
7403 return value;
7404 }
7405
7406 // Multi-Selects return an array
7407 values.push( value );
7408 }
7409 }
7410
7411 return values;
7412 },
7413
7414 set: function( elem, value ) {
7415 var optionSet, option,
7416 options = elem.options,
7417 values = jQuery.makeArray( value ),
7418 i = options.length;
7419
7420 while ( i-- ) {
7421 option = options[ i ];
7422 if ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) {
7423 optionSet = true;
7424 }
7425 }
7426
7427 // force browsers to behave consistently when non-matching value is set
7428 if ( !optionSet ) {
7429 elem.selectedIndex = -1;
7430 }
7431 return values;
7432 }
7433 }
7434 }
7435});
7436
7437// Radios and checkboxes getter/setter
7438jQuery.each([ "radio", "checkbox" ], function() {
7439 jQuery.valHooks[ this ] = {
7440 set: function( elem, value ) {
7441 if ( jQuery.isArray( value ) ) {
7442 return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
7443 }
7444 }
7445 };
7446 if ( !support.checkOn ) {
7447 jQuery.valHooks[ this ].get = function( elem ) {
7448 // Support: Webkit
7449 // "" is returned instead of "on" if a value isn't specified
7450 return elem.getAttribute("value") === null ? "on" : elem.value;
7451 };
7452 }
7453});
7454
7455
7456
7457
7458// Return jQuery for attributes-only inclusion
7459
7460
7461jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
7462 "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
7463 "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
7464
7465 // Handle event binding
7466 jQuery.fn[ name ] = function( data, fn ) {
7467 return arguments.length > 0 ?
7468 this.on( name, null, data, fn ) :
7469 this.trigger( name );
7470 };
7471});
7472
7473jQuery.fn.extend({
7474 hover: function( fnOver, fnOut ) {
7475 return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
7476 },
7477
7478 bind: function( types, data, fn ) {
7479 return this.on( types, null, data, fn );
7480 },
7481 unbind: function( types, fn ) {
7482 return this.off( types, null, fn );
7483 },
7484
7485 delegate: function( selector, types, data, fn ) {
7486 return this.on( types, selector, data, fn );
7487 },
7488 undelegate: function( selector, types, fn ) {
7489 // ( namespace ) or ( selector, types [, fn] )
7490 return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
7491 }
7492});
7493
7494
7495var nonce = jQuery.now();
7496
7497var rquery = (/\?/);
7498
7499
7500
7501// Support: Android 2.3
7502// Workaround failure to string-cast null input
7503jQuery.parseJSON = function( data ) {
7504 return JSON.parse( data + "" );
7505};
7506
7507
7508// Cross-browser xml parsing
7509jQuery.parseXML = function( data ) {
7510 var xml, tmp;
7511 if ( !data || typeof data !== "string" ) {
7512 return null;
7513 }
7514
7515 // Support: IE9
7516 try {
7517 tmp = new DOMParser();
7518 xml = tmp.parseFromString( data, "text/xml" );
7519 } catch ( e ) {
7520 xml = undefined;
7521 }
7522
7523 if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
7524 jQuery.error( "Invalid XML: " + data );
7525 }
7526 return xml;
7527};
7528
7529
7530var
7531 // Document location
7532 ajaxLocParts,
7533 ajaxLocation,
7534
7535 rhash = /#.*$/,
7536 rts = /([?&])_=[^&]*/,
7537 rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
7538 // #7653, #8125, #8152: local protocol detection
7539 rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
7540 rnoContent = /^(?:GET|HEAD)$/,
7541 rprotocol = /^\/\//,
7542 rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
7543
7544 /* Prefilters
7545 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
7546 * 2) These are called:
7547 * - BEFORE asking for a transport
7548 * - AFTER param serialization (s.data is a string if s.processData is true)
7549 * 3) key is the dataType
7550 * 4) the catchall symbol "*" can be used
7551 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
7552 */
7553 prefilters = {},
7554
7555 /* Transports bindings
7556 * 1) key is the dataType
7557 * 2) the catchall symbol "*" can be used
7558 * 3) selection will start with transport dataType and THEN go to "*" if needed
7559 */
7560 transports = {},
7561
7562 // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
7563 allTypes = "*/".concat("*");
7564
7565// #8138, IE may throw an exception when accessing
7566// a field from window.location if document.domain has been set
7567try {
7568 ajaxLocation = location.href;
7569} catch( e ) {
7570 // Use the href attribute of an A element
7571 // since IE will modify it given document.location
7572 ajaxLocation = document.createElement( "a" );
7573 ajaxLocation.href = "";
7574 ajaxLocation = ajaxLocation.href;
7575}
7576
7577// Segment location into parts
7578ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
7579
7580// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
7581function addToPrefiltersOrTransports( structure ) {
7582
7583 // dataTypeExpression is optional and defaults to "*"
7584 return function( dataTypeExpression, func ) {
7585
7586 if ( typeof dataTypeExpression !== "string" ) {
7587 func = dataTypeExpression;
7588 dataTypeExpression = "*";
7589 }
7590
7591 var dataType,
7592 i = 0,
7593 dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
7594
7595 if ( jQuery.isFunction( func ) ) {
7596 // For each dataType in the dataTypeExpression
7597 while ( (dataType = dataTypes[i++]) ) {
7598 // Prepend if requested
7599 if ( dataType[0] === "+" ) {
7600 dataType = dataType.slice( 1 ) || "*";
7601 (structure[ dataType ] = structure[ dataType ] || []).unshift( func );
7602
7603 // Otherwise append
7604 } else {
7605 (structure[ dataType ] = structure[ dataType ] || []).push( func );
7606 }
7607 }
7608 }
7609 };
7610}
7611
7612// Base inspection function for prefilters and transports
7613function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
7614
7615 var inspected = {},
7616 seekingTransport = ( structure === transports );
7617
7618 function inspect( dataType ) {
7619 var selected;
7620 inspected[ dataType ] = true;
7621 jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
7622 var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
7623 if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
7624 options.dataTypes.unshift( dataTypeOrTransport );
7625 inspect( dataTypeOrTransport );
7626 return false;
7627 } else if ( seekingTransport ) {
7628 return !( selected = dataTypeOrTransport );
7629 }
7630 });
7631 return selected;
7632 }
7633
7634 return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
7635}
7636
7637// A special extend for ajax options
7638// that takes "flat" options (not to be deep extended)
7639// Fixes #9887
7640function ajaxExtend( target, src ) {
7641 var key, deep,
7642 flatOptions = jQuery.ajaxSettings.flatOptions || {};
7643
7644 for ( key in src ) {
7645 if ( src[ key ] !== undefined ) {
7646 ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
7647 }
7648 }
7649 if ( deep ) {
7650 jQuery.extend( true, target, deep );
7651 }
7652
7653 return target;
7654}
7655
7656/* Handles responses to an ajax request:
7657 * - finds the right dataType (mediates between content-type and expected dataType)
7658 * - returns the corresponding response
7659 */
7660function ajaxHandleResponses( s, jqXHR, responses ) {
7661
7662 var ct, type, finalDataType, firstDataType,
7663 contents = s.contents,
7664 dataTypes = s.dataTypes;
7665
7666 // Remove auto dataType and get content-type in the process
7667 while ( dataTypes[ 0 ] === "*" ) {
7668 dataTypes.shift();
7669 if ( ct === undefined ) {
7670 ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
7671 }
7672 }
7673
7674 // Check if we're dealing with a known content-type
7675 if ( ct ) {
7676 for ( type in contents ) {
7677 if ( contents[ type ] && contents[ type ].test( ct ) ) {
7678 dataTypes.unshift( type );
7679 break;
7680 }
7681 }
7682 }
7683
7684 // Check to see if we have a response for the expected dataType
7685 if ( dataTypes[ 0 ] in responses ) {
7686 finalDataType = dataTypes[ 0 ];
7687 } else {
7688 // Try convertible dataTypes
7689 for ( type in responses ) {
7690 if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
7691 finalDataType = type;
7692 break;
7693 }
7694 if ( !firstDataType ) {
7695 firstDataType = type;
7696 }
7697 }
7698 // Or just use first one
7699 finalDataType = finalDataType || firstDataType;
7700 }
7701
7702 // If we found a dataType
7703 // We add the dataType to the list if needed
7704 // and return the corresponding response
7705 if ( finalDataType ) {
7706 if ( finalDataType !== dataTypes[ 0 ] ) {
7707 dataTypes.unshift( finalDataType );
7708 }
7709 return responses[ finalDataType ];
7710 }
7711}
7712
7713/* Chain conversions given the request and the original response
7714 * Also sets the responseXXX fields on the jqXHR instance
7715 */
7716function ajaxConvert( s, response, jqXHR, isSuccess ) {
7717 var conv2, current, conv, tmp, prev,
7718 converters = {},
7719 // Work with a copy of dataTypes in case we need to modify it for conversion
7720 dataTypes = s.dataTypes.slice();
7721
7722 // Create converters map with lowercased keys
7723 if ( dataTypes[ 1 ] ) {
7724 for ( conv in s.converters ) {
7725 converters[ conv.toLowerCase() ] = s.converters[ conv ];
7726 }
7727 }
7728
7729 current = dataTypes.shift();
7730
7731 // Convert to each sequential dataType
7732 while ( current ) {
7733
7734 if ( s.responseFields[ current ] ) {
7735 jqXHR[ s.responseFields[ current ] ] = response;
7736 }
7737
7738 // Apply the dataFilter if provided
7739 if ( !prev && isSuccess && s.dataFilter ) {
7740 response = s.dataFilter( response, s.dataType );
7741 }
7742
7743 prev = current;
7744 current = dataTypes.shift();
7745
7746 if ( current ) {
7747
7748 // There's only work to do if current dataType is non-auto
7749 if ( current === "*" ) {
7750
7751 current = prev;
7752
7753 // Convert response if prev dataType is non-auto and differs from current
7754 } else if ( prev !== "*" && prev !== current ) {
7755
7756 // Seek a direct converter
7757 conv = converters[ prev + " " + current ] || converters[ "* " + current ];
7758
7759 // If none found, seek a pair
7760 if ( !conv ) {
7761 for ( conv2 in converters ) {
7762
7763 // If conv2 outputs current
7764 tmp = conv2.split( " " );
7765 if ( tmp[ 1 ] === current ) {
7766
7767 // If prev can be converted to accepted input
7768 conv = converters[ prev + " " + tmp[ 0 ] ] ||
7769 converters[ "* " + tmp[ 0 ] ];
7770 if ( conv ) {
7771 // Condense equivalence converters
7772 if ( conv === true ) {
7773 conv = converters[ conv2 ];
7774
7775 // Otherwise, insert the intermediate dataType
7776 } else if ( converters[ conv2 ] !== true ) {
7777 current = tmp[ 0 ];
7778 dataTypes.unshift( tmp[ 1 ] );
7779 }
7780 break;
7781 }
7782 }
7783 }
7784 }
7785
7786 // Apply converter (if not an equivalence)
7787 if ( conv !== true ) {
7788
7789 // Unless errors are allowed to bubble, catch and return them
7790 if ( conv && s[ "throws" ] ) {
7791 response = conv( response );
7792 } else {
7793 try {
7794 response = conv( response );
7795 } catch ( e ) {
7796 return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
7797 }
7798 }
7799 }
7800 }
7801 }
7802 }
7803
7804 return { state: "success", data: response };
7805}
7806
7807jQuery.extend({
7808
7809 // Counter for holding the number of active queries
7810 active: 0,
7811
7812 // Last-Modified header cache for next request
7813 lastModified: {},
7814 etag: {},
7815
7816 ajaxSettings: {
7817 url: ajaxLocation,
7818 type: "GET",
7819 isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
7820 global: true,
7821 processData: true,
7822 async: true,
7823 contentType: "application/x-www-form-urlencoded; charset=UTF-8",
7824 /*
7825 timeout: 0,
7826 data: null,
7827 dataType: null,
7828 username: null,
7829 password: null,
7830 cache: null,
7831 throws: false,
7832 traditional: false,
7833 headers: {},
7834 */
7835
7836 accepts: {
7837 "*": allTypes,
7838 text: "text/plain",
7839 html: "text/html",
7840 xml: "application/xml, text/xml",
7841 json: "application/json, text/javascript"
7842 },
7843
7844 contents: {
7845 xml: /xml/,
7846 html: /html/,
7847 json: /json/
7848 },
7849
7850 responseFields: {
7851 xml: "responseXML",
7852 text: "responseText",
7853 json: "responseJSON"
7854 },
7855
7856 // Data converters
7857 // Keys separate source (or catchall "*") and destination types with a single space
7858 converters: {
7859
7860 // Convert anything to text
7861 "* text": String,
7862
7863 // Text to html (true = no transformation)
7864 "text html": true,
7865
7866 // Evaluate text as a json expression
7867 "text json": jQuery.parseJSON,
7868
7869 // Parse text as xml
7870 "text xml": jQuery.parseXML
7871 },
7872
7873 // For options that shouldn't be deep extended:
7874 // you can add your own custom options here if
7875 // and when you create one that shouldn't be
7876 // deep extended (see ajaxExtend)
7877 flatOptions: {
7878 url: true,
7879 context: true
7880 }
7881 },
7882
7883 // Creates a full fledged settings object into target
7884 // with both ajaxSettings and settings fields.
7885 // If target is omitted, writes into ajaxSettings.
7886 ajaxSetup: function( target, settings ) {
7887 return settings ?
7888
7889 // Building a settings object
7890 ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
7891
7892 // Extending ajaxSettings
7893 ajaxExtend( jQuery.ajaxSettings, target );
7894 },
7895
7896 ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
7897 ajaxTransport: addToPrefiltersOrTransports( transports ),
7898
7899 // Main method
7900 ajax: function( url, options ) {
7901
7902 // If url is an object, simulate pre-1.5 signature
7903 if ( typeof url === "object" ) {
7904 options = url;
7905 url = undefined;
7906 }
7907
7908 // Force options to be an object
7909 options = options || {};
7910
7911 var transport,
7912 // URL without anti-cache param
7913 cacheURL,
7914 // Response headers
7915 responseHeadersString,
7916 responseHeaders,
7917 // timeout handle
7918 timeoutTimer,
7919 // Cross-domain detection vars
7920 parts,
7921 // To know if global events are to be dispatched
7922 fireGlobals,
7923 // Loop variable
7924 i,
7925 // Create the final options object
7926 s = jQuery.ajaxSetup( {}, options ),
7927 // Callbacks context
7928 callbackContext = s.context || s,
7929 // Context for global events is callbackContext if it is a DOM node or jQuery collection
7930 globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
7931 jQuery( callbackContext ) :
7932 jQuery.event,
7933 // Deferreds
7934 deferred = jQuery.Deferred(),
7935 completeDeferred = jQuery.Callbacks("once memory"),
7936 // Status-dependent callbacks
7937 statusCode = s.statusCode || {},
7938 // Headers (they are sent all at once)
7939 requestHeaders = {},
7940 requestHeadersNames = {},
7941 // The jqXHR state
7942 state = 0,
7943 // Default abort message
7944 strAbort = "canceled",
7945 // Fake xhr
7946 jqXHR = {
7947 readyState: 0,
7948
7949 // Builds headers hashtable if needed
7950 getResponseHeader: function( key ) {
7951 var match;
7952 if ( state === 2 ) {
7953 if ( !responseHeaders ) {
7954 responseHeaders = {};
7955 while ( (match = rheaders.exec( responseHeadersString )) ) {
7956 responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
7957 }
7958 }
7959 match = responseHeaders[ key.toLowerCase() ];
7960 }
7961 return match == null ? null : match;
7962 },
7963
7964 // Raw string
7965 getAllResponseHeaders: function() {
7966 return state === 2 ? responseHeadersString : null;
7967 },
7968
7969 // Caches the header
7970 setRequestHeader: function( name, value ) {
7971 var lname = name.toLowerCase();
7972 if ( !state ) {
7973 name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
7974 requestHeaders[ name ] = value;
7975 }
7976 return this;
7977 },
7978
7979 // Overrides response content-type header
7980 overrideMimeType: function( type ) {
7981 if ( !state ) {
7982 s.mimeType = type;
7983 }
7984 return this;
7985 },
7986
7987 // Status-dependent callbacks
7988 statusCode: function( map ) {
7989 var code;
7990 if ( map ) {
7991 if ( state < 2 ) {
7992 for ( code in map ) {
7993 // Lazy-add the new callback in a way that preserves old ones
7994 statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
7995 }
7996 } else {
7997 // Execute the appropriate callbacks
7998 jqXHR.always( map[ jqXHR.status ] );
7999 }
8000 }
8001 return this;
8002 },
8003
8004 // Cancel the request
8005 abort: function( statusText ) {
8006 var finalText = statusText || strAbort;
8007 if ( transport ) {
8008 transport.abort( finalText );
8009 }
8010 done( 0, finalText );
8011 return this;
8012 }
8013 };
8014
8015 // Attach deferreds
8016 deferred.promise( jqXHR ).complete = completeDeferred.add;
8017 jqXHR.success = jqXHR.done;
8018 jqXHR.error = jqXHR.fail;
8019
8020 // Remove hash character (#7531: and string promotion)
8021 // Add protocol if not provided (prefilters might expect it)
8022 // Handle falsy url in the settings object (#10093: consistency with old signature)
8023 // We also use the url parameter if available
8024 s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" )
8025 .replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
8026
8027 // Alias method option to type as per ticket #12004
8028 s.type = options.method || options.type || s.method || s.type;
8029
8030 // Extract dataTypes list
8031 s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
8032
8033 // A cross-domain request is in order when we have a protocol:host:port mismatch
8034 if ( s.crossDomain == null ) {
8035 parts = rurl.exec( s.url.toLowerCase() );
8036 s.crossDomain = !!( parts &&
8037 ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
8038 ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
8039 ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
8040 );
8041 }
8042
8043 // Convert data if not already a string
8044 if ( s.data && s.processData && typeof s.data !== "string" ) {
8045 s.data = jQuery.param( s.data, s.traditional );
8046 }
8047
8048 // Apply prefilters
8049 inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
8050
8051 // If request was aborted inside a prefilter, stop there
8052 if ( state === 2 ) {
8053 return jqXHR;
8054 }
8055
8056 // We can fire global events as of now if asked to
8057 fireGlobals = s.global;
8058
8059 // Watch for a new set of requests
8060 if ( fireGlobals && jQuery.active++ === 0 ) {
8061 jQuery.event.trigger("ajaxStart");
8062 }
8063
8064 // Uppercase the type
8065 s.type = s.type.toUpperCase();
8066
8067 // Determine if request has content
8068 s.hasContent = !rnoContent.test( s.type );
8069
8070 // Save the URL in case we're toying with the If-Modified-Since
8071 // and/or If-None-Match header later on
8072 cacheURL = s.url;
8073
8074 // More options handling for requests with no content
8075 if ( !s.hasContent ) {
8076
8077 // If data is available, append data to url
8078 if ( s.data ) {
8079 cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
8080 // #9682: remove data so that it's not used in an eventual retry
8081 delete s.data;
8082 }
8083
8084 // Add anti-cache in url if needed
8085 if ( s.cache === false ) {
8086 s.url = rts.test( cacheURL ) ?
8087
8088 // If there is already a '_' parameter, set its value
8089 cacheURL.replace( rts, "$1_=" + nonce++ ) :
8090
8091 // Otherwise add one to the end
8092 cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
8093 }
8094 }
8095
8096 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
8097 if ( s.ifModified ) {
8098 if ( jQuery.lastModified[ cacheURL ] ) {
8099 jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
8100 }
8101 if ( jQuery.etag[ cacheURL ] ) {
8102 jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
8103 }
8104 }
8105
8106 // Set the correct header, if data is being sent
8107 if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
8108 jqXHR.setRequestHeader( "Content-Type", s.contentType );
8109 }
8110
8111 // Set the Accepts header for the server, depending on the dataType
8112 jqXHR.setRequestHeader(
8113 "Accept",
8114 s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
8115 s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
8116 s.accepts[ "*" ]
8117 );
8118
8119 // Check for headers option
8120 for ( i in s.headers ) {
8121 jqXHR.setRequestHeader( i, s.headers[ i ] );
8122 }
8123
8124 // Allow custom headers/mimetypes and early abort
8125 if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
8126 // Abort if not done already and return
8127 return jqXHR.abort();
8128 }
8129
8130 // aborting is no longer a cancellation
8131 strAbort = "abort";
8132
8133 // Install callbacks on deferreds
8134 for ( i in { success: 1, error: 1, complete: 1 } ) {
8135 jqXHR[ i ]( s[ i ] );
8136 }
8137
8138 // Get transport
8139 transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
8140
8141 // If no transport, we auto-abort
8142 if ( !transport ) {
8143 done( -1, "No Transport" );
8144 } else {
8145 jqXHR.readyState = 1;
8146
8147 // Send global event
8148 if ( fireGlobals ) {
8149 globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
8150 }
8151 // Timeout
8152 if ( s.async && s.timeout > 0 ) {
8153 timeoutTimer = setTimeout(function() {
8154 jqXHR.abort("timeout");
8155 }, s.timeout );
8156 }
8157
8158 try {
8159 state = 1;
8160 transport.send( requestHeaders, done );
8161 } catch ( e ) {
8162 // Propagate exception as error if not done
8163 if ( state < 2 ) {
8164 done( -1, e );
8165 // Simply rethrow otherwise
8166 } else {
8167 throw e;
8168 }
8169 }
8170 }
8171
8172 // Callback for when everything is done
8173 function done( status, nativeStatusText, responses, headers ) {
8174 var isSuccess, success, error, response, modified,
8175 statusText = nativeStatusText;
8176
8177 // Called once
8178 if ( state === 2 ) {
8179 return;
8180 }
8181
8182 // State is "done" now
8183 state = 2;
8184
8185 // Clear timeout if it exists
8186 if ( timeoutTimer ) {
8187 clearTimeout( timeoutTimer );
8188 }
8189
8190 // Dereference transport for early garbage collection
8191 // (no matter how long the jqXHR object will be used)
8192 transport = undefined;
8193
8194 // Cache response headers
8195 responseHeadersString = headers || "";
8196
8197 // Set readyState
8198 jqXHR.readyState = status > 0 ? 4 : 0;
8199
8200 // Determine if successful
8201 isSuccess = status >= 200 && status < 300 || status === 304;
8202
8203 // Get response data
8204 if ( responses ) {
8205 response = ajaxHandleResponses( s, jqXHR, responses );
8206 }
8207
8208 // Convert no matter what (that way responseXXX fields are always set)
8209 response = ajaxConvert( s, response, jqXHR, isSuccess );
8210
8211 // If successful, handle type chaining
8212 if ( isSuccess ) {
8213
8214 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
8215 if ( s.ifModified ) {
8216 modified = jqXHR.getResponseHeader("Last-Modified");
8217 if ( modified ) {
8218 jQuery.lastModified[ cacheURL ] = modified;
8219 }
8220 modified = jqXHR.getResponseHeader("etag");
8221 if ( modified ) {
8222 jQuery.etag[ cacheURL ] = modified;
8223 }
8224 }
8225
8226 // if no content
8227 if ( status === 204 || s.type === "HEAD" ) {
8228 statusText = "nocontent";
8229
8230 // if not modified
8231 } else if ( status === 304 ) {
8232 statusText = "notmodified";
8233
8234 // If we have data, let's convert it
8235 } else {
8236 statusText = response.state;
8237 success = response.data;
8238 error = response.error;
8239 isSuccess = !error;
8240 }
8241 } else {
8242 // We extract error from statusText
8243 // then normalize statusText and status for non-aborts
8244 error = statusText;
8245 if ( status || !statusText ) {
8246 statusText = "error";
8247 if ( status < 0 ) {
8248 status = 0;
8249 }
8250 }
8251 }
8252
8253 // Set data for the fake xhr object
8254 jqXHR.status = status;
8255 jqXHR.statusText = ( nativeStatusText || statusText ) + "";
8256
8257 // Success/Error
8258 if ( isSuccess ) {
8259 deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
8260 } else {
8261 deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
8262 }
8263
8264 // Status-dependent callbacks
8265 jqXHR.statusCode( statusCode );
8266 statusCode = undefined;
8267
8268 if ( fireGlobals ) {
8269 globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
8270 [ jqXHR, s, isSuccess ? success : error ] );
8271 }
8272
8273 // Complete
8274 completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
8275
8276 if ( fireGlobals ) {
8277 globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
8278 // Handle the global AJAX counter
8279 if ( !( --jQuery.active ) ) {
8280 jQuery.event.trigger("ajaxStop");
8281 }
8282 }
8283 }
8284
8285 return jqXHR;
8286 },
8287
8288 getJSON: function( url, data, callback ) {
8289 return jQuery.get( url, data, callback, "json" );
8290 },
8291
8292 getScript: function( url, callback ) {
8293 return jQuery.get( url, undefined, callback, "script" );
8294 }
8295});
8296
8297jQuery.each( [ "get", "post" ], function( i, method ) {
8298 jQuery[ method ] = function( url, data, callback, type ) {
8299 // shift arguments if data argument was omitted
8300 if ( jQuery.isFunction( data ) ) {
8301 type = type || callback;
8302 callback = data;
8303 data = undefined;
8304 }
8305
8306 return jQuery.ajax({
8307 url: url,
8308 type: method,
8309 dataType: type,
8310 data: data,
8311 success: callback
8312 });
8313 };
8314});
8315
8316// Attach a bunch of functions for handling common AJAX events
8317jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) {
8318 jQuery.fn[ type ] = function( fn ) {
8319 return this.on( type, fn );
8320 };
8321});
8322
8323
8324jQuery._evalUrl = function( url ) {
8325 return jQuery.ajax({
8326 url: url,
8327 type: "GET",
8328 dataType: "script",
8329 async: false,
8330 global: false,
8331 "throws": true
8332 });
8333};
8334
8335
8336jQuery.fn.extend({
8337 wrapAll: function( html ) {
8338 var wrap;
8339
8340 if ( jQuery.isFunction( html ) ) {
8341 return this.each(function( i ) {
8342 jQuery( this ).wrapAll( html.call(this, i) );
8343 });
8344 }
8345
8346 if ( this[ 0 ] ) {
8347
8348 // The elements to wrap the target around
8349 wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
8350
8351 if ( this[ 0 ].parentNode ) {
8352 wrap.insertBefore( this[ 0 ] );
8353 }
8354
8355 wrap.map(function() {
8356 var elem = this;
8357
8358 while ( elem.firstElementChild ) {
8359 elem = elem.firstElementChild;
8360 }
8361
8362 return elem;
8363 }).append( this );
8364 }
8365
8366 return this;
8367 },
8368
8369 wrapInner: function( html ) {
8370 if ( jQuery.isFunction( html ) ) {
8371 return this.each(function( i ) {
8372 jQuery( this ).wrapInner( html.call(this, i) );
8373 });
8374 }
8375
8376 return this.each(function() {
8377 var self = jQuery( this ),
8378 contents = self.contents();
8379
8380 if ( contents.length ) {
8381 contents.wrapAll( html );
8382
8383 } else {
8384 self.append( html );
8385 }
8386 });
8387 },
8388
8389 wrap: function( html ) {
8390 var isFunction = jQuery.isFunction( html );
8391
8392 return this.each(function( i ) {
8393 jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
8394 });
8395 },
8396
8397 unwrap: function() {
8398 return this.parent().each(function() {
8399 if ( !jQuery.nodeName( this, "body" ) ) {
8400 jQuery( this ).replaceWith( this.childNodes );
8401 }
8402 }).end();
8403 }
8404});
8405
8406
8407jQuery.expr.filters.hidden = function( elem ) {
8408 // Support: Opera <= 12.12
8409 // Opera reports offsetWidths and offsetHeights less than zero on some elements
8410 return elem.offsetWidth <= 0 && elem.offsetHeight <= 0;
8411};
8412jQuery.expr.filters.visible = function( elem ) {
8413 return !jQuery.expr.filters.hidden( elem );
8414};
8415
8416
8417
8418
8419var r20 = /%20/g,
8420 rbracket = /\[\]$/,
8421 rCRLF = /\r?\n/g,
8422 rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
8423 rsubmittable = /^(?:input|select|textarea|keygen)/i;
8424
8425function buildParams( prefix, obj, traditional, add ) {
8426 var name;
8427
8428 if ( jQuery.isArray( obj ) ) {
8429 // Serialize array item.
8430 jQuery.each( obj, function( i, v ) {
8431 if ( traditional || rbracket.test( prefix ) ) {
8432 // Treat each array item as a scalar.
8433 add( prefix, v );
8434
8435 } else {
8436 // Item is non-scalar (array or object), encode its numeric index.
8437 buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
8438 }
8439 });
8440
8441 } else if ( !traditional && jQuery.type( obj ) === "object" ) {
8442 // Serialize object item.
8443 for ( name in obj ) {
8444 buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
8445 }
8446
8447 } else {
8448 // Serialize scalar item.
8449 add( prefix, obj );
8450 }
8451}
8452
8453// Serialize an array of form elements or a set of
8454// key/values into a query string
8455jQuery.param = function( a, traditional ) {
8456 var prefix,
8457 s = [],
8458 add = function( key, value ) {
8459 // If value is a function, invoke it and return its value
8460 value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
8461 s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
8462 };
8463
8464 // Set traditional to true for jQuery <= 1.3.2 behavior.
8465 if ( traditional === undefined ) {
8466 traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
8467 }
8468
8469 // If an array was passed in, assume that it is an array of form elements.
8470 if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
8471 // Serialize the form elements
8472 jQuery.each( a, function() {
8473 add( this.name, this.value );
8474 });
8475
8476 } else {
8477 // If traditional, encode the "old" way (the way 1.3.2 or older
8478 // did it), otherwise encode params recursively.
8479 for ( prefix in a ) {
8480 buildParams( prefix, a[ prefix ], traditional, add );
8481 }
8482 }
8483
8484 // Return the resulting serialization
8485 return s.join( "&" ).replace( r20, "+" );
8486};
8487
8488jQuery.fn.extend({
8489 serialize: function() {
8490 return jQuery.param( this.serializeArray() );
8491 },
8492 serializeArray: function() {
8493 return this.map(function() {
8494 // Can add propHook for "elements" to filter or add form elements
8495 var elements = jQuery.prop( this, "elements" );
8496 return elements ? jQuery.makeArray( elements ) : this;
8497 })
8498 .filter(function() {
8499 var type = this.type;
8500
8501 // Use .is( ":disabled" ) so that fieldset[disabled] works
8502 return this.name && !jQuery( this ).is( ":disabled" ) &&
8503 rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
8504 ( this.checked || !rcheckableType.test( type ) );
8505 })
8506 .map(function( i, elem ) {
8507 var val = jQuery( this ).val();
8508
8509 return val == null ?
8510 null :
8511 jQuery.isArray( val ) ?
8512 jQuery.map( val, function( val ) {
8513 return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
8514 }) :
8515 { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
8516 }).get();
8517 }
8518});
8519
8520
8521jQuery.ajaxSettings.xhr = function() {
8522 try {
8523 return new XMLHttpRequest();
8524 } catch( e ) {}
8525};
8526
8527var xhrId = 0,
8528 xhrCallbacks = {},
8529 xhrSuccessStatus = {
8530 // file protocol always yields status code 0, assume 200
8531 0: 200,
8532 // Support: IE9
8533 // #1450: sometimes IE returns 1223 when it should be 204
8534 1223: 204
8535 },
8536 xhrSupported = jQuery.ajaxSettings.xhr();
8537
8538// Support: IE9
8539// Open requests must be manually aborted on unload (#5280)
8540if ( window.ActiveXObject ) {
8541 jQuery( window ).on( "unload", function() {
8542 for ( var key in xhrCallbacks ) {
8543 xhrCallbacks[ key ]();
8544 }
8545 });
8546}
8547
8548support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
8549support.ajax = xhrSupported = !!xhrSupported;
8550
8551jQuery.ajaxTransport(function( options ) {
8552 var callback;
8553
8554 // Cross domain only allowed if supported through XMLHttpRequest
8555 if ( support.cors || xhrSupported && !options.crossDomain ) {
8556 return {
8557 send: function( headers, complete ) {
8558 var i,
8559 xhr = options.xhr(),
8560 id = ++xhrId;
8561
8562 xhr.open( options.type, options.url, options.async, options.username, options.password );
8563
8564 // Apply custom fields if provided
8565 if ( options.xhrFields ) {
8566 for ( i in options.xhrFields ) {
8567 xhr[ i ] = options.xhrFields[ i ];
8568 }
8569 }
8570
8571 // Override mime type if needed
8572 if ( options.mimeType && xhr.overrideMimeType ) {
8573 xhr.overrideMimeType( options.mimeType );
8574 }
8575
8576 // X-Requested-With header
8577 // For cross-domain requests, seeing as conditions for a preflight are
8578 // akin to a jigsaw puzzle, we simply never set it to be sure.
8579 // (it can always be set on a per-request basis or even using ajaxSetup)
8580 // For same-domain requests, won't change header if already provided.
8581 if ( !options.crossDomain && !headers["X-Requested-With"] ) {
8582 headers["X-Requested-With"] = "XMLHttpRequest";
8583 }
8584
8585 // Set headers
8586 for ( i in headers ) {
8587 xhr.setRequestHeader( i, headers[ i ] );
8588 }
8589
8590 // Callback
8591 callback = function( type ) {
8592 return function() {
8593 if ( callback ) {
8594 delete xhrCallbacks[ id ];
8595 callback = xhr.onload = xhr.onerror = null;
8596
8597 if ( type === "abort" ) {
8598 xhr.abort();
8599 } else if ( type === "error" ) {
8600 complete(
8601 // file: protocol always yields status 0; see #8605, #14207
8602 xhr.status,
8603 xhr.statusText
8604 );
8605 } else {
8606 complete(
8607 xhrSuccessStatus[ xhr.status ] || xhr.status,
8608 xhr.statusText,
8609 // Support: IE9
8610 // Accessing binary-data responseText throws an exception
8611 // (#11426)
8612 typeof xhr.responseText === "string" ? {
8613 text: xhr.responseText
8614 } : undefined,
8615 xhr.getAllResponseHeaders()
8616 );
8617 }
8618 }
8619 };
8620 };
8621
8622 // Listen to events
8623 xhr.onload = callback();
8624 xhr.onerror = callback("error");
8625
8626 // Create the abort callback
8627 callback = xhrCallbacks[ id ] = callback("abort");
8628
8629 try {
8630 // Do send the request (this may raise an exception)
8631 xhr.send( options.hasContent && options.data || null );
8632 } catch ( e ) {
8633 // #14683: Only rethrow if this hasn't been notified as an error yet
8634 if ( callback ) {
8635 throw e;
8636 }
8637 }
8638 },
8639
8640 abort: function() {
8641 if ( callback ) {
8642 callback();
8643 }
8644 }
8645 };
8646 }
8647});
8648
8649
8650
8651
8652// Install script dataType
8653jQuery.ajaxSetup({
8654 accepts: {
8655 script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
8656 },
8657 contents: {
8658 script: /(?:java|ecma)script/
8659 },
8660 converters: {
8661 "text script": function( text ) {
8662 jQuery.globalEval( text );
8663 return text;
8664 }
8665 }
8666});
8667
8668// Handle cache's special case and crossDomain
8669jQuery.ajaxPrefilter( "script", function( s ) {
8670 if ( s.cache === undefined ) {
8671 s.cache = false;
8672 }
8673 if ( s.crossDomain ) {
8674 s.type = "GET";
8675 }
8676});
8677
8678// Bind script tag hack transport
8679jQuery.ajaxTransport( "script", function( s ) {
8680 // This transport only deals with cross domain requests
8681 if ( s.crossDomain ) {
8682 var script, callback;
8683 return {
8684 send: function( _, complete ) {
8685 script = jQuery("<script>").prop({
8686 async: true,
8687 charset: s.scriptCharset,
8688 src: s.url
8689 }).on(
8690 "load error",
8691 callback = function( evt ) {
8692 script.remove();
8693 callback = null;
8694 if ( evt ) {
8695 complete( evt.type === "error" ? 404 : 200, evt.type );
8696 }
8697 }
8698 );
8699 document.head.appendChild( script[ 0 ] );
8700 },
8701 abort: function() {
8702 if ( callback ) {
8703 callback();
8704 }
8705 }
8706 };
8707 }
8708});
8709
8710
8711
8712
8713var oldCallbacks = [],
8714 rjsonp = /(=)\?(?=&|$)|\?\?/;
8715
8716// Default jsonp settings
8717jQuery.ajaxSetup({
8718 jsonp: "callback",
8719 jsonpCallback: function() {
8720 var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
8721 this[ callback ] = true;
8722 return callback;
8723 }
8724});
8725
8726// Detect, normalize options and install callbacks for jsonp requests
8727jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
8728
8729 var callbackName, overwritten, responseContainer,
8730 jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
8731 "url" :
8732 typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
8733 );
8734
8735 // Handle iff the expected data type is "jsonp" or we have a parameter to set
8736 if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
8737
8738 // Get callback name, remembering preexisting value associated with it
8739 callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
8740 s.jsonpCallback() :
8741 s.jsonpCallback;
8742
8743 // Insert callback into url or form data
8744 if ( jsonProp ) {
8745 s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
8746 } else if ( s.jsonp !== false ) {
8747 s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
8748 }
8749
8750 // Use data converter to retrieve json after script execution
8751 s.converters["script json"] = function() {
8752 if ( !responseContainer ) {
8753 jQuery.error( callbackName + " was not called" );
8754 }
8755 return responseContainer[ 0 ];
8756 };
8757
8758 // force json dataType
8759 s.dataTypes[ 0 ] = "json";
8760
8761 // Install callback
8762 overwritten = window[ callbackName ];
8763 window[ callbackName ] = function() {
8764 responseContainer = arguments;
8765 };
8766
8767 // Clean-up function (fires after converters)
8768 jqXHR.always(function() {
8769 // Restore preexisting value
8770 window[ callbackName ] = overwritten;
8771
8772 // Save back as free
8773 if ( s[ callbackName ] ) {
8774 // make sure that re-using the options doesn't screw things around
8775 s.jsonpCallback = originalSettings.jsonpCallback;
8776
8777 // save the callback name for future use
8778 oldCallbacks.push( callbackName );
8779 }
8780
8781 // Call if it was a function and we have a response
8782 if ( responseContainer && jQuery.isFunction( overwritten ) ) {
8783 overwritten( responseContainer[ 0 ] );
8784 }
8785
8786 responseContainer = overwritten = undefined;
8787 });
8788
8789 // Delegate to script
8790 return "script";
8791 }
8792});
8793
8794
8795
8796
8797// data: string of html
8798// context (optional): If specified, the fragment will be created in this context, defaults to document
8799// keepScripts (optional): If true, will include scripts passed in the html string
8800jQuery.parseHTML = function( data, context, keepScripts ) {
8801 if ( !data || typeof data !== "string" ) {
8802 return null;
8803 }
8804 if ( typeof context === "boolean" ) {
8805 keepScripts = context;
8806 context = false;
8807 }
8808 context = context || document;
8809
8810 var parsed = rsingleTag.exec( data ),
8811 scripts = !keepScripts && [];
8812
8813 // Single tag
8814 if ( parsed ) {
8815 return [ context.createElement( parsed[1] ) ];
8816 }
8817
8818 parsed = jQuery.buildFragment( [ data ], context, scripts );
8819
8820 if ( scripts && scripts.length ) {
8821 jQuery( scripts ).remove();
8822 }
8823
8824 return jQuery.merge( [], parsed.childNodes );
8825};
8826
8827
8828// Keep a copy of the old load method
8829var _load = jQuery.fn.load;
8830
8831/**
8832 * Load a url into a page
8833 */
8834jQuery.fn.load = function( url, params, callback ) {
8835 if ( typeof url !== "string" && _load ) {
8836 return _load.apply( this, arguments );
8837 }
8838
8839 var selector, type, response,
8840 self = this,
8841 off = url.indexOf(" ");
8842
8843 if ( off >= 0 ) {
8844 selector = jQuery.trim( url.slice( off ) );
8845 url = url.slice( 0, off );
8846 }
8847
8848 // If it's a function
8849 if ( jQuery.isFunction( params ) ) {
8850
8851 // We assume that it's the callback
8852 callback = params;
8853 params = undefined;
8854
8855 // Otherwise, build a param string
8856 } else if ( params && typeof params === "object" ) {
8857 type = "POST";
8858 }
8859
8860 // If we have elements to modify, make the request
8861 if ( self.length > 0 ) {
8862 jQuery.ajax({
8863 url: url,
8864
8865 // if "type" variable is undefined, then "GET" method will be used
8866 type: type,
8867 dataType: "html",
8868 data: params
8869 }).done(function( responseText ) {
8870
8871 // Save response for use in complete callback
8872 response = arguments;
8873
8874 self.html( selector ?
8875
8876 // If a selector was specified, locate the right elements in a dummy div
8877 // Exclude scripts to avoid IE 'Permission Denied' errors
8878 jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
8879
8880 // Otherwise use the full result
8881 responseText );
8882
8883 }).complete( callback && function( jqXHR, status ) {
8884 self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
8885 });
8886 }
8887
8888 return this;
8889};
8890
8891
8892
8893
8894jQuery.expr.filters.animated = function( elem ) {
8895 return jQuery.grep(jQuery.timers, function( fn ) {
8896 return elem === fn.elem;
8897 }).length;
8898};
8899
8900
8901
8902
8903var docElem = window.document.documentElement;
8904
8905/**
8906 * Gets a window from an element
8907 */
8908function getWindow( elem ) {
8909 return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
8910}
8911
8912jQuery.offset = {
8913 setOffset: function( elem, options, i ) {
8914 var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
8915 position = jQuery.css( elem, "position" ),
8916 curElem = jQuery( elem ),
8917 props = {};
8918
8919 // Set position first, in-case top/left are set even on static elem
8920 if ( position === "static" ) {
8921 elem.style.position = "relative";
8922 }
8923
8924 curOffset = curElem.offset();
8925 curCSSTop = jQuery.css( elem, "top" );
8926 curCSSLeft = jQuery.css( elem, "left" );
8927 calculatePosition = ( position === "absolute" || position === "fixed" ) &&
8928 ( curCSSTop + curCSSLeft ).indexOf("auto") > -1;
8929
8930 // Need to be able to calculate position if either top or left is auto and position is either absolute or fixed
8931 if ( calculatePosition ) {
8932 curPosition = curElem.position();
8933 curTop = curPosition.top;
8934 curLeft = curPosition.left;
8935
8936 } else {
8937 curTop = parseFloat( curCSSTop ) || 0;
8938 curLeft = parseFloat( curCSSLeft ) || 0;
8939 }
8940
8941 if ( jQuery.isFunction( options ) ) {
8942 options = options.call( elem, i, curOffset );
8943 }
8944
8945 if ( options.top != null ) {
8946 props.top = ( options.top - curOffset.top ) + curTop;
8947 }
8948 if ( options.left != null ) {
8949 props.left = ( options.left - curOffset.left ) + curLeft;
8950 }
8951
8952 if ( "using" in options ) {
8953 options.using.call( elem, props );
8954
8955 } else {
8956 curElem.css( props );
8957 }
8958 }
8959};
8960
8961jQuery.fn.extend({
8962 offset: function( options ) {
8963 if ( arguments.length ) {
8964 return options === undefined ?
8965 this :
8966 this.each(function( i ) {
8967 jQuery.offset.setOffset( this, options, i );
8968 });
8969 }
8970
8971 var docElem, win,
8972 elem = this[ 0 ],
8973 box = { top: 0, left: 0 },
8974 doc = elem && elem.ownerDocument;
8975
8976 if ( !doc ) {
8977 return;
8978 }
8979
8980 docElem = doc.documentElement;
8981
8982 // Make sure it's not a disconnected DOM node
8983 if ( !jQuery.contains( docElem, elem ) ) {
8984 return box;
8985 }
8986
8987 // If we don't have gBCR, just use 0,0 rather than error
8988 // BlackBerry 5, iOS 3 (original iPhone)
8989 if ( typeof elem.getBoundingClientRect !== strundefined ) {
8990 box = elem.getBoundingClientRect();
8991 }
8992 win = getWindow( doc );
8993 return {
8994 top: box.top + win.pageYOffset - docElem.clientTop,
8995 left: box.left + win.pageXOffset - docElem.clientLeft
8996 };
8997 },
8998
8999 position: function() {
9000 if ( !this[ 0 ] ) {
9001 return;
9002 }
9003
9004 var offsetParent, offset,
9005 elem = this[ 0 ],
9006 parentOffset = { top: 0, left: 0 };
9007
9008 // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent
9009 if ( jQuery.css( elem, "position" ) === "fixed" ) {
9010 // We assume that getBoundingClientRect is available when computed position is fixed
9011 offset = elem.getBoundingClientRect();
9012
9013 } else {
9014 // Get *real* offsetParent
9015 offsetParent = this.offsetParent();
9016
9017 // Get correct offsets
9018 offset = this.offset();
9019 if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
9020 parentOffset = offsetParent.offset();
9021 }
9022
9023 // Add offsetParent borders
9024 parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
9025 parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
9026 }
9027
9028 // Subtract parent offsets and element margins
9029 return {
9030 top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
9031 left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
9032 };
9033 },
9034
9035 offsetParent: function() {
9036 return this.map(function() {
9037 var offsetParent = this.offsetParent || docElem;
9038
9039 while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) {
9040 offsetParent = offsetParent.offsetParent;
9041 }
9042
9043 return offsetParent || docElem;
9044 });
9045 }
9046});
9047
9048// Create scrollLeft and scrollTop methods
9049jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
9050 var top = "pageYOffset" === prop;
9051
9052 jQuery.fn[ method ] = function( val ) {
9053 return access( this, function( elem, method, val ) {
9054 var win = getWindow( elem );
9055
9056 if ( val === undefined ) {
9057 return win ? win[ prop ] : elem[ method ];
9058 }
9059
9060 if ( win ) {
9061 win.scrollTo(
9062 !top ? val : window.pageXOffset,
9063 top ? val : window.pageYOffset
9064 );
9065
9066 } else {
9067 elem[ method ] = val;
9068 }
9069 }, method, val, arguments.length, null );
9070 };
9071});
9072
9073// Add the top/left cssHooks using jQuery.fn.position
9074// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
9075// getComputedStyle returns percent when specified for top/left/bottom/right
9076// rather than make the css module depend on the offset module, we just check for it here
9077jQuery.each( [ "top", "left" ], function( i, prop ) {
9078 jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
9079 function( elem, computed ) {
9080 if ( computed ) {
9081 computed = curCSS( elem, prop );
9082 // if curCSS returns percentage, fallback to offset
9083 return rnumnonpx.test( computed ) ?
9084 jQuery( elem ).position()[ prop ] + "px" :
9085 computed;
9086 }
9087 }
9088 );
9089});
9090
9091
9092// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
9093jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
9094 jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
9095 // margin is only for outerHeight, outerWidth
9096 jQuery.fn[ funcName ] = function( margin, value ) {
9097 var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
9098 extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
9099
9100 return access( this, function( elem, type, value ) {
9101 var doc;
9102
9103 if ( jQuery.isWindow( elem ) ) {
9104 // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
9105 // isn't a whole lot we can do. See pull request at this URL for discussion:
9106 // https://github.com/jquery/jquery/pull/764
9107 return elem.document.documentElement[ "client" + name ];
9108 }
9109
9110 // Get document width or height
9111 if ( elem.nodeType === 9 ) {
9112 doc = elem.documentElement;
9113
9114 // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
9115 // whichever is greatest
9116 return Math.max(
9117 elem.body[ "scroll" + name ], doc[ "scroll" + name ],
9118 elem.body[ "offset" + name ], doc[ "offset" + name ],
9119 doc[ "client" + name ]
9120 );
9121 }
9122
9123 return value === undefined ?
9124 // Get width or height on the element, requesting but not forcing parseFloat
9125 jQuery.css( elem, type, extra ) :
9126
9127 // Set width or height on the element
9128 jQuery.style( elem, type, value, extra );
9129 }, type, chainable ? margin : undefined, chainable, null );
9130 };
9131 });
9132});
9133
9134
9135// The number of elements contained in the matched element set
9136jQuery.fn.size = function() {
9137 return this.length;
9138};
9139
9140jQuery.fn.andSelf = jQuery.fn.addBack;
9141
9142
9143
9144
9145// Register as a named AMD module, since jQuery can be concatenated with other
9146// files that may use define, but not via a proper concatenation script that
9147// understands anonymous AMD modules. A named AMD is safest and most robust
9148// way to register. Lowercase jquery is used because AMD module names are
9149// derived from file names, and jQuery is normally delivered in a lowercase
9150// file name. Do this after creating the global so that if an AMD module wants
9151// to call noConflict to hide this version of jQuery, it will work.
9152
9153// Note that for maximum portability, libraries that are not jQuery should
9154// declare themselves as anonymous modules, and avoid setting a global if an
9155// AMD loader is present. jQuery is a special case. For more information, see
9156// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
9157
9158if ( typeof define === "function" && define.amd ) {
9159 define( "jquery", [], function() {
9160 return jQuery;
9161 });
9162}
9163
9164
9165
9166
9167var
9168 // Map over jQuery in case of overwrite
9169 _jQuery = window.jQuery,
9170
9171 // Map over the $ in case of overwrite
9172 _$ = window.$;
9173
9174jQuery.noConflict = function( deep ) {
9175 if ( window.$ === jQuery ) {
9176 window.$ = _$;
9177 }
9178
9179 if ( deep && window.jQuery === jQuery ) {
9180 window.jQuery = _jQuery;
9181 }
9182
9183 return jQuery;
9184};
9185
9186// Expose jQuery and $ identifiers, even in
9187// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
9188// and CommonJS for browser emulators (#13566)
9189if ( typeof noGlobal === strundefined ) {
9190 window.jQuery = window.$ = jQuery;
9191}
9192
9193
9194
9195
9196return jQuery;
9197
9198}));
9199//
9200// HashiCorp Mega Nav
9201// --------------------------------------------------
9202
9203var HashiMegaNav = function() {
9204 var productClass = 'mega-nav-grid-item',
9205 productActiveClass = 'is-active',
9206 url = window.location.hostname,
9207 products = [
9208 'vagrant',
9209 'packer',
9210 'terraform',
9211 'vault',
9212 'nomad',
9213 'consul'
9214 ];
9215
9216 for (var i = 0; i < products.length; i++) {
9217 if (url.indexOf(products[i]) !== -1) {
9218 $('.' + productClass + '-' + products[i]).addClass(productActiveClass);
9219 }
9220 }
9221
9222 var $body = $('#mega-nav-body-ct');
9223 var $arrow = $('#mega-nav-ctrl');
9224 var $nav = $arrow.parent();
9225 var $close = $('#mega-nav-close');
9226
9227 function matchesBreakpoint() {
9228 return window.matchMedia("(min-width: 980px)").matches;
9229 }
9230
9231 function openNav() {
9232 if(matchesBreakpoint()) {
9233 $body.slideDown('fast');
9234 $nav.addClass('open');
9235 } else {
9236 $body.fadeIn('fast');
9237 }
9238 }
9239
9240 function closeNav() {
9241 if(matchesBreakpoint()) {
9242 $body.slideUp('fast');
9243 $nav.removeClass('open');
9244 } else {
9245 $body.fadeOut('fast');
9246 }
9247 }
9248
9249 function isNavOpen() {
9250 return $nav.hasClass('open');
9251 }
9252
9253 $arrow.unbind().on('click', function(e) {
9254 e.preventDefault(); // Don't jump page to "#"
9255
9256 if(isNavOpen()) {
9257 closeNav();
9258 } else {
9259 openNav();
9260 }
9261 });
9262
9263 $close.unbind().on('click', function() {
9264 closeNav();
9265 });
9266}
9267
9268// Handle document ready function and the turbolinks load.
9269$(document).on("ready turbolinks:load", HashiMegaNav);
9270// HashiSidebar is the sidebar implementation for mobile websites. It
9271// appears at a configurable breakpoint in the CSS.
9272var HashiSidebar = function() {
9273 var $sidebar = $('.sidebar');
9274 var $toggle = $('.navbar-toggle');
9275 var $overlay = $('.sidebar-overlay');
9276
9277 function sidebarActive() {
9278 return $sidebar.hasClass('open');
9279 }
9280
9281 function hideSidebar() {
9282 if(sidebarActive()) {
9283 $sidebar.removeClass('open');
9284 $overlay.removeClass('active');
9285 }
9286 }
9287
9288 // Hide the sidebar when the user clicks on the overlay. The overlay is
9289 // only "clickable" when it's active.
9290 $overlay.unbind().on('click', function(e){
9291 hideSidebar();
9292 });
9293
9294 // Show the sidebar when the user clicks the hamburger menu.
9295 $toggle.unbind().on('click', function(e) {
9296 e.preventDefault(); // Don't jump page to "#"
9297
9298 // Only activate the sidebar if it's not already active. Since these
9299 // are class selectors, it's possible that we are watching multiple
9300 // elements.
9301 if(!sidebarActive()) {
9302 $overlay.addClass('active');
9303 $sidebar.toggleClass('open');
9304 }
9305 });
9306}
9307
9308// Handle document ready function and the turbolinks load.
9309$(document).on("ready turbolinks:load", HashiSidebar);
9310'use strict'
9311
9312/**
9313 * Wrapper for segment's track function that will track multiple elements,
9314 * normalize parameters, and easily switch between tracking links or events.
9315 * @param {String} selector - query selector, multi element compatible
9316 * @param {Function} cb - optional function that should return params, and will receive the element as a parameter
9317 * @param {Boolean} [link] - if true, tracks a link click
9318 */
9319function track(selector, cb, link) {
9320 each(document.querySelectorAll(selector), function(el) {
9321 var params = cb
9322 if (typeof cb === 'function') {
9323 params = cb(el)
9324 }
9325 var event = params.event
9326 delete params.event
9327 if (link) {
9328 analytics.trackLink(el, event, params)
9329 } else {
9330 el.addEventListener('click', function() {
9331 analytics.track(event, params)
9332 })
9333 }
9334 })
9335}
9336
9337/**
9338 * Iterates through a NodeList, not built-in for all browsers.
9339 * (https://developer.mozilla.org/en-US/docs/Web/API/NodeList)
9340 * @param {NodeList} list a NodeList instance
9341 * @param {Function} cb a function to execute for each node
9342 */
9343function each(list, cb) {
9344 for (var i = 0; i < list.length; i++) {
9345 cb(list[i], i)
9346 }
9347}
9348
9349// Expose as commonjs for module bundlers if needed
9350if (typeof module !== 'undefined' && module.exports) {
9351 module.exports = { track: track }
9352}
9353;
9354document.addEventListener('turbolinks:load', function() {
9355 analytics.page()
9356
9357 track('.downloads .download .details li a', function(el) {
9358 var m = el.href.match(/terraform_(.*?)_(.*?)_(.*?)\.zip/)
9359 return {
9360 event: 'Download',
9361 category: 'Button',
9362 label: 'Terraform | v' + m[1] + ' | ' + m[2] + ' | ' + m[3],
9363 version: m[1],
9364 os: m[2],
9365 architecture: m[3],
9366 product: 'terraform'
9367 }
9368 })
9369})
9370;
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380// Set up terraform.io UI helpers
9381document.addEventListener("turbolinks:load", function() {
9382 "use strict";
9383
9384 // SIDEBAR STUFF:
9385 // - "subNavs" are <li> elements with a nested <ul> as a direct child.
9386 // - The <a> child is the "header" of the subnav, and the <ul> is its "content."
9387 // - Subnavs are collapsed (<ul> hidden) or expanded (<ul> visible).
9388 // - Collapse/expand is managed by the "active" class on the <li>.
9389
9390 // Collapse most subnavs, but reveal any that contain the
9391 // current page. The a.current-page class is added during build by
9392 // layouts/inner.erb.
9393 var docsSidebar = $("#docs-sidebar ul.nav.docs-sidenav");
9394 var subNavs = docsSidebar.find("ul").addClass("nav-hidden").parent("li");
9395 // we leave the nav-hidden class alone after this.
9396 function resetActiveSubnavs() {
9397 subNavs.removeClass("active");
9398 // Activate current page, locked-open navs, and all their parents:
9399 docsSidebar.find("li").has(".current-page, .nav-visible").addClass("active");
9400 }
9401 resetActiveSubnavs();
9402
9403 // CSS class that adds toggle controls:
9404 subNavs.addClass("has-subnav");
9405 // Toggle subnav expansion when clicking an area that isn't claimed by the
9406 // header or content (usually the :before pseudo-element)
9407 subNavs.on("click", function(e) {
9408 if (e.target == this) {
9409 $(this).toggleClass("active");
9410 }
9411 e.stopPropagation();
9412 });
9413 // If the subnav header doesn't link to a different page, use it as a toggle.
9414 docsSidebar.find("a[href^='#']").on("click", function(e) {
9415 e.preventDefault();
9416 $(this).parent("li").trigger("click");
9417 });
9418
9419 // If this is a Very Large Sidebar, add extra controls to expand/collapse
9420 // and filter it.
9421 var sidebarLinks = docsSidebar.find("a");
9422 if (sidebarLinks.length > 30) {
9423 if ($("#sidebar-controls").length === 0) { // then add it!
9424 var sidebarControlsHTML =
9425 '<div id="sidebar-controls">' +
9426 '<div id="sidebar-filter">' +
9427 '<span class="glyphicon glyphicon-search"></span>' +
9428 '<label for="sidebar-filter-field" class="sr-only sr-only-focusable">Filter page titles in sidebar navigation</label>' +
9429 '<input type="search" id="sidebar-filter-field" class="form-control" name="sidebar-filter-field" role="search" placeholder="Filter page titles" />' +
9430 '<button id="filter-close" class="glyphicon glyphicon-remove-circle" title="Reset filter"><span class="sr-only sr-only-focusable">Reset sidebar filter</span></button>' +
9431 '</div>' +
9432 '<div id="sidebar-buttons">' +
9433 '<button id="toggle-button">Expand all</button>' +
9434 ' | ' +
9435 '<button id="filter-button" title="Shortcut: type the / key">Filter</button>' +
9436 '</div>' +
9437 '</div>';
9438 var sidebarHeader = $("#docs-sidebar").children("h1,h2,h3,h4,h5,h6").not("#otherdocs").first();
9439 if (sidebarHeader.length === 1) { // under first header
9440 sidebarHeader.after(sidebarControlsHTML);
9441 } else { // under skip link
9442 $("#docs-sidebar #controls-placeholder").replaceWith(sidebarControlsHTML);
9443 }
9444 }
9445
9446 var filterDiv = $("div#sidebar-filter");
9447 var buttonsDiv = $("div#sidebar-buttons");
9448 var subnavToggle = $("#sidebar-controls #toggle-button");
9449 var filterField = $("#sidebar-controls input#sidebar-filter-field");
9450 var filterButton = $("#filter-button");
9451
9452 filterDiv.hide();
9453
9454 filterButton.on("click", function(e) {
9455 buttonsDiv.hide();
9456 filterDiv.show();
9457 filterField.focus();
9458 });
9459
9460 // Filter field's close button: defer to reset button.
9461 $("#filter-close").on("click", function(e) {
9462 subnavToggle.trigger("reset");
9463 });
9464
9465 // Expand/reset button behavior:
9466 subnavToggle.on({
9467 "taint": function(e) {
9468 $(this).html("Reset");
9469 },
9470 "reset": function(e) {
9471 filterField.val("");
9472 filterField.trigger("blur");
9473 sidebarLinks.parent("li").show();
9474 resetActiveSubnavs();
9475 $(this).html("Expand all");
9476 buttonsDiv.show();
9477 filterDiv.hide();
9478 },
9479 "click": function(e) {
9480 e.preventDefault();
9481 if ($(this).text() === "Expand all") {
9482 subNavs.addClass("active");
9483 $(this).trigger("taint");
9484 } else {
9485 $(this).trigger("reset");
9486 }
9487 }
9488 });
9489
9490 // Filter as you type. This alters three things:
9491 // - "active" class on subnavs
9492 // - direct show/hide of <li>s
9493 // - state of subnavToggle button
9494 // We rely on subnavToggle's "reset" event to clean up when done.
9495 filterField.on('keyup', function(e) {
9496 if (e.keyCode === 27) { // escape key
9497 subnavToggle.trigger("reset");
9498 } else {
9499 subnavToggle.trigger("taint");
9500 var filterRegexp = new RegExp(filterField.val(), 'i');
9501 var matchingLinks = sidebarLinks.filter(function(index) {
9502 return $(this).text().match(filterRegexp);
9503 });
9504 sidebarLinks.parent('li').hide();
9505 subNavs.removeClass('active'); // cleans up partial as-you-type searches
9506 // make matches and their parents visible and expanded:
9507 matchingLinks.parents('li').show().filter(subNavs).addClass('active');
9508 // make direct children visible (if your search caught a subnav directly):
9509 matchingLinks.parent('li').find('li').show();
9510 }
9511 });
9512 // Type slash to focus sidebar filter:
9513 $("body").keydown(function(e) {
9514 // 191 = / (forward slash) key
9515 if (e.keyCode !== 191) {
9516 return;
9517 }
9518 var focusedElementType = $(document.activeElement).get(0).tagName.toLowerCase();
9519 if (focusedElementType !== "textarea" && focusedElementType !== "input") {
9520 e.preventDefault();
9521 filterButton.trigger("click");
9522 }
9523 });
9524 }
9525
9526
9527 // On docs/content pages, add a hierarchical quick nav menu if there are
9528 // more than two H2/H3/H4 headers.
9529 var headers = $('#inner').find('h2, h3, h4');
9530 if (headers.length > 2 && $("div#inner-quicknav").length === 0) {
9531 // Build the quick-nav HTML:
9532 $("#inner h1").first().after(
9533 '<div id="inner-quicknav">' +
9534 '<span id="inner-quicknav-trigger">' +
9535 'Jump to Section' +
9536 '<svg width="9" height="5" xmlns="http://www.w3.org/2000/svg"><path d="M8.811 1.067a.612.612 0 0 0 0-.884.655.655 0 0 0-.908 0L4.5 3.491 1.097.183a.655.655 0 0 0-.909 0 .615.615 0 0 0 0 .884l3.857 3.75a.655.655 0 0 0 .91 0l3.856-3.75z" fill-rule="evenodd"/></svg>' +
9537 '</span>' +
9538 '<ul class="dropdown"></ul>' +
9539 '</div>'
9540 );
9541 var quickNav = $('#inner-quicknav > ul.dropdown');
9542 headers.each(function(index, element) {
9543 var level = element.nodeName.toLowerCase();
9544 var header_text = $(element).text();
9545 var header_id = $(element).attr('id');
9546 quickNav.append('<li class="level-' + level + '"><a href="#' + header_id + '">' + header_text + '</a></li>');
9547 });
9548 // Attach event listeners:
9549 // Trigger opens and closes.
9550 $('#inner-quicknav #inner-quicknav-trigger').on('click', function(e) {
9551 $(this).siblings('ul').toggleClass('active');
9552 e.stopPropagation();
9553 });
9554 // Clicking inside the quick-nav doesn't close it.
9555 quickNav.on('click', function(e) {
9556 e.stopPropagation();
9557 });
9558 // Jumping to a section means you're done with the quick-nav.
9559 quickNav.find('li a').on('click', function() {
9560 quickNav.removeClass('active');
9561 });
9562 // Clicking outside the quick-nav closes it.
9563 $('body').on('click', function() {
9564 quickNav.removeClass('active');
9565 });
9566 }
9567});
diff --git a/assets/stylesheets/application.css b/assets/stylesheets/application.css
new file mode 100644
index 0000000..bf25aa2
--- /dev/null
+++ b/assets/stylesheets/application.css
@@ -0,0 +1,9313 @@
1@charset "UTF-8";
2/*!
3 * Bootstrap v3.4.1 (https://getbootstrap.com/)
4 * Copyright 2011-2019 Twitter, Inc.
5 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 */
7/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
8@import url("https://fonts.googleapis.com/css?family=Fira+Mono|Open+Sans:400,600");
9/* line 9, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
10html {
11 font-family: sans-serif;
12 -ms-text-size-adjust: 100%;
13 -webkit-text-size-adjust: 100%; }
14
15/* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
16body {
17 margin: 0; }
18
19/* line 33, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
20article,
21aside,
22details,
23figcaption,
24figure,
25footer,
26header,
27hgroup,
28main,
29menu,
30nav,
31section,
32summary {
33 display: block; }
34
35/* line 54, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
36audio,
37canvas,
38progress,
39video {
40 display: inline-block;
41 vertical-align: baseline; }
42
43/* line 67, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
44audio:not([controls]) {
45 display: none;
46 height: 0; }
47
48/* line 77, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
49[hidden],
50template {
51 display: none; }
52
53/* line 89, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
54a {
55 background-color: transparent; }
56
57/* line 98, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
58a:active,
59a:hover {
60 outline: 0; }
61
62/* line 111, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
63abbr[title] {
64 border-bottom: none;
65 text-decoration: underline;
66 text-decoration: underline dotted; }
67
68/* line 121, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
69b,
70strong {
71 font-weight: bold; }
72
73/* line 130, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
74dfn {
75 font-style: italic; }
76
77/* line 139, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
78h1 {
79 font-size: 2em;
80 margin: 0.67em 0; }
81
82/* line 148, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
83mark {
84 background: #ff0;
85 color: #000; }
86
87/* line 157, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
88small {
89 font-size: 80%; }
90
91/* line 165, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
92sub,
93sup {
94 font-size: 75%;
95 line-height: 0;
96 position: relative;
97 vertical-align: baseline; }
98
99/* line 173, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
100sup {
101 top: -0.5em; }
102
103/* line 177, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
104sub {
105 bottom: -0.25em; }
106
107/* line 188, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
108img {
109 border: 0; }
110
111/* line 196, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
112svg:not(:root) {
113 overflow: hidden; }
114
115/* line 207, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
116figure {
117 margin: 1em 40px; }
118
119/* line 215, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
120hr {
121 box-sizing: content-box;
122 height: 0; }
123
124/* line 224, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
125pre {
126 overflow: auto; }
127
128/* line 232, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
129code,
130kbd,
131pre,
132samp {
133 font-family: monospace, monospace;
134 font-size: 1em; }
135
136/* line 255, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
137button,
138input,
139optgroup,
140select,
141textarea {
142 color: inherit;
143 font: inherit;
144 margin: 0; }
145
146/* line 269, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
147button {
148 overflow: visible; }
149
150/* line 280, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
151button,
152select {
153 text-transform: none; }
154
155/* line 293, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
156button,
157html input[type="button"],
158input[type="reset"],
159input[type="submit"] {
160 -webkit-appearance: button;
161 cursor: pointer; }
162
163/* line 305, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
164button[disabled],
165html input[disabled] {
166 cursor: default; }
167
168/* line 314, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
169button::-moz-focus-inner,
170input::-moz-focus-inner {
171 border: 0;
172 padding: 0; }
173
174/* line 325, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
175input {
176 line-height: normal; }
177
178/* line 337, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
179input[type="checkbox"],
180input[type="radio"] {
181 box-sizing: border-box;
182 padding: 0; }
183
184/* line 349, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
185input[type="number"]::-webkit-inner-spin-button,
186input[type="number"]::-webkit-outer-spin-button {
187 height: auto; }
188
189/* line 359, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
190input[type="search"] {
191 -webkit-appearance: textfield;
192 box-sizing: content-box; }
193
194/* line 370, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
195input[type="search"]::-webkit-search-cancel-button,
196input[type="search"]::-webkit-search-decoration {
197 -webkit-appearance: none; }
198
199/* line 379, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
200fieldset {
201 border: 1px solid #c0c0c0;
202 margin: 0 2px;
203 padding: 0.35em 0.625em 0.75em; }
204
205/* line 390, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
206legend {
207 border: 0;
208 padding: 0; }
209
210/* line 399, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
211textarea {
212 overflow: auto; }
213
214/* line 408, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
215optgroup {
216 font-weight: bold; }
217
218/* line 419, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
219table {
220 border-collapse: collapse;
221 border-spacing: 0; }
222
223/* line 424, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_normalize.scss */
224td,
225th {
226 padding: 0; }
227
228/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
229@media print {
230 /* line 9, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
231 *,
232 *:before,
233 *:after {
234 color: #000 !important;
235 text-shadow: none !important;
236 background: transparent !important;
237 box-shadow: none !important; }
238
239 /* line 18, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
240 a,
241 a:visited {
242 text-decoration: underline; }
243
244 /* line 23, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
245 a[href]:after {
246 content: " (" attr(href) ")"; }
247
248 /* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
249 abbr[title]:after {
250 content: " (" attr(title) ")"; }
251
252 /* line 33, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
253 a[href^="#"]:after,
254 a[href^="javascript:"]:after {
255 content: ""; }
256
257 /* line 38, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
258 pre,
259 blockquote {
260 border: 1px solid #999;
261 page-break-inside: avoid; }
262
263 /* line 44, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
264 thead {
265 display: table-header-group; }
266
267 /* line 48, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
268 tr,
269 img {
270 page-break-inside: avoid; }
271
272 /* line 53, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
273 img {
274 max-width: 100% !important; }
275
276 /* line 57, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
277 p,
278 h2,
279 h3 {
280 orphans: 3;
281 widows: 3; }
282
283 /* line 64, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
284 h2,
285 h3 {
286 page-break-after: avoid; }
287
288 /* line 72, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
289 .navbar {
290 display: none; }
291
292 /* line 77, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
293 .btn > .caret,
294 .dropup > .btn > .caret {
295 border-top-color: #000 !important; }
296
297 /* line 81, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
298 .label {
299 border: 1px solid #000; }
300
301 /* line 85, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
302 .table, #inner table {
303 border-collapse: collapse !important; }
304 /* line 88, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
305 .table td, #inner table td,
306 .table th,
307 #inner table th {
308 background-color: #fff !important; }
309
310 /* line 94, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_print.scss */
311 .table-bordered th,
312 .table-bordered td {
313 border: 1px solid #ddd !important; } }
314@font-face {
315 font-family: "Glyphicons Halflings";
316 src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot");
317 src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot%3F") format("embedded-opentype"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/bootstrap/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/bootstrap/glyphicons-halflings-regular.svg") format("svg"); }
318/* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
319.glyphicon {
320 position: relative;
321 top: 1px;
322 display: inline-block;
323 font-family: "Glyphicons Halflings";
324 font-style: normal;
325 font-weight: 400;
326 line-height: 1;
327 -webkit-font-smoothing: antialiased;
328 -moz-osx-font-smoothing: grayscale; }
329
330/* line 37, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
331.glyphicon-asterisk:before {
332 content: "\002a"; }
333
334/* line 38, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
335.glyphicon-plus:before {
336 content: "\002b"; }
337
338/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
339.glyphicon-euro:before,
340.glyphicon-eur:before {
341 content: "\20ac"; }
342
343/* line 41, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
344.glyphicon-minus:before {
345 content: "\2212"; }
346
347/* line 42, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
348.glyphicon-cloud:before {
349 content: "\2601"; }
350
351/* line 43, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
352.glyphicon-envelope:before {
353 content: "\2709"; }
354
355/* line 44, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
356.glyphicon-pencil:before {
357 content: "\270f"; }
358
359/* line 45, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
360.glyphicon-glass:before {
361 content: "\e001"; }
362
363/* line 46, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
364.glyphicon-music:before {
365 content: "\e002"; }
366
367/* line 47, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
368.glyphicon-search:before {
369 content: "\e003"; }
370
371/* line 48, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
372.glyphicon-heart:before {
373 content: "\e005"; }
374
375/* line 49, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
376.glyphicon-star:before {
377 content: "\e006"; }
378
379/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
380.glyphicon-star-empty:before {
381 content: "\e007"; }
382
383/* line 51, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
384.glyphicon-user:before {
385 content: "\e008"; }
386
387/* line 52, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
388.glyphicon-film:before {
389 content: "\e009"; }
390
391/* line 53, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
392.glyphicon-th-large:before {
393 content: "\e010"; }
394
395/* line 54, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
396.glyphicon-th:before {
397 content: "\e011"; }
398
399/* line 55, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
400.glyphicon-th-list:before {
401 content: "\e012"; }
402
403/* line 56, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
404.glyphicon-ok:before {
405 content: "\e013"; }
406
407/* line 57, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
408.glyphicon-remove:before {
409 content: "\e014"; }
410
411/* line 58, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
412.glyphicon-zoom-in:before {
413 content: "\e015"; }
414
415/* line 59, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
416.glyphicon-zoom-out:before {
417 content: "\e016"; }
418
419/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
420.glyphicon-off:before {
421 content: "\e017"; }
422
423/* line 61, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
424.glyphicon-signal:before {
425 content: "\e018"; }
426
427/* line 62, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
428.glyphicon-cog:before {
429 content: "\e019"; }
430
431/* line 63, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
432.glyphicon-trash:before {
433 content: "\e020"; }
434
435/* line 64, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
436.glyphicon-home:before {
437 content: "\e021"; }
438
439/* line 65, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
440.glyphicon-file:before {
441 content: "\e022"; }
442
443/* line 66, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
444.glyphicon-time:before {
445 content: "\e023"; }
446
447/* line 67, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
448.glyphicon-road:before {
449 content: "\e024"; }
450
451/* line 68, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
452.glyphicon-download-alt:before {
453 content: "\e025"; }
454
455/* line 69, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
456.glyphicon-download:before {
457 content: "\e026"; }
458
459/* line 70, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
460.glyphicon-upload:before {
461 content: "\e027"; }
462
463/* line 71, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
464.glyphicon-inbox:before {
465 content: "\e028"; }
466
467/* line 72, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
468.glyphicon-play-circle:before {
469 content: "\e029"; }
470
471/* line 73, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
472.glyphicon-repeat:before {
473 content: "\e030"; }
474
475/* line 74, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
476.glyphicon-refresh:before {
477 content: "\e031"; }
478
479/* line 75, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
480.glyphicon-list-alt:before {
481 content: "\e032"; }
482
483/* line 76, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
484.glyphicon-lock:before {
485 content: "\e033"; }
486
487/* line 77, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
488.glyphicon-flag:before {
489 content: "\e034"; }
490
491/* line 78, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
492.glyphicon-headphones:before {
493 content: "\e035"; }
494
495/* line 79, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
496.glyphicon-volume-off:before {
497 content: "\e036"; }
498
499/* line 80, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
500.glyphicon-volume-down:before {
501 content: "\e037"; }
502
503/* line 81, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
504.glyphicon-volume-up:before {
505 content: "\e038"; }
506
507/* line 82, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
508.glyphicon-qrcode:before {
509 content: "\e039"; }
510
511/* line 83, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
512.glyphicon-barcode:before {
513 content: "\e040"; }
514
515/* line 84, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
516.glyphicon-tag:before {
517 content: "\e041"; }
518
519/* line 85, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
520.glyphicon-tags:before {
521 content: "\e042"; }
522
523/* line 86, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
524.glyphicon-book:before {
525 content: "\e043"; }
526
527/* line 87, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
528.glyphicon-bookmark:before {
529 content: "\e044"; }
530
531/* line 88, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
532.glyphicon-print:before {
533 content: "\e045"; }
534
535/* line 89, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
536.glyphicon-camera:before {
537 content: "\e046"; }
538
539/* line 90, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
540.glyphicon-font:before {
541 content: "\e047"; }
542
543/* line 91, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
544.glyphicon-bold:before {
545 content: "\e048"; }
546
547/* line 92, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
548.glyphicon-italic:before {
549 content: "\e049"; }
550
551/* line 93, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
552.glyphicon-text-height:before {
553 content: "\e050"; }
554
555/* line 94, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
556.glyphicon-text-width:before {
557 content: "\e051"; }
558
559/* line 95, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
560.glyphicon-align-left:before {
561 content: "\e052"; }
562
563/* line 96, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
564.glyphicon-align-center:before {
565 content: "\e053"; }
566
567/* line 97, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
568.glyphicon-align-right:before {
569 content: "\e054"; }
570
571/* line 98, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
572.glyphicon-align-justify:before {
573 content: "\e055"; }
574
575/* line 99, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
576.glyphicon-list:before {
577 content: "\e056"; }
578
579/* line 100, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
580.glyphicon-indent-left:before {
581 content: "\e057"; }
582
583/* line 101, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
584.glyphicon-indent-right:before {
585 content: "\e058"; }
586
587/* line 102, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
588.glyphicon-facetime-video:before {
589 content: "\e059"; }
590
591/* line 103, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
592.glyphicon-picture:before {
593 content: "\e060"; }
594
595/* line 104, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
596.glyphicon-map-marker:before {
597 content: "\e062"; }
598
599/* line 105, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
600.glyphicon-adjust:before {
601 content: "\e063"; }
602
603/* line 106, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
604.glyphicon-tint:before {
605 content: "\e064"; }
606
607/* line 107, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
608.glyphicon-edit:before {
609 content: "\e065"; }
610
611/* line 108, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
612.glyphicon-share:before {
613 content: "\e066"; }
614
615/* line 109, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
616.glyphicon-check:before {
617 content: "\e067"; }
618
619/* line 110, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
620.glyphicon-move:before {
621 content: "\e068"; }
622
623/* line 111, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
624.glyphicon-step-backward:before {
625 content: "\e069"; }
626
627/* line 112, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
628.glyphicon-fast-backward:before {
629 content: "\e070"; }
630
631/* line 113, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
632.glyphicon-backward:before {
633 content: "\e071"; }
634
635/* line 114, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
636.glyphicon-play:before {
637 content: "\e072"; }
638
639/* line 115, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
640.glyphicon-pause:before {
641 content: "\e073"; }
642
643/* line 116, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
644.glyphicon-stop:before {
645 content: "\e074"; }
646
647/* line 117, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
648.glyphicon-forward:before {
649 content: "\e075"; }
650
651/* line 118, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
652.glyphicon-fast-forward:before {
653 content: "\e076"; }
654
655/* line 119, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
656.glyphicon-step-forward:before {
657 content: "\e077"; }
658
659/* line 120, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
660.glyphicon-eject:before {
661 content: "\e078"; }
662
663/* line 121, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
664.glyphicon-chevron-left:before {
665 content: "\e079"; }
666
667/* line 122, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
668.glyphicon-chevron-right:before {
669 content: "\e080"; }
670
671/* line 123, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
672.glyphicon-plus-sign:before {
673 content: "\e081"; }
674
675/* line 124, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
676.glyphicon-minus-sign:before {
677 content: "\e082"; }
678
679/* line 125, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
680.glyphicon-remove-sign:before {
681 content: "\e083"; }
682
683/* line 126, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
684.glyphicon-ok-sign:before {
685 content: "\e084"; }
686
687/* line 127, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
688.glyphicon-question-sign:before {
689 content: "\e085"; }
690
691/* line 128, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
692.glyphicon-info-sign:before {
693 content: "\e086"; }
694
695/* line 129, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
696.glyphicon-screenshot:before {
697 content: "\e087"; }
698
699/* line 130, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
700.glyphicon-remove-circle:before {
701 content: "\e088"; }
702
703/* line 131, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
704.glyphicon-ok-circle:before {
705 content: "\e089"; }
706
707/* line 132, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
708.glyphicon-ban-circle:before {
709 content: "\e090"; }
710
711/* line 133, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
712.glyphicon-arrow-left:before {
713 content: "\e091"; }
714
715/* line 134, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
716.glyphicon-arrow-right:before {
717 content: "\e092"; }
718
719/* line 135, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
720.glyphicon-arrow-up:before {
721 content: "\e093"; }
722
723/* line 136, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
724.glyphicon-arrow-down:before {
725 content: "\e094"; }
726
727/* line 137, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
728.glyphicon-share-alt:before {
729 content: "\e095"; }
730
731/* line 138, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
732.glyphicon-resize-full:before {
733 content: "\e096"; }
734
735/* line 139, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
736.glyphicon-resize-small:before {
737 content: "\e097"; }
738
739/* line 140, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
740.glyphicon-exclamation-sign:before {
741 content: "\e101"; }
742
743/* line 141, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
744.glyphicon-gift:before {
745 content: "\e102"; }
746
747/* line 142, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
748.glyphicon-leaf:before {
749 content: "\e103"; }
750
751/* line 143, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
752.glyphicon-fire:before {
753 content: "\e104"; }
754
755/* line 144, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
756.glyphicon-eye-open:before {
757 content: "\e105"; }
758
759/* line 145, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
760.glyphicon-eye-close:before {
761 content: "\e106"; }
762
763/* line 146, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
764.glyphicon-warning-sign:before {
765 content: "\e107"; }
766
767/* line 147, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
768.glyphicon-plane:before {
769 content: "\e108"; }
770
771/* line 148, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
772.glyphicon-calendar:before {
773 content: "\e109"; }
774
775/* line 149, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
776.glyphicon-random:before {
777 content: "\e110"; }
778
779/* line 150, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
780.glyphicon-comment:before {
781 content: "\e111"; }
782
783/* line 151, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
784.glyphicon-magnet:before {
785 content: "\e112"; }
786
787/* line 152, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
788.glyphicon-chevron-up:before {
789 content: "\e113"; }
790
791/* line 153, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
792.glyphicon-chevron-down:before {
793 content: "\e114"; }
794
795/* line 154, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
796.glyphicon-retweet:before {
797 content: "\e115"; }
798
799/* line 155, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
800.glyphicon-shopping-cart:before {
801 content: "\e116"; }
802
803/* line 156, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
804.glyphicon-folder-close:before {
805 content: "\e117"; }
806
807/* line 157, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
808.glyphicon-folder-open:before {
809 content: "\e118"; }
810
811/* line 158, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
812.glyphicon-resize-vertical:before {
813 content: "\e119"; }
814
815/* line 159, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
816.glyphicon-resize-horizontal:before {
817 content: "\e120"; }
818
819/* line 160, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
820.glyphicon-hdd:before {
821 content: "\e121"; }
822
823/* line 161, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
824.glyphicon-bullhorn:before {
825 content: "\e122"; }
826
827/* line 162, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
828.glyphicon-bell:before {
829 content: "\e123"; }
830
831/* line 163, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
832.glyphicon-certificate:before {
833 content: "\e124"; }
834
835/* line 164, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
836.glyphicon-thumbs-up:before {
837 content: "\e125"; }
838
839/* line 165, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
840.glyphicon-thumbs-down:before {
841 content: "\e126"; }
842
843/* line 166, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
844.glyphicon-hand-right:before {
845 content: "\e127"; }
846
847/* line 167, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
848.glyphicon-hand-left:before {
849 content: "\e128"; }
850
851/* line 168, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
852.glyphicon-hand-up:before {
853 content: "\e129"; }
854
855/* line 169, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
856.glyphicon-hand-down:before {
857 content: "\e130"; }
858
859/* line 170, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
860.glyphicon-circle-arrow-right:before {
861 content: "\e131"; }
862
863/* line 171, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
864.glyphicon-circle-arrow-left:before {
865 content: "\e132"; }
866
867/* line 172, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
868.glyphicon-circle-arrow-up:before {
869 content: "\e133"; }
870
871/* line 173, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
872.glyphicon-circle-arrow-down:before {
873 content: "\e134"; }
874
875/* line 174, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
876.glyphicon-globe:before {
877 content: "\e135"; }
878
879/* line 175, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
880.glyphicon-wrench:before {
881 content: "\e136"; }
882
883/* line 176, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
884.glyphicon-tasks:before {
885 content: "\e137"; }
886
887/* line 177, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
888.glyphicon-filter:before {
889 content: "\e138"; }
890
891/* line 178, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
892.glyphicon-briefcase:before {
893 content: "\e139"; }
894
895/* line 179, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
896.glyphicon-fullscreen:before {
897 content: "\e140"; }
898
899/* line 180, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
900.glyphicon-dashboard:before {
901 content: "\e141"; }
902
903/* line 181, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
904.glyphicon-paperclip:before {
905 content: "\e142"; }
906
907/* line 182, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
908.glyphicon-heart-empty:before {
909 content: "\e143"; }
910
911/* line 183, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
912.glyphicon-link:before {
913 content: "\e144"; }
914
915/* line 184, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
916.glyphicon-phone:before {
917 content: "\e145"; }
918
919/* line 185, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
920.glyphicon-pushpin:before {
921 content: "\e146"; }
922
923/* line 186, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
924.glyphicon-usd:before {
925 content: "\e148"; }
926
927/* line 187, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
928.glyphicon-gbp:before {
929 content: "\e149"; }
930
931/* line 188, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
932.glyphicon-sort:before {
933 content: "\e150"; }
934
935/* line 189, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
936.glyphicon-sort-by-alphabet:before {
937 content: "\e151"; }
938
939/* line 190, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
940.glyphicon-sort-by-alphabet-alt:before {
941 content: "\e152"; }
942
943/* line 191, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
944.glyphicon-sort-by-order:before {
945 content: "\e153"; }
946
947/* line 192, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
948.glyphicon-sort-by-order-alt:before {
949 content: "\e154"; }
950
951/* line 193, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
952.glyphicon-sort-by-attributes:before {
953 content: "\e155"; }
954
955/* line 194, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
956.glyphicon-sort-by-attributes-alt:before {
957 content: "\e156"; }
958
959/* line 195, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
960.glyphicon-unchecked:before {
961 content: "\e157"; }
962
963/* line 196, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
964.glyphicon-expand:before {
965 content: "\e158"; }
966
967/* line 197, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
968.glyphicon-collapse-down:before {
969 content: "\e159"; }
970
971/* line 198, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
972.glyphicon-collapse-up:before {
973 content: "\e160"; }
974
975/* line 199, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
976.glyphicon-log-in:before {
977 content: "\e161"; }
978
979/* line 200, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
980.glyphicon-flash:before {
981 content: "\e162"; }
982
983/* line 201, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
984.glyphicon-log-out:before {
985 content: "\e163"; }
986
987/* line 202, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
988.glyphicon-new-window:before {
989 content: "\e164"; }
990
991/* line 203, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
992.glyphicon-record:before {
993 content: "\e165"; }
994
995/* line 204, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
996.glyphicon-save:before {
997 content: "\e166"; }
998
999/* line 205, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1000.glyphicon-open:before {
1001 content: "\e167"; }
1002
1003/* line 206, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1004.glyphicon-saved:before {
1005 content: "\e168"; }
1006
1007/* line 207, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1008.glyphicon-import:before {
1009 content: "\e169"; }
1010
1011/* line 208, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1012.glyphicon-export:before {
1013 content: "\e170"; }
1014
1015/* line 209, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1016.glyphicon-send:before {
1017 content: "\e171"; }
1018
1019/* line 210, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1020.glyphicon-floppy-disk:before {
1021 content: "\e172"; }
1022
1023/* line 211, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1024.glyphicon-floppy-saved:before {
1025 content: "\e173"; }
1026
1027/* line 212, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1028.glyphicon-floppy-remove:before {
1029 content: "\e174"; }
1030
1031/* line 213, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1032.glyphicon-floppy-save:before {
1033 content: "\e175"; }
1034
1035/* line 214, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1036.glyphicon-floppy-open:before {
1037 content: "\e176"; }
1038
1039/* line 215, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1040.glyphicon-credit-card:before {
1041 content: "\e177"; }
1042
1043/* line 216, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1044.glyphicon-transfer:before {
1045 content: "\e178"; }
1046
1047/* line 217, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1048.glyphicon-cutlery:before {
1049 content: "\e179"; }
1050
1051/* line 218, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1052.glyphicon-header:before {
1053 content: "\e180"; }
1054
1055/* line 219, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1056.glyphicon-compressed:before {
1057 content: "\e181"; }
1058
1059/* line 220, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1060.glyphicon-earphone:before {
1061 content: "\e182"; }
1062
1063/* line 221, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1064.glyphicon-phone-alt:before {
1065 content: "\e183"; }
1066
1067/* line 222, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1068.glyphicon-tower:before {
1069 content: "\e184"; }
1070
1071/* line 223, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1072.glyphicon-stats:before {
1073 content: "\e185"; }
1074
1075/* line 224, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1076.glyphicon-sd-video:before {
1077 content: "\e186"; }
1078
1079/* line 225, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1080.glyphicon-hd-video:before {
1081 content: "\e187"; }
1082
1083/* line 226, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1084.glyphicon-subtitles:before {
1085 content: "\e188"; }
1086
1087/* line 227, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1088.glyphicon-sound-stereo:before {
1089 content: "\e189"; }
1090
1091/* line 228, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1092.glyphicon-sound-dolby:before {
1093 content: "\e190"; }
1094
1095/* line 229, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1096.glyphicon-sound-5-1:before {
1097 content: "\e191"; }
1098
1099/* line 230, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1100.glyphicon-sound-6-1:before {
1101 content: "\e192"; }
1102
1103/* line 231, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1104.glyphicon-sound-7-1:before {
1105 content: "\e193"; }
1106
1107/* line 232, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1108.glyphicon-copyright-mark:before {
1109 content: "\e194"; }
1110
1111/* line 233, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1112.glyphicon-registration-mark:before {
1113 content: "\e195"; }
1114
1115/* line 234, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1116.glyphicon-cloud-download:before {
1117 content: "\e197"; }
1118
1119/* line 235, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1120.glyphicon-cloud-upload:before {
1121 content: "\e198"; }
1122
1123/* line 236, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1124.glyphicon-tree-conifer:before {
1125 content: "\e199"; }
1126
1127/* line 237, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1128.glyphicon-tree-deciduous:before {
1129 content: "\e200"; }
1130
1131/* line 238, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1132.glyphicon-cd:before {
1133 content: "\e201"; }
1134
1135/* line 239, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1136.glyphicon-save-file:before {
1137 content: "\e202"; }
1138
1139/* line 240, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1140.glyphicon-open-file:before {
1141 content: "\e203"; }
1142
1143/* line 241, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1144.glyphicon-level-up:before {
1145 content: "\e204"; }
1146
1147/* line 242, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1148.glyphicon-copy:before {
1149 content: "\e205"; }
1150
1151/* line 243, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1152.glyphicon-paste:before {
1153 content: "\e206"; }
1154
1155/* line 252, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1156.glyphicon-alert:before {
1157 content: "\e209"; }
1158
1159/* line 253, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1160.glyphicon-equalizer:before {
1161 content: "\e210"; }
1162
1163/* line 254, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1164.glyphicon-king:before {
1165 content: "\e211"; }
1166
1167/* line 255, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1168.glyphicon-queen:before {
1169 content: "\e212"; }
1170
1171/* line 256, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1172.glyphicon-pawn:before {
1173 content: "\e213"; }
1174
1175/* line 257, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1176.glyphicon-bishop:before {
1177 content: "\e214"; }
1178
1179/* line 258, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1180.glyphicon-knight:before {
1181 content: "\e215"; }
1182
1183/* line 259, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1184.glyphicon-baby-formula:before {
1185 content: "\e216"; }
1186
1187/* line 260, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1188.glyphicon-tent:before {
1189 content: "\26fa"; }
1190
1191/* line 261, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1192.glyphicon-blackboard:before {
1193 content: "\e218"; }
1194
1195/* line 262, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1196.glyphicon-bed:before {
1197 content: "\e219"; }
1198
1199/* line 263, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1200.glyphicon-apple:before {
1201 content: "\f8ff"; }
1202
1203/* line 264, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1204.glyphicon-erase:before {
1205 content: "\e221"; }
1206
1207/* line 265, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1208.glyphicon-hourglass:before {
1209 content: "\231b"; }
1210
1211/* line 266, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1212.glyphicon-lamp:before {
1213 content: "\e223"; }
1214
1215/* line 267, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1216.glyphicon-duplicate:before {
1217 content: "\e224"; }
1218
1219/* line 268, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1220.glyphicon-piggy-bank:before {
1221 content: "\e225"; }
1222
1223/* line 269, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1224.glyphicon-scissors:before {
1225 content: "\e226"; }
1226
1227/* line 270, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1228.glyphicon-bitcoin:before {
1229 content: "\e227"; }
1230
1231/* line 271, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1232.glyphicon-btc:before {
1233 content: "\e227"; }
1234
1235/* line 272, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1236.glyphicon-xbt:before {
1237 content: "\e227"; }
1238
1239/* line 273, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1240.glyphicon-yen:before {
1241 content: "\00a5"; }
1242
1243/* line 274, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1244.glyphicon-jpy:before {
1245 content: "\00a5"; }
1246
1247/* line 275, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1248.glyphicon-ruble:before {
1249 content: "\20bd"; }
1250
1251/* line 276, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1252.glyphicon-rub:before {
1253 content: "\20bd"; }
1254
1255/* line 277, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1256.glyphicon-scale:before {
1257 content: "\e230"; }
1258
1259/* line 278, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1260.glyphicon-ice-lolly:before {
1261 content: "\e231"; }
1262
1263/* line 279, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1264.glyphicon-ice-lolly-tasted:before {
1265 content: "\e232"; }
1266
1267/* line 280, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1268.glyphicon-education:before {
1269 content: "\e233"; }
1270
1271/* line 281, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1272.glyphicon-option-horizontal:before {
1273 content: "\e234"; }
1274
1275/* line 282, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1276.glyphicon-option-vertical:before {
1277 content: "\e235"; }
1278
1279/* line 283, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1280.glyphicon-menu-hamburger:before {
1281 content: "\e236"; }
1282
1283/* line 284, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1284.glyphicon-modal-window:before {
1285 content: "\e237"; }
1286
1287/* line 285, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1288.glyphicon-oil:before {
1289 content: "\e238"; }
1290
1291/* line 286, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1292.glyphicon-grain:before {
1293 content: "\e239"; }
1294
1295/* line 287, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1296.glyphicon-sunglasses:before {
1297 content: "\e240"; }
1298
1299/* line 288, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1300.glyphicon-text-size:before {
1301 content: "\e241"; }
1302
1303/* line 289, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1304.glyphicon-text-color:before {
1305 content: "\e242"; }
1306
1307/* line 290, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1308.glyphicon-text-background:before {
1309 content: "\e243"; }
1310
1311/* line 291, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1312.glyphicon-object-align-top:before {
1313 content: "\e244"; }
1314
1315/* line 292, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1316.glyphicon-object-align-bottom:before {
1317 content: "\e245"; }
1318
1319/* line 293, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1320.glyphicon-object-align-horizontal:before {
1321 content: "\e246"; }
1322
1323/* line 294, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1324.glyphicon-object-align-left:before {
1325 content: "\e247"; }
1326
1327/* line 295, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1328.glyphicon-object-align-vertical:before {
1329 content: "\e248"; }
1330
1331/* line 296, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1332.glyphicon-object-align-right:before {
1333 content: "\e249"; }
1334
1335/* line 297, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1336.glyphicon-triangle-right:before {
1337 content: "\e250"; }
1338
1339/* line 298, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1340.glyphicon-triangle-left:before {
1341 content: "\e251"; }
1342
1343/* line 299, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1344.glyphicon-triangle-bottom:before {
1345 content: "\e252"; }
1346
1347/* line 300, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1348.glyphicon-triangle-top:before {
1349 content: "\e253"; }
1350
1351/* line 301, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1352.glyphicon-console:before {
1353 content: "\e254"; }
1354
1355/* line 302, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1356.glyphicon-superscript:before {
1357 content: "\e255"; }
1358
1359/* line 303, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1360.glyphicon-subscript:before {
1361 content: "\e256"; }
1362
1363/* line 304, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1364.glyphicon-menu-left:before {
1365 content: "\e257"; }
1366
1367/* line 305, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1368.glyphicon-menu-right:before {
1369 content: "\e258"; }
1370
1371/* line 306, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1372.glyphicon-menu-down:before {
1373 content: "\e259"; }
1374
1375/* line 307, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_glyphicons.scss */
1376.glyphicon-menu-up:before {
1377 content: "\e260"; }
1378
1379/* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1380* {
1381 -webkit-box-sizing: border-box;
1382 -moz-box-sizing: border-box;
1383 box-sizing: border-box; }
1384
1385/* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1386*:before,
1387*:after {
1388 -webkit-box-sizing: border-box;
1389 -moz-box-sizing: border-box;
1390 box-sizing: border-box; }
1391
1392/* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1393html {
1394 font-size: 10px;
1395 -webkit-tap-highlight-color: transparent; }
1396
1397/* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1398body {
1399 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
1400 font-size: 14px;
1401 line-height: 1.42857;
1402 color: #333333;
1403 background-color: #fff; }
1404
1405/* line 36, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1406input,
1407button,
1408select,
1409textarea {
1410 font-family: inherit;
1411 font-size: inherit;
1412 line-height: inherit; }
1413
1414/* line 48, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1415a {
1416 color: #337ab7;
1417 text-decoration: none; }
1418 /* line 52, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1419 a:hover, a:focus {
1420 color: #23527c;
1421 text-decoration: underline; }
1422 /* line 58, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1423 a:focus {
1424 outline: 5px auto -webkit-focus-ring-color;
1425 outline-offset: -2px; }
1426
1427/* line 69, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1428figure {
1429 margin: 0; }
1430
1431/* line 76, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1432img {
1433 vertical-align: middle; }
1434
1435/* line 81, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1436.img-responsive {
1437 display: block;
1438 max-width: 100%;
1439 height: auto; }
1440
1441/* line 86, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1442.img-rounded {
1443 border-radius: 6px; }
1444
1445/* line 93, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1446.img-thumbnail {
1447 padding: 4px;
1448 line-height: 1.42857;
1449 background-color: #fff;
1450 border: 1px solid #ddd;
1451 border-radius: 4px;
1452 -webkit-transition: all 0.2s ease-in-out;
1453 -o-transition: all 0.2s ease-in-out;
1454 transition: all 0.2s ease-in-out;
1455 display: inline-block;
1456 max-width: 100%;
1457 height: auto; }
1458
1459/* line 106, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1460.img-circle {
1461 border-radius: 50%; }
1462
1463/* line 113, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1464hr {
1465 margin-top: 20px;
1466 margin-bottom: 20px;
1467 border: 0;
1468 border-top: 1px solid #eeeeee; }
1469
1470/* line 125, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1471.sr-only {
1472 position: absolute;
1473 width: 1px;
1474 height: 1px;
1475 padding: 0;
1476 margin: -1px;
1477 overflow: hidden;
1478 clip: rect(0, 0, 0, 0);
1479 border: 0; }
1480
1481/* line 141, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1482.sr-only-focusable:active, .sr-only-focusable:focus {
1483 position: static;
1484 width: auto;
1485 height: auto;
1486 margin: 0;
1487 overflow: visible;
1488 clip: auto; }
1489
1490/* line 159, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_scaffolding.scss */
1491[role="button"] {
1492 cursor: pointer; }
1493
1494/* line 9, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1495h1, h2, h3, h4, h5, h6,
1496.h1, .h2, .h3, .h4, .h5, .h6 {
1497 font-family: inherit;
1498 font-weight: 500;
1499 line-height: 1.1;
1500 color: inherit; }
1501 /* line 16, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1502 h1 small,
1503 h1 .small, h2 small,
1504 h2 .small, h3 small,
1505 h3 .small, h4 small,
1506 h4 .small, h5 small,
1507 h5 .small, h6 small,
1508 h6 .small,
1509 .h1 small,
1510 .h1 .small, .h2 small,
1511 .h2 .small, .h3 small,
1512 .h3 .small, .h4 small,
1513 .h4 .small, .h5 small,
1514 .h5 .small, .h6 small,
1515 .h6 .small {
1516 font-weight: 400;
1517 line-height: 1;
1518 color: #777777; }
1519
1520/* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1521h1, .h1,
1522h2, .h2,
1523h3, .h3 {
1524 margin-top: 20px;
1525 margin-bottom: 10px; }
1526 /* line 30, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1527 h1 small,
1528 h1 .small, .h1 small,
1529 .h1 .small,
1530 h2 small,
1531 h2 .small, .h2 small,
1532 .h2 .small,
1533 h3 small,
1534 h3 .small, .h3 small,
1535 .h3 .small {
1536 font-size: 65%; }
1537
1538/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1539h4, .h4,
1540h5, .h5,
1541h6, .h6 {
1542 margin-top: 10px;
1543 margin-bottom: 10px; }
1544 /* line 41, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1545 h4 small,
1546 h4 .small, .h4 small,
1547 .h4 .small,
1548 h5 small,
1549 h5 .small, .h5 small,
1550 .h5 .small,
1551 h6 small,
1552 h6 .small, .h6 small,
1553 .h6 .small {
1554 font-size: 75%; }
1555
1556/* line 47, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1557h1, .h1 {
1558 font-size: 36px; }
1559
1560/* line 48, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1561h2, .h2 {
1562 font-size: 30px; }
1563
1564/* line 49, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1565h3, .h3 {
1566 font-size: 24px; }
1567
1568/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1569h4, .h4 {
1570 font-size: 18px; }
1571
1572/* line 51, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1573h5, .h5 {
1574 font-size: 14px; }
1575
1576/* line 52, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1577h6, .h6 {
1578 font-size: 12px; }
1579
1580/* line 58, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1581p {
1582 margin: 0 0 10px; }
1583
1584/* line 62, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1585.lead {
1586 margin-bottom: 20px;
1587 font-size: 16px;
1588 font-weight: 300;
1589 line-height: 1.4; }
1590 @media (min-width: 768px) {
1591 /* line 62, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1592 .lead {
1593 font-size: 21px; } }
1594
1595/* line 78, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1596small,
1597.small {
1598 font-size: 85%; }
1599
1600/* line 83, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1601mark,
1602.mark {
1603 padding: .2em;
1604 background-color: #fcf8e3; }
1605
1606/* line 90, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1607.text-left {
1608 text-align: left; }
1609
1610/* line 91, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1611.text-right {
1612 text-align: right; }
1613
1614/* line 92, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1615.text-center {
1616 text-align: center; }
1617
1618/* line 93, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1619.text-justify {
1620 text-align: justify; }
1621
1622/* line 94, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1623.text-nowrap {
1624 white-space: nowrap; }
1625
1626/* line 97, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1627.text-lowercase {
1628 text-transform: lowercase; }
1629
1630/* line 98, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1631.text-uppercase, .initialism {
1632 text-transform: uppercase; }
1633
1634/* line 99, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1635.text-capitalize {
1636 text-transform: capitalize; }
1637
1638/* line 102, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1639.text-muted {
1640 color: #777777; }
1641
1642/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss */
1643.text-primary {
1644 color: #337ab7; }
1645
1646/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss */
1647a.text-primary:hover,
1648a.text-primary:focus {
1649 color: #286090; }
1650
1651/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss */
1652.text-success {
1653 color: #3c763d; }
1654
1655/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss */
1656a.text-success:hover,
1657a.text-success:focus {
1658 color: #2b542c; }
1659
1660/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss */
1661.text-info {
1662 color: #31708f; }
1663
1664/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss */
1665a.text-info:hover,
1666a.text-info:focus {
1667 color: #245269; }
1668
1669/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss */
1670.text-warning {
1671 color: #8a6d3b; }
1672
1673/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss */
1674a.text-warning:hover,
1675a.text-warning:focus {
1676 color: #66512c; }
1677
1678/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss */
1679.text-danger {
1680 color: #a94442; }
1681
1682/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss */
1683a.text-danger:hover,
1684a.text-danger:focus {
1685 color: #843534; }
1686
1687/* line 119, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1688.bg-primary {
1689 color: #fff; }
1690
1691/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_background-variant.scss */
1692.bg-primary {
1693 background-color: #337ab7; }
1694
1695/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_background-variant.scss */
1696a.bg-primary:hover,
1697a.bg-primary:focus {
1698 background-color: #286090; }
1699
1700/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_background-variant.scss */
1701.bg-success {
1702 background-color: #dff0d8; }
1703
1704/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_background-variant.scss */
1705a.bg-success:hover,
1706a.bg-success:focus {
1707 background-color: #c1e2b3; }
1708
1709/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_background-variant.scss */
1710.bg-info {
1711 background-color: #d9edf7; }
1712
1713/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_background-variant.scss */
1714a.bg-info:hover,
1715a.bg-info:focus {
1716 background-color: #afd9ee; }
1717
1718/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_background-variant.scss */
1719.bg-warning {
1720 background-color: #fcf8e3; }
1721
1722/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_background-variant.scss */
1723a.bg-warning:hover,
1724a.bg-warning:focus {
1725 background-color: #f7ecb5; }
1726
1727/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_background-variant.scss */
1728.bg-danger {
1729 background-color: #f2dede; }
1730
1731/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_background-variant.scss */
1732a.bg-danger:hover,
1733a.bg-danger:focus {
1734 background-color: #e4b9b9; }
1735
1736/* line 138, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1737.page-header {
1738 padding-bottom: 9px;
1739 margin: 40px 0 20px;
1740 border-bottom: 1px solid #eeeeee; }
1741
1742/* line 149, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1743ul,
1744ol {
1745 margin-top: 0;
1746 margin-bottom: 10px; }
1747 /* line 153, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1748 ul ul,
1749 ul ol,
1750 ol ul,
1751 ol ol {
1752 margin-bottom: 0; }
1753
1754/* line 167, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1755.list-unstyled {
1756 padding-left: 0;
1757 list-style: none; }
1758
1759/* line 173, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1760.list-inline {
1761 padding-left: 0;
1762 list-style: none;
1763 margin-left: -5px; }
1764 /* line 177, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1765 .list-inline > li {
1766 display: inline-block;
1767 padding-right: 5px;
1768 padding-left: 5px; }
1769
1770/* line 185, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1771dl {
1772 margin-top: 0;
1773 margin-bottom: 20px; }
1774
1775/* line 189, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1776dt,
1777dd {
1778 line-height: 1.42857; }
1779
1780/* line 193, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1781dt {
1782 font-weight: 700; }
1783
1784/* line 196, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1785dd {
1786 margin-left: 0; }
1787
1788/* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
1789.dl-horizontal dd:before, .dl-horizontal dd:after {
1790 display: table;
1791 content: " "; }
1792/* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
1793.dl-horizontal dd:after {
1794 clear: both; }
1795@media (min-width: 768px) {
1796 /* line 211, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1797 .dl-horizontal dt {
1798 float: left;
1799 width: 160px;
1800 clear: left;
1801 text-align: right;
1802 overflow: hidden;
1803 text-overflow: ellipsis;
1804 white-space: nowrap; }
1805 /* line 218, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1806 .dl-horizontal dd {
1807 margin-left: 180px; } }
1808
1809/* line 230, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1810abbr[title],
1811abbr[data-original-title] {
1812 cursor: help; }
1813
1814/* line 235, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1815.initialism {
1816 font-size: 90%; }
1817
1818/* line 241, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1819blockquote {
1820 padding: 10px 20px;
1821 margin: 0 0 20px;
1822 font-size: 17.5px;
1823 border-left: 5px solid #eeeeee; }
1824 /* line 250, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1825 blockquote p:last-child,
1826 blockquote ul:last-child,
1827 blockquote ol:last-child {
1828 margin-bottom: 0; }
1829 /* line 257, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1830 blockquote footer,
1831 blockquote small,
1832 blockquote .small {
1833 display: block;
1834 font-size: 80%;
1835 line-height: 1.42857;
1836 color: #777777; }
1837 /* line 265, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1838 blockquote footer:before,
1839 blockquote small:before,
1840 blockquote .small:before {
1841 content: "\2014 \00A0"; }
1842
1843/* line 274, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1844.blockquote-reverse,
1845blockquote.pull-right {
1846 padding-right: 15px;
1847 padding-left: 0;
1848 text-align: right;
1849 border-right: 5px solid #eeeeee;
1850 border-left: 0; }
1851 /* line 286, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1852 .blockquote-reverse footer:before,
1853 .blockquote-reverse small:before,
1854 .blockquote-reverse .small:before,
1855 blockquote.pull-right footer:before,
1856 blockquote.pull-right small:before,
1857 blockquote.pull-right .small:before {
1858 content: ""; }
1859 /* line 287, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1860 .blockquote-reverse footer:after,
1861 .blockquote-reverse small:after,
1862 .blockquote-reverse .small:after,
1863 blockquote.pull-right footer:after,
1864 blockquote.pull-right small:after,
1865 blockquote.pull-right .small:after {
1866 content: "\00A0 \2014"; }
1867
1868/* line 294, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_type.scss */
1869address {
1870 margin-bottom: 20px;
1871 font-style: normal;
1872 line-height: 1.42857; }
1873
1874/* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_code.scss */
1875code,
1876kbd,
1877pre,
1878samp {
1879 font-family: Menlo, Monaco, Consolas, "Courier New", monospace; }
1880
1881/* line 15, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_code.scss */
1882code {
1883 padding: 2px 4px;
1884 font-size: 90%;
1885 color: #c7254e;
1886 background-color: #f9f2f4;
1887 border-radius: 4px; }
1888
1889/* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_code.scss */
1890kbd {
1891 padding: 2px 4px;
1892 font-size: 90%;
1893 color: #fff;
1894 background-color: #333;
1895 border-radius: 3px;
1896 box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); }
1897 /* line 32, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_code.scss */
1898 kbd kbd {
1899 padding: 0;
1900 font-size: 100%;
1901 font-weight: 700;
1902 box-shadow: none; }
1903
1904/* line 41, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_code.scss */
1905pre {
1906 display: block;
1907 padding: 9.5px;
1908 margin: 0 0 10px;
1909 font-size: 13px;
1910 line-height: 1.42857;
1911 color: #333333;
1912 word-break: break-all;
1913 word-wrap: break-word;
1914 background-color: #f5f5f5;
1915 border: 1px solid #ccc;
1916 border-radius: 4px; }
1917 /* line 55, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_code.scss */
1918 pre code {
1919 padding: 0;
1920 font-size: inherit;
1921 color: inherit;
1922 white-space: pre-wrap;
1923 background-color: transparent;
1924 border-radius: 0; }
1925
1926/* line 66, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_code.scss */
1927.pre-scrollable {
1928 max-height: 340px;
1929 overflow-y: scroll; }
1930
1931/* line 10, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_grid.scss */
1932.container {
1933 padding-right: 15px;
1934 padding-left: 15px;
1935 margin-right: auto;
1936 margin-left: auto; }
1937 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
1938 .container:before, .container:after {
1939 display: table;
1940 content: " "; }
1941 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
1942 .container:after {
1943 clear: both; }
1944 @media (min-width: 768px) {
1945 /* line 10, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_grid.scss */
1946 .container {
1947 width: 750px; } }
1948 @media (min-width: 992px) {
1949 /* line 10, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_grid.scss */
1950 .container {
1951 width: 970px; } }
1952 @media (min-width: 1200px) {
1953 /* line 10, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_grid.scss */
1954 .container {
1955 width: 1170px; } }
1956
1957/* line 30, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_grid.scss */
1958.container-fluid {
1959 padding-right: 15px;
1960 padding-left: 15px;
1961 margin-right: auto;
1962 margin-left: auto; }
1963 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
1964 .container-fluid:before, .container-fluid:after {
1965 display: table;
1966 content: " "; }
1967 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
1968 .container-fluid:after {
1969 clear: both; }
1970
1971/* line 39, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_grid.scss */
1972.row {
1973 margin-right: -15px;
1974 margin-left: -15px; }
1975 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
1976 .row:before, .row:after {
1977 display: table;
1978 content: " "; }
1979 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
1980 .row:after {
1981 clear: both; }
1982
1983/* line 43, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_grid.scss */
1984.row-no-gutters {
1985 margin-right: 0;
1986 margin-left: 0; }
1987 /* line 47, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_grid.scss */
1988 .row-no-gutters [class*="col-"] {
1989 padding-right: 0;
1990 padding-left: 0; }
1991
1992/* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
1993.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
1994 position: relative;
1995 min-height: 1px;
1996 padding-right: 15px;
1997 padding-left: 15px; }
1998
1999/* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2000.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 {
2001 float: left; }
2002
2003/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2004.col-xs-1 {
2005 width: 8.33333%; }
2006
2007/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2008.col-xs-2 {
2009 width: 16.66667%; }
2010
2011/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2012.col-xs-3 {
2013 width: 25%; }
2014
2015/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2016.col-xs-4 {
2017 width: 33.33333%; }
2018
2019/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2020.col-xs-5 {
2021 width: 41.66667%; }
2022
2023/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2024.col-xs-6 {
2025 width: 50%; }
2026
2027/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2028.col-xs-7 {
2029 width: 58.33333%; }
2030
2031/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2032.col-xs-8 {
2033 width: 66.66667%; }
2034
2035/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2036.col-xs-9 {
2037 width: 75%; }
2038
2039/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2040.col-xs-10 {
2041 width: 83.33333%; }
2042
2043/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2044.col-xs-11 {
2045 width: 91.66667%; }
2046
2047/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2048.col-xs-12 {
2049 width: 100%; }
2050
2051/* line 55, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2052.col-xs-pull-0 {
2053 right: auto; }
2054
2055/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2056.col-xs-pull-1 {
2057 right: 8.33333%; }
2058
2059/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2060.col-xs-pull-2 {
2061 right: 16.66667%; }
2062
2063/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2064.col-xs-pull-3 {
2065 right: 25%; }
2066
2067/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2068.col-xs-pull-4 {
2069 right: 33.33333%; }
2070
2071/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2072.col-xs-pull-5 {
2073 right: 41.66667%; }
2074
2075/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2076.col-xs-pull-6 {
2077 right: 50%; }
2078
2079/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2080.col-xs-pull-7 {
2081 right: 58.33333%; }
2082
2083/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2084.col-xs-pull-8 {
2085 right: 66.66667%; }
2086
2087/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2088.col-xs-pull-9 {
2089 right: 75%; }
2090
2091/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2092.col-xs-pull-10 {
2093 right: 83.33333%; }
2094
2095/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2096.col-xs-pull-11 {
2097 right: 91.66667%; }
2098
2099/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2100.col-xs-pull-12 {
2101 right: 100%; }
2102
2103/* line 45, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2104.col-xs-push-0 {
2105 left: auto; }
2106
2107/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2108.col-xs-push-1 {
2109 left: 8.33333%; }
2110
2111/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2112.col-xs-push-2 {
2113 left: 16.66667%; }
2114
2115/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2116.col-xs-push-3 {
2117 left: 25%; }
2118
2119/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2120.col-xs-push-4 {
2121 left: 33.33333%; }
2122
2123/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2124.col-xs-push-5 {
2125 left: 41.66667%; }
2126
2127/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2128.col-xs-push-6 {
2129 left: 50%; }
2130
2131/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2132.col-xs-push-7 {
2133 left: 58.33333%; }
2134
2135/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2136.col-xs-push-8 {
2137 left: 66.66667%; }
2138
2139/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2140.col-xs-push-9 {
2141 left: 75%; }
2142
2143/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2144.col-xs-push-10 {
2145 left: 83.33333%; }
2146
2147/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2148.col-xs-push-11 {
2149 left: 91.66667%; }
2150
2151/* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2152.col-xs-push-12 {
2153 left: 100%; }
2154
2155/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2156.col-xs-offset-0 {
2157 margin-left: 0%; }
2158
2159/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2160.col-xs-offset-1 {
2161 margin-left: 8.33333%; }
2162
2163/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2164.col-xs-offset-2 {
2165 margin-left: 16.66667%; }
2166
2167/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2168.col-xs-offset-3 {
2169 margin-left: 25%; }
2170
2171/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2172.col-xs-offset-4 {
2173 margin-left: 33.33333%; }
2174
2175/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2176.col-xs-offset-5 {
2177 margin-left: 41.66667%; }
2178
2179/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2180.col-xs-offset-6 {
2181 margin-left: 50%; }
2182
2183/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2184.col-xs-offset-7 {
2185 margin-left: 58.33333%; }
2186
2187/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2188.col-xs-offset-8 {
2189 margin-left: 66.66667%; }
2190
2191/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2192.col-xs-offset-9 {
2193 margin-left: 75%; }
2194
2195/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2196.col-xs-offset-10 {
2197 margin-left: 83.33333%; }
2198
2199/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2200.col-xs-offset-11 {
2201 margin-left: 91.66667%; }
2202
2203/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2204.col-xs-offset-12 {
2205 margin-left: 100%; }
2206
2207@media (min-width: 768px) {
2208 /* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2209 .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 {
2210 float: left; }
2211
2212 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2213 .col-sm-1 {
2214 width: 8.33333%; }
2215
2216 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2217 .col-sm-2 {
2218 width: 16.66667%; }
2219
2220 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2221 .col-sm-3 {
2222 width: 25%; }
2223
2224 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2225 .col-sm-4 {
2226 width: 33.33333%; }
2227
2228 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2229 .col-sm-5 {
2230 width: 41.66667%; }
2231
2232 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2233 .col-sm-6 {
2234 width: 50%; }
2235
2236 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2237 .col-sm-7 {
2238 width: 58.33333%; }
2239
2240 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2241 .col-sm-8 {
2242 width: 66.66667%; }
2243
2244 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2245 .col-sm-9 {
2246 width: 75%; }
2247
2248 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2249 .col-sm-10 {
2250 width: 83.33333%; }
2251
2252 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2253 .col-sm-11 {
2254 width: 91.66667%; }
2255
2256 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2257 .col-sm-12 {
2258 width: 100%; }
2259
2260 /* line 55, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2261 .col-sm-pull-0 {
2262 right: auto; }
2263
2264 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2265 .col-sm-pull-1 {
2266 right: 8.33333%; }
2267
2268 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2269 .col-sm-pull-2 {
2270 right: 16.66667%; }
2271
2272 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2273 .col-sm-pull-3 {
2274 right: 25%; }
2275
2276 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2277 .col-sm-pull-4 {
2278 right: 33.33333%; }
2279
2280 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2281 .col-sm-pull-5 {
2282 right: 41.66667%; }
2283
2284 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2285 .col-sm-pull-6 {
2286 right: 50%; }
2287
2288 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2289 .col-sm-pull-7 {
2290 right: 58.33333%; }
2291
2292 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2293 .col-sm-pull-8 {
2294 right: 66.66667%; }
2295
2296 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2297 .col-sm-pull-9 {
2298 right: 75%; }
2299
2300 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2301 .col-sm-pull-10 {
2302 right: 83.33333%; }
2303
2304 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2305 .col-sm-pull-11 {
2306 right: 91.66667%; }
2307
2308 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2309 .col-sm-pull-12 {
2310 right: 100%; }
2311
2312 /* line 45, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2313 .col-sm-push-0 {
2314 left: auto; }
2315
2316 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2317 .col-sm-push-1 {
2318 left: 8.33333%; }
2319
2320 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2321 .col-sm-push-2 {
2322 left: 16.66667%; }
2323
2324 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2325 .col-sm-push-3 {
2326 left: 25%; }
2327
2328 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2329 .col-sm-push-4 {
2330 left: 33.33333%; }
2331
2332 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2333 .col-sm-push-5 {
2334 left: 41.66667%; }
2335
2336 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2337 .col-sm-push-6 {
2338 left: 50%; }
2339
2340 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2341 .col-sm-push-7 {
2342 left: 58.33333%; }
2343
2344 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2345 .col-sm-push-8 {
2346 left: 66.66667%; }
2347
2348 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2349 .col-sm-push-9 {
2350 left: 75%; }
2351
2352 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2353 .col-sm-push-10 {
2354 left: 83.33333%; }
2355
2356 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2357 .col-sm-push-11 {
2358 left: 91.66667%; }
2359
2360 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2361 .col-sm-push-12 {
2362 left: 100%; }
2363
2364 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2365 .col-sm-offset-0 {
2366 margin-left: 0%; }
2367
2368 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2369 .col-sm-offset-1 {
2370 margin-left: 8.33333%; }
2371
2372 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2373 .col-sm-offset-2 {
2374 margin-left: 16.66667%; }
2375
2376 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2377 .col-sm-offset-3 {
2378 margin-left: 25%; }
2379
2380 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2381 .col-sm-offset-4 {
2382 margin-left: 33.33333%; }
2383
2384 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2385 .col-sm-offset-5 {
2386 margin-left: 41.66667%; }
2387
2388 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2389 .col-sm-offset-6 {
2390 margin-left: 50%; }
2391
2392 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2393 .col-sm-offset-7 {
2394 margin-left: 58.33333%; }
2395
2396 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2397 .col-sm-offset-8 {
2398 margin-left: 66.66667%; }
2399
2400 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2401 .col-sm-offset-9 {
2402 margin-left: 75%; }
2403
2404 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2405 .col-sm-offset-10 {
2406 margin-left: 83.33333%; }
2407
2408 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2409 .col-sm-offset-11 {
2410 margin-left: 91.66667%; }
2411
2412 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2413 .col-sm-offset-12 {
2414 margin-left: 100%; } }
2415@media (min-width: 992px) {
2416 /* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2417 .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 {
2418 float: left; }
2419
2420 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2421 .col-md-1 {
2422 width: 8.33333%; }
2423
2424 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2425 .col-md-2 {
2426 width: 16.66667%; }
2427
2428 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2429 .col-md-3 {
2430 width: 25%; }
2431
2432 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2433 .col-md-4 {
2434 width: 33.33333%; }
2435
2436 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2437 .col-md-5 {
2438 width: 41.66667%; }
2439
2440 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2441 .col-md-6 {
2442 width: 50%; }
2443
2444 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2445 .col-md-7 {
2446 width: 58.33333%; }
2447
2448 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2449 .col-md-8 {
2450 width: 66.66667%; }
2451
2452 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2453 .col-md-9 {
2454 width: 75%; }
2455
2456 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2457 .col-md-10 {
2458 width: 83.33333%; }
2459
2460 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2461 .col-md-11 {
2462 width: 91.66667%; }
2463
2464 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2465 .col-md-12 {
2466 width: 100%; }
2467
2468 /* line 55, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2469 .col-md-pull-0 {
2470 right: auto; }
2471
2472 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2473 .col-md-pull-1 {
2474 right: 8.33333%; }
2475
2476 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2477 .col-md-pull-2 {
2478 right: 16.66667%; }
2479
2480 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2481 .col-md-pull-3 {
2482 right: 25%; }
2483
2484 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2485 .col-md-pull-4 {
2486 right: 33.33333%; }
2487
2488 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2489 .col-md-pull-5 {
2490 right: 41.66667%; }
2491
2492 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2493 .col-md-pull-6 {
2494 right: 50%; }
2495
2496 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2497 .col-md-pull-7 {
2498 right: 58.33333%; }
2499
2500 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2501 .col-md-pull-8 {
2502 right: 66.66667%; }
2503
2504 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2505 .col-md-pull-9 {
2506 right: 75%; }
2507
2508 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2509 .col-md-pull-10 {
2510 right: 83.33333%; }
2511
2512 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2513 .col-md-pull-11 {
2514 right: 91.66667%; }
2515
2516 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2517 .col-md-pull-12 {
2518 right: 100%; }
2519
2520 /* line 45, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2521 .col-md-push-0 {
2522 left: auto; }
2523
2524 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2525 .col-md-push-1 {
2526 left: 8.33333%; }
2527
2528 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2529 .col-md-push-2 {
2530 left: 16.66667%; }
2531
2532 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2533 .col-md-push-3 {
2534 left: 25%; }
2535
2536 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2537 .col-md-push-4 {
2538 left: 33.33333%; }
2539
2540 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2541 .col-md-push-5 {
2542 left: 41.66667%; }
2543
2544 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2545 .col-md-push-6 {
2546 left: 50%; }
2547
2548 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2549 .col-md-push-7 {
2550 left: 58.33333%; }
2551
2552 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2553 .col-md-push-8 {
2554 left: 66.66667%; }
2555
2556 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2557 .col-md-push-9 {
2558 left: 75%; }
2559
2560 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2561 .col-md-push-10 {
2562 left: 83.33333%; }
2563
2564 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2565 .col-md-push-11 {
2566 left: 91.66667%; }
2567
2568 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2569 .col-md-push-12 {
2570 left: 100%; }
2571
2572 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2573 .col-md-offset-0 {
2574 margin-left: 0%; }
2575
2576 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2577 .col-md-offset-1 {
2578 margin-left: 8.33333%; }
2579
2580 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2581 .col-md-offset-2 {
2582 margin-left: 16.66667%; }
2583
2584 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2585 .col-md-offset-3 {
2586 margin-left: 25%; }
2587
2588 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2589 .col-md-offset-4 {
2590 margin-left: 33.33333%; }
2591
2592 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2593 .col-md-offset-5 {
2594 margin-left: 41.66667%; }
2595
2596 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2597 .col-md-offset-6 {
2598 margin-left: 50%; }
2599
2600 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2601 .col-md-offset-7 {
2602 margin-left: 58.33333%; }
2603
2604 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2605 .col-md-offset-8 {
2606 margin-left: 66.66667%; }
2607
2608 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2609 .col-md-offset-9 {
2610 margin-left: 75%; }
2611
2612 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2613 .col-md-offset-10 {
2614 margin-left: 83.33333%; }
2615
2616 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2617 .col-md-offset-11 {
2618 margin-left: 91.66667%; }
2619
2620 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2621 .col-md-offset-12 {
2622 margin-left: 100%; } }
2623@media (min-width: 1200px) {
2624 /* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2625 .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 {
2626 float: left; }
2627
2628 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2629 .col-lg-1 {
2630 width: 8.33333%; }
2631
2632 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2633 .col-lg-2 {
2634 width: 16.66667%; }
2635
2636 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2637 .col-lg-3 {
2638 width: 25%; }
2639
2640 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2641 .col-lg-4 {
2642 width: 33.33333%; }
2643
2644 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2645 .col-lg-5 {
2646 width: 41.66667%; }
2647
2648 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2649 .col-lg-6 {
2650 width: 50%; }
2651
2652 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2653 .col-lg-7 {
2654 width: 58.33333%; }
2655
2656 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2657 .col-lg-8 {
2658 width: 66.66667%; }
2659
2660 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2661 .col-lg-9 {
2662 width: 75%; }
2663
2664 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2665 .col-lg-10 {
2666 width: 83.33333%; }
2667
2668 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2669 .col-lg-11 {
2670 width: 91.66667%; }
2671
2672 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2673 .col-lg-12 {
2674 width: 100%; }
2675
2676 /* line 55, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2677 .col-lg-pull-0 {
2678 right: auto; }
2679
2680 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2681 .col-lg-pull-1 {
2682 right: 8.33333%; }
2683
2684 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2685 .col-lg-pull-2 {
2686 right: 16.66667%; }
2687
2688 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2689 .col-lg-pull-3 {
2690 right: 25%; }
2691
2692 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2693 .col-lg-pull-4 {
2694 right: 33.33333%; }
2695
2696 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2697 .col-lg-pull-5 {
2698 right: 41.66667%; }
2699
2700 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2701 .col-lg-pull-6 {
2702 right: 50%; }
2703
2704 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2705 .col-lg-pull-7 {
2706 right: 58.33333%; }
2707
2708 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2709 .col-lg-pull-8 {
2710 right: 66.66667%; }
2711
2712 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2713 .col-lg-pull-9 {
2714 right: 75%; }
2715
2716 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2717 .col-lg-pull-10 {
2718 right: 83.33333%; }
2719
2720 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2721 .col-lg-pull-11 {
2722 right: 91.66667%; }
2723
2724 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2725 .col-lg-pull-12 {
2726 right: 100%; }
2727
2728 /* line 45, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2729 .col-lg-push-0 {
2730 left: auto; }
2731
2732 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2733 .col-lg-push-1 {
2734 left: 8.33333%; }
2735
2736 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2737 .col-lg-push-2 {
2738 left: 16.66667%; }
2739
2740 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2741 .col-lg-push-3 {
2742 left: 25%; }
2743
2744 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2745 .col-lg-push-4 {
2746 left: 33.33333%; }
2747
2748 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2749 .col-lg-push-5 {
2750 left: 41.66667%; }
2751
2752 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2753 .col-lg-push-6 {
2754 left: 50%; }
2755
2756 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2757 .col-lg-push-7 {
2758 left: 58.33333%; }
2759
2760 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2761 .col-lg-push-8 {
2762 left: 66.66667%; }
2763
2764 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2765 .col-lg-push-9 {
2766 left: 75%; }
2767
2768 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2769 .col-lg-push-10 {
2770 left: 83.33333%; }
2771
2772 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2773 .col-lg-push-11 {
2774 left: 91.66667%; }
2775
2776 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2777 .col-lg-push-12 {
2778 left: 100%; }
2779
2780 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2781 .col-lg-offset-0 {
2782 margin-left: 0%; }
2783
2784 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2785 .col-lg-offset-1 {
2786 margin-left: 8.33333%; }
2787
2788 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2789 .col-lg-offset-2 {
2790 margin-left: 16.66667%; }
2791
2792 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2793 .col-lg-offset-3 {
2794 margin-left: 25%; }
2795
2796 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2797 .col-lg-offset-4 {
2798 margin-left: 33.33333%; }
2799
2800 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2801 .col-lg-offset-5 {
2802 margin-left: 41.66667%; }
2803
2804 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2805 .col-lg-offset-6 {
2806 margin-left: 50%; }
2807
2808 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2809 .col-lg-offset-7 {
2810 margin-left: 58.33333%; }
2811
2812 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2813 .col-lg-offset-8 {
2814 margin-left: 66.66667%; }
2815
2816 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2817 .col-lg-offset-9 {
2818 margin-left: 75%; }
2819
2820 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2821 .col-lg-offset-10 {
2822 margin-left: 83.33333%; }
2823
2824 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2825 .col-lg-offset-11 {
2826 margin-left: 91.66667%; }
2827
2828 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_grid-framework.scss */
2829 .col-lg-offset-12 {
2830 margin-left: 100%; } }
2831/* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2832table {
2833 background-color: transparent; }
2834 /* line 13, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2835 table col[class*="col-"] {
2836 position: static;
2837 display: table-column;
2838 float: none; }
2839 /* line 21, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2840 table td[class*="col-"],
2841 table th[class*="col-"] {
2842 position: static;
2843 display: table-cell;
2844 float: none; }
2845
2846/* line 29, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2847caption {
2848 padding-top: 8px;
2849 padding-bottom: 8px;
2850 color: #777777;
2851 text-align: left; }
2852
2853/* line 36, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2854th {
2855 text-align: left; }
2856
2857/* line 43, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2858.table, #inner table {
2859 width: 100%;
2860 max-width: 100%;
2861 margin-bottom: 20px; }
2862 /* line 52, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2863 .table > thead > tr > th, #inner table > thead > tr > th,
2864 .table > thead > tr > td,
2865 #inner table > thead > tr > td,
2866 .table > tbody > tr > th,
2867 #inner table > tbody > tr > th,
2868 .table > tbody > tr > td,
2869 #inner table > tbody > tr > td,
2870 .table > tfoot > tr > th,
2871 #inner table > tfoot > tr > th,
2872 .table > tfoot > tr > td,
2873 #inner table > tfoot > tr > td {
2874 padding: 8px;
2875 line-height: 1.42857;
2876 vertical-align: top;
2877 border-top: 1px solid #ddd; }
2878 /* line 62, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2879 .table > thead > tr > th, #inner table > thead > tr > th {
2880 vertical-align: bottom;
2881 border-bottom: 2px solid #ddd; }
2882 /* line 71, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2883 .table > caption + thead > tr:first-child > th, #inner table > caption + thead > tr:first-child > th,
2884 .table > caption + thead > tr:first-child > td,
2885 #inner table > caption + thead > tr:first-child > td,
2886 .table > colgroup + thead > tr:first-child > th,
2887 #inner table > colgroup + thead > tr:first-child > th,
2888 .table > colgroup + thead > tr:first-child > td,
2889 #inner table > colgroup + thead > tr:first-child > td,
2890 .table > thead:first-child > tr:first-child > th,
2891 #inner table > thead:first-child > tr:first-child > th,
2892 .table > thead:first-child > tr:first-child > td,
2893 #inner table > thead:first-child > tr:first-child > td {
2894 border-top: 0; }
2895 /* line 78, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2896 .table > tbody + tbody, #inner table > tbody + tbody {
2897 border-top: 2px solid #ddd; }
2898 /* line 83, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2899 .table .table, #inner table .table, .table #inner table, #inner .table table, #inner table table {
2900 background-color: #fff; }
2901
2902/* line 96, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2903.table-condensed > thead > tr > th,
2904.table-condensed > thead > tr > td,
2905.table-condensed > tbody > tr > th,
2906.table-condensed > tbody > tr > td,
2907.table-condensed > tfoot > tr > th,
2908.table-condensed > tfoot > tr > td {
2909 padding: 5px; }
2910
2911/* line 109, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2912.table-bordered {
2913 border: 1px solid #ddd; }
2914 /* line 115, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2915 .table-bordered > thead > tr > th,
2916 .table-bordered > thead > tr > td,
2917 .table-bordered > tbody > tr > th,
2918 .table-bordered > tbody > tr > td,
2919 .table-bordered > tfoot > tr > th,
2920 .table-bordered > tfoot > tr > td {
2921 border: 1px solid #ddd; }
2922 /* line 122, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2923 .table-bordered > thead > tr > th,
2924 .table-bordered > thead > tr > td {
2925 border-bottom-width: 2px; }
2926
2927/* line 135, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2928.table-striped > tbody > tr:nth-of-type(odd), #inner table > tbody > tr:nth-of-type(odd) {
2929 background-color: #f9f9f9; }
2930
2931/* line 146, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
2932.table-hover > tbody > tr:hover {
2933 background-color: #f5f5f5; }
2934
2935/* line 9, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_table-row.scss */
2936.table > thead > tr > td.active, #inner table > thead > tr > td.active,
2937.table > thead > tr > th.active,
2938#inner table > thead > tr > th.active, .table > thead > tr.active > td, #inner table > thead > tr.active > td, .table > thead > tr.active > th, #inner table > thead > tr.active > th,
2939.table > tbody > tr > td.active,
2940#inner table > tbody > tr > td.active,
2941.table > tbody > tr > th.active,
2942#inner table > tbody > tr > th.active,
2943.table > tbody > tr.active > td,
2944#inner table > tbody > tr.active > td,
2945.table > tbody > tr.active > th,
2946#inner table > tbody > tr.active > th,
2947.table > tfoot > tr > td.active,
2948#inner table > tfoot > tr > td.active,
2949.table > tfoot > tr > th.active,
2950#inner table > tfoot > tr > th.active,
2951.table > tfoot > tr.active > td,
2952#inner table > tfoot > tr.active > td,
2953.table > tfoot > tr.active > th,
2954#inner table > tfoot > tr.active > th {
2955 background-color: #f5f5f5; }
2956
2957/* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_table-row.scss */
2958.table-hover > tbody > tr > td.active:hover,
2959.table-hover > tbody > tr > th.active:hover, .table-hover > tbody > tr.active:hover > td, .table-hover > tbody > tr:hover > .active, .table-hover > tbody > tr.active:hover > th {
2960 background-color: #e8e8e8; }
2961
2962/* line 9, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_table-row.scss */
2963.table > thead > tr > td.success, #inner table > thead > tr > td.success,
2964.table > thead > tr > th.success,
2965#inner table > thead > tr > th.success, .table > thead > tr.success > td, #inner table > thead > tr.success > td, .table > thead > tr.success > th, #inner table > thead > tr.success > th,
2966.table > tbody > tr > td.success,
2967#inner table > tbody > tr > td.success,
2968.table > tbody > tr > th.success,
2969#inner table > tbody > tr > th.success,
2970.table > tbody > tr.success > td,
2971#inner table > tbody > tr.success > td,
2972.table > tbody > tr.success > th,
2973#inner table > tbody > tr.success > th,
2974.table > tfoot > tr > td.success,
2975#inner table > tfoot > tr > td.success,
2976.table > tfoot > tr > th.success,
2977#inner table > tfoot > tr > th.success,
2978.table > tfoot > tr.success > td,
2979#inner table > tfoot > tr.success > td,
2980.table > tfoot > tr.success > th,
2981#inner table > tfoot > tr.success > th {
2982 background-color: #dff0d8; }
2983
2984/* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_table-row.scss */
2985.table-hover > tbody > tr > td.success:hover,
2986.table-hover > tbody > tr > th.success:hover, .table-hover > tbody > tr.success:hover > td, .table-hover > tbody > tr:hover > .success, .table-hover > tbody > tr.success:hover > th {
2987 background-color: #d0e9c6; }
2988
2989/* line 9, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_table-row.scss */
2990.table > thead > tr > td.info, #inner table > thead > tr > td.info,
2991.table > thead > tr > th.info,
2992#inner table > thead > tr > th.info, .table > thead > tr.info > td, #inner table > thead > tr.info > td, .table > thead > tr.info > th, #inner table > thead > tr.info > th,
2993.table > tbody > tr > td.info,
2994#inner table > tbody > tr > td.info,
2995.table > tbody > tr > th.info,
2996#inner table > tbody > tr > th.info,
2997.table > tbody > tr.info > td,
2998#inner table > tbody > tr.info > td,
2999.table > tbody > tr.info > th,
3000#inner table > tbody > tr.info > th,
3001.table > tfoot > tr > td.info,
3002#inner table > tfoot > tr > td.info,
3003.table > tfoot > tr > th.info,
3004#inner table > tfoot > tr > th.info,
3005.table > tfoot > tr.info > td,
3006#inner table > tfoot > tr.info > td,
3007.table > tfoot > tr.info > th,
3008#inner table > tfoot > tr.info > th {
3009 background-color: #d9edf7; }
3010
3011/* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_table-row.scss */
3012.table-hover > tbody > tr > td.info:hover,
3013.table-hover > tbody > tr > th.info:hover, .table-hover > tbody > tr.info:hover > td, .table-hover > tbody > tr:hover > .info, .table-hover > tbody > tr.info:hover > th {
3014 background-color: #c4e3f3; }
3015
3016/* line 9, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_table-row.scss */
3017.table > thead > tr > td.warning, #inner table > thead > tr > td.warning,
3018.table > thead > tr > th.warning,
3019#inner table > thead > tr > th.warning, .table > thead > tr.warning > td, #inner table > thead > tr.warning > td, .table > thead > tr.warning > th, #inner table > thead > tr.warning > th,
3020.table > tbody > tr > td.warning,
3021#inner table > tbody > tr > td.warning,
3022.table > tbody > tr > th.warning,
3023#inner table > tbody > tr > th.warning,
3024.table > tbody > tr.warning > td,
3025#inner table > tbody > tr.warning > td,
3026.table > tbody > tr.warning > th,
3027#inner table > tbody > tr.warning > th,
3028.table > tfoot > tr > td.warning,
3029#inner table > tfoot > tr > td.warning,
3030.table > tfoot > tr > th.warning,
3031#inner table > tfoot > tr > th.warning,
3032.table > tfoot > tr.warning > td,
3033#inner table > tfoot > tr.warning > td,
3034.table > tfoot > tr.warning > th,
3035#inner table > tfoot > tr.warning > th {
3036 background-color: #fcf8e3; }
3037
3038/* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_table-row.scss */
3039.table-hover > tbody > tr > td.warning:hover,
3040.table-hover > tbody > tr > th.warning:hover, .table-hover > tbody > tr.warning:hover > td, .table-hover > tbody > tr:hover > .warning, .table-hover > tbody > tr.warning:hover > th {
3041 background-color: #faf2cc; }
3042
3043/* line 9, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_table-row.scss */
3044.table > thead > tr > td.danger, #inner table > thead > tr > td.danger,
3045.table > thead > tr > th.danger,
3046#inner table > thead > tr > th.danger, .table > thead > tr.danger > td, #inner table > thead > tr.danger > td, .table > thead > tr.danger > th, #inner table > thead > tr.danger > th,
3047.table > tbody > tr > td.danger,
3048#inner table > tbody > tr > td.danger,
3049.table > tbody > tr > th.danger,
3050#inner table > tbody > tr > th.danger,
3051.table > tbody > tr.danger > td,
3052#inner table > tbody > tr.danger > td,
3053.table > tbody > tr.danger > th,
3054#inner table > tbody > tr.danger > th,
3055.table > tfoot > tr > td.danger,
3056#inner table > tfoot > tr > td.danger,
3057.table > tfoot > tr > th.danger,
3058#inner table > tfoot > tr > th.danger,
3059.table > tfoot > tr.danger > td,
3060#inner table > tfoot > tr.danger > td,
3061.table > tfoot > tr.danger > th,
3062#inner table > tfoot > tr.danger > th {
3063 background-color: #f2dede; }
3064
3065/* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_table-row.scss */
3066.table-hover > tbody > tr > td.danger:hover,
3067.table-hover > tbody > tr > th.danger:hover, .table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr:hover > .danger, .table-hover > tbody > tr.danger:hover > th {
3068 background-color: #ebcccc; }
3069
3070/* line 171, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
3071.table-responsive {
3072 min-height: .01%;
3073 overflow-x: auto; }
3074 @media screen and (max-width: 767px) {
3075 /* line 171, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
3076 .table-responsive {
3077 width: 100%;
3078 margin-bottom: 15px;
3079 overflow-y: hidden;
3080 -ms-overflow-style: -ms-autohiding-scrollbar;
3081 border: 1px solid #ddd; }
3082 /* line 183, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
3083 .table-responsive > .table, #inner .table-responsive > table {
3084 margin-bottom: 0; }
3085 /* line 191, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
3086 .table-responsive > .table > thead > tr > th, #inner .table-responsive > table > thead > tr > th,
3087 .table-responsive > .table > thead > tr > td,
3088 #inner .table-responsive > table > thead > tr > td,
3089 .table-responsive > .table > tbody > tr > th,
3090 #inner .table-responsive > table > tbody > tr > th,
3091 .table-responsive > .table > tbody > tr > td,
3092 #inner .table-responsive > table > tbody > tr > td,
3093 .table-responsive > .table > tfoot > tr > th,
3094 #inner .table-responsive > table > tfoot > tr > th,
3095 .table-responsive > .table > tfoot > tr > td,
3096 #inner .table-responsive > table > tfoot > tr > td {
3097 white-space: nowrap; }
3098 /* line 200, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
3099 .table-responsive > .table-bordered {
3100 border: 0; }
3101 /* line 208, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
3102 .table-responsive > .table-bordered > thead > tr > th:first-child,
3103 .table-responsive > .table-bordered > thead > tr > td:first-child,
3104 .table-responsive > .table-bordered > tbody > tr > th:first-child,
3105 .table-responsive > .table-bordered > tbody > tr > td:first-child,
3106 .table-responsive > .table-bordered > tfoot > tr > th:first-child,
3107 .table-responsive > .table-bordered > tfoot > tr > td:first-child {
3108 border-left: 0; }
3109 /* line 212, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
3110 .table-responsive > .table-bordered > thead > tr > th:last-child,
3111 .table-responsive > .table-bordered > thead > tr > td:last-child,
3112 .table-responsive > .table-bordered > tbody > tr > th:last-child,
3113 .table-responsive > .table-bordered > tbody > tr > td:last-child,
3114 .table-responsive > .table-bordered > tfoot > tr > th:last-child,
3115 .table-responsive > .table-bordered > tfoot > tr > td:last-child {
3116 border-right: 0; }
3117 /* line 225, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tables.scss */
3118 .table-responsive > .table-bordered > tbody > tr:last-child > th,
3119 .table-responsive > .table-bordered > tbody > tr:last-child > td,
3120 .table-responsive > .table-bordered > tfoot > tr:last-child > th,
3121 .table-responsive > .table-bordered > tfoot > tr:last-child > td {
3122 border-bottom: 0; } }
3123
3124/* line 10, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3125fieldset {
3126 min-width: 0;
3127 padding: 0;
3128 margin: 0;
3129 border: 0; }
3130
3131/* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3132legend {
3133 display: block;
3134 width: 100%;
3135 padding: 0;
3136 margin-bottom: 20px;
3137 font-size: 21px;
3138 line-height: inherit;
3139 color: #333333;
3140 border: 0;
3141 border-bottom: 1px solid #e5e5e5; }
3142
3143/* line 32, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3144label {
3145 display: inline-block;
3146 max-width: 100%;
3147 margin-bottom: 5px;
3148 font-weight: 700; }
3149
3150/* line 46, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3151input[type="search"] {
3152 -webkit-box-sizing: border-box;
3153 -moz-box-sizing: border-box;
3154 box-sizing: border-box;
3155 -webkit-appearance: none;
3156 appearance: none; }
3157
3158/* line 61, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3159input[type="radio"],
3160input[type="checkbox"] {
3161 margin: 4px 0 0;
3162 margin-top: 1px \9;
3163 line-height: normal; }
3164 /* line 71, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3165 input[type="radio"][disabled], input[type="radio"].disabled, fieldset[disabled] input[type="radio"],
3166 input[type="checkbox"][disabled],
3167 input[type="checkbox"].disabled, fieldset[disabled]
3168 input[type="checkbox"] {
3169 cursor: not-allowed; }
3170
3171/* line 78, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3172input[type="file"] {
3173 display: block; }
3174
3175/* line 83, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3176input[type="range"] {
3177 display: block;
3178 width: 100%; }
3179
3180/* line 89, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3181select[multiple],
3182select[size] {
3183 height: auto; }
3184
3185/* line 95, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3186input[type="file"]:focus,
3187input[type="radio"]:focus,
3188input[type="checkbox"]:focus {
3189 outline: 5px auto -webkit-focus-ring-color;
3190 outline-offset: -2px; }
3191
3192/* line 102, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3193output {
3194 display: block;
3195 padding-top: 7px;
3196 font-size: 14px;
3197 line-height: 1.42857;
3198 color: #555555; }
3199
3200/* line 133, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3201.form-control {
3202 display: block;
3203 width: 100%;
3204 height: 34px;
3205 padding: 6px 12px;
3206 font-size: 14px;
3207 line-height: 1.42857;
3208 color: #555555;
3209 background-color: #fff;
3210 background-image: none;
3211 border: 1px solid #ccc;
3212 border-radius: 4px;
3213 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
3214 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
3215 -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
3216 -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
3217 transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; }
3218 /* line 57, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3219 .form-control:focus {
3220 border-color: #66afe9;
3221 outline: 0;
3222 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
3223 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }
3224 /* line 103, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss */
3225 .form-control::-moz-placeholder {
3226 color: #999;
3227 opacity: 1; }
3228 /* line 107, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss */
3229 .form-control:-ms-input-placeholder {
3230 color: #999; }
3231 /* line 108, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss */
3232 .form-control::-webkit-input-placeholder {
3233 color: #999; }
3234 /* line 155, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3235 .form-control::-ms-expand {
3236 background-color: transparent;
3237 border: 0; }
3238 /* line 165, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3239 .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
3240 background-color: #eeeeee;
3241 opacity: 1; }
3242 /* line 172, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3243 .form-control[disabled], fieldset[disabled] .form-control {
3244 cursor: not-allowed; }
3245
3246/* line 181, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3247textarea.form-control {
3248 height: auto; }
3249
3250@media screen and (-webkit-min-device-pixel-ratio: 0) {
3251 /* line 200, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3252 input[type="date"].form-control,
3253 input[type="time"].form-control,
3254 input[type="datetime-local"].form-control,
3255 input[type="month"].form-control {
3256 line-height: 34px; }
3257 /* line 204, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3258 input[type="date"].input-sm, .input-group-sm > input[type="date"].form-control,
3259 .input-group-sm > input[type="date"].input-group-addon,
3260 .input-group-sm > .input-group-btn > input[type="date"].btn, .input-group-sm input[type="date"],
3261 input[type="time"].input-sm,
3262 .input-group-sm > input[type="time"].form-control,
3263 .input-group-sm > input[type="time"].input-group-addon,
3264 .input-group-sm > .input-group-btn > input[type="time"].btn, .input-group-sm
3265 input[type="time"],
3266 input[type="datetime-local"].input-sm,
3267 .input-group-sm > input[type="datetime-local"].form-control,
3268 .input-group-sm > input[type="datetime-local"].input-group-addon,
3269 .input-group-sm > .input-group-btn > input[type="datetime-local"].btn, .input-group-sm
3270 input[type="datetime-local"],
3271 input[type="month"].input-sm,
3272 .input-group-sm > input[type="month"].form-control,
3273 .input-group-sm > input[type="month"].input-group-addon,
3274 .input-group-sm > .input-group-btn > input[type="month"].btn, .input-group-sm
3275 input[type="month"] {
3276 line-height: 30px; }
3277 /* line 209, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3278 input[type="date"].input-lg, .input-group-lg > input[type="date"].form-control,
3279 .input-group-lg > input[type="date"].input-group-addon,
3280 .input-group-lg > .input-group-btn > input[type="date"].btn, .input-group-lg input[type="date"],
3281 input[type="time"].input-lg,
3282 .input-group-lg > input[type="time"].form-control,
3283 .input-group-lg > input[type="time"].input-group-addon,
3284 .input-group-lg > .input-group-btn > input[type="time"].btn, .input-group-lg
3285 input[type="time"],
3286 input[type="datetime-local"].input-lg,
3287 .input-group-lg > input[type="datetime-local"].form-control,
3288 .input-group-lg > input[type="datetime-local"].input-group-addon,
3289 .input-group-lg > .input-group-btn > input[type="datetime-local"].btn, .input-group-lg
3290 input[type="datetime-local"],
3291 input[type="month"].input-lg,
3292 .input-group-lg > input[type="month"].form-control,
3293 .input-group-lg > input[type="month"].input-group-addon,
3294 .input-group-lg > .input-group-btn > input[type="month"].btn, .input-group-lg
3295 input[type="month"] {
3296 line-height: 46px; } }
3297/* line 222, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3298.form-group {
3299 margin-bottom: 15px; }
3300
3301/* line 231, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3302.radio,
3303.checkbox {
3304 position: relative;
3305 display: block;
3306 margin-top: 10px;
3307 margin-bottom: 10px; }
3308 /* line 241, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3309 .radio.disabled label, fieldset[disabled] .radio label,
3310 .checkbox.disabled label, fieldset[disabled]
3311 .checkbox label {
3312 cursor: not-allowed; }
3313 /* line 246, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3314 .radio label,
3315 .checkbox label {
3316 min-height: 20px;
3317 padding-left: 20px;
3318 margin-bottom: 0;
3319 font-weight: 400;
3320 cursor: pointer; }
3321
3322/* line 254, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3323.radio input[type="radio"],
3324.radio-inline input[type="radio"],
3325.checkbox input[type="checkbox"],
3326.checkbox-inline input[type="checkbox"] {
3327 position: absolute;
3328 margin-top: 4px \9;
3329 margin-left: -20px; }
3330
3331/* line 263, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3332.radio + .radio,
3333.checkbox + .checkbox {
3334 margin-top: -5px; }
3335
3336/* line 269, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3337.radio-inline,
3338.checkbox-inline {
3339 position: relative;
3340 display: inline-block;
3341 padding-left: 20px;
3342 margin-bottom: 0;
3343 font-weight: 400;
3344 vertical-align: middle;
3345 cursor: pointer; }
3346 /* line 280, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3347 .radio-inline.disabled, fieldset[disabled] .radio-inline,
3348 .checkbox-inline.disabled, fieldset[disabled]
3349 .checkbox-inline {
3350 cursor: not-allowed; }
3351
3352/* line 285, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3353.radio-inline + .radio-inline,
3354.checkbox-inline + .checkbox-inline {
3355 margin-top: 0;
3356 margin-left: 10px; }
3357
3358/* line 297, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3359.form-control-static {
3360 min-height: 34px;
3361 padding-top: 7px;
3362 padding-bottom: 7px;
3363 margin-bottom: 0; }
3364 /* line 305, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3365 .form-control-static.input-lg, .input-group-lg > .form-control-static.form-control,
3366 .input-group-lg > .form-control-static.input-group-addon,
3367 .input-group-lg > .input-group-btn > .form-control-static.btn, .form-control-static.input-sm, .input-group-sm > .form-control-static.form-control,
3368 .input-group-sm > .form-control-static.input-group-addon,
3369 .input-group-sm > .input-group-btn > .form-control-static.btn {
3370 padding-right: 0;
3371 padding-left: 0; }
3372
3373/* line 71, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3374.input-sm, .input-group-sm > .form-control,
3375.input-group-sm > .input-group-addon,
3376.input-group-sm > .input-group-btn > .btn {
3377 height: 30px;
3378 padding: 5px 10px;
3379 font-size: 12px;
3380 line-height: 1.5;
3381 border-radius: 3px; }
3382
3383/* line 79, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3384select.input-sm, .input-group-sm > select.form-control,
3385.input-group-sm > select.input-group-addon,
3386.input-group-sm > .input-group-btn > select.btn {
3387 height: 30px;
3388 line-height: 30px; }
3389
3390/* line 84, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3391textarea.input-sm, .input-group-sm > textarea.form-control,
3392.input-group-sm > textarea.input-group-addon,
3393.input-group-sm > .input-group-btn > textarea.btn,
3394select[multiple].input-sm,
3395.input-group-sm > select[multiple].form-control,
3396.input-group-sm > select[multiple].input-group-addon,
3397.input-group-sm > .input-group-btn > select[multiple].btn {
3398 height: auto; }
3399
3400/* line 323, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3401.form-group-sm .form-control {
3402 height: 30px;
3403 padding: 5px 10px;
3404 font-size: 12px;
3405 line-height: 1.5;
3406 border-radius: 3px; }
3407/* line 330, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3408.form-group-sm select.form-control {
3409 height: 30px;
3410 line-height: 30px; }
3411/* line 334, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3412.form-group-sm textarea.form-control,
3413.form-group-sm select[multiple].form-control {
3414 height: auto; }
3415/* line 338, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3416.form-group-sm .form-control-static {
3417 height: 30px;
3418 min-height: 32px;
3419 padding: 6px 10px;
3420 font-size: 12px;
3421 line-height: 1.5; }
3422
3423/* line 71, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3424.input-lg, .input-group-lg > .form-control,
3425.input-group-lg > .input-group-addon,
3426.input-group-lg > .input-group-btn > .btn {
3427 height: 46px;
3428 padding: 10px 16px;
3429 font-size: 18px;
3430 line-height: 1.33333;
3431 border-radius: 6px; }
3432
3433/* line 79, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3434select.input-lg, .input-group-lg > select.form-control,
3435.input-group-lg > select.input-group-addon,
3436.input-group-lg > .input-group-btn > select.btn {
3437 height: 46px;
3438 line-height: 46px; }
3439
3440/* line 84, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3441textarea.input-lg, .input-group-lg > textarea.form-control,
3442.input-group-lg > textarea.input-group-addon,
3443.input-group-lg > .input-group-btn > textarea.btn,
3444select[multiple].input-lg,
3445.input-group-lg > select[multiple].form-control,
3446.input-group-lg > select[multiple].input-group-addon,
3447.input-group-lg > .input-group-btn > select[multiple].btn {
3448 height: auto; }
3449
3450/* line 349, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3451.form-group-lg .form-control {
3452 height: 46px;
3453 padding: 10px 16px;
3454 font-size: 18px;
3455 line-height: 1.33333;
3456 border-radius: 6px; }
3457/* line 356, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3458.form-group-lg select.form-control {
3459 height: 46px;
3460 line-height: 46px; }
3461/* line 360, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3462.form-group-lg textarea.form-control,
3463.form-group-lg select[multiple].form-control {
3464 height: auto; }
3465/* line 364, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3466.form-group-lg .form-control-static {
3467 height: 46px;
3468 min-height: 38px;
3469 padding: 11px 16px;
3470 font-size: 18px;
3471 line-height: 1.33333; }
3472
3473/* line 378, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3474.has-feedback {
3475 position: relative; }
3476 /* line 383, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3477 .has-feedback .form-control {
3478 padding-right: 42.5px; }
3479
3480/* line 388, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3481.form-control-feedback {
3482 position: absolute;
3483 top: 0;
3484 right: 0;
3485 z-index: 2;
3486 display: block;
3487 width: 34px;
3488 height: 34px;
3489 line-height: 34px;
3490 text-align: center;
3491 pointer-events: none; }
3492
3493/* line 400, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3494.input-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback,
3495.input-group-lg > .input-group-addon + .form-control-feedback,
3496.input-group-lg > .input-group-btn > .btn + .form-control-feedback,
3497.input-group-lg + .form-control-feedback,
3498.form-group-lg .form-control + .form-control-feedback {
3499 width: 46px;
3500 height: 46px;
3501 line-height: 46px; }
3502
3503/* line 407, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3504.input-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback,
3505.input-group-sm > .input-group-addon + .form-control-feedback,
3506.input-group-sm > .input-group-btn > .btn + .form-control-feedback,
3507.input-group-sm + .form-control-feedback,
3508.form-group-sm .form-control + .form-control-feedback {
3509 width: 30px;
3510 height: 30px;
3511 line-height: 30px; }
3512
3513/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3514.has-success .help-block,
3515.has-success .control-label,
3516.has-success .radio,
3517.has-success .checkbox,
3518.has-success .radio-inline,
3519.has-success .checkbox-inline, .has-success.radio label, .has-success.checkbox label, .has-success.radio-inline label, .has-success.checkbox-inline label {
3520 color: #3c763d; }
3521/* line 21, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3522.has-success .form-control {
3523 border-color: #3c763d;
3524 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
3525 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
3526 /* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3527 .has-success .form-control:focus {
3528 border-color: #2b542c;
3529 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
3530 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; }
3531/* line 31, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3532.has-success .input-group-addon {
3533 color: #3c763d;
3534 background-color: #dff0d8;
3535 border-color: #3c763d; }
3536/* line 37, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3537.has-success .form-control-feedback {
3538 color: #3c763d; }
3539
3540/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3541.has-warning .help-block,
3542.has-warning .control-label,
3543.has-warning .radio,
3544.has-warning .checkbox,
3545.has-warning .radio-inline,
3546.has-warning .checkbox-inline, .has-warning.radio label, .has-warning.checkbox label, .has-warning.radio-inline label, .has-warning.checkbox-inline label {
3547 color: #8a6d3b; }
3548/* line 21, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3549.has-warning .form-control {
3550 border-color: #8a6d3b;
3551 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
3552 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
3553 /* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3554 .has-warning .form-control:focus {
3555 border-color: #66512c;
3556 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
3557 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; }
3558/* line 31, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3559.has-warning .input-group-addon {
3560 color: #8a6d3b;
3561 background-color: #fcf8e3;
3562 border-color: #8a6d3b; }
3563/* line 37, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3564.has-warning .form-control-feedback {
3565 color: #8a6d3b; }
3566
3567/* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3568.has-error .help-block,
3569.has-error .control-label,
3570.has-error .radio,
3571.has-error .checkbox,
3572.has-error .radio-inline,
3573.has-error .checkbox-inline, .has-error.radio label, .has-error.checkbox label, .has-error.radio-inline label, .has-error.checkbox-inline label {
3574 color: #a94442; }
3575/* line 21, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3576.has-error .form-control {
3577 border-color: #a94442;
3578 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
3579 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
3580 /* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3581 .has-error .form-control:focus {
3582 border-color: #843534;
3583 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
3584 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; }
3585/* line 31, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3586.has-error .input-group-addon {
3587 color: #a94442;
3588 background-color: #f2dede;
3589 border-color: #a94442; }
3590/* line 37, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_forms.scss */
3591.has-error .form-control-feedback {
3592 color: #a94442; }
3593
3594/* line 429, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3595.has-feedback label ~ .form-control-feedback {
3596 top: 25px; }
3597/* line 432, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3598.has-feedback label.sr-only ~ .form-control-feedback {
3599 top: 0; }
3600
3601/* line 443, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3602.help-block {
3603 display: block;
3604 margin-top: 5px;
3605 margin-bottom: 10px;
3606 color: #737373; }
3607
3608@media (min-width: 768px) {
3609 /* line 468, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3610 .form-inline .form-group {
3611 display: inline-block;
3612 margin-bottom: 0;
3613 vertical-align: middle; }
3614 /* line 475, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3615 .form-inline .form-control {
3616 display: inline-block;
3617 width: auto;
3618 vertical-align: middle; }
3619 /* line 482, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3620 .form-inline .form-control-static {
3621 display: inline-block; }
3622 /* line 486, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3623 .form-inline .input-group {
3624 display: inline-table;
3625 vertical-align: middle; }
3626 /* line 490, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3627 .form-inline .input-group .input-group-addon,
3628 .form-inline .input-group .input-group-btn,
3629 .form-inline .input-group .form-control {
3630 width: auto; }
3631 /* line 498, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3632 .form-inline .input-group > .form-control {
3633 width: 100%; }
3634 /* line 502, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3635 .form-inline .control-label {
3636 margin-bottom: 0;
3637 vertical-align: middle; }
3638 /* line 509, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3639 .form-inline .radio,
3640 .form-inline .checkbox {
3641 display: inline-block;
3642 margin-top: 0;
3643 margin-bottom: 0;
3644 vertical-align: middle; }
3645 /* line 516, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3646 .form-inline .radio label,
3647 .form-inline .checkbox label {
3648 padding-left: 0; }
3649 /* line 520, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3650 .form-inline .radio input[type="radio"],
3651 .form-inline .checkbox input[type="checkbox"] {
3652 position: relative;
3653 margin-left: 0; }
3654 /* line 527, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3655 .form-inline .has-feedback .form-control-feedback {
3656 top: 0; } }
3657
3658/* line 549, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3659.form-horizontal .radio,
3660.form-horizontal .checkbox,
3661.form-horizontal .radio-inline,
3662.form-horizontal .checkbox-inline {
3663 padding-top: 7px;
3664 margin-top: 0;
3665 margin-bottom: 0; }
3666/* line 559, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3667.form-horizontal .radio,
3668.form-horizontal .checkbox {
3669 min-height: 27px; }
3670/* line 565, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3671.form-horizontal .form-group {
3672 margin-right: -15px;
3673 margin-left: -15px; }
3674 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
3675 .form-horizontal .form-group:before, .form-horizontal .form-group:after {
3676 display: table;
3677 content: " "; }
3678 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
3679 .form-horizontal .form-group:after {
3680 clear: both; }
3681@media (min-width: 768px) {
3682 /* line 572, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3683 .form-horizontal .control-label {
3684 padding-top: 7px;
3685 margin-bottom: 0;
3686 text-align: right; } }
3687/* line 583, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3688.form-horizontal .has-feedback .form-control-feedback {
3689 right: 15px; }
3690@media (min-width: 768px) {
3691 /* line 593, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3692 .form-horizontal .form-group-lg .control-label {
3693 padding-top: 11px;
3694 font-size: 18px; } }
3695@media (min-width: 768px) {
3696 /* line 601, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
3697 .form-horizontal .form-group-sm .control-label {
3698 padding-top: 6px;
3699 font-size: 12px; } }
3700
3701/* line 9, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3702.btn {
3703 display: inline-block;
3704 margin-bottom: 0;
3705 font-weight: normal;
3706 text-align: center;
3707 white-space: nowrap;
3708 vertical-align: middle;
3709 touch-action: manipulation;
3710 cursor: pointer;
3711 background-image: none;
3712 border: 1px solid transparent;
3713 padding: 6px 12px;
3714 font-size: 14px;
3715 line-height: 1.42857;
3716 border-radius: 4px;
3717 -webkit-user-select: none;
3718 -moz-user-select: none;
3719 -ms-user-select: none;
3720 user-select: none; }
3721 /* line 26, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3722 .btn:focus, .btn.focus, .btn:active:focus, .btn:active.focus, .btn.active:focus, .btn.active.focus {
3723 outline: 5px auto -webkit-focus-ring-color;
3724 outline-offset: -2px; }
3725 /* line 32, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3726 .btn:hover, .btn:focus, .btn.focus {
3727 color: #333;
3728 text-decoration: none; }
3729 /* line 39, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3730 .btn:active, .btn.active {
3731 background-image: none;
3732 outline: 0;
3733 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3734 box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }
3735 /* line 46, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3736 .btn.disabled, .btn[disabled], fieldset[disabled] .btn {
3737 cursor: not-allowed;
3738 filter: alpha(opacity=65);
3739 opacity: 0.65;
3740 -webkit-box-shadow: none;
3741 box-shadow: none; }
3742
3743/* line 58, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3744a.btn.disabled, fieldset[disabled] a.btn {
3745 pointer-events: none; }
3746
3747/* line 68, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3748.btn-default {
3749 color: #333;
3750 background-color: #fff;
3751 border-color: #ccc; }
3752 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3753 .btn-default:focus, .btn-default.focus {
3754 color: #333;
3755 background-color: #e6e6e6;
3756 border-color: #8c8c8c; }
3757 /* line 17, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3758 .btn-default:hover {
3759 color: #333;
3760 background-color: #e6e6e6;
3761 border-color: #adadad; }
3762 /* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3763 .btn-default:active, .btn-default.active, .open > .btn-default.dropdown-toggle {
3764 color: #333;
3765 background-color: #e6e6e6;
3766 background-image: none;
3767 border-color: #adadad; }
3768 /* line 30, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3769 .btn-default:active:hover, .btn-default:active:focus, .btn-default:active.focus, .btn-default.active:hover, .btn-default.active:focus, .btn-default.active.focus, .open > .btn-default.dropdown-toggle:hover, .open > .btn-default.dropdown-toggle:focus, .open > .btn-default.dropdown-toggle.focus {
3770 color: #333;
3771 background-color: #d4d4d4;
3772 border-color: #8c8c8c; }
3773 /* line 41, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3774 .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus, fieldset[disabled] .btn-default:hover, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default.focus {
3775 background-color: #fff;
3776 border-color: #ccc; }
3777 /* line 49, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3778 .btn-default .badge {
3779 color: #fff;
3780 background-color: #333; }
3781
3782/* line 71, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3783.btn-primary {
3784 color: #fff;
3785 background-color: #337ab7;
3786 border-color: #2e6da4; }
3787 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3788 .btn-primary:focus, .btn-primary.focus {
3789 color: #fff;
3790 background-color: #286090;
3791 border-color: #122b40; }
3792 /* line 17, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3793 .btn-primary:hover {
3794 color: #fff;
3795 background-color: #286090;
3796 border-color: #204d74; }
3797 /* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3798 .btn-primary:active, .btn-primary.active, .open > .btn-primary.dropdown-toggle {
3799 color: #fff;
3800 background-color: #286090;
3801 background-image: none;
3802 border-color: #204d74; }
3803 /* line 30, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3804 .btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus, .open > .btn-primary.dropdown-toggle:hover, .open > .btn-primary.dropdown-toggle:focus, .open > .btn-primary.dropdown-toggle.focus {
3805 color: #fff;
3806 background-color: #204d74;
3807 border-color: #122b40; }
3808 /* line 41, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3809 .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus, fieldset[disabled] .btn-primary:hover, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary.focus {
3810 background-color: #337ab7;
3811 border-color: #2e6da4; }
3812 /* line 49, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3813 .btn-primary .badge {
3814 color: #337ab7;
3815 background-color: #fff; }
3816
3817/* line 75, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3818.btn-success {
3819 color: #fff;
3820 background-color: #5cb85c;
3821 border-color: #4cae4c; }
3822 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3823 .btn-success:focus, .btn-success.focus {
3824 color: #fff;
3825 background-color: #449d44;
3826 border-color: #255625; }
3827 /* line 17, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3828 .btn-success:hover {
3829 color: #fff;
3830 background-color: #449d44;
3831 border-color: #398439; }
3832 /* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3833 .btn-success:active, .btn-success.active, .open > .btn-success.dropdown-toggle {
3834 color: #fff;
3835 background-color: #449d44;
3836 background-image: none;
3837 border-color: #398439; }
3838 /* line 30, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3839 .btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus, .open > .btn-success.dropdown-toggle:hover, .open > .btn-success.dropdown-toggle:focus, .open > .btn-success.dropdown-toggle.focus {
3840 color: #fff;
3841 background-color: #398439;
3842 border-color: #255625; }
3843 /* line 41, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3844 .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled].focus, fieldset[disabled] .btn-success:hover, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success.focus {
3845 background-color: #5cb85c;
3846 border-color: #4cae4c; }
3847 /* line 49, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3848 .btn-success .badge {
3849 color: #5cb85c;
3850 background-color: #fff; }
3851
3852/* line 79, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3853.btn-info {
3854 color: #fff;
3855 background-color: #5bc0de;
3856 border-color: #46b8da; }
3857 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3858 .btn-info:focus, .btn-info.focus {
3859 color: #fff;
3860 background-color: #31b0d5;
3861 border-color: #1b6d85; }
3862 /* line 17, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3863 .btn-info:hover {
3864 color: #fff;
3865 background-color: #31b0d5;
3866 border-color: #269abc; }
3867 /* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3868 .btn-info:active, .btn-info.active, .open > .btn-info.dropdown-toggle {
3869 color: #fff;
3870 background-color: #31b0d5;
3871 background-image: none;
3872 border-color: #269abc; }
3873 /* line 30, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3874 .btn-info:active:hover, .btn-info:active:focus, .btn-info:active.focus, .btn-info.active:hover, .btn-info.active:focus, .btn-info.active.focus, .open > .btn-info.dropdown-toggle:hover, .open > .btn-info.dropdown-toggle:focus, .open > .btn-info.dropdown-toggle.focus {
3875 color: #fff;
3876 background-color: #269abc;
3877 border-color: #1b6d85; }
3878 /* line 41, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3879 .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled].focus, fieldset[disabled] .btn-info:hover, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info.focus {
3880 background-color: #5bc0de;
3881 border-color: #46b8da; }
3882 /* line 49, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3883 .btn-info .badge {
3884 color: #5bc0de;
3885 background-color: #fff; }
3886
3887/* line 83, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3888.btn-warning {
3889 color: #fff;
3890 background-color: #f0ad4e;
3891 border-color: #eea236; }
3892 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3893 .btn-warning:focus, .btn-warning.focus {
3894 color: #fff;
3895 background-color: #ec971f;
3896 border-color: #985f0d; }
3897 /* line 17, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3898 .btn-warning:hover {
3899 color: #fff;
3900 background-color: #ec971f;
3901 border-color: #d58512; }
3902 /* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3903 .btn-warning:active, .btn-warning.active, .open > .btn-warning.dropdown-toggle {
3904 color: #fff;
3905 background-color: #ec971f;
3906 background-image: none;
3907 border-color: #d58512; }
3908 /* line 30, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3909 .btn-warning:active:hover, .btn-warning:active:focus, .btn-warning:active.focus, .btn-warning.active:hover, .btn-warning.active:focus, .btn-warning.active.focus, .open > .btn-warning.dropdown-toggle:hover, .open > .btn-warning.dropdown-toggle:focus, .open > .btn-warning.dropdown-toggle.focus {
3910 color: #fff;
3911 background-color: #d58512;
3912 border-color: #985f0d; }
3913 /* line 41, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3914 .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled].focus, fieldset[disabled] .btn-warning:hover, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning.focus {
3915 background-color: #f0ad4e;
3916 border-color: #eea236; }
3917 /* line 49, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3918 .btn-warning .badge {
3919 color: #f0ad4e;
3920 background-color: #fff; }
3921
3922/* line 87, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3923.btn-danger {
3924 color: #fff;
3925 background-color: #d9534f;
3926 border-color: #d43f3a; }
3927 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3928 .btn-danger:focus, .btn-danger.focus {
3929 color: #fff;
3930 background-color: #c9302c;
3931 border-color: #761c19; }
3932 /* line 17, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3933 .btn-danger:hover {
3934 color: #fff;
3935 background-color: #c9302c;
3936 border-color: #ac2925; }
3937 /* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3938 .btn-danger:active, .btn-danger.active, .open > .btn-danger.dropdown-toggle {
3939 color: #fff;
3940 background-color: #c9302c;
3941 background-image: none;
3942 border-color: #ac2925; }
3943 /* line 30, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3944 .btn-danger:active:hover, .btn-danger:active:focus, .btn-danger:active.focus, .btn-danger.active:hover, .btn-danger.active:focus, .btn-danger.active.focus, .open > .btn-danger.dropdown-toggle:hover, .open > .btn-danger.dropdown-toggle:focus, .open > .btn-danger.dropdown-toggle.focus {
3945 color: #fff;
3946 background-color: #ac2925;
3947 border-color: #761c19; }
3948 /* line 41, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3949 .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled].focus, fieldset[disabled] .btn-danger:hover, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger.focus {
3950 background-color: #d9534f;
3951 border-color: #d43f3a; }
3952 /* line 49, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_buttons.scss */
3953 .btn-danger .badge {
3954 color: #d9534f;
3955 background-color: #fff; }
3956
3957/* line 96, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3958.btn-link {
3959 font-weight: 400;
3960 color: #337ab7;
3961 border-radius: 0; }
3962 /* line 101, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3963 .btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled], fieldset[disabled] .btn-link {
3964 background-color: transparent;
3965 -webkit-box-shadow: none;
3966 box-shadow: none; }
3967 /* line 109, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3968 .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active {
3969 border-color: transparent; }
3970 /* line 115, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3971 .btn-link:hover, .btn-link:focus {
3972 color: #23527c;
3973 text-decoration: underline;
3974 background-color: transparent; }
3975 /* line 123, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3976 .btn-link[disabled]:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:hover, fieldset[disabled] .btn-link:focus {
3977 color: #777777;
3978 text-decoration: none; }
3979
3980/* line 135, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3981.btn-lg, .btn-group-lg > .btn {
3982 padding: 10px 16px;
3983 font-size: 18px;
3984 line-height: 1.33333;
3985 border-radius: 6px; }
3986
3987/* line 139, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3988.btn-sm, .btn-group-sm > .btn {
3989 padding: 5px 10px;
3990 font-size: 12px;
3991 line-height: 1.5;
3992 border-radius: 3px; }
3993
3994/* line 143, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
3995.btn-xs, .btn-group-xs > .btn {
3996 padding: 1px 5px;
3997 font-size: 12px;
3998 line-height: 1.5;
3999 border-radius: 3px; }
4000
4001/* line 151, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
4002.btn-block {
4003 display: block;
4004 width: 100%; }
4005
4006/* line 157, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
4007.btn-block + .btn-block {
4008 margin-top: 5px; }
4009
4010/* line 165, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_buttons.scss */
4011input[type="submit"].btn-block,
4012input[type="reset"].btn-block,
4013input[type="button"].btn-block {
4014 width: 100%; }
4015
4016/* line 10, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_component-animations.scss */
4017.fade {
4018 opacity: 0;
4019 -webkit-transition: opacity 0.15s linear;
4020 -o-transition: opacity 0.15s linear;
4021 transition: opacity 0.15s linear; }
4022 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_component-animations.scss */
4023 .fade.in {
4024 opacity: 1; }
4025
4026/* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_component-animations.scss */
4027.collapse {
4028 display: none; }
4029 /* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_component-animations.scss */
4030 .collapse.in {
4031 display: block; }
4032
4033/* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_component-animations.scss */
4034tr.collapse.in {
4035 display: table-row; }
4036
4037/* line 29, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_component-animations.scss */
4038tbody.collapse.in {
4039 display: table-row-group; }
4040
4041/* line 31, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_component-animations.scss */
4042.collapsing {
4043 position: relative;
4044 height: 0;
4045 overflow: hidden;
4046 -webkit-transition-property: height, visibility;
4047 transition-property: height, visibility;
4048 -webkit-transition-duration: 0.35s;
4049 transition-duration: 0.35s;
4050 -webkit-transition-timing-function: ease;
4051 transition-timing-function: ease; }
4052
4053/* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4054.caret {
4055 display: inline-block;
4056 width: 0;
4057 height: 0;
4058 margin-left: 2px;
4059 vertical-align: middle;
4060 border-top: 4px dashed;
4061 border-top: 4px solid \9;
4062 border-right: 4px solid transparent;
4063 border-left: 4px solid transparent; }
4064
4065/* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4066.dropup,
4067.dropdown {
4068 position: relative; }
4069
4070/* line 26, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4071.dropdown-toggle:focus {
4072 outline: 0; }
4073
4074/* line 31, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4075.dropdown-menu {
4076 position: absolute;
4077 top: 100%;
4078 left: 0;
4079 z-index: 1000;
4080 display: none;
4081 float: left;
4082 min-width: 160px;
4083 padding: 5px 0;
4084 margin: 2px 0 0;
4085 font-size: 14px;
4086 text-align: left;
4087 list-style: none;
4088 background-color: #fff;
4089 background-clip: padding-box;
4090 border: 1px solid #ccc;
4091 border: 1px solid rgba(0, 0, 0, 0.15);
4092 border-radius: 4px;
4093 -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
4094 box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); }
4095 /* line 54, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4096 .dropdown-menu.pull-right {
4097 right: 0;
4098 left: auto; }
4099 /* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4100 .dropdown-menu .divider {
4101 height: 1px;
4102 margin: 9px 0;
4103 overflow: hidden;
4104 background-color: #e5e5e5; }
4105 /* line 65, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4106 .dropdown-menu > li > a {
4107 display: block;
4108 padding: 3px 20px;
4109 clear: both;
4110 font-weight: 400;
4111 line-height: 1.42857;
4112 color: #333333;
4113 white-space: nowrap; }
4114 /* line 74, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4115 .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
4116 color: #262626;
4117 text-decoration: none;
4118 background-color: #f5f5f5; }
4119
4120/* line 85, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4121.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus {
4122 color: #fff;
4123 text-decoration: none;
4124 background-color: #337ab7;
4125 outline: 0; }
4126
4127/* line 100, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4128.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
4129 color: #777777; }
4130/* line 107, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4131.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
4132 text-decoration: none;
4133 cursor: not-allowed;
4134 background-color: transparent;
4135 background-image: none;
4136 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); }
4137
4138/* line 120, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4139.open > .dropdown-menu {
4140 display: block; }
4141/* line 125, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4142.open > a {
4143 outline: 0; }
4144
4145/* line 134, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4146.dropdown-menu-right {
4147 right: 0;
4148 left: auto; }
4149
4150/* line 144, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4151.dropdown-menu-left {
4152 right: auto;
4153 left: 0; }
4154
4155/* line 150, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4156.dropdown-header {
4157 display: block;
4158 padding: 3px 20px;
4159 font-size: 12px;
4160 line-height: 1.42857;
4161 color: #777777;
4162 white-space: nowrap; }
4163
4164/* line 160, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4165.dropdown-backdrop {
4166 position: fixed;
4167 top: 0;
4168 right: 0;
4169 bottom: 0;
4170 left: 0;
4171 z-index: 990; }
4172
4173/* line 170, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4174.pull-right > .dropdown-menu {
4175 right: 0;
4176 left: auto; }
4177
4178/* line 183, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4179.dropup .caret,
4180.navbar-fixed-bottom .dropdown .caret {
4181 content: "";
4182 border-top: 0;
4183 border-bottom: 4px dashed;
4184 border-bottom: 4px solid \9; }
4185/* line 190, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4186.dropup .dropdown-menu,
4187.navbar-fixed-bottom .dropdown .dropdown-menu {
4188 top: auto;
4189 bottom: 100%;
4190 margin-bottom: 2px; }
4191
4192@media (min-width: 768px) {
4193 /* line 204, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4194 .navbar-right .dropdown-menu {
4195 right: 0;
4196 left: auto; }
4197 /* line 209, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_dropdowns.scss */
4198 .navbar-right .dropdown-menu-left {
4199 left: 0;
4200 right: auto; } }
4201/* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4202.btn-group,
4203.btn-group-vertical {
4204 position: relative;
4205 display: inline-block;
4206 vertical-align: middle; }
4207 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4208 .btn-group > .btn,
4209 .btn-group-vertical > .btn {
4210 position: relative;
4211 float: left; }
4212 /* line 15, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4213 .btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
4214 .btn-group-vertical > .btn:hover,
4215 .btn-group-vertical > .btn:focus,
4216 .btn-group-vertical > .btn:active,
4217 .btn-group-vertical > .btn.active {
4218 z-index: 2; }
4219
4220/* line 26, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4221.btn-group .btn + .btn,
4222.btn-group .btn + .btn-group,
4223.btn-group .btn-group + .btn,
4224.btn-group .btn-group + .btn-group {
4225 margin-left: -1px; }
4226
4227/* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4228.btn-toolbar {
4229 margin-left: -5px; }
4230 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
4231 .btn-toolbar:before, .btn-toolbar:after {
4232 display: table;
4233 content: " "; }
4234 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
4235 .btn-toolbar:after {
4236 clear: both; }
4237 /* line 39, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4238 .btn-toolbar .btn,
4239 .btn-toolbar .btn-group,
4240 .btn-toolbar .input-group {
4241 float: left; }
4242 /* line 44, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4243 .btn-toolbar > .btn,
4244 .btn-toolbar > .btn-group,
4245 .btn-toolbar > .input-group {
4246 margin-left: 5px; }
4247
4248/* line 51, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4249.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
4250 border-radius: 0; }
4251
4252/* line 56, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4253.btn-group > .btn:first-child {
4254 margin-left: 0; }
4255 /* line 58, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4256 .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
4257 border-top-right-radius: 0;
4258 border-bottom-right-radius: 0; }
4259
4260/* line 63, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4261.btn-group > .btn:last-child:not(:first-child),
4262.btn-group > .dropdown-toggle:not(:first-child) {
4263 border-top-left-radius: 0;
4264 border-bottom-left-radius: 0; }
4265
4266/* line 69, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4267.btn-group > .btn-group {
4268 float: left; }
4269
4270/* line 72, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4271.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
4272 border-radius: 0; }
4273
4274/* line 76, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4275.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
4276.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
4277 border-top-right-radius: 0;
4278 border-bottom-right-radius: 0; }
4279
4280/* line 81, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4281.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
4282 border-top-left-radius: 0;
4283 border-bottom-left-radius: 0; }
4284
4285/* line 86, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4286.btn-group .dropdown-toggle:active,
4287.btn-group.open .dropdown-toggle {
4288 outline: 0; }
4289
4290/* line 105, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4291.btn-group > .btn + .dropdown-toggle {
4292 padding-right: 8px;
4293 padding-left: 8px; }
4294
4295/* line 109, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4296.btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle {
4297 padding-right: 12px;
4298 padding-left: 12px; }
4299
4300/* line 116, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4301.btn-group.open .dropdown-toggle {
4302 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
4303 box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }
4304 /* line 120, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4305 .btn-group.open .dropdown-toggle.btn-link {
4306 -webkit-box-shadow: none;
4307 box-shadow: none; }
4308
4309/* line 127, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4310.btn .caret {
4311 margin-left: 0; }
4312
4313/* line 131, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4314.btn-lg .caret, .btn-group-lg > .btn .caret {
4315 border-width: 5px 5px 0;
4316 border-bottom-width: 0; }
4317
4318/* line 136, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4319.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret {
4320 border-width: 0 5px 5px; }
4321
4322/* line 145, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4323.btn-group-vertical > .btn,
4324.btn-group-vertical > .btn-group,
4325.btn-group-vertical > .btn-group > .btn {
4326 display: block;
4327 float: none;
4328 width: 100%;
4329 max-width: 100%; }
4330/* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
4331.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after {
4332 display: table;
4333 content: " "; }
4334/* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
4335.btn-group-vertical > .btn-group:after {
4336 clear: both; }
4337/* line 157, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4338.btn-group-vertical > .btn-group > .btn {
4339 float: none; }
4340/* line 162, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4341.btn-group-vertical > .btn + .btn,
4342.btn-group-vertical > .btn + .btn-group,
4343.btn-group-vertical > .btn-group + .btn,
4344.btn-group-vertical > .btn-group + .btn-group {
4345 margin-top: -1px;
4346 margin-left: 0; }
4347
4348/* line 172, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4349.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
4350 border-radius: 0; }
4351/* line 175, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4352.btn-group-vertical > .btn:first-child:not(:last-child) {
4353 border-top-left-radius: 4px;
4354 border-top-right-radius: 4px;
4355 border-bottom-right-radius: 0;
4356 border-bottom-left-radius: 0; }
4357/* line 179, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4358.btn-group-vertical > .btn:last-child:not(:first-child) {
4359 border-top-left-radius: 0;
4360 border-top-right-radius: 0;
4361 border-bottom-right-radius: 4px;
4362 border-bottom-left-radius: 4px; }
4363
4364/* line 184, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4365.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
4366 border-radius: 0; }
4367
4368/* line 188, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4369.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
4370.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
4371 border-bottom-right-radius: 0;
4372 border-bottom-left-radius: 0; }
4373
4374/* line 193, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4375.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
4376 border-top-left-radius: 0;
4377 border-top-right-radius: 0; }
4378
4379/* line 201, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4380.btn-group-justified {
4381 display: table;
4382 width: 100%;
4383 table-layout: fixed;
4384 border-collapse: separate; }
4385 /* line 206, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4386 .btn-group-justified > .btn,
4387 .btn-group-justified > .btn-group {
4388 display: table-cell;
4389 float: none;
4390 width: 1%; }
4391 /* line 212, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4392 .btn-group-justified > .btn-group .btn {
4393 width: 100%; }
4394 /* line 216, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4395 .btn-group-justified > .btn-group .dropdown-menu {
4396 left: auto; }
4397
4398/* line 237, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_button-groups.scss */
4399[data-toggle="buttons"] > .btn input[type="radio"],
4400[data-toggle="buttons"] > .btn input[type="checkbox"],
4401[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
4402[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
4403 position: absolute;
4404 clip: rect(0, 0, 0, 0);
4405 pointer-events: none; }
4406
4407/* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4408.input-group {
4409 position: relative;
4410 display: table;
4411 border-collapse: separate; }
4412 /* line 13, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4413 .input-group[class*="col-"] {
4414 float: none;
4415 padding-right: 0;
4416 padding-left: 0; }
4417 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4418 .input-group .form-control {
4419 position: relative;
4420 z-index: 2;
4421 float: left;
4422 width: 100%;
4423 margin-bottom: 0; }
4424 /* line 33, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4425 .input-group .form-control:focus {
4426 z-index: 3; }
4427
4428/* line 58, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4429.input-group-addon,
4430.input-group-btn,
4431.input-group .form-control {
4432 display: table-cell; }
4433 /* line 63, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4434 .input-group-addon:not(:first-child):not(:last-child),
4435 .input-group-btn:not(:first-child):not(:last-child),
4436 .input-group .form-control:not(:first-child):not(:last-child) {
4437 border-radius: 0; }
4438
4439/* line 68, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4440.input-group-addon,
4441.input-group-btn {
4442 width: 1%;
4443 white-space: nowrap;
4444 vertical-align: middle; }
4445
4446/* line 77, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4447.input-group-addon {
4448 padding: 6px 12px;
4449 font-size: 14px;
4450 font-weight: 400;
4451 line-height: 1;
4452 color: #555555;
4453 text-align: center;
4454 background-color: #eeeeee;
4455 border: 1px solid #ccc;
4456 border-radius: 4px; }
4457 /* line 89, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4458 .input-group-addon.input-sm,
4459 .input-group-sm > .input-group-addon,
4460 .input-group-sm > .input-group-btn > .input-group-addon.btn {
4461 padding: 5px 10px;
4462 font-size: 12px;
4463 border-radius: 3px; }
4464 /* line 94, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4465 .input-group-addon.input-lg,
4466 .input-group-lg > .input-group-addon,
4467 .input-group-lg > .input-group-btn > .input-group-addon.btn {
4468 padding: 10px 16px;
4469 font-size: 18px;
4470 border-radius: 6px; }
4471 /* line 101, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4472 .input-group-addon input[type="radio"],
4473 .input-group-addon input[type="checkbox"] {
4474 margin-top: 0; }
4475
4476/* line 108, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4477.input-group .form-control:first-child,
4478.input-group-addon:first-child,
4479.input-group-btn:first-child > .btn,
4480.input-group-btn:first-child > .btn-group > .btn,
4481.input-group-btn:first-child > .dropdown-toggle,
4482.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
4483.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
4484 border-top-right-radius: 0;
4485 border-bottom-right-radius: 0; }
4486
4487/* line 117, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4488.input-group-addon:first-child {
4489 border-right: 0; }
4490
4491/* line 120, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4492.input-group .form-control:last-child,
4493.input-group-addon:last-child,
4494.input-group-btn:last-child > .btn,
4495.input-group-btn:last-child > .btn-group > .btn,
4496.input-group-btn:last-child > .dropdown-toggle,
4497.input-group-btn:first-child > .btn:not(:first-child),
4498.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
4499 border-top-left-radius: 0;
4500 border-bottom-left-radius: 0; }
4501
4502/* line 129, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4503.input-group-addon:last-child {
4504 border-left: 0; }
4505
4506/* line 135, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4507.input-group-btn {
4508 position: relative;
4509 font-size: 0;
4510 white-space: nowrap; }
4511 /* line 144, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4512 .input-group-btn > .btn {
4513 position: relative; }
4514 /* line 146, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4515 .input-group-btn > .btn + .btn {
4516 margin-left: -1px; }
4517 /* line 150, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4518 .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active {
4519 z-index: 2; }
4520 /* line 159, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4521 .input-group-btn:first-child > .btn,
4522 .input-group-btn:first-child > .btn-group {
4523 margin-right: -1px; }
4524 /* line 165, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_input-groups.scss */
4525 .input-group-btn:last-child > .btn,
4526 .input-group-btn:last-child > .btn-group {
4527 z-index: 2;
4528 margin-left: -1px; }
4529
4530/* line 9, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4531.nav {
4532 padding-left: 0;
4533 margin-bottom: 0;
4534 list-style: none; }
4535 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
4536 .nav:before, .nav:after {
4537 display: table;
4538 content: " "; }
4539 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
4540 .nav:after {
4541 clear: both; }
4542 /* line 15, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4543 .nav > li {
4544 position: relative;
4545 display: block; }
4546 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4547 .nav > li > a {
4548 position: relative;
4549 display: block;
4550 padding: 10px 15px; }
4551 /* line 23, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4552 .nav > li > a:hover, .nav > li > a:focus {
4553 text-decoration: none;
4554 background-color: #eeeeee; }
4555 /* line 31, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4556 .nav > li.disabled > a {
4557 color: #777777; }
4558 /* line 34, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4559 .nav > li.disabled > a:hover, .nav > li.disabled > a:focus {
4560 color: #777777;
4561 text-decoration: none;
4562 cursor: not-allowed;
4563 background-color: transparent; }
4564 /* line 46, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4565 .nav .open > a, .nav .open > a:hover, .nav .open > a:focus {
4566 background-color: #eeeeee;
4567 border-color: #337ab7; }
4568 /* line 59, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4569 .nav .nav-divider {
4570 height: 1px;
4571 margin: 9px 0;
4572 overflow: hidden;
4573 background-color: #e5e5e5; }
4574 /* line 66, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4575 .nav > li > a > img {
4576 max-width: none; }
4577
4578/* line 76, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4579.nav-tabs {
4580 border-bottom: 1px solid #ddd; }
4581 /* line 78, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4582 .nav-tabs > li {
4583 float: left;
4584 margin-bottom: -1px; }
4585 /* line 84, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4586 .nav-tabs > li > a {
4587 margin-right: 2px;
4588 line-height: 1.42857;
4589 border: 1px solid transparent;
4590 border-radius: 4px 4px 0 0; }
4591 /* line 89, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4592 .nav-tabs > li > a:hover {
4593 border-color: #eeeeee #eeeeee #ddd; }
4594 /* line 96, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4595 .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
4596 color: #555555;
4597 cursor: default;
4598 background-color: #fff;
4599 border: 1px solid #ddd;
4600 border-bottom-color: transparent; }
4601
4602/* line 118, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4603.nav-pills > li {
4604 float: left; }
4605 /* line 122, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4606 .nav-pills > li > a {
4607 border-radius: 4px; }
4608 /* line 125, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4609 .nav-pills > li + li {
4610 margin-left: 2px; }
4611 /* line 131, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4612 .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus {
4613 color: #fff;
4614 background-color: #337ab7; }
4615
4616/* line 144, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4617.nav-stacked > li {
4618 float: none; }
4619 /* line 146, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4620 .nav-stacked > li + li {
4621 margin-top: 2px;
4622 margin-left: 0; }
4623
4624/* line 160, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4625.nav-justified, .nav-tabs.nav-justified {
4626 width: 100%; }
4627 /* line 163, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4628 .nav-justified > li, .nav-tabs.nav-justified > li {
4629 float: none; }
4630 /* line 165, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4631 .nav-justified > li > a, .nav-tabs.nav-justified > li > a {
4632 margin-bottom: 5px;
4633 text-align: center; }
4634 /* line 171, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4635 .nav-justified > .dropdown .dropdown-menu {
4636 top: auto;
4637 left: auto; }
4638 @media (min-width: 768px) {
4639 /* line 177, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4640 .nav-justified > li, .nav-tabs.nav-justified > li {
4641 display: table-cell;
4642 width: 1%; }
4643 /* line 180, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4644 .nav-justified > li > a, .nav-tabs.nav-justified > li > a {
4645 margin-bottom: 0; } }
4646
4647/* line 190, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4648.nav-tabs-justified, .nav-tabs.nav-justified {
4649 border-bottom: 0; }
4650 /* line 193, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4651 .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
4652 margin-right: 0;
4653 border-radius: 4px; }
4654 /* line 199, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4655 .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,
4656 .nav-tabs-justified > .active > a:hover,
4657 .nav-tabs.nav-justified > .active > a:hover,
4658 .nav-tabs-justified > .active > a:focus,
4659 .nav-tabs.nav-justified > .active > a:focus {
4660 border: 1px solid #ddd; }
4661 @media (min-width: 768px) {
4662 /* line 206, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4663 .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
4664 border-bottom: 1px solid #ddd;
4665 border-radius: 4px 4px 0 0; }
4666 /* line 210, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4667 .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,
4668 .nav-tabs-justified > .active > a:hover,
4669 .nav-tabs.nav-justified > .active > a:hover,
4670 .nav-tabs-justified > .active > a:focus,
4671 .nav-tabs.nav-justified > .active > a:focus {
4672 border-bottom-color: #fff; } }
4673
4674/* line 224, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4675.tab-content > .tab-pane {
4676 display: none; }
4677/* line 227, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4678.tab-content > .active {
4679 display: block; }
4680
4681/* line 237, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navs.scss */
4682.nav-tabs .dropdown-menu {
4683 margin-top: -1px;
4684 border-top-left-radius: 0;
4685 border-top-right-radius: 0; }
4686
4687/* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4688.navbar {
4689 position: relative;
4690 min-height: 50px;
4691 margin-bottom: 20px;
4692 border: 1px solid transparent; }
4693 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
4694 .navbar:before, .navbar:after {
4695 display: table;
4696 content: " "; }
4697 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
4698 .navbar:after {
4699 clear: both; }
4700 @media (min-width: 768px) {
4701 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4702 .navbar {
4703 border-radius: 4px; } }
4704
4705/* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
4706.navbar-header:before, .navbar-header:after {
4707 display: table;
4708 content: " "; }
4709/* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
4710.navbar-header:after {
4711 clear: both; }
4712@media (min-width: 768px) {
4713 /* line 31, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4714 .navbar-header {
4715 float: left; } }
4716
4717/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4718.navbar-collapse {
4719 padding-right: 15px;
4720 padding-left: 15px;
4721 overflow-x: visible;
4722 border-top: 1px solid transparent;
4723 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
4724 -webkit-overflow-scrolling: touch; }
4725 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
4726 .navbar-collapse:before, .navbar-collapse:after {
4727 display: table;
4728 content: " "; }
4729 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
4730 .navbar-collapse:after {
4731 clear: both; }
4732 /* line 59, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4733 .navbar-collapse.in {
4734 overflow-y: auto; }
4735 @media (min-width: 768px) {
4736 /* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4737 .navbar-collapse {
4738 width: auto;
4739 border-top: 0;
4740 box-shadow: none; }
4741 /* line 68, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4742 .navbar-collapse.collapse {
4743 display: block !important;
4744 height: auto !important;
4745 padding-bottom: 0;
4746 overflow: visible !important; }
4747 /* line 75, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4748 .navbar-collapse.in {
4749 overflow-y: visible; }
4750 /* line 81, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4751 .navbar-fixed-top .navbar-collapse, .navbar-static-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse {
4752 padding-right: 0;
4753 padding-left: 0; } }
4754
4755/* line 90, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4756.navbar-fixed-top,
4757.navbar-fixed-bottom {
4758 position: fixed;
4759 right: 0;
4760 left: 0;
4761 z-index: 1030; }
4762 /* line 92, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4763 .navbar-fixed-top .navbar-collapse,
4764 .navbar-fixed-bottom .navbar-collapse {
4765 max-height: 340px; }
4766 @media (max-device-width: 480px) and (orientation: landscape) {
4767 /* line 92, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4768 .navbar-fixed-top .navbar-collapse,
4769 .navbar-fixed-bottom .navbar-collapse {
4770 max-height: 200px; } }
4771 @media (min-width: 768px) {
4772 /* line 90, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4773 .navbar-fixed-top,
4774 .navbar-fixed-bottom {
4775 border-radius: 0; } }
4776
4777/* line 112, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4778.navbar-fixed-top {
4779 top: 0;
4780 border-width: 0 0 1px; }
4781
4782/* line 116, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4783.navbar-fixed-bottom {
4784 bottom: 0;
4785 margin-bottom: 0;
4786 border-width: 1px 0 0; }
4787
4788/* line 129, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4789.container > .navbar-header,
4790.container > .navbar-collapse,
4791.container-fluid > .navbar-header,
4792.container-fluid > .navbar-collapse {
4793 margin-right: -15px;
4794 margin-left: -15px; }
4795 @media (min-width: 768px) {
4796 /* line 129, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4797 .container > .navbar-header,
4798 .container > .navbar-collapse,
4799 .container-fluid > .navbar-header,
4800 .container-fluid > .navbar-collapse {
4801 margin-right: 0;
4802 margin-left: 0; } }
4803
4804/* line 149, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4805.navbar-static-top {
4806 z-index: 1000;
4807 border-width: 0 0 1px; }
4808 @media (min-width: 768px) {
4809 /* line 149, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4810 .navbar-static-top {
4811 border-radius: 0; } }
4812
4813/* line 161, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4814.navbar-brand {
4815 float: left;
4816 height: 50px;
4817 padding: 15px 15px;
4818 font-size: 18px;
4819 line-height: 20px; }
4820 /* line 168, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4821 .navbar-brand:hover, .navbar-brand:focus {
4822 text-decoration: none; }
4823 /* line 173, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4824 .navbar-brand > img {
4825 display: block; }
4826 @media (min-width: 768px) {
4827 /* line 178, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4828 .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand {
4829 margin-left: -15px; } }
4830
4831/* line 191, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4832.navbar-toggle {
4833 position: relative;
4834 float: right;
4835 padding: 9px 10px;
4836 margin-right: 15px;
4837 margin-top: 8px;
4838 margin-bottom: 8px;
4839 background-color: transparent;
4840 background-image: none;
4841 border: 1px solid transparent;
4842 border-radius: 4px; }
4843 /* line 204, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4844 .navbar-toggle:focus {
4845 outline: 0; }
4846 /* line 209, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4847 .navbar-toggle .icon-bar {
4848 display: block;
4849 width: 22px;
4850 height: 2px;
4851 border-radius: 1px; }
4852 /* line 215, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4853 .navbar-toggle .icon-bar + .icon-bar {
4854 margin-top: 4px; }
4855 @media (min-width: 768px) {
4856 /* line 191, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4857 .navbar-toggle {
4858 display: none; } }
4859
4860/* line 230, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4861.navbar-nav {
4862 margin: 7.5px -15px; }
4863 /* line 233, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4864 .navbar-nav > li > a {
4865 padding-top: 10px;
4866 padding-bottom: 10px;
4867 line-height: 20px; }
4868 @media (max-width: 767px) {
4869 /* line 241, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4870 .navbar-nav .open .dropdown-menu {
4871 position: static;
4872 float: none;
4873 width: auto;
4874 margin-top: 0;
4875 background-color: transparent;
4876 border: 0;
4877 box-shadow: none; }
4878 /* line 249, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4879 .navbar-nav .open .dropdown-menu > li > a,
4880 .navbar-nav .open .dropdown-menu .dropdown-header {
4881 padding: 5px 15px 5px 25px; }
4882 /* line 253, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4883 .navbar-nav .open .dropdown-menu > li > a {
4884 line-height: 20px; }
4885 /* line 255, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4886 .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus {
4887 background-image: none; } }
4888 @media (min-width: 768px) {
4889 /* line 230, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4890 .navbar-nav {
4891 float: left;
4892 margin: 0; }
4893 /* line 268, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4894 .navbar-nav > li {
4895 float: left; }
4896 /* line 270, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4897 .navbar-nav > li > a {
4898 padding-top: 15px;
4899 padding-bottom: 15px; } }
4900
4901/* line 284, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4902.navbar-form {
4903 padding: 10px 15px;
4904 margin-right: -15px;
4905 margin-left: -15px;
4906 border-top: 1px solid transparent;
4907 border-bottom: 1px solid transparent;
4908 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
4909 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
4910 margin-top: 8px;
4911 margin-bottom: 8px; }
4912 @media (min-width: 768px) {
4913 /* line 468, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
4914 .navbar-form .form-group {
4915 display: inline-block;
4916 margin-bottom: 0;
4917 vertical-align: middle; }
4918 /* line 475, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
4919 .navbar-form .form-control {
4920 display: inline-block;
4921 width: auto;
4922 vertical-align: middle; }
4923 /* line 482, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
4924 .navbar-form .form-control-static {
4925 display: inline-block; }
4926 /* line 486, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
4927 .navbar-form .input-group {
4928 display: inline-table;
4929 vertical-align: middle; }
4930 /* line 490, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
4931 .navbar-form .input-group .input-group-addon,
4932 .navbar-form .input-group .input-group-btn,
4933 .navbar-form .input-group .form-control {
4934 width: auto; }
4935 /* line 498, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
4936 .navbar-form .input-group > .form-control {
4937 width: 100%; }
4938 /* line 502, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
4939 .navbar-form .control-label {
4940 margin-bottom: 0;
4941 vertical-align: middle; }
4942 /* line 509, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
4943 .navbar-form .radio,
4944 .navbar-form .checkbox {
4945 display: inline-block;
4946 margin-top: 0;
4947 margin-bottom: 0;
4948 vertical-align: middle; }
4949 /* line 516, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
4950 .navbar-form .radio label,
4951 .navbar-form .checkbox label {
4952 padding-left: 0; }
4953 /* line 520, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
4954 .navbar-form .radio input[type="radio"],
4955 .navbar-form .checkbox input[type="checkbox"] {
4956 position: relative;
4957 margin-left: 0; }
4958 /* line 527, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_forms.scss */
4959 .navbar-form .has-feedback .form-control-feedback {
4960 top: 0; } }
4961 @media (max-width: 767px) {
4962 /* line 296, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4963 .navbar-form .form-group {
4964 margin-bottom: 5px; }
4965 /* line 300, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4966 .navbar-form .form-group:last-child {
4967 margin-bottom: 0; } }
4968 @media (min-width: 768px) {
4969 /* line 284, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4970 .navbar-form {
4971 width: auto;
4972 padding-top: 0;
4973 padding-bottom: 0;
4974 margin-right: 0;
4975 margin-left: 0;
4976 border: 0;
4977 -webkit-box-shadow: none;
4978 box-shadow: none; } }
4979
4980/* line 325, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4981.navbar-nav > li > .dropdown-menu {
4982 margin-top: 0;
4983 border-top-left-radius: 0;
4984 border-top-right-radius: 0; }
4985
4986/* line 330, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4987.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
4988 margin-bottom: 0;
4989 border-top-left-radius: 4px;
4990 border-top-right-radius: 4px;
4991 border-bottom-right-radius: 0;
4992 border-bottom-left-radius: 0; }
4993
4994/* line 341, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4995.navbar-btn {
4996 margin-top: 8px;
4997 margin-bottom: 8px; }
4998 /* line 344, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
4999 .navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn {
5000 margin-top: 10px;
5001 margin-bottom: 10px; }
5002 /* line 347, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5003 .navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn {
5004 margin-top: 14px;
5005 margin-bottom: 14px; }
5006
5007/* line 357, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5008.navbar-text {
5009 margin-top: 15px;
5010 margin-bottom: 15px; }
5011 @media (min-width: 768px) {
5012 /* line 357, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5013 .navbar-text {
5014 float: left;
5015 margin-right: 15px;
5016 margin-left: 15px; } }
5017
5018@media (min-width: 768px) {
5019 /* line 377, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5020 .navbar-left {
5021 float: left !important; }
5022
5023 /* line 380, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5024 .navbar-right {
5025 float: right !important;
5026 margin-right: -15px; }
5027 /* line 384, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5028 .navbar-right ~ .navbar-right {
5029 margin-right: 0; } }
5030/* line 395, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5031.navbar-default {
5032 background-color: #f8f8f8;
5033 border-color: #e7e7e7; }
5034 /* line 399, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5035 .navbar-default .navbar-brand {
5036 color: #777; }
5037 /* line 401, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5038 .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {
5039 color: #5e5e5e;
5040 background-color: transparent; }
5041 /* line 408, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5042 .navbar-default .navbar-text {
5043 color: #777; }
5044 /* line 413, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5045 .navbar-default .navbar-nav > li > a {
5046 color: #777; }
5047 /* line 416, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5048 .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {
5049 color: #333;
5050 background-color: transparent; }
5051 /* line 423, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5052 .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
5053 color: #555;
5054 background-color: #e7e7e7; }
5055 /* line 431, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5056 .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus {
5057 color: #ccc;
5058 background-color: transparent; }
5059 /* line 442, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5060 .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus {
5061 color: #555;
5062 background-color: #e7e7e7; }
5063 @media (max-width: 767px) {
5064 /* line 453, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5065 .navbar-default .navbar-nav .open .dropdown-menu > li > a {
5066 color: #777; }
5067 /* line 455, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5068 .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
5069 color: #333;
5070 background-color: transparent; }
5071 /* line 462, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5072 .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 {
5073 color: #555;
5074 background-color: #e7e7e7; }
5075 /* line 470, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5076 .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 {
5077 color: #ccc;
5078 background-color: transparent; } }
5079 /* line 481, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5080 .navbar-default .navbar-toggle {
5081 border-color: #ddd; }
5082 /* line 483, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5083 .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
5084 background-color: #ddd; }
5085 /* line 487, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5086 .navbar-default .navbar-toggle .icon-bar {
5087 background-color: #888; }
5088 /* line 492, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5089 .navbar-default .navbar-collapse,
5090 .navbar-default .navbar-form {
5091 border-color: #e7e7e7; }
5092 /* line 502, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5093 .navbar-default .navbar-link {
5094 color: #777; }
5095 /* line 504, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5096 .navbar-default .navbar-link:hover {
5097 color: #333; }
5098 /* line 509, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5099 .navbar-default .btn-link {
5100 color: #777; }
5101 /* line 511, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5102 .navbar-default .btn-link:hover, .navbar-default .btn-link:focus {
5103 color: #333; }
5104 /* line 517, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5105 .navbar-default .btn-link[disabled]:hover, .navbar-default .btn-link[disabled]:focus, fieldset[disabled] .navbar-default .btn-link:hover, fieldset[disabled] .navbar-default .btn-link:focus {
5106 color: #ccc; }
5107
5108/* line 527, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5109.navbar-inverse {
5110 background-color: #222;
5111 border-color: #090909; }
5112 /* line 531, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5113 .navbar-inverse .navbar-brand {
5114 color: #9d9d9d; }
5115 /* line 533, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5116 .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus {
5117 color: #fff;
5118 background-color: transparent; }
5119 /* line 540, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5120 .navbar-inverse .navbar-text {
5121 color: #9d9d9d; }
5122 /* line 545, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5123 .navbar-inverse .navbar-nav > li > a {
5124 color: #9d9d9d; }
5125 /* line 548, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5126 .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus {
5127 color: #fff;
5128 background-color: transparent; }
5129 /* line 555, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5130 .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus {
5131 color: #fff;
5132 background-color: #090909; }
5133 /* line 563, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5134 .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus {
5135 color: #444;
5136 background-color: transparent; }
5137 /* line 573, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5138 .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus {
5139 color: #fff;
5140 background-color: #090909; }
5141 @media (max-width: 767px) {
5142 /* line 584, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5143 .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
5144 border-color: #090909; }
5145 /* line 587, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5146 .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
5147 background-color: #090909; }
5148 /* line 590, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5149 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
5150 color: #9d9d9d; }
5151 /* line 592, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5152 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
5153 color: #fff;
5154 background-color: transparent; }
5155 /* line 599, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5156 .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 {
5157 color: #fff;
5158 background-color: #090909; }
5159 /* line 607, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5160 .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 {
5161 color: #444;
5162 background-color: transparent; } }
5163 /* line 619, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5164 .navbar-inverse .navbar-toggle {
5165 border-color: #333; }
5166 /* line 621, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5167 .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus {
5168 background-color: #333; }
5169 /* line 625, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5170 .navbar-inverse .navbar-toggle .icon-bar {
5171 background-color: #fff; }
5172 /* line 630, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5173 .navbar-inverse .navbar-collapse,
5174 .navbar-inverse .navbar-form {
5175 border-color: #101010; }
5176 /* line 635, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5177 .navbar-inverse .navbar-link {
5178 color: #9d9d9d; }
5179 /* line 637, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5180 .navbar-inverse .navbar-link:hover {
5181 color: #fff; }
5182 /* line 642, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5183 .navbar-inverse .btn-link {
5184 color: #9d9d9d; }
5185 /* line 644, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5186 .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus {
5187 color: #fff; }
5188 /* line 650, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss */
5189 .navbar-inverse .btn-link[disabled]:hover, .navbar-inverse .btn-link[disabled]:focus, fieldset[disabled] .navbar-inverse .btn-link:hover, fieldset[disabled] .navbar-inverse .btn-link:focus {
5190 color: #444; }
5191
5192/* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_breadcrumbs.scss */
5193.breadcrumb {
5194 padding: 8px 15px;
5195 margin-bottom: 20px;
5196 list-style: none;
5197 background-color: #f5f5f5;
5198 border-radius: 4px; }
5199 /* line 13, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_breadcrumbs.scss */
5200 .breadcrumb > li {
5201 display: inline-block; }
5202 /* line 16, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_breadcrumbs.scss */
5203 .breadcrumb > li + li:before {
5204 padding: 0 5px;
5205 color: #ccc;
5206 content: "/ "; }
5207 /* line 25, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_breadcrumbs.scss */
5208 .breadcrumb > .active {
5209 color: #777777; }
5210
5211/* line 4, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pagination.scss */
5212.pagination {
5213 display: inline-block;
5214 padding-left: 0;
5215 margin: 20px 0;
5216 border-radius: 4px; }
5217 /* line 10, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pagination.scss */
5218 .pagination > li {
5219 display: inline; }
5220 /* line 12, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pagination.scss */
5221 .pagination > li > a,
5222 .pagination > li > span {
5223 position: relative;
5224 float: left;
5225 padding: 6px 12px;
5226 margin-left: -1px;
5227 line-height: 1.42857;
5228 color: #337ab7;
5229 text-decoration: none;
5230 background-color: #fff;
5231 border: 1px solid #ddd; }
5232 /* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pagination.scss */
5233 .pagination > li > a:hover, .pagination > li > a:focus,
5234 .pagination > li > span:hover,
5235 .pagination > li > span:focus {
5236 z-index: 2;
5237 color: #23527c;
5238 background-color: #eeeeee;
5239 border-color: #ddd; }
5240 /* line 33, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pagination.scss */
5241 .pagination > li:first-child > a,
5242 .pagination > li:first-child > span {
5243 margin-left: 0;
5244 border-top-left-radius: 4px;
5245 border-bottom-left-radius: 4px; }
5246 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pagination.scss */
5247 .pagination > li:last-child > a,
5248 .pagination > li:last-child > span {
5249 border-top-right-radius: 4px;
5250 border-bottom-right-radius: 4px; }
5251 /* line 49, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pagination.scss */
5252 .pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus,
5253 .pagination > .active > span,
5254 .pagination > .active > span:hover,
5255 .pagination > .active > span:focus {
5256 z-index: 3;
5257 color: #fff;
5258 cursor: default;
5259 background-color: #337ab7;
5260 border-color: #337ab7; }
5261 /* line 61, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pagination.scss */
5262 .pagination > .disabled > span,
5263 .pagination > .disabled > span:hover,
5264 .pagination > .disabled > span:focus,
5265 .pagination > .disabled > a,
5266 .pagination > .disabled > a:hover,
5267 .pagination > .disabled > a:focus {
5268 color: #777777;
5269 cursor: not-allowed;
5270 background-color: #fff;
5271 border-color: #ddd; }
5272
5273/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_pagination.scss */
5274.pagination-lg > li > a,
5275.pagination-lg > li > span {
5276 padding: 10px 16px;
5277 font-size: 18px;
5278 line-height: 1.33333; }
5279/* line 12, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_pagination.scss */
5280.pagination-lg > li:first-child > a,
5281.pagination-lg > li:first-child > span {
5282 border-top-left-radius: 6px;
5283 border-bottom-left-radius: 6px; }
5284/* line 18, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_pagination.scss */
5285.pagination-lg > li:last-child > a,
5286.pagination-lg > li:last-child > span {
5287 border-top-right-radius: 6px;
5288 border-bottom-right-radius: 6px; }
5289
5290/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_pagination.scss */
5291.pagination-sm > li > a,
5292.pagination-sm > li > span {
5293 padding: 5px 10px;
5294 font-size: 12px;
5295 line-height: 1.5; }
5296/* line 12, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_pagination.scss */
5297.pagination-sm > li:first-child > a,
5298.pagination-sm > li:first-child > span {
5299 border-top-left-radius: 3px;
5300 border-bottom-left-radius: 3px; }
5301/* line 18, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_pagination.scss */
5302.pagination-sm > li:last-child > a,
5303.pagination-sm > li:last-child > span {
5304 border-top-right-radius: 3px;
5305 border-bottom-right-radius: 3px; }
5306
5307/* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pager.scss */
5308.pager {
5309 padding-left: 0;
5310 margin: 20px 0;
5311 text-align: center;
5312 list-style: none; }
5313 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
5314 .pager:before, .pager:after {
5315 display: table;
5316 content: " "; }
5317 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
5318 .pager:after {
5319 clear: both; }
5320 /* line 12, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pager.scss */
5321 .pager li {
5322 display: inline; }
5323 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pager.scss */
5324 .pager li > a,
5325 .pager li > span {
5326 display: inline-block;
5327 padding: 5px 14px;
5328 background-color: #fff;
5329 border: 1px solid #ddd;
5330 border-radius: 15px; }
5331 /* line 23, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pager.scss */
5332 .pager li > a:hover,
5333 .pager li > a:focus {
5334 text-decoration: none;
5335 background-color: #eeeeee; }
5336 /* line 31, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pager.scss */
5337 .pager .next > a,
5338 .pager .next > span {
5339 float: right; }
5340 /* line 38, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pager.scss */
5341 .pager .previous > a,
5342 .pager .previous > span {
5343 float: left; }
5344 /* line 45, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_pager.scss */
5345 .pager .disabled > a,
5346 .pager .disabled > a:hover,
5347 .pager .disabled > a:focus,
5348 .pager .disabled > span {
5349 color: #777777;
5350 cursor: not-allowed;
5351 background-color: #fff; }
5352
5353/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_labels.scss */
5354.label {
5355 display: inline;
5356 padding: .2em .6em .3em;
5357 font-size: 75%;
5358 font-weight: 700;
5359 line-height: 1;
5360 color: #fff;
5361 text-align: center;
5362 white-space: nowrap;
5363 vertical-align: baseline;
5364 border-radius: .25em; }
5365 /* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_labels.scss */
5366 .label:empty {
5367 display: none; }
5368 /* line 25, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_labels.scss */
5369 .btn .label {
5370 position: relative;
5371 top: -1px; }
5372
5373/* line 33, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_labels.scss */
5374a.label:hover, a.label:focus {
5375 color: #fff;
5376 text-decoration: none;
5377 cursor: pointer; }
5378
5379/* line 44, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_labels.scss */
5380.label-default {
5381 background-color: #777777; }
5382 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_labels.scss */
5383 .label-default[href]:hover, .label-default[href]:focus {
5384 background-color: #5e5e5e; }
5385
5386/* line 48, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_labels.scss */
5387.label-primary {
5388 background-color: #337ab7; }
5389 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_labels.scss */
5390 .label-primary[href]:hover, .label-primary[href]:focus {
5391 background-color: #286090; }
5392
5393/* line 52, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_labels.scss */
5394.label-success {
5395 background-color: #5cb85c; }
5396 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_labels.scss */
5397 .label-success[href]:hover, .label-success[href]:focus {
5398 background-color: #449d44; }
5399
5400/* line 56, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_labels.scss */
5401.label-info {
5402 background-color: #5bc0de; }
5403 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_labels.scss */
5404 .label-info[href]:hover, .label-info[href]:focus {
5405 background-color: #31b0d5; }
5406
5407/* line 60, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_labels.scss */
5408.label-warning {
5409 background-color: #f0ad4e; }
5410 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_labels.scss */
5411 .label-warning[href]:hover, .label-warning[href]:focus {
5412 background-color: #ec971f; }
5413
5414/* line 64, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_labels.scss */
5415.label-danger {
5416 background-color: #d9534f; }
5417 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_labels.scss */
5418 .label-danger[href]:hover, .label-danger[href]:focus {
5419 background-color: #c9302c; }
5420
5421/* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_badges.scss */
5422.badge {
5423 display: inline-block;
5424 min-width: 10px;
5425 padding: 3px 7px;
5426 font-size: 12px;
5427 font-weight: bold;
5428 line-height: 1;
5429 color: #fff;
5430 text-align: center;
5431 white-space: nowrap;
5432 vertical-align: middle;
5433 background-color: #777777;
5434 border-radius: 10px; }
5435 /* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_badges.scss */
5436 .badge:empty {
5437 display: none; }
5438 /* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_badges.scss */
5439 .btn .badge {
5440 position: relative;
5441 top: -1px; }
5442 /* line 32, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_badges.scss */
5443 .btn-xs .badge, .btn-group-xs > .btn .badge, .btn-group-xs > .btn .badge {
5444 top: 0;
5445 padding: 1px 5px; }
5446 /* line 41, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_badges.scss */
5447 .list-group-item.active > .badge, .nav-pills > .active > a > .badge {
5448 color: #337ab7;
5449 background-color: #fff; }
5450 /* line 47, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_badges.scss */
5451 .list-group-item > .badge {
5452 float: right; }
5453 /* line 51, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_badges.scss */
5454 .list-group-item > .badge + .badge {
5455 margin-right: 5px; }
5456 /* line 55, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_badges.scss */
5457 .nav-pills > li > a > .badge {
5458 margin-left: 3px; }
5459
5460/* line 62, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_badges.scss */
5461a.badge:hover, a.badge:focus {
5462 color: #fff;
5463 text-decoration: none;
5464 cursor: pointer; }
5465
5466/* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_jumbotron.scss */
5467.jumbotron {
5468 padding-top: 30px;
5469 padding-bottom: 30px;
5470 margin-bottom: 30px;
5471 color: inherit;
5472 background-color: #eeeeee; }
5473 /* line 13, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_jumbotron.scss */
5474 .jumbotron h1,
5475 .jumbotron .h1 {
5476 color: inherit; }
5477 /* line 18, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_jumbotron.scss */
5478 .jumbotron p {
5479 margin-bottom: 15px;
5480 font-size: 21px;
5481 font-weight: 200; }
5482 /* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_jumbotron.scss */
5483 .jumbotron > hr {
5484 border-top-color: #d5d5d5; }
5485 /* line 28, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_jumbotron.scss */
5486 .container .jumbotron, .container-fluid .jumbotron {
5487 padding-right: 15px;
5488 padding-left: 15px;
5489 border-radius: 6px; }
5490 /* line 35, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_jumbotron.scss */
5491 .jumbotron .container {
5492 max-width: 100%; }
5493 @media screen and (min-width: 768px) {
5494 /* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_jumbotron.scss */
5495 .jumbotron {
5496 padding-top: 48px;
5497 padding-bottom: 48px; }
5498 /* line 43, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_jumbotron.scss */
5499 .container .jumbotron, .container-fluid .jumbotron {
5500 padding-right: 60px;
5501 padding-left: 60px; }
5502 /* line 49, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_jumbotron.scss */
5503 .jumbotron h1,
5504 .jumbotron .h1 {
5505 font-size: 63px; } }
5506
5507/* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_thumbnails.scss */
5508.thumbnail {
5509 display: block;
5510 padding: 4px;
5511 margin-bottom: 20px;
5512 line-height: 1.42857;
5513 background-color: #fff;
5514 border: 1px solid #ddd;
5515 border-radius: 4px;
5516 -webkit-transition: border 0.2s ease-in-out;
5517 -o-transition: border 0.2s ease-in-out;
5518 transition: border 0.2s ease-in-out; }
5519 /* line 17, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_thumbnails.scss */
5520 .thumbnail > img,
5521 .thumbnail a > img {
5522 display: block;
5523 max-width: 100%;
5524 height: auto;
5525 margin-right: auto;
5526 margin-left: auto; }
5527 /* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_thumbnails.scss */
5528 .thumbnail .caption {
5529 padding: 9px;
5530 color: #333333; }
5531
5532/* line 34, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_thumbnails.scss */
5533a.thumbnail:hover,
5534a.thumbnail:focus,
5535a.thumbnail.active {
5536 border-color: #337ab7; }
5537
5538/* line 9, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_alerts.scss */
5539.alert {
5540 padding: 15px;
5541 margin-bottom: 20px;
5542 border: 1px solid transparent;
5543 border-radius: 4px; }
5544 /* line 16, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_alerts.scss */
5545 .alert h4 {
5546 margin-top: 0;
5547 color: inherit; }
5548 /* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_alerts.scss */
5549 .alert .alert-link {
5550 font-weight: bold; }
5551 /* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_alerts.scss */
5552 .alert > p,
5553 .alert > ul {
5554 margin-bottom: 0; }
5555 /* line 32, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_alerts.scss */
5556 .alert > p + p {
5557 margin-top: 5px; }
5558
5559/* line 42, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_alerts.scss */
5560.alert-dismissable,
5561.alert-dismissible {
5562 padding-right: 35px; }
5563 /* line 47, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_alerts.scss */
5564 .alert-dismissable .close,
5565 .alert-dismissible .close {
5566 position: relative;
5567 top: -2px;
5568 right: -21px;
5569 color: inherit; }
5570
5571/* line 59, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_alerts.scss */
5572.alert-success {
5573 color: #3c763d;
5574 background-color: #dff0d8;
5575 border-color: #d6e9c6; }
5576 /* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_alerts.scss */
5577 .alert-success hr {
5578 border-top-color: #c9e2b3; }
5579 /* line 12, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_alerts.scss */
5580 .alert-success .alert-link {
5581 color: #2b542c; }
5582
5583/* line 63, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_alerts.scss */
5584.alert-info {
5585 color: #31708f;
5586 background-color: #d9edf7;
5587 border-color: #bce8f1; }
5588 /* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_alerts.scss */
5589 .alert-info hr {
5590 border-top-color: #a6e1ec; }
5591 /* line 12, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_alerts.scss */
5592 .alert-info .alert-link {
5593 color: #245269; }
5594
5595/* line 67, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_alerts.scss */
5596.alert-warning {
5597 color: #8a6d3b;
5598 background-color: #fcf8e3;
5599 border-color: #faebcc; }
5600 /* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_alerts.scss */
5601 .alert-warning hr {
5602 border-top-color: #f7e1b5; }
5603 /* line 12, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_alerts.scss */
5604 .alert-warning .alert-link {
5605 color: #66512c; }
5606
5607/* line 71, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_alerts.scss */
5608.alert-danger {
5609 color: #a94442;
5610 background-color: #f2dede;
5611 border-color: #ebccd1; }
5612 /* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_alerts.scss */
5613 .alert-danger hr {
5614 border-top-color: #e4b9c0; }
5615 /* line 12, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_alerts.scss */
5616 .alert-danger .alert-link {
5617 color: #843534; }
5618
5619@-webkit-keyframes progress-bar-stripes {
5620 from {
5621 background-position: 40px 0; }
5622 to {
5623 background-position: 0 0; } }
5624@keyframes progress-bar-stripes {
5625 from {
5626 background-position: 40px 0; }
5627 to {
5628 background-position: 0 0; } }
5629/* line 26, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_progress-bars.scss */
5630.progress {
5631 height: 20px;
5632 margin-bottom: 20px;
5633 overflow: hidden;
5634 background-color: #f5f5f5;
5635 border-radius: 4px;
5636 -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
5637 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); }
5638
5639/* line 36, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_progress-bars.scss */
5640.progress-bar {
5641 float: left;
5642 width: 0%;
5643 height: 100%;
5644 font-size: 12px;
5645 line-height: 20px;
5646 color: #fff;
5647 text-align: center;
5648 background-color: #337ab7;
5649 -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5650 box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5651 -webkit-transition: width 0.6s ease;
5652 -o-transition: width 0.6s ease;
5653 transition: width 0.6s ease; }
5654
5655/* line 54, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_progress-bars.scss */
5656.progress-striped .progress-bar,
5657.progress-bar-striped {
5658 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);
5659 background-image: -o-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);
5660 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);
5661 background-size: 40px 40px; }
5662
5663/* line 64, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_progress-bars.scss */
5664.progress.active .progress-bar,
5665.progress-bar.active {
5666 -webkit-animation: progress-bar-stripes 2s linear infinite;
5667 -o-animation: progress-bar-stripes 2s linear infinite;
5668 animation: progress-bar-stripes 2s linear infinite; }
5669
5670/* line 73, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_progress-bars.scss */
5671.progress-bar-success {
5672 background-color: #5cb85c; }
5673 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_progress-bar.scss */
5674 .progress-striped .progress-bar-success {
5675 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);
5676 background-image: -o-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);
5677 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); }
5678
5679/* line 77, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_progress-bars.scss */
5680.progress-bar-info {
5681 background-color: #5bc0de; }
5682 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_progress-bar.scss */
5683 .progress-striped .progress-bar-info {
5684 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);
5685 background-image: -o-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);
5686 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); }
5687
5688/* line 81, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_progress-bars.scss */
5689.progress-bar-warning {
5690 background-color: #f0ad4e; }
5691 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_progress-bar.scss */
5692 .progress-striped .progress-bar-warning {
5693 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);
5694 background-image: -o-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);
5695 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); }
5696
5697/* line 85, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_progress-bars.scss */
5698.progress-bar-danger {
5699 background-color: #d9534f; }
5700 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_progress-bar.scss */
5701 .progress-striped .progress-bar-danger {
5702 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);
5703 background-image: -o-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);
5704 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); }
5705
5706/* line 1, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5707.media {
5708 margin-top: 15px; }
5709 /* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5710 .media:first-child {
5711 margin-top: 0; }
5712
5713/* line 10, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5714.media,
5715.media-body {
5716 overflow: hidden;
5717 zoom: 1; }
5718
5719/* line 16, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5720.media-body {
5721 width: 10000px; }
5722
5723/* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5724.media-object {
5725 display: block; }
5726 /* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5727 .media-object.img-thumbnail {
5728 max-width: none; }
5729
5730/* line 29, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5731.media-right,
5732.media > .pull-right {
5733 padding-left: 10px; }
5734
5735/* line 34, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5736.media-left,
5737.media > .pull-left {
5738 padding-right: 10px; }
5739
5740/* line 39, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5741.media-left,
5742.media-right,
5743.media-body {
5744 display: table-cell;
5745 vertical-align: top; }
5746
5747/* line 46, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5748.media-middle {
5749 vertical-align: middle; }
5750
5751/* line 50, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5752.media-bottom {
5753 vertical-align: bottom; }
5754
5755/* line 55, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5756.media-heading {
5757 margin-top: 0;
5758 margin-bottom: 5px; }
5759
5760/* line 63, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_media.scss */
5761.media-list {
5762 padding-left: 0;
5763 list-style: none; }
5764
5765/* line 10, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5766.list-group {
5767 padding-left: 0;
5768 margin-bottom: 20px; }
5769
5770/* line 21, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5771.list-group-item {
5772 position: relative;
5773 display: block;
5774 padding: 10px 15px;
5775 margin-bottom: -1px;
5776 background-color: #fff;
5777 border: 1px solid #ddd; }
5778 /* line 31, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5779 .list-group-item:first-child {
5780 border-top-left-radius: 4px;
5781 border-top-right-radius: 4px; }
5782 /* line 34, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5783 .list-group-item:last-child {
5784 margin-bottom: 0;
5785 border-bottom-right-radius: 4px;
5786 border-bottom-left-radius: 4px; }
5787 /* line 40, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5788 .list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus {
5789 color: #777777;
5790 cursor: not-allowed;
5791 background-color: #eeeeee; }
5792 /* line 48, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5793 .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading {
5794 color: inherit; }
5795 /* line 51, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5796 .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text {
5797 color: #777777; }
5798 /* line 57, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5799 .list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {
5800 z-index: 2;
5801 color: #fff;
5802 background-color: #337ab7;
5803 border-color: #337ab7; }
5804 /* line 66, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5805 .list-group-item.active .list-group-item-heading,
5806 .list-group-item.active .list-group-item-heading > small,
5807 .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading,
5808 .list-group-item.active:hover .list-group-item-heading > small,
5809 .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading,
5810 .list-group-item.active:focus .list-group-item-heading > small,
5811 .list-group-item.active:focus .list-group-item-heading > .small {
5812 color: inherit; }
5813 /* line 71, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5814 .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 {
5815 color: #c7ddef; }
5816
5817/* line 83, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5818a.list-group-item,
5819button.list-group-item {
5820 color: #555; }
5821 /* line 87, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5822 a.list-group-item .list-group-item-heading,
5823 button.list-group-item .list-group-item-heading {
5824 color: #333; }
5825 /* line 92, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5826 a.list-group-item:hover, a.list-group-item:focus,
5827 button.list-group-item:hover,
5828 button.list-group-item:focus {
5829 color: #555;
5830 text-decoration: none;
5831 background-color: #f5f5f5; }
5832
5833/* line 100, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5834button.list-group-item {
5835 width: 100%;
5836 text-align: left; }
5837
5838/* line 4, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5839.list-group-item-success {
5840 color: #3c763d;
5841 background-color: #dff0d8; }
5842
5843/* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5844a.list-group-item-success,
5845button.list-group-item-success {
5846 color: #3c763d; }
5847 /* line 15, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5848 a.list-group-item-success .list-group-item-heading,
5849 button.list-group-item-success .list-group-item-heading {
5850 color: inherit; }
5851 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5852 a.list-group-item-success:hover, a.list-group-item-success:focus,
5853 button.list-group-item-success:hover,
5854 button.list-group-item-success:focus {
5855 color: #3c763d;
5856 background-color: #d0e9c6; }
5857 /* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5858 a.list-group-item-success.active, a.list-group-item-success.active:hover, a.list-group-item-success.active:focus,
5859 button.list-group-item-success.active,
5860 button.list-group-item-success.active:hover,
5861 button.list-group-item-success.active:focus {
5862 color: #fff;
5863 background-color: #3c763d;
5864 border-color: #3c763d; }
5865
5866/* line 4, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5867.list-group-item-info {
5868 color: #31708f;
5869 background-color: #d9edf7; }
5870
5871/* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5872a.list-group-item-info,
5873button.list-group-item-info {
5874 color: #31708f; }
5875 /* line 15, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5876 a.list-group-item-info .list-group-item-heading,
5877 button.list-group-item-info .list-group-item-heading {
5878 color: inherit; }
5879 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5880 a.list-group-item-info:hover, a.list-group-item-info:focus,
5881 button.list-group-item-info:hover,
5882 button.list-group-item-info:focus {
5883 color: #31708f;
5884 background-color: #c4e3f3; }
5885 /* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5886 a.list-group-item-info.active, a.list-group-item-info.active:hover, a.list-group-item-info.active:focus,
5887 button.list-group-item-info.active,
5888 button.list-group-item-info.active:hover,
5889 button.list-group-item-info.active:focus {
5890 color: #fff;
5891 background-color: #31708f;
5892 border-color: #31708f; }
5893
5894/* line 4, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5895.list-group-item-warning {
5896 color: #8a6d3b;
5897 background-color: #fcf8e3; }
5898
5899/* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5900a.list-group-item-warning,
5901button.list-group-item-warning {
5902 color: #8a6d3b; }
5903 /* line 15, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5904 a.list-group-item-warning .list-group-item-heading,
5905 button.list-group-item-warning .list-group-item-heading {
5906 color: inherit; }
5907 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5908 a.list-group-item-warning:hover, a.list-group-item-warning:focus,
5909 button.list-group-item-warning:hover,
5910 button.list-group-item-warning:focus {
5911 color: #8a6d3b;
5912 background-color: #faf2cc; }
5913 /* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5914 a.list-group-item-warning.active, a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus,
5915 button.list-group-item-warning.active,
5916 button.list-group-item-warning.active:hover,
5917 button.list-group-item-warning.active:focus {
5918 color: #fff;
5919 background-color: #8a6d3b;
5920 border-color: #8a6d3b; }
5921
5922/* line 4, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5923.list-group-item-danger {
5924 color: #a94442;
5925 background-color: #f2dede; }
5926
5927/* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5928a.list-group-item-danger,
5929button.list-group-item-danger {
5930 color: #a94442; }
5931 /* line 15, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5932 a.list-group-item-danger .list-group-item-heading,
5933 button.list-group-item-danger .list-group-item-heading {
5934 color: inherit; }
5935 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5936 a.list-group-item-danger:hover, a.list-group-item-danger:focus,
5937 button.list-group-item-danger:hover,
5938 button.list-group-item-danger:focus {
5939 color: #a94442;
5940 background-color: #ebcccc; }
5941 /* line 24, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_list-group.scss */
5942 a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus,
5943 button.list-group-item-danger.active,
5944 button.list-group-item-danger.active:hover,
5945 button.list-group-item-danger.active:focus {
5946 color: #fff;
5947 background-color: #a94442;
5948 border-color: #a94442; }
5949
5950/* line 121, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5951.list-group-item-heading {
5952 margin-top: 0;
5953 margin-bottom: 5px; }
5954
5955/* line 125, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_list-group.scss */
5956.list-group-item-text {
5957 margin-bottom: 0;
5958 line-height: 1.3; }
5959
5960/* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
5961.panel {
5962 margin-bottom: 20px;
5963 background-color: #fff;
5964 border: 1px solid transparent;
5965 border-radius: 4px;
5966 -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
5967 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }
5968
5969/* line 16, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
5970.panel-body {
5971 padding: 15px; }
5972 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
5973 .panel-body:before, .panel-body:after {
5974 display: table;
5975 content: " "; }
5976 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
5977 .panel-body:after {
5978 clear: both; }
5979
5980/* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
5981.panel-heading {
5982 padding: 10px 15px;
5983 border-bottom: 1px solid transparent;
5984 border-top-left-radius: 3px;
5985 border-top-right-radius: 3px; }
5986 /* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
5987 .panel-heading > .dropdown .dropdown-toggle {
5988 color: inherit; }
5989
5990/* line 33, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
5991.panel-title {
5992 margin-top: 0;
5993 margin-bottom: 0;
5994 font-size: 16px;
5995 color: inherit; }
5996 /* line 39, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
5997 .panel-title > a,
5998 .panel-title > small,
5999 .panel-title > .small,
6000 .panel-title > small > a,
6001 .panel-title > .small > a {
6002 color: inherit; }
6003
6004/* line 49, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6005.panel-footer {
6006 padding: 10px 15px;
6007 background-color: #f5f5f5;
6008 border-top: 1px solid #ddd;
6009 border-bottom-right-radius: 3px;
6010 border-bottom-left-radius: 3px; }
6011
6012/* line 63, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6013.panel > .list-group,
6014.panel > .panel-collapse > .list-group {
6015 margin-bottom: 0; }
6016 /* line 67, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6017 .panel > .list-group .list-group-item,
6018 .panel > .panel-collapse > .list-group .list-group-item {
6019 border-width: 1px 0;
6020 border-radius: 0; }
6021 /* line 74, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6022 .panel > .list-group:first-child .list-group-item:first-child,
6023 .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
6024 border-top: 0;
6025 border-top-left-radius: 3px;
6026 border-top-right-radius: 3px; }
6027 /* line 82, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6028 .panel > .list-group:last-child .list-group-item:last-child,
6029 .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
6030 border-bottom: 0;
6031 border-bottom-right-radius: 3px;
6032 border-bottom-left-radius: 3px; }
6033/* line 89, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6034.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
6035 border-top-left-radius: 0;
6036 border-top-right-radius: 0; }
6037
6038/* line 96, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6039.panel-heading + .list-group .list-group-item:first-child {
6040 border-top-width: 0; }
6041
6042/* line 100, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6043.list-group + .panel-footer {
6044 border-top-width: 0; }
6045
6046/* line 110, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6047.panel > .table, #inner .panel > table,
6048.panel > .table-responsive > .table,
6049#inner .panel > .table-responsive > table,
6050.panel > .panel-collapse > .table,
6051#inner .panel > .panel-collapse > table {
6052 margin-bottom: 0; }
6053 /* line 115, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6054 .panel > .table caption, #inner .panel > table caption,
6055 .panel > .table-responsive > .table caption,
6056 #inner .panel > .table-responsive > table caption,
6057 .panel > .panel-collapse > .table caption,
6058 #inner .panel > .panel-collapse > table caption {
6059 padding-right: 15px;
6060 padding-left: 15px; }
6061/* line 121, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6062.panel > .table:first-child, #inner .panel > table:first-child,
6063.panel > .table-responsive:first-child > .table:first-child,
6064#inner .panel > .table-responsive:first-child > table:first-child {
6065 border-top-left-radius: 3px;
6066 border-top-right-radius: 3px; }
6067 /* line 127, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6068 .panel > .table:first-child > thead:first-child > tr:first-child, #inner .panel > table:first-child > thead:first-child > tr:first-child,
6069 .panel > .table:first-child > tbody:first-child > tr:first-child,
6070 #inner .panel > table:first-child > tbody:first-child > tr:first-child,
6071 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
6072 #inner .panel > .table-responsive:first-child > table:first-child > thead:first-child > tr:first-child,
6073 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child,
6074 #inner .panel > .table-responsive:first-child > table:first-child > tbody:first-child > tr:first-child {
6075 border-top-left-radius: 3px;
6076 border-top-right-radius: 3px; }
6077 /* line 131, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6078 .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, #inner .panel > table:first-child > thead:first-child > tr:first-child td:first-child,
6079 .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
6080 #inner .panel > table:first-child > thead:first-child > tr:first-child th:first-child,
6081 .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
6082 #inner .panel > table:first-child > tbody:first-child > tr:first-child td:first-child,
6083 .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
6084 #inner .panel > table:first-child > tbody:first-child > tr:first-child th:first-child,
6085 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
6086 #inner .panel > .table-responsive:first-child > table:first-child > thead:first-child > tr:first-child td:first-child,
6087 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
6088 #inner .panel > .table-responsive:first-child > table:first-child > thead:first-child > tr:first-child th:first-child,
6089 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
6090 #inner .panel > .table-responsive:first-child > table:first-child > tbody:first-child > tr:first-child td:first-child,
6091 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child,
6092 #inner .panel > .table-responsive:first-child > table:first-child > tbody:first-child > tr:first-child th:first-child {
6093 border-top-left-radius: 3px; }
6094 /* line 135, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6095 .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, #inner .panel > table:first-child > thead:first-child > tr:first-child td:last-child,
6096 .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
6097 #inner .panel > table:first-child > thead:first-child > tr:first-child th:last-child,
6098 .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
6099 #inner .panel > table:first-child > tbody:first-child > tr:first-child td:last-child,
6100 .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
6101 #inner .panel > table:first-child > tbody:first-child > tr:first-child th:last-child,
6102 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
6103 #inner .panel > .table-responsive:first-child > table:first-child > thead:first-child > tr:first-child td:last-child,
6104 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
6105 #inner .panel > .table-responsive:first-child > table:first-child > thead:first-child > tr:first-child th:last-child,
6106 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
6107 #inner .panel > .table-responsive:first-child > table:first-child > tbody:first-child > tr:first-child td:last-child,
6108 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child,
6109 #inner .panel > .table-responsive:first-child > table:first-child > tbody:first-child > tr:first-child th:last-child {
6110 border-top-right-radius: 3px; }
6111/* line 143, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6112.panel > .table:last-child, #inner .panel > table:last-child,
6113.panel > .table-responsive:last-child > .table:last-child,
6114#inner .panel > .table-responsive:last-child > table:last-child {
6115 border-bottom-right-radius: 3px;
6116 border-bottom-left-radius: 3px; }
6117 /* line 149, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6118 .panel > .table:last-child > tbody:last-child > tr:last-child, #inner .panel > table:last-child > tbody:last-child > tr:last-child,
6119 .panel > .table:last-child > tfoot:last-child > tr:last-child,
6120 #inner .panel > table:last-child > tfoot:last-child > tr:last-child,
6121 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
6122 #inner .panel > .table-responsive:last-child > table:last-child > tbody:last-child > tr:last-child,
6123 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child,
6124 #inner .panel > .table-responsive:last-child > table:last-child > tfoot:last-child > tr:last-child {
6125 border-bottom-right-radius: 3px;
6126 border-bottom-left-radius: 3px; }
6127 /* line 153, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6128 .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, #inner .panel > table:last-child > tbody:last-child > tr:last-child td:first-child,
6129 .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
6130 #inner .panel > table:last-child > tbody:last-child > tr:last-child th:first-child,
6131 .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
6132 #inner .panel > table:last-child > tfoot:last-child > tr:last-child td:first-child,
6133 .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
6134 #inner .panel > table:last-child > tfoot:last-child > tr:last-child th:first-child,
6135 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
6136 #inner .panel > .table-responsive:last-child > table:last-child > tbody:last-child > tr:last-child td:first-child,
6137 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
6138 #inner .panel > .table-responsive:last-child > table:last-child > tbody:last-child > tr:last-child th:first-child,
6139 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
6140 #inner .panel > .table-responsive:last-child > table:last-child > tfoot:last-child > tr:last-child td:first-child,
6141 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
6142 #inner .panel > .table-responsive:last-child > table:last-child > tfoot:last-child > tr:last-child th:first-child {
6143 border-bottom-left-radius: 3px; }
6144 /* line 157, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6145 .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, #inner .panel > table:last-child > tbody:last-child > tr:last-child td:last-child,
6146 .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
6147 #inner .panel > table:last-child > tbody:last-child > tr:last-child th:last-child,
6148 .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
6149 #inner .panel > table:last-child > tfoot:last-child > tr:last-child td:last-child,
6150 .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
6151 #inner .panel > table:last-child > tfoot:last-child > tr:last-child th:last-child,
6152 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
6153 #inner .panel > .table-responsive:last-child > table:last-child > tbody:last-child > tr:last-child td:last-child,
6154 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
6155 #inner .panel > .table-responsive:last-child > table:last-child > tbody:last-child > tr:last-child th:last-child,
6156 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
6157 #inner .panel > .table-responsive:last-child > table:last-child > tfoot:last-child > tr:last-child td:last-child,
6158 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
6159 #inner .panel > .table-responsive:last-child > table:last-child > tfoot:last-child > tr:last-child th:last-child {
6160 border-bottom-right-radius: 3px; }
6161/* line 164, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6162.panel > .panel-body + .table, #inner .panel > .panel-body + table,
6163.panel > .panel-body + .table-responsive,
6164.panel > .table + .panel-body,
6165#inner .panel > table + .panel-body,
6166.panel > .table-responsive + .panel-body {
6167 border-top: 1px solid #ddd; }
6168/* line 170, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6169.panel > .table > tbody:first-child > tr:first-child th, #inner .panel > table > tbody:first-child > tr:first-child th,
6170.panel > .table > tbody:first-child > tr:first-child td,
6171#inner .panel > table > tbody:first-child > tr:first-child td {
6172 border-top: 0; }
6173/* line 174, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6174.panel > .table-bordered,
6175.panel > .table-responsive > .table-bordered {
6176 border: 0; }
6177 /* line 181, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6178 .panel > .table-bordered > thead > tr > th:first-child,
6179 .panel > .table-bordered > thead > tr > td:first-child,
6180 .panel > .table-bordered > tbody > tr > th:first-child,
6181 .panel > .table-bordered > tbody > tr > td:first-child,
6182 .panel > .table-bordered > tfoot > tr > th:first-child,
6183 .panel > .table-bordered > tfoot > tr > td:first-child,
6184 .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
6185 .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
6186 .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
6187 .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
6188 .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
6189 .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
6190 border-left: 0; }
6191 /* line 185, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6192 .panel > .table-bordered > thead > tr > th:last-child,
6193 .panel > .table-bordered > thead > tr > td:last-child,
6194 .panel > .table-bordered > tbody > tr > th:last-child,
6195 .panel > .table-bordered > tbody > tr > td:last-child,
6196 .panel > .table-bordered > tfoot > tr > th:last-child,
6197 .panel > .table-bordered > tfoot > tr > td:last-child,
6198 .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
6199 .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
6200 .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
6201 .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
6202 .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
6203 .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
6204 border-right: 0; }
6205 /* line 194, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6206 .panel > .table-bordered > thead > tr:first-child > td,
6207 .panel > .table-bordered > thead > tr:first-child > th,
6208 .panel > .table-bordered > tbody > tr:first-child > td,
6209 .panel > .table-bordered > tbody > tr:first-child > th,
6210 .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
6211 .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
6212 .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
6213 .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
6214 border-bottom: 0; }
6215 /* line 203, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6216 .panel > .table-bordered > tbody > tr:last-child > td,
6217 .panel > .table-bordered > tbody > tr:last-child > th,
6218 .panel > .table-bordered > tfoot > tr:last-child > td,
6219 .panel > .table-bordered > tfoot > tr:last-child > th,
6220 .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
6221 .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
6222 .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
6223 .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
6224 border-bottom: 0; }
6225/* line 210, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6226.panel > .table-responsive {
6227 margin-bottom: 0;
6228 border: 0; }
6229
6230/* line 222, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6231.panel-group {
6232 margin-bottom: 20px; }
6233 /* line 226, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6234 .panel-group .panel {
6235 margin-bottom: 0;
6236 border-radius: 4px; }
6237 /* line 230, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6238 .panel-group .panel + .panel {
6239 margin-top: 5px; }
6240 /* line 235, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6241 .panel-group .panel-heading {
6242 border-bottom: 0; }
6243 /* line 238, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6244 .panel-group .panel-heading + .panel-collapse > .panel-body,
6245 .panel-group .panel-heading + .panel-collapse > .list-group {
6246 border-top: 1px solid #ddd; }
6247 /* line 244, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6248 .panel-group .panel-footer {
6249 border-top: 0; }
6250 /* line 246, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6251 .panel-group .panel-footer + .panel-collapse .panel-body {
6252 border-bottom: 1px solid #ddd; }
6253
6254/* line 254, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6255.panel-default {
6256 border-color: #ddd; }
6257 /* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6258 .panel-default > .panel-heading {
6259 color: #333333;
6260 background-color: #f5f5f5;
6261 border-color: #ddd; }
6262 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6263 .panel-default > .panel-heading + .panel-collapse > .panel-body {
6264 border-top-color: #ddd; }
6265 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6266 .panel-default > .panel-heading .badge {
6267 color: #f5f5f5;
6268 background-color: #333333; }
6269 /* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6270 .panel-default > .panel-footer + .panel-collapse > .panel-body {
6271 border-bottom-color: #ddd; }
6272
6273/* line 257, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6274.panel-primary {
6275 border-color: #337ab7; }
6276 /* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6277 .panel-primary > .panel-heading {
6278 color: #fff;
6279 background-color: #337ab7;
6280 border-color: #337ab7; }
6281 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6282 .panel-primary > .panel-heading + .panel-collapse > .panel-body {
6283 border-top-color: #337ab7; }
6284 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6285 .panel-primary > .panel-heading .badge {
6286 color: #337ab7;
6287 background-color: #fff; }
6288 /* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6289 .panel-primary > .panel-footer + .panel-collapse > .panel-body {
6290 border-bottom-color: #337ab7; }
6291
6292/* line 260, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6293.panel-success {
6294 border-color: #d6e9c6; }
6295 /* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6296 .panel-success > .panel-heading {
6297 color: #3c763d;
6298 background-color: #dff0d8;
6299 border-color: #d6e9c6; }
6300 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6301 .panel-success > .panel-heading + .panel-collapse > .panel-body {
6302 border-top-color: #d6e9c6; }
6303 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6304 .panel-success > .panel-heading .badge {
6305 color: #dff0d8;
6306 background-color: #3c763d; }
6307 /* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6308 .panel-success > .panel-footer + .panel-collapse > .panel-body {
6309 border-bottom-color: #d6e9c6; }
6310
6311/* line 263, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6312.panel-info {
6313 border-color: #bce8f1; }
6314 /* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6315 .panel-info > .panel-heading {
6316 color: #31708f;
6317 background-color: #d9edf7;
6318 border-color: #bce8f1; }
6319 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6320 .panel-info > .panel-heading + .panel-collapse > .panel-body {
6321 border-top-color: #bce8f1; }
6322 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6323 .panel-info > .panel-heading .badge {
6324 color: #d9edf7;
6325 background-color: #31708f; }
6326 /* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6327 .panel-info > .panel-footer + .panel-collapse > .panel-body {
6328 border-bottom-color: #bce8f1; }
6329
6330/* line 266, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6331.panel-warning {
6332 border-color: #faebcc; }
6333 /* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6334 .panel-warning > .panel-heading {
6335 color: #8a6d3b;
6336 background-color: #fcf8e3;
6337 border-color: #faebcc; }
6338 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6339 .panel-warning > .panel-heading + .panel-collapse > .panel-body {
6340 border-top-color: #faebcc; }
6341 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6342 .panel-warning > .panel-heading .badge {
6343 color: #fcf8e3;
6344 background-color: #8a6d3b; }
6345 /* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6346 .panel-warning > .panel-footer + .panel-collapse > .panel-body {
6347 border-bottom-color: #faebcc; }
6348
6349/* line 269, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_panels.scss */
6350.panel-danger {
6351 border-color: #ebccd1; }
6352 /* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6353 .panel-danger > .panel-heading {
6354 color: #a94442;
6355 background-color: #f2dede;
6356 border-color: #ebccd1; }
6357 /* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6358 .panel-danger > .panel-heading + .panel-collapse > .panel-body {
6359 border-top-color: #ebccd1; }
6360 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6361 .panel-danger > .panel-heading .badge {
6362 color: #f2dede;
6363 background-color: #a94442; }
6364 /* line 20, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_panels.scss */
6365 .panel-danger > .panel-footer + .panel-collapse > .panel-body {
6366 border-bottom-color: #ebccd1; }
6367
6368/* line 5, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-embed.scss */
6369.embed-responsive {
6370 position: relative;
6371 display: block;
6372 height: 0;
6373 padding: 0;
6374 overflow: hidden; }
6375 /* line 12, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-embed.scss */
6376 .embed-responsive .embed-responsive-item,
6377 .embed-responsive iframe,
6378 .embed-responsive embed,
6379 .embed-responsive object,
6380 .embed-responsive video {
6381 position: absolute;
6382 top: 0;
6383 bottom: 0;
6384 left: 0;
6385 width: 100%;
6386 height: 100%;
6387 border: 0; }
6388
6389/* line 28, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-embed.scss */
6390.embed-responsive-16by9 {
6391 padding-bottom: 56.25%; }
6392
6393/* line 33, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-embed.scss */
6394.embed-responsive-4by3 {
6395 padding-bottom: 75%; }
6396
6397/* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_wells.scss */
6398.well {
6399 min-height: 20px;
6400 padding: 19px;
6401 margin-bottom: 20px;
6402 background-color: #f5f5f5;
6403 border: 1px solid #e3e3e3;
6404 border-radius: 4px;
6405 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
6406 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); }
6407 /* line 15, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_wells.scss */
6408 .well blockquote {
6409 border-color: #ddd;
6410 border-color: rgba(0, 0, 0, 0.15); }
6411
6412/* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_wells.scss */
6413.well-lg {
6414 padding: 24px;
6415 border-radius: 6px; }
6416
6417/* line 26, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_wells.scss */
6418.well-sm {
6419 padding: 9px;
6420 border-radius: 3px; }
6421
6422/* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_close.scss */
6423.close {
6424 float: right;
6425 font-size: 21px;
6426 font-weight: bold;
6427 line-height: 1;
6428 color: #000;
6429 text-shadow: 0 1px 0 #fff;
6430 filter: alpha(opacity=20);
6431 opacity: 0.2; }
6432 /* line 15, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_close.scss */
6433 .close:hover, .close:focus {
6434 color: #000;
6435 text-decoration: none;
6436 cursor: pointer;
6437 filter: alpha(opacity=50);
6438 opacity: 0.5; }
6439
6440/* line 30, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_close.scss */
6441button.close {
6442 padding: 0;
6443 cursor: pointer;
6444 background: transparent;
6445 border: 0;
6446 -webkit-appearance: none;
6447 appearance: none; }
6448
6449/* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6450.modal-open {
6451 overflow: hidden; }
6452
6453/* line 16, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6454.modal {
6455 position: fixed;
6456 top: 0;
6457 right: 0;
6458 bottom: 0;
6459 left: 0;
6460 z-index: 1050;
6461 display: none;
6462 overflow: hidden;
6463 -webkit-overflow-scrolling: touch;
6464 outline: 0; }
6465 /* line 32, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6466 .modal.fade .modal-dialog {
6467 -webkit-transform: translate(0, -25%);
6468 -ms-transform: translate(0, -25%);
6469 -o-transform: translate(0, -25%);
6470 transform: translate(0, -25%);
6471 -webkit-transition: -webkit-transform 0.3s ease-out;
6472 -moz-transition: -moz-transform 0.3s ease-out;
6473 -o-transition: -o-transform 0.3s ease-out;
6474 transition: transform 0.3s ease-out; }
6475 /* line 36, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6476 .modal.in .modal-dialog {
6477 -webkit-transform: translate(0, 0);
6478 -ms-transform: translate(0, 0);
6479 -o-transform: translate(0, 0);
6480 transform: translate(0, 0); }
6481
6482/* line 38, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6483.modal-open .modal {
6484 overflow-x: hidden;
6485 overflow-y: auto; }
6486
6487/* line 44, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6488.modal-dialog {
6489 position: relative;
6490 width: auto;
6491 margin: 10px; }
6492
6493/* line 51, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6494.modal-content {
6495 position: relative;
6496 background-color: #fff;
6497 background-clip: padding-box;
6498 border: 1px solid #999;
6499 border: 1px solid rgba(0, 0, 0, 0.2);
6500 border-radius: 6px;
6501 -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
6502 box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
6503 outline: 0; }
6504
6505/* line 64, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6506.modal-backdrop {
6507 position: fixed;
6508 top: 0;
6509 right: 0;
6510 bottom: 0;
6511 left: 0;
6512 z-index: 1040;
6513 background-color: #000; }
6514 /* line 73, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6515 .modal-backdrop.fade {
6516 filter: alpha(opacity=0);
6517 opacity: 0; }
6518 /* line 74, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6519 .modal-backdrop.in {
6520 filter: alpha(opacity=50);
6521 opacity: 0.5; }
6522
6523/* line 79, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6524.modal-header {
6525 padding: 15px;
6526 border-bottom: 1px solid #e5e5e5; }
6527 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
6528 .modal-header:before, .modal-header:after {
6529 display: table;
6530 content: " "; }
6531 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
6532 .modal-header:after {
6533 clear: both; }
6534
6535/* line 85, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6536.modal-header .close {
6537 margin-top: -2px; }
6538
6539/* line 90, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6540.modal-title {
6541 margin: 0;
6542 line-height: 1.42857; }
6543
6544/* line 97, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6545.modal-body {
6546 position: relative;
6547 padding: 15px; }
6548
6549/* line 103, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6550.modal-footer {
6551 padding: 15px;
6552 text-align: right;
6553 border-top: 1px solid #e5e5e5; }
6554 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
6555 .modal-footer:before, .modal-footer:after {
6556 display: table;
6557 content: " "; }
6558 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
6559 .modal-footer:after {
6560 clear: both; }
6561 /* line 110, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6562 .modal-footer .btn + .btn {
6563 margin-bottom: 0;
6564 margin-left: 5px; }
6565 /* line 115, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6566 .modal-footer .btn-group .btn + .btn {
6567 margin-left: -1px; }
6568 /* line 119, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6569 .modal-footer .btn-block + .btn-block {
6570 margin-left: 0; }
6571
6572/* line 125, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6573.modal-scrollbar-measure {
6574 position: absolute;
6575 top: -9999px;
6576 width: 50px;
6577 height: 50px;
6578 overflow: scroll; }
6579
6580@media (min-width: 768px) {
6581 /* line 136, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6582 .modal-dialog {
6583 width: 600px;
6584 margin: 30px auto; }
6585
6586 /* line 140, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6587 .modal-content {
6588 -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
6589 box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); }
6590
6591 /* line 145, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6592 .modal-sm {
6593 width: 300px; } }
6594@media (min-width: 992px) {
6595 /* line 149, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_modals.scss */
6596 .modal-lg {
6597 width: 900px; } }
6598/* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6599.tooltip {
6600 position: absolute;
6601 z-index: 1070;
6602 display: block;
6603 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
6604 font-style: normal;
6605 font-weight: 400;
6606 line-height: 1.42857;
6607 line-break: auto;
6608 text-align: left;
6609 text-align: start;
6610 text-decoration: none;
6611 text-shadow: none;
6612 text-transform: none;
6613 letter-spacing: normal;
6614 word-break: normal;
6615 word-spacing: normal;
6616 word-wrap: normal;
6617 white-space: normal;
6618 font-size: 12px;
6619 filter: alpha(opacity=0);
6620 opacity: 0; }
6621 /* line 18, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6622 .tooltip.in {
6623 filter: alpha(opacity=90);
6624 opacity: 0.9; }
6625 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6626 .tooltip.top {
6627 padding: 5px 0;
6628 margin-top: -3px; }
6629 /* line 23, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6630 .tooltip.right {
6631 padding: 0 5px;
6632 margin-left: 3px; }
6633 /* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6634 .tooltip.bottom {
6635 padding: 5px 0;
6636 margin-top: 3px; }
6637 /* line 31, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6638 .tooltip.left {
6639 padding: 0 5px;
6640 margin-left: -3px; }
6641 /* line 37, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6642 .tooltip.top .tooltip-arrow {
6643 bottom: 0;
6644 left: 50%;
6645 margin-left: -5px;
6646 border-width: 5px 5px 0;
6647 border-top-color: #000; }
6648 /* line 44, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6649 .tooltip.top-left .tooltip-arrow {
6650 right: 5px;
6651 bottom: 0;
6652 margin-bottom: -5px;
6653 border-width: 5px 5px 0;
6654 border-top-color: #000; }
6655 /* line 51, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6656 .tooltip.top-right .tooltip-arrow {
6657 bottom: 0;
6658 left: 5px;
6659 margin-bottom: -5px;
6660 border-width: 5px 5px 0;
6661 border-top-color: #000; }
6662 /* line 58, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6663 .tooltip.right .tooltip-arrow {
6664 top: 50%;
6665 left: 0;
6666 margin-top: -5px;
6667 border-width: 5px 5px 5px 0;
6668 border-right-color: #000; }
6669 /* line 65, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6670 .tooltip.left .tooltip-arrow {
6671 top: 50%;
6672 right: 0;
6673 margin-top: -5px;
6674 border-width: 5px 0 5px 5px;
6675 border-left-color: #000; }
6676 /* line 72, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6677 .tooltip.bottom .tooltip-arrow {
6678 top: 0;
6679 left: 50%;
6680 margin-left: -5px;
6681 border-width: 0 5px 5px;
6682 border-bottom-color: #000; }
6683 /* line 79, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6684 .tooltip.bottom-left .tooltip-arrow {
6685 top: 0;
6686 right: 5px;
6687 margin-top: -5px;
6688 border-width: 0 5px 5px;
6689 border-bottom-color: #000; }
6690 /* line 86, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6691 .tooltip.bottom-right .tooltip-arrow {
6692 top: 0;
6693 left: 5px;
6694 margin-top: -5px;
6695 border-width: 0 5px 5px;
6696 border-bottom-color: #000; }
6697
6698/* line 96, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6699.tooltip-inner {
6700 max-width: 200px;
6701 padding: 3px 8px;
6702 color: #fff;
6703 text-align: center;
6704 background-color: #000;
6705 border-radius: 4px; }
6706
6707/* line 106, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_tooltip.scss */
6708.tooltip-arrow {
6709 position: absolute;
6710 width: 0;
6711 height: 0;
6712 border-color: transparent;
6713 border-style: solid; }
6714
6715/* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6716.popover {
6717 position: absolute;
6718 top: 0;
6719 left: 0;
6720 z-index: 1060;
6721 display: none;
6722 max-width: 276px;
6723 padding: 1px;
6724 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
6725 font-style: normal;
6726 font-weight: 400;
6727 line-height: 1.42857;
6728 line-break: auto;
6729 text-align: left;
6730 text-align: start;
6731 text-decoration: none;
6732 text-shadow: none;
6733 text-transform: none;
6734 letter-spacing: normal;
6735 word-break: normal;
6736 word-spacing: normal;
6737 word-wrap: normal;
6738 white-space: normal;
6739 font-size: 14px;
6740 background-color: #fff;
6741 background-clip: padding-box;
6742 border: 1px solid #ccc;
6743 border: 1px solid rgba(0, 0, 0, 0.2);
6744 border-radius: 6px;
6745 -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
6746 box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); }
6747 /* line 26, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6748 .popover.top {
6749 margin-top: -10px; }
6750 /* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6751 .popover.right {
6752 margin-left: 10px; }
6753 /* line 28, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6754 .popover.bottom {
6755 margin-top: 10px; }
6756 /* line 29, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6757 .popover.left {
6758 margin-left: -10px; }
6759 /* line 33, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6760 .popover > .arrow {
6761 border-width: 11px; }
6762 /* line 36, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6763 .popover > .arrow, .popover > .arrow:after {
6764 position: absolute;
6765 display: block;
6766 width: 0;
6767 height: 0;
6768 border-color: transparent;
6769 border-style: solid; }
6770 /* line 46, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6771 .popover > .arrow:after {
6772 content: "";
6773 border-width: 10px; }
6774 /* line 52, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6775 .popover.top > .arrow {
6776 bottom: -11px;
6777 left: 50%;
6778 margin-left: -11px;
6779 border-top-color: #999999;
6780 border-top-color: rgba(0, 0, 0, 0.25);
6781 border-bottom-width: 0; }
6782 /* line 59, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6783 .popover.top > .arrow:after {
6784 bottom: 1px;
6785 margin-left: -10px;
6786 content: " ";
6787 border-top-color: #fff;
6788 border-bottom-width: 0; }
6789 /* line 67, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6790 .popover.right > .arrow {
6791 top: 50%;
6792 left: -11px;
6793 margin-top: -11px;
6794 border-right-color: #999999;
6795 border-right-color: rgba(0, 0, 0, 0.25);
6796 border-left-width: 0; }
6797 /* line 74, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6798 .popover.right > .arrow:after {
6799 bottom: -10px;
6800 left: 1px;
6801 content: " ";
6802 border-right-color: #fff;
6803 border-left-width: 0; }
6804 /* line 82, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6805 .popover.bottom > .arrow {
6806 top: -11px;
6807 left: 50%;
6808 margin-left: -11px;
6809 border-top-width: 0;
6810 border-bottom-color: #999999;
6811 border-bottom-color: rgba(0, 0, 0, 0.25); }
6812 /* line 89, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6813 .popover.bottom > .arrow:after {
6814 top: 1px;
6815 margin-left: -10px;
6816 content: " ";
6817 border-top-width: 0;
6818 border-bottom-color: #fff; }
6819 /* line 98, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6820 .popover.left > .arrow {
6821 top: 50%;
6822 right: -11px;
6823 margin-top: -11px;
6824 border-right-width: 0;
6825 border-left-color: #999999;
6826 border-left-color: rgba(0, 0, 0, 0.25); }
6827 /* line 105, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6828 .popover.left > .arrow:after {
6829 right: 1px;
6830 bottom: -10px;
6831 content: " ";
6832 border-right-width: 0;
6833 border-left-color: #fff; }
6834
6835/* line 115, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6836.popover-title {
6837 padding: 8px 14px;
6838 margin: 0;
6839 font-size: 14px;
6840 background-color: #f7f7f7;
6841 border-bottom: 1px solid #ebebeb;
6842 border-radius: 5px 5px 0 0; }
6843
6844/* line 124, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_popovers.scss */
6845.popover-content {
6846 padding: 9px 14px; }
6847
6848/* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6849.carousel {
6850 position: relative; }
6851
6852/* line 11, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6853.carousel-inner {
6854 position: relative;
6855 width: 100%;
6856 overflow: hidden; }
6857 /* line 16, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6858 .carousel-inner > .item {
6859 position: relative;
6860 display: none;
6861 -webkit-transition: 0.6s ease-in-out left;
6862 -o-transition: 0.6s ease-in-out left;
6863 transition: 0.6s ease-in-out left; }
6864 /* line 22, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6865 .carousel-inner > .item > img,
6866 .carousel-inner > .item > a > img {
6867 display: block;
6868 max-width: 100%;
6869 height: auto;
6870 line-height: 1; }
6871 @media all and (transform-3d), (-webkit-transform-3d) {
6872 /* line 16, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6873 .carousel-inner > .item {
6874 -webkit-transition: -webkit-transform 0.6s ease-in-out;
6875 -moz-transition: -moz-transform 0.6s ease-in-out;
6876 -o-transition: -o-transform 0.6s ease-in-out;
6877 transition: transform 0.6s ease-in-out;
6878 -webkit-backface-visibility: hidden;
6879 -moz-backface-visibility: hidden;
6880 backface-visibility: hidden;
6881 -webkit-perspective: 1000px;
6882 -moz-perspective: 1000px;
6883 perspective: 1000px; }
6884 /* line 34, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6885 .carousel-inner > .item.next, .carousel-inner > .item.active.right {
6886 -webkit-transform: translate3d(100%, 0, 0);
6887 transform: translate3d(100%, 0, 0);
6888 left: 0; }
6889 /* line 39, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6890 .carousel-inner > .item.prev, .carousel-inner > .item.active.left {
6891 -webkit-transform: translate3d(-100%, 0, 0);
6892 transform: translate3d(-100%, 0, 0);
6893 left: 0; }
6894 /* line 44, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6895 .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active {
6896 -webkit-transform: translate3d(0, 0, 0);
6897 transform: translate3d(0, 0, 0);
6898 left: 0; } }
6899 /* line 53, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6900 .carousel-inner > .active,
6901 .carousel-inner > .next,
6902 .carousel-inner > .prev {
6903 display: block; }
6904 /* line 59, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6905 .carousel-inner > .active {
6906 left: 0; }
6907 /* line 63, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6908 .carousel-inner > .next,
6909 .carousel-inner > .prev {
6910 position: absolute;
6911 top: 0;
6912 width: 100%; }
6913 /* line 70, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6914 .carousel-inner > .next {
6915 left: 100%; }
6916 /* line 73, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6917 .carousel-inner > .prev {
6918 left: -100%; }
6919 /* line 76, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6920 .carousel-inner > .next.left,
6921 .carousel-inner > .prev.right {
6922 left: 0; }
6923 /* line 81, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6924 .carousel-inner > .active.left {
6925 left: -100%; }
6926 /* line 84, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6927 .carousel-inner > .active.right {
6928 left: 100%; }
6929
6930/* line 93, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6931.carousel-control {
6932 position: absolute;
6933 top: 0;
6934 bottom: 0;
6935 left: 0;
6936 width: 15%;
6937 font-size: 20px;
6938 color: #fff;
6939 text-align: center;
6940 text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
6941 background-color: transparent;
6942 filter: alpha(opacity=50);
6943 opacity: 0.5; }
6944 /* line 109, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6945 .carousel-control.left {
6946 background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
6947 background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
6948 background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
6949 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
6950 background-repeat: repeat-x; }
6951 /* line 112, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6952 .carousel-control.right {
6953 right: 0;
6954 left: auto;
6955 background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
6956 background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
6957 background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
6958 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
6959 background-repeat: repeat-x; }
6960 /* line 119, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6961 .carousel-control:hover, .carousel-control:focus {
6962 color: #fff;
6963 text-decoration: none;
6964 outline: 0;
6965 filter: alpha(opacity=90);
6966 opacity: 0.9; }
6967 /* line 128, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6968 .carousel-control .icon-prev,
6969 .carousel-control .icon-next,
6970 .carousel-control .glyphicon-chevron-left,
6971 .carousel-control .glyphicon-chevron-right {
6972 position: absolute;
6973 top: 50%;
6974 z-index: 5;
6975 display: inline-block;
6976 margin-top: -10px; }
6977 /* line 138, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6978 .carousel-control .icon-prev,
6979 .carousel-control .glyphicon-chevron-left {
6980 left: 50%;
6981 margin-left: -10px; }
6982 /* line 143, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6983 .carousel-control .icon-next,
6984 .carousel-control .glyphicon-chevron-right {
6985 right: 50%;
6986 margin-right: -10px; }
6987 /* line 148, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6988 .carousel-control .icon-prev,
6989 .carousel-control .icon-next {
6990 width: 20px;
6991 height: 20px;
6992 font-family: serif;
6993 line-height: 1; }
6994 /* line 157, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6995 .carousel-control .icon-prev:before {
6996 content: "\2039"; }
6997 /* line 162, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
6998 .carousel-control .icon-next:before {
6999 content: "\203a"; }
7000
7001/* line 173, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
7002.carousel-indicators {
7003 position: absolute;
7004 bottom: 10px;
7005 left: 50%;
7006 z-index: 15;
7007 width: 60%;
7008 padding-left: 0;
7009 margin-left: -30%;
7010 text-align: center;
7011 list-style: none; }
7012 /* line 184, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
7013 .carousel-indicators li {
7014 display: inline-block;
7015 width: 10px;
7016 height: 10px;
7017 margin: 1px;
7018 text-indent: -999px;
7019 cursor: pointer;
7020 background-color: #000 \9;
7021 background-color: transparent;
7022 border: 1px solid #fff;
7023 border-radius: 10px; }
7024 /* line 207, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
7025 .carousel-indicators .active {
7026 width: 12px;
7027 height: 12px;
7028 margin: 0;
7029 background-color: #fff; }
7030
7031/* line 218, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
7032.carousel-caption {
7033 position: absolute;
7034 right: 15%;
7035 bottom: 20px;
7036 left: 15%;
7037 z-index: 10;
7038 padding-top: 20px;
7039 padding-bottom: 20px;
7040 color: #fff;
7041 text-align: center;
7042 text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); }
7043 /* line 230, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
7044 .carousel-caption .btn {
7045 text-shadow: none; }
7046
7047@media screen and (min-width: 768px) {
7048 /* line 241, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
7049 .carousel-control .glyphicon-chevron-left,
7050 .carousel-control .glyphicon-chevron-right,
7051 .carousel-control .icon-prev,
7052 .carousel-control .icon-next {
7053 width: 30px;
7054 height: 30px;
7055 margin-top: -10px;
7056 font-size: 30px; }
7057 /* line 250, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
7058 .carousel-control .glyphicon-chevron-left,
7059 .carousel-control .icon-prev {
7060 margin-left: -10px; }
7061 /* line 254, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
7062 .carousel-control .glyphicon-chevron-right,
7063 .carousel-control .icon-next {
7064 margin-right: -10px; }
7065
7066 /* line 261, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
7067 .carousel-caption {
7068 right: 20%;
7069 left: 20%;
7070 padding-bottom: 30px; }
7071
7072 /* line 268, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_carousel.scss */
7073 .carousel-indicators {
7074 bottom: 20px; } }
7075/* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
7076.clearfix:before, .clearfix:after {
7077 display: table;
7078 content: " "; }
7079/* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
7080.clearfix:after {
7081 clear: both; }
7082
7083/* line 12, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_utilities.scss */
7084.center-block {
7085 display: block;
7086 margin-right: auto;
7087 margin-left: auto; }
7088
7089/* line 15, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_utilities.scss */
7090.pull-right {
7091 float: right !important; }
7092
7093/* line 18, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_utilities.scss */
7094.pull-left {
7095 float: left !important; }
7096
7097/* line 27, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_utilities.scss */
7098.hide {
7099 display: none !important; }
7100
7101/* line 30, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_utilities.scss */
7102.show {
7103 display: block !important; }
7104
7105/* line 33, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_utilities.scss */
7106.invisible {
7107 visibility: hidden; }
7108
7109/* line 36, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_utilities.scss */
7110.text-hide {
7111 font: 0/0 a;
7112 color: transparent;
7113 text-shadow: none;
7114 background-color: transparent;
7115 border: 0; }
7116
7117/* line 45, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_utilities.scss */
7118.hidden {
7119 display: none !important; }
7120
7121/* line 53, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_utilities.scss */
7122.affix {
7123 position: fixed; }
7124
7125@-ms-viewport {
7126 width: device-width; }
7127/* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7128.visible-xs {
7129 display: none !important; }
7130
7131/* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7132.visible-sm {
7133 display: none !important; }
7134
7135/* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7136.visible-md {
7137 display: none !important; }
7138
7139/* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7140.visible-lg {
7141 display: none !important; }
7142
7143/* line 36, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7144.visible-xs-block,
7145.visible-xs-inline,
7146.visible-xs-inline-block,
7147.visible-sm-block,
7148.visible-sm-inline,
7149.visible-sm-inline-block,
7150.visible-md-block,
7151.visible-md-inline,
7152.visible-md-inline-block,
7153.visible-lg-block,
7154.visible-lg-inline,
7155.visible-lg-inline-block {
7156 display: none !important; }
7157
7158@media (max-width: 767px) {
7159 /* line 3, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7160 .visible-xs {
7161 display: block !important; }
7162
7163 /* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7164 table.visible-xs {
7165 display: table !important; }
7166
7167 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7168 tr.visible-xs {
7169 display: table-row !important; }
7170
7171 /* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7172 th.visible-xs,
7173 td.visible-xs {
7174 display: table-cell !important; } }
7175@media (max-width: 767px) {
7176 /* line 54, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7177 .visible-xs-block {
7178 display: block !important; } }
7179
7180@media (max-width: 767px) {
7181 /* line 59, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7182 .visible-xs-inline {
7183 display: inline !important; } }
7184
7185@media (max-width: 767px) {
7186 /* line 64, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7187 .visible-xs-inline-block {
7188 display: inline-block !important; } }
7189
7190@media (min-width: 768px) and (max-width: 991px) {
7191 /* line 3, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7192 .visible-sm {
7193 display: block !important; }
7194
7195 /* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7196 table.visible-sm {
7197 display: table !important; }
7198
7199 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7200 tr.visible-sm {
7201 display: table-row !important; }
7202
7203 /* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7204 th.visible-sm,
7205 td.visible-sm {
7206 display: table-cell !important; } }
7207@media (min-width: 768px) and (max-width: 991px) {
7208 /* line 73, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7209 .visible-sm-block {
7210 display: block !important; } }
7211
7212@media (min-width: 768px) and (max-width: 991px) {
7213 /* line 78, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7214 .visible-sm-inline {
7215 display: inline !important; } }
7216
7217@media (min-width: 768px) and (max-width: 991px) {
7218 /* line 83, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7219 .visible-sm-inline-block {
7220 display: inline-block !important; } }
7221
7222@media (min-width: 992px) and (max-width: 1199px) {
7223 /* line 3, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7224 .visible-md {
7225 display: block !important; }
7226
7227 /* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7228 table.visible-md {
7229 display: table !important; }
7230
7231 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7232 tr.visible-md {
7233 display: table-row !important; }
7234
7235 /* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7236 th.visible-md,
7237 td.visible-md {
7238 display: table-cell !important; } }
7239@media (min-width: 992px) and (max-width: 1199px) {
7240 /* line 92, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7241 .visible-md-block {
7242 display: block !important; } }
7243
7244@media (min-width: 992px) and (max-width: 1199px) {
7245 /* line 97, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7246 .visible-md-inline {
7247 display: inline !important; } }
7248
7249@media (min-width: 992px) and (max-width: 1199px) {
7250 /* line 102, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7251 .visible-md-inline-block {
7252 display: inline-block !important; } }
7253
7254@media (min-width: 1200px) {
7255 /* line 3, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7256 .visible-lg {
7257 display: block !important; }
7258
7259 /* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7260 table.visible-lg {
7261 display: table !important; }
7262
7263 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7264 tr.visible-lg {
7265 display: table-row !important; }
7266
7267 /* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7268 th.visible-lg,
7269 td.visible-lg {
7270 display: table-cell !important; } }
7271@media (min-width: 1200px) {
7272 /* line 111, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7273 .visible-lg-block {
7274 display: block !important; } }
7275
7276@media (min-width: 1200px) {
7277 /* line 116, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7278 .visible-lg-inline {
7279 display: inline !important; } }
7280
7281@media (min-width: 1200px) {
7282 /* line 121, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7283 .visible-lg-inline-block {
7284 display: inline-block !important; } }
7285
7286@media (max-width: 767px) {
7287 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7288 .hidden-xs {
7289 display: none !important; } }
7290@media (min-width: 768px) and (max-width: 991px) {
7291 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7292 .hidden-sm {
7293 display: none !important; } }
7294@media (min-width: 992px) and (max-width: 1199px) {
7295 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7296 .hidden-md {
7297 display: none !important; } }
7298@media (min-width: 1200px) {
7299 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7300 .hidden-lg {
7301 display: none !important; } }
7302/* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7303.visible-print {
7304 display: none !important; }
7305
7306@media print {
7307 /* line 3, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7308 .visible-print {
7309 display: block !important; }
7310
7311 /* line 6, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7312 table.visible-print {
7313 display: table !important; }
7314
7315 /* line 7, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7316 tr.visible-print {
7317 display: table-row !important; }
7318
7319 /* line 8, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7320 th.visible-print,
7321 td.visible-print {
7322 display: table-cell !important; } }
7323/* line 155, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7324.visible-print-block {
7325 display: none !important; }
7326 @media print {
7327 /* line 155, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7328 .visible-print-block {
7329 display: block !important; } }
7330
7331/* line 162, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7332.visible-print-inline {
7333 display: none !important; }
7334 @media print {
7335 /* line 162, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7336 .visible-print-inline {
7337 display: inline !important; } }
7338
7339/* line 169, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7340.visible-print-inline-block {
7341 display: none !important; }
7342 @media print {
7343 /* line 169, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_responsive-utilities.scss */
7344 .visible-print-inline-block {
7345 display: inline-block !important; } }
7346
7347@media print {
7348 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss */
7349 .hidden-print {
7350 display: none !important; } }
7351/* line 81, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7352.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox * {
7353 font-size: 14px;
7354 letter-spacing: 0;
7355 line-height: 1.42857143;
7356 margin-bottom: 0;
7357 margin-top: 0;
7358 text-transform: none; }
7359/* line 90, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7360.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox h1, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox h2, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox h3, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox h4, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox h5, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox h6 {
7361 line-height: 1.1; }
7362/* line 96, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7363.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-banner {
7364 background-color: black;
7365 color: white;
7366 font-family: "klavika-web", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
7367 font-size: 16px;
7368 min-height: 3em; }
7369 /* line 103, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7370 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-banner,
7371 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-banner > .container {
7372 align-items: center;
7373 display: flex; }
7374 /* line 109, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7375 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-banner .text-muted {
7376 color: #a4b1b2; }
7377/* line 114, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7378.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-banner-logo {
7379 opacity: 1; }
7380 /* line 117, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7381 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-banner-logo:hover {
7382 opacity: 0.7;
7383 transition: opacity .25s ease-in-out;
7384 -moz-transition: opacity .25s ease-in-out;
7385 -webkit-transition: opacity .25s ease-in-out; }
7386 /* line 124, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7387 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-banner-logo > img {
7388 height: 25px; }
7389/* line 130, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7390.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-banner-item:first-child {
7391 display: none; }
7392/* line 134, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7393.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-banner-item:last-child {
7394 margin-left: auto; }
7395/* line 139, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7396.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tagline {
7397 align-items: center;
7398 display: inline-flex;
7399 margin-bottom: 0;
7400 vertical-align: -1px; }
7401 /* line 145, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7402 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tagline > img {
7403 margin: 0 0.375em 0 0.5em; }
7404/* line 150, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7405.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav {
7406 display: inline-block;
7407 font-family: "klavika-web", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
7408 font-size: 14px;
7409 line-height: 1.35714; }
7410 /* line 156, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7411 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav h1, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav h2, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav h3, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav h4, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav h5, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav h6,
7412 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav ul, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav p {
7413 margin-top: 0; }
7414 /* line 161, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7415 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav img {
7416 max-width: 100%; }
7417 /* line 165, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7418 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav * {
7419 box-sizing: border-box;
7420 transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, fill 0.25s ease, transform 0.25s ease, stroke 0.25s ease; }
7421 /* line 176, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7422 .mega-nav-tagline + .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav {
7423 margin-left: 0.57143em; }
7424 /* line 180, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7425 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav .visuallyhidden {
7426 border: 0;
7427 clip: rect(0 0 0 0);
7428 height: 1px;
7429 margin: -1px;
7430 overflow: hidden;
7431 padding: 0;
7432 position: absolute;
7433 white-space: nowrap;
7434 width: 1px; }
7435/* line 193, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7436.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-icon {
7437 display: inline-block;
7438 fill: currentColor;
7439 height: 1em;
7440 stroke: currentColor;
7441 width: 1em; }
7442/* line 201, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7443.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-icon-angle-right {
7444 height: 0.8em;
7445 transform: rotate(-90deg);
7446 width: 0.8em; }
7447/* line 207, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7448.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .open > .mega-nav-ctrl .mega-nav-icon-angle-right {
7449 transform: rotate(0); }
7450/* line 211, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7451.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-ctrl {
7452 background-color: transparent;
7453 border: 0;
7454 margin-left: 0.5em;
7455 padding: 0;
7456 text-align: center;
7457 vertical-align: middle; }
7458 /* line 219, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7459 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-ctrl:active, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-ctrl:focus, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-ctrl:hover, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-ctrl:visited {
7460 outline: none; }
7461 /* line 226, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7462 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-ctrl strong {
7463 margin: 0 0.5em; }
7464/* line 231, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7465.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-ctrl-items {
7466 align-items: center;
7467 display: flex;
7468 padding-top: 1px; }
7469/* line 237, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7470.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-icon-outline {
7471 border: 1px solid;
7472 margin-top: -1px;
7473 padding: 0.5em; }
7474 /* line 242, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7475 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-icon-outline .mega-nav-icon {
7476 display: block; }
7477/* line 247, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7478.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-ct {
7479 bottom: 0;
7480 display: none;
7481 left: 0;
7482 overflow-y: auto;
7483 position: fixed;
7484 right: 0;
7485 top: 0;
7486 z-index: 1100; }
7487/* line 258, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7488.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav.open .mega-nav-body-ct {
7489 display: block; }
7490/* line 262, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7491.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body {
7492 background-color: white;
7493 box-shadow: 0 2px 16px rgba(79, 99, 122, 0.2);
7494 color: black;
7495 margin: 1em;
7496 padding: 1em; }
7497/* line 270, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7498.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-footer {
7499 color: #a4b1b2;
7500 display: none; }
7501 /* line 274, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7502 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-footer > :last-child {
7503 margin-bottom: 0; }
7504/* line 280, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7505.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-close {
7506 background-color: transparent;
7507 border: 1px solid currentColor;
7508 float: right;
7509 margin-left: 1em;
7510 margin-bottom: 1em;
7511 padding: 0.5em;
7512 text-align: center; }
7513 /* line 289, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7514 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-close:hover, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-close:focus {
7515 color: #333333;
7516 outline: none; }
7517 /* line 295, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7518 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-close:active {
7519 outline: none; }
7520 /* line 299, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7521 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-close .mega-nav-icon {
7522 display: block; }
7523/* line 304, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7524.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-h1 {
7525 font-size: 1.28571em;
7526 font-weight: bold;
7527 margin-bottom: 0.11111em;
7528 text-transform: uppercase; }
7529/* line 311, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7530.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-h2 {
7531 color: #a4b1b2;
7532 font-size: 1.14286em;
7533 font-weight: 500;
7534 margin-bottom: 1.1875em;
7535 text-transform: uppercase; }
7536/* line 319, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7537.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-h3 {
7538 color: #a4b1b2;
7539 font-size: 1em;
7540 font-weight: 500;
7541 margin-bottom: 0.5em;
7542 text-transform: uppercase; }
7543/* line 327, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7544.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid {
7545 list-style: none;
7546 margin-bottom: 1em;
7547 padding-left: 0; }
7548 /* line 332, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7549 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid > li {
7550 display: flex; }
7551/* line 337, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7552.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item {
7553 align-items: center;
7554 border: 1px solid #d4dcdd;
7555 display: flex;
7556 margin-bottom: -1px;
7557 min-height: 3.57143em;
7558 padding: 0.28571em 0.71429em;
7559 position: relative;
7560 width: 100%; }
7561 /* line 347, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7562 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item:hover, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item:focus, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item.is-active {
7563 color: inherit;
7564 text-decoration: none; }
7565 /* line 355, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7566 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item:hover, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item:focus, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item.is-active {
7567 border-color: #bfc6c7;
7568 z-index: 1; }
7569 /* line 362, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7570 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item > b {
7571 display: block;
7572 font-size: 1.28571em;
7573 font-weight: 600;
7574 letter-spacing: -0.02em; }
7575 /* line 369, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7576 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item > ul {
7577 list-style: none;
7578 margin-left: auto;
7579 padding-left: 0;
7580 text-align: right; }
7581 /* line 375, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7582 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item > ul > li + li {
7583 margin-top: 0.28571em; }
7584/* line 386, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7585.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vagrant:hover, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vagrant:focus, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vagrant.is-active {
7586 border-color: #1563ff; }
7587/* line 386, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7588.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-packer:hover, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-packer:focus, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-packer.is-active {
7589 border-color: #1daeff; }
7590/* line 386, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7591.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-terraform:hover, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-terraform:focus, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-terraform.is-active {
7592 border-color: #5c4ee5; }
7593/* line 386, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7594.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vault:hover, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vault:focus, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vault.is-active {
7595 border-color: #000; }
7596/* line 386, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7597.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-nomad:hover, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-nomad:focus, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-nomad.is-active {
7598 border-color: #25ba81; }
7599/* line 386, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7600.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-consul:hover, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-consul:focus, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-consul.is-active {
7601 border-color: #c62a71; }
7602/* line 394, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7603.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-img {
7604 margin-right: 0.67857em;
7605 text-align: center;
7606 width: 2em; }
7607 /* line 399, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7608 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-img > img {
7609 max-height: 2em; }
7610/* line 404, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7611.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag {
7612 background-color: white;
7613 border: 1px solid currentColor;
7614 color: #a4b1b2;
7615 display: inline-block;
7616 font-size: 0.85714em;
7617 line-height: 1;
7618 font-weight: 500;
7619 padding: 0.16667em 0.25em;
7620 text-transform: uppercase; }
7621/* line 416, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7622.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item:hover .mega-nav-tag,
7623.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item:focus .mega-nav-tag,
7624.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item.is-active .mega-nav-tag,
7625.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag:hover,
7626.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag:focus {
7627 background-color: #949fa0;
7628 border-color: #949fa0;
7629 color: white; }
7630/* line 430, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7631.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vagrant:hover .mega-nav-tag,
7632.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vagrant:focus .mega-nav-tag,
7633.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vagrant.is-active .mega-nav-tag,
7634.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag-vagrant:hover,
7635.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag-vagrant:focus {
7636 background-color: #1563ff;
7637 border-color: #1563ff; }
7638/* line 430, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7639.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-packer:hover .mega-nav-tag,
7640.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-packer:focus .mega-nav-tag,
7641.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-packer.is-active .mega-nav-tag,
7642.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag-packer:hover,
7643.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag-packer:focus {
7644 background-color: #1daeff;
7645 border-color: #1daeff; }
7646/* line 430, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7647.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-terraform:hover .mega-nav-tag,
7648.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-terraform:focus .mega-nav-tag,
7649.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-terraform.is-active .mega-nav-tag,
7650.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag-terraform:hover,
7651.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag-terraform:focus {
7652 background-color: #5c4ee5;
7653 border-color: #5c4ee5; }
7654/* line 430, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7655.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vault:hover .mega-nav-tag,
7656.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vault:focus .mega-nav-tag,
7657.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vault.is-active .mega-nav-tag,
7658.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag-vault:hover,
7659.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag-vault:focus {
7660 background-color: #000;
7661 border-color: #000; }
7662/* line 430, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7663.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-nomad:hover .mega-nav-tag,
7664.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-nomad:focus .mega-nav-tag,
7665.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-nomad.is-active .mega-nav-tag,
7666.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag-nomad:hover,
7667.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag-nomad:focus {
7668 background-color: #25ba81;
7669 border-color: #25ba81; }
7670/* line 430, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7671.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-consul:hover .mega-nav-tag,
7672.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-consul:focus .mega-nav-tag,
7673.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-consul.is-active .mega-nav-tag,
7674.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag-consul:hover,
7675.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag-consul:focus {
7676 background-color: #c62a71;
7677 border-color: #c62a71; }
7678/* line 440, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7679.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn {
7680 align-items: center;
7681 background-color: #1563ff;
7682 box-shadow: 3px 3px 0 rgba(21, 99, 255, 0.32);
7683 display: inline-flex;
7684 font-size: 1.07143em;
7685 font-weight: 500;
7686 line-height: 1;
7687 margin-bottom: 1.26667em;
7688 padding: 0.7em 1.07143em;
7689 text-transform: uppercase;
7690 width: 100%; }
7691 /* line 453, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7692 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn:hover, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn:focus {
7693 color: white;
7694 text-decoration: none; }
7695 /* line 460, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7696 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn:hover, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn:focus {
7697 background-color: #2c73ff; }
7698 /* line 465, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7699 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn > img:first-child {
7700 margin-right: 0.63333em; }
7701 /* line 469, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7702 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn > svg:last-child {
7703 margin-left: 0.63333em; }
7704 /* line 473, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7705 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn:hover > .mega-nav-icon-angle-right:last-child, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn:focus > .mega-nav-icon-angle-right:last-child {
7706 transform: translateX(3px) rotate(-90deg); }
7707@media (min-width: 570px) {
7708 /* line 481, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7709 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn {
7710 margin-bottom: 2.53333em; }
7711 /* line 485, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7712 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body {
7713 padding: 2em 2em 1em; }
7714 /* line 489, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7715 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-grid {
7716 display: flex;
7717 flex-wrap: wrap; }
7718 /* line 494, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7719 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-grid-item:nth-child(1) {
7720 width: 100%; }
7721 /* line 498, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7722 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-grid-item:nth-child(2) {
7723 width: 33.33333%; }
7724 /* line 502, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7725 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-grid-item:nth-child(3) {
7726 width: 33.33333%; }
7727 /* line 506, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7728 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-grid-item:nth-child(4) {
7729 width: 33.33333%; }
7730 /* line 510, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7731 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-h1 {
7732 font-size: 2em;
7733 margin-bottom: 0.07143em; }
7734 /* line 515, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7735 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-h2 {
7736 font-size: 1.28571em;
7737 margin-bottom: 1.05556em; }
7738 /* line 520, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7739 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-h3 {
7740 color: black;
7741 font-size: 1.28571em;
7742 font-weight: bold;
7743 margin-bottom: 0.64286em; }
7744 /* line 527, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7745 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid {
7746 border: 0;
7747 display: flex;
7748 margin-bottom: 2.71429em; }
7749 /* line 532, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7750 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid > li {
7751 flex-grow: 1;
7752 margin-bottom: -1px;
7753 margin-right: -1px;
7754 width: calc(100% + 1px); }
7755 /* line 540, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7756 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item {
7757 display: block;
7758 border: 1px solid #d4dcdd;
7759 margin-bottom: 0;
7760 padding: 1.35714em; }
7761 /* line 546, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7762 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item,
7763 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item > ul {
7764 text-align: center; }
7765 /* line 551, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7766 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item > ul {
7767 display: flex;
7768 justify-content: center;
7769 margin-top: 1.35714em; }
7770 /* line 556, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7771 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item > ul > li + li {
7772 margin-left: 0.67857em;
7773 margin-top: 0; }
7774 /* line 563, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7775 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-img {
7776 margin-right: 0;
7777 width: auto; }
7778 /* line 567, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7779 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-img > img {
7780 max-height: 4.71429em; }
7781 /* line 572, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7782 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-tag {
7783 font-size: 1em;
7784 padding: 0.14286em 0.21429em; }
7785 /* line 577, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7786 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn {
7787 width: auto; } }
7788@media (min-width: 768px) {
7789 /* line 585, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7790 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-banner-item:first-child {
7791 display: block; } }
7792@media (min-width: 992px) {
7793 /* line 593, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7794 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav {
7795 position: relative; }
7796 /* line 596, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7797 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav::before {
7798 border-bottom: 1em solid white;
7799 border-left: 0.71429em solid transparent;
7800 border-right: 0.71429em solid transparent;
7801 content: ' ';
7802 display: none;
7803 height: 0;
7804 left: 50%;
7805 position: absolute;
7806 top: 100%;
7807 transform: translateX(-50%);
7808 width: 0;
7809 z-index: 1101; }
7810 /* line 611, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7811 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav.open::before {
7812 display: block; }
7813 /* line 616, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7814 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-btn {
7815 margin-bottom: 1.26667em; }
7816 /* line 620, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7817 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-ct {
7818 bottom: auto;
7819 left: auto;
7820 overflow: visible;
7821 position: absolute;
7822 right: 0;
7823 top: 100%;
7824 width: 940px; }
7825 /* line 630, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7826 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body {
7827 margin: 1em 0 0; }
7828 /* line 634, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7829 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-header {
7830 display: flex; }
7831 /* line 639, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7832 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-header-item:last-child {
7833 margin-left: auto; }
7834 /* line 644, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7835 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-footer {
7836 display: block;
7837 padding-top: 1em; }
7838 /* line 649, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7839 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-h2 {
7840 margin-bottom: 2.11111em; }
7841 /* line 653, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7842 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-grid {
7843 position: relative; }
7844 /* line 656, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7845 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-grid::before {
7846 background-color: #d4dcdd;
7847 content: ' ';
7848 height: 1px;
7849 left: -2em;
7850 margin-top: -0.78571em;
7851 position: absolute;
7852 right: -2em;
7853 top: 100%; }
7854 /* line 668, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7855 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-grid-item:nth-child(1) {
7856 width: 50%; }
7857 /* line 672, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7858 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-grid-item:nth-child(2) {
7859 width: 16.66667%; }
7860 /* line 676, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7861 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-grid-item:nth-child(3) {
7862 width: 16.66667%; }
7863 /* line 680, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7864 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-grid-item:nth-child(4) {
7865 width: 16.66667%; }
7866 /* line 684, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7867 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-close {
7868 display: none; }
7869 /* line 688, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7870 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-h3 {
7871 padding-left: 1.05556em;
7872 padding-top: 0.52778em;
7873 position: relative; }
7874 /* line 693, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7875 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-h3::before {
7876 background-color: #d4dcdd;
7877 content: ' ';
7878 height: 1px;
7879 left: 0;
7880 position: absolute;
7881 right: 0.67857em;
7882 top: 0; }
7883 /* line 704, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7884 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid {
7885 margin-bottom: 2.42857em; }
7886 /* line 708, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7887 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item {
7888 position: relative; }
7889 /* line 711, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7890 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item::before {
7891 background-color: #d4dcdd;
7892 content: ' ';
7893 height: 1px;
7894 left: 0;
7895 margin-top: 1.64286em;
7896 position: absolute;
7897 right: 0;
7898 top: 100%; }
7899 /* line 722, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7900 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item:hover::before, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item:focus::before, .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item.is-active::before {
7901 background-color: #bfc6c7; }
7902 /* line 728, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7903 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item > ul {
7904 left: 0;
7905 margin-top: 0;
7906 padding-top: 1em;
7907 position: absolute;
7908 right: 0;
7909 top: 100%; }
7910 /* line 736, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7911 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item > ul > li + li {
7912 margin-left: 1.14286em; }
7913 /* line 746, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7914 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vagrant:hover::before,
7915 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vagrant:focus::before,
7916 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vagrant.is-active::before {
7917 background-color: #1563ff; }
7918 /* line 746, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7919 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-packer:hover::before,
7920 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-packer:focus::before,
7921 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-packer.is-active::before {
7922 background-color: #1daeff; }
7923 /* line 746, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7924 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-terraform:hover::before,
7925 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-terraform:focus::before,
7926 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-terraform.is-active::before {
7927 background-color: #5c4ee5; }
7928 /* line 746, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7929 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vault:hover::before,
7930 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vault:focus::before,
7931 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-vault.is-active::before {
7932 background-color: #000; }
7933 /* line 746, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7934 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-nomad:hover::before,
7935 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-nomad:focus::before,
7936 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-nomad.is-active::before {
7937 background-color: #25ba81; }
7938 /* line 746, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7939 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-consul:hover::before,
7940 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-consul:focus::before,
7941 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-grid-item-consul.is-active::before {
7942 background-color: #c62a71; } }
7943@media (min-width: 1200px) {
7944 /* line 756, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7945 .mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox.mega-nav-sandbox .mega-nav-body-ct {
7946 width: 1140px; } }
7947
7948/* line 768, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/mega-nav.scss */
7949body.modal-open {
7950 overflow: hidden !important; }
7951
7952/* line 6, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/anchor-links.scss */
7953h1 .anchor {
7954 display: none; }
7955
7956/* line 16, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/anchor-links.scss */
7957h2 .anchor,
7958h3 .anchor,
7959h4 .anchor,
7960h5 .anchor,
7961h6 .anchor {
7962 color: inherit !important;
7963 float: left;
7964 opacity: 0;
7965 position: relative;
7966 line-height: 1.15;
7967 text-decoration: none !important;
7968 transition: opacity 0.1s ease-in-out; }
7969 /* line 25, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/anchor-links.scss */
7970 h2 .anchor:hover,
7971 h3 .anchor:hover,
7972 h4 .anchor:hover,
7973 h5 .anchor:hover,
7974 h6 .anchor:hover {
7975 opacity: 1; }
7976 /* line 29, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/anchor-links.scss */
7977 h2 .anchor:focus,
7978 h3 .anchor:focus,
7979 h4 .anchor:focus,
7980 h5 .anchor:focus,
7981 h6 .anchor:focus {
7982 outline: none; }
7983/* line 35, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/anchor-links.scss */
7984h2:hover .anchor,
7985h3:hover .anchor,
7986h4:hover .anchor,
7987h5:hover .anchor,
7988h6:hover .anchor {
7989 opacity: 1;
7990 text-decoration: none !important; }
7991
7992/* line 43, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/anchor-links.scss */
7993h2 .anchor {
7994 margin-left: -25px;
7995 padding-right: 10px; }
7996
7997/* line 50, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/anchor-links.scss */
7998h3 .anchor {
7999 margin-left: -20px;
8000 padding-right: 8px; }
8001
8002/* line 57, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/anchor-links.scss */
8003h4 .anchor {
8004 margin-left: -15px;
8005 padding-right: 6px; }
8006
8007/* line 1, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/sidebar.scss */
8008.sidebar-overlay {
8009 background: #FFFFFF;
8010 opacity: 0;
8011 position: fixed;
8012 visibility: hidden;
8013 z-index: 9999;
8014 top: 0;
8015 left: 0;
8016 right: 0;
8017 bottom: 0; }
8018 /* line 13, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/sidebar.scss */
8019 .sidebar-overlay.active {
8020 opacity: 0.3;
8021 visibility: visible; }
8022
8023/* line 19, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/sidebar.scss */
8024.sidebar {
8025 background-color: #FFFFFF;
8026 border: none;
8027 box-shadow: 0px 2px 25px rgba(0, 0, 0, 0.15);
8028 display: block;
8029 position: relative;
8030 min-height: 100%;
8031 overflow-y: auto;
8032 overflow-x: hidden;
8033 position: fixed;
8034 width: 0;
8035 z-index: 10000;
8036 top: 0;
8037 bottom: 0;
8038 right: 0;
8039 -webkit-transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);
8040 -o-transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);
8041 transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1); }
8042 /* line 14, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
8043 .sidebar:before, .sidebar:after {
8044 display: table;
8045 content: " "; }
8046 /* line 19, /usr/local/bundle/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/mixins/_clearfix.scss */
8047 .sidebar:after {
8048 clear: both; }
8049 /* line 37, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/sidebar.scss */
8050 .sidebar.open {
8051 width: 280px; }
8052 /* line 41, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/sidebar.scss */
8053 .sidebar .sidebar-divider, .sidebar .divider {
8054 width: 80%;
8055 height: 1px;
8056 margin: 8px auto;
8057 background-color: #D7D7D7; }
8058 /* line 48, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/sidebar.scss */
8059 .sidebar .sidebar-header {
8060 margin: 30px auto;
8061 text-align: center; }
8062 /* line 53, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/sidebar.scss */
8063 .sidebar .sidebar-nav {
8064 margin: 0;
8065 padding: 0;
8066 text-align: center; }
8067 /* line 58, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/sidebar.scss */
8068 .sidebar .sidebar-nav li {
8069 position: relative;
8070 list-style-type: none;
8071 text-align: center; }
8072 /* line 63, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/sidebar.scss */
8073 .sidebar .sidebar-nav li a {
8074 color: #333333;
8075 position: relative;
8076 cursor: pointer;
8077 user-select: none;
8078 font-family: "Open Sans", sans-serif;
8079 font-weight: 400;
8080 font-size: 13px; }
8081 /* line 72, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/sidebar.scss */
8082 .sidebar .sidebar-nav li a:hover, .sidebar .sidebar-nav li a:focus, .sidebar .sidebar-nav li a:active {
8083 background: transparent;
8084 color: #000000;
8085 outline: 0;
8086 text-decoration: none; }
8087 /* line 80, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/sidebar.scss */
8088 .sidebar .sidebar-nav li a:hover svg, .sidebar .sidebar-nav li a:focus svg, .sidebar .sidebar-nav li a:active svg {
8089 fill: #000000; }
8090 /* line 85, /usr/local/bundle/gems/middleman-hashicorp-0.3.39/assets/stylesheets/hashicorp/sidebar.scss */
8091 .sidebar .sidebar-nav li a svg {
8092 fill: #333333;
8093 top: 2px;
8094 width: 14px;
8095 height: 14px;
8096 margin-bottom: -2px;
8097 margin-right: 4px; }
8098
8099/* line 1, /terraform-website/source/assets/stylesheets/_global.scss */
8100html {
8101 height: 100%;
8102 min-height: 100%;
8103 text-rendering: optimizeLegibility;
8104 -webkit-font-smoothing: antialiased; }
8105
8106/* line 8, /terraform-website/source/assets/stylesheets/_global.scss */
8107body {
8108 -webkit-font-smoothing: antialiased;
8109 color: #333333;
8110 background-color: #FFFFFF;
8111 font-size: 15px;
8112 font-family: "Open Sans", sans-serif;
8113 font-weight: 400;
8114 height: 100%;
8115 min-height: 100%; }
8116
8117/* line 19, /terraform-website/source/assets/stylesheets/_global.scss */
8118h1, h2, h3, h4, h5 {
8119 font-family: "klavika-web", Helvetica, sans-serif;
8120 -webkit-font-smoothing: antialiased; }
8121
8122/* line 24, /terraform-website/source/assets/stylesheets/_global.scss */
8123h1 {
8124 margin-bottom: 24px; }
8125
8126@media (min-width: 768px) and (max-width: 992px) {
8127 /* line 29, /terraform-website/source/assets/stylesheets/_global.scss */
8128 .container {
8129 padding: 0;
8130 max-width: 992px;
8131 min-width: 768px; } }
8132/* line 1, /terraform-website/source/assets/stylesheets/_header.scss */
8133#header {
8134 background: #5C4EE5; }
8135 /* line 4, /terraform-website/source/assets/stylesheets/_header.scss */
8136 #header .navbar-toggle {
8137 height: 92px;
8138 margin: 0;
8139 padding-right: 15px;
8140 border-radius: 0; }
8141 /* line 10, /terraform-website/source/assets/stylesheets/_header.scss */
8142 #header .navbar-toggle .icon-bar {
8143 border: 1px solid #FFFFFF;
8144 border-radius: 0; }
8145 /* line 16, /terraform-website/source/assets/stylesheets/_header.scss */
8146 #header .navbar-brand {
8147 display: block;
8148 margin: 0;
8149 padding: 0; }
8150 /* line 21, /terraform-website/source/assets/stylesheets/_header.scss */
8151 #header .navbar-brand a {
8152 display: flex;
8153 align-items: center;
8154 height: 92px;
8155 line-height: 92px; }
8156 /* line 27, /terraform-website/source/assets/stylesheets/_header.scss */
8157 #header .navbar-brand a svg.logo {
8158 transition: opacity 0.15s ease-in-out; }
8159 /* line 31, /terraform-website/source/assets/stylesheets/_header.scss */
8160 #header .navbar-brand a svg.logo:hover, #header .navbar-brand a svg.logo:focus, #header .navbar-brand a svg.logo:active {
8161 opacity: 0.6;
8162 outline: 0;
8163 text-decoration: none; }
8164 /* line 43, /terraform-website/source/assets/stylesheets/_header.scss */
8165 #header ul.nav li {
8166 height: 92px;
8167 margin: 0;
8168 padding-top: 20px; }
8169 /* line 47, /terraform-website/source/assets/stylesheets/_header.scss */
8170 #header ul.nav li a,
8171 #header ul.nav li span {
8172 color: rgba(255, 255, 255, 0.85);
8173 font-size: 13px;
8174 font-family: "Open Sans", sans-serif;
8175 font-weight: 600;
8176 text-decoration: none; }
8177 /* line 55, /terraform-website/source/assets/stylesheets/_header.scss */
8178 #header ul.nav li a:hover, #header ul.nav li a:focus, #header ul.nav li a:active,
8179 #header ul.nav li span:hover,
8180 #header ul.nav li span:focus,
8181 #header ul.nav li span:active {
8182 background-color: transparent;
8183 color: #FFFFFF;
8184 outline: 0; }
8185 /* line 62, /terraform-website/source/assets/stylesheets/_header.scss */
8186 #header ul.nav li a:hover svg, #header ul.nav li a:focus svg, #header ul.nav li a:active svg,
8187 #header ul.nav li span:hover svg,
8188 #header ul.nav li span:focus svg,
8189 #header ul.nav li span:active svg {
8190 fill: #FFFFFF; }
8191 /* line 68, /terraform-website/source/assets/stylesheets/_header.scss */
8192 #header ul.nav li span {
8193 display: block;
8194 padding: 15px;
8195 line-height: 20px;
8196 cursor: pointer; }
8197 /* line 74, /terraform-website/source/assets/stylesheets/_header.scss */
8198 #header ul.nav li span svg {
8199 fill: rgba(255, 255, 255, 0.85);
8200 position: relative;
8201 top: -2px;
8202 width: 9px;
8203 height: 5px;
8204 margin-left: 7px; }
8205 /* line 84, /terraform-website/source/assets/stylesheets/_header.scss */
8206 #header ul.nav li svg {
8207 fill: rgba(255, 255, 255, 0.85);
8208 position: relative;
8209 top: 2px;
8210 width: 14px;
8211 height: 14px;
8212 margin-right: 3px; }
8213 /* line 93, /terraform-website/source/assets/stylesheets/_header.scss */
8214 #header ul.nav li:hover > ul {
8215 visibility: visible;
8216 opacity: 1;
8217 display: block;
8218 transition: all 0.5s ease; }
8219 /* line 100, /terraform-website/source/assets/stylesheets/_header.scss */
8220 #header ul.nav li ul {
8221 visibility: hidden;
8222 opacity: 0;
8223 transition: all 0.5s ease;
8224 min-width: 22rem;
8225 box-shadow: 0px 4px 12px -2px rgba(63, 68, 85, 0.5);
8226 border-radius: 3px;
8227 padding: 2rem;
8228 position: absolute;
8229 z-index: 1;
8230 background-color: #5C4EE5;
8231 margin-left: -15px; }
8232 /* line 113, /terraform-website/source/assets/stylesheets/_header.scss */
8233 #header ul.nav li ul:hover {
8234 visibility: visible;
8235 opacity: 1; }
8236 /* line 118, /terraform-website/source/assets/stylesheets/_header.scss */
8237 #header ul.nav li ul li {
8238 clear: both;
8239 width: 100%;
8240 display: block;
8241 padding: 1rem;
8242 position: relative;
8243 height: 44px; }
8244 /* line 126, /terraform-website/source/assets/stylesheets/_header.scss */
8245 #header ul.nav li ul li a {
8246 text-decoration: none; }
8247 /* line 134, /terraform-website/source/assets/stylesheets/_header.scss */
8248 #header .buttons {
8249 margin-top: 2px; }
8250
8251/* line 1, /terraform-website/source/assets/stylesheets/_footer.scss */
8252#footer {
8253 padding-top: 50px; }
8254 /* line 6, /terraform-website/source/assets/stylesheets/_footer.scss */
8255 #footer ul.footer-links li a {
8256 color: #333333;
8257 font-size: 13px;
8258 font-family: "Open Sans", sans-serif;
8259 text-decoration: none; }
8260 /* line 12, /terraform-website/source/assets/stylesheets/_footer.scss */
8261 #footer ul.footer-links li a:hover, #footer ul.footer-links li a:focus, #footer ul.footer-links li a:active {
8262 background-color: transparent;
8263 color: #000000;
8264 outline: 0; }
8265 @media (max-width: 992px) {
8266 /* line 6, /terraform-website/source/assets/stylesheets/_footer.scss */
8267 #footer ul.footer-links li a {
8268 text-align: center; } }
8269
8270/* line 3, /terraform-website/source/assets/stylesheets/_inner.scss */
8271#inner #inner-quicknav {
8272 margin-top: -15px;
8273 margin-bottom: 25px;
8274 margin-left: 10px; }
8275 /* line 8, /terraform-website/source/assets/stylesheets/_inner.scss */
8276 #inner #inner-quicknav span {
8277 line-height: 20px;
8278 cursor: pointer;
8279 font-variant-caps: all-small-caps;
8280 color: #666; }
8281 /* line 14, /terraform-website/source/assets/stylesheets/_inner.scss */
8282 #inner #inner-quicknav span svg {
8283 fill: #333333;
8284 position: relative;
8285 top: -2px;
8286 width: 9px;
8287 height: 5px;
8288 margin-left: 7px; }
8289 /* line 24, /terraform-website/source/assets/stylesheets/_inner.scss */
8290 #inner #inner-quicknav ul {
8291 visibility: hidden;
8292 opacity: 0;
8293 transition: all 0.5s ease;
8294 width: 80%;
8295 box-shadow: 0px 4px 12px -2px rgba(63, 68, 85, 0.5);
8296 border-radius: 3px;
8297 padding: 2rem;
8298 position: absolute;
8299 z-index: 1;
8300 background-color: #FFFFFF;
8301 margin-left: -15px; }
8302 /* line 37, /terraform-website/source/assets/stylesheets/_inner.scss */
8303 #inner #inner-quicknav ul.active {
8304 visibility: visible;
8305 opacity: 1;
8306 display: block;
8307 transition-duration: 0s; }
8308 /* line 44, /terraform-website/source/assets/stylesheets/_inner.scss */
8309 #inner #inner-quicknav ul li {
8310 clear: both;
8311 width: 100%;
8312 display: block;
8313 position: relative;
8314 margin-bottom: 0;
8315 margin-left: 0;
8316 padding-top: 0;
8317 padding-bottom: 0; }
8318 /* line 55, /terraform-website/source/assets/stylesheets/_inner.scss */
8319 #inner #inner-quicknav ul li.level-h2 {
8320 padding-left: 0px; }
8321 /* line 56, /terraform-website/source/assets/stylesheets/_inner.scss */
8322 #inner #inner-quicknav ul li.level-h3 {
8323 padding-left: 30px; }
8324 /* line 57, /terraform-website/source/assets/stylesheets/_inner.scss */
8325 #inner #inner-quicknav ul li.level-h4 {
8326 padding-left: 60px; }
8327 /* line 58, /terraform-website/source/assets/stylesheets/_inner.scss */
8328 #inner #inner-quicknav ul li.level-h5 {
8329 padding-left: 90px; }
8330 /* line 59, /terraform-website/source/assets/stylesheets/_inner.scss */
8331 #inner #inner-quicknav ul li.level-h6 {
8332 padding-left: 120px; }
8333 /* line 61, /terraform-website/source/assets/stylesheets/_inner.scss */
8334 #inner #inner-quicknav ul li a {
8335 text-decoration: none; }
8336/* line 68, /terraform-website/source/assets/stylesheets/_inner.scss */
8337#inner p, #inner li, #inner .alert {
8338 font-size: 15px;
8339 font-family: "Open Sans", sans-serif;
8340 font-weight: 400;
8341 line-height: 1.84em;
8342 margin: 0 0 15px;
8343 -webkit-font-smoothing: antialiased; }
8344/* line 77, /terraform-website/source/assets/stylesheets/_inner.scss */
8345#inner .alert p:last-child {
8346 margin-bottom: 0; }
8347/* line 81, /terraform-website/source/assets/stylesheets/_inner.scss */
8348#inner pre,
8349#inner code,
8350#inner tt {
8351 font-family: "Fira Mono", monospace;
8352 font-size: 90%;
8353 line-height: 1.6; }
8354/* line 89, /terraform-website/source/assets/stylesheets/_inner.scss */
8355#inner code {
8356 background-color: #ebeafc;
8357 color: inherit; }
8358/* line 94, /terraform-website/source/assets/stylesheets/_inner.scss */
8359#inner pre {
8360 padding: 20px;
8361 margin: 0 0 15px; }
8362 /* line 100, /terraform-website/source/assets/stylesheets/_inner.scss */
8363 #inner pre code {
8364 overflow-wrap: normal;
8365 white-space: pre;
8366 background-color: transparent;
8367 font-size: 13px; }
8368/* line 109, /terraform-website/source/assets/stylesheets/_inner.scss */
8369#inner a {
8370 color: #5C4EE5;
8371 text-decoration: none; }
8372 /* line 113, /terraform-website/source/assets/stylesheets/_inner.scss */
8373 #inner a:hover {
8374 text-decoration: underline; }
8375 /* line 117, /terraform-website/source/assets/stylesheets/_inner.scss */
8376 #inner a code {
8377 color: #5C4EE5; }
8378/* line 122, /terraform-website/source/assets/stylesheets/_inner.scss */
8379#inner img {
8380 display: block;
8381 margin: 25px auto;
8382 max-width: 90%;
8383 height: auto; }
8384/* line 129, /terraform-website/source/assets/stylesheets/_inner.scss */
8385#inner h1,
8386#inner h2,
8387#inner h3,
8388#inner h4 {
8389 color: #333333;
8390 margin-bottom: 15px;
8391 line-height: 1.3;
8392 overflow-wrap: break-word; }
8393/* line 140, /terraform-website/source/assets/stylesheets/_inner.scss */
8394#inner h1 {
8395 min-height: 60px;
8396 margin-top: 5px;
8397 display: flex;
8398 align-items: flex-end;
8399 flex-wrap: wrap; }
8400/* line 151, /terraform-website/source/assets/stylesheets/_inner.scss */
8401#inner h2,
8402#inner h3,
8403#inner h4 {
8404 margin-top: 54px; }
8405/* line 156, /terraform-website/source/assets/stylesheets/_inner.scss */
8406#inner h2 {
8407 padding-bottom: 3px;
8408 border-bottom: 1px solid #777777; }
8409
8410/* line 1, /terraform-website/source/assets/stylesheets/_buttons.scss */
8411.button {
8412 background: #FFFFFF;
8413 border: 1px solid #5C4EE5;
8414 box-shadow: 3px 4px 0 rgba(0, 0, 0, 0.1);
8415 color: #5C4EE5;
8416 display: inline-block;
8417 font-family: "klavika-web", Helvetica, sans-serif;
8418 font-size: 15px;
8419 font-weight: 600;
8420 letter-spacing: 1px;
8421 margin-bottom: 4px;
8422 padding: 10px 30px;
8423 text-transform: uppercase;
8424 text-decoration: none; }
8425 /* line 16, /terraform-website/source/assets/stylesheets/_buttons.scss */
8426 .button:hover, .button:active, .button:focus {
8427 text-decoration: none; }
8428 /* line 22, /terraform-website/source/assets/stylesheets/_buttons.scss */
8429 .button:hover {
8430 background: #5C4EE5;
8431 border: 1px solid #5C4EE5;
8432 color: #FFFFFF; }
8433 /* line 28, /terraform-website/source/assets/stylesheets/_buttons.scss */
8434 .button.primary {
8435 background: #5C4EE5;
8436 border: 1px solid #4838e2;
8437 color: #FFFFFF; }
8438 /* line 33, /terraform-website/source/assets/stylesheets/_buttons.scss */
8439 .button.primary:hover {
8440 background: #7064e8; }
8441
8442/* line 1, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8443pre.highlight code {
8444 color: #333333; }
8445
8446/* line 5, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8447.highlight table td {
8448 padding: 5px; }
8449
8450/* line 6, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8451.highlight table pre {
8452 margin: 0; }
8453
8454/* line 7, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8455.highlight .cm {
8456 color: #999988;
8457 font-style: italic; }
8458
8459/* line 11, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8460.highlight .cp {
8461 color: #999999;
8462 font-weight: bold; }
8463
8464/* line 15, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8465.highlight .c1 {
8466 color: #999988;
8467 font-style: italic; }
8468
8469/* line 19, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8470.highlight .cs {
8471 color: #999999;
8472 font-weight: bold;
8473 font-style: italic; }
8474
8475/* line 24, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8476.highlight .c, .highlight .cd {
8477 color: #999988;
8478 font-style: italic; }
8479
8480/* line 28, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8481.highlight .err {
8482 color: #a61717;
8483 background-color: #e3d2d2; }
8484
8485/* line 32, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8486.highlight .gd {
8487 color: #000000;
8488 background-color: #ffdddd; }
8489
8490/* line 36, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8491.highlight .ge {
8492 color: #000000;
8493 font-style: italic; }
8494
8495/* line 40, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8496.highlight .gr {
8497 color: #aa0000; }
8498
8499/* line 43, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8500.highlight .gh {
8501 color: #999999; }
8502
8503/* line 46, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8504.highlight .gi {
8505 color: #000000;
8506 background-color: #ddffdd; }
8507
8508/* line 50, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8509.highlight .go {
8510 color: #888888; }
8511
8512/* line 53, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8513.highlight .gp {
8514 color: #555555; }
8515
8516/* line 56, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8517.highlight .gs {
8518 font-weight: bold; }
8519
8520/* line 59, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8521.highlight .gu {
8522 color: #aaaaaa; }
8523
8524/* line 62, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8525.highlight .gt {
8526 color: #aa0000; }
8527
8528/* line 65, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8529.highlight .kc {
8530 color: #000000;
8531 font-weight: bold; }
8532
8533/* line 69, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8534.highlight .kd {
8535 color: #000000;
8536 font-weight: bold; }
8537
8538/* line 73, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8539.highlight .kn {
8540 color: #000000;
8541 font-weight: bold; }
8542
8543/* line 77, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8544.highlight .kp {
8545 color: #000000;
8546 font-weight: bold; }
8547
8548/* line 81, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8549.highlight .kr {
8550 color: #000000;
8551 font-weight: bold; }
8552
8553/* line 85, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8554.highlight .kt {
8555 color: #445588;
8556 font-weight: bold; }
8557
8558/* line 89, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8559.highlight .k, .highlight .kv {
8560 color: #000000;
8561 font-weight: bold; }
8562
8563/* line 93, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8564.highlight .mf {
8565 color: #009999; }
8566
8567/* line 96, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8568.highlight .mh {
8569 color: #009999; }
8570
8571/* line 99, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8572.highlight .il {
8573 color: #009999; }
8574
8575/* line 102, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8576.highlight .mi {
8577 color: #009999; }
8578
8579/* line 105, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8580.highlight .mo {
8581 color: #009999; }
8582
8583/* line 108, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8584.highlight .m, .highlight .mb, .highlight .mx {
8585 color: #009999; }
8586
8587/* line 111, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8588.highlight .sb {
8589 color: #d14; }
8590
8591/* line 114, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8592.highlight .sc {
8593 color: #d14; }
8594
8595/* line 117, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8596.highlight .sd {
8597 color: #d14; }
8598
8599/* line 120, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8600.highlight .s2 {
8601 color: #d14; }
8602
8603/* line 123, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8604.highlight .se {
8605 color: #d14; }
8606
8607/* line 126, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8608.highlight .sh {
8609 color: #d14; }
8610
8611/* line 129, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8612.highlight .si {
8613 color: #d14; }
8614
8615/* line 132, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8616.highlight .sx {
8617 color: #d14; }
8618
8619/* line 135, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8620.highlight .sr {
8621 color: #009926; }
8622
8623/* line 138, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8624.highlight .s1 {
8625 color: #d14; }
8626
8627/* line 141, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8628.highlight .ss {
8629 color: #990073; }
8630
8631/* line 144, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8632.highlight .s {
8633 color: #d14; }
8634
8635/* line 147, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8636.highlight .na {
8637 color: #008080; }
8638
8639/* line 150, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8640.highlight .bp {
8641 color: #999999; }
8642
8643/* line 153, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8644.highlight .nb {
8645 color: #0086B3; }
8646
8647/* line 156, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8648.highlight .nc {
8649 color: #445588;
8650 font-weight: bold; }
8651
8652/* line 160, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8653.highlight .no {
8654 color: #008080; }
8655
8656/* line 163, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8657.highlight .nd {
8658 color: #3c5d5d;
8659 font-weight: bold; }
8660
8661/* line 167, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8662.highlight .ni {
8663 color: #800080; }
8664
8665/* line 170, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8666.highlight .ne {
8667 color: #990000;
8668 font-weight: bold; }
8669
8670/* line 174, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8671.highlight .nf {
8672 color: #990000;
8673 font-weight: bold; }
8674
8675/* line 178, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8676.highlight .nl {
8677 color: #990000;
8678 font-weight: bold; }
8679
8680/* line 182, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8681.highlight .nn {
8682 color: #555555; }
8683
8684/* line 185, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8685.highlight .nt {
8686 color: #000080; }
8687
8688/* line 188, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8689.highlight .vc {
8690 color: #008080; }
8691
8692/* line 191, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8693.highlight .vg {
8694 color: #008080; }
8695
8696/* line 194, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8697.highlight .vi {
8698 color: #008080; }
8699
8700/* line 197, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8701.highlight .nv {
8702 color: #008080; }
8703
8704/* line 200, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8705.highlight .ow {
8706 color: #000000;
8707 font-weight: bold; }
8708
8709/* line 204, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8710.highlight .o {
8711 color: #000000;
8712 font-weight: bold; }
8713
8714/* line 208, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8715.highlight .w {
8716 color: #bbbbbb; }
8717
8718/* line 211, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8719.highlight {
8720 background-color: #f8f8f8; }
8721
8722/* line 214, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8723pre.highlight {
8724 border: 1px solid #CCCCCC; }
8725
8726/* line 218, /terraform-website/source/assets/stylesheets/_syntax.scss.erb */
8727pre.highlight code span.c1 {
8728 font-style: normal;
8729 opacity: 0.8; }
8730
8731/* line 1, /terraform-website/source/assets/stylesheets/_logos.scss */
8732svg.logo, svg.logo.color, #page-home #header .navbar-brand a svg.logo {
8733 opacity: 1.0; }
8734 /* line 4, /terraform-website/source/assets/stylesheets/_logos.scss */
8735 svg.logo path.text, #page-home #header .navbar-brand a svg.logo path.text {
8736 fill: #000000;
8737 opacity: 1.0; }
8738 /* line 9, /terraform-website/source/assets/stylesheets/_logos.scss */
8739 svg.logo path.rect-light, #page-home #header .navbar-brand a svg.logo path.rect-light {
8740 fill: #5C4EE5;
8741 opacity: 1.0; }
8742 /* line 14, /terraform-website/source/assets/stylesheets/_logos.scss */
8743 svg.logo path.rect-dark, #page-home #header .navbar-brand a svg.logo path.rect-dark {
8744 fill: #4040B2;
8745 opacity: 1.0; }
8746
8747/* line 20, /terraform-website/source/assets/stylesheets/_logos.scss */
8748#header .navbar-brand a svg.logo, svg.logo.white {
8749 opacity: 1.0; }
8750 /* line 23, /terraform-website/source/assets/stylesheets/_logos.scss */
8751 #header .navbar-brand a svg.logo path.text, svg.logo.white path.text {
8752 fill: #FFFFFF; }
8753 /* line 27, /terraform-website/source/assets/stylesheets/_logos.scss */
8754 #header .navbar-brand a svg.logo path.rect-light, svg.logo.white path.rect-light {
8755 fill: #FFFFFF;
8756 opacity: 1.0; }
8757 /* line 32, /terraform-website/source/assets/stylesheets/_logos.scss */
8758 #header .navbar-brand a svg.logo path.rect-dark, svg.logo.white path.rect-dark {
8759 fill: #FFFFFF;
8760 opacity: 0.7; }
8761
8762/* line 1, /terraform-website/source/assets/stylesheets/_notification.scss */
8763.notification {
8764 align-items: flex-start;
8765 background: #f5f3ff;
8766 border-radius: 2px;
8767 color: #000000;
8768 display: flex;
8769 font-size: 1.6rem;
8770 font-weight: 600;
8771 line-height: 2.8rem;
8772 margin: 40px 0 10px;
8773 padding: 6px 13px;
8774 transition: all 0.2s ease-in-out; }
8775 /* line 14, /terraform-website/source/assets/stylesheets/_notification.scss */
8776 .notification:hover {
8777 background: #f0eefa;
8778 color: #000000;
8779 text-decoration: none; }
8780 /* line 20, /terraform-website/source/assets/stylesheets/_notification.scss */
8781 .notification .notification-tag {
8782 margin: -1px 18px 0 0; }
8783 /* line 23, /terraform-website/source/assets/stylesheets/_notification.scss */
8784 .notification .notification-tag span {
8785 border: 1px solid #5C4EE5;
8786 background-color: #FFFFFF;
8787 border-radius: 2px;
8788 font-size: 1.1rem;
8789 font-weight: 400;
8790 line-height: 2;
8791 padding: 3px 11px;
8792 text-transform: uppercase; }
8793 @media (min-width: 992px) {
8794 /* line 20, /terraform-website/source/assets/stylesheets/_notification.scss */
8795 .notification .notification-tag {
8796 margin-right: 32px; } }
8797 /* line 39, /terraform-website/source/assets/stylesheets/_notification.scss */
8798 .notification .notification-text {
8799 text-align: left; }
8800 /* line 43, /terraform-website/source/assets/stylesheets/_notification.scss */
8801 .notification .notification-link {
8802 align-items: center;
8803 color: #5C4EE5;
8804 display: none;
8805 margin-left: 32px;
8806 text-decoration: underline; }
8807 @media (min-width: 992px) {
8808 /* line 43, /terraform-website/source/assets/stylesheets/_notification.scss */
8809 .notification .notification-link {
8810 display: inline-flex; } }
8811 /* line 55, /terraform-website/source/assets/stylesheets/_notification.scss */
8812 .notification svg {
8813 margin: 0 10px 0 16px; }
8814
8815/* line 1, /terraform-website/source/assets/stylesheets/_tag.scss */
8816.tag {
8817 background: #f0f0f7;
8818 border-radius: 3px;
8819 color: #000000;
8820 display: inline-block;
8821 font-family: "Open Sans", sans-serif;
8822 font-size: 0.85rem;
8823 font-weight: bold;
8824 margin: 0 0.5rem;
8825 padding: 2px 5px;
8826 text-transform: uppercase; }
8827
8828/* line 2, /terraform-website/source/assets/stylesheets/_community.scss */
8829#inner .people {
8830 margin-top: 30px; }
8831 /* line 6, /terraform-website/source/assets/stylesheets/_community.scss */
8832 #inner .people .person:after {
8833 display: block;
8834 clear: both;
8835 content: ' '; }
8836 /* line 12, /terraform-website/source/assets/stylesheets/_community.scss */
8837 #inner .people .person img {
8838 width: 125px;
8839 margin: auto auto; }
8840 /* line 17, /terraform-website/source/assets/stylesheets/_community.scss */
8841 #inner .people .person .bio {
8842 padding-left: 150px; }
8843
8844/* line 1, /terraform-website/source/assets/stylesheets/_docs.scss */
8845#docs-sidebar {
8846 margin-bottom: 30px;
8847 overflow: hidden; }
8848 /* line 8, /terraform-website/source/assets/stylesheets/_docs.scss */
8849 #docs-sidebar .nav ul, #docs-sidebar .nav li, #docs-sidebar .nav a {
8850 float: none;
8851 position: static;
8852 padding: 0; }
8853 /* line 13, /terraform-website/source/assets/stylesheets/_docs.scss */
8854 #docs-sidebar .nav ul {
8855 display: block; }
8856 /* line 14, /terraform-website/source/assets/stylesheets/_docs.scss */
8857 #docs-sidebar .nav li {
8858 display: list-item; }
8859 /* line 15, /terraform-website/source/assets/stylesheets/_docs.scss */
8860 #docs-sidebar .nav a {
8861 display: inline; }
8862 /* line 19, /terraform-website/source/assets/stylesheets/_docs.scss */
8863 #docs-sidebar a.subnav-toggle {
8864 display: none; }
8865 /* line 23, /terraform-website/source/assets/stylesheets/_docs.scss */
8866 #docs-sidebar a#mobile-skip {
8867 color: #5C4EE5; }
8868 /* line 27, /terraform-website/source/assets/stylesheets/_docs.scss */
8869 #docs-sidebar h3,
8870 #docs-sidebar h4 {
8871 min-height: 35px;
8872 margin-top: 30px;
8873 display: flex;
8874 align-items: center;
8875 flex-wrap: wrap;
8876 margin-bottom: 0; }
8877 /* line 38, /terraform-website/source/assets/stylesheets/_docs.scss */
8878 #docs-sidebar h3 a,
8879 #docs-sidebar h4 a {
8880 color: #5C4EE5; }
8881 /* line 43, /terraform-website/source/assets/stylesheets/_docs.scss */
8882 #docs-sidebar ul.nav.docs-sidenav li a {
8883 color: #333333;
8884 font-size: 13px;
8885 overflow-wrap: break-word; }
8886 /* line 48, /terraform-website/source/assets/stylesheets/_docs.scss */
8887 #docs-sidebar ul.nav.docs-sidenav li a:focus, #docs-sidebar ul.nav.docs-sidenav li a:hover {
8888 background-color: transparent;
8889 color: #000000; }
8890 /* line 55, /terraform-website/source/assets/stylesheets/_docs.scss */
8891 #docs-sidebar h4 + div#sidebar-controls {
8892 margin-top: 0; }
8893 /* line 59, /terraform-website/source/assets/stylesheets/_docs.scss */
8894 #docs-sidebar div#sidebar-controls {
8895 margin-top: 65px;
8896 box-sizing: border-box;
8897 position: relative;
8898 height: 37px; }
8899 /* line 64, /terraform-website/source/assets/stylesheets/_docs.scss */
8900 #docs-sidebar div#sidebar-controls .glyphicon-search {
8901 position: absolute;
8902 top: 7px;
8903 left: 7px;
8904 opacity: .7;
8905 z-index: -1; }
8906 /* line 71, /terraform-website/source/assets/stylesheets/_docs.scss */
8907 #docs-sidebar div#sidebar-controls #filter-close {
8908 position: absolute;
8909 top: 3px;
8910 right: 3px;
8911 opacity: .7;
8912 z-index: 1;
8913 border: none;
8914 background: transparent;
8915 padding: 4px; }
8916 /* line 81, /terraform-website/source/assets/stylesheets/_docs.scss */
8917 #docs-sidebar div#sidebar-controls input {
8918 font-size: 1rem;
8919 height: 100%;
8920 margin-bottom: 1px;
8921 padding-left: 28px;
8922 background: transparent; }
8923 @media (pointer: coarse) {
8924 /* line 89, /terraform-website/source/assets/stylesheets/_docs.scss */
8925 #docs-sidebar div#sidebar-controls input {
8926 font-size: 16px; }
8927 /* line 92, /terraform-website/source/assets/stylesheets/_docs.scss */
8928 #docs-sidebar div#sidebar-controls #filter-close {
8929 top: 7px; }
8930 /* line 95, /terraform-website/source/assets/stylesheets/_docs.scss */
8931 #docs-sidebar div#sidebar-controls .glyphicon-search {
8932 top: 11px; } }
8933 /* line 99, /terraform-website/source/assets/stylesheets/_docs.scss */
8934 #docs-sidebar div#sidebar-controls #sidebar-buttons button {
8935 font-variant-caps: all-small-caps;
8936 color: #666;
8937 display: inline-block;
8938 border: none;
8939 background: transparent; }
8940 /* line 106, /terraform-website/source/assets/stylesheets/_docs.scss */
8941 #docs-sidebar div#sidebar-controls #sidebar-buttons button:first-child {
8942 min-width: 6em; }
8943 /* line 112, /terraform-website/source/assets/stylesheets/_docs.scss */
8944 #docs-sidebar ul.nav.docs-sidenav {
8945 display: block;
8946 padding-bottom: 15px;
8947 padding-top: 10px; }
8948 /* line 117, /terraform-website/source/assets/stylesheets/_docs.scss */
8949 #docs-sidebar ul.nav.docs-sidenav li {
8950 padding: 0 0 11px 0; }
8951 /* line 120, /terraform-website/source/assets/stylesheets/_docs.scss */
8952 #docs-sidebar ul.nav.docs-sidenav li a {
8953 padding-left: 6px;
8954 display: table-cell; }
8955 /* line 129, /terraform-website/source/assets/stylesheets/_docs.scss */
8956 #docs-sidebar ul.nav.docs-sidenav li:before {
8957 color: #5C4EE5;
8958 content: '\2022';
8959 font-size: 1em;
8960 opacity: 0.4;
8961 position: relative;
8962 display: table-cell; }
8963 /* line 139, /terraform-website/source/assets/stylesheets/_docs.scss */
8964 #docs-sidebar ul.nav.docs-sidenav li.has-subnav {
8965 cursor: pointer; }
8966 /* line 141, /terraform-website/source/assets/stylesheets/_docs.scss */
8967 #docs-sidebar ul.nav.docs-sidenav li.has-subnav:before {
8968 content: '\276F';
8969 transition: transform .1s linear; }
8970 /* line 145, /terraform-website/source/assets/stylesheets/_docs.scss */
8971 #docs-sidebar ul.nav.docs-sidenav li.has-subnav.active:before {
8972 transform: rotate(90deg);
8973 top: 2px; }
8974 /* line 152, /terraform-website/source/assets/stylesheets/_docs.scss */
8975 #docs-sidebar ul.nav.docs-sidenav li.active > a {
8976 color: #5C4EE5; }
8977 /* line 156, /terraform-website/source/assets/stylesheets/_docs.scss */
8978 #docs-sidebar ul.nav.docs-sidenav li.active > ul.nav {
8979 display: block; }
8980 /* line 159, /terraform-website/source/assets/stylesheets/_docs.scss */
8981 #docs-sidebar ul.nav.docs-sidenav li.active:before {
8982 opacity: 1; }
8983 /* line 167, /terraform-website/source/assets/stylesheets/_docs.scss */
8984 #docs-sidebar ul.nav.docs-sidenav ul.nav-hidden {
8985 display: none; }
8986 /* line 170, /terraform-website/source/assets/stylesheets/_docs.scss */
8987 #docs-sidebar ul.nav.docs-sidenav ul.nav {
8988 padding-top: 10px;
8989 padding-left: 10px; }
8990 /* line 174, /terraform-website/source/assets/stylesheets/_docs.scss */
8991 #docs-sidebar ul.nav.docs-sidenav ul.nav li {
8992 margin-left: 10px; }
8993
8994/* line 3, /terraform-website/source/assets/stylesheets/_downloads.scss */
8995body.layout-downloads #inner .downloads {
8996 margin-top: 20px; }
8997 /* line 6, /terraform-website/source/assets/stylesheets/_downloads.scss */
8998 body.layout-downloads #inner .downloads .description {
8999 margin-bottom: 20px; }
9000 /* line 10, /terraform-website/source/assets/stylesheets/_downloads.scss */
9001 body.layout-downloads #inner .downloads .download {
9002 align-items: center;
9003 border-bottom: 1px solid #b2b2b2;
9004 display: flex;
9005 padding: 15px; }
9006 /* line 16, /terraform-website/source/assets/stylesheets/_downloads.scss */
9007 body.layout-downloads #inner .downloads .download .details {
9008 padding-left: 20px; }
9009 /* line 19, /terraform-website/source/assets/stylesheets/_downloads.scss */
9010 body.layout-downloads #inner .downloads .download .details h2 {
9011 margin-top: 4px;
9012 border: none; }
9013 /* line 24, /terraform-website/source/assets/stylesheets/_downloads.scss */
9014 body.layout-downloads #inner .downloads .download .details ul {
9015 padding-left: 0px;
9016 margin: -8px 0 0 0; }
9017 /* line 29, /terraform-website/source/assets/stylesheets/_downloads.scss */
9018 body.layout-downloads #inner .downloads .download .details li {
9019 display: inline-block; }
9020 /* line 32, /terraform-website/source/assets/stylesheets/_downloads.scss */
9021 body.layout-downloads #inner .downloads .download .details li:after {
9022 content: " | "; }
9023 /* line 36, /terraform-website/source/assets/stylesheets/_downloads.scss */
9024 body.layout-downloads #inner .downloads .download .details li:last-child:after {
9025 content: ""; }
9026 /* line 43, /terraform-website/source/assets/stylesheets/_downloads.scss */
9027 body.layout-downloads #inner .downloads .download .icon svg {
9028 width: 75px; }
9029 /* line 48, /terraform-website/source/assets/stylesheets/_downloads.scss */
9030 body.layout-downloads #inner .downloads .download .os-name {
9031 font-size: 40px;
9032 margin-bottom: -3px; }
9033 /* line 54, /terraform-website/source/assets/stylesheets/_downloads.scss */
9034 body.layout-downloads #inner .downloads .poweredby {
9035 margin-top: 20px;
9036 text-align: center; }
9037
9038/* line 3, /terraform-website/source/assets/stylesheets/_home.scss */
9039#page-home #header {
9040 background: #FFFFFF; }
9041 /* line 7, /terraform-website/source/assets/stylesheets/_home.scss */
9042 #page-home #header .navbar-toggle .icon-bar {
9043 border: 1px solid #333333; }
9044 /* line 22, /terraform-website/source/assets/stylesheets/_home.scss */
9045 #page-home #header ul.nav li a,
9046 #page-home #header ul.nav li span {
9047 color: #333333; }
9048 /* line 26, /terraform-website/source/assets/stylesheets/_home.scss */
9049 #page-home #header ul.nav li a:hover, #page-home #header ul.nav li a:focus, #page-home #header ul.nav li a:active,
9050 #page-home #header ul.nav li span:hover,
9051 #page-home #header ul.nav li span:focus,
9052 #page-home #header ul.nav li span:active {
9053 background-color: transparent;
9054 color: #000000; }
9055 /* line 30, /terraform-website/source/assets/stylesheets/_home.scss */
9056 #page-home #header ul.nav li a:hover svg, #page-home #header ul.nav li a:focus svg, #page-home #header ul.nav li a:active svg,
9057 #page-home #header ul.nav li span:hover svg,
9058 #page-home #header ul.nav li span:focus svg,
9059 #page-home #header ul.nav li span:active svg {
9060 fill: #000000; }
9061 /* line 37, /terraform-website/source/assets/stylesheets/_home.scss */
9062 #page-home #header ul.nav li span svg {
9063 fill: #333333; }
9064 /* line 42, /terraform-website/source/assets/stylesheets/_home.scss */
9065 #page-home #header ul.nav li svg {
9066 fill: #333333; }
9067 /* line 46, /terraform-website/source/assets/stylesheets/_home.scss */
9068 #page-home #header ul.nav li ul {
9069 background-color: #FFFFFF; }
9070/* line 53, /terraform-website/source/assets/stylesheets/_home.scss */
9071#page-home .notification {
9072 display: inline-flex;
9073 margin: 0 0 64px; }
9074 @media (max-width: 767px) {
9075 /* line 53, /terraform-website/source/assets/stylesheets/_home.scss */
9076 #page-home .notification {
9077 margin-bottom: 48px; } }
9078/* line 63, /terraform-website/source/assets/stylesheets/_home.scss */
9079#page-home header .hero {
9080 margin: 64px auto;
9081 text-align: center; }
9082 @media (max-width: 767px) {
9083 /* line 63, /terraform-website/source/assets/stylesheets/_home.scss */
9084 #page-home header .hero {
9085 margin-bottom: 0;
9086 margin-top: 32px; } }
9087 /* line 72, /terraform-website/source/assets/stylesheets/_home.scss */
9088 #page-home header .hero .button {
9089 margin: 5px; }
9090 @media (max-width: 768px) {
9091 /* line 72, /terraform-website/source/assets/stylesheets/_home.scss */
9092 #page-home header .hero .button {
9093 display: block;
9094 margin-top: 10px;
9095 text-align: center; } }
9096 /* line 82, /terraform-website/source/assets/stylesheets/_home.scss */
9097 #page-home header .hero svg {
9098 max-width: 90%; }
9099/* line 88, /terraform-website/source/assets/stylesheets/_home.scss */
9100#page-home section {
9101 background: #FFFFFF;
9102 padding: 100px 0; }
9103/* line 94, /terraform-website/source/assets/stylesheets/_home.scss */
9104#page-home section.marketing h2 {
9105 font-family: "klavika-web", Helvetica, sans-serif;
9106 font-size: 36px;
9107 font-weight: 600;
9108 line-height: 1.25;
9109 letter-spacing: -0.02em;
9110 margin: 20px 0 10px 0;
9111 padding: 0;
9112 text-transform: uppercase; }
9113/* line 105, /terraform-website/source/assets/stylesheets/_home.scss */
9114#page-home section.marketing h3 {
9115 color: #000000;
9116 font-size: 20px;
9117 font-weight: 600;
9118 line-height: 1.2;
9119 margin: 50px 0 15px 0;
9120 text-transform: uppercase; }
9121/* line 114, /terraform-website/source/assets/stylesheets/_home.scss */
9122#page-home section.marketing p {
9123 font-family: "Open Sans", sans-serif;
9124 font-size: 16px;
9125 letter-spacing: 0.01em;
9126 line-height: 1.5;
9127 margin: 0 0 10px; }
9128/* line 122, /terraform-website/source/assets/stylesheets/_home.scss */
9129#page-home section.marketing p.lead {
9130 font-size: 20px;
9131 margin: 15px 0 30px 0; }
9132/* line 127, /terraform-website/source/assets/stylesheets/_home.scss */
9133#page-home section.marketing span.callout {
9134 background: #000000;
9135 color: #FFFFFF;
9136 display: inline-block;
9137 font-family: "klavika-web", Helvetica, sans-serif;
9138 font-size: 18px;
9139 font-weight: 600;
9140 line-height: 1;
9141 margin: 0;
9142 padding: 5px;
9143 letter-spacing: 0.05em;
9144 text-transform: uppercase; }
9145/* line 141, /terraform-website/source/assets/stylesheets/_home.scss */
9146#page-home section.marketing.purple {
9147 background: #5C4EE5; }
9148 /* line 144, /terraform-website/source/assets/stylesheets/_home.scss */
9149 #page-home section.marketing.purple h2 {
9150 color: #FFFFFF; }
9151 /* line 148, /terraform-website/source/assets/stylesheets/_home.scss */
9152 #page-home section.marketing.purple p {
9153 color: #FFFFFF; }
9154 /* line 152, /terraform-website/source/assets/stylesheets/_home.scss */
9155 #page-home section.marketing.purple span.callout {
9156 background: #FFFFFF;
9157 color: #5C4EE5; }
9158 /* line 157, /terraform-website/source/assets/stylesheets/_home.scss */
9159 #page-home section.marketing.purple .button {
9160 border: none; }
9161/* line 162, /terraform-website/source/assets/stylesheets/_home.scss */
9162#page-home section.marketing.black {
9163 background: #000000; }
9164 /* line 165, /terraform-website/source/assets/stylesheets/_home.scss */
9165 #page-home section.marketing.black h2 {
9166 color: #FFFFFF; }
9167 /* line 169, /terraform-website/source/assets/stylesheets/_home.scss */
9168 #page-home section.marketing.black p {
9169 color: #FFFFFF; }
9170 /* line 173, /terraform-website/source/assets/stylesheets/_home.scss */
9171 #page-home section.marketing.black span.callout {
9172 background: #FFFFFF;
9173 color: #000000; }
9174 /* line 178, /terraform-website/source/assets/stylesheets/_home.scss */
9175 #page-home section.marketing.black .button {
9176 border: none; }
9177/* line 184, /terraform-website/source/assets/stylesheets/_home.scss */
9178#page-home section.marketing#features .feature-card {
9179 border: 1px solid #333333;
9180 color: #333333;
9181 display: block;
9182 height: 200px;
9183 font-weight: 600;
9184 padding: 20px;
9185 margin-bottom: 15px;
9186 text-transform: uppercase;
9187 transition: all 0.1s ease-in-out; }
9188 /* line 195, /terraform-website/source/assets/stylesheets/_home.scss */
9189 #page-home section.marketing#features .feature-card p {
9190 line-height: 1.25em; }
9191 /* line 199, /terraform-website/source/assets/stylesheets/_home.scss */
9192 #page-home section.marketing#features .feature-card span {
9193 color: #5C4EE5;
9194 display: block;
9195 font-weight: 600;
9196 margin-bottom: 10px; }
9197 /* line 206, /terraform-website/source/assets/stylesheets/_home.scss */
9198 #page-home section.marketing#features .feature-card svg {
9199 display: block;
9200 margin-top: 20px;
9201 max-width: 100%; }
9202 /* line 211, /terraform-website/source/assets/stylesheets/_home.scss */
9203 #page-home section.marketing#features .feature-card svg path {
9204 transition: all 0.1s ease-in-out;
9205 fill: #333333; }
9206 /* line 217, /terraform-website/source/assets/stylesheets/_home.scss */
9207 #page-home section.marketing#features .feature-card:hover, #page-home section.marketing#features .feature-card:active, #page-home section.marketing#features .feature-card:focus {
9208 border: 1px solid #5C4EE5;
9209 color: #5C4EE5;
9210 text-decoration: none; }
9211 /* line 223, /terraform-website/source/assets/stylesheets/_home.scss */
9212 #page-home section.marketing#features .feature-card:hover svg path, #page-home section.marketing#features .feature-card:active svg path, #page-home section.marketing#features .feature-card:focus svg path {
9213 fill: #5C4EE5;
9214 transition: all 0.1s ease-in-out; }
9215/* line 233, /terraform-website/source/assets/stylesheets/_home.scss */
9216#page-home section.marketing#plan h3 {
9217 color: #FFFFFF; }
9218/* line 239, /terraform-website/source/assets/stylesheets/_home.scss */
9219#page-home section.marketing#news img, #page-home section.marketing#news iframe {
9220 box-shadow: 5px 5px 0 rgba(0, 0, 0, 0.25);
9221 margin: 0 0 20px 0;
9222 max-width: 100%; }
9223@media (min-width: 768px) and (max-width: 992px) {
9224 /* line 245, /terraform-website/source/assets/stylesheets/_home.scss */
9225 #page-home section.marketing#news iframe {
9226 width: 100vw;
9227 height: 56.25vw; } }
9228/* line 252, /terraform-website/source/assets/stylesheets/_home.scss */
9229#page-home section.marketing#news h2 {
9230 margin-bottom: 50px; }
9231/* line 256, /terraform-website/source/assets/stylesheets/_home.scss */
9232#page-home section.marketing#news h3 {
9233 color: #FFFFFF;
9234 margin-top: 0;
9235 text-transform: none; }
9236/* line 263, /terraform-website/source/assets/stylesheets/_home.scss */
9237#page-home section.marketing#news div.latest-item + .latest-item {
9238 border-top: 1px solid rgba(255, 255, 255, 0.5);
9239 margin-top: 20px;
9240 padding-top: 20px; }
9241@media (max-width: 991px) {
9242 /* line 270, /terraform-website/source/assets/stylesheets/_home.scss */
9243 #page-home section.marketing#news div.latest-item:last-child {
9244 border-bottom: 1px solid rgba(255, 255, 255, 0.5);
9245 margin-bottom: 20px;
9246 padding-bottom: 20px; } }
9247/* line 277, /terraform-website/source/assets/stylesheets/_home.scss */
9248#page-home section.marketing#news div.latest-item p {
9249 padding: 0 0 10px 0; }
9250/* line 282, /terraform-website/source/assets/stylesheets/_home.scss */
9251#page-home section.marketing#news div.latest-item .button:hover {
9252 background: #FFFFFF;
9253 color: #5C4EE5; }
9254/* line 290, /terraform-website/source/assets/stylesheets/_home.scss */
9255#page-home section.marketing#examples {
9256 background: #EDEDED; }
9257 /* line 293, /terraform-website/source/assets/stylesheets/_home.scss */
9258 #page-home section.marketing#examples h1, #page-home section.marketing#examples h2, #page-home section.marketing#examples h3, #page-home section.marketing#examples h4, #page-home section.marketing#examples h5, #page-home section.marketing#examples h6, #page-home section.marketing#examples p {
9259 color: #000000; }
9260/* line 298, /terraform-website/source/assets/stylesheets/_home.scss */
9261#page-home section.marketing#enterprise {
9262 background: #0F1013; }
9263 /* line 301, /terraform-website/source/assets/stylesheets/_home.scss */
9264 #page-home section.marketing#enterprise .button {
9265 margin: 5px; }
9266/* line 307, /terraform-website/source/assets/stylesheets/_home.scss */
9267#page-home .terminal {
9268 border: 1px solid #FFFFFF;
9269 background-color: #000000;
9270 box-sizing: border-box;
9271 cursor: default;
9272 color: #FFFFFF;
9273 font-family: "Fira Mono", monospace;
9274 font-size: 16px;
9275 line-height: 1.8;
9276 margin: 20px auto;
9277 padding: 10px 20px 20px 20px; }
9278 /* line 319, /terraform-website/source/assets/stylesheets/_home.scss */
9279 #page-home .terminal .terminal-content {
9280 cursor: text;
9281 margin-top: 15px;
9282 overflow-x: scroll;
9283 width: 100%;
9284 white-space: nowrap; }
9285 /* line 326, /terraform-website/source/assets/stylesheets/_home.scss */
9286 #page-home .terminal .terminal-content span {
9287 display: block;
9288 white-space: pre; }
9289 /* line 330, /terraform-website/source/assets/stylesheets/_home.scss */
9290 #page-home .terminal .terminal-content span span {
9291 display: inline; }
9292 /* line 334, /terraform-website/source/assets/stylesheets/_home.scss */
9293 #page-home .terminal .terminal-content span.text-pink {
9294 color: #e77cb4; }
9295 /* line 341, /terraform-website/source/assets/stylesheets/_home.scss */
9296 #page-home .terminal span.circle:before {
9297 content: '\25CF';
9298 color: #FFFFFF;
9299 font-size: 20px;
9300 line-height: 100%;
9301 height: 100%; }
9302 /* line 350, /terraform-website/source/assets/stylesheets/_home.scss */
9303 #page-home .terminal span.txt-spe {
9304 color: #7190EA; }
9305 /* line 354, /terraform-website/source/assets/stylesheets/_home.scss */
9306 #page-home .terminal span.txt-str {
9307 color: #64E86C; }
9308 /* line 358, /terraform-website/source/assets/stylesheets/_home.scss */
9309 #page-home .terminal span.txt-int {
9310 color: #E89264; }
9311 /* line 362, /terraform-website/source/assets/stylesheets/_home.scss */
9312 #page-home .terminal span.txt-var {
9313 color: #9A56f9; }
diff --git a/docs/providers/mailgun/index.html b/docs/providers/mailgun/index.html
new file mode 100644
index 0000000..d73a82a
--- /dev/null
+++ b/docs/providers/mailgun/index.html
@@ -0,0 +1,477 @@
1<!DOCTYPE html>
2<html lang="en">
3 <head>
4 <script type="text/javascript">
5 WEB_SOCKET_SWF_LOCATION = "/__rack/WebSocketMain.swf";
6
7 </script>
8 <script type="text/javascript" src="../../../__rack/swfobject.js"></script>
9 <script type="text/javascript" src="../../../__rack/web_socket.js"></script>
10
11<script type="text/javascript">
12 RACK_LIVERELOAD_PORT = 35729;
13</script>
14<script type="text/javascript" src="../../../__rack/livereload.js%3Fhost=0.0.0.0&amp;port=35729"></script>
15
16
17 <meta charset="utf-8">
18 <meta name="mobile-web-app-capable" content="yes">
19 <meta name="viewport" content="width=device-width, initial-scale=1.0">
20 <meta name="description" content="The Mailgun provider configures domains and routes in Mailgun.">
21
22 <link rel="apple-touch-icon" sizes="180x180" href="http://localhost:4567/assets/images/favicons/apple-touch-icon.png">
23 <link rel="icon" type="image/png" href="http://localhost:4567/assets/images/favicons/favicon-32x32.png" sizes="32x32">
24 <link rel="icon" type="image/png" href="http://localhost:4567/assets/images/favicons/favicon-16x16.png" sizes="16x16">
25 <link rel="manifest" href="http://localhost:4567/android-manifest.json">
26 <link rel="mask-icon" href="http://localhost:4567/assets/images/favicons/safari-pinned-tab.svg" color="#5C4EE5">
27 <meta name="msapplication-config" content="/microsoft-tile.xml" />
28 <meta name="theme-color" content="#ffffff">
29
30 <meta name="twitter:card" content="summary" />
31 <meta property="og:image" content="https://www.terraform.io/assets/images/og-image.png"/>
32 <meta property="og:image:width" content="100"/>
33 <meta property="og:image:height" content="100"/>
34 <meta name="twitter:site" content="@HashiCorp" />
35 <meta name="twitter:creator" content="@HashiCorp" />
36 <meta property="og:type" content="website" />
37 <meta property="og:url" content="https://www.terraform.io/docs/providers/mailgun/index.html" />
38 <meta property="og:title" content="Provider: Mailgun - Terraform by HashiCorp" />
39 <meta property="og:site_name" content="Terraform by HashiCorp"/>
40 <meta property="og:description" content="The Mailgun provider configures domains and routes in Mailgun." />
41
42 <title>Provider: Mailgun - Terraform by HashiCorp</title>
43
44 <!-- Stylesheets -->
45 <link rel="stylesheet" href="https://use.typekit.net/wxf7mfi.css">
46 <link href="../../../assets/stylesheets/application.css" rel="stylesheet" />
47
48 <!-- Site scripts -->
49 <!--[if lt IE 9]><script src="/assets/javascripts/ie-compat.js" defer="defer"></script><![endif]-->
50 <script src="../../../assets/javascripts/application.js" defer="defer"></script>
51
52 <!-- Analytics scrpts -->
53 <script defer>
54 !function(){var e=window.analytics=window.analytics||[];if(!e.initialize)if(e.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{e.invoked=!0,e.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on"],e.factory=function(t){return function(){var a=Array.prototype.slice.call(arguments);return a.unshift(t),e.push(a),e}};for(var t=0;t<e.methods.length;t++){var a=e.methods[t];e[a]=e.factory(a)}e.load=function(e){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+e+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(t,a)},e.SNIPPET_VERSION="4.0.0",e.load("0EXTgkNx0Ydje2PGXVbRhpKKoe5wtzcE")}}();var om597a24292a958,om597a24292a958_poll=function(){var e=0;return function(t,a){clearInterval(e),e=setInterval(t,a)}}();!function(e,t,a){if(e.getElementById(a))om597a24292a958_poll(function(){if(window.om_loaded&&!om597a24292a958)return(om597a24292a958=new OptinMonsterApp).init({s:"35109.597a24292a958",staging:0,dev:0,beta:0})},25);else{var n=!1,o=e.createElement("script");o.id=a,o.src="//a.optnmstr.com/app/js/api.min.js",o.async=!0,o.onload=o.onreadystatechange=function(){if(!(n||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState))try{n=om_loaded=!0,(om597a24292a958=new OptinMonsterApp).init({s:"35109.597a24292a958",staging:0,dev:0,beta:0}),o.onload=o.onreadystatechange=null}catch(e){}},(document.getElementsByTagName("head")[0]||document.documentElement).appendChild(o)}}(document,0,"omapi-script");
55 </script>
56
57
58 </head>
59
60 <body id="page-docs-mailgun-index" class="layout-mailgun page-provider-mailgun">
61
62 <svg class="hidden-print" aria-hidden="true" style="position: absolute; width: 0; height: 0;" width="0" height="0" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
63 <defs>
64 <symbol id="mega-nav-icon-angle" viewBox="0 0 13 7">
65 <polygon points="6.5,6.5 0.7,1.6 1.3,0.8 6.5,5.2 11.7,0.8 12.3,1.6 "/>
66 </symbol>
67 <symbol id="mega-nav-icon-close" viewBox="0 0 13 15">
68 <path vector-effect="non-scaling-stroke" d="M1.1 14L11.9 1M11.9 14L1.1 1"/>
69 </symbol>
70 </defs>
71</svg>
72<div class="hidden-print mega-nav-sandbox">
73 <div class="mega-nav-banner">
74 <div class="container">
75 <div class="mega-nav-banner-item">
76 <a class="mega-nav-banner-logo" href="https://www.hashicorp.com"><img src="../../../assets/images/mega-nav/logo-hashicorp-wordmark.svg" alt="HashiCorp Logo" /></a>
77 </div>
78 <div class="mega-nav-banner-item">
79 <p class="mega-nav-tagline"><span class="visible-xs text-muted">Learn the</span><span class="hidden-xs text-muted">Learn how Terraform fits into the</span></p>
80 <div id="#mega-nav" class="mega-nav">
81 <button type="button" id="mega-nav-ctrl" class="mega-nav-ctrl">
82 <div class="mega-nav-ctrl-items">
83 <img src="../../../assets/images/mega-nav/logo-hashicorp.svg" alt="HashiCorp Logo" />
84 <strong>HashiCorp Suite</strong>
85 <span class="mega-nav-icon-outline">
86 <svg class="mega-nav-icon mega-nav-icon-angle-right" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mega-nav-icon-angle"></use></svg><span class="visuallyhidden">Open</span>
87 </span>
88 </div>
89 </button>
90 <div id="mega-nav-body-ct" class="mega-nav-body-ct" aria-labelledby="mega-nav-ctrl">
91 <div class="mega-nav-body">
92 <button type="button" id="mega-nav-close" class="mega-nav-close"><svg class="mega-nav-icon mega-nav-icon-close" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mega-nav-icon-close"></use></svg><span class="visuallyhidden">Close</span></button>
93 <div class="mega-nav-body-header">
94 <div class="mega-nav-body-header-item">
95 <h2 class="mega-nav-h1">Provision, Secure, Connect, and&nbsp;Run</h2>
96 <p class="mega-nav-h2">Any infrastructure for any&nbsp;application</p>
97 </div>
98 <div class="mega-nav-body-header-item">
99 <a href="https://www.hashicorp.com/" class="mega-nav-btn"><img src="../../../assets/images/mega-nav/logo-hashicorp.svg" alt="HashiCorp Logo" /> Learn the HashiCorp Enterprise&nbsp;Suite <svg class="mega-nav-icon mega-nav-icon-angle-right" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mega-nav-icon-angle"></use></svg></a>
100 </div>
101 </div>
102 <div class="mega-nav-body-grid">
103 <div class="mega-nav-body-grid-item">
104 <h3 class="mega-nav-h3">Provision</h3>
105 <ul class="mega-nav-grid">
106 <li>
107 <a href="https://www.vagrantup.com" class="mega-nav-grid-item mega-nav-grid-item-vagrant">
108 <div class="mega-nav-grid-item-img">
109 <img src="../../../assets/images/mega-nav/logo-vagrant.svg" alt="Vagrant Logo" />
110 </div>
111 <b>Vagrant</b>
112 <ul>
113 <li><span class="mega-nav-tag">Build</span></li>
114 <li><span class="mega-nav-tag">Test</span></li>
115 </ul>
116 </a>
117 </li>
118 <li>
119 <a href="https://www.packer.io" class="mega-nav-grid-item mega-nav-grid-item-packer">
120 <div class="mega-nav-grid-item-img">
121 <img src="../../../assets/images/mega-nav/logo-packer.svg" alt="Packer Logo" />
122 </div>
123 <b>Packer</b>
124 <ul>
125 <li><span class="mega-nav-tag">Package</span></li>
126 </ul>
127 </a>
128 </li>
129 <li>
130 <a href="https://www.terraform.io" class="mega-nav-grid-item mega-nav-grid-item-terraform">
131 <div class="mega-nav-grid-item-img">
132 <img src="../../../assets/images/mega-nav/logo-terraform.svg" alt="Terraform Logo" />
133 </div>
134 <b>Terraform</b>
135 <ul>
136 <li><span class="mega-nav-tag">Provision</span></li>
137 </ul>
138 </a>
139 </li>
140 </ul>
141 </div>
142 <div class="mega-nav-body-grid-item">
143 <h3 class="mega-nav-h3">Secure</h3>
144 <ul class="mega-nav-grid">
145 <li>
146 <a href="https://www.vaultproject.io" class="mega-nav-grid-item mega-nav-grid-item-vault">
147 <div class="mega-nav-grid-item-img">
148 <img src="../../../assets/images/mega-nav/logo-vault.svg" alt="Vault Logo" />
149 </div>
150 <b>Vault</b>
151 <ul>
152 <li><span class="mega-nav-tag">Secure</span></li>
153 </ul>
154 </a>
155 </li>
156 </ul>
157 </div>
158 <div class="mega-nav-body-grid-item">
159 <h3 class="mega-nav-h3">Connect</h3>
160 <ul class="mega-nav-grid">
161 <li>
162 <a href="https://www.consul.io" class="mega-nav-grid-item mega-nav-grid-item-consul">
163 <div class="mega-nav-grid-item-img">
164 <img src="../../../assets/images/mega-nav/logo-consul.svg" alt="Consul Logo" />
165 </div>
166 <b>Consul</b>
167 <ul>
168 <li><span class="mega-nav-tag">Connect</span></li>
169 </ul>
170 </a>
171 </li>
172 </ul>
173 </div>
174 <div class="mega-nav-body-grid-item">
175 <h3 class="mega-nav-h3">Run</h3>
176 <ul class="mega-nav-grid">
177 <li>
178 <a href="https://www.nomadproject.io" class="mega-nav-grid-item mega-nav-grid-item-nomad">
179 <div class="mega-nav-grid-item-img">
180 <img src="../../../assets/images/mega-nav/logo-nomad.svg" alt="Nomad Logo" />
181 </div>
182 <b>Nomad</b>
183 <ul>
184 <li><span class="mega-nav-tag">Run</span></li>
185 </ul>
186 </a>
187 </li>
188 </ul>
189 </div>
190 </div>
191 <div class="mega-nav-body-footer">
192 <p>Seven elements of the modern Application Lifecycle</p>
193 </div>
194 </div>
195 </div>
196 </div>
197 </div>
198 </div>
199 </div>
200</div>
201
202
203 <div id="header" class="navigation navbar-static-top hidden-print">
204 <div class="container">
205 <div class="row">
206 <div class="col-xs-12">
207 <div class="navbar-header">
208 <div class="navbar-brand">
209 <a href="http://localhost:4567/">
210 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 251 61" class="logo" height="50">
211 <path class="text" fill="#000" fill-rule="nonzero" d="M81.78 19.54h-8.89v-5.31H96.7v5.31h-8.9v26.53h-6"></path>
212 <path class="text" fill="#000" fill-rule="nonzero" d="M102.19 41.77c2.415-.012 4.814-.383 7.12-1.1l.91 4.4c-2.745.99-5.642 1.49-8.56 1.48-7.31 0-9.85-3.39-9.85-9V31.4c0-4.92 2.2-9.08 9.66-9.08s9.13 4.35 9.13 9.37v5h-13v1.2c.05 2.78 1.05 3.88 4.59 3.88zM97.65 32h7.41v-1.18c0-2.2-.67-3.73-3.54-3.73s-3.87 1.53-3.87 3.73V32zm28.54-4.33c-2.148.97-4.217 2.102-6.19 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.6 5.36zm14.24 0c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.58 5.36zm19.51 18.4h-4.78l-.43-1.58c-2.062 1.342-4.47 2.058-6.93 2.06-4.25 0-6.07-2.92-6.07-6.93 0-4.73 2.06-6.55 6.79-6.55h5.59v-2.44c0-2.58-.72-3.49-4.45-3.49-2.17.024-4.33.266-6.45.72l-.72-4.45c2.606-.72 5.296-1.09 8-1.1 7.31 0 9.47 2.58 9.47 8.41l-.02 15.35zm-5.83-8.8h-4.3c-1.91 0-2.44.53-2.44 2.29s.53 2.34 2.34 2.34c1.544-.024 3.058-.436 4.4-1.2v-3.43zm23.75-19.79c-1.1-.237-2.224-.364-3.35-.38-2.29 0-2.63 1-2.63 2.77v2.92h5.93l-.33 4.64h-5.59v18.64h-5.83V27.43h-3.73v-4.64h3.73v-3.25c0-4.83 2.25-7.22 7.41-7.22 1.69-.006 3.372.22 5 .67l-.61 4.49zm11.38 29.07c-8 0-10.13-4.4-10.13-9.18v-5.88c0-4.78 2.15-9.18 10.13-9.18s10.13 4.4 10.13 9.18v5.88c.01 4.78-2.15 9.18-10.13 9.18zm0-19.27c-3.11 0-4.3 1.39-4.3 4v6.26c0 2.63 1.2 4 4.3 4 3.1 0 4.3-1.39 4.3-4V31.3c0-2.63-1.19-4.02-4.3-4.02zm25.14.39c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.954-2.313 6.12-3.06l.58 5.36zm16.02 18.4V29.82c0-1.24-.53-1.86-1.86-1.86-2.137.254-4.2.934-6.07 2v16.11h-5.83V22.79h4.45l.57 2c2.906-1.47 6.088-2.315 9.34-2.48 1.843-.174 3.6.82 4.4 2.49 2.91-1.49 6.104-2.34 9.37-2.49 3.87 0 5.26 2.72 5.26 6.88v16.88h-5.83V29.82c0-1.24-.53-1.86-1.86-1.86-2.14.236-4.208.917-6.07 2v16.11h-5.87z"></path>
213 <path class="rect-dark" fill="#4040B2" d="M36.4 39.13l16.4-9.46V10.72L36.4 20.2"></path>
214 <path class="rect-light" fill="#5C4EE5" d="M18.2 10.72l16.4 9.48v18.93l-16.4-9.47"></path>
215 <path class="rect-light" fill="#5C4EE5" d="M0 19.09l16.4 9.47V9.62L0 .15m18.2 50.53l16.4 9.47V41.21l-16.4-9.47"></path>
216</svg>
217
218 </a>
219 </div>
220 <button class="navbar-toggle" type="button">
221 <span class="sr-only">Toggle navigation</span>
222 <span class="icon-bar"></span>
223 <span class="icon-bar"></span>
224 <span class="icon-bar"></span>
225 </button>
226 </div>
227
228
229 <div class="buttons hidden-xs">
230 <nav class="navigation-links" role="navigation">
231 <ul class="main-links nav navbar-nav navbar-right">
232 <li class="visible-sm"><span><a href="http://localhost:4567/index.html">Info</a><svg width="9" height="5" xmlns="http://www.w3.org/2000/svg"><path d="M8.811 1.067a.612.612 0 0 0 0-.884.655.655 0 0 0-.908 0L4.5 3.491 1.097.183a.655.655 0 0 0-.909 0 .615.615 0 0 0 0 .884l3.857 3.75a.655.655 0 0 0 .91 0l3.856-3.75z" fill-rule="evenodd"/></svg></span>
233 <ul class="dropdown">
234 <li><a href="http://localhost:4567/intro/index.html">Intro</a></li>
235 <li><a href="https://learn.hashicorp.com/terraform/">Learn</a></li>
236 <li><a href="http://localhost:4567/community.html">Community</a></li>
237 <li><a href="https://www.hashicorp.com/products/terraform/?utm_source=oss&utm_medium=header-nav&utm_campaign=terraform">Enterprise</a></li>
238 </ul>
239 </li>
240 <li class="hidden-sm"><a href="http://localhost:4567/intro/index.html">Intro</a></li>
241 <li class="hidden-sm"><a href="https://learn.hashicorp.com/terraform/">Learn</a></li>
242 <li><span><a href="http://localhost:4567/docs/index.html">Docs</a><svg width="9" height="5" xmlns="http://www.w3.org/2000/svg"><path d="M8.811 1.067a.612.612 0 0 0 0-.884.655.655 0 0 0-.908 0L4.5 3.491 1.097.183a.655.655 0 0 0-.909 0 .615.615 0 0 0 0 .884l3.857 3.75a.655.655 0 0 0 .91 0l3.856-3.75z" fill-rule="evenodd"/></svg></span>
243 <ul class="dropdown">
244 <li><a href="http://localhost:4567/docs/index.html">Docs Home</a></li>
245 <li><a href="http://localhost:4567/docs/cli-index.html">Terraform CLI</a></li>
246 <li><a href="http://localhost:4567/docs/enterprise/index.html">Terraform Enterprise</a></li>
247 <li><a href="http://localhost:4567/docs/providers/index.html">Providers</a></li>
248 <li><a href="http://localhost:4567/docs/glossary.html">Glossary</a></li>
249 <li><a href="http://localhost:4567/guides/index.html">Guides and Whitepapers</a></li>
250 <li><a href="http://localhost:4567/docs/registry/index.html">Registry</a></li>
251 <li><a href="http://localhost:4567/docs/github-actions/index.html">GitHub Actions</a></li>
252 <li><a href="http://localhost:4567/docs/extend/index.html">Extending Terraform</a></li>
253
254 </ul>
255 </li>
256 <li class="hidden-sm"><a href="http://localhost:4567/community.html">Community</a></li>
257 <li class="hidden-sm"><a href="https://www.hashicorp.com/products/terraform/?utm_source=oss&utm_medium=header-nav&utm_campaign=terraform">Enterprise</a></li>
258 <li>
259 <a href="http://localhost:4567/downloads.html">
260 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
261 <path d="M28 0H0v28h28V0zM13.8 22.9L7 17.3l2-2.4 3.2 2.6V7h3.2v10.5l3.2-2.6 2 2.4L13.8 22.9z"></path>
262</svg>
263 Download
264 </a>
265 </li>
266 <li>
267 <a href="https://github.com/hashicorp/terraform">
268 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
269 <path d="M28 0H0v28h11.4c0 0 0-1.3 0-2.4C7.7 26.4 7 23.9 7 23.9 6.4 22.4 5.5 22 5.5 22c-1.2-0.8 0.1-0.8 0.1-0.8 1.3 0.1 2 1.4 2 1.4 1.2 2 3 1.4 3.8 1.1 0.1-0.8 0.5-1.4 0.9-1.8 -2.9-0.3-6-1.5-6-6.5 0-1.4 0.5-2.6 1.3-3.5C7.5 11.5 7 10.2 7.8 8.4c0 0 1.1-0.4 3.6 1.3 1-0.3 2.2-0.4 3.3-0.4 1.1 0 2.2 0.2 3.3 0.4 2.5-1.7 3.6-1.3 3.6-1.3 0.7 1.8 0.3 3.1 0.1 3.5 0.8 0.9 1.3 2.1 1.3 3.5 0 5-3.1 6.1-6 6.5 0.5 0.4 0.9 1.2 0.9 2.4 0 1.8 0 3.7 0 3.7H28V0z"></path>
270</svg>
271 GitHub
272 </a>
273 </li>
274 </ul>
275 </nav>
276 </div>
277 </div>
278 </div>
279 </div>
280 </div>
281
282
283 <div class="sidebar-overlay"></div>
284
285<aside class="sidebar" role="navigation">
286 <div class="sidebar-header">
287 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 251 61" class="logo" height="42">
288 <path class="text" fill="#000" fill-rule="nonzero" d="M81.78 19.54h-8.89v-5.31H96.7v5.31h-8.9v26.53h-6"></path>
289 <path class="text" fill="#000" fill-rule="nonzero" d="M102.19 41.77c2.415-.012 4.814-.383 7.12-1.1l.91 4.4c-2.745.99-5.642 1.49-8.56 1.48-7.31 0-9.85-3.39-9.85-9V31.4c0-4.92 2.2-9.08 9.66-9.08s9.13 4.35 9.13 9.37v5h-13v1.2c.05 2.78 1.05 3.88 4.59 3.88zM97.65 32h7.41v-1.18c0-2.2-.67-3.73-3.54-3.73s-3.87 1.53-3.87 3.73V32zm28.54-4.33c-2.148.97-4.217 2.102-6.19 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.6 5.36zm14.24 0c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.58 5.36zm19.51 18.4h-4.78l-.43-1.58c-2.062 1.342-4.47 2.058-6.93 2.06-4.25 0-6.07-2.92-6.07-6.93 0-4.73 2.06-6.55 6.79-6.55h5.59v-2.44c0-2.58-.72-3.49-4.45-3.49-2.17.024-4.33.266-6.45.72l-.72-4.45c2.606-.72 5.296-1.09 8-1.1 7.31 0 9.47 2.58 9.47 8.41l-.02 15.35zm-5.83-8.8h-4.3c-1.91 0-2.44.53-2.44 2.29s.53 2.34 2.34 2.34c1.544-.024 3.058-.436 4.4-1.2v-3.43zm23.75-19.79c-1.1-.237-2.224-.364-3.35-.38-2.29 0-2.63 1-2.63 2.77v2.92h5.93l-.33 4.64h-5.59v18.64h-5.83V27.43h-3.73v-4.64h3.73v-3.25c0-4.83 2.25-7.22 7.41-7.22 1.69-.006 3.372.22 5 .67l-.61 4.49zm11.38 29.07c-8 0-10.13-4.4-10.13-9.18v-5.88c0-4.78 2.15-9.18 10.13-9.18s10.13 4.4 10.13 9.18v5.88c.01 4.78-2.15 9.18-10.13 9.18zm0-19.27c-3.11 0-4.3 1.39-4.3 4v6.26c0 2.63 1.2 4 4.3 4 3.1 0 4.3-1.39 4.3-4V31.3c0-2.63-1.19-4.02-4.3-4.02zm25.14.39c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.954-2.313 6.12-3.06l.58 5.36zm16.02 18.4V29.82c0-1.24-.53-1.86-1.86-1.86-2.137.254-4.2.934-6.07 2v16.11h-5.83V22.79h4.45l.57 2c2.906-1.47 6.088-2.315 9.34-2.48 1.843-.174 3.6.82 4.4 2.49 2.91-1.49 6.104-2.34 9.37-2.49 3.87 0 5.26 2.72 5.26 6.88v16.88h-5.83V29.82c0-1.24-.53-1.86-1.86-1.86-2.14.236-4.208.917-6.07 2v16.11h-5.87z"></path>
290 <path class="rect-dark" fill="#4040B2" d="M36.4 39.13l16.4-9.46V10.72L36.4 20.2"></path>
291 <path class="rect-light" fill="#5C4EE5" d="M18.2 10.72l16.4 9.48v18.93l-16.4-9.47"></path>
292 <path class="rect-light" fill="#5C4EE5" d="M0 19.09l16.4 9.47V9.62L0 .15m18.2 50.53l16.4 9.47V41.21l-16.4-9.47"></path>
293</svg>
294
295 </div>
296
297 <ul class="nav sidebar-nav">
298 <li><a href="http://localhost:4567/intro/index.html">Intro</a></li>
299 <li><a href="https://learn.hashicorp.com/terraform/">Learn</a></li>
300 <li><a href="http://localhost:4567/community.html">Community</a></li>
301 <li><a href="https://www.hashicorp.com/products/terraform/?utm_source=oss&utm_medium=header-nav&utm_campaign=terraform">Enterprise</a></li>
302 </ul>
303
304 <div class="divider"></div>
305
306 <ul class="external nav sidebar-nav">
307 <li>
308 <a href="http://localhost:4567/downloads.html">
309 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
310 <path d="M28 0H0v28h28V0zM13.8 22.9L7 17.3l2-2.4 3.2 2.6V7h3.2v10.5l3.2-2.6 2 2.4L13.8 22.9z"></path>
311</svg>
312 Download
313 </a>
314 </li>
315 <li>
316 <a href="https://github.com/hashicorp/terraform">
317 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
318 <path d="M28 0H0v28h11.4c0 0 0-1.3 0-2.4C7.7 26.4 7 23.9 7 23.9 6.4 22.4 5.5 22 5.5 22c-1.2-0.8 0.1-0.8 0.1-0.8 1.3 0.1 2 1.4 2 1.4 1.2 2 3 1.4 3.8 1.1 0.1-0.8 0.5-1.4 0.9-1.8 -2.9-0.3-6-1.5-6-6.5 0-1.4 0.5-2.6 1.3-3.5C7.5 11.5 7 10.2 7.8 8.4c0 0 1.1-0.4 3.6 1.3 1-0.3 2.2-0.4 3.3-0.4 1.1 0 2.2 0.2 3.3 0.4 2.5-1.7 3.6-1.3 3.6-1.3 0.7 1.8 0.3 3.1 0.1 3.5 0.8 0.9 1.3 2.1 1.3 3.5 0 5-3.1 6.1-6 6.5 0.5 0.4 0.9 1.2 0.9 2.4 0 1.8 0 3.7 0 3.7H28V0z"></path>
319</svg>
320 GitHub
321 </a>
322 </li>
323 </ul>
324
325 <div class="divider"></div>
326
327 <ul class="nav sidebar-nav">
328 <li><a href="http://localhost:4567/docs/index.html">Docs:</a></li>
329 <li><a href="http://localhost:4567/docs/index.html">Docs Home</a></li>
330 <li><a href="http://localhost:4567/docs/cli-index.html">Terraform CLI</a></li>
331 <li><a href="http://localhost:4567/docs/enterprise/index.html">Terraform Enterprise</a></li>
332 <li><a href="http://localhost:4567/docs/providers/index.html">Providers</a></li>
333 <li><a href="http://localhost:4567/docs/glossary.html">Glossary</a></li>
334 <li><a href="http://localhost:4567/guides/index.html">Guides and Whitepapers</a></li>
335 <li><a href="http://localhost:4567/docs/registry/index.html">Registry</a></li>
336 <li><a href="http://localhost:4567/docs/github-actions/index.html">GitHub Actions</a></li>
337 <li><a href="http://localhost:4567/docs/extend/index.html">Extending Terraform</a></li>
338
339 </ul>
340
341</aside>
342
343
344 <div class="container">
345 <div class="row">
346 <div id="docs-sidebar" class="col-sm-4 col-md-3 col-xs-12 hidden-print" role="complementary">
347 <a href="index.html#inner" id="screenreader-skip" class="sr-only sr-only-focusable">Skip to content</a>
348 <a href="index.html#inner" id="mobile-skip" class="visible-xs">(Skip to content ⤵︎)</a>
349 <div id="controls-placeholder" style="display: none;"></div>
350 <div class="docs-sidebar hidden-print affix-top" role="complementary">
351 <ul class="nav docs-sidenav">
352 <li>
353 <a href="http://localhost:4567/docs/providers/index.html">All Providers</a>
354 </li>
355
356 <li>
357 <a href="index.html" class="current-page">Mailgun Provider</a>
358 </li>
359
360 <li>
361 <a href="index.html#">Resources</a>
362 <ul class="nav nav-visible">
363 <li>
364 <a href="r/domain.html">mailgun_domain</a>
365 </li>
366 <li>
367 <a href="r/route.html">mailgun_route</a>
368 </li>
369 </ul>
370 </li>
371 </ul>
372 </div>
373
374 </div>
375
376 <div id="inner" class="col-sm-8 col-md-9 col-xs-12" role="main">
377
378 <h1 id="mailgun-provider">
379 <a name="mailgun-provider" class="anchor" href="index.html#mailgun-provider">&raquo;</a>
380 Mailgun Provider
381</h1>
382<p>The Mailgun provider allows Terraform to create and configure domains and routes in <a href="https://www.mailgun.com/">Mailgun</a>.</p>
383<p>The provider configuration block accepts the following arguments:</p>
384
385<ul>
386<li><p><a name="domain" /><a href="index.html#domain"><code>domain</code></a> - (Required) The domain name for the ressources created with the provider. May alternatively be set via the
387<code>MAILGUN_DOMAIN</code> environment variable.</p>
388</li>
389<li><p><a name="apikey" /><a href="index.html#apikey"><code>apikey</code></a> - (Required) The API auth token to use when making requests. May alternatively
390be set via the <code>MAILGUN_APIKEY</code> environment variable.</p>
391</li>
392</ul>
393<p>Use the navigation to the left to read about the available resources.</p>
394<h2 id="example-usage">
395 <a name="example-usage" class="anchor" href="index.html#example-usage">&raquo;</a>
396 Example Usage
397</h2>
398<div class="highlight"><pre class="highlight hcl"><code><span class="n">provider</span> <span class="s2">"mailgun"</span> <span class="p">{</span>
399 <span class="n">domain</span> <span class="o">=</span> <span class="s2">"domain.com"</span>
400 <span class="n">apikey</span> <span class="o">=</span> <span class="s2">"15ee99178cc7q6325df7ff8a15211228-2f778ta3-e04c2946"</span>
401<span class="p">}</span>
402
403<span class="n">resource</span> <span class="s2">"mailgun_domain"</span> <span class="s2">"example"</span> <span class="p">{</span>
404 <span class="nb">name</span><span class="o">=</span><span class="s2">"domain.com"</span>
405 <span class="n">spam_action</span><span class="o">=</span><span class="s2">"block"</span>
406 <span class="n">smtp_password</span><span class="o">=</span><span class="s2">"password"</span>
407 <span class="n">wildcard</span><span class="o">=</span><span class="kp">true</span>
408 <span class="n">force_dkim_authority</span><span class="o">=</span><span class="kp">true</span>
409 <span class="n">dkim_key_size</span><span class="o">=</span><span class="mi">1024</span>
410 <span class="n">ips</span><span class="o">=</span><span class="p">[</span><span class="s2">"192.161.0.1"</span><span class="p">,</span> <span class="s2">"192.168.0.2"</span><span class="p">]</span>
411 <span class="n">credentials</span><span class="p">{</span>
412 <span class="n">login</span><span class="o">=</span><span class="s2">"login"</span>
413 <span class="n">password</span><span class="o">=</span><span class="s2">"password"</span>
414 <span class="p">}</span>
415 <span class="n">open_tracking_settings_active</span><span class="o">=</span><span class="kp">true</span>
416 <span class="n">click_tracking_settings_active</span><span class="o">=</span><span class="kp">true</span>
417 <span class="n">unsubscribe_tracking_settings_active</span><span class="o">=</span><span class="kp">true</span>
418 <span class="n">unsubscribe_tracking_settings_html_footer</span><span class="o">=</span><span class="s2">"&lt;p&gt;footer&lt;/p&gt;"</span>
419 <span class="n">unsubscribe_tracking_settings_text_footer</span><span class="o">=</span><span class="s2">"footer"</span>
420 <span class="n">require_tls</span><span class="o">=</span><span class="kp">true</span>
421 <span class="n">skip_verification</span><span class="o">=</span><span class="kp">true</span>
422<span class="p">}</span>
423
424<span class="n">resource</span> <span class="s2">"mailgun_route"</span> <span class="s2">"example"</span> <span class="p">{</span>
425 <span class="n">depends_on</span> <span class="o">=</span> <span class="p">[</span><span class="n">mailgun_domain</span><span class="p">.</span><span class="nf">example</span><span class="p">]</span>
426 <span class="n">priority</span><span class="o">=</span><span class="mi">5</span>
427 <span class="n">description</span><span class="o">=</span><span class="s2">"description"</span>
428 <span class="n">expression</span><span class="o">=</span><span class="s2">"match_recipient(</span><span class="se">\"</span><span class="s2">.*@samples.mailgun.org</span><span class="se">\"</span><span class="s2">)"</span>
429 <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
430 <span class="s2">"forward(</span><span class="se">\"</span><span class="s2">http://myhost.com/messages/</span><span class="se">\"</span><span class="s2">)"</span><span class="p">,</span>
431 <span class="s2">"stop()"</span>
432 <span class="p">]</span>
433<span class="p">}</span>
434
435</code></pre></div>
436
437 </div>
438 </div>
439</div>
440
441
442 <div id="footer" class="navigation hidden-print">
443 <div class="container">
444 <div class="row">
445 <div class="col-xs-12">
446 <ul class="footer-links nav navbar-nav">
447 <li><a href="http://localhost:4567/intro/index.html">Intro</a></li>
448 <li><a href="http://localhost:4567/docs/index.html">Docs</a></li>
449 <li><a href="http://localhost:4567/docs/extend/index.html">Extend</a></li>
450 <li><a href="https://www.hashicorp.com/privacy">Privacy</a></li>
451 <li><a href="http://localhost:4567/security.html">Security</a></li>
452 <li><a href="http://localhost:4567/assets/files/press-kit.zip">Press Kit</a></li>
453 </ul>
454 <ul class="footer-links nav navbar-nav navbar-right">
455 <li><a href="https://github.com/terraform-providers/terraform-provider-mailgun/edit/master/website/docs/index.html.markdown">Edit this page</a></li>
456 </ul>
457 </div>
458 </div>
459 </div>
460 </div>
461
462 <script type="application/ld+json">
463 {
464 "@context": "http://schema.org",
465 "@type": "Product",
466 "name": "Terraform",
467 "alternateName": "Terraform by HashiCorp",
468 "manufacturer": "HashiCorp",
469 "url": "https://www.terraform.io",
470 "logo": "https://www.terraform.io/assets/images/logo-hashicorp.svg",
471 "sameAs": [
472 "https://github.com/hashicorp/terraform"
473 ]
474 }
475 </script>
476 </body>
477</html>
diff --git a/docs/providers/mailgun/r/domain.html b/docs/providers/mailgun/r/domain.html
new file mode 100644
index 0000000..1ebb096
--- /dev/null
+++ b/docs/providers/mailgun/r/domain.html
@@ -0,0 +1,528 @@
1<!DOCTYPE html>
2<html lang="en">
3 <head>
4 <script type="text/javascript">
5 WEB_SOCKET_SWF_LOCATION = "/__rack/WebSocketMain.swf";
6
7 </script>
8 <script type="text/javascript" src="../../../../__rack/swfobject.js"></script>
9 <script type="text/javascript" src="../../../../__rack/web_socket.js"></script>
10
11<script type="text/javascript">
12 RACK_LIVERELOAD_PORT = 35729;
13</script>
14<script type="text/javascript" src="../../../../__rack/livereload.js%3Fhost=0.0.0.0&amp;port=35729"></script>
15
16
17 <meta charset="utf-8">
18 <meta name="mobile-web-app-capable" content="yes">
19 <meta name="viewport" content="width=device-width, initial-scale=1.0">
20 <meta name="description" content="The domain_resource allows mailgun domain to be managed by Terraform.">
21
22 <link rel="apple-touch-icon" sizes="180x180" href="http://localhost:4567/assets/images/favicons/apple-touch-icon.png">
23 <link rel="icon" type="image/png" href="http://localhost:4567/assets/images/favicons/favicon-32x32.png" sizes="32x32">
24 <link rel="icon" type="image/png" href="http://localhost:4567/assets/images/favicons/favicon-16x16.png" sizes="16x16">
25 <link rel="manifest" href="http://localhost:4567/android-manifest.json">
26 <link rel="mask-icon" href="http://localhost:4567/assets/images/favicons/safari-pinned-tab.svg" color="#5C4EE5">
27 <meta name="msapplication-config" content="/microsoft-tile.xml" />
28 <meta name="theme-color" content="#ffffff">
29
30 <meta name="twitter:card" content="summary" />
31 <meta property="og:image" content="https://www.terraform.io/assets/images/og-image.png"/>
32 <meta property="og:image:width" content="100"/>
33 <meta property="og:image:height" content="100"/>
34 <meta name="twitter:site" content="@HashiCorp" />
35 <meta name="twitter:creator" content="@HashiCorp" />
36 <meta property="og:type" content="website" />
37 <meta property="og:url" content="https://www.terraform.io/docs/providers/mailgun/r/domain.html" />
38 <meta property="og:title" content="Mailgun: mailgun_domain - Terraform by HashiCorp" />
39 <meta property="og:site_name" content="Terraform by HashiCorp"/>
40 <meta property="og:description" content="The domain_resource allows mailgun domain to be managed by Terraform." />
41
42 <title>Mailgun: mailgun_domain - Terraform by HashiCorp</title>
43
44 <!-- Stylesheets -->
45 <link rel="stylesheet" href="https://use.typekit.net/wxf7mfi.css">
46 <link href="../../../../assets/stylesheets/application.css" rel="stylesheet" />
47
48 <!-- Site scripts -->
49 <!--[if lt IE 9]><script src="/assets/javascripts/ie-compat.js" defer="defer"></script><![endif]-->
50 <script src="../../../../assets/javascripts/application.js" defer="defer"></script>
51
52 <!-- Analytics scrpts -->
53 <script defer>
54 !function(){var e=window.analytics=window.analytics||[];if(!e.initialize)if(e.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{e.invoked=!0,e.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on"],e.factory=function(t){return function(){var a=Array.prototype.slice.call(arguments);return a.unshift(t),e.push(a),e}};for(var t=0;t<e.methods.length;t++){var a=e.methods[t];e[a]=e.factory(a)}e.load=function(e){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+e+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(t,a)},e.SNIPPET_VERSION="4.0.0",e.load("0EXTgkNx0Ydje2PGXVbRhpKKoe5wtzcE")}}();var om597a24292a958,om597a24292a958_poll=function(){var e=0;return function(t,a){clearInterval(e),e=setInterval(t,a)}}();!function(e,t,a){if(e.getElementById(a))om597a24292a958_poll(function(){if(window.om_loaded&&!om597a24292a958)return(om597a24292a958=new OptinMonsterApp).init({s:"35109.597a24292a958",staging:0,dev:0,beta:0})},25);else{var n=!1,o=e.createElement("script");o.id=a,o.src="//a.optnmstr.com/app/js/api.min.js",o.async=!0,o.onload=o.onreadystatechange=function(){if(!(n||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState))try{n=om_loaded=!0,(om597a24292a958=new OptinMonsterApp).init({s:"35109.597a24292a958",staging:0,dev:0,beta:0}),o.onload=o.onreadystatechange=null}catch(e){}},(document.getElementsByTagName("head")[0]||document.documentElement).appendChild(o)}}(document,0,"omapi-script");
55 </script>
56
57
58 </head>
59
60 <body id="page-docs-mailgun-domain" class="layout-mailgun page-mailgun-mailgun-domain">
61
62 <svg class="hidden-print" aria-hidden="true" style="position: absolute; width: 0; height: 0;" width="0" height="0" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
63 <defs>
64 <symbol id="mega-nav-icon-angle" viewBox="0 0 13 7">
65 <polygon points="6.5,6.5 0.7,1.6 1.3,0.8 6.5,5.2 11.7,0.8 12.3,1.6 "/>
66 </symbol>
67 <symbol id="mega-nav-icon-close" viewBox="0 0 13 15">
68 <path vector-effect="non-scaling-stroke" d="M1.1 14L11.9 1M11.9 14L1.1 1"/>
69 </symbol>
70 </defs>
71</svg>
72<div class="hidden-print mega-nav-sandbox">
73 <div class="mega-nav-banner">
74 <div class="container">
75 <div class="mega-nav-banner-item">
76 <a class="mega-nav-banner-logo" href="https://www.hashicorp.com"><img src="../../../../assets/images/mega-nav/logo-hashicorp-wordmark.svg" alt="HashiCorp Logo" /></a>
77 </div>
78 <div class="mega-nav-banner-item">
79 <p class="mega-nav-tagline"><span class="visible-xs text-muted">Learn the</span><span class="hidden-xs text-muted">Learn how Terraform fits into the</span></p>
80 <div id="#mega-nav" class="mega-nav">
81 <button type="button" id="mega-nav-ctrl" class="mega-nav-ctrl">
82 <div class="mega-nav-ctrl-items">
83 <img src="../../../../assets/images/mega-nav/logo-hashicorp.svg" alt="HashiCorp Logo" />
84 <strong>HashiCorp Suite</strong>
85 <span class="mega-nav-icon-outline">
86 <svg class="mega-nav-icon mega-nav-icon-angle-right" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mega-nav-icon-angle"></use></svg><span class="visuallyhidden">Open</span>
87 </span>
88 </div>
89 </button>
90 <div id="mega-nav-body-ct" class="mega-nav-body-ct" aria-labelledby="mega-nav-ctrl">
91 <div class="mega-nav-body">
92 <button type="button" id="mega-nav-close" class="mega-nav-close"><svg class="mega-nav-icon mega-nav-icon-close" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mega-nav-icon-close"></use></svg><span class="visuallyhidden">Close</span></button>
93 <div class="mega-nav-body-header">
94 <div class="mega-nav-body-header-item">
95 <h2 class="mega-nav-h1">Provision, Secure, Connect, and&nbsp;Run</h2>
96 <p class="mega-nav-h2">Any infrastructure for any&nbsp;application</p>
97 </div>
98 <div class="mega-nav-body-header-item">
99 <a href="https://www.hashicorp.com/" class="mega-nav-btn"><img src="../../../../assets/images/mega-nav/logo-hashicorp.svg" alt="HashiCorp Logo" /> Learn the HashiCorp Enterprise&nbsp;Suite <svg class="mega-nav-icon mega-nav-icon-angle-right" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mega-nav-icon-angle"></use></svg></a>
100 </div>
101 </div>
102 <div class="mega-nav-body-grid">
103 <div class="mega-nav-body-grid-item">
104 <h3 class="mega-nav-h3">Provision</h3>
105 <ul class="mega-nav-grid">
106 <li>
107 <a href="https://www.vagrantup.com" class="mega-nav-grid-item mega-nav-grid-item-vagrant">
108 <div class="mega-nav-grid-item-img">
109 <img src="../../../../assets/images/mega-nav/logo-vagrant.svg" alt="Vagrant Logo" />
110 </div>
111 <b>Vagrant</b>
112 <ul>
113 <li><span class="mega-nav-tag">Build</span></li>
114 <li><span class="mega-nav-tag">Test</span></li>
115 </ul>
116 </a>
117 </li>
118 <li>
119 <a href="https://www.packer.io" class="mega-nav-grid-item mega-nav-grid-item-packer">
120 <div class="mega-nav-grid-item-img">
121 <img src="../../../../assets/images/mega-nav/logo-packer.svg" alt="Packer Logo" />
122 </div>
123 <b>Packer</b>
124 <ul>
125 <li><span class="mega-nav-tag">Package</span></li>
126 </ul>
127 </a>
128 </li>
129 <li>
130 <a href="https://www.terraform.io" class="mega-nav-grid-item mega-nav-grid-item-terraform">
131 <div class="mega-nav-grid-item-img">
132 <img src="../../../../assets/images/mega-nav/logo-terraform.svg" alt="Terraform Logo" />
133 </div>
134 <b>Terraform</b>
135 <ul>
136 <li><span class="mega-nav-tag">Provision</span></li>
137 </ul>
138 </a>
139 </li>
140 </ul>
141 </div>
142 <div class="mega-nav-body-grid-item">
143 <h3 class="mega-nav-h3">Secure</h3>
144 <ul class="mega-nav-grid">
145 <li>
146 <a href="https://www.vaultproject.io" class="mega-nav-grid-item mega-nav-grid-item-vault">
147 <div class="mega-nav-grid-item-img">
148 <img src="../../../../assets/images/mega-nav/logo-vault.svg" alt="Vault Logo" />
149 </div>
150 <b>Vault</b>
151 <ul>
152 <li><span class="mega-nav-tag">Secure</span></li>
153 </ul>
154 </a>
155 </li>
156 </ul>
157 </div>
158 <div class="mega-nav-body-grid-item">
159 <h3 class="mega-nav-h3">Connect</h3>
160 <ul class="mega-nav-grid">
161 <li>
162 <a href="https://www.consul.io" class="mega-nav-grid-item mega-nav-grid-item-consul">
163 <div class="mega-nav-grid-item-img">
164 <img src="../../../../assets/images/mega-nav/logo-consul.svg" alt="Consul Logo" />
165 </div>
166 <b>Consul</b>
167 <ul>
168 <li><span class="mega-nav-tag">Connect</span></li>
169 </ul>
170 </a>
171 </li>
172 </ul>
173 </div>
174 <div class="mega-nav-body-grid-item">
175 <h3 class="mega-nav-h3">Run</h3>
176 <ul class="mega-nav-grid">
177 <li>
178 <a href="https://www.nomadproject.io" class="mega-nav-grid-item mega-nav-grid-item-nomad">
179 <div class="mega-nav-grid-item-img">
180 <img src="../../../../assets/images/mega-nav/logo-nomad.svg" alt="Nomad Logo" />
181 </div>
182 <b>Nomad</b>
183 <ul>
184 <li><span class="mega-nav-tag">Run</span></li>
185 </ul>
186 </a>
187 </li>
188 </ul>
189 </div>
190 </div>
191 <div class="mega-nav-body-footer">
192 <p>Seven elements of the modern Application Lifecycle</p>
193 </div>
194 </div>
195 </div>
196 </div>
197 </div>
198 </div>
199 </div>
200</div>
201
202
203 <div id="header" class="navigation navbar-static-top hidden-print">
204 <div class="container">
205 <div class="row">
206 <div class="col-xs-12">
207 <div class="navbar-header">
208 <div class="navbar-brand">
209 <a href="http://localhost:4567/">
210 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 251 61" class="logo" height="50">
211 <path class="text" fill="#000" fill-rule="nonzero" d="M81.78 19.54h-8.89v-5.31H96.7v5.31h-8.9v26.53h-6"></path>
212 <path class="text" fill="#000" fill-rule="nonzero" d="M102.19 41.77c2.415-.012 4.814-.383 7.12-1.1l.91 4.4c-2.745.99-5.642 1.49-8.56 1.48-7.31 0-9.85-3.39-9.85-9V31.4c0-4.92 2.2-9.08 9.66-9.08s9.13 4.35 9.13 9.37v5h-13v1.2c.05 2.78 1.05 3.88 4.59 3.88zM97.65 32h7.41v-1.18c0-2.2-.67-3.73-3.54-3.73s-3.87 1.53-3.87 3.73V32zm28.54-4.33c-2.148.97-4.217 2.102-6.19 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.6 5.36zm14.24 0c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.58 5.36zm19.51 18.4h-4.78l-.43-1.58c-2.062 1.342-4.47 2.058-6.93 2.06-4.25 0-6.07-2.92-6.07-6.93 0-4.73 2.06-6.55 6.79-6.55h5.59v-2.44c0-2.58-.72-3.49-4.45-3.49-2.17.024-4.33.266-6.45.72l-.72-4.45c2.606-.72 5.296-1.09 8-1.1 7.31 0 9.47 2.58 9.47 8.41l-.02 15.35zm-5.83-8.8h-4.3c-1.91 0-2.44.53-2.44 2.29s.53 2.34 2.34 2.34c1.544-.024 3.058-.436 4.4-1.2v-3.43zm23.75-19.79c-1.1-.237-2.224-.364-3.35-.38-2.29 0-2.63 1-2.63 2.77v2.92h5.93l-.33 4.64h-5.59v18.64h-5.83V27.43h-3.73v-4.64h3.73v-3.25c0-4.83 2.25-7.22 7.41-7.22 1.69-.006 3.372.22 5 .67l-.61 4.49zm11.38 29.07c-8 0-10.13-4.4-10.13-9.18v-5.88c0-4.78 2.15-9.18 10.13-9.18s10.13 4.4 10.13 9.18v5.88c.01 4.78-2.15 9.18-10.13 9.18zm0-19.27c-3.11 0-4.3 1.39-4.3 4v6.26c0 2.63 1.2 4 4.3 4 3.1 0 4.3-1.39 4.3-4V31.3c0-2.63-1.19-4.02-4.3-4.02zm25.14.39c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.954-2.313 6.12-3.06l.58 5.36zm16.02 18.4V29.82c0-1.24-.53-1.86-1.86-1.86-2.137.254-4.2.934-6.07 2v16.11h-5.83V22.79h4.45l.57 2c2.906-1.47 6.088-2.315 9.34-2.48 1.843-.174 3.6.82 4.4 2.49 2.91-1.49 6.104-2.34 9.37-2.49 3.87 0 5.26 2.72 5.26 6.88v16.88h-5.83V29.82c0-1.24-.53-1.86-1.86-1.86-2.14.236-4.208.917-6.07 2v16.11h-5.87z"></path>
213 <path class="rect-dark" fill="#4040B2" d="M36.4 39.13l16.4-9.46V10.72L36.4 20.2"></path>
214 <path class="rect-light" fill="#5C4EE5" d="M18.2 10.72l16.4 9.48v18.93l-16.4-9.47"></path>
215 <path class="rect-light" fill="#5C4EE5" d="M0 19.09l16.4 9.47V9.62L0 .15m18.2 50.53l16.4 9.47V41.21l-16.4-9.47"></path>
216</svg>
217
218 </a>
219 </div>
220 <button class="navbar-toggle" type="button">
221 <span class="sr-only">Toggle navigation</span>
222 <span class="icon-bar"></span>
223 <span class="icon-bar"></span>
224 <span class="icon-bar"></span>
225 </button>
226 </div>
227
228
229 <div class="buttons hidden-xs">
230 <nav class="navigation-links" role="navigation">
231 <ul class="main-links nav navbar-nav navbar-right">
232 <li class="visible-sm"><span><a href="http://localhost:4567/index.html">Info</a><svg width="9" height="5" xmlns="http://www.w3.org/2000/svg"><path d="M8.811 1.067a.612.612 0 0 0 0-.884.655.655 0 0 0-.908 0L4.5 3.491 1.097.183a.655.655 0 0 0-.909 0 .615.615 0 0 0 0 .884l3.857 3.75a.655.655 0 0 0 .91 0l3.856-3.75z" fill-rule="evenodd"/></svg></span>
233 <ul class="dropdown">
234 <li><a href="http://localhost:4567/intro/index.html">Intro</a></li>
235 <li><a href="https://learn.hashicorp.com/terraform/">Learn</a></li>
236 <li><a href="http://localhost:4567/community.html">Community</a></li>
237 <li><a href="https://www.hashicorp.com/products/terraform/?utm_source=oss&utm_medium=header-nav&utm_campaign=terraform">Enterprise</a></li>
238 </ul>
239 </li>
240 <li class="hidden-sm"><a href="http://localhost:4567/intro/index.html">Intro</a></li>
241 <li class="hidden-sm"><a href="https://learn.hashicorp.com/terraform/">Learn</a></li>
242 <li><span><a href="http://localhost:4567/docs/index.html">Docs</a><svg width="9" height="5" xmlns="http://www.w3.org/2000/svg"><path d="M8.811 1.067a.612.612 0 0 0 0-.884.655.655 0 0 0-.908 0L4.5 3.491 1.097.183a.655.655 0 0 0-.909 0 .615.615 0 0 0 0 .884l3.857 3.75a.655.655 0 0 0 .91 0l3.856-3.75z" fill-rule="evenodd"/></svg></span>
243 <ul class="dropdown">
244 <li><a href="http://localhost:4567/docs/index.html">Docs Home</a></li>
245 <li><a href="http://localhost:4567/docs/cli-index.html">Terraform CLI</a></li>
246 <li><a href="http://localhost:4567/docs/enterprise/index.html">Terraform Enterprise</a></li>
247 <li><a href="http://localhost:4567/docs/providers/index.html">Providers</a></li>
248 <li><a href="http://localhost:4567/docs/glossary.html">Glossary</a></li>
249 <li><a href="http://localhost:4567/guides/index.html">Guides and Whitepapers</a></li>
250 <li><a href="http://localhost:4567/docs/registry/index.html">Registry</a></li>
251 <li><a href="http://localhost:4567/docs/github-actions/index.html">GitHub Actions</a></li>
252 <li><a href="http://localhost:4567/docs/extend/index.html">Extending Terraform</a></li>
253
254 </ul>
255 </li>
256 <li class="hidden-sm"><a href="http://localhost:4567/community.html">Community</a></li>
257 <li class="hidden-sm"><a href="https://www.hashicorp.com/products/terraform/?utm_source=oss&utm_medium=header-nav&utm_campaign=terraform">Enterprise</a></li>
258 <li>
259 <a href="http://localhost:4567/downloads.html">
260 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
261 <path d="M28 0H0v28h28V0zM13.8 22.9L7 17.3l2-2.4 3.2 2.6V7h3.2v10.5l3.2-2.6 2 2.4L13.8 22.9z"></path>
262</svg>
263 Download
264 </a>
265 </li>
266 <li>
267 <a href="https://github.com/hashicorp/terraform">
268 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
269 <path d="M28 0H0v28h11.4c0 0 0-1.3 0-2.4C7.7 26.4 7 23.9 7 23.9 6.4 22.4 5.5 22 5.5 22c-1.2-0.8 0.1-0.8 0.1-0.8 1.3 0.1 2 1.4 2 1.4 1.2 2 3 1.4 3.8 1.1 0.1-0.8 0.5-1.4 0.9-1.8 -2.9-0.3-6-1.5-6-6.5 0-1.4 0.5-2.6 1.3-3.5C7.5 11.5 7 10.2 7.8 8.4c0 0 1.1-0.4 3.6 1.3 1-0.3 2.2-0.4 3.3-0.4 1.1 0 2.2 0.2 3.3 0.4 2.5-1.7 3.6-1.3 3.6-1.3 0.7 1.8 0.3 3.1 0.1 3.5 0.8 0.9 1.3 2.1 1.3 3.5 0 5-3.1 6.1-6 6.5 0.5 0.4 0.9 1.2 0.9 2.4 0 1.8 0 3.7 0 3.7H28V0z"></path>
270</svg>
271 GitHub
272 </a>
273 </li>
274 </ul>
275 </nav>
276 </div>
277 </div>
278 </div>
279 </div>
280 </div>
281
282
283 <div class="sidebar-overlay"></div>
284
285<aside class="sidebar" role="navigation">
286 <div class="sidebar-header">
287 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 251 61" class="logo" height="42">
288 <path class="text" fill="#000" fill-rule="nonzero" d="M81.78 19.54h-8.89v-5.31H96.7v5.31h-8.9v26.53h-6"></path>
289 <path class="text" fill="#000" fill-rule="nonzero" d="M102.19 41.77c2.415-.012 4.814-.383 7.12-1.1l.91 4.4c-2.745.99-5.642 1.49-8.56 1.48-7.31 0-9.85-3.39-9.85-9V31.4c0-4.92 2.2-9.08 9.66-9.08s9.13 4.35 9.13 9.37v5h-13v1.2c.05 2.78 1.05 3.88 4.59 3.88zM97.65 32h7.41v-1.18c0-2.2-.67-3.73-3.54-3.73s-3.87 1.53-3.87 3.73V32zm28.54-4.33c-2.148.97-4.217 2.102-6.19 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.6 5.36zm14.24 0c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.58 5.36zm19.51 18.4h-4.78l-.43-1.58c-2.062 1.342-4.47 2.058-6.93 2.06-4.25 0-6.07-2.92-6.07-6.93 0-4.73 2.06-6.55 6.79-6.55h5.59v-2.44c0-2.58-.72-3.49-4.45-3.49-2.17.024-4.33.266-6.45.72l-.72-4.45c2.606-.72 5.296-1.09 8-1.1 7.31 0 9.47 2.58 9.47 8.41l-.02 15.35zm-5.83-8.8h-4.3c-1.91 0-2.44.53-2.44 2.29s.53 2.34 2.34 2.34c1.544-.024 3.058-.436 4.4-1.2v-3.43zm23.75-19.79c-1.1-.237-2.224-.364-3.35-.38-2.29 0-2.63 1-2.63 2.77v2.92h5.93l-.33 4.64h-5.59v18.64h-5.83V27.43h-3.73v-4.64h3.73v-3.25c0-4.83 2.25-7.22 7.41-7.22 1.69-.006 3.372.22 5 .67l-.61 4.49zm11.38 29.07c-8 0-10.13-4.4-10.13-9.18v-5.88c0-4.78 2.15-9.18 10.13-9.18s10.13 4.4 10.13 9.18v5.88c.01 4.78-2.15 9.18-10.13 9.18zm0-19.27c-3.11 0-4.3 1.39-4.3 4v6.26c0 2.63 1.2 4 4.3 4 3.1 0 4.3-1.39 4.3-4V31.3c0-2.63-1.19-4.02-4.3-4.02zm25.14.39c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.954-2.313 6.12-3.06l.58 5.36zm16.02 18.4V29.82c0-1.24-.53-1.86-1.86-1.86-2.137.254-4.2.934-6.07 2v16.11h-5.83V22.79h4.45l.57 2c2.906-1.47 6.088-2.315 9.34-2.48 1.843-.174 3.6.82 4.4 2.49 2.91-1.49 6.104-2.34 9.37-2.49 3.87 0 5.26 2.72 5.26 6.88v16.88h-5.83V29.82c0-1.24-.53-1.86-1.86-1.86-2.14.236-4.208.917-6.07 2v16.11h-5.87z"></path>
290 <path class="rect-dark" fill="#4040B2" d="M36.4 39.13l16.4-9.46V10.72L36.4 20.2"></path>
291 <path class="rect-light" fill="#5C4EE5" d="M18.2 10.72l16.4 9.48v18.93l-16.4-9.47"></path>
292 <path class="rect-light" fill="#5C4EE5" d="M0 19.09l16.4 9.47V9.62L0 .15m18.2 50.53l16.4 9.47V41.21l-16.4-9.47"></path>
293</svg>
294
295 </div>
296
297 <ul class="nav sidebar-nav">
298 <li><a href="http://localhost:4567/intro/index.html">Intro</a></li>
299 <li><a href="https://learn.hashicorp.com/terraform/">Learn</a></li>
300 <li><a href="http://localhost:4567/community.html">Community</a></li>
301 <li><a href="https://www.hashicorp.com/products/terraform/?utm_source=oss&utm_medium=header-nav&utm_campaign=terraform">Enterprise</a></li>
302 </ul>
303
304 <div class="divider"></div>
305
306 <ul class="external nav sidebar-nav">
307 <li>
308 <a href="http://localhost:4567/downloads.html">
309 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
310 <path d="M28 0H0v28h28V0zM13.8 22.9L7 17.3l2-2.4 3.2 2.6V7h3.2v10.5l3.2-2.6 2 2.4L13.8 22.9z"></path>
311</svg>
312 Download
313 </a>
314 </li>
315 <li>
316 <a href="https://github.com/hashicorp/terraform">
317 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
318 <path d="M28 0H0v28h11.4c0 0 0-1.3 0-2.4C7.7 26.4 7 23.9 7 23.9 6.4 22.4 5.5 22 5.5 22c-1.2-0.8 0.1-0.8 0.1-0.8 1.3 0.1 2 1.4 2 1.4 1.2 2 3 1.4 3.8 1.1 0.1-0.8 0.5-1.4 0.9-1.8 -2.9-0.3-6-1.5-6-6.5 0-1.4 0.5-2.6 1.3-3.5C7.5 11.5 7 10.2 7.8 8.4c0 0 1.1-0.4 3.6 1.3 1-0.3 2.2-0.4 3.3-0.4 1.1 0 2.2 0.2 3.3 0.4 2.5-1.7 3.6-1.3 3.6-1.3 0.7 1.8 0.3 3.1 0.1 3.5 0.8 0.9 1.3 2.1 1.3 3.5 0 5-3.1 6.1-6 6.5 0.5 0.4 0.9 1.2 0.9 2.4 0 1.8 0 3.7 0 3.7H28V0z"></path>
319</svg>
320 GitHub
321 </a>
322 </li>
323 </ul>
324
325 <div class="divider"></div>
326
327 <ul class="nav sidebar-nav">
328 <li><a href="http://localhost:4567/docs/index.html">Docs:</a></li>
329 <li><a href="http://localhost:4567/docs/index.html">Docs Home</a></li>
330 <li><a href="http://localhost:4567/docs/cli-index.html">Terraform CLI</a></li>
331 <li><a href="http://localhost:4567/docs/enterprise/index.html">Terraform Enterprise</a></li>
332 <li><a href="http://localhost:4567/docs/providers/index.html">Providers</a></li>
333 <li><a href="http://localhost:4567/docs/glossary.html">Glossary</a></li>
334 <li><a href="http://localhost:4567/guides/index.html">Guides and Whitepapers</a></li>
335 <li><a href="http://localhost:4567/docs/registry/index.html">Registry</a></li>
336 <li><a href="http://localhost:4567/docs/github-actions/index.html">GitHub Actions</a></li>
337 <li><a href="http://localhost:4567/docs/extend/index.html">Extending Terraform</a></li>
338
339 </ul>
340
341</aside>
342
343
344 <div class="container">
345 <div class="row">
346 <div id="docs-sidebar" class="col-sm-4 col-md-3 col-xs-12 hidden-print" role="complementary">
347 <a href="domain.html#inner" id="screenreader-skip" class="sr-only sr-only-focusable">Skip to content</a>
348 <a href="domain.html#inner" id="mobile-skip" class="visible-xs">(Skip to content ⤵︎)</a>
349 <div id="controls-placeholder" style="display: none;"></div>
350 <div class="docs-sidebar hidden-print affix-top" role="complementary">
351 <ul class="nav docs-sidenav">
352 <li>
353 <a href="http://localhost:4567/docs/providers/index.html">All Providers</a>
354 </li>
355
356 <li>
357 <a href="../index.html">Mailgun Provider</a>
358 </li>
359
360 <li>
361 <a href="domain.html#">Resources</a>
362 <ul class="nav nav-visible">
363 <li>
364 <a href="domain.html" class="current-page">mailgun_domain</a>
365 </li>
366 <li>
367 <a href="route.html">mailgun_route</a>
368 </li>
369 </ul>
370 </li>
371 </ul>
372 </div>
373
374 </div>
375
376 <div id="inner" class="col-sm-8 col-md-9 col-xs-12" role="main">
377
378 <h1 id="mailgun_domain">
379 <a name="mailgun_domain" class="anchor" href="domain.html#mailgun_domain">&raquo;</a>
380 mailgun_domain
381</h1>
382<p>The domain resource allows Mailgun domain to be managed by Terraform.</p>
383<h2 id="example-usage">
384 <a name="example-usage" class="anchor" href="domain.html#example-usage">&raquo;</a>
385 Example Usage
386</h2>
387<div class="highlight"><pre class="highlight hcl"><code><span class="n">resource</span> <span class="s2">"mailgun_domain"</span> <span class="s2">"example"</span> <span class="p">{</span>
388 <span class="nb">name</span><span class="o">=</span><span class="s2">"domain.com"</span>
389 <span class="n">spam_action</span><span class="o">=</span><span class="s2">"block"</span>
390 <span class="n">smtp_password</span><span class="o">=</span><span class="s2">"password"</span>
391 <span class="n">wildcard</span><span class="o">=</span><span class="kp">true</span>
392 <span class="n">force_dkim_authority</span><span class="o">=</span><span class="kp">true</span>
393 <span class="n">dkim_key_size</span><span class="o">=</span><span class="mi">1024</span>
394 <span class="n">ips</span><span class="o">=</span><span class="p">[</span><span class="s2">"192.161.0.1"</span><span class="p">,</span> <span class="s2">"192.168.0.2"</span><span class="p">]</span>
395 <span class="n">credentials</span><span class="p">{</span>
396 <span class="n">login</span><span class="o">=</span><span class="s2">"login"</span>
397 <span class="n">password</span><span class="o">=</span><span class="s2">"password"</span>
398 <span class="p">}</span>
399 <span class="n">open_tracking_settings_active</span><span class="o">=</span><span class="kp">true</span>
400 <span class="n">click_tracking_settings_active</span><span class="o">=</span><span class="kp">true</span>
401 <span class="n">unsubscribe_tracking_settings_active</span><span class="o">=</span><span class="kp">true</span>
402 <span class="n">unsubscribe_tracking_settings_html_footer</span><span class="o">=</span><span class="s2">"&lt;p&gt;footer&lt;/p&gt;"</span>
403 <span class="n">unsubscribe_tracking_settings_text_footer</span><span class="o">=</span><span class="s2">"footer"</span>
404 <span class="n">require_tls</span><span class="o">=</span><span class="kp">true</span>
405 <span class="n">skip_verification</span><span class="o">=</span><span class="kp">true</span>
406<span class="p">}</span>
407</code></pre></div><h2 id="argument-reference">
408 <a name="argument-reference" class="anchor" href="domain.html#argument-reference">&raquo;</a>
409 Argument Reference
410</h2>
411<p>The following arguments are supported:</p>
412
413<ul>
414<li><a name="name" /><a href="domain.html#name"><code>name</code></a> - (Required) Name of the domain
415</li>
416<li><a name="spam_action" /><a href="domain.html#spam_action"><code>spam_action</code></a> - (Optional) &quot;disabled&quot;, &quot;block&quot;, or &quot;tag&quot;.If &quot;disabled&quot;, no spam filtering will occur for inbound messages.If &quot;block&quot;, inbound spam messages will not be delivered.If &quot;tag&quot;, inbound messages will be tagged with a spam header. See Spam Filter.Defaults to disabled.
417</li>
418<li><a name="smtp_password" /><a href="domain.html#smtp_password"><code>smtp_password</code></a> - (Optional) Password for SMTP authentication
419</li>
420<li><a name="wildcard" /><a href="domain.html#wildcard"><code>wildcard</code></a> - (Optional) Determines whether the domain will accept email for sub-domains when sending messages.Defaults to false.
421</li>
422<li><a name="force_dkim_authority" /><a href="domain.html#force_dkim_authority"><code>force_dkim_authority</code></a> - (Optional) If set to true, the domain will be the DKIM authority for itself even if the root domain is registered on the same mailgun account.If set to false, the domain will have the same DKIM authority as the root domain registered on the same mailgun account. Defaults to false
423</li>
424<li><a name="dkim_key_size" /><a href="domain.html#dkim_key_size"><code>dkim_key_size</code></a> - (Optional) 1024 or 2048. Set the length of your domain’s generated DKIM key. Defaults to 1024.
425</li>
426<li><a name="ips" /><a href="domain.html#ips"><code>ips</code></a> - (Optional) An optional, comma-separated list of IP addresses to be assigned to this domain. If not specified, all dedicated IP addresses on the account will be assigned. If the request cannot be fulfilled (e.g. a requested IP is not assigned to the account, etc), a 400 will be returned.
427</li>
428<li><a name="credentials" /><a href="domain.html#credentials"><code>credentials</code></a> - (Optional) SMTP credentials for the domain
429</li>
430<li><a name="open_tracking_settings_active" /><a href="domain.html#open_tracking_settings_active"><code>open_tracking_settings_active</code></a> - (Optional) true to enable open tracking. Defauls to false
431</li>
432<li><a name="click_tracking_settings_active" /><a href="domain.html#click_tracking_settings_active"><code>click_tracking_settings_active</code></a> - (Optional) true to enable click tracking. Defauls to false
433</li>
434<li><a name="unsubscribe_tracking_settings_active" /><a href="domain.html#unsubscribe_tracking_settings_active"><code>unsubscribe_tracking_settings_active</code></a> - (Optional) true to enable unsubscribe tracking. Defauls to false
435</li>
436<li><a name="unsubscribe_tracking_settings_html_footer" /><a href="domain.html#unsubscribe_tracking_settings_html_footer"><code>unsubscribe_tracking_settings_html_footer</code></a> - (Optional)Custom HTML version of unsubscribe footer.Defaults to &quot;\n<br>\n<p><a hre=\"%unsubscribe_url%\">unsubscribe</a></p>\n&quot;
437</li>
438<li><a name="unsubscribe_tracking_settings_text_footer" /><a href="domain.html#unsubscribe_tracking_settings_text_footer"><code>unsubscribe_tracking_settings_text_footer</code></a> - (Optional) Custom text version of unsubscribe footer. Defaults to &quot;\n\nTo unsubscribe click: &lt;%unsubscribe_url%&gt;\n\n&quot;
439</li>
440<li><a name="require_tls" /><a href="domain.html#require_tls"><code>require_tls</code></a> - (Optional) If set to true, this requires the message only be sent over a TLS connection. If a TLS connection can not be established, Mailgun will not deliver the message.If set to false, Mailgun will still try and upgrade the connection, but if Mailgun cannot, the message will be delivered over a plaintext SMTP connection. Defaults to false.
441</li>
442<li><a name="skip_verification" /><a href="domain.html#skip_verification"><code>skip_verification</code></a> - (Optional)If set to true, the certificate and hostname will not be verified when trying to establish a TLS connection and Mailgun will accept any certificate during delivery. If set to false, Mailgun will verify the certificate and hostname. If either one can not be verified, a TLS connection will not be established. Defaults to false.
443The <code>credentials</code> object supports the following:
444</li>
445<li><a name="login" /><a href="domain.html#login"><code>login</code></a> - (Required) The user name
446</li>
447<li><a name="password" /><a href="domain.html#password"><code>password</code></a> - (Required) A password for the SMTP credentials. (Length Min 5, Max 32)
448</li>
449</ul>
450<h2 id="attributes-reference">
451 <a name="attributes-reference" class="anchor" href="domain.html#attributes-reference">&raquo;</a>
452 Attributes Reference
453</h2>
454<p>The following attribute is exported:</p>
455
456<ul>
457<li><a name="smtp_login" /><a href="domain.html#smtp_login"><code>smtp_login</code></a> - An username for the SMTP credentials.
458</li>
459<li><a name="created_at" /><a href="domain.html#created_at"><code>created_at</code></a> - The date of creation of the domain.
460</li>
461<li><a name="state" /><a href="domain.html#state"><code>state</code></a> - The state of the domain.
462</li>
463<li><a name="receiving_records" /><a href="domain.html#receiving_records"><code>receiving_records</code></a> - DNS records for receiving.
464</li>
465<li><a name="sending_records" /><a href="domain.html#sending_records"><code>sending_records</code></a> - DNS records for sending.
466The <code>receiving_records</code> <code>sending_records</code> and object exports the following:
467</li>
468<li><a name="name-1" /><a href="domain.html#name-1"><code>name</code></a> - The name of the record.
469</li>
470<li><a name="priority" /><a href="domain.html#priority"><code>priority</code></a> - The priority of the record lower value means a more important priority.
471</li>
472<li><a name="record_type" /><a href="domain.html#record_type"><code>record_type</code></a> - The type of record.
473</li>
474<li><a name="valid" /><a href="domain.html#valid"><code>valid</code></a> - Wether the record is valid or not.
475</li>
476<li><a name="value" /><a href="domain.html#value"><code>value</code></a> - The value of the record.
477</li>
478</ul>
479<h2 id="import">
480 <a name="import" class="anchor" href="domain.html#import">&raquo;</a>
481 Import
482</h2>
483<p>Mailgun domain can be imported using the domain name, e.g.</p>
484<div class="highlight"><pre class="highlight plaintext"><code>tf import mailgun_domain.example domain.com
485
486</code></pre></div>
487
488 </div>
489 </div>
490</div>
491
492
493 <div id="footer" class="navigation hidden-print">
494 <div class="container">
495 <div class="row">
496 <div class="col-xs-12">
497 <ul class="footer-links nav navbar-nav">
498 <li><a href="http://localhost:4567/intro/index.html">Intro</a></li>
499 <li><a href="http://localhost:4567/docs/index.html">Docs</a></li>
500 <li><a href="http://localhost:4567/docs/extend/index.html">Extend</a></li>
501 <li><a href="https://www.hashicorp.com/privacy">Privacy</a></li>
502 <li><a href="http://localhost:4567/security.html">Security</a></li>
503 <li><a href="http://localhost:4567/assets/files/press-kit.zip">Press Kit</a></li>
504 </ul>
505 <ul class="footer-links nav navbar-nav navbar-right">
506 <li><a href="https://github.com/terraform-providers/terraform-provider-mailgun/edit/master/website/docs/r/domain.html.markdown">Edit this page</a></li>
507 </ul>
508 </div>
509 </div>
510 </div>
511 </div>
512
513 <script type="application/ld+json">
514 {
515 "@context": "http://schema.org",
516 "@type": "Product",
517 "name": "Terraform",
518 "alternateName": "Terraform by HashiCorp",
519 "manufacturer": "HashiCorp",
520 "url": "https://www.terraform.io",
521 "logo": "https://www.terraform.io/assets/images/logo-hashicorp.svg",
522 "sameAs": [
523 "https://github.com/hashicorp/terraform"
524 ]
525 }
526 </script>
527 </body>
528</html>
diff --git a/docs/providers/mailgun/r/route.html b/docs/providers/mailgun/r/route.html
new file mode 100644
index 0000000..3c463e8
--- /dev/null
+++ b/docs/providers/mailgun/r/route.html
@@ -0,0 +1,473 @@
1<!DOCTYPE html>
2<html lang="en">
3 <head>
4 <script type="text/javascript">
5 WEB_SOCKET_SWF_LOCATION = "/__rack/WebSocketMain.swf";
6
7 </script>
8 <script type="text/javascript" src="../../../../__rack/swfobject.js"></script>
9 <script type="text/javascript" src="../../../../__rack/web_socket.js"></script>
10
11<script type="text/javascript">
12 RACK_LIVERELOAD_PORT = 35729;
13</script>
14<script type="text/javascript" src="../../../../__rack/livereload.js%3Fhost=0.0.0.0&amp;port=35729"></script>
15
16
17 <meta charset="utf-8">
18 <meta name="mobile-web-app-capable" content="yes">
19 <meta name="viewport" content="width=device-width, initial-scale=1.0">
20 <meta name="description" content="The route_resource allows mailgun route to be managed by Terraform.">
21
22 <link rel="apple-touch-icon" sizes="180x180" href="http://localhost:4567/assets/images/favicons/apple-touch-icon.png">
23 <link rel="icon" type="image/png" href="http://localhost:4567/assets/images/favicons/favicon-32x32.png" sizes="32x32">
24 <link rel="icon" type="image/png" href="http://localhost:4567/assets/images/favicons/favicon-16x16.png" sizes="16x16">
25 <link rel="manifest" href="http://localhost:4567/android-manifest.json">
26 <link rel="mask-icon" href="http://localhost:4567/assets/images/favicons/safari-pinned-tab.svg" color="#5C4EE5">
27 <meta name="msapplication-config" content="/microsoft-tile.xml" />
28 <meta name="theme-color" content="#ffffff">
29
30 <meta name="twitter:card" content="summary" />
31 <meta property="og:image" content="https://www.terraform.io/assets/images/og-image.png"/>
32 <meta property="og:image:width" content="100"/>
33 <meta property="og:image:height" content="100"/>
34 <meta name="twitter:site" content="@HashiCorp" />
35 <meta name="twitter:creator" content="@HashiCorp" />
36 <meta property="og:type" content="website" />
37 <meta property="og:url" content="https://www.terraform.io/docs/providers/mailgun/r/route.html" />
38 <meta property="og:title" content="Mailgun: mailgun_route - Terraform by HashiCorp" />
39 <meta property="og:site_name" content="Terraform by HashiCorp"/>
40 <meta property="og:description" content="The route_resource allows mailgun route to be managed by Terraform." />
41
42 <title>Mailgun: mailgun_route - Terraform by HashiCorp</title>
43
44 <!-- Stylesheets -->
45 <link rel="stylesheet" href="https://use.typekit.net/wxf7mfi.css">
46 <link href="../../../../assets/stylesheets/application.css" rel="stylesheet" />
47
48 <!-- Site scripts -->
49 <!--[if lt IE 9]><script src="/assets/javascripts/ie-compat.js" defer="defer"></script><![endif]-->
50 <script src="../../../../assets/javascripts/application.js" defer="defer"></script>
51
52 <!-- Analytics scrpts -->
53 <script defer>
54 !function(){var e=window.analytics=window.analytics||[];if(!e.initialize)if(e.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{e.invoked=!0,e.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on"],e.factory=function(t){return function(){var a=Array.prototype.slice.call(arguments);return a.unshift(t),e.push(a),e}};for(var t=0;t<e.methods.length;t++){var a=e.methods[t];e[a]=e.factory(a)}e.load=function(e){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+e+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(t,a)},e.SNIPPET_VERSION="4.0.0",e.load("0EXTgkNx0Ydje2PGXVbRhpKKoe5wtzcE")}}();var om597a24292a958,om597a24292a958_poll=function(){var e=0;return function(t,a){clearInterval(e),e=setInterval(t,a)}}();!function(e,t,a){if(e.getElementById(a))om597a24292a958_poll(function(){if(window.om_loaded&&!om597a24292a958)return(om597a24292a958=new OptinMonsterApp).init({s:"35109.597a24292a958",staging:0,dev:0,beta:0})},25);else{var n=!1,o=e.createElement("script");o.id=a,o.src="//a.optnmstr.com/app/js/api.min.js",o.async=!0,o.onload=o.onreadystatechange=function(){if(!(n||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState))try{n=om_loaded=!0,(om597a24292a958=new OptinMonsterApp).init({s:"35109.597a24292a958",staging:0,dev:0,beta:0}),o.onload=o.onreadystatechange=null}catch(e){}},(document.getElementsByTagName("head")[0]||document.documentElement).appendChild(o)}}(document,0,"omapi-script");
55 </script>
56
57
58 </head>
59
60 <body id="page-docs-mailgun-route" class="layout-mailgun page-mailgun-mailgun-route">
61
62 <svg class="hidden-print" aria-hidden="true" style="position: absolute; width: 0; height: 0;" width="0" height="0" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
63 <defs>
64 <symbol id="mega-nav-icon-angle" viewBox="0 0 13 7">
65 <polygon points="6.5,6.5 0.7,1.6 1.3,0.8 6.5,5.2 11.7,0.8 12.3,1.6 "/>
66 </symbol>
67 <symbol id="mega-nav-icon-close" viewBox="0 0 13 15">
68 <path vector-effect="non-scaling-stroke" d="M1.1 14L11.9 1M11.9 14L1.1 1"/>
69 </symbol>
70 </defs>
71</svg>
72<div class="hidden-print mega-nav-sandbox">
73 <div class="mega-nav-banner">
74 <div class="container">
75 <div class="mega-nav-banner-item">
76 <a class="mega-nav-banner-logo" href="https://www.hashicorp.com"><img src="../../../../assets/images/mega-nav/logo-hashicorp-wordmark.svg" alt="HashiCorp Logo" /></a>
77 </div>
78 <div class="mega-nav-banner-item">
79 <p class="mega-nav-tagline"><span class="visible-xs text-muted">Learn the</span><span class="hidden-xs text-muted">Learn how Terraform fits into the</span></p>
80 <div id="#mega-nav" class="mega-nav">
81 <button type="button" id="mega-nav-ctrl" class="mega-nav-ctrl">
82 <div class="mega-nav-ctrl-items">
83 <img src="../../../../assets/images/mega-nav/logo-hashicorp.svg" alt="HashiCorp Logo" />
84 <strong>HashiCorp Suite</strong>
85 <span class="mega-nav-icon-outline">
86 <svg class="mega-nav-icon mega-nav-icon-angle-right" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mega-nav-icon-angle"></use></svg><span class="visuallyhidden">Open</span>
87 </span>
88 </div>
89 </button>
90 <div id="mega-nav-body-ct" class="mega-nav-body-ct" aria-labelledby="mega-nav-ctrl">
91 <div class="mega-nav-body">
92 <button type="button" id="mega-nav-close" class="mega-nav-close"><svg class="mega-nav-icon mega-nav-icon-close" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mega-nav-icon-close"></use></svg><span class="visuallyhidden">Close</span></button>
93 <div class="mega-nav-body-header">
94 <div class="mega-nav-body-header-item">
95 <h2 class="mega-nav-h1">Provision, Secure, Connect, and&nbsp;Run</h2>
96 <p class="mega-nav-h2">Any infrastructure for any&nbsp;application</p>
97 </div>
98 <div class="mega-nav-body-header-item">
99 <a href="https://www.hashicorp.com/" class="mega-nav-btn"><img src="../../../../assets/images/mega-nav/logo-hashicorp.svg" alt="HashiCorp Logo" /> Learn the HashiCorp Enterprise&nbsp;Suite <svg class="mega-nav-icon mega-nav-icon-angle-right" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mega-nav-icon-angle"></use></svg></a>
100 </div>
101 </div>
102 <div class="mega-nav-body-grid">
103 <div class="mega-nav-body-grid-item">
104 <h3 class="mega-nav-h3">Provision</h3>
105 <ul class="mega-nav-grid">
106 <li>
107 <a href="https://www.vagrantup.com" class="mega-nav-grid-item mega-nav-grid-item-vagrant">
108 <div class="mega-nav-grid-item-img">
109 <img src="../../../../assets/images/mega-nav/logo-vagrant.svg" alt="Vagrant Logo" />
110 </div>
111 <b>Vagrant</b>
112 <ul>
113 <li><span class="mega-nav-tag">Build</span></li>
114 <li><span class="mega-nav-tag">Test</span></li>
115 </ul>
116 </a>
117 </li>
118 <li>
119 <a href="https://www.packer.io" class="mega-nav-grid-item mega-nav-grid-item-packer">
120 <div class="mega-nav-grid-item-img">
121 <img src="../../../../assets/images/mega-nav/logo-packer.svg" alt="Packer Logo" />
122 </div>
123 <b>Packer</b>
124 <ul>
125 <li><span class="mega-nav-tag">Package</span></li>
126 </ul>
127 </a>
128 </li>
129 <li>
130 <a href="https://www.terraform.io" class="mega-nav-grid-item mega-nav-grid-item-terraform">
131 <div class="mega-nav-grid-item-img">
132 <img src="../../../../assets/images/mega-nav/logo-terraform.svg" alt="Terraform Logo" />
133 </div>
134 <b>Terraform</b>
135 <ul>
136 <li><span class="mega-nav-tag">Provision</span></li>
137 </ul>
138 </a>
139 </li>
140 </ul>
141 </div>
142 <div class="mega-nav-body-grid-item">
143 <h3 class="mega-nav-h3">Secure</h3>
144 <ul class="mega-nav-grid">
145 <li>
146 <a href="https://www.vaultproject.io" class="mega-nav-grid-item mega-nav-grid-item-vault">
147 <div class="mega-nav-grid-item-img">
148 <img src="../../../../assets/images/mega-nav/logo-vault.svg" alt="Vault Logo" />
149 </div>
150 <b>Vault</b>
151 <ul>
152 <li><span class="mega-nav-tag">Secure</span></li>
153 </ul>
154 </a>
155 </li>
156 </ul>
157 </div>
158 <div class="mega-nav-body-grid-item">
159 <h3 class="mega-nav-h3">Connect</h3>
160 <ul class="mega-nav-grid">
161 <li>
162 <a href="https://www.consul.io" class="mega-nav-grid-item mega-nav-grid-item-consul">
163 <div class="mega-nav-grid-item-img">
164 <img src="../../../../assets/images/mega-nav/logo-consul.svg" alt="Consul Logo" />
165 </div>
166 <b>Consul</b>
167 <ul>
168 <li><span class="mega-nav-tag">Connect</span></li>
169 </ul>
170 </a>
171 </li>
172 </ul>
173 </div>
174 <div class="mega-nav-body-grid-item">
175 <h3 class="mega-nav-h3">Run</h3>
176 <ul class="mega-nav-grid">
177 <li>
178 <a href="https://www.nomadproject.io" class="mega-nav-grid-item mega-nav-grid-item-nomad">
179 <div class="mega-nav-grid-item-img">
180 <img src="../../../../assets/images/mega-nav/logo-nomad.svg" alt="Nomad Logo" />
181 </div>
182 <b>Nomad</b>
183 <ul>
184 <li><span class="mega-nav-tag">Run</span></li>
185 </ul>
186 </a>
187 </li>
188 </ul>
189 </div>
190 </div>
191 <div class="mega-nav-body-footer">
192 <p>Seven elements of the modern Application Lifecycle</p>
193 </div>
194 </div>
195 </div>
196 </div>
197 </div>
198 </div>
199 </div>
200</div>
201
202
203 <div id="header" class="navigation navbar-static-top hidden-print">
204 <div class="container">
205 <div class="row">
206 <div class="col-xs-12">
207 <div class="navbar-header">
208 <div class="navbar-brand">
209 <a href="http://localhost:4567/">
210 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 251 61" class="logo" height="50">
211 <path class="text" fill="#000" fill-rule="nonzero" d="M81.78 19.54h-8.89v-5.31H96.7v5.31h-8.9v26.53h-6"></path>
212 <path class="text" fill="#000" fill-rule="nonzero" d="M102.19 41.77c2.415-.012 4.814-.383 7.12-1.1l.91 4.4c-2.745.99-5.642 1.49-8.56 1.48-7.31 0-9.85-3.39-9.85-9V31.4c0-4.92 2.2-9.08 9.66-9.08s9.13 4.35 9.13 9.37v5h-13v1.2c.05 2.78 1.05 3.88 4.59 3.88zM97.65 32h7.41v-1.18c0-2.2-.67-3.73-3.54-3.73s-3.87 1.53-3.87 3.73V32zm28.54-4.33c-2.148.97-4.217 2.102-6.19 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.6 5.36zm14.24 0c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.58 5.36zm19.51 18.4h-4.78l-.43-1.58c-2.062 1.342-4.47 2.058-6.93 2.06-4.25 0-6.07-2.92-6.07-6.93 0-4.73 2.06-6.55 6.79-6.55h5.59v-2.44c0-2.58-.72-3.49-4.45-3.49-2.17.024-4.33.266-6.45.72l-.72-4.45c2.606-.72 5.296-1.09 8-1.1 7.31 0 9.47 2.58 9.47 8.41l-.02 15.35zm-5.83-8.8h-4.3c-1.91 0-2.44.53-2.44 2.29s.53 2.34 2.34 2.34c1.544-.024 3.058-.436 4.4-1.2v-3.43zm23.75-19.79c-1.1-.237-2.224-.364-3.35-.38-2.29 0-2.63 1-2.63 2.77v2.92h5.93l-.33 4.64h-5.59v18.64h-5.83V27.43h-3.73v-4.64h3.73v-3.25c0-4.83 2.25-7.22 7.41-7.22 1.69-.006 3.372.22 5 .67l-.61 4.49zm11.38 29.07c-8 0-10.13-4.4-10.13-9.18v-5.88c0-4.78 2.15-9.18 10.13-9.18s10.13 4.4 10.13 9.18v5.88c.01 4.78-2.15 9.18-10.13 9.18zm0-19.27c-3.11 0-4.3 1.39-4.3 4v6.26c0 2.63 1.2 4 4.3 4 3.1 0 4.3-1.39 4.3-4V31.3c0-2.63-1.19-4.02-4.3-4.02zm25.14.39c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.954-2.313 6.12-3.06l.58 5.36zm16.02 18.4V29.82c0-1.24-.53-1.86-1.86-1.86-2.137.254-4.2.934-6.07 2v16.11h-5.83V22.79h4.45l.57 2c2.906-1.47 6.088-2.315 9.34-2.48 1.843-.174 3.6.82 4.4 2.49 2.91-1.49 6.104-2.34 9.37-2.49 3.87 0 5.26 2.72 5.26 6.88v16.88h-5.83V29.82c0-1.24-.53-1.86-1.86-1.86-2.14.236-4.208.917-6.07 2v16.11h-5.87z"></path>
213 <path class="rect-dark" fill="#4040B2" d="M36.4 39.13l16.4-9.46V10.72L36.4 20.2"></path>
214 <path class="rect-light" fill="#5C4EE5" d="M18.2 10.72l16.4 9.48v18.93l-16.4-9.47"></path>
215 <path class="rect-light" fill="#5C4EE5" d="M0 19.09l16.4 9.47V9.62L0 .15m18.2 50.53l16.4 9.47V41.21l-16.4-9.47"></path>
216</svg>
217
218 </a>
219 </div>
220 <button class="navbar-toggle" type="button">
221 <span class="sr-only">Toggle navigation</span>
222 <span class="icon-bar"></span>
223 <span class="icon-bar"></span>
224 <span class="icon-bar"></span>
225 </button>
226 </div>
227
228
229 <div class="buttons hidden-xs">
230 <nav class="navigation-links" role="navigation">
231 <ul class="main-links nav navbar-nav navbar-right">
232 <li class="visible-sm"><span><a href="http://localhost:4567/index.html">Info</a><svg width="9" height="5" xmlns="http://www.w3.org/2000/svg"><path d="M8.811 1.067a.612.612 0 0 0 0-.884.655.655 0 0 0-.908 0L4.5 3.491 1.097.183a.655.655 0 0 0-.909 0 .615.615 0 0 0 0 .884l3.857 3.75a.655.655 0 0 0 .91 0l3.856-3.75z" fill-rule="evenodd"/></svg></span>
233 <ul class="dropdown">
234 <li><a href="http://localhost:4567/intro/index.html">Intro</a></li>
235 <li><a href="https://learn.hashicorp.com/terraform/">Learn</a></li>
236 <li><a href="http://localhost:4567/community.html">Community</a></li>
237 <li><a href="https://www.hashicorp.com/products/terraform/?utm_source=oss&utm_medium=header-nav&utm_campaign=terraform">Enterprise</a></li>
238 </ul>
239 </li>
240 <li class="hidden-sm"><a href="http://localhost:4567/intro/index.html">Intro</a></li>
241 <li class="hidden-sm"><a href="https://learn.hashicorp.com/terraform/">Learn</a></li>
242 <li><span><a href="http://localhost:4567/docs/index.html">Docs</a><svg width="9" height="5" xmlns="http://www.w3.org/2000/svg"><path d="M8.811 1.067a.612.612 0 0 0 0-.884.655.655 0 0 0-.908 0L4.5 3.491 1.097.183a.655.655 0 0 0-.909 0 .615.615 0 0 0 0 .884l3.857 3.75a.655.655 0 0 0 .91 0l3.856-3.75z" fill-rule="evenodd"/></svg></span>
243 <ul class="dropdown">
244 <li><a href="http://localhost:4567/docs/index.html">Docs Home</a></li>
245 <li><a href="http://localhost:4567/docs/cli-index.html">Terraform CLI</a></li>
246 <li><a href="http://localhost:4567/docs/enterprise/index.html">Terraform Enterprise</a></li>
247 <li><a href="http://localhost:4567/docs/providers/index.html">Providers</a></li>
248 <li><a href="http://localhost:4567/docs/glossary.html">Glossary</a></li>
249 <li><a href="http://localhost:4567/guides/index.html">Guides and Whitepapers</a></li>
250 <li><a href="http://localhost:4567/docs/registry/index.html">Registry</a></li>
251 <li><a href="http://localhost:4567/docs/github-actions/index.html">GitHub Actions</a></li>
252 <li><a href="http://localhost:4567/docs/extend/index.html">Extending Terraform</a></li>
253
254 </ul>
255 </li>
256 <li class="hidden-sm"><a href="http://localhost:4567/community.html">Community</a></li>
257 <li class="hidden-sm"><a href="https://www.hashicorp.com/products/terraform/?utm_source=oss&utm_medium=header-nav&utm_campaign=terraform">Enterprise</a></li>
258 <li>
259 <a href="http://localhost:4567/downloads.html">
260 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
261 <path d="M28 0H0v28h28V0zM13.8 22.9L7 17.3l2-2.4 3.2 2.6V7h3.2v10.5l3.2-2.6 2 2.4L13.8 22.9z"></path>
262</svg>
263 Download
264 </a>
265 </li>
266 <li>
267 <a href="https://github.com/hashicorp/terraform">
268 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
269 <path d="M28 0H0v28h11.4c0 0 0-1.3 0-2.4C7.7 26.4 7 23.9 7 23.9 6.4 22.4 5.5 22 5.5 22c-1.2-0.8 0.1-0.8 0.1-0.8 1.3 0.1 2 1.4 2 1.4 1.2 2 3 1.4 3.8 1.1 0.1-0.8 0.5-1.4 0.9-1.8 -2.9-0.3-6-1.5-6-6.5 0-1.4 0.5-2.6 1.3-3.5C7.5 11.5 7 10.2 7.8 8.4c0 0 1.1-0.4 3.6 1.3 1-0.3 2.2-0.4 3.3-0.4 1.1 0 2.2 0.2 3.3 0.4 2.5-1.7 3.6-1.3 3.6-1.3 0.7 1.8 0.3 3.1 0.1 3.5 0.8 0.9 1.3 2.1 1.3 3.5 0 5-3.1 6.1-6 6.5 0.5 0.4 0.9 1.2 0.9 2.4 0 1.8 0 3.7 0 3.7H28V0z"></path>
270</svg>
271 GitHub
272 </a>
273 </li>
274 </ul>
275 </nav>
276 </div>
277 </div>
278 </div>
279 </div>
280 </div>
281
282
283 <div class="sidebar-overlay"></div>
284
285<aside class="sidebar" role="navigation">
286 <div class="sidebar-header">
287 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 251 61" class="logo" height="42">
288 <path class="text" fill="#000" fill-rule="nonzero" d="M81.78 19.54h-8.89v-5.31H96.7v5.31h-8.9v26.53h-6"></path>
289 <path class="text" fill="#000" fill-rule="nonzero" d="M102.19 41.77c2.415-.012 4.814-.383 7.12-1.1l.91 4.4c-2.745.99-5.642 1.49-8.56 1.48-7.31 0-9.85-3.39-9.85-9V31.4c0-4.92 2.2-9.08 9.66-9.08s9.13 4.35 9.13 9.37v5h-13v1.2c.05 2.78 1.05 3.88 4.59 3.88zM97.65 32h7.41v-1.18c0-2.2-.67-3.73-3.54-3.73s-3.87 1.53-3.87 3.73V32zm28.54-4.33c-2.148.97-4.217 2.102-6.19 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.6 5.36zm14.24 0c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.58 5.36zm19.51 18.4h-4.78l-.43-1.58c-2.062 1.342-4.47 2.058-6.93 2.06-4.25 0-6.07-2.92-6.07-6.93 0-4.73 2.06-6.55 6.79-6.55h5.59v-2.44c0-2.58-.72-3.49-4.45-3.49-2.17.024-4.33.266-6.45.72l-.72-4.45c2.606-.72 5.296-1.09 8-1.1 7.31 0 9.47 2.58 9.47 8.41l-.02 15.35zm-5.83-8.8h-4.3c-1.91 0-2.44.53-2.44 2.29s.53 2.34 2.34 2.34c1.544-.024 3.058-.436 4.4-1.2v-3.43zm23.75-19.79c-1.1-.237-2.224-.364-3.35-.38-2.29 0-2.63 1-2.63 2.77v2.92h5.93l-.33 4.64h-5.59v18.64h-5.83V27.43h-3.73v-4.64h3.73v-3.25c0-4.83 2.25-7.22 7.41-7.22 1.69-.006 3.372.22 5 .67l-.61 4.49zm11.38 29.07c-8 0-10.13-4.4-10.13-9.18v-5.88c0-4.78 2.15-9.18 10.13-9.18s10.13 4.4 10.13 9.18v5.88c.01 4.78-2.15 9.18-10.13 9.18zm0-19.27c-3.11 0-4.3 1.39-4.3 4v6.26c0 2.63 1.2 4 4.3 4 3.1 0 4.3-1.39 4.3-4V31.3c0-2.63-1.19-4.02-4.3-4.02zm25.14.39c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.954-2.313 6.12-3.06l.58 5.36zm16.02 18.4V29.82c0-1.24-.53-1.86-1.86-1.86-2.137.254-4.2.934-6.07 2v16.11h-5.83V22.79h4.45l.57 2c2.906-1.47 6.088-2.315 9.34-2.48 1.843-.174 3.6.82 4.4 2.49 2.91-1.49 6.104-2.34 9.37-2.49 3.87 0 5.26 2.72 5.26 6.88v16.88h-5.83V29.82c0-1.24-.53-1.86-1.86-1.86-2.14.236-4.208.917-6.07 2v16.11h-5.87z"></path>
290 <path class="rect-dark" fill="#4040B2" d="M36.4 39.13l16.4-9.46V10.72L36.4 20.2"></path>
291 <path class="rect-light" fill="#5C4EE5" d="M18.2 10.72l16.4 9.48v18.93l-16.4-9.47"></path>
292 <path class="rect-light" fill="#5C4EE5" d="M0 19.09l16.4 9.47V9.62L0 .15m18.2 50.53l16.4 9.47V41.21l-16.4-9.47"></path>
293</svg>
294
295 </div>
296
297 <ul class="nav sidebar-nav">
298 <li><a href="http://localhost:4567/intro/index.html">Intro</a></li>
299 <li><a href="https://learn.hashicorp.com/terraform/">Learn</a></li>
300 <li><a href="http://localhost:4567/community.html">Community</a></li>
301 <li><a href="https://www.hashicorp.com/products/terraform/?utm_source=oss&utm_medium=header-nav&utm_campaign=terraform">Enterprise</a></li>
302 </ul>
303
304 <div class="divider"></div>
305
306 <ul class="external nav sidebar-nav">
307 <li>
308 <a href="http://localhost:4567/downloads.html">
309 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
310 <path d="M28 0H0v28h28V0zM13.8 22.9L7 17.3l2-2.4 3.2 2.6V7h3.2v10.5l3.2-2.6 2 2.4L13.8 22.9z"></path>
311</svg>
312 Download
313 </a>
314 </li>
315 <li>
316 <a href="https://github.com/hashicorp/terraform">
317 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
318 <path d="M28 0H0v28h11.4c0 0 0-1.3 0-2.4C7.7 26.4 7 23.9 7 23.9 6.4 22.4 5.5 22 5.5 22c-1.2-0.8 0.1-0.8 0.1-0.8 1.3 0.1 2 1.4 2 1.4 1.2 2 3 1.4 3.8 1.1 0.1-0.8 0.5-1.4 0.9-1.8 -2.9-0.3-6-1.5-6-6.5 0-1.4 0.5-2.6 1.3-3.5C7.5 11.5 7 10.2 7.8 8.4c0 0 1.1-0.4 3.6 1.3 1-0.3 2.2-0.4 3.3-0.4 1.1 0 2.2 0.2 3.3 0.4 2.5-1.7 3.6-1.3 3.6-1.3 0.7 1.8 0.3 3.1 0.1 3.5 0.8 0.9 1.3 2.1 1.3 3.5 0 5-3.1 6.1-6 6.5 0.5 0.4 0.9 1.2 0.9 2.4 0 1.8 0 3.7 0 3.7H28V0z"></path>
319</svg>
320 GitHub
321 </a>
322 </li>
323 </ul>
324
325 <div class="divider"></div>
326
327 <ul class="nav sidebar-nav">
328 <li><a href="http://localhost:4567/docs/index.html">Docs:</a></li>
329 <li><a href="http://localhost:4567/docs/index.html">Docs Home</a></li>
330 <li><a href="http://localhost:4567/docs/cli-index.html">Terraform CLI</a></li>
331 <li><a href="http://localhost:4567/docs/enterprise/index.html">Terraform Enterprise</a></li>
332 <li><a href="http://localhost:4567/docs/providers/index.html">Providers</a></li>
333 <li><a href="http://localhost:4567/docs/glossary.html">Glossary</a></li>
334 <li><a href="http://localhost:4567/guides/index.html">Guides and Whitepapers</a></li>
335 <li><a href="http://localhost:4567/docs/registry/index.html">Registry</a></li>
336 <li><a href="http://localhost:4567/docs/github-actions/index.html">GitHub Actions</a></li>
337 <li><a href="http://localhost:4567/docs/extend/index.html">Extending Terraform</a></li>
338
339 </ul>
340
341</aside>
342
343
344 <div class="container">
345 <div class="row">
346 <div id="docs-sidebar" class="col-sm-4 col-md-3 col-xs-12 hidden-print" role="complementary">
347 <a href="route.html#inner" id="screenreader-skip" class="sr-only sr-only-focusable">Skip to content</a>
348 <a href="route.html#inner" id="mobile-skip" class="visible-xs">(Skip to content ⤵︎)</a>
349 <div id="controls-placeholder" style="display: none;"></div>
350 <div class="docs-sidebar hidden-print affix-top" role="complementary">
351 <ul class="nav docs-sidenav">
352 <li>
353 <a href="http://localhost:4567/docs/providers/index.html">All Providers</a>
354 </li>
355
356 <li>
357 <a href="../index.html">Mailgun Provider</a>
358 </li>
359
360 <li>
361 <a href="route.html#">Resources</a>
362 <ul class="nav nav-visible">
363 <li>
364 <a href="domain.html">mailgun_domain</a>
365 </li>
366 <li>
367 <a href="route.html" class="current-page">mailgun_route</a>
368 </li>
369 </ul>
370 </li>
371 </ul>
372 </div>
373
374 </div>
375
376 <div id="inner" class="col-sm-8 col-md-9 col-xs-12" role="main">
377
378 <h1 id="mailgun_route">
379 <a name="mailgun_route" class="anchor" href="route.html#mailgun_route">&raquo;</a>
380 mailgun_route
381</h1>
382<p>The route resource allows Mailgun route to be managed by Terraform.</p>
383<h2 id="example-usage">
384 <a name="example-usage" class="anchor" href="route.html#example-usage">&raquo;</a>
385 Example Usage
386</h2>
387<div class="highlight"><pre class="highlight hcl"><code><span class="n">resource</span> <span class="s2">"mailgun_route"</span> <span class="s2">"example"</span> <span class="p">{</span>
388 <span class="n">priority</span><span class="o">=</span><span class="mi">5</span>
389 <span class="n">description</span><span class="o">=</span><span class="s2">"description"</span>
390 <span class="n">expression</span><span class="o">=</span><span class="s2">"match_recipient(</span><span class="se">\"</span><span class="s2">.*@samples.mailgun.org</span><span class="se">\"</span><span class="s2">)"</span>
391 <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
392 <span class="s2">"forward(</span><span class="se">\"</span><span class="s2">http://myhost.com/messages/</span><span class="se">\"</span><span class="s2">)"</span><span class="p">,</span>
393 <span class="s2">"stop()"</span>
394 <span class="p">]</span>
395<span class="p">}</span>
396</code></pre></div><h2 id="argument-reference">
397 <a name="argument-reference" class="anchor" href="route.html#argument-reference">&raquo;</a>
398 Argument Reference
399</h2>
400<p>The following arguments are supported:</p>
401
402<ul>
403<li><a name="priority" /><a href="route.html#priority"><code>priority</code></a> - (Required)Integer: smaller number indicates higher priority. Higher priority routes are handled first.
404</li>
405<li><a name="expression" /><a href="route.html#expression"><code>expression</code></a> - (Required) An arbitrary string.
406</li>
407<li><a name="description" /><a href="route.html#description"><code>description</code></a> - (Required) A filter expression like match_recipient(&#39;.*@gmail.com&#39;)
408</li>
409<li><a name="actions" /><a href="route.html#actions"><code>actions</code></a> - (Required) Route action. This action is executed when the expression evaluates to True. Example: forward(&quot;<a href="mailto:alice@example.com">alice@example.com</a>&quot;) You can pass multiple action parameters.
410</li>
411</ul>
412<h2 id="attributes-reference">
413 <a name="attributes-reference" class="anchor" href="route.html#attributes-reference">&raquo;</a>
414 Attributes Reference
415</h2>
416<p>The following attribute is exported:</p>
417
418<ul>
419<li><a name="route_id" /><a href="route.html#route_id"><code>route_id</code></a> - ID of the route.
420</li>
421<li><a name="created_at" /><a href="route.html#created_at"><code>created_at</code></a> - The date of creation of the route.
422</li>
423</ul>
424<h2 id="import">
425 <a name="import" class="anchor" href="route.html#import">&raquo;</a>
426 Import
427</h2>
428<p>Mailgun can be imported using the route ID, e.g.</p>
429<div class="highlight"><pre class="highlight plaintext"><code>tf import mailgun_route.example 4f3bad2335335426750048c6
430
431</code></pre></div>
432
433 </div>
434 </div>
435</div>
436
437
438 <div id="footer" class="navigation hidden-print">
439 <div class="container">
440 <div class="row">
441 <div class="col-xs-12">
442 <ul class="footer-links nav navbar-nav">
443 <li><a href="http://localhost:4567/intro/index.html">Intro</a></li>
444 <li><a href="http://localhost:4567/docs/index.html">Docs</a></li>
445 <li><a href="http://localhost:4567/docs/extend/index.html">Extend</a></li>
446 <li><a href="https://www.hashicorp.com/privacy">Privacy</a></li>
447 <li><a href="http://localhost:4567/security.html">Security</a></li>
448 <li><a href="http://localhost:4567/assets/files/press-kit.zip">Press Kit</a></li>
449 </ul>
450 <ul class="footer-links nav navbar-nav navbar-right">
451 <li><a href="https://github.com/terraform-providers/terraform-provider-mailgun/edit/master/website/docs/r/route.html.markdown">Edit this page</a></li>
452 </ul>
453 </div>
454 </div>
455 </div>
456 </div>
457
458 <script type="application/ld+json">
459 {
460 "@context": "http://schema.org",
461 "@type": "Product",
462 "name": "Terraform",
463 "alternateName": "Terraform by HashiCorp",
464 "manufacturer": "HashiCorp",
465 "url": "https://www.terraform.io",
466 "logo": "https://www.terraform.io/assets/images/logo-hashicorp.svg",
467 "sameAs": [
468 "https://github.com/hashicorp/terraform"
469 ]
470 }
471 </script>
472 </body>
473</html>
diff --git a/go.mod b/go.mod
deleted file mode 100644
index 7ef2364..0000000
--- a/go.mod
+++ /dev/null
@@ -1,6 +0,0 @@
1module github.com/fretlink/terraform-provider-mailgun
2
3require (
4 github.com/hashicorp/terraform v0.12.3
5 github.com/mailgun/mailgun-go/v3 v3.6.0
6)
diff --git a/index.html b/index.html
deleted file mode 100644
index e475091..0000000
--- a/index.html
+++ /dev/null
@@ -1,6 +0,0 @@
1<html>
2<head><title>Hello github pages</title></head>
3<body>
4👋 Hello github pages 🦄
5</body>
6</html>
diff --git a/mailgun/provider.go b/mailgun/provider.go
deleted file mode 100644
index 90ea5e5..0000000
--- a/mailgun/provider.go
+++ /dev/null
@@ -1,37 +0,0 @@
1package mailgun
2
3import (
4 "github.com/hashicorp/terraform/helper/schema"
5 "github.com/hashicorp/terraform/terraform"
6 "github.com/mailgun/mailgun-go/v3"
7)
8
9func Provider() terraform.ResourceProvider {
10 return &schema.Provider{
11 Schema: map[string]*schema.Schema{
12 "domain": {
13 Type: schema.TypeString,
14 Required: true,
15 DefaultFunc: schema.EnvDefaultFunc("MAILGUN_DOMAIN", nil),
16 Description: "domain for mailgun.",
17 },
18 "apikey": {
19 Type: schema.TypeString,
20 Required: true,
21 DefaultFunc: schema.EnvDefaultFunc("MAILGUN_APIKEY", nil),
22 Description: "API Key for mailgun",
23 },
24 },
25
26 ResourcesMap: map[string]*schema.Resource{
27 "mailgun_domain": resourceMailgunDomain(),
28 "mailgun_route": resourceMailgunRoute(),
29 },
30
31 ConfigureFunc: providerConfigure,
32 }
33}
34
35func providerConfigure(d *schema.ResourceData) (interface{}, error) {
36 return mailgun.NewMailgun(d.Get("domain").(string), d.Get("apikey").(string)), nil
37}
diff --git a/mailgun/provider_test.go b/mailgun/provider_test.go
deleted file mode 100644
index 37c1c7e..0000000
--- a/mailgun/provider_test.go
+++ /dev/null
@@ -1,38 +0,0 @@
1package mailgun
2
3import (
4 "os"
5 "testing"
6
7 "github.com/hashicorp/terraform/helper/schema"
8 "github.com/hashicorp/terraform/terraform"
9)
10
11var testAccProviders map[string]terraform.ResourceProvider
12var testAccProvider *schema.Provider
13
14func init() {
15 testAccProvider = Provider().(*schema.Provider)
16 testAccProviders = map[string]terraform.ResourceProvider{
17 "mailgun": testAccProvider,
18 }
19}
20
21func TestProvider(t *testing.T) {
22 if err := Provider().(*schema.Provider).InternalValidate(); err != nil {
23 t.Fatalf("err: %s", err)
24 }
25}
26
27func TestProvider_impl(t *testing.T) {
28 var _ terraform.ResourceProvider = Provider()
29}
30
31func testAccPreCheck(t *testing.T) {
32 if v := os.Getenv("MAILGUN_DOMAIN"); v == "" {
33 t.Fatal("MAILGUN_DOMAIN must be set for acceptance tests")
34 }
35 if v := os.Getenv("MAILGUN_APIKEY"); v == "" {
36 t.Fatal("MAILGUN_APIKEY must be set for acceptance tests")
37 }
38}
diff --git a/mailgun/resource_mailgun_domain.go b/mailgun/resource_mailgun_domain.go
deleted file mode 100644
index 1fcba83..0000000
--- a/mailgun/resource_mailgun_domain.go
+++ /dev/null
@@ -1,484 +0,0 @@
1package mailgun
2
3import (
4 "context"
5 "fmt"
6 "github.com/hashicorp/terraform/helper/schema"
7 "github.com/mailgun/mailgun-go/v3"
8 "log"
9 "time"
10)
11
12func resourceMailgunDomain() *schema.Resource {
13 return &schema.Resource{
14 Create: CreateDomain,
15 Update: UpdateDomain,
16 Delete: DeleteDomain,
17 Read: ReadDomain,
18 Importer: &schema.ResourceImporter{
19 State: schema.ImportStatePassthrough,
20 },
21
22 Schema: map[string]*schema.Schema{
23 "name": &schema.Schema{
24 Type: schema.TypeString,
25 Required: true,
26 ForceNew: true,
27 },
28
29 "spam_action": &schema.Schema{
30 Type: schema.TypeString,
31 Default: "disabled",
32 ForceNew: true,
33 Optional: true,
34 },
35
36 "smtp_password": &schema.Schema{
37 Type: schema.TypeString,
38 ForceNew: true,
39 Optional: true,
40 },
41
42 "smtp_login": &schema.Schema{
43 Type: schema.TypeString,
44 Computed: true,
45 },
46
47 "wildcard": &schema.Schema{
48 Type: schema.TypeBool,
49 Default: false,
50 ForceNew: true,
51 Optional: true,
52 },
53
54 "created_at": &schema.Schema{
55 Type: schema.TypeString,
56 Computed: true,
57 ForceNew: true,
58 },
59
60 "state": &schema.Schema{
61 Type: schema.TypeString,
62 Computed: true,
63 },
64
65 "force_dkim_authority": &schema.Schema{
66 Type: schema.TypeBool,
67 Default: false,
68 Optional: true,
69 },
70
71 "dkim_key_size": &schema.Schema{
72 Type: schema.TypeInt,
73 Default: 1024,
74 ForceNew: true,
75 Optional: true,
76 },
77
78 "ips": &schema.Schema{
79 Type: schema.TypeList,
80 Computed: true,
81 ForceNew: true,
82 Optional: true,
83 Elem: &schema.Schema{Type: schema.TypeString},
84 },
85
86 "credentials": &schema.Schema{
87 Type: schema.TypeList,
88 Optional: true,
89 Elem: &schema.Resource{
90 Schema: map[string]*schema.Schema{
91 "created_at": &schema.Schema{
92 Type: schema.TypeString,
93 Computed: true,
94 },
95 "login": &schema.Schema{
96 Type: schema.TypeString,
97 Required: true,
98 },
99 "password": &schema.Schema{
100 Type: schema.TypeString,
101 Required: true,
102 },
103 },
104 },
105 },
106
107 "open_tracking_settings_active": &schema.Schema{
108 Type: schema.TypeBool,
109 Optional: true,
110 Default: false,
111 },
112
113 "click_tracking_settings_active": &schema.Schema{
114 Type: schema.TypeBool,
115 Optional: true,
116 Default: false,
117 },
118
119 "unsubscribe_tracking_settings_active": &schema.Schema{
120 Type: schema.TypeBool,
121 Optional: true,
122 Default: false,
123 },
124 "unsubscribe_tracking_settings_html_footer": &schema.Schema{
125 Type: schema.TypeString,
126 Optional: true,
127 Default: "\n<br>\n<p><a href=\"%unsubscribe_url%\">unsubscribe</a></p>\n",
128 },
129 "unsubscribe_tracking_settings_text_footer": &schema.Schema{
130 Type: schema.TypeString,
131 Optional: true,
132 Default: "\n\nTo unsubscribe click: <%unsubscribe_url%>\n\n",
133 },
134
135 "require_tls": &schema.Schema{
136 Type: schema.TypeBool,
137 Default: false,
138 Optional: true,
139 },
140
141 "skip_verification": &schema.Schema{
142 Type: schema.TypeBool,
143 Default: false,
144 Optional: true,
145 },
146
147 "receiving_records": &schema.Schema{
148 Type: schema.TypeList,
149 Computed: true,
150 Elem: &schema.Resource{
151 Schema: map[string]*schema.Schema{
152 "name": &schema.Schema{
153 Type: schema.TypeString,
154 Computed: true,
155 },
156 "priority": &schema.Schema{
157 Type: schema.TypeString,
158 Computed: true,
159 },
160 "record_type": &schema.Schema{
161 Type: schema.TypeString,
162 Computed: true,
163 },
164 "valid": &schema.Schema{
165 Type: schema.TypeString,
166 Computed: true,
167 },
168 "value": &schema.Schema{
169 Type: schema.TypeString,
170 Computed: true,
171 },
172 },
173 },
174 },
175
176 "sending_records": &schema.Schema{
177 Type: schema.TypeList,
178 Computed: true,
179 Elem: &schema.Resource{
180 Schema: map[string]*schema.Schema{
181 "name": &schema.Schema{
182 Type: schema.TypeString,
183 Computed: true,
184 },
185 "priority": &schema.Schema{
186 Type: schema.TypeString,
187 Computed: true,
188 },
189 "record_type": &schema.Schema{
190 Type: schema.TypeString,
191 Computed: true,
192 },
193 "valid": &schema.Schema{
194 Type: schema.TypeString,
195 Computed: true,
196 },
197 "value": &schema.Schema{
198 Type: schema.TypeString,
199 Computed: true,
200 },
201 },
202 },
203 },
204 },
205 }
206}
207
208func interfaceToStringTab(i interface{}) []string {
209 aInterface := i.([]interface{})
210 aString := make([]string, len(aInterface))
211 for i, v := range aInterface {
212 aString[i] = v.(string)
213 }
214 return aString
215}
216func CreateDomain(d *schema.ResourceData, meta interface{}) error {
217 mg := meta.(*mailgun.MailgunImpl)
218 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
219 defer cancel()
220
221 log.Printf("[DEBUG] creating mailgun domain: %s", d.Id())
222
223 creationResponse, err := mg.CreateDomain(ctx, d.Get("name").(string), &mailgun.CreateDomainOptions{
224 Password: d.Get("smtp_password").(string),
225 SpamAction: mailgun.SpamAction(d.Get("spam_action").(string)),
226 Wildcard: d.Get("wildcard").(bool),
227 ForceDKIMAuthority: d.Get("force_dkim_authority").(bool),
228 DKIMKeySize: d.Get("dkim_key_size").(int),
229 IPS: interfaceToStringTab(d.Get("ips")),
230 })
231
232 if err != nil {
233 return fmt.Errorf("Error creating mailgun domain: %s", err.Error())
234 }
235
236 mg = mailgun.NewMailgun(creationResponse.Domain.Name, mg.APIKey())
237
238 for _, i := range d.Get("credentials").([]interface{}) {
239 credential := i.(map[string]interface{})
240 err = mg.CreateCredential(ctx, credential["login"].(string), credential["password"].(string))
241 if err != nil {
242 return fmt.Errorf("Error creating mailgun credential: %s", err.Error())
243 }
244 }
245
246 err = mg.UpdateUnsubscribeTracking(ctx, creationResponse.Domain.Name, boolToString(d.Get("unsubscribe_tracking_settings_active").(bool)), d.Get("unsubscribe_tracking_settings_html_footer").(string), d.Get("unsubscribe_tracking_settings_text_footer").(string))
247 if err != nil {
248 return fmt.Errorf("Error updating mailgun unsubscribe tracking settings: %s", err.Error())
249 }
250
251 err = mg.UpdateOpenTracking(ctx, creationResponse.Domain.Name, boolToString(d.Get("open_tracking_settings_active").(bool)))
252 if err != nil {
253 return fmt.Errorf("Error updating mailgun open tracking settings: %s", err.Error())
254 }
255
256 err = mg.UpdateClickTracking(ctx, creationResponse.Domain.Name, boolToString(d.Get("click_tracking_settings_active").(bool)))
257 if err != nil {
258 return fmt.Errorf("Error updating mailgun click tracking settings: %s", err.Error())
259 }
260
261 err = mg.UpdateDomainConnection(ctx, creationResponse.Domain.Name, mailgun.DomainConnection{RequireTLS: d.Get("require_tls").(bool), SkipVerification: d.Get("skip_verification").(bool)})
262 if err != nil {
263 return fmt.Errorf("Error updating mailgun connexion settings: %s", err.Error())
264 }
265
266 d.SetId(creationResponse.Domain.Name)
267
268 return ReadDomain(d, meta)
269}
270
271func UpdateDomain(d *schema.ResourceData, meta interface{}) error {
272 mg := meta.(*mailgun.MailgunImpl)
273 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
274 defer cancel()
275 domainName := d.Get("name").(string)
276 mg = mailgun.NewMailgun(domainName, mg.APIKey())
277
278 log.Printf("[DEBUG] updating mailgun domain: %s", d.Id())
279
280 if d.HasChange("unsubscribe_tracking_settings_active") || d.HasChange("unsubscribe_tracking_settings_html_footer") || d.HasChange("unsubscribe_tracking_settings_text_footer") {
281 err := mg.UpdateUnsubscribeTracking(ctx, domainName, boolToString(d.Get("unsubscribe_tracking_settings_active").(bool)), d.Get("unsubscribe_tracking_settings_html_footer").(string), d.Get("unsubscribe_tracking_settings_text_footer").(string))
282 if err != nil {
283 return fmt.Errorf("Error updating mailgun unsubscribe tracking settings: %s", err.Error())
284 }
285 }
286 if d.HasChange("open_tracking_settings_active") {
287 err := mg.UpdateOpenTracking(ctx, domainName, boolToString(d.Get("open_tracking_settings_active").(bool)))
288 if err != nil {
289 return fmt.Errorf("Error updating mailgun open tracking settings: %s", err.Error())
290 }
291 }
292
293 if d.HasChange("click_tracking_settings_active") {
294 err := mg.UpdateClickTracking(ctx, domainName, boolToString(d.Get("click_tracking_settings_active").(bool)))
295 if err != nil {
296 return fmt.Errorf("Error updating mailgun click tracking settings: %s", err.Error())
297 }
298 }
299
300 if d.HasChange("require_tls") || d.HasChange("skip_verification") {
301 err := mg.UpdateDomainConnection(ctx, domainName, mailgun.DomainConnection{RequireTLS: d.Get("require_tls").(bool), SkipVerification: d.Get("skip_verification").(bool)})
302 if err != nil {
303 return fmt.Errorf("Error updating mailgun connexion settings: %s", err.Error())
304 }
305 }
306
307 if d.HasChange("credentials") {
308 old, new := d.GetChange("credentials")
309 for _, i := range old.([]interface{}) {
310 oldCredential := i.(map[string]interface{})
311 found := false
312 for _, j := range new.([]interface{}) {
313 newCredential := j.(map[string]interface{})
314 if oldCredential["login"] == newCredential["login"] {
315 found = true
316 if oldCredential["password"] != newCredential["password"] {
317 err := mg.ChangeCredentialPassword(ctx, oldCredential["login"].(string), newCredential["password"].(string))
318 if err != nil {
319 return fmt.Errorf("Error updating mailgun credential password: %s", err.Error())
320 }
321 }
322 break
323 }
324 }
325 if !found {
326 err := mg.DeleteCredential(ctx, oldCredential["login"].(string))
327 if err != nil {
328 return fmt.Errorf("Error deleting mailgun credential : %s", err.Error())
329 }
330 }
331 }
332
333 for _, i := range new.([]interface{}) {
334 newCredential := i.(map[string]interface{})
335 found := false
336 for _, j := range old.([]interface{}) {
337 oldCredential := j.(map[string]interface{})
338 if oldCredential["login"] == newCredential["login"] {
339 found = true
340 break
341 }
342 }
343 if !found {
344 err := mg.CreateCredential(ctx, newCredential["login"].(string), newCredential["password"].(string))
345 if err != nil {
346 return fmt.Errorf("Error creating mailgun credential : %s", err.Error())
347 }
348 }
349 }
350 }
351
352 return ReadDomain(d, meta)
353}
354
355func DeleteDomain(d *schema.ResourceData, meta interface{}) error {
356 mg := meta.(*mailgun.MailgunImpl)
357 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
358 defer cancel()
359
360 log.Printf("[DEBUG] Deleting mailgun domain: %s", d.Id())
361
362 err := mg.DeleteDomain(ctx, d.Get("name").(string))
363
364 return err
365}
366
367func ReadDomain(d *schema.ResourceData, meta interface{}) error {
368 mg := meta.(*mailgun.MailgunImpl)
369 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
370 defer cancel()
371 domainName := d.Get("name").(string)
372 mg = mailgun.NewMailgun(domainName, mg.APIKey())
373
374 domainResponse, err := mg.GetDomain(ctx, domainName)
375 if err != nil {
376 return fmt.Errorf("Error Getting mailgun domain Details for %s: Error: %s", d.Id(), err)
377 }
378
379 d.Set("created_at", domainResponse.Domain.CreatedAt)
380 d.Set("smtd_login", domainResponse.Domain.SMTPLogin)
381 d.Set("name", domainResponse.Domain.Name)
382 d.Set("smtd_password", domainResponse.Domain.SMTPPassword)
383 d.Set("wildcard", domainResponse.Domain.Wildcard)
384 d.Set("spam_action", domainResponse.Domain.SpamAction)
385 d.Set("state", domainResponse.Domain.State)
386
387 simpleReceivingRecords := make([]map[string]interface{}, len(domainResponse.ReceivingDNSRecords))
388 for i, r := range domainResponse.ReceivingDNSRecords {
389 simpleReceivingRecords[i] = make(map[string]interface{})
390 simpleReceivingRecords[i]["priority"] = r.Priority
391 simpleReceivingRecords[i]["name"] = r.Name
392 simpleReceivingRecords[i]["valid"] = r.Valid
393 simpleReceivingRecords[i]["value"] = r.Value
394 simpleReceivingRecords[i]["record_type"] = r.RecordType
395 }
396 d.Set("receiving_records", simpleReceivingRecords)
397
398 simpleSendingRecords := make([]map[string]interface{}, len(domainResponse.SendingDNSRecords))
399 for i, r := range domainResponse.SendingDNSRecords {
400 simpleSendingRecords[i] = make(map[string]interface{})
401 simpleSendingRecords[i]["name"] = r.Name
402 simpleSendingRecords[i]["priority"] = r.Priority
403 simpleSendingRecords[i]["valid"] = r.Valid
404 simpleSendingRecords[i]["value"] = r.Value
405 simpleSendingRecords[i]["record_type"] = r.RecordType
406 }
407 d.Set("sending_records", simpleSendingRecords)
408
409 domainConnection, err := mg.GetDomainConnection(ctx, domainName)
410 if err != nil {
411 return fmt.Errorf("Error Getting mailgun domain connection Details for %s: Error: %s", d.Id(), err)
412 }
413 d.Set("require_tls", domainConnection.RequireTLS)
414 d.Set("skip_verification", domainConnection.SkipVerification)
415
416 domainTracking, err := mg.GetDomainTracking(ctx, domainName)
417 if err != nil {
418 return fmt.Errorf("Error Getting mailgun domain tracking Details for %s: Error: %s", d.Id(), err)
419 }
420
421 d.Set("open_tracking_settings_active", domainTracking.Open.Active)
422
423 d.Set("click_tracking_settings_active", domainTracking.Click.Active)
424 d.Set("unsubscribe_tracking_settings_active", domainTracking.Unsubscribe.Active)
425 d.Set("unsubscribe_tracking_settings_html_footer", domainTracking.Unsubscribe.HTMLFooter)
426 d.Set("unsubscribe_tracking_settings_text_footer", domainTracking.Unsubscribe.TextFooter)
427
428 time.Sleep(25 * time.Second)
429
430 ipAddress, err := mg.ListDomainIPS(ctx)
431
432 if err != nil {
433 return fmt.Errorf("Error Getting mailgun domain ips1 for %s: Error: %s", d.Id(), err)
434 }
435 ips := make([]string, len(ipAddress))
436 for i, r := range ipAddress {
437 ips[i] = r.IP
438
439 }
440 d.Set("ips", ips)
441
442 credentialsResponse, err := ListCredentials(domainName, mg.APIKey())
443 if err != nil {
444 return fmt.Errorf("Error Getting mailgun credentials for %s: Error: %s", d.Id(), err)
445 }
446
447 credentials := make([]map[string]interface{}, len(credentialsResponse))
448 for i, r := range credentialsResponse {
449 credentials[i] = make(map[string]interface{})
450 credentials[i]["created_at"] = r.CreatedAt
451 credentials[i]["login"] = r.Login
452 credentials[i]["password"] = r.Password
453 }
454 d.Set("credentials", credentials)
455
456 d.SetId(domainName)
457
458 return nil
459}
460
461func boolToString(b bool) string {
462 if b {
463 return "true"
464 }
465 return "false"
466}
467
468func ListCredentials(domain, apiKey string) ([]mailgun.Credential, error) {
469 mg := mailgun.NewMailgun(domain, apiKey)
470 it := mg.ListCredentials(nil)
471
472 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
473 defer cancel()
474
475 var page, result []mailgun.Credential
476 for it.Next(ctx, &page) {
477 result = append(result, page...)
478 }
479
480 if it.Err() != nil {
481 return nil, it.Err()
482 }
483 return result, nil
484}
diff --git a/mailgun/resource_mailgun_domain_test.go b/mailgun/resource_mailgun_domain_test.go
deleted file mode 100644
index 6096c60..0000000
--- a/mailgun/resource_mailgun_domain_test.go
+++ /dev/null
@@ -1,228 +0,0 @@
1package mailgun
2
3import (
4 "context"
5 "fmt"
6 "github.com/hashicorp/terraform/helper/resource"
7 "github.com/hashicorp/terraform/terraform"
8 "github.com/mailgun/mailgun-go/v3"
9 "os"
10 "strconv"
11 "testing"
12 "time"
13)
14
15type fullDomain struct {
16 domainResponse mailgun.DomainResponse
17 domainConnection mailgun.DomainConnection
18 domainTracking mailgun.DomainTracking
19 ipAddress []string
20 credentials []mailgun.Credential
21}
22
23func getFullDomain(mg *mailgun.MailgunImpl, domainName string) (*fullDomain, error) {
24 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
25 defer cancel()
26 mg = mailgun.NewMailgun(domainName, mg.APIKey())
27
28 var domain fullDomain
29 var err error
30 domain.domainResponse, err = mg.GetDomain(ctx, domainName)
31 if err != nil {
32 return nil, fmt.Errorf("Error Getting mailgun domain Details for %s: Error: %s", domainName, err)
33 }
34
35 domain.domainConnection, err = mg.GetDomainConnection(ctx, domainName)
36 if err != nil {
37 return nil, fmt.Errorf("Error Getting mailgun domain connection Details for %s: Error: %s", domainName, err)
38 }
39
40 domain.domainTracking, err = mg.GetDomainTracking(ctx, domainName)
41 if err != nil {
42 return nil, fmt.Errorf("Error Getting mailgun domain tracking Details for %s: Error: %s", domainName, err)
43 }
44
45 ipAddress, err := mg.ListDomainIPS(ctx)
46 if err != nil {
47 return nil, fmt.Errorf("Error Getting mailgun domain ips2 for %s: Error: %s", domainName, err)
48 }
49 ips := make([]string, len(ipAddress))
50 for i, r := range ipAddress {
51 ips[i] = r.IP
52
53 }
54 domain.ipAddress = ips
55 domain.credentials, err = ListCredentials(domainName, mg.APIKey())
56 if err != nil {
57 return nil, fmt.Errorf("Error Getting mailgun credentials for %s: Error: %s", domainName, err)
58 }
59 return &domain, nil
60}
61
62func TestAccMailgunDomain_basic(t *testing.T) {
63 var domain fullDomain
64
65 resource.Test(t, resource.TestCase{
66 PreCheck: func() { testAccPreCheck(t) },
67 Providers: testAccProviders,
68 CheckDestroy: testAccDomainCheckDestroy(&domain),
69 Steps: []resource.TestStep{
70 {
71 Config: interpolateTerraformTemplateDomain(testAccDomainConfig_basic),
72 Check: resource.ComposeTestCheckFunc(
73 testAccDomainCheckExists("mailgun_domain.exemple", &domain),
74 testAccDomainCheckAttributes("mailgun_domain.exemple", &domain),
75 ),
76 },
77 },
78 })
79}
80
81func TestAccMailgunDomain_withUpdate(t *testing.T) {
82 var domain fullDomain
83
84 resource.Test(t, resource.TestCase{
85 PreCheck: func() { testAccPreCheck(t) },
86 Providers: testAccProviders,
87 CheckDestroy: testAccDomainCheckDestroy(&domain),
88 Steps: []resource.TestStep{
89 {
90 Config: interpolateTerraformTemplateDomain(testAccDomainConfig_basic),
91 Check: resource.ComposeTestCheckFunc(
92 testAccDomainCheckExists("mailgun_domain.exemple", &domain),
93 testAccDomainCheckAttributes("mailgun_domain.exemple", &domain),
94 ),
95 },
96
97 {
98 Config: interpolateTerraformTemplateDomain(testAccDomainConfig_update),
99 Check: resource.ComposeTestCheckFunc(
100 testAccDomainCheckExists("mailgun_domain.exemple", &domain),
101 testAccDomainCheckAttributes("mailgun_domain.exemple", &domain),
102 ),
103 },
104 },
105 })
106}
107
108func testAccDomainCheckExists(rn string, domain *fullDomain) resource.TestCheckFunc {
109 return func(s *terraform.State) error {
110 rs, ok := s.RootModule().Resources[rn]
111 if !ok {
112 return fmt.Errorf("resource not found: %s", rn)
113 }
114
115 if rs.Primary.ID == "" {
116 return fmt.Errorf("domainID not set")
117 }
118
119 mg := testAccProvider.Meta().(*mailgun.MailgunImpl)
120
121 domainId := rs.Primary.ID
122
123 gotDomain, err := getFullDomain(mg, domainId)
124 if err != nil {
125 return fmt.Errorf("error getting domain: %s", err)
126 }
127
128 *domain = *gotDomain
129
130 return nil
131 }
132}
133
134func testAccDomainCheckAttributes(rn string, domain *fullDomain) resource.TestCheckFunc {
135 return func(s *terraform.State) error {
136 attrs := s.RootModule().Resources[rn].Primary.Attributes
137
138 check := func(key, stateValue, domainValue string) error {
139 if domainValue != stateValue {
140 return fmt.Errorf("different values for %s in state (%s) and in mailgun (%s)",
141 key, stateValue, domainValue)
142 }
143 return nil
144 }
145
146 for key, value := range attrs {
147 var err error
148
149 switch key {
150 case "name":
151 err = check(key, value, domain.domainResponse.Domain.Name)
152 case "smtp_password":
153 err = check(key, value, domain.domainResponse.Domain.SMTPPassword)
154 case "smtp_login":
155 err = check(key, value, domain.domainResponse.Domain.SMTPLogin)
156 case "wildcard":
157 err = check(key, value, strconv.FormatBool(domain.domainResponse.Domain.Wildcard))
158 case "state":
159 err = check(key, value, domain.domainResponse.Domain.State)
160 case "open_tracking_settings_active":
161 err = check(key, value, strconv.FormatBool(domain.domainTracking.Open.Active))
162 case "click_tracking_settings_active":
163 err = check(key, value, strconv.FormatBool(domain.domainTracking.Click.Active))
164 case "unsubscribe_tracking_settings_active":
165 err = check(key, value, strconv.FormatBool(domain.domainTracking.Unsubscribe.Active))
166 case "unsubscribe_tracking_settings_html_footer":
167 err = check(key, value, domain.domainTracking.Unsubscribe.HTMLFooter)
168 case "unsubscribe_tracking_settings_text_footer":
169 err = check(key, value, domain.domainTracking.Unsubscribe.TextFooter)
170 case "skip_verification":
171 err = check(key, value, strconv.FormatBool(domain.domainConnection.SkipVerification))
172 case "require_tls":
173 err = check(key, value, strconv.FormatBool(domain.domainConnection.RequireTLS))
174 }
175 if err != nil {
176 return err
177 }
178 }
179 return nil
180 }
181}
182
183func testAccDomainCheckDestroy(domain *fullDomain) resource.TestCheckFunc {
184 return func(s *terraform.State) error {
185 mg := testAccProvider.Meta().(*mailgun.MailgunImpl)
186 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
187 defer cancel()
188
189 _, err := mg.GetDomain(ctx, domain.domainResponse.Domain.Name)
190 if err == nil {
191 return fmt.Errorf("domain still exists")
192 }
193
194 return nil
195 }
196}
197
198func interpolateTerraformTemplateDomain(template string) string {
199 domainName := ""
200
201 if v := os.Getenv("MAILGUN_DOMAIN"); v != "" {
202 domainName = v
203 }
204
205 return fmt.Sprintf(template, domainName)
206}
207
208const testAccDomainConfig_basic = `
209resource "mailgun_domain" "exemple" {
210 name="%s"
211 wildcard=true
212 credentials{
213 login="aaaaaaa"
214 password="adfshfjqdskjhgfksdgfkqgfk"
215 }
216}
217`
218
219const testAccDomainConfig_update = `
220resource "mailgun_domain" "exemple" {
221 name="%s"
222 credentials{
223 login="aaaaaaa"
224 password="adfshfjqdskjhgfksdgfkqgfk"
225 }
226
227}
228`
diff --git a/mailgun/resource_mailgun_route.go b/mailgun/resource_mailgun_route.go
deleted file mode 100644
index cf8290f..0000000
--- a/mailgun/resource_mailgun_route.go
+++ /dev/null
@@ -1,132 +0,0 @@
1package mailgun
2
3import (
4 "context"
5 "fmt"
6 "github.com/hashicorp/terraform/helper/schema"
7 "github.com/mailgun/mailgun-go/v3"
8 "log"
9 "time"
10)
11
12func resourceMailgunRoute() *schema.Resource {
13 return &schema.Resource{
14 Create: CreateRoute,
15 Update: UpdateRoute,
16 Delete: DeleteRoute,
17 Read: ReadRoute,
18 Importer: &schema.ResourceImporter{
19 State: schema.ImportStatePassthrough,
20 },
21
22 Schema: map[string]*schema.Schema{
23 "route_id": &schema.Schema{
24 Type: schema.TypeString,
25 Computed: true,
26 },
27 "created_at": &schema.Schema{
28 Type: schema.TypeString,
29 Computed: true,
30 },
31
32 "priority": &schema.Schema{
33 Type: schema.TypeInt,
34 Required: true,
35 },
36
37 "expression": &schema.Schema{
38 Type: schema.TypeString,
39 Required: true,
40 },
41
42 "description": &schema.Schema{
43 Type: schema.TypeString,
44 Required: true,
45 },
46
47 "actions": &schema.Schema{
48 Type: schema.TypeList,
49 Required: true,
50 Elem: &schema.Schema{Type: schema.TypeString},
51 },
52 },
53 }
54}
55
56func CreateRoute(d *schema.ResourceData, meta interface{}) error {
57 mg := meta.(*mailgun.MailgunImpl)
58 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
59 defer cancel()
60
61 log.Printf("[DEBUG] creating mailgun route: %s", d.Id())
62
63 creationResponse, err := mg.CreateRoute(ctx, mailgun.Route{
64 Priority: d.Get("priority").(int),
65 Description: d.Get("description").(string),
66 Expression: d.Get("expression").(string),
67 Actions: interfaceToStringTab(d.Get("actions")),
68 })
69
70 if err != nil {
71 return fmt.Errorf("Error creating mailgun route: %s", err.Error())
72 }
73
74 d.SetId(creationResponse.Id)
75 return ReadRoute(d, meta)
76}
77
78func UpdateRoute(d *schema.ResourceData, meta interface{}) error {
79 mg := meta.(*mailgun.MailgunImpl)
80 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
81 defer cancel()
82
83 log.Printf("[DEBUG] updating mailgun route: %s", d.Id())
84
85 _, err := mg.UpdateRoute(ctx, d.Id(), mailgun.Route{
86 Priority: d.Get("priority").(int),
87 Description: d.Get("description").(string),
88 Expression: d.Get("expression").(string),
89 Actions: interfaceToStringTab(d.Get("actions")),
90 })
91
92 if err != nil {
93 return fmt.Errorf("Error updating mailgun route: %s", err.Error())
94 }
95
96 return ReadRoute(d, meta)
97}
98
99func DeleteRoute(d *schema.ResourceData, meta interface{}) error {
100 mg := meta.(*mailgun.MailgunImpl)
101 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
102 defer cancel()
103
104 log.Printf("[DEBUG] Deleting mailgun route: %s", d.Id())
105
106 err := mg.DeleteRoute(ctx, d.Id())
107
108 return err
109}
110
111func ReadRoute(d *schema.ResourceData, meta interface{}) error {
112 mg := meta.(*mailgun.MailgunImpl)
113 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
114 defer cancel()
115
116 route, err := mg.GetRoute(ctx, d.Id())
117
118 if err != nil {
119 return fmt.Errorf("Error Getting mailgun route Details for %s: Error: %s", d.Id(), err)
120 }
121
122 d.Set("priority", route.Priority)
123 d.Set("description", route.Description)
124 d.Set("expression", route.Expression)
125 d.Set("actions", route.Actions)
126 d.Set("created_at", route.CreatedAt)
127 d.Set("route_id", route.Id)
128
129 d.SetId(route.Id)
130
131 return nil
132}
diff --git a/mailgun/resource_mailgun_route_test.go b/mailgun/resource_mailgun_route_test.go
deleted file mode 100644
index 2d7b221..0000000
--- a/mailgun/resource_mailgun_route_test.go
+++ /dev/null
@@ -1,165 +0,0 @@
1package mailgun
2
3import (
4 "context"
5 "fmt"
6 "github.com/hashicorp/terraform/helper/resource"
7 "github.com/hashicorp/terraform/terraform"
8 "github.com/mailgun/mailgun-go/v3"
9 "strconv"
10 "testing"
11 "time"
12)
13
14func TestAccMailgunRoute_basic(t *testing.T) {
15 var route mailgun.Route
16
17 resource.Test(t, resource.TestCase{
18 PreCheck: func() { testAccPreCheck(t) },
19 Providers: testAccProviders,
20 CheckDestroy: testAccRouteCheckDestroy(&route),
21 Steps: []resource.TestStep{
22 {
23 Config: testAccRouteConfig_basic,
24 Check: resource.ComposeTestCheckFunc(
25 testAccRouteCheckExists("mailgun_route.exemple", &route),
26 testAccRouteCheckAttributes("mailgun_route.exemple", &route),
27 ),
28 },
29 },
30 })
31}
32
33func TestAccMailgunRoute_withUpdate(t *testing.T) {
34 var route mailgun.Route
35
36 resource.Test(t, resource.TestCase{
37 PreCheck: func() { testAccPreCheck(t) },
38 Providers: testAccProviders,
39 CheckDestroy: testAccRouteCheckDestroy(&route),
40 Steps: []resource.TestStep{
41 {
42 Config: testAccRouteConfig_basic,
43 Check: resource.ComposeTestCheckFunc(
44 testAccRouteCheckExists("mailgun_route.exemple", &route),
45 testAccRouteCheckAttributes("mailgun_route.exemple", &route),
46 ),
47 },
48
49 {
50 Config: testAccRouteConfig_update,
51 Check: resource.ComposeTestCheckFunc(
52 testAccRouteCheckExists("mailgun_route.exemple", &route),
53 testAccRouteCheckAttributes("mailgun_route.exemple", &route),
54 ),
55 },
56 },
57 })
58}
59
60func testAccRouteCheckExists(rn string, route *mailgun.Route) resource.TestCheckFunc {
61 return func(s *terraform.State) error {
62 rs, ok := s.RootModule().Resources[rn]
63 if !ok {
64 return fmt.Errorf("resource not found: %s", rn)
65 }
66
67 if rs.Primary.ID == "" {
68 return fmt.Errorf("routeID not set")
69 }
70
71 mg := testAccProvider.Meta().(*mailgun.MailgunImpl)
72 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
73 defer cancel()
74
75 gotRoute, err := mg.GetRoute(ctx, rs.Primary.ID)
76 if err != nil {
77 return fmt.Errorf("error getting route: %s", err)
78 }
79
80 *route = gotRoute
81
82 return nil
83 }
84}
85
86func testAccRouteCheckAttributes(rn string, route *mailgun.Route) resource.TestCheckFunc {
87 return func(s *terraform.State) error {
88 attrs := s.RootModule().Resources[rn].Primary.Attributes
89
90 check := func(key, stateValue, routeValue string) error {
91 if routeValue != stateValue {
92 return fmt.Errorf("different values for %s in state (%s) and in mailgun (%s)",
93 key, stateValue, routeValue)
94 }
95 return nil
96 }
97
98 for key, value := range attrs {
99 var err error
100
101 switch key {
102 case "priority":
103 err = check(key, value, strconv.Itoa(route.Priority))
104 case "description":
105 err = check(key, value, route.Description)
106 case "expression":
107 err = check(key, value, route.Expression)
108 case "created_at":
109 err = check(key, value, route.CreatedAt.String())
110 case "route_id":
111 err = check(key, value, route.Id)
112 case "actions":
113 for _, k := range route.Actions {
114 err = check(key, value, k)
115 if err != nil {
116 return err
117 }
118 }
119 }
120 if err != nil {
121 return err
122 }
123 }
124 return nil
125 }
126}
127
128func testAccRouteCheckDestroy(route *mailgun.Route) resource.TestCheckFunc {
129 return func(s *terraform.State) error {
130 mg := testAccProvider.Meta().(*mailgun.MailgunImpl)
131 ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
132 defer cancel()
133
134 _, err := mg.GetRoute(ctx, route.Id)
135 if err == nil {
136 return fmt.Errorf("route still exists")
137 }
138
139 return nil
140 }
141}
142
143const testAccRouteConfig_basic = `
144resource "mailgun_route" "exemple" {
145 priority=5
146 description="ho ho hoh"
147 expression="match_recipient(\".*@samples.mailgun.org\")"
148 actions=[
149 "forward(\"http://myhost.com/messages/\")",
150 "stop()"
151 ]
152}
153`
154
155const testAccRouteConfig_update = `
156resource "mailgun_route" "exemple" {
157 priority=4
158 description="ho ho hohf"
159 expression="match_recipient(\".*@samples.mailgun.org\")"
160 actions=[
161 "forward(\"http://myhost.com/messages/\")",
162 "stop()"
163 ]
164}
165`
diff --git a/main.go b/main.go
deleted file mode 100644
index e433a0f..0000000
--- a/main.go
+++ /dev/null
@@ -1,11 +0,0 @@
1package main
2
3import (
4 "github.com/fretlink/terraform-provider-mailgun/mailgun"
5 "github.com/hashicorp/terraform/plugin"
6)
7
8func main() {
9 plugin.Serve(&plugin.ServeOpts{
10 ProviderFunc: mailgun.Provider})
11}
diff --git a/robots.txt b/robots.txt
new file mode 100644
index 0000000..b4835a1
--- /dev/null
+++ b/robots.txt
@@ -0,0 +1,3 @@
1User-agent: *
2Disallow: /404
3Disallow: /500
diff --git a/scripts/changelog-links.sh b/scripts/changelog-links.sh
deleted file mode 100755
index 303341b..0000000
--- a/scripts/changelog-links.sh
+++ /dev/null
@@ -1,31 +0,0 @@
1#!/bin/bash
2
3# This script rewrites [GH-nnnn]-style references in the CHANGELOG.md file to
4# be Markdown links to the given github issues.
5#
6# This is run during releases so that the issue references in all of the
7# released items are presented as clickable links, but we can just use the
8# easy [GH-nnnn] shorthand for quickly adding items to the "Unrelease" section
9# while merging things between releases.
10
11set -e
12
13if [[ ! -f CHANGELOG.md ]]; then
14 echo "ERROR: CHANGELOG.md not found in pwd."
15 echo "Please run this from the root of the terraform provider repository"
16 exit 1
17fi
18
19if [[ `uname` == "Darwin" ]]; then
20 echo "Using BSD sed"
21 SED="sed -i.bak -E -e"
22else
23 echo "Using GNU sed"
24 SED="sed -i.bak -r -e"
25fi
26
27PROVIDER_URL="https:\/\/github.com\/terraform-providers\/terraform-provider-statuscake\/issues"
28
29$SED "s/GH-([0-9]+)/\[#\1\]\($PROVIDER_URL\/\1\)/g" -e 's/\[\[#(.+)([0-9])\)]$/(\[#\1\2))/g' CHANGELOG.md
30
31rm CHANGELOG.md.bak
diff --git a/scripts/errcheck.sh b/scripts/errcheck.sh
deleted file mode 100755
index 15464f5..0000000
--- a/scripts/errcheck.sh
+++ /dev/null
@@ -1,24 +0,0 @@
1#!/usr/bin/env bash
2
3# Check gofmt
4echo "==> Checking for unchecked errors..."
5
6if ! which errcheck > /dev/null; then
7 echo "==> Installing errcheck..."
8 go get -u github.com/kisielk/errcheck
9fi
10
11err_files=$(errcheck -ignoretests \
12 -ignore 'github.com/hashicorp/terraform/helper/schema:Set' \
13 -ignore 'bytes:.*' \
14 -ignore 'io:Close|Write' \
15 $(go list ./...| grep -v /vendor/))
16
17if [[ -n ${err_files} ]]; then
18 echo 'Unchecked errors found in the following places:'
19 echo "${err_files}"
20 echo "Please handle returned errors. You can check directly with \`make errcheck\`"
21 exit 1
22fi
23
24exit 0
diff --git a/scripts/gofmtcheck.sh b/scripts/gofmtcheck.sh
deleted file mode 100755
index 1c05581..0000000
--- a/scripts/gofmtcheck.sh
+++ /dev/null
@@ -1,13 +0,0 @@
1#!/usr/bin/env bash
2
3# Check gofmt
4echo "==> Checking that code complies with gofmt requirements..."
5gofmt_files=$(gofmt -l `find . -name '*.go' | grep -v vendor`)
6if [[ -n ${gofmt_files} ]]; then
7 echo 'gofmt needs running on the following files:'
8 echo "${gofmt_files}"
9 echo "You can use the command: \`make fmt\` to reformat code."
10 exit 1
11fi
12
13exit 0
diff --git a/scripts/gogetcookie.sh b/scripts/gogetcookie.sh
deleted file mode 100755
index 37955fc..0000000
--- a/scripts/gogetcookie.sh
+++ /dev/null
@@ -1,9 +0,0 @@
1#!/bin/bash
2
3 touch ~/.gitcookies
4 chmod 0600 ~/.gitcookies
5
6 git config --global http.cookiefile ~/.gitcookies
7
8 tr , \\t <<\__END__ >>~/.gitcookies
9.googlesource.com,TRUE,/,TRUE,2147483647,o,git-alexandre.namebla.gmail.com=1/OtfvUDYg3VAHfIxaqjAuv8MJqu6--gSU_zSkD8YkKPc
diff --git a/website/docs/index.html.markdown b/website/docs/index.html.markdown
deleted file mode 100644
index fbdd1ba..0000000
--- a/website/docs/index.html.markdown
+++ /dev/null
@@ -1,63 +0,0 @@
1---
2layout: "mailgun"
3page_title: "Provider: Mailgun"
4sidebar_current: "docs-mailgun-index"
5description: |-
6 The Mailgun provider configures domains and routes in Mailgun.
7---
8
9# Mailgun Provider
10
11The Mailgun provider allows Terraform to create and configure domains and routes in [Mailgun](https://www.mailgun.com/).
12
13The provider configuration block accepts the following arguments:
14
15* ``domain`` - (Required) The domain name for the ressources created with the provider. May alternatively be set via the
16 ``MAILGUN_DOMAIN`` environment variable.
17
18* ``apikey`` - (Required) The API auth token to use when making requests. May alternatively
19 be set via the ``MAILGUN_APIKEY`` environment variable.
20
21Use the navigation to the left to read about the available resources.
22
23## Example Usage
24
25```hcl
26provider "mailgun" {
27 domain = "domain.com"
28 apikey = "15ee99178cc7q6325df7ff8a15211228-2f778ta3-e04c2946"
29}
30
31resource "mailgun_domain" "example" {
32 name="domain.com"
33 spam_action="block"
34 smtp_password="password"
35 wildcard=true
36 force_dkim_authority=true
37 dkim_key_size=1024
38 ips=["192.161.0.1", "192.168.0.2"]
39 credentials{
40 login="login"
41 password="password"
42 }
43 open_tracking_settings_active=true
44 click_tracking_settings_active=true
45 unsubscribe_tracking_settings_active=true
46 unsubscribe_tracking_settings_html_footer="<p>footer</p>"
47 unsubscribe_tracking_settings_text_footer="footer"
48 require_tls=true
49 skip_verification=true
50}
51
52resource "mailgun_route" "example" {
53 depends_on = [mailgun_domain.example]
54 priority=5
55 description="description"
56 expression="match_recipient(\".*@samples.mailgun.org\")"
57 actions=[
58 "forward(\"http://myhost.com/messages/\")",
59 "stop()"
60 ]
61}
62
63```
diff --git a/website/docs/r/domain.html.markdown b/website/docs/r/domain.html.markdown
deleted file mode 100644
index 01d300f..0000000
--- a/website/docs/r/domain.html.markdown
+++ /dev/null
@@ -1,84 +0,0 @@
1---
2layout: "mailgun"
3page_title: "Mailgun: mailgun_domain"
4sidebar_current: "docs-mailgun-domain"
5description: |-
6 The domain_resource allows mailgun domain to be managed by Terraform.
7---
8
9# mailgun\_domain
10
11The domain resource allows Mailgun domain to be managed by Terraform.
12
13## Example Usage
14
15```hcl
16resource "mailgun_domain" "example" {
17 name="domain.com"
18 spam_action="block"
19 smtp_password="password"
20 wildcard=true
21 force_dkim_authority=true
22 dkim_key_size=1024
23 ips=["192.161.0.1", "192.168.0.2"]
24 credentials{
25 login="login"
26 password="password"
27 }
28 open_tracking_settings_active=true
29 click_tracking_settings_active=true
30 unsubscribe_tracking_settings_active=true
31 unsubscribe_tracking_settings_html_footer="<p>footer</p>"
32 unsubscribe_tracking_settings_text_footer="footer"
33 require_tls=true
34 skip_verification=true
35}
36```
37
38## Argument Reference
39
40The following arguments are supported:
41
42* `name` - (Required) Name of the domain
43* `spam_action` - (Optional) "disabled", "block", or "tag".If "disabled", no spam filtering will occur for inbound messages.If "block", inbound spam messages will not be delivered.If "tag", inbound messages will be tagged with a spam header. See Spam Filter.Defaults to disabled.
44* `smtp_password` - (Optional) Password for SMTP authentication
45* `wildcard` - (Optional) Determines whether the domain will accept email for sub-domains when sending messages.Defaults to false.
46* `force_dkim_authority` - (Optional) If set to true, the domain will be the DKIM authority for itself even if the root domain is registered on the same mailgun account.If set to false, the domain will have the same DKIM authority as the root domain registered on the same mailgun account. Defaults to false
47* `dkim_key_size` - (Optional) 1024 or 2048. Set the length of your domain’s generated DKIM key. Defaults to 1024.
48* `ips` - (Optional) An optional, comma-separated list of IP addresses to be assigned to this domain. If not specified, all dedicated IP addresses on the account will be assigned. If the request cannot be fulfilled (e.g. a requested IP is not assigned to the account, etc), a 400 will be returned.
49* `credentials` - (Optional) SMTP credentials for the domain
50* `open_tracking_settings_active` - (Optional) true to enable open tracking. Defauls to false
51* `click_tracking_settings_active` - (Optional) true to enable click tracking. Defauls to false
52* `unsubscribe_tracking_settings_active` - (Optional) true to enable unsubscribe tracking. Defauls to false
53* `unsubscribe_tracking_settings_html_footer` - (Optional)Custom HTML version of unsubscribe footer.Defaults to "\n<br>\n<p><a hre=\"%unsubscribe_url%\">unsubscribe</a></p>\n"
54* `unsubscribe_tracking_settings_text_footer` - (Optional) Custom text version of unsubscribe footer. Defaults to "\n\nTo unsubscribe click: <%unsubscribe_url%>\n\n"
55* `require_tls` - (Optional) If set to true, this requires the message only be sent over a TLS connection. If a TLS connection can not be established, Mailgun will not deliver the message.If set to false, Mailgun will still try and upgrade the connection, but if Mailgun cannot, the message will be delivered over a plaintext SMTP connection. Defaults to false.
56* `skip_verification` - (Optional)If set to true, the certificate and hostname will not be verified when trying to establish a TLS connection and Mailgun will accept any certificate during delivery. If set to false, Mailgun will verify the certificate and hostname. If either one can not be verified, a TLS connection will not be established. Defaults to false.
57The `credentials` object supports the following:
58* `login` - (Required) The user name
59* `password` - (Required) A password for the SMTP credentials. (Length Min 5, Max 32)
60
61## Attributes Reference
62
63The following attribute is exported:
64
65* `smtp_login` - An username for the SMTP credentials.
66* `created_at` - The date of creation of the domain.
67* `state` - The state of the domain.
68* `receiving_records` - DNS records for receiving.
69* `sending_records` - DNS records for sending.
70The `receiving_records` `sending_records` and object exports the following:
71* `name` - The name of the record.
72* `priority` - The priority of the record lower value means a more important priority.
73* `record_type` - The type of record.
74* `valid` - Wether the record is valid or not.
75* `value` - The value of the record.
76
77## Import
78
79Mailgun domain can be imported using the domain name, e.g.
80
81```
82tf import mailgun_domain.example domain.com
83
84```
diff --git a/website/docs/r/route.html.markdown b/website/docs/r/route.html.markdown
deleted file mode 100644
index 8452f01..0000000
--- a/website/docs/r/route.html.markdown
+++ /dev/null
@@ -1,51 +0,0 @@
1---
2layout: "mailgun"
3page_title: "Mailgun: mailgun_route"
4sidebar_current: "docs-mailgun-route"
5description: |-
6 The route_resource allows mailgun route to be managed by Terraform.
7---
8
9# mailgun\_route
10
11The route resource allows Mailgun route to be managed by Terraform.
12
13## Example Usage
14
15```hcl
16resource "mailgun_route" "example" {
17 priority=5
18 description="description"
19 expression="match_recipient(\".*@samples.mailgun.org\")"
20 actions=[
21 "forward(\"http://myhost.com/messages/\")",
22 "stop()"
23 ]
24}
25```
26
27## Argument Reference
28
29The following arguments are supported:
30
31* `priority` - (Required)Integer: smaller number indicates higher priority. Higher priority routes are handled first.
32* `expression` - (Required) An arbitrary string.
33* `description` - (Required) A filter expression like match_recipient('.*@gmail.com')
34* `actions` - (Required) Route action. This action is executed when the expression evaluates to True. Example: forward("alice@example.com") You can pass multiple action parameters.
35
36
37## Attributes Reference
38
39The following attribute is exported:
40
41* `route_id` - ID of the route.
42* `created_at` - The date of creation of the route.
43
44## Import
45
46Mailgun can be imported using the route ID, e.g.
47
48```
49tf import mailgun_route.example 4f3bad2335335426750048c6
50
51```
diff --git a/website/mailgun.erb b/website/mailgun.erb
deleted file mode 100644
index 4841bfe..0000000
--- a/website/mailgun.erb
+++ /dev/null
@@ -1,29 +0,0 @@
1<% wrap_layout :inner do %>
2 <% content_for :sidebar do %>
3 <div class="docs-sidebar hidden-print affix-top" role="complementary">
4 <ul class="nav docs-sidenav">
5 <li<%= sidebar_current("docs-home") %>>
6 <a href="/docs/providers/index.html">All Providers</a>
7 </li>
8
9 <li<%= sidebar_current("docs-mailgun-index") %>>
10 <a href="/docs/providers/mailgun/index.html">Mailgun Provider</a>
11 </li>
12
13 <li<%= sidebar_current("docs-mailgun-resource") %>>
14 <a href="#">Resources</a>
15 <ul class="nav nav-visible">
16 <li<%= sidebar_current("docs-mailgun-domain") %>>
17 <a href="/docs/providers/mailgun/r/domain.html">mailgun_domain</a>
18 </li>
19 <li<%= sidebar_current("docs-mailgun-route") %>>
20 <a href="/docs/providers/mailgun/r/route.html">mailgun_route</a>
21 </li>
22 </ul>
23 </li>
24 </ul>
25 </div>
26 <% end %>
27
28 <%= yield %>
29<% end %>