lists.torproject.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
April
March
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
tor-commits
July 2015
----- 2025 -----
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
tor-commits@lists.torproject.org
18 participants
1250 discussions
Start a n
N
ew thread
[bridgedb/master] Merge branch 'hotfix/0.3.3-error-pages'
by isis@torproject.org
26 Jul '15
26 Jul '15
commit b9a0ad5ac3e3c21abd1b2c366799e5cbce4cb4c5 Merge: ac80d7d 2afaa43 Author: Isis Lovecruft <isis(a)torproject.org> Date: Sun Jul 26 12:05:27 2015 +0000 Merge branch 'hotfix/0.3.3-error-pages' bridgedb/https/server.py | 104 ++++-- bridgedb/https/templates/assets/css/error.css | 208 +++++++++++ .../templates/assets/images/404-excavator.svg | 260 ++++++++++++++ .../templates/assets/images/404-hills-left.svg | 20 ++ .../templates/
…
[View More]
assets/images/404-hills-right.svg | 34 ++ .../assets/images/500-hills-left-shade.svg | 8 + .../templates/assets/images/500-hills-left.svg | 22 ++ .../assets/images/500-hills-right-shade.svg | 8 + .../templates/assets/images/500-hills-right.svg | 41 +++ .../https/templates/assets/images/500-road.svg | 97 ++++++ .../assets/images/maintenance-hills-left-shade.svg | 7 + .../assets/images/maintenance-hills-left.svg | 43 +++ .../images/maintenance-hills-right-shade.svg | 9 + .../assets/images/maintenance-hills-right.svg | 21 ++ .../assets/images/maintenance-tractor.svg | 367 ++++++++++++++++++++ bridgedb/https/templates/base.html | 1 + bridgedb/https/templates/error-404.html | 39 +++ bridgedb/https/templates/error-500.html | 36 ++ bridgedb/https/templates/error-503.html | 37 ++ setup.py | 3 +- test/test_https.py | 9 + test/test_https_server.py | 93 ++++- 22 files changed, 1434 insertions(+), 33 deletions(-)
[View Less]
1
0
0
0
[bridgedb/master] Merge branch 'master' into develop
by isis@torproject.org
26 Jul '15
26 Jul '15
commit 2cc30af922744e6ae6db3c34535747499478ecaa Merge: e059d91 b9a0ad5 Author: Isis Lovecruft <isis(a)torproject.org> Date: Sun Jul 26 12:06:06 2015 +0000 Merge branch 'master' into develop bridgedb/https/server.py | 104 ++++-- bridgedb/https/templates/assets/css/error.css | 208 +++++++++++ .../templates/assets/images/404-excavator.svg | 260 ++++++++++++++ .../templates/assets/images/404-hills-left.svg | 20 ++ .../templates/assets/
…
[View More]
images/404-hills-right.svg | 34 ++ .../assets/images/500-hills-left-shade.svg | 8 + .../templates/assets/images/500-hills-left.svg | 22 ++ .../assets/images/500-hills-right-shade.svg | 8 + .../templates/assets/images/500-hills-right.svg | 41 +++ .../https/templates/assets/images/500-road.svg | 97 ++++++ .../assets/images/maintenance-hills-left-shade.svg | 7 + .../assets/images/maintenance-hills-left.svg | 43 +++ .../images/maintenance-hills-right-shade.svg | 9 + .../assets/images/maintenance-hills-right.svg | 21 ++ .../assets/images/maintenance-tractor.svg | 367 ++++++++++++++++++++ bridgedb/https/templates/base.html | 1 + bridgedb/https/templates/error-404.html | 39 +++ bridgedb/https/templates/error-500.html | 36 ++ bridgedb/https/templates/error-503.html | 37 ++ setup.py | 3 +- test/test_https.py | 9 + test/test_https_server.py | 93 ++++- 22 files changed, 1434 insertions(+), 33 deletions(-)
[View Less]
1
0
0
0
[bridgedb/master] Merge tag 'bridgedb-0.3.4'
by isis@torproject.org
26 Jul '15
26 Jul '15
commit 93ecf699b2cc393e1725072f433a87c0be4148a5 Merge: b9a0ad5 2cc30af Author: Isis Lovecruft <isis(a)torproject.org> Date: Sun Jul 26 12:19:44 2015 +0000 Merge tag 'bridgedb-0.3.4' Release BridgeDB version 0.3.4. # gpg: Signature made Sun 26 Jul 2015 12:19:18 UTC # gpg: using RSA key 18C16EC5F9F1D673 # gpg: Good signature from "Isis! <isis(a)riseup.net>" [ultimate] # gpg: aka "Isis! <isis(a)patternsinthevoid.net
…
[View More]
>" [ultimate] # gpg: aka "Isis <isis(a)torproject.org>" [ultimate] # gpg: aka "Isis <isis(a)leap.se>" [ultimate] # gpg: Signature policy:
https://blog.patternsinthevoid.net/policy.txt
# gpg: Critical preferred keyserver:
https://blog.patternsinthevoid.net/isis.txt
# gpg: Signature notation: isis(a)patternsinthevoid.net=0A6A58A14B5946ABDE18E207A3ADB67A2CDB8B35 # gpg: Signature notation: isis+signsubkey(a)patternsinthevoid.net=C2F033A61D001B5521855A9E18C16EC5F9F1D673 # gpg: Signature notation: gpg: Good signature from isis <isis(a)torproject.org> =) # Primary key fingerprint: 0A6A 58A1 4B59 46AB DE18 E207 A3AD B67A 2CDB 8B35 # Subkey fingerprint: C2F0 33A6 1D00 1B55 2185 5A9E 18C1 6EC5 F9F1 D673 # gpg: Signature expires Mon 25 Jul 2016 12:19:18 UTC
[View Less]
1
0
0
0
[bridgedb/develop] Merge branch 'hotfix/0.3.3-error-pages'
by isis@torproject.org
26 Jul '15
26 Jul '15
commit b9a0ad5ac3e3c21abd1b2c366799e5cbce4cb4c5 Merge: ac80d7d 2afaa43 Author: Isis Lovecruft <isis(a)torproject.org> Date: Sun Jul 26 12:05:27 2015 +0000 Merge branch 'hotfix/0.3.3-error-pages' bridgedb/https/server.py | 104 ++++-- bridgedb/https/templates/assets/css/error.css | 208 +++++++++++ .../templates/assets/images/404-excavator.svg | 260 ++++++++++++++ .../templates/assets/images/404-hills-left.svg | 20 ++ .../templates/
…
[View More]
assets/images/404-hills-right.svg | 34 ++ .../assets/images/500-hills-left-shade.svg | 8 + .../templates/assets/images/500-hills-left.svg | 22 ++ .../assets/images/500-hills-right-shade.svg | 8 + .../templates/assets/images/500-hills-right.svg | 41 +++ .../https/templates/assets/images/500-road.svg | 97 ++++++ .../assets/images/maintenance-hills-left-shade.svg | 7 + .../assets/images/maintenance-hills-left.svg | 43 +++ .../images/maintenance-hills-right-shade.svg | 9 + .../assets/images/maintenance-hills-right.svg | 21 ++ .../assets/images/maintenance-tractor.svg | 367 ++++++++++++++++++++ bridgedb/https/templates/base.html | 1 + bridgedb/https/templates/error-404.html | 39 +++ bridgedb/https/templates/error-500.html | 36 ++ bridgedb/https/templates/error-503.html | 37 ++ setup.py | 3 +- test/test_https.py | 9 + test/test_https_server.py | 93 ++++- 22 files changed, 1434 insertions(+), 33 deletions(-)
[View Less]
1
0
0
0
[bridgedb/develop] Merge branch 'master' into develop
by isis@torproject.org
26 Jul '15
26 Jul '15
commit 2cc30af922744e6ae6db3c34535747499478ecaa Merge: e059d91 b9a0ad5 Author: Isis Lovecruft <isis(a)torproject.org> Date: Sun Jul 26 12:06:06 2015 +0000 Merge branch 'master' into develop bridgedb/https/server.py | 104 ++++-- bridgedb/https/templates/assets/css/error.css | 208 +++++++++++ .../templates/assets/images/404-excavator.svg | 260 ++++++++++++++ .../templates/assets/images/404-hills-left.svg | 20 ++ .../templates/assets/
…
[View More]
images/404-hills-right.svg | 34 ++ .../assets/images/500-hills-left-shade.svg | 8 + .../templates/assets/images/500-hills-left.svg | 22 ++ .../assets/images/500-hills-right-shade.svg | 8 + .../templates/assets/images/500-hills-right.svg | 41 +++ .../https/templates/assets/images/500-road.svg | 97 ++++++ .../assets/images/maintenance-hills-left-shade.svg | 7 + .../assets/images/maintenance-hills-left.svg | 43 +++ .../images/maintenance-hills-right-shade.svg | 9 + .../assets/images/maintenance-hills-right.svg | 21 ++ .../assets/images/maintenance-tractor.svg | 367 ++++++++++++++++++++ bridgedb/https/templates/base.html | 1 + bridgedb/https/templates/error-404.html | 39 +++ bridgedb/https/templates/error-500.html | 36 ++ bridgedb/https/templates/error-503.html | 37 ++ setup.py | 3 +- test/test_https.py | 9 + test/test_https_server.py | 93 ++++- 22 files changed, 1434 insertions(+), 33 deletions(-)
[View Less]
1
0
0
0
[bridgedb/develop] Change .coveragerc source files to new module structure.
by isis@torproject.org
26 Jul '15
26 Jul '15
commit fb7ed7d252f030649e4b61f04e191ff8fb334df4 Author: Isis Lovecruft <isis(a)torproject.org> Date: Sun Jul 26 12:07:13 2015 +0000 Change .coveragerc source files to new module structure. --- .coveragerc | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.coveragerc b/.coveragerc index ab8753b..2e29fae 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,7 +1,5 @@ [run] -source = - bridgedb - lib/bridgedb/test/test_* +source = bridgedb branch =
…
[View More]
True #parallel = True timid = True @@ -9,11 +7,9 @@ timid = True [report] modules = bridgedb omit = - */test* */_langs* */_version* */__init__* - */Tests* */sitecustomize* # Regexes for lines to exclude from report generation: exclude_lines =
[View Less]
1
0
0
0
[bridgedb/develop] Strangely, coverage timid=True is causing more strange problems.
by isis@torproject.org
26 Jul '15
26 Jul '15
commit 3625b15c26f5bc136aa32210620f99b691634b91 Author: Isis Lovecruft <isis(a)torproject.org> Date: Sun Jul 26 12:09:41 2015 +0000 Strangely, coverage timid=True is causing more strange problems. Rather than eliminating strange coverage problems, like it's supposed to do. --- .coveragerc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.coveragerc b/.coveragerc index 2e29fae..a6288f5 100644 --- a/.coveragerc +++ b/.coveragerc @@ -2,7 +2,7 @@
…
[View More]
source = bridgedb branch = True #parallel = True -timid = True +timid = False [report] modules = bridgedb
[View Less]
1
0
0
0
[bridgedb/develop] Prettier error pages. I hear folks get less mad about downtime that way.
by isis@torproject.org
26 Jul '15
26 Jul '15
commit 2afaa4368e2723172d336fcb3e5f4e4cf5051afe Author: Isis Lovecruft <isis(a)torproject.org> Date: Tue May 12 05:26:58 2015 +0000 Prettier error pages. I hear folks get less mad about downtime that way. --- bridgedb/https/server.py | 104 ++++-- bridgedb/https/templates/assets/css/error.css | 208 +++++++++++ .../templates/assets/images/404-excavator.svg | 260 ++++++++++++++ .../templates/assets/images/404-hills-left.svg | 20 ++ .../
…
[View More]
templates/assets/images/404-hills-right.svg | 34 ++ .../assets/images/500-hills-left-shade.svg | 8 + .../templates/assets/images/500-hills-left.svg | 22 ++ .../assets/images/500-hills-right-shade.svg | 8 + .../templates/assets/images/500-hills-right.svg | 41 +++ .../https/templates/assets/images/500-road.svg | 97 ++++++ .../assets/images/maintenance-hills-left-shade.svg | 7 + .../assets/images/maintenance-hills-left.svg | 43 +++ .../images/maintenance-hills-right-shade.svg | 9 + .../assets/images/maintenance-hills-right.svg | 21 ++ .../assets/images/maintenance-tractor.svg | 367 ++++++++++++++++++++ bridgedb/https/templates/base.html | 1 + bridgedb/https/templates/error-404.html | 39 +++ bridgedb/https/templates/error-500.html | 36 ++ bridgedb/https/templates/error-503.html | 37 ++ setup.py | 3 +- test/test_https.py | 9 + test/test_https_server.py | 93 ++++- 22 files changed, 1434 insertions(+), 33 deletions(-) diff --git a/bridgedb/https/server.py b/bridgedb/https/server.py index 2f5ed83..346d81f 100644 --- a/bridgedb/https/server.py +++ b/bridgedb/https/server.py @@ -132,20 +132,28 @@ def getClientIP(request, useForwardedHeader=False): return ip -def replaceErrorPage(error, template_name=None): +def replaceErrorPage(request, error, template_name=None, html=True): """Create a general error page for displaying in place of tracebacks. Log the error to BridgeDB's logger, and then display a very plain "Sorry! Something went wrong!" page to the client. + :type request: :api:`twisted.web.http.Request` + :param request: A ``Request`` object containing the HTTP method, full + URI, and any URL/POST arguments and headers present. :type error: :exc:`Exception` :param error: Any exeption which has occurred while attempting to retrieve - a template, render a page, or retrieve a resource. + a template, render a page, or retrieve a resource. :param str template_name: A string describing which template/page/resource - was being used when the exception occurred, - i.e. ``'index.html'``. - :returns: A string containing HTML to serve to the client (rather than - serving a traceback). + was being used when the exception occurred, i.e. ``'index.html'``. + :param bool html: If ``True``, return one of two HTML error pages. First, + we attempt to render a fancier error page. If that rendering failed, + or if **html** is ``False``, then we return a very simple HTML page + (without CSS, Javascript, images, etc.) which simply says + ``"Sorry! Something went wrong with your request."`` + :rtype: str + :returns: A string containing some content to serve to the client (rather + than serving a Twisted traceback). """ logging.error("Error while attempting to render %s: %s" % (template_name or 'template', @@ -164,16 +172,16 @@ def replaceErrorPage(error, template_name=None): # "Tor" # "Tor Browser" # - errmsg = _("Sorry! Something went wrong with your request.") - rendered = """<html> - <head> - <link href="/assets/bootstrap.min.css" rel="stylesheet"> - <link href="/assets/custom.css" rel="stylesheet"> - </head> - <body> - <p>{0}</p> - </body> - </html>""".format(errmsg) + errorMessage = _("Sorry! Something went wrong with your request.") + + if not html: + return bytes(errorMessage) + + try: + rendered = resource500.render(request) + except Exception as err: + logging.exception(err) + rendered = bytes(errorMessage) return rendered @@ -299,7 +307,49 @@ class CSPResource(resource.Resource): return redirectTo(request.uri, request) -class TranslatedTemplateResource(CSPResource): +class ErrorResource(CSPResource): + """A resource which explains that BridgeDB is undergoing maintenance, or + that some other (unexpected) error has occured. + """ + isLeaf = True + + def __init__(self, template=None, code=200): + """Create a :api:`twisted.web.resource.Resource` for an error page.""" + CSPResource.__init__(self) + self.template = template + self.code = code + + def render_GET(self, request): + self.setCSPHeader(request) + request.setHeader("Content-Type", "text/html; charset=utf-8") + request.setResponseCode(self.code) + + try: + template = lookup.get_template(self.template) + rendered = template.render() + except Exception as err: + rendered = replaceErrorPage(request, err, html=False) + + return rendered + + render_POST = render_GET + +resource404 = ErrorResource('error-404.html', code=404) +resource500 = ErrorResource('error-500.html', code=500) +maintenance = ErrorResource('error-503.html', code=503) + + +class CustomErrorHandlingResource(resource.Resource): + """A :api:`twisted.web.resource.Resource` which wraps the + :api:`twisted.web.resource.Resource.getChild` method in order to use + custom error handling pages. + """ + def getChild(self, path, request): + logging.debug("[404] %s" % request.uri) + return resource404 + + +class TranslatedTemplateResource(CustomErrorHandlingResource, CSPResource): """A generalised resource which uses gettext translations and Mako templates. """ @@ -322,7 +372,7 @@ class TranslatedTemplateResource(CSPResource): template = lookup.get_template(self.template) rendered = template.render(strings, rtl=rtl, lang=langs[0]) except Exception as err: # pragma: no cover - rendered = replaceErrorPage(err) + rendered = replaceErrorPage(request, err) request.setHeader("Content-Type", "text/html; charset=utf-8") return rendered @@ -354,7 +404,7 @@ class HowtoResource(TranslatedTemplateResource): TranslatedTemplateResource.__init__(self, 'howto.html') -class CaptchaProtectedResource(CSPResource): +class CaptchaProtectedResource(CustomErrorHandlingResource, CSPResource): """A general resource protected by some form of CAPTCHA.""" isLeaf = True @@ -447,7 +497,7 @@ class CaptchaProtectedResource(CSPResource): imgstr=imgstr, challenge_field=challenge) except Exception as err: - rendered = replaceErrorPage(err, 'captcha.html') + rendered = replaceErrorPage(request, err, 'captcha.html') request.setHeader("Content-Type", "text/html; charset=utf-8") return rendered @@ -476,7 +526,7 @@ class CaptchaProtectedResource(CSPResource): try: rendered = self.resource.render(request) except Exception as err: - rendered = replaceErrorPage(err) + rendered = replaceErrorPage(request, err) return rendered logging.debug("Client failed a CAPTCHA; returning redirect to %s" @@ -638,7 +688,7 @@ class ReCaptchaProtectedResource(CaptchaProtectedResource): try: rendered = self.resource.render(request) except Exception as err: # pragma: no cover - rendered = replaceErrorPage(err) + rendered = replaceErrorPage(request, err) else: logging.info("Client failed a CAPTCHA; redirecting to %s" % request.uri) @@ -780,7 +830,7 @@ class ReCaptchaProtectedResource(CaptchaProtectedResource): return NOT_DONE_YET -class BridgesResource(CSPResource): +class BridgesResource(CustomErrorHandlingResource, CSPResource): """This resource displays bridge lines in response to a request.""" isLeaf = True @@ -930,7 +980,7 @@ class BridgesResource(CSPResource): try: rendered = bytes('\n'.join(bridgeLines)) except Exception as err: - rendered = replaceErrorPage(err) + rendered = replaceErrorPage(request, err, html=False) else: request.setHeader("Content-Type", "text/html; charset=utf-8") qrcode = None @@ -948,7 +998,7 @@ class BridgesResource(CSPResource): answer=bridgeLines, qrcode=qrcode) except Exception as err: - rendered = replaceErrorPage(err) + rendered = replaceErrorPage(request, err) return rendered @@ -1008,13 +1058,15 @@ def addWebServer(config, distributor): reportViolations=config.CSP_REPORT_ONLY, useForwardedHeader=fwdHeaders) - root = resource.Resource() + root = CustomErrorHandlingResource() root.putChild('', index) root.putChild('robots.txt', robots) root.putChild('keys', keys) root.putChild('assets', assets) root.putChild('options', options) root.putChild('howto', howto) + root.putChild('maintenance', maintenance) + root.putChild('error', resource500) root.putChild(CSPResource.reportURI, csp) if config.RECAPTCHA_ENABLED: diff --git a/bridgedb/https/templates/assets/css/error.css b/bridgedb/https/templates/assets/css/error.css new file mode 100644 index 0000000..a1cf350 --- /dev/null +++ b/bridgedb/https/templates/assets/css/error.css @@ -0,0 +1,208 @@ +.application, +.application>.error, +.application>.error>.main { + /*min-height: 100vh*/ +} +.error, +.maintenance { + height: 100%; + overflow: hidden +} +.error .full-size, +.maintenance .full-size { + position: absolute; + top: 0; + height: 100%; + width: 100%; + overflow: hidden; + background-repeat: no-repeat +} +.main--error { + min-height: 100%; + overflow: hidden +} +.error-text, +.maintenance-text { + position: absolute; + top: 6%; + left: 0; + right: 0; + z-index: 10 +} +.error-text h1, +.maintenance-text h1 { + margin: 1em 0 .4em; + font-weight: 600; + /*color: #357389;*/ + font-size: 40px; + line-height: 1; + text-align: center +} +@media only screen and (min-width: 50.063em) { + .error-text h1, + .maintenance-text h1 { + margin: 1.5em 0 .4em; + font-size: 70px + } +} +.error-text p, +.maintenance-text p { + padding: 0 1em; + /*color: #9d9fa1;*/ + font-size: 18px; + text-align: center +} +.error-text a, +.maintenance-text a { + /*color: #9d9fa1*/ +} +.error-text a:focus, +.error-text a:hover, +.maintenance-text a:focus, +.maintenance-text a:hover { + /*color: #9d9fa1;*/ + /*text-decoration: underline*/ +} +.error500 .error-bg { + background: -webkit-linear-gradient(90deg, #dcc682, #dcc682 38.9%, #ccebf7 39%, #fff 60%, #fff); + background: linear-gradient(0deg, #dcc682, #dcc682 38.9%, #ccebf7 39%, #fff 60%, #fff) +} +.error500 .hill-left { + background-image: url("/assets/images/500-hills-left.svg"); + background-size: auto 10vh; + background-position: 0 58% +} +@media only screen and (min-width: 50.063em) { + .error500 .hill-left { + background-size: 38vw auto; + background-position: 0 58% + } +} +.error500 .hill-right { + background-image: url("/assets/images/500-hills-right.svg"); + background-size: 38vw auto; + background-position: 99% 59%; + display: none +} +@media only screen and (min-width: 50.063em) { + .error500 .hill-right { + display: block + } +} +.error500 .shadow-left { + background-image: url("/assets/images/500-hills-left-shade.svg"); + background-size: 24vw auto; + background-position: 6% 72% +} +.error500 .shadow-right { + background-image: url("/assets/images/500-hills-right-shade.svg"); + background-size: 17vw auto; + background-position: 95% 79% +} +.error500 .road { + background-image: url("/assets/images/500-road.svg"); + background-size: auto 27vh; + background-position: 42% 78% +} +@media only screen and (min-width: 50.063em) { + .error500 .road { + background-size: auto 40vh; + background-position: 42% 91.3% + } +} +.error404 .top { + position: absolute; + top: 0; + width: 100%; + z-index: 5 +} +.error404 .error-bg { + background: -webkit-linear-gradient(90deg, #bbcac6, #bbcac6 38.9%, #ccebf7 39%, #fff 60%, #fff); + background: linear-gradient(0deg, #bbcac6, #bbcac6 38.9%, #ccebf7 39%, #fff 60%, #fff) +} +.error404 .hill-left { + display: none; + background-image: url("/assets/images/404-hills-left.svg"); + background-size: 30vw auto; + background-position: 0 58% +} +@media only screen and (min-width: 50.063em) { + .error404 .hill-left { + display: block + } +} +.error404 .hill-right { + background-image: url("/assets/images/404-hills-right.svg"); + background-size: auto 30vw; + background-position: 99% 58% +} +@media only screen and (min-width: 50.063em) { + .error404 .hill-right { + background-size: 50vw auto; + background-position: 99% 58% + } +} +@media only screen and (min-width: 64.063em) { + .error404 .hill-right { + background-size: 50vw auto; + background-position: 99% 54% + } +} +.error404 .error-excavator { + background-image: url("/assets/images/404-excavator.svg"); + background-size: auto 25vh; + background-position: 71% 83% +} +.maintenance .maintenance-bg { + background: -webkit-linear-gradient(90deg, #8cad7d, #8cad7d 38.9%, #ccebf7 39%, #fff 60%, #fff); + background: linear-gradient(0deg, #8cad7d, #8cad7d 38.9%, #ccebf7 39%, #fff 60%, #fff) +} +.maintenance .hill-left { + background-image: url("/assets/images/maintenance-hills-left.svg"); + background-size: 80vw auto; + background-position: 0 58% +} +@media only screen and (min-width: 50.063em) { + .maintenance .hill-left { + background-size: 58vw auto; + background-position: 0 58% + } +} +@media only screen and (min-width: 64.063em) { + .maintenance .hill-left { + background-size: 50vw auto; + background-position: 0 56% + } +} +.maintenance .hill-right { + background-image: url("/assets/images/maintenance-hills-right.svg"); + background-size: 38vw auto; + background-position: 99% 59%; + display: none +} +@media only screen and (min-width: 50.063em) { + .maintenance .hill-right { + display: block + } +} +.maintenance .shadow-left { + background-image: url("/assets/images/maintenance-hills-left-shade.svg"); + background-size: 24vw auto; + background-position: 6% 72% +} +.maintenance .shadow-right { + background-image: url("/assets/images/maintenance-hills-right-shade.svg"); + background-size: 17vw auto; + background-position: 95% 79% +} +.maintenance .maintenance-tractor { + background-image: url("/assets/images/maintenance-tractor.svg"); + background-size: 87vw auto; + background-position: 63% 87% +} +@media only screen and (min-width: 50.063em) { + .maintenance .maintenance-tractor { + background-size: auto 44vh; + background-position: 63% 83% + } +} diff --git a/bridgedb/https/templates/assets/images/404-excavator.svg b/bridgedb/https/templates/assets/images/404-excavator.svg new file mode 100644 index 0000000..be053b4 --- /dev/null +++ b/bridgedb/https/templates/assets/images/404-excavator.svg @@ -0,0 +1,260 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="428.987px" height="182.097px" viewBox="0 0 428.987 182.097" enable-background="new 0 0 428.987 182.097" + xml:space="preserve"> +<g> + <polygon fill="#C9D7D4" points="394,127.112 276.388,93.224 277.151,93.225 265.363,73.113 255.724,73.113 251.999,65.205 + 222.836,65.205 209.363,79.792 194.416,79.792 179.263,93.112 131.647,93.112 122.503,85.798 117.563,85.798 109.096,75.213 + 84.21,75.213 63.913,93.112 49,93.112 0,133.112 45.016,163.097 178,163.097 223,182.097 403,182.097 428.987,154.112 "/> + <polygon fill="#C1D0CE" points="163.665,143.162 145.467,143.162 153.893,135.828 165.067,134.812 170.308,130.252 + 178.498,130.252 "/> + <polygon fill="#CFDEDD" points="182.445,127.289 195.292,137.871 204.185,137.871 214.396,143.162 219.423,143.162 + 205.168,135.837 197.48,135.837 184.302,125.252 160.513,125.252 156.945,127.289 "/> + <polygon fill="#C1D0CE" points="76.928,93.123 68.737,93.123 83.57,80.213 91.761,80.213 "/> + <polygon fill="#CFDEDD" points="108.278,77.25 116.532,87.832 122.246,87.832 128.808,93.123 132.037,93.123 122.878,85.798 + 117.938,85.798 109.471,75.213 84.178,75.213 81.886,77.25 "/> + <polygon fill="#CFDEDD" points="206.86,82.795 209.363,79.792 194.416,79.792 191,82.795 "/> + <polygon fill="#C1D0CE" points="210.364,87.8 223.837,73.213 232.984,73.213 214.967,93.202 189.338,93.145 195.417,87.8 "/> + <polygon fill="#CFDEDD" points="249.997,68.208 253.722,76.116 263.361,76.116 273.387,93.221 277.151,93.225 265.363,73.113 + 255.724,73.113 251.999,65.205 222.836,65.205 220.062,68.208 "/> +</g> +<g> + <path fill="#828E88" d="M332.502,144.806l-0.859-2.127c-0.063-0.153-0.24-0.229-0.393-0.165l-0.524,0.214l0.576-0.533 + c0.122-0.114,0.13-0.308,0.018-0.43l-1.546-1.688c-0.113-0.121-0.306-0.129-0.428-0.017l-0.332,0.308 + c-0.026-0.028-0.053-0.058-0.08-0.085l0.316-0.521c0.088-0.142,0.042-0.329-0.099-0.417l-1.948-1.196 + c-0.141-0.087-0.328-0.042-0.414,0.101l-0.193,0.317c-0.018-0.01-0.035-0.02-0.054-0.028l0.09-0.414 + c0.035-0.164-0.069-0.326-0.231-0.36l-2.232-0.48c-0.16-0.036-0.322,0.069-0.357,0.232l-0.06,0.276 + c-0.049-0.003-0.094-0.005-0.139-0.006l-0.012-0.317c-0.006-0.167-0.146-0.299-0.312-0.293l-2.281,0.083 + c-0.165,0.005-0.296,0.146-0.291,0.313l0.009,0.226l-0.245,0.009l-0.011-0.294c-0.005-0.166-0.146-0.299-0.311-0.292l-2.282,0.081 + c-0.164,0.005-0.296,0.146-0.29,0.314l0.01,0.285l-0.257,0.008l-0.01-0.301c-0.006-0.166-0.145-0.298-0.312-0.292l-2.281,0.083 + c-0.164,0.006-0.296,0.147-0.29,0.313l0.011,0.291l-0.269,0.009l-0.009-0.272c-0.007-0.166-0.146-0.299-0.312-0.292l-2.281,0.082 + c-0.164,0.005-0.296,0.147-0.29,0.313l0.009,0.264l-0.238,0.007l-0.008-0.21c-0.006-0.171-0.149-0.306-0.319-0.299l-2.343,0.084 + c-0.17,0.006-0.305,0.15-0.299,0.322l0.007,0.2l-0.198,0.007l-0.01-0.252c-0.006-0.176-0.153-0.312-0.326-0.306l-2.388,0.086 + c-0.174,0.006-0.311,0.154-0.305,0.328l0.008,0.241l-0.279,0.009l-0.008-0.253c-0.007-0.178-0.156-0.318-0.335-0.312l-2.443,0.089 + c-0.177,0.005-0.316,0.156-0.311,0.336l0.008,0.242l-0.261,0.009l-0.011-0.287c-0.006-0.187-0.163-0.333-0.348-0.327l-2.547,0.092 + c-0.186,0.008-0.332,0.164-0.325,0.351l0.011,0.277l-0.407,0.014l-0.009-0.304c-0.008-0.187-0.164-0.333-0.35-0.326l-2.547,0.092 + c-0.185,0.006-0.331,0.164-0.325,0.351l0.011,0.293l-0.227,0.007l-0.012-0.325c-0.007-0.166-0.146-0.298-0.312-0.292l-2.28,0.082 + c-0.166,0.006-0.297,0.147-0.291,0.312l0.011,0.318l-0.266,0.009l-0.011-0.299c-0.006-0.166-0.146-0.299-0.312-0.293l-2.282,0.083 + c-0.164,0.006-0.296,0.147-0.29,0.314l0.009,0.288l-0.236,0.008l-0.008-0.236c-0.007-0.171-0.15-0.306-0.32-0.3l-2.344,0.085 + c-0.17,0.006-0.304,0.15-0.298,0.322l0.007,0.226l-0.198,0.008l-0.01-0.277c-0.007-0.176-0.153-0.312-0.327-0.307l-2.388,0.085 + c-0.174,0.006-0.311,0.153-0.305,0.329l0.01,0.269l-0.279,0.009l-0.01-0.279c-0.006-0.179-0.156-0.318-0.335-0.313l-2.442,0.089 + c-0.178,0.006-0.318,0.157-0.312,0.336l0.009,0.27l-0.261,0.008l-0.011-0.313c-0.006-0.186-0.162-0.333-0.348-0.327l-2.548,0.092 + c-0.185,0.007-0.331,0.164-0.324,0.351l0.011,0.304l-0.406,0.014l-0.012-0.329c-0.007-0.188-0.164-0.334-0.348-0.327l-2.548,0.092 + c-0.186,0.007-0.331,0.164-0.325,0.351l0.012,0.319l-0.374,0.012l-0.083-0.414c-0.037-0.184-0.216-0.303-0.397-0.265l-1.949,0.532 + c-0.182,0.036-0.3,0.217-0.264,0.399l0.129,0.641c-0.172,0.068-0.349,0.142-0.527,0.219l-0.331-0.647 + c-0.084-0.165-0.288-0.232-0.453-0.146l-2.268,1.171c-0.164,0.085-0.231,0.29-0.146,0.456l0.394,0.772 + c-0.097,0.071-0.19,0.145-0.286,0.217l-0.603-0.639c-0.146-0.155-0.386-0.155-0.533,0l-2.023,2.15 + c-0.146,0.153-0.146,0.408,0,0.563l0.636,0.675c-0.089,0.139-0.175,0.278-0.258,0.423l-0.689-0.362 + c-0.188-0.1-0.418-0.021-0.509,0.173l-1.282,2.725c-0.091,0.194-0.011,0.433,0.178,0.532l1.031,0.543 + c-0.015,0.093-0.027,0.188-0.04,0.282c-0.053-0.022-0.111-0.034-0.172-0.029l-1.201,0.107c-0.212,0.02-0.373,0.211-0.355,0.424 + l0.227,3.034c0.015,0.215,0.201,0.374,0.414,0.354l1.146-0.103c0.031,0.163,0.065,0.323,0.104,0.48l-0.976,0.419 + c-0.196,0.084-0.294,0.317-0.219,0.517l1.061,2.815c0.075,0.201,0.298,0.296,0.494,0.212l1.123-0.481 + c0.017-0.006,0.029-0.021,0.044-0.029c0.051,0.075,0.102,0.15,0.153,0.224c-0.014,0.014-0.031,0.02-0.043,0.035l-0.82,0.975 + c-0.139,0.163-0.123,0.417,0.031,0.563l2.118,2.008c0.154,0.147,0.395,0.135,0.533-0.029l0.725-0.86 + c0.093,0.074,0.187,0.149,0.277,0.221l-0.186,0.791c-0.051,0.208,0.077,0.428,0.281,0.489l2.245,0.802 + c0.155,0.047,13.595-0.089,13.595-0.089l0.656-1.729l42.13-2.704l4.654-1.203l2.609-4.277l0.764-4.83l-3.083-5.14l0.113,0.062 + l1.17,0.933l0.815,2.016c0.062,0.154,0.239,0.229,0.394,0.166l0.907-0.372C332.49,145.137,332.564,144.96,332.502,144.806z"/> + <path fill="#94A39E" d="M333.067,150.386l-0.819-0.226c0.008-0.061,0.018-0.121,0.023-0.185l0.715-0.049 + c0.17-0.012,0.302-0.161,0.29-0.334l-0.159-2.371c-0.012-0.172-0.162-0.303-0.333-0.292l-0.748,0.05 + c-0.012-0.047-0.021-0.095-0.032-0.141l0.666-0.296c0.156-0.069,0.229-0.256,0.159-0.413l-0.954-2.175 + c-0.068-0.157-0.254-0.229-0.411-0.16l-0.645,0.286c-0.034-0.054-0.067-0.107-0.101-0.161l0.571-0.6 + c0.119-0.125,0.115-0.325-0.009-0.444l-1.706-1.644c-0.124-0.119-0.323-0.116-0.44,0.01l-0.438,0.46 + c-0.041-0.031-0.082-0.06-0.124-0.089l0.253-0.627c0.063-0.161-0.013-0.344-0.172-0.409l-2.189-0.892 + c-0.157-0.063-0.341,0.013-0.405,0.173l-0.227,0.561c-0.05-0.01-0.101-0.016-0.151-0.023l0.031-0.585 + c0.008-0.171-0.125-0.32-0.297-0.329l-2.359-0.123c-0.172-0.009-0.318,0.124-0.328,0.297l-0.036,0.707l-0.229,0.016l-0.046-0.766 + c-0.011-0.172-0.159-0.305-0.33-0.295l-2.357,0.147c-0.171,0.01-0.303,0.16-0.292,0.333l0.048,0.781l-0.247,0.016l-0.044-0.728 + c-0.012-0.177-0.164-0.312-0.34-0.303l-2.422,0.151c-0.176,0.011-0.311,0.165-0.301,0.342l0.045,0.743l-0.205,0.015l-0.048-0.8 + c-0.012-0.181-0.166-0.318-0.347-0.308l-2.469,0.151c-0.179,0.013-0.318,0.169-0.307,0.35l0.05,0.815l-0.289,0.02l-0.05-0.829 + c-0.011-0.185-0.171-0.326-0.354-0.314l-2.524,0.157c-0.185,0.011-0.325,0.172-0.314,0.356l0.051,0.844l-0.289,0.021l-0.053-0.867 + c-0.01-0.171-0.158-0.304-0.33-0.292l-2.359,0.146c-0.171,0.011-0.303,0.16-0.292,0.333l0.055,0.881l-0.277,0.019l-0.052-0.863 + c-0.011-0.174-0.16-0.306-0.331-0.294l-2.357,0.145c-0.171,0.011-0.303,0.161-0.292,0.333l0.052,0.881l-0.244,0.016l-0.051-0.826 + c-0.01-0.176-0.162-0.313-0.338-0.302l-2.424,0.149c-0.175,0.012-0.311,0.166-0.301,0.343l0.052,0.842l-0.204,0.014l-0.055-0.897 + c-0.012-0.181-0.168-0.319-0.347-0.308l-2.47,0.152c-0.179,0.011-0.317,0.168-0.306,0.349l0.056,0.913l-0.288,0.021l-0.058-0.927 + c-0.011-0.185-0.17-0.326-0.354-0.315l-2.524,0.157c-0.185,0.011-0.325,0.171-0.313,0.356l0.056,0.943l-0.269,0.018l-0.062-0.994 + c-0.012-0.191-0.178-0.339-0.369-0.327l-2.632,0.163c-0.191,0.013-0.339,0.18-0.327,0.373l0.061,1.009l-0.418,0.028l-0.063-1.04 + c-0.012-0.192-0.178-0.34-0.369-0.328l-2.633,0.163c-0.19,0.012-0.338,0.18-0.326,0.372l0.062,1.058l-0.465,0.03l-0.061-1.021 + c-0.011-0.191-0.178-0.34-0.368-0.328l-2.635,0.163c-0.192,0.012-0.34,0.179-0.327,0.372l0.067,1.136 + c0.002,0.009,0.007,0.014,0.007,0.022c-0.098,0.023-0.195,0.04-0.292,0.066c-0.003-0.006-0.003-0.014-0.005-0.02l-0.504-1.021 + c-0.084-0.173-0.295-0.242-0.466-0.157l-2.363,1.181c-0.172,0.086-0.243,0.297-0.157,0.471l0.438,0.887 + c-0.082,0.052-0.163,0.104-0.242,0.159l-0.722-0.724c-0.136-0.137-0.357-0.137-0.493,0l-1.864,1.878 + c-0.134,0.137-0.135,0.36,0.001,0.496l0.605,0.608c-0.09,0.117-0.171,0.236-0.255,0.355l-0.644-0.321 + c-0.172-0.086-0.382-0.014-0.467,0.158l-1.174,2.377c-0.086,0.173-0.014,0.384,0.157,0.47l0.806,0.403 + c-0.017,0.1-0.027,0.2-0.038,0.299l-1.122,0.094c-0.19,0.016-0.334,0.187-0.318,0.378l0.215,2.645 + c0.015,0.191,0.185,0.336,0.375,0.321l1.085-0.09c0.029,0.141,0.055,0.282,0.089,0.419l-0.916,0.371 + c-0.178,0.072-0.265,0.277-0.192,0.456l0.982,2.461c0.071,0.179,0.277,0.266,0.454,0.195l1.004-0.407 + c0.051,0.074,0.101,0.146,0.154,0.217l-0.728,0.82c-0.128,0.145-0.115,0.367,0.027,0.496l1.968,1.768 + c0.142,0.13,0.363,0.116,0.49-0.027l0.755-0.851c0.005-0.005,0.006-0.01,0.009-0.015c0.104,0.058,0.207,0.115,0.316,0.167 + l-0.255,0.904c-0.052,0.186,0.056,0.38,0.24,0.432l2.54,0.722c0.186,0.052,0.379-0.058,0.43-0.243l0.26-0.923 + c0.092,0.01,0.178,0.025,0.27,0.034l0.056,0.004c0.015,0.001,0.043,0,0.062,0.001l0.058,0.796c0.013,0.191,0.181,0.338,0.372,0.324 + l2.631-0.193c0.191-0.014,0.337-0.183,0.323-0.374l-0.054-0.747l0.337-0.018l0.057,0.806c0.013,0.19,0.182,0.337,0.373,0.322 + l2.633-0.188c0.191-0.014,0.337-0.184,0.322-0.375l-0.053-0.744l0.259-0.014l0.057,0.786c0.014,0.192,0.181,0.339,0.372,0.325 + l2.632-0.192c0.189-0.015,0.335-0.183,0.322-0.375l-0.052-0.723l0.27-0.016l0.051,0.72c0.014,0.185,0.176,0.324,0.357,0.311 + l2.524-0.184c0.184-0.014,0.323-0.175,0.31-0.358l-0.048-0.659l0.273-0.015l0.045,0.655c0.015,0.192,0.182,0.339,0.373,0.324 + l2.631-0.192c0.191-0.014,0.337-0.182,0.322-0.374l-0.042-0.593l0.338-0.017l0.046,0.647c0.014,0.192,0.181,0.338,0.372,0.325 + l2.632-0.19c0.191-0.015,0.336-0.184,0.322-0.375l-0.041-0.586l0.26-0.014l0.045,0.629c0.014,0.192,0.182,0.339,0.372,0.325 + l2.632-0.193c0.191-0.015,0.337-0.183,0.322-0.375l-0.041-0.565l0.271-0.014l0.041,0.561c0.011,0.185,0.173,0.326,0.356,0.312 + l2.524-0.185c0.183-0.014,0.322-0.175,0.31-0.358l-0.036-0.503l0.289-0.015l0.033,0.485c0.013,0.179,0.171,0.316,0.35,0.303 + l2.468-0.179c0.179-0.013,0.316-0.171,0.303-0.352l-0.039-0.56l0.282-0.028l0.042,0.582c0.012,0.179,0.166,0.312,0.343,0.299 + l2.42-0.177c0.175-0.014,0.31-0.169,0.296-0.345l-0.047-0.659l0.271-0.026l0.045,0.628c0.012,0.172,0.163,0.303,0.333,0.29 + l2.357-0.171c0.171-0.013,0.301-0.162,0.288-0.336l-0.051-0.703l0.345-0.034l0.052,0.711c0.012,0.174,0.163,0.304,0.334,0.291 + l2.357-0.17c0.17-0.013,0.301-0.163,0.288-0.336l-0.057-0.789l0.169-0.017l0.09,0.656c0.025,0.171,0.184,0.291,0.354,0.267 + l2.339-0.33c0.171-0.024,0.29-0.183,0.267-0.355l-0.117-0.834c0.04-0.016,0.082-0.029,0.121-0.046l0.524,0.751 + c0.099,0.141,0.294,0.176,0.435,0.076l1.934-1.369c0.14-0.1,0.174-0.295,0.075-0.437l-0.506-0.723 + c0.049-0.05,0.096-0.102,0.145-0.151l0.787,0.483c0.146,0.091,0.339,0.045,0.429-0.103l1.235-2.025 + c0.09-0.147,0.045-0.343-0.103-0.433l-0.671-0.415c0.039-0.087,0.082-0.171,0.12-0.261l0.791,0.218 + c0.167,0.045,0.34-0.054,0.386-0.221l0.624-2.293C333.332,150.605,333.233,150.432,333.067,150.386z M282.141,160.61l0.02-0.552 + c-4.448-0.405-7.001-3.354-7.189-8.305c-0.057-1.552,0.624-3.175,1.92-4.571c1.69-1.823,4.179-3,6.51-3.072l40.068-2.693 + c0.52-0.022,0.873-0.032,1.248-0.016c0.152,0.007,0.311,0.02,0.486,0.035c1.715,0.156,3.303,1.182,4.472,2.886 + c1.111,1.62,1.676,3.679,1.51,5.51c-0.349,3.839-2.96,6.902-6.202,7.281l-14.086,1.387l-26.629,1.43l-0.078,0.009 + c-0.21,0.038-1.72,0.134-2.024,0.12L282.141,160.61z"/> + <path fill="#767F79" d="M331.731,149.882c0.365-4.032-2.486-8.631-6.479-8.995c-0.621-0.056-1.018-0.055-1.808-0.021l-40.08,2.695 + c-4.442,0.137-9.101,4.009-8.941,8.214c0.203,5.341,3.003,8.407,7.687,8.833c0.265,0.025,1.962-0.082,2.187-0.127l26.628-1.43 + l14.11-1.388C328.479,157.26,331.354,154.038,331.731,149.882z"/> + <path fill="#707973" d="M328.651,156.044c1.67-1.409,2.849-3.608,3.08-6.162c0.365-4.032-2.486-8.631-6.479-8.995 + c-0.621-0.056-1.018-0.055-1.808-0.021l-40.08,2.695c-1.606,0.049-3.239,0.589-4.663,1.453L328.651,156.044z"/> + <path fill="#94A39E" d="M325.508,145.672c-1.182-0.65-3.09-0.605-4.241,0.098c-0.553,0.338-1.438,1.205-1.438,1.205l-34.933,2.436 + c-0.366-0.518-0.817-0.958-1.304-1.228c-1.183-0.65-3.091-0.605-4.241,0.098c-1.151,0.704-2.069,2.388-2.04,3.743 + c0.029,1.354,1.021,2.994,2.2,3.646c1.183,0.651,3.091,0.606,4.241-0.098c0.457-0.279,0.874-0.716,1.213-1.223l35.136-2.448 + c0.373,0.53,0.831,0.983,1.328,1.258c1.181,0.65,3.089,0.607,4.24-0.097s2.07-2.389,2.04-3.744 + C327.679,147.963,326.689,146.322,325.508,145.672z"/> + <polyline fill="#B4BBA6" points="225.113,26.793 221.273,32.681 292.776,76.062 311.414,118.406 316.369,104.793 298.303,66.471 + 225.19,25.084 "/> + <polygon fill="#BFC3A6" points="226.825,22.132 225.113,26.793 297.323,71.526 314.001,107.146 321.7,98.964 309.949,59.018 "/> + <path fill="#A6AA92" d="M332.548,97.035c0.626-1.238,1.054-1.915,1.054-1.915l-15.787,1.756c0,0-0.3,0.526-0.76,1.507l15.311-1.365 + L332.548,97.035z"/> + <path fill="#B6B99C" d="M354.62,97.083l-21.019-1.963c0,0-0.428,0.677-1.054,1.915l22.106,2.15L354.62,97.083z"/> + <polygon fill="#BFC3A6" points="177.713,80.935 231.844,21.957 233.559,0.552 221.286,0 176.322,72.525 "/> + <polygon fill="#B4BBA6" points="214.881,2.502 173.011,68.087 178.215,75.15 221.286,0 "/> + <path fill="#828E88" d="M154.559,50.259l-19.388,6.167c0,0-12.852,5.93-12.029,25.848c0.817,19.812,2.029,29.532,2.029,29.532 + l15.491-0.194l1.359-30.268L154.559,50.259z"/> + <path fill="#94A39E" d="M168.724,56.053c-2.498-3.515-6.896-7.101-11.574-6.415c-6.17,0.904-11.164,3.425-13.564,8.462 + c-6.903,11.874-2.923,53.512-2.923,53.512l2.018-0.584l-0.543-9.717c0.14-9.815,12.638-13.326,12.638-13.326l27.521-8.361 + C176.204,65.405,168.724,56.053,168.724,56.053z"/> + <polygon fill="#707973" points="308.684,135.338 308.762,145.788 340.373,141.313 340.074,135.729 "/> + <g> + <path fill="#828E88" d="M385.802,148.452l-1.01-2.493c-0.073-0.182-0.28-0.269-0.461-0.196l-0.614,0.252l0.676-0.626 + c0.143-0.134,0.152-0.359,0.021-0.504l-1.813-1.979c-0.133-0.144-0.356-0.153-0.5-0.02l-0.846,0.783 + c-0.144,0.133-0.152,0.358-0.02,0.502l1.812,1.981c0.044,0.047,0.097,0.073,0.153,0.092c-0.13,0.094-0.191,0.263-0.128,0.418 + l1.009,2.494c0.073,0.182,0.282,0.271,0.463,0.196l1.063-0.438C385.788,148.841,385.875,148.633,385.802,148.452z"/> + <path fill="#828E88" d="M376.8,141.704l1.453,0.313c0.071,0.015,0.14,0.002,0.203-0.024c0.018,0.098,0.07,0.188,0.16,0.244 + l2.285,1.402c0.165,0.102,0.385,0.049,0.487-0.118l0.598-0.986c0.103-0.167,0.049-0.387-0.117-0.489l-2.284-1.402 + c-0.167-0.104-0.384-0.05-0.487,0.118l-0.332,0.547l0.149-0.694c0.04-0.191-0.082-0.382-0.272-0.423l-2.617-0.564 + c-0.189-0.041-0.379,0.082-0.421,0.273l-0.156,0.735l-0.063-0.05l-0.025-0.741c-0.008-0.195-0.172-0.35-0.365-0.342l-2.676,0.095 + c-0.194,0.008-0.348,0.173-0.342,0.369l0.01,0.265l-0.289,0.01l-0.011-0.346c-0.007-0.194-0.172-0.349-0.365-0.343l-2.677,0.096 + c-0.193,0.007-0.347,0.173-0.341,0.368l0.013,0.336l-0.301,0.01l-0.013-0.353c-0.007-0.195-0.171-0.35-0.366-0.343l-2.676,0.096 + c-0.193,0.007-0.347,0.173-0.341,0.368l0.013,0.342l-0.312,0.01l-0.012-0.319c-0.007-0.194-0.172-0.35-0.365-0.343l-2.676,0.096 + c-0.194,0.007-0.349,0.174-0.342,0.368l0.011,0.31l-0.279,0.009l-0.009-0.245c-0.007-0.201-0.175-0.359-0.375-0.353l-2.749,0.099 + c-0.2,0.007-0.356,0.177-0.351,0.378l0.009,0.235l-0.233,0.008l-0.01-0.295c-0.007-0.205-0.18-0.366-0.383-0.359l-2.803,0.1 + c-0.203,0.009-0.364,0.182-0.357,0.387l0.011,0.283l-0.328,0.011l-0.01-0.297c-0.008-0.209-0.184-0.374-0.392-0.367l-2.867,0.104 + c-0.208,0.009-0.371,0.186-0.364,0.395l0.01,0.285l-0.307,0.01l-0.012-0.338c-0.007-0.219-0.19-0.391-0.408-0.382l-2.989,0.106 + c-0.217,0.007-0.389,0.193-0.381,0.41l0.013,0.326l-0.477,0.017l-0.013-0.356c-0.008-0.217-0.192-0.39-0.409-0.383l-2.986,0.108 + c-0.218,0.007-0.389,0.191-0.382,0.41l0.013,0.345l-0.267,0.009l-0.014-0.382c-0.007-0.197-0.172-0.351-0.366-0.344l-2.675,0.097 + c-0.195,0.007-0.348,0.172-0.342,0.367l0.014,0.372l-0.312,0.011l-0.013-0.35c-0.007-0.197-0.171-0.35-0.366-0.343l-2.676,0.096 + c-0.193,0.006-0.348,0.171-0.34,0.368l0.011,0.339l-0.28,0.009l-0.009-0.276c-0.008-0.201-0.176-0.358-0.375-0.352l-2.749,0.099 + c-0.2,0.007-0.357,0.178-0.351,0.378l0.009,0.266l-0.231,0.007l-0.012-0.323c-0.008-0.205-0.179-0.367-0.384-0.359l-2.802,0.1 + c-0.204,0.007-0.364,0.18-0.358,0.386l0.012,0.314l-0.327,0.011l-0.011-0.327c-0.008-0.21-0.184-0.375-0.392-0.367l-2.866,0.103 + c-0.209,0.007-0.373,0.186-0.365,0.396l0.011,0.314l-0.307,0.01l-0.013-0.369c-0.008-0.217-0.191-0.39-0.408-0.383l-2.989,0.109 + c-0.217,0.007-0.388,0.192-0.38,0.41l0.012,0.357l-0.476,0.015l-0.015-0.386c-0.008-0.22-0.191-0.391-0.409-0.383l-2.986,0.107 + c-0.217,0.007-0.388,0.192-0.381,0.41l0.014,0.374l-0.439,0.016l-0.098-0.486c-0.044-0.215-0.253-0.354-0.466-0.311l-2.932,0.595 + c-0.213,0.045-0.353,0.255-0.309,0.47l0.15,0.751c-0.202,0.08-0.408,0.167-0.616,0.258l-0.389-0.761 + c-0.1-0.194-0.339-0.271-0.531-0.172l-2.661,1.373c-0.193,0.101-0.271,0.341-0.172,0.535l0.463,0.906 + c-0.112,0.083-0.224,0.168-0.335,0.256l-0.708-0.75c-0.171-0.182-0.453-0.183-0.624,0l-2.376,2.521 + c-0.171,0.184-0.171,0.481,0.002,0.662l0.745,0.792c-0.104,0.162-0.206,0.326-0.304,0.496l-0.808-0.425 + c-0.222-0.115-0.489-0.025-0.598,0.202l-1.503,3.197c-0.107,0.228-0.013,0.509,0.207,0.625l1.212,0.637 + c-0.019,0.108-0.033,0.219-0.049,0.33c-0.062-0.024-0.129-0.039-0.202-0.033l-1.408,0.126c-0.247,0.022-0.437,0.245-0.417,0.497 + l0.265,3.559c0.02,0.252,0.238,0.438,0.487,0.416l1.346-0.121c0.036,0.191,0.074,0.38,0.12,0.565l-1.145,0.49 + c-0.229,0.1-0.346,0.372-0.257,0.607l1.246,3.303c0.089,0.236,0.348,0.347,0.578,0.248l1.319-0.565 + c0.02-0.008,0.032-0.023,0.05-0.034c0.061,0.089,0.12,0.177,0.182,0.264c-0.019,0.014-0.037,0.022-0.052,0.04l-0.964,1.142 + c-0.161,0.193-0.144,0.491,0.037,0.663l2.485,2.356c0.184,0.172,0.464,0.155,0.625-0.036l0.853-1.01 + c0.107,0.089,0.217,0.175,0.324,0.26l-0.22,0.927c-0.058,0.245,0.091,0.503,0.33,0.574l3.278,0.97 + c0.183,0.054,15.949-0.103,15.949-0.103l0.771-2.029l49.419-3.173l5.462-1.411l3.062-5.017l0.895-5.667l-3.744-6.243 + L376.8,141.704z"/> + </g> + <path fill="#B4BBA6" d="M327.736,131.17l4.984-34.432l-15.647,1.63c0,0-7.701,12.955-5.316,32.196l-9.961-0.378l0.35,5.356 + l26.518,1.191l-0.561-5.551L327.736,131.17z"/> + <g> + <path fill="#828E88" d="M319.786,99.882c-0.603,0.054-1.354,0.521-1.668,1.038c0,0-6.353,10.418-4.044,27.862l9.647,0.558 + c0.604,0.035,0.979-0.417,0.833-1.004c0,0-1.326-5.333-0.212-14.279c0.562-4.521,1.532-9.666,4.632-15.004L319.786,99.882z"/> + </g> + <path fill="#767F79" d="M384.897,154.409c0.429-4.73-2.917-10.125-7.601-10.554c-0.729-0.064-1.192-0.064-2.12-0.024l-47.02,3.161 + c-5.21,0.162-10.675,4.702-10.487,9.636c0.237,6.267,3.522,9.862,9.017,10.363c0.311,0.028,2.302-0.095,2.565-0.15l31.236-1.677 + l16.554-1.628C381.08,163.063,384.454,159.285,384.897,154.409z"/> + <path fill="#707973" d="M381.284,161.638c1.96-1.655,3.341-4.232,3.613-7.229c0.429-4.73-2.917-10.125-7.601-10.554 + c-0.729-0.064-1.192-0.064-2.12-0.024l-47.02,3.161c-1.884,0.059-3.798,0.691-5.47,1.706L381.284,161.638z"/> + <path fill="#828E88" d="M374.678,140.227c0,0,6.621-0.738,9.856,7.691l-2.781-2.22l-4.437-2.339L374.678,140.227z"/> + <path fill="#94A39E" d="M386.465,155l-1.055-0.288c0.008-0.064,0.019-0.124,0.025-0.188l0.933-0.063 + c0.2-0.015,0.354-0.19,0.34-0.393l-0.185-2.781c-0.015-0.202-0.19-0.355-0.391-0.343l-0.939,0.064 + c-0.011-0.049-0.024-0.096-0.037-0.145l0.841-0.372c0.184-0.082,0.268-0.301,0.187-0.486l-1.119-2.55 + c-0.081-0.185-0.298-0.27-0.481-0.188l-0.813,0.36c-0.035-0.055-0.073-0.106-0.109-0.161l0.72-0.756 + c0.139-0.146,0.135-0.381-0.012-0.521l-1.999-1.929c-0.146-0.14-0.38-0.135-0.519,0.011l-0.598,0.628 + c-0.036-0.026-0.072-0.05-0.106-0.076l0.343-0.851c0.076-0.188-0.015-0.404-0.201-0.48l-2.569-1.047 + c-0.186-0.076-0.4,0.016-0.476,0.202l-0.302,0.75c-0.05-0.009-0.099-0.014-0.146-0.022l0.041-0.781 + c0.011-0.202-0.146-0.378-0.348-0.389l-2.767-0.144c-0.201-0.011-0.375,0.146-0.386,0.349l-0.048,0.927l-0.255,0.018l-0.062-0.993 + c-0.012-0.204-0.187-0.358-0.388-0.346l-2.766,0.172c-0.201,0.011-0.355,0.187-0.343,0.389l0.062,1.012l-0.288,0.021l-0.059-0.95 + c-0.013-0.208-0.191-0.366-0.397-0.353l-2.842,0.176c-0.206,0.013-0.365,0.193-0.352,0.4l0.059,0.968l-0.241,0.016l-0.062-1.032 + c-0.014-0.212-0.195-0.374-0.406-0.361l-2.896,0.18c-0.211,0.014-0.373,0.196-0.36,0.408l0.064,1.053l-0.338,0.023l-0.064-1.068 + c-0.014-0.216-0.201-0.383-0.416-0.37l-2.962,0.186c-0.216,0.013-0.381,0.201-0.368,0.418l0.065,1.087l-0.339,0.021l-0.067-1.11 + c-0.013-0.203-0.187-0.358-0.388-0.346l-2.766,0.173c-0.201,0.012-0.355,0.188-0.345,0.389l0.069,1.131l-0.324,0.021l-0.067-1.108 + c-0.013-0.203-0.188-0.357-0.388-0.346l-2.766,0.173c-0.2,0.011-0.354,0.187-0.344,0.389l0.069,1.128l-0.29,0.02l-0.062-1.065 + c-0.014-0.208-0.193-0.366-0.399-0.353l-2.841,0.176c-0.207,0.013-0.364,0.192-0.353,0.399l0.066,1.085l-0.24,0.016l-0.069-1.148 + c-0.015-0.212-0.197-0.374-0.406-0.361l-2.897,0.18c-0.211,0.014-0.372,0.196-0.359,0.408l0.071,1.169l-0.34,0.021l-0.07-1.183 + c-0.013-0.217-0.201-0.383-0.416-0.37l-2.962,0.186c-0.215,0.013-0.381,0.201-0.368,0.418l0.073,1.201l-0.316,0.021l-0.077-1.26 + c-0.014-0.227-0.209-0.399-0.433-0.385l-3.088,0.191c-0.225,0.014-0.397,0.21-0.384,0.436l0.076,1.28l-0.491,0.033l-0.079-1.316 + c-0.015-0.226-0.209-0.398-0.434-0.385l-3.088,0.192c-0.224,0.014-0.396,0.21-0.383,0.436l0.08,1.333c0,0.001,0,0.002,0,0.003 + l-0.545,0.036l-0.078-1.293c-0.014-0.226-0.209-0.399-0.434-0.385l-3.09,0.192c-0.225,0.014-0.397,0.21-0.384,0.436l0.081,1.331 + c0.002,0.041,0.018,0.077,0.03,0.112c-0.113,0.026-0.229,0.054-0.342,0.082c-0.007-0.038-0.012-0.077-0.03-0.113l-0.59-1.194 + c-0.101-0.204-0.347-0.287-0.549-0.187l-2.771,1.385c-0.201,0.101-0.283,0.35-0.184,0.553l0.551,1.118 + c-0.088,0.056-0.177,0.11-0.264,0.169l-0.905-0.909c-0.158-0.16-0.418-0.16-0.577,0l-2.188,2.204c-0.158,0.16-0.159,0.422,0,0.581 + l0.777,0.783c-0.099,0.13-0.187,0.262-0.279,0.391l-0.841-0.42c-0.2-0.101-0.447-0.018-0.549,0.185l-1.375,2.79 + c-0.102,0.203-0.018,0.45,0.184,0.551l1.036,0.518c-0.019,0.105-0.029,0.21-0.043,0.316c-0.029-0.005-0.056-0.014-0.086-0.011 + l-1.324,0.11c-0.224,0.019-0.392,0.218-0.373,0.442l0.251,3.104c0.02,0.225,0.217,0.395,0.44,0.376l1.324-0.111 + c0.017-0.001,0.027-0.008,0.043-0.012c0.032,0.159,0.063,0.32,0.101,0.474l-1.164,0.472c-0.208,0.085-0.311,0.325-0.227,0.535 + l1.153,2.886c0.084,0.211,0.324,0.313,0.532,0.229l1.231-0.498c0.014-0.004,0.022-0.016,0.034-0.022 + c0.054,0.078,0.109,0.156,0.165,0.232c-0.014,0.012-0.028,0.018-0.041,0.031l-0.885,0.997c-0.149,0.169-0.136,0.43,0.033,0.581 + l2.307,2.073c0.167,0.151,0.427,0.137,0.577-0.031l0.884-0.997c0.028-0.031,0.044-0.067,0.061-0.102 + c0.114,0.062,0.229,0.126,0.348,0.184l-0.323,1.157c-0.063,0.218,0.064,0.446,0.28,0.508l2.979,0.845 + c0.216,0.062,0.442-0.066,0.504-0.284l0.331-1.177c0.101,0.012,0.196,0.029,0.298,0.038l0.063,0.004 + c0.018,0.001,0.039,0.002,0.061,0.002l0.073,1.029c0.016,0.226,0.212,0.397,0.437,0.381l3.086-0.226 + c0.225-0.017,0.395-0.215,0.379-0.44l-0.069-0.973l0.396-0.021l0.073,1.04c0.017,0.226,0.213,0.396,0.438,0.381l3.088-0.224 + c0.224-0.017,0.394-0.214,0.378-0.439l-0.068-0.967l0.304-0.017l0.073,1.018c0.017,0.226,0.213,0.396,0.438,0.381l3.087-0.227 + c0.225-0.016,0.395-0.214,0.378-0.439l-0.066-0.943l0.316-0.016l0.067,0.938c0.014,0.216,0.202,0.381,0.417,0.365l2.962-0.216 + c0.215-0.016,0.378-0.206,0.363-0.421l-0.062-0.869l0.317-0.017l0.062,0.863c0.016,0.227,0.212,0.397,0.437,0.382l3.087-0.227 + c0.225-0.017,0.395-0.214,0.378-0.44l-0.056-0.788l0.396-0.021l0.061,0.855c0.016,0.225,0.212,0.396,0.437,0.38l3.088-0.223 + c0.225-0.017,0.395-0.214,0.379-0.439l-0.056-0.784l0.304-0.017l0.06,0.835c0.017,0.226,0.214,0.396,0.437,0.38l3.088-0.226 + c0.225-0.017,0.395-0.214,0.379-0.439l-0.055-0.759l0.316-0.018l0.054,0.755c0.016,0.217,0.204,0.381,0.418,0.366l2.962-0.216 + c0.215-0.016,0.379-0.206,0.362-0.422l-0.047-0.685l0.338-0.017l0.046,0.662c0.016,0.212,0.201,0.372,0.41,0.357l2.896-0.21 + c0.211-0.017,0.37-0.201,0.354-0.413l-0.052-0.751l0.332-0.033l0.056,0.779c0.013,0.208,0.194,0.364,0.4,0.35l2.84-0.208 + c0.206-0.016,0.361-0.197,0.348-0.405l-0.062-0.866l0.318-0.032l0.06,0.832c0.015,0.202,0.19,0.354,0.392,0.34l2.765-0.199 + c0.2-0.015,0.353-0.192,0.338-0.395l-0.065-0.922l0.405-0.038l0.066,0.93c0.015,0.202,0.191,0.354,0.392,0.34l2.764-0.199 + c0.201-0.015,0.354-0.192,0.338-0.395l-0.073-1.02l0.192-0.02l0.121,0.864c0.027,0.201,0.214,0.342,0.414,0.314l2.743-0.389 + c0.2-0.029,0.34-0.216,0.312-0.417l-0.149-1.074c0.032-0.015,0.065-0.024,0.098-0.038l0.671,0.96 + c0.116,0.167,0.346,0.206,0.512,0.09l2.268-1.605c0.164-0.115,0.205-0.347,0.089-0.512l-0.648-0.928 + c0.048-0.049,0.094-0.101,0.142-0.15l1.004,0.62c0.174,0.106,0.398,0.052,0.504-0.121l1.45-2.377c0.105-0.173,0.052-0.4-0.12-0.507 + l-0.869-0.536c0.044-0.093,0.09-0.186,0.132-0.281l1.021,0.28c0.194,0.053,0.396-0.063,0.449-0.259l0.732-2.689 + C386.774,155.257,386.658,155.053,386.465,155z M326.725,166.993l0.012-0.552c-5.271-0.48-8.296-3.973-8.519-9.835 + c-0.07-1.845,0.737-3.773,2.276-5.431c2-2.155,4.943-3.547,7.7-3.634l47.006-3.16c0.612-0.026,1.028-0.036,1.473-0.017 + c0.181,0.008,0.367,0.021,0.575,0.04c4.472,0.408,7.489,5.686,7.104,9.954c-0.414,4.548-3.514,8.177-7.361,8.628l-16.53,1.626 + l-31.237,1.677l-0.08,0.011c-0.24,0.045-2.025,0.158-2.394,0.142L326.725,166.993z"/> + <path fill="#94A39E" d="M377.596,149.471c-1.386-0.764-3.624-0.712-4.976,0.113c-0.522,0.319-1.003,0.816-1.396,1.393 + l-40.762,2.842c-0.426-0.579-0.938-1.073-1.491-1.379c-1.386-0.762-3.625-0.711-4.976,0.115c-1.351,0.824-2.427,2.801-2.392,4.39 + c0.035,1.59,1.196,3.515,2.581,4.277c1.385,0.764,3.625,0.713,4.975-0.113c0.557-0.34,1.059-0.879,1.464-1.5l40.629-2.833 + c0.437,0.621,0.974,1.154,1.559,1.477c1.385,0.763,3.623,0.712,4.974-0.114c1.352-0.825,2.428-2.802,2.393-4.391 + C380.143,152.157,378.981,150.233,377.596,149.471z"/> + <path fill="#BFC3A6" d="M384.231,113.409l-29.379-2.072l-0.205-12.595l-21.927-2.004c0,0-9.462,14.98-5.043,34.145l0.985,5.852 + l56.224-3.152L384.231,113.409z"/> + <g> + <path fill="#828E88" d="M335.304,98.867l6.75,0.598c0.603,0.053,1.073,0.591,1.047,1.195l-0.988,21.977 + c-0.026,0.604-0.402,1.445-0.835,1.868l-3.866,3.79c-0.433,0.423-1.28,0.792-1.885,0.819l-3.916,0.178 + c-0.604,0.027-1.236-0.426-1.406-1.007c0,0-1.134-3.9-0.816-11.101C329.646,111.313,331.092,103.582,335.304,98.867z"/> + </g> + <g> + <path fill="#828E88" d="M347.251,99.878c-0.602-0.058-1.11,0.39-1.129,0.994l-0.598,19.017c-0.019,0.604,0.331,0.766,0.777,0.357 + l5.535-5.065c0.446-0.408,0.813-1.237,0.815-1.843l0.047-11.834c0.002-0.605-0.489-1.148-1.091-1.206L347.251,99.878z"/> + </g> + <polygon fill="#B6B99C" points="384.887,133.582 384.754,128.73 327.736,131.17 327.727,131.17 328.663,136.734 "/> + <polygon fill="#A6AA92" points="328.663,136.734 327.736,131.17 311.757,130.564 311.757,130.564 301.796,130.187 302.146,135.543 + "/> +</g> +</svg> diff --git a/bridgedb/https/templates/assets/images/404-hills-left.svg b/bridgedb/https/templates/assets/images/404-hills-left.svg new file mode 100644 index 0000000..13901d4 --- /dev/null +++ b/bridgedb/https/templates/assets/images/404-hills-left.svg @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="281.52px" height="112.055px" viewBox="0 0 281.52 112.055" enable-background="new 0 0 281.52 112.055" + xml:space="preserve"> +<g> + + <image overflow="visible" opacity="0.1" width="1173" height="495" xlink:href="BEFA45F0C4EFA63F.png" transform="matrix(0.24 0 0 0.24 0 0)"> + </image> + <g> + <polyline fill="#BBCAC6" points="275.011,102.099 245.136,64.12 231.537,64.12 185.894,6.48 106.606,6.48 83.963,41.12 + 56.652,41.12 6.48,102.099 6.48,112.106 275.011,112.106 275.011,102.099 "/> + </g> +</g> +<polygon fill="#B4C0BF" points="101.003,30.779 90.214,49.96 64.831,49.96 41.867,81.083 118.687,81.083 132.261,64.343 + 102.193,64.343 118.981,30.776 "/> +<polygon fill="#CAD8D7" points="106.605,6.48 99.325,17.594 178.144,17.594 224.897,76.345 237.25,76.345 260.021,102.099 + 275.011,101.977 245.136,64.12 231.537,64.12 185.894,6.48 "/> +</svg> diff --git a/bridgedb/https/templates/assets/images/404-hills-right.svg b/bridgedb/https/templates/assets/images/404-hills-right.svg new file mode 100644 index 0000000..6ac747c --- /dev/null +++ b/bridgedb/https/templates/assets/images/404-hills-right.svg @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="397.299px" height="119.108px" viewBox="0 0 397.299 119.108" enable-background="new 0 0 397.299 119.108" + xml:space="preserve"> +<g> + + <image overflow="visible" opacity="0.1" width="1333" height="602" xlink:href="392229F0603DFEAA.png" transform="matrix(0.24 0 0 0.24 -12.6143 -12.6143)"> + </image> + <g> + <g> + <polygon fill="#BBCAC6" points="294.665,109.152 228.193,40.046 209.505,40.046 177.47,0 117.4,0 0,109.152 0,119.16 + 294.665,119.16 "/> + <g> + <polygon fill="#CAD8D7" points="263.641,77.142 228.193,40.046 209.505,40.046 177.47,0 117.4,0 108.58,8.013 169.454,8.013 + 201.49,48.06 221.179,48.06 255.625,85.158 254.624,109.152 263.641,109.152 "/> + </g> + </g> + </g> +</g> +<g> + + <image overflow="visible" opacity="0.1" width="867" height="309" xlink:href="392229F0603DFEAE.png" transform="matrix(0.24 0 0 0.24 189.2192 51.5386)"> + </image> + <g> + <polygon fill="#BBCAC6" points="195.699,109.152 281.896,58.019 326.86,58.019 350.841,87.996 364.83,87.996 390.81,109.152 + 390.81,119.16 195.699,119.16 "/> + </g> +</g> +<polygon fill="#B4C0BF" points="233.388,109.152 210.191,109.152 267.733,72.18 290.93,72.18 "/> +<polygon fill="#CAD8D7" points="323.482,63.788 346.859,93.758 363.043,93.758 381.624,109.152 390.77,109.152 364.83,87.996 + 350.841,87.996 326.86,58.019 281.896,58.019 272.146,63.788 "/> +</svg> diff --git a/bridgedb/https/templates/assets/images/500-hills-left-shade.svg b/bridgedb/https/templates/assets/images/500-hills-left-shade.svg new file mode 100644 index 0000000..904c64b --- /dev/null +++ b/bridgedb/https/templates/assets/images/500-hills-left-shade.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="202.271px" height="25.842px" viewBox="0 0 202.271 25.842" enable-background="new 0 0 202.271 25.842" + xml:space="preserve"> +<polygon fill="#D6BA6B" points="176.225,0 51.492,0 21.469,11.69 6.005,11.69 -0.001,25.842 202.271,25.842 "/> +</svg> diff --git a/bridgedb/https/templates/assets/images/500-hills-left.svg b/bridgedb/https/templates/assets/images/500-hills-left.svg new file mode 100644 index 0000000..a01274e --- /dev/null +++ b/bridgedb/https/templates/assets/images/500-hills-left.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="331.68px" height="128.235px" viewBox="0 0 331.68 128.235" enable-background="new 0 0 331.68 128.235" + xml:space="preserve"> +<g> + <g> + + <image overflow="visible" opacity="0.1" width="1382" height="561" xlink:href="6AB008E8BA7227E6.png" transform="matrix(0.24 0 0 0.24 0 0)"> + </image> + <g> + <polygon fill="#DDC782" points="325.052,117.99 275.16,64.12 241.545,64.12 185.894,6.48 96.599,6.48 73.956,41.12 46.645,41.12 + 6.48,118.112 6.48,128.12 325.052,128.12 "/> + </g> + </g> +</g> +<polygon fill="#E2D5A8" points="95.996,6.48 88.886,17.594 178.145,17.594 234.905,76.345 267.272,76.345 307.058,118.301 + 325.052,117.99 275.16,64.12 241.545,64.12 185.894,6.48 "/> +<polygon fill="#D6BA6B" points="90.997,34.783 80.208,53.964 52.821,53.964 17.847,117.112 94.667,117.112 114.246,68.347 + 93.186,68.347 108.974,34.78 "/> +</svg> diff --git a/bridgedb/https/templates/assets/images/500-hills-right-shade.svg b/bridgedb/https/templates/assets/images/500-hills-right-shade.svg new file mode 100644 index 0000000..5cfedae --- /dev/null +++ b/bridgedb/https/templates/assets/images/500-hills-right-shade.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="202.271px" height="25.842px" viewBox="0 0 202.271 25.842" enable-background="new 0 0 202.271 25.842" + xml:space="preserve"> +<polygon fill="#D6BA6B" points="186.234,11.69 176.226,0 51.494,0 0,25.842 202.272,25.842 202.272,11.69 "/> +</svg> diff --git a/bridgedb/https/templates/assets/images/500-hills-right.svg b/bridgedb/https/templates/assets/images/500-hills-right.svg new file mode 100644 index 0000000..1ceb110 --- /dev/null +++ b/bridgedb/https/templates/assets/images/500-hills-right.svg @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="364.08px" height="99.524px" viewBox="0 0 364.08 99.524" enable-background="new 0 0 364.08 99.524" xml:space="preserve"> +<g> + <g> + <g> + + <image overflow="visible" opacity="0.1" width="973" height="390" xlink:href="423B8197D66693F1.png" transform="matrix(0.24 0 0 0.24 127.1021 0)"> + </image> + <g> + <polygon fill="#DDC782" points="357.594,90.549 274.083,3 210.635,3 182.937,36.624 164.445,36.624 130.102,90.549 "/> + </g> + </g> + <polygon fill="#D6BA6B" points="231.917,22.801 206.431,22.801 187.94,47.95 171.654,47.206 145.282,88.371 168.425,88.371 + 182.449,63.548 199.237,63.572 "/> + <g> + <polygon fill="#E2D5A8" points="274.083,3 210.654,3 204.371,10.625 267.201,10.625 344.072,90.549 357.594,90.549 "/> + </g> + </g> + <g> + + <image overflow="visible" opacity="0.1" width="1517" height="309" xlink:href="423B8197D66693F3.png" transform="matrix(0.24 0 0 0.24 0 32.2876)"> + </image> + <g> + <polygon fill="#DDC782" points="189.581,89.523 163.601,68.745 149.612,68.745 125.631,38.768 80.667,38.768 6.48,89.779 + 6.48,99.787 357.594,99.787 357.594,89.523 "/> + </g> + </g> + <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="270.4526" y1="86.5244" x2="270.4526" y2="89.5244"> + <stop offset="0" style="stop-color:#B5A339;stop-opacity:0"/> + <stop offset="0.4085" style="stop-color:#C2AC4D;stop-opacity:0.1"/> + <stop offset="1" style="stop-color:#D6BA6B"/> + </linearGradient> + <polygon fill="url(#SVGID_1_)" points="352.266,86.524 183.286,86.524 183.286,89.524 357.62,89.524 "/> + <polygon fill="#E2D5A8" points="122.253,44.537 145.63,74.507 161.814,74.507 180.395,89.492 189.541,89.492 163.601,68.745 + 149.612,68.745 125.631,38.768 80.667,38.768 72.039,44.537 "/> + <polygon fill="#D6BA6B" points="42.167,89.492 18.97,89.492 69.507,52.929 92.704,52.929 "/> +</g> +</svg> diff --git a/bridgedb/https/templates/assets/images/500-road.svg b/bridgedb/https/templates/assets/images/500-road.svg new file mode 100644 index 0000000..3d5a5b1 --- /dev/null +++ b/bridgedb/https/templates/assets/images/500-road.svg @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="432.973px" height="305.408px" viewBox="0 0 432.973 305.408" enable-background="new 0 0 432.973 305.408" + xml:space="preserve"> +<g> + <polygon fill="#56524F" points="362.724,165.068 404.552,48.501 250.935,48.501 107.346,105.933 49.844,231.263 114.297,268.895 + 389.082,268.895 407.378,232.175 "/> +</g> +<g> + <g> + <polygon fill="#FFFFFF" points="308.927,60.146 304.964,59.876 314.111,52.344 318.259,52.311 "/> + </g> + <g> + <path fill="#FFFFFF" d="M269.763,257.904l-23.545-42.796l7.771-0.163l24.545,43.797L269.763,257.904z M239.668,200.162 + L223,166.075l7.982,0.34l16.457,33.584L239.668,200.162z M228.845,154.631l-6.869-0.887l10.46-27.177l5.869,0.887L228.845,154.631 + z M243.781,117.623l-5.965-0.27l14.85-11.64l5.963,0.271L243.781,117.623z M267.365,97.261l-5.965-0.27l17.854-13.642l4.963,0.27 + L267.365,97.261z M289.949,76.897l-3.963-0.27l13.729-10.752l3.963,0.27L289.949,76.897z"/> + </g> +</g> +<g> + <g> + <path fill="#FFFFFF" d="M111.666,304.173c-4.279,1.647-11.282,1.647-15.562,0L3.111,268.366c-4.279-1.647-4.125-3.842,0.343-4.875 + l92.308-21.353c4.468-1.033,11.778-1.033,16.246,0l92.306,21.353c4.468,1.033,4.622,3.228,0.342,4.875L111.666,304.173z"/> + </g> + <polygon fill="#D25031" points="179.687,74.322 106.597,85.136 106.597,17.599 179.687,29.491 160.061,51.613 "/> + <path fill="#FFFFFF" d="M110.097,12.992c-0.011-3.069-2.511-5.549-5.581-5.538c-3.069,0.013-5.548,2.511-5.537,5.578 + c0.007,1.555,1.485,2.956,2.518,3.962v135.272l6.112-0.03V16.993C108.633,15.981,110.101,14.548,110.097,12.992z"/> + <g> + <path fill="#CD6632" d="M175.843,261.758c-2.501-5.839-63.367-143.689-63.367-143.689s-1.186-3.058-3.056-3.058 + c-2.189,0-7.214,0-9.402,0c-1.964,0-3.057,3.058-3.057,3.058S36.096,255.919,33.594,261.758c-2.502,5.835,1.111,6.112,1.111,6.112 + c42.475,19.179,104.313,15.982,140.027,0C174.732,267.87,178.343,267.593,175.843,261.758z"/> + <path fill="#FFFFFF" d="M165.442,238.104c-3.729-8.463-8.184-18.562-12.902-29.261c-16.927,3.859-35.25,6.054-49.863,6.121 + c-19.318,0.091-35.643-2.262-46.023-5.569c-4.623,10.482-8.985,20.371-12.649,28.681c8.834,2.624,29.308,10.009,58.882,9.849 + C120.642,247.83,141.678,243.415,165.442,238.104z"/> + <path fill="#FFFFFF" d="M82.841,150.052c-3.585,8.122-7.609,17.241-11.774,26.674c8.936,1.415,19.597,2.471,31.82,2.413 + c10.549-0.048,22.264-1.415,35.013-3.473c-4.11-9.316-8.075-18.298-11.602-26.285c-8.365,0.867-16.44,1.339-23.621,1.369 + C95.615,150.779,88.959,150.522,82.841,150.052z"/> + </g> +</g> +<g> + <g> + <path fill="#FFFFFF" d="M384.685,177.18c-2.205,0.688-5.812,0.688-8.018,0l-46.656-14.549c-2.205-0.688-2.168-1.676,0.082-2.196 + l46.492-10.754c2.25-0.521,5.932-0.521,8.184,0l46.492,10.754c2.25,0.521,2.287,1.509,0.082,2.196L384.685,177.18z"/> + </g> + <polygon fill="#D25031" points="418.652,65.256 382.044,70.603 382.044,36.587 418.652,41.933 409.099,53.174 "/> + <path fill="#FFFFFF" d="M383.806,34.267c-0.006-1.546-1.266-2.795-2.809-2.789c-1.549,0.006-2.797,1.264-2.789,2.81 + c0.002,0.783,0.746,1.488,1.266,1.994v68.134l3.078-0.016l0.002-68.118C383.07,35.772,383.808,35.05,383.806,34.267z"/> + <g> + <path fill="#CD6632" d="M416.921,159.56c-1.262-2.938-31.918-72.368-31.918-72.368s-0.596-1.541-1.539-1.541 + c-1.102,0-3.633,0-4.736,0c-0.986,0-1.537,1.541-1.537,1.541s-30.656,69.431-31.916,72.368c-1.26,2.94,0.559,3.08,0.559,3.08 + c21.393,9.659,52.539,8.05,70.527,0C416.361,162.64,418.181,162.5,416.921,159.56z"/> + <path fill="#FFFFFF" d="M411.681,147.648c-1.877-4.262-4.121-9.351-6.498-14.737c-8.525,1.943-17.754,3.049-25.113,3.083 + c-9.73,0.045-17.951-1.14-23.182-2.807c-2.328,5.281-4.525,10.261-6.369,14.448c4.449,1.318,14.762,5.039,29.656,4.958 + C389.119,152.546,399.712,150.322,411.681,147.648z"/> + <path fill="#FFFFFF" d="M370.078,103.299c-1.805,4.092-3.832,8.684-5.93,13.435c4.5,0.713,9.871,1.244,16.027,1.216 + c5.314-0.023,11.213-0.714,17.633-1.749c-2.068-4.692-4.064-9.216-5.842-13.238c-4.213,0.435-8.281,0.673-11.896,0.689 + C376.513,103.665,373.162,103.536,370.078,103.299z"/> + </g> +</g> +<g> + <g> + <path fill="#FFFFFF" d="M248.083,59.489c-0.941,0.197-2.481,0.197-3.423,0l-19.341-4.045c-0.941-0.197-0.945-0.536-0.008-0.752 + l19.356-4.478c0.937-0.216,2.47-0.216,3.407,0l19.357,4.478c0.937,0.216,0.934,0.555-0.008,0.752L248.083,59.489z"/> + </g> + <polygon fill="#D25031" points="262.183,14.063 246.941,16.29 246.941,2.127 262.183,4.353 258.206,9.033 "/> + <path fill="#FFFFFF" d="M247.675,1.161c-0.003-0.644-0.527-1.163-1.17-1.161c-0.645,0.002-1.164,0.526-1.162,1.17 + c0.002,0.326,0.312,0.619,0.528,0.831v28.366l1.282-0.006V2.001C247.369,1.788,247.676,1.487,247.675,1.161z"/> + <g> + <path fill="#CD6632" d="M261.462,53.327c-0.525-1.224-13.289-30.131-13.289-30.131s-0.248-0.641-0.641-0.641 + c-0.459,0-1.513,0-1.973,0c-0.41,0-0.64,0.641-0.64,0.641s-12.764,28.907-13.288,30.131c-0.524,1.225,0.232,1.282,0.232,1.282 + c8.907,4.021,21.875,3.351,29.364,0C261.229,54.609,261.987,54.552,261.462,53.327z"/> + <path fill="#FFFFFF" d="M259.281,48.368c-0.781-1.775-1.716-3.894-2.705-6.136c-3.55,0.808-7.393,1.269-10.456,1.283 + c-4.052,0.019-7.476-0.476-9.651-1.169c-0.971,2.198-1.885,4.272-2.652,6.016c1.852,0.55,6.146,2.099,12.347,2.064 + C249.886,50.407,254.297,49.481,259.281,48.368z"/> + <path fill="#FFFFFF" d="M241.959,29.903c-0.752,1.703-1.597,3.615-2.47,5.594c1.874,0.296,4.11,0.517,6.673,0.505 + c2.213-0.01,4.669-0.297,7.343-0.728c-0.862-1.954-1.693-3.837-2.433-5.512c-1.755,0.181-3.448,0.28-4.953,0.287 + C244.638,30.055,243.243,30.002,241.959,29.903z"/> + </g> +</g> +<g opacity="0.6"> + <path fill="#FFFFFF" d="M135.408,57.719c2.591,0.164,4.419,2.344,4.36,4.94c-0.06,2.599-1.98,4.538-4.571,4.374 + c-2.59-0.164-4.418-2.342-4.359-4.94C130.896,59.496,132.818,57.555,135.408,57.719z M131.922,42.896l-0.123-7.646l8.543,0.978 + l-0.979,7.121l-1.41,11.379l-5.209-0.316L131.922,42.896z"/> +</g> +<g> + <path opacity="0.6" fill="#FFFFFF" d="M395.474,56.781c1.379,0.088,2.352,1.247,2.32,2.628c-0.031,1.382-1.055,2.413-2.432,2.325 + c-1.377-0.087-2.348-1.245-2.318-2.627C393.076,57.728,394.097,56.694,395.474,56.781z M393.621,48.899l-0.064-4.065l4.287,0.394 + l-0.266,3.913l-0.748,6.051l-2.77-0.168L393.621,48.899z"/> +</g> +<g> + <path opacity="0.6" fill="#FFFFFF" d="M252.903,10.373c0.533,0.034,0.909,0.482,0.897,1.017c-0.012,0.535-0.408,0.934-0.941,0.9 + c-0.532-0.034-0.908-0.482-0.896-1.017S252.371,10.339,252.903,10.373z M252.185,7.322l-0.025-1.573l1.646,0.307l-0.09,1.36 + l-0.289,2.342l-1.072-0.065L252.185,7.322z"/> +</g> +</svg> diff --git a/bridgedb/https/templates/assets/images/maintenance-hills-left-shade.svg b/bridgedb/https/templates/assets/images/maintenance-hills-left-shade.svg new file mode 100644 index 0000000..696f772 --- /dev/null +++ b/bridgedb/https/templates/assets/images/maintenance-hills-left-shade.svg @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="287.992px" height="34px" viewBox="0 0 287.992 34" enable-background="new 0 0 287.992 34" xml:space="preserve"> +<polygon opacity="0.1" fill="#49623D" points="41.02,0 287.992,0 272.992,14 57.992,14 47.992,23 168.992,23 160.992,34 0,34 "/> +</svg> diff --git a/bridgedb/https/templates/assets/images/maintenance-hills-left.svg b/bridgedb/https/templates/assets/images/maintenance-hills-left.svg new file mode 100644 index 0000000..8b7d9d2 --- /dev/null +++ b/bridgedb/https/templates/assets/images/maintenance-hills-left.svg @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="424.45px" height="127.792px" viewBox="0 0 424.45 127.792" enable-background="new 0 0 424.45 127.792" + xml:space="preserve"> +<g> + + <image overflow="visible" opacity="0.1" width="887" height="370" xlink:href="6887344C08643948.png" transform="matrix(0.24 0 0 0.24 211.5703 38.9922)"> + </image> + <g> + <polygon fill="#8DAE7D" points="415.362,118.76 329.481,47.992 284.517,47.992 260.536,77.97 246.548,77.97 220.57,118.76 "/> + </g> +</g> +<g> + + <image overflow="visible" opacity="0.1" width="1173" height="522" xlink:href="6887344C08643949.png" transform="matrix(0.24 0 0 0.24 0 0)"> + </image> + <g> + <polygon fill="#8DAE7D" points="6.48,118.76 46.645,41.12 73.956,41.12 96.598,6.48 165.878,6.48 211.521,64.12 245.136,64.12 + 275.012,118.76 "/> + </g> +</g> +<polygon fill="#8DAE7D" points="415.362,118.76 329.481,47.992 284.517,47.992 260.536,77.97 246.548,77.97 220.57,118.76 "/> +<polygon opacity="0.15" fill="#49623D" points="314.24,62.971 282.851,62.971 238.867,117.112 258.644,117.112 291.235,77.354 "/> +<g> + <polygon fill="#B6C8A9" points="329.481,47.992 284.962,47.992 283.845,48.833 279.903,53.76 327.304,53.76 405.134,118.76 + 415.362,118.76 "/> +</g> +<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="328.7197" y1="115.2598" x2="328.7197" y2="118.7598"> + <stop offset="0" style="stop-color:#345338;stop-opacity:0"/> + <stop offset="1" style="stop-color:#345338;stop-opacity:0.1"/> +</linearGradient> +<polygon fill="url(#SVGID_1_)" points="242.077,118.76 415.362,118.76 411.115,115.26 242.077,115.26 "/> +<g> + <polygon fill="#8DAE7D" points="415.362,118.76 275.012,118.76 245.136,64.12 211.521,64.12 165.878,6.48 96.598,6.48 + 73.956,41.12 46.645,41.12 6.48,118.76 6.479,123.765 415.362,123.765 "/> +</g> +<polygon opacity="0.15" fill="#49623D" points="90.996,30.779 80.207,49.96 53.822,49.96 17.847,117.112 94.667,117.112 + 122.253,64.343 92.185,64.343 108.973,30.776 "/> +<polygon fill="#B6C8A9" points="158.128,17.594 204.881,76.345 237.249,76.345 259.896,118.76 274.888,118.76 245.136,64.12 + 211.521,64.12 165.878,6.48 96.598,6.48 89.333,17.594 "/> +</svg> diff --git a/bridgedb/https/templates/assets/images/maintenance-hills-right-shade.svg b/bridgedb/https/templates/assets/images/maintenance-hills-right-shade.svg new file mode 100644 index 0000000..00c1757 --- /dev/null +++ b/bridgedb/https/templates/assets/images/maintenance-hills-right-shade.svg @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="211.627px" height="24.984px" viewBox="0 0 211.627 24.984" enable-background="new 0 0 211.627 24.984" + xml:space="preserve"> +<polygon opacity="0.1" fill="#49623D" points="181.484,0 0,0 11.022,10.288 169.012,10.288 176.36,16.901 87.445,16.901 + 93.324,24.984 211.627,24.984 "/> +</svg> diff --git a/bridgedb/https/templates/assets/images/maintenance-hills-right.svg b/bridgedb/https/templates/assets/images/maintenance-hills-right.svg new file mode 100644 index 0000000..6225deb --- /dev/null +++ b/bridgedb/https/templates/assets/images/maintenance-hills-right.svg @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="213.12px" height="69.84px" viewBox="0 0 213.12 69.84" enable-background="new 0 0 213.12 69.84" xml:space="preserve"> +<g> + + <image overflow="visible" opacity="0.1" width="888" height="291" xlink:href="7F0562F1CC30193A.png" transform="matrix(0.24 0 0 0.24 0 0)"> + </image> + <g> + <polygon fill="#8DAE7D" points="204.111,60.781 178.13,38.978 164.142,38.978 140.162,9 95.196,9 9,60.781 "/> + </g> +</g> +<g> + <polygon fill="#8DAE7D" points="204.111,60.781 178.13,38.977 164.142,38.977 140.162,9 95.196,9 9,60.781 9,65.786 + 204.111,65.786 "/> +</g> +<polygon fill="#B6C8A9" points="136.783,14.769 160.16,44.739 176.343,44.739 194.925,60.781 204.07,60.781 178.13,38.977 + 164.142,38.977 140.162,9 95.196,9 85.447,14.769 "/> +<polygon opacity="0.15" fill="#49623D" points="46.688,59.724 23.492,59.724 81.034,23.161 104.23,23.161 "/> +</svg> diff --git a/bridgedb/https/templates/assets/images/maintenance-tractor.svg b/bridgedb/https/templates/assets/images/maintenance-tractor.svg new file mode 100644 index 0000000..6846f47 --- /dev/null +++ b/bridgedb/https/templates/assets/images/maintenance-tractor.svg @@ -0,0 +1,367 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
"> +<svg version="1.1" id="Layer_1" xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
" x="0px" y="0px" + width="466.269px" height="318.696px" viewBox="0 0 466.269 318.696" enable-background="new 0 0 466.269 318.696" + xml:space="preserve"> +<g> + <polygon fill="#B6C8A9" points="452.322,251.25 421.783,109.235 124.896,109.235 0,219.235 0,271.848 78.523,317.695 + 345.258,317.695 "/> + <g opacity="0.1"> + <path fill="#414042" d="M455.162,203.627c-1.621-4.677-6.867-7.486-11.659-6.243l-118.478,30.744 + c-4.792,1.243-7.386,6.088-5.765,10.765l2.957,8.534c1.621,4.677,6.867,7.486,11.659,6.243l118.478-30.744 + c4.792-1.243,7.386-6.088,5.765-10.765L455.162,203.627z"/> + <path fill="#414042" d="M250.36,233.819c-4.297,2.457-11.807,3.799-16.689,2.982l-88.066-14.738 + c-4.882-0.816-9.545,2.509-10.362,7.392l-0.873,5.213c-0.817,4.883,2.474,9.726,7.314,10.764l1.241,0.266 + c4.84,1.038,4.75,1.887-0.2,1.887h-18.504c-4.95,0-9,1.95-9,4.333s-4.05,4.333-9,4.333h-24c-4.95,0-9,3.45-9,7.667 + s4.05,7.667,9,7.667h92c4.95,0,9-2.7,9-6s4.05-6,9-6h6.481c4.95,0,12.96,0.849,17.8,1.887l11.938,2.559 + c4.84,1.038,11.505,3.271,14.812,4.963s9.107,0.464,12.89-2.728l16.161-13.637c3.782-3.192,5.507-9.615,3.832-14.273l-2.704-7.52 + c-1.676-4.658-6.562-6.458-10.858-4.001L250.36,233.819z"/> + </g> + <g> + <polygon fill="#162628" points="423.094,135.842 409.504,120.741 254.732,120.741 254.732,224.174 380.815,224.174 "/> + <rect x="362.695" y="14.288" fill="#24747F" width="57.38" height="110.606"/> + <polygon fill="#12353A" points="369.396,137.398 301.164,143.681 301.164,17.402 369.396,11.734 "/> + <path fill="#1A575F" d="M425.588,138.957c-0.01,0.66-0.559,1.192-1.219,1.182l-9.083-0.138c-0.66-0.011-1.192-0.559-1.182-1.219 + l0.059-3.897c0.011-0.66,0.559-1.192,1.219-1.182l9.085,0.139c0.66,0.011,1.191,0.559,1.182,1.219L425.588,138.957z"/> + <path fill="#1A575F" d="M412.963,139.052c0.094,0.654-0.365,1.266-1.019,1.359l-8.992,1.291c-0.653,0.094-1.265-0.363-1.358-1.018 + l-0.553-3.858c-0.094-0.653,0.365-1.265,1.019-1.358l8.991-1.29c0.654-0.093,1.266,0.364,1.358,1.019L412.963,139.052z"/> + <path fill="#1A575F" d="M400.553,140.903c0.094,0.654-0.365,1.266-1.019,1.359l-8.99,1.291c-0.653,0.094-1.265-0.363-1.358-1.018 + l-0.554-3.857c-0.094-0.654,0.364-1.266,1.019-1.359l8.99-1.289c0.654-0.094,1.266,0.363,1.358,1.018L400.553,140.903z"/> + <path fill="#1A575F" d="M388.292,142.98c0.096,0.671-0.374,1.299-1.045,1.396l-9.235,1.326c-0.671,0.097-1.299-0.373-1.395-1.045 + l-0.568-3.961c-0.096-0.672,0.374-1.3,1.045-1.396l9.235-1.326c0.671-0.096,1.299,0.374,1.395,1.045L388.292,142.98z"/> + <path fill="#1A575F" d="M375.817,144.643c0.099,0.685-0.381,1.324-1.065,1.423l-9.418,1.353c-0.685,0.099-1.324-0.381-1.423-1.065 + l-0.578-4.041c-0.099-0.685,0.381-1.324,1.065-1.423l9.417-1.351c0.685-0.099,1.324,0.381,1.423,1.065L375.817,144.643z"/> + <path fill="#1A575F" d="M362.816,146.554c0.101,0.7-0.39,1.354-1.09,1.455l-9.631,1.384c-0.7,0.101-1.354-0.39-1.455-1.09 + l-0.592-4.132c-0.101-0.7,0.39-1.354,1.09-1.455l9.631-1.382c0.7-0.101,1.354,0.39,1.455,1.09L362.816,146.554z"/> + <path fill="#1A575F" d="M349.611,148.444c0.104,0.73-0.406,1.413-1.137,1.518l-10.043,1.442c-0.73,0.104-1.413-0.406-1.517-1.137 + l-0.617-4.308c-0.104-0.73,0.407-1.413,1.138-1.518l10.041-1.44c0.73-0.104,1.413,0.406,1.518,1.137L349.611,148.444z"/> + <path fill="#1A575F" d="M335.301,150.389c0.104,0.73-0.406,1.413-1.137,1.518l-10.042,1.443c-0.73,0.104-1.413-0.406-1.517-1.137 + l-0.617-4.308c-0.104-0.73,0.407-1.413,1.138-1.518l10.04-1.44c0.73-0.104,1.413,0.406,1.518,1.137L335.301,150.389z"/> + <path fill="#1A575F" d="M320.853,152.61c0.104,0.73-0.406,1.413-1.137,1.518l-10.041,1.444c-0.73,0.104-1.413-0.406-1.518-1.137 + l-0.617-4.308c-0.104-0.73,0.406-1.413,1.137-1.518l10.042-1.44c0.73-0.104,1.413,0.406,1.518,1.137L320.853,152.61z"/> + <path fill="#1A575F" d="M307.059,154.788c0.38,0.632,0.175,1.46-0.457,1.84l-8.689,5.235c-0.632,0.38-1.459,0.175-1.84-0.457 + l-2.244-3.729c-0.381-0.632-0.175-1.46,0.457-1.84l8.688-5.233c0.632-0.38,1.46-0.175,1.84,0.457L307.059,154.788z"/> + <path fill="#1A575F" d="M295.289,162.064c0.595,0.436,0.726,1.278,0.291,1.873l-5.987,8.191c-0.436,0.595-1.278,0.726-1.873,0.291 + l-3.514-2.571c-0.595-0.435-0.726-1.278-0.291-1.873l5.988-8.188c0.435-0.595,1.278-0.727,1.873-0.291L295.289,162.064z"/> + <path fill="#1A575F" d="M287.06,173.59c0.685,0.273,1.021,1.058,0.748,1.742l-3.761,9.421c-0.273,0.685-1.058,1.021-1.742,0.748 + l-4.041-1.616c-0.685-0.273-1.021-1.058-0.748-1.742l3.761-9.417c0.273-0.685,1.058-1.021,1.742-0.748L287.06,173.59z"/> + <path fill="#1A575F" d="M437.191,139.15l-11.076-4.819l-106.076,13.968c0,0-36.616,4.906-40.014,47.186 + c-3.397,42.28,32.086,46.811,32.086,46.811L437.191,139.15z"/> + <path fill="#153B3F" d="M459.709,178.122c0-15.477-12.517-31.994-27.931-31.994c-2.401,0-3.918,0.142-6.934,0.546l-98.969,14.461 + l0.004,0.05c-17.336,0.975-31.135,21.845-31.135,38.035c0,21.032,14.659,38.083,32.742,38.083c1.021,0,2.028-0.062,3.025-0.168 + l0.016,0.254l2.718-0.686c0.869-0.179,1.728-0.392,2.571-0.647l100.989-25.469l-0.041-0.523 + C449.81,207.335,459.709,194.077,459.709,178.122z"/> + <path fill="#183235" d="M431.779,146.128c-2.401,0-3.918,0.142-6.934,0.546l-98.969,14.461l0.004,0.05 + c-0.38,0.021-0.756,0.063-1.132,0.104l-9.639,3.141c-3.488,1.941-6.672,4.642-9.437,7.801l147.957,26.069 + c3.794-5.541,6.079-12.542,6.079-20.177C459.709,162.646,447.193,146.128,431.779,146.128z"/> + <path fill="none" stroke="#387986" stroke-width="3.3974" stroke-miterlimit="10" d="M459.709,178.122 + c0-15.477-12.517-31.994-27.931-31.994c-2.401,0-3.918,0.142-6.934,0.546l-98.969,14.461l0.004,0.05 + c-17.336,0.975-31.135,21.845-31.135,38.035c0,21.032,14.659,38.083,32.742,38.083c1.021,0,2.028-0.062,3.025-0.168l0.016,0.254 + l2.718-0.686c0.869-0.179,1.728-0.392,2.571-0.647l100.989-25.469l-0.041-0.523C449.81,207.335,459.709,194.077,459.709,178.122z" + /> + <path fill="#C0D1D6" d="M355.24,83.699c0,4.485-3.67,8.154-8.154,8.154h-30.408c-4.484,0-8.153-3.669-8.153-8.154V34.048 + c0-4.484,3.651-8.508,8.115-8.942l30.485-2.958c4.463-0.434,8.115,2.881,8.115,7.366V83.699z"/> + <path opacity="0.7" fill="#FFFFFF" d="M347.125,22.148l-30.485,2.958c-1.81,0.176-3.48,0.948-4.834,2.096l43.435,51.165V29.514 + C355.24,25.029,351.587,21.714,347.125,22.148z"/> + <path fill="none" stroke="#1C3D43" stroke-width="3.3974" stroke-miterlimit="10" d="M355.24,83.699 + c0,4.485-3.669,8.154-8.154,8.154h-30.407c-4.485,0-8.154-3.669-8.154-8.154V34.048c0-4.484,3.652-8.508,8.115-8.941l30.484-2.959 + c4.464-0.433,8.116,2.882,8.116,7.366V83.699z"/> + <polygon fill="#24747F" points="420.072,132.438 362.315,138.105 362.315,12.779 420.072,17.314 "/> + <path fill="#C0D1D6" d="M412.998,84.566c0,4.485-3.67,8.154-8.154,8.154h-28.429c-4.484,0-8.153-3.669-8.153-8.154v-54.48 + c0-4.485,3.65-7.784,8.112-7.332l28.512,2.89c4.461,0.453,8.112,4.492,8.112,8.977V84.566z"/> + <path opacity="0.7" fill="#FFFFFF" d="M404.885,25.644l-28.512-2.89c-2.273-0.23-4.331,0.516-5.808,1.893l42.432,49.983V34.62 + C412.998,30.136,409.346,26.096,404.885,25.644z"/> + <path fill="none" stroke="#1C3D43" stroke-width="3.3974" stroke-miterlimit="10" d="M412.998,84.566 + c0,4.485-3.669,8.154-8.154,8.154h-28.428c-4.485,0-8.154-3.669-8.154-8.154V30.085c0-4.484,3.65-7.784,8.112-7.332l28.512,2.89 + c4.462,0.452,8.112,4.492,8.112,8.976V84.566z"/> + <polygon fill="#24747F" points="419.508,87.05 432.249,106.585 432.249,121.024 438.194,121.024 438.194,130.65 369.441,137.398 + 369.396,119.608 "/> + <g> + + <image overflow="visible" opacity="0.1" width="336" height="128" xlink:href="DA577FBAEA2E3E61.png" transform="matrix(0.24 0 0 0.24 351.7466 -0.8115)"> + </image> + <g> + <polygon fill="#6FB4BF" points="425.359,22.978 358.542,15.042 358.542,5.983 425.359,13.918 "/> + </g> + </g> + <g> + + <image overflow="visible" opacity="0.1" width="315" height="123" xlink:href="DA577FBAEA2E3E60.png" transform="matrix(0.24 0 0 0.24 289.8433 -1.001)"> + </image> + <g> + <polygon fill="#12353A" points="358.637,14.854 296.638,21.653 296.638,13.727 358.637,5.794 "/> + </g> + </g> + <g> + + <image overflow="visible" opacity="0.1" width="629" height="408" xlink:href="DA577FBAEA2E3E6E.png" transform="matrix(0.24 0 0 0.24 205.6558 65.6816)"> + </image> + <g> + <polygon fill="#24747F" points="349.61,89.275 329.838,72.477 212.451,77.71 212.451,156.599 349.754,140.135 "/> + </g> + </g> + <path fill="#387986" d="M460.57,170.961c-0.619,0.23-1.313-0.087-1.544-0.706l-3.173-8.511c-0.23-0.619,0.087-1.313,0.706-1.544 + l3.651-1.361c0.619-0.23,1.313,0.087,1.544,0.706l3.173,8.513c0.23,0.619-0.087,1.313-0.706,1.544L460.57,170.961z"/> + <path fill="#387986" d="M461.197,183.599c-0.66,0.013-1.211-0.517-1.224-1.177l-0.182-9.081c-0.013-0.66,0.517-1.211,1.177-1.224 + l3.896-0.078c0.66-0.013,1.211,0.517,1.224,1.177l0.182,9.083c0.013,0.66-0.517,1.211-1.177,1.224L461.197,183.599z"/> + <path fill="#387986" d="M457.85,195.681c-0.633-0.188-0.995-0.861-0.807-1.493l2.605-8.703c0.189-0.632,0.862-0.994,1.494-0.806 + l3.734,1.118c0.632,0.188,0.994,0.861,0.805,1.493l-2.605,8.703c-0.188,0.632-0.861,0.994-1.494,0.806L457.85,195.681z"/> + <path fill="#387986" d="M449.876,205.417c-0.518-0.41-0.604-1.169-0.194-1.687l5.647-7.115c0.41-0.518,1.169-0.604,1.687-0.194 + l3.053,2.423c0.518,0.41,0.604,1.169,0.194,1.687l-5.647,7.115c-0.41,0.518-1.169,0.604-1.687,0.194L449.876,205.417z"/> + <path fill="#387986" d="M438.726,212.112c-0.321-0.577-0.112-1.312,0.465-1.633l7.938-4.419c0.577-0.321,1.312-0.112,1.633,0.465 + l1.896,3.406c0.321,0.577,0.112,1.312-0.465,1.633l-7.937,4.418c-0.577,0.321-1.312,0.112-1.633-0.465L438.726,212.112z"/> + <path fill="#387986" d="M456.279,159.44c-0.507,0.423-1.268,0.355-1.69-0.151l-5.825-6.97c-0.423-0.507-0.354-1.268,0.151-1.69 + l2.991-2.498c0.507-0.423,1.268-0.355,1.69,0.151l5.825,6.971c0.423,0.507,0.354,1.268-0.151,1.69L456.279,159.44z"/> + <path fill="#387986" d="M448.237,149.599c-0.285,0.595-1.006,0.849-1.601,0.562l-8.19-3.928c-0.595-0.285-0.849-1.006-0.563-1.601 + l1.686-3.515c0.285-0.595,1.006-0.849,1.601-0.562l8.19,3.928c0.595,0.286,0.849,1.007,0.563,1.602L448.237,149.599z"/> + <path fill="#387986" d="M437.112,144.246c-0.01,0.66-0.559,1.192-1.219,1.182l-9.082-0.138c-0.66-0.011-1.192-0.559-1.182-1.219 + l0.059-3.896c0.01-0.66,0.558-1.192,1.218-1.182l9.085,0.139c0.66,0.011,1.191,0.559,1.182,1.219L437.112,144.246z"/> + <path fill="#387986" d="M424.488,144.341c0.093,0.654-0.364,1.266-1.019,1.359l-8.992,1.292c-0.654,0.094-1.265-0.364-1.358-1.018 + l-0.553-3.858c-0.094-0.654,0.364-1.266,1.019-1.358l8.991-1.29c0.653-0.094,1.265,0.365,1.358,1.019L424.488,144.341z"/> + <path fill="#387986" d="M412.078,146.193c0.093,0.653-0.364,1.266-1.019,1.359l-8.991,1.291c-0.653,0.094-1.265-0.364-1.358-1.018 + l-0.554-3.857c-0.094-0.653,0.364-1.266,1.019-1.359l8.991-1.29c0.653-0.094,1.265,0.363,1.358,1.018L412.078,146.193z"/> + <path fill="#387986" d="M399.816,148.271c0.096,0.671-0.374,1.299-1.045,1.396l-9.236,1.326c-0.671,0.097-1.299-0.373-1.395-1.044 + l-0.568-3.963c-0.096-0.671,0.374-1.299,1.045-1.395l9.236-1.326c0.671-0.096,1.299,0.374,1.395,1.045L399.816,148.271z"/> + <path fill="#387986" d="M387.341,149.933c0.099,0.685-0.381,1.324-1.065,1.423l-9.418,1.352c-0.685,0.099-1.324-0.381-1.423-1.065 + l-0.579-4.041c-0.099-0.685,0.381-1.324,1.065-1.423l9.418-1.35c0.685-0.099,1.324,0.381,1.423,1.065L387.341,149.933z"/> + <path fill="#387986" d="M374.34,151.844c0.101,0.7-0.39,1.354-1.09,1.455l-9.632,1.383c-0.7,0.101-1.354-0.39-1.455-1.09 + l-0.591-4.131c-0.101-0.7,0.39-1.354,1.09-1.455l9.63-1.383c0.7-0.101,1.354,0.39,1.455,1.09L374.34,151.844z"/> + <path fill="#387986" d="M361.135,153.734c0.104,0.73-0.406,1.413-1.137,1.518l-10.043,1.441c-0.73,0.104-1.413-0.406-1.518-1.137 + l-0.616-4.308c-0.104-0.73,0.406-1.413,1.137-1.518l10.041-1.44c0.73-0.104,1.413,0.406,1.518,1.137L361.135,153.734z"/> + <path fill="#387986" d="M346.826,155.679c0.104,0.73-0.406,1.413-1.137,1.518l-10.042,1.442c-0.73,0.104-1.413-0.406-1.518-1.137 + l-0.616-4.308c-0.104-0.73,0.406-1.413,1.137-1.518l10.04-1.44c0.73-0.104,1.413,0.406,1.518,1.137L346.826,155.679z"/> + <path fill="#387986" d="M332.377,157.9c0.104,0.73-0.406,1.413-1.137,1.518l-10.042,1.444c-0.73,0.104-1.413-0.406-1.518-1.137 + l-0.617-4.308c-0.104-0.73,0.406-1.413,1.137-1.518l10.042-1.44c0.73-0.104,1.413,0.406,1.518,1.137L332.377,157.9z"/> + <path fill="#387986" d="M438.098,216.6c0.162,0.64-0.229,1.296-0.868,1.458l-8.808,2.233c-0.64,0.162-1.296-0.229-1.458-0.868 + l-0.957-3.778c-0.162-0.64,0.229-1.296,0.868-1.458l8.805-2.233c0.64-0.162,1.296,0.229,1.458,0.868L438.098,216.6z"/> + <path fill="#387986" d="M425.675,219.752c0.162,0.64-0.229,1.296-0.868,1.458L416,223.444c-0.64,0.162-1.296-0.229-1.458-0.869 + l-0.956-3.777c-0.162-0.64,0.229-1.296,0.868-1.458l8.805-2.232c0.64-0.162,1.296,0.229,1.458,0.868L425.675,219.752z"/> + <path fill="#387986" d="M413.562,222.972c0.166,0.656-0.235,1.331-0.892,1.498l-9.044,2.296c-0.656,0.167-1.331-0.234-1.497-0.892 + l-0.983-3.879c-0.167-0.657,0.235-1.332,0.892-1.498l9.043-2.294c0.656-0.166,1.331,0.235,1.497,0.892L413.562,222.972z"/> + <path fill="#387986" d="M401.055,226.082c0.17,0.671-0.238,1.357-0.909,1.528l-9.225,2.34c-0.671,0.171-1.357-0.239-1.527-0.909 + l-1.001-3.956c-0.17-0.67,0.239-1.357,0.91-1.527l9.221-2.34c0.671-0.17,1.357,0.239,1.528,0.91L401.055,226.082z"/> + <path fill="#387986" d="M388.33,229.356c0.174,0.686-0.244,1.389-0.93,1.562l-9.434,2.393c-0.686,0.174-1.388-0.244-1.562-0.93 + l-1.023-4.045c-0.174-0.686,0.245-1.389,0.931-1.562l9.429-2.392c0.686-0.174,1.389,0.244,1.562,0.93L388.33,229.356z"/> + <path fill="#387986" d="M375.398,232.633c0.181,0.714-0.256,1.447-0.97,1.629l-9.834,2.495c-0.714,0.182-1.447-0.255-1.629-0.969 + l-1.07-4.221c-0.181-0.714,0.256-1.447,0.971-1.628l9.834-2.494c0.714-0.181,1.447,0.256,1.628,0.97L375.398,232.633z"/> + <path fill="#387986" d="M361.374,236.079c0.181,0.714-0.256,1.447-0.97,1.629l-9.834,2.495c-0.714,0.182-1.447-0.255-1.628-0.97 + l-1.07-4.22c-0.181-0.715,0.256-1.448,0.971-1.629l9.832-2.494c0.715-0.181,1.448,0.256,1.629,0.97L361.374,236.079z"/> + <path fill="#387986" d="M347.242,239.815c0.181,0.714-0.256,1.447-0.97,1.629l-9.835,2.494c-0.714,0.182-1.447-0.255-1.628-0.97 + l-1.068-4.218c-0.181-0.715,0.256-1.448,0.97-1.629l9.833-2.494c0.714-0.182,1.447,0.255,1.628,0.969L347.242,239.815z"/> + <path fill="#387986" d="M318.583,160.078c0.38,0.632,0.175,1.46-0.457,1.84l-8.689,5.234c-0.632,0.38-1.459,0.175-1.84-0.457 + l-2.243-3.729c-0.381-0.632-0.175-1.46,0.457-1.84l8.688-5.232c0.632-0.38,1.46-0.175,1.84,0.457L318.583,160.078z"/> + <path fill="#387986" d="M306.812,167.354c0.595,0.436,0.727,1.278,0.291,1.873l-5.987,8.192c-0.436,0.595-1.277,0.726-1.873,0.291 + l-3.514-2.572c-0.596-0.435-0.726-1.278-0.291-1.873l5.988-8.188c0.435-0.595,1.278-0.727,1.873-0.291L306.812,167.354z"/> + <path fill="#387986" d="M306.331,231.972c0.366-0.64,1.189-0.863,1.829-0.497l8.806,5.04c0.64,0.366,0.863,1.189,0.497,1.829 + l-2.164,3.778c-0.366,0.64-1.189,0.863-1.829,0.497l-8.804-5.04c-0.64-0.366-0.863-1.189-0.497-1.829L306.331,231.972z"/> + <path fill="#387986" d="M319.117,238.369c0.078-0.733,0.742-1.269,1.476-1.19l10.09,1.076c0.733,0.078,1.269,0.742,1.19,1.476 + l-0.464,4.328c-0.078,0.733-0.742,1.269-1.476,1.19l-10.087-1.077c-0.733-0.078-1.269-0.742-1.19-1.476L319.117,238.369z"/> + <path fill="#387986" d="M298.583,178.88c0.685,0.273,1.021,1.058,0.748,1.742l-3.761,9.421c-0.273,0.685-1.058,1.021-1.742,0.748 + l-4.041-1.616c-0.685-0.273-1.021-1.058-0.748-1.742l3.762-9.417c0.273-0.685,1.058-1.021,1.742-0.748L298.583,178.88z"/> + <path fill="#387986" d="M293.6,192.311c0.736,0.033,1.311,0.664,1.277,1.4l-0.47,10.133c-0.033,0.736-0.664,1.311-1.4,1.276 + l-4.35-0.201c-0.736-0.034-1.311-0.665-1.276-1.401l0.471-10.132c0.034-0.736,0.665-1.311,1.401-1.277L293.6,192.311z"/> + <path fill="#387986" d="M293.418,206.434c0.705-0.216,1.459,0.185,1.675,0.89l2.967,9.698c0.216,0.705-0.185,1.459-0.889,1.675 + l-4.162,1.273c-0.704,0.216-1.458-0.185-1.674-0.889l-2.969-9.7c-0.216-0.704,0.185-1.458,0.89-1.674L293.418,206.434z"/> + <path fill="#387986" d="M297.704,220.038c0.604-0.423,1.444-0.275,1.867,0.328l5.823,8.305c0.423,0.604,0.275,1.444-0.328,1.867 + l-3.563,2.499c-0.604,0.423-1.444,0.275-1.867-0.328l-5.824-8.305c-0.423-0.604-0.275-1.444,0.328-1.867L297.704,220.038z"/> + <g> + + <image overflow="visible" opacity="0.1" width="549" height="180" xlink:href="DA577FBAEA2E3E78.png" transform="matrix(0.24 0 0 0.24 275.4946 164.9082)"> + </image> + <g> + <polygon fill="#6FB4BF" points="282.29,201.157 400.256,190.955 400.256,171.703 282.29,181.905 "/> + </g> + </g> + <polygon fill="#6FB4BF" points="214.776,77.606 232.977,98.345 349.61,89.275 329.838,72.477 "/> + <g> + + <image overflow="visible" opacity="0.1" width="233" height="251" xlink:href="DA577FBAEA2E3E79.png" transform="matrix(0.24 0 0 0.24 185.1792 70.9141)"> + </image> + <g> + <polygon fill="#12353A" points="234.11,98.345 220.2,77.709 207.049,77.709 192.118,98.345 191.974,124.269 234.255,124.269 + "/> + </g> + </g> + <g opacity="0.2"> + + <image overflow="visible" opacity="0.1" width="233" height="251" xlink:href="DA577FBAEA2E3E7A.png" transform="matrix(0.24 0 0 0.24 185.1792 70.9141)"> + </image> + <g> + <polygon fill="#24747F" points="234.11,98.345 220.2,77.709 207.049,77.709 192.118,98.345 191.974,124.269 234.255,124.269 + "/> + </g> + </g> + <g> + + <image overflow="visible" opacity="0.2" width="390" height="616" xlink:href="DA577FBAEA2E3E7B.png" transform="matrix(0.24 0 0 0.24 198.3687 118.166)"> + </image> + <g> + <polygon fill="#6FB4BF" points="256.196,124.961 284.944,150.575 284.944,235.517 248.885,259.103 205.164,248.447 "/> + </g> + </g> + <polygon fill="#256870" points="136.366,138.442 136.366,213.418 273.61,235.517 273.61,150.575 "/> + <polygon fill="#24747F" points="115.01,231.371 248.888,260.236 273.61,235.517 136.366,213.418 "/> + <polygon opacity="0.6" fill="#6FB4BF" points="115.01,231.371 248.888,260.236 273.61,235.517 136.366,213.418 "/> + <polygon fill="#24747F" points="255.691,123.205 120.886,118.2 136.366,139.576 273.61,150.575 "/> + <g> + + <image overflow="visible" opacity="0.1" width="177" height="188" xlink:href="DA577FBAEA2E3E7C.png" transform="matrix(0.24 0 0 0.24 379.0737 158.8359)"> + </image> + <g> + <polygon fill="#24747F" points="391.871,176.532 400.206,171.72 408.542,176.532 408.542,186.157 400.206,190.971 + 391.871,186.157 "/> + <polygon fill="none" stroke="#1E6C72" stroke-width="1.1325" stroke-miterlimit="10" points="391.871,176.532 400.206,171.72 + 408.542,176.532 408.542,186.157 400.206,190.971 391.871,186.157 "/> + </g> + </g> + </g> + <g> + + <image overflow="visible" opacity="0.1" width="698" height="391" xlink:href="DA577FBAEA2E3E7D.png" transform="matrix(0.24 0 0 0.24 52.6411 165.6338)"> + </image> + <g> + <polygon fill="#D0B5A1" points="212.777,217.852 192.737,196.271 181.865,196.271 163.227,172.973 128.281,172.973 + 61.29,218.214 59.979,218.214 59.979,252.055 212.777,252.055 "/> + <g> + <polygon fill="#E2D4C9" points="212.777,217.852 192.737,196.271 181.865,196.271 163.227,172.973 128.281,172.973 + 120.819,177.635 158.564,177.635 177.202,200.933 188.074,200.933 208.114,222.516 208.114,252.055 212.777,252.055 "/> + </g> + </g> + </g> + <g> + + <image overflow="visible" opacity="0.1" width="637" height="357" xlink:href="8EA57603D8AF04C2.png" transform="matrix(0.24 0 0 0.24 33.603 184.1553)"> + </image> + <g> + <polygon fill="#DEC8B6" points="40.941,252.648 50.597,232.264 68.483,232.264 80.285,191.494 110.325,191.494 119.98,203.285 + 156.458,203.285 178.988,239.773 171.478,262.304 65.617,262.304 "/> + <polygon fill="#EBE0D5" points="119.98,203.285 110.325,191.494 80.285,191.494 78.938,196.149 105.935,196.149 118.28,208.495 + 152.054,208.495 171.619,240.405 164.32,262.304 171.478,262.304 178.988,239.773 156.458,203.285 "/> + </g> + </g> + <polygon opacity="0.5" fill="#D0B5A1" points="85.717,203.991 76.217,239.737 59.467,239.737 53.967,249.987 67.967,255.237 + 104.79,255.237 104.79,241.148 93.95,230.987 100.465,203.991 "/> + <g opacity="0.25"> + <path fill="none" d="M372.808,84.245c0.049-0.014,0.098-0.031,0.146-0.044c-1.018-1.453-1.854-3.109-2.441-4.944l-0.27-0.812 + c-0.029-0.092-0.057-0.186-0.084-0.28c-0.02-0.066-0.041-0.133-0.059-0.2l-0.064-0.045v5.046 + C370.975,83.395,372.339,84.027,372.808,84.245z"/> + <path fill="#FFFFFF" d="M385.226,64.212c3.107,0.007,6.201,0.213,9.283,0.531c3.375,0.348,7.17,0.621,9.006,0.02 + c-0.131,0.148-0.297,0.257-0.465,0.354c-0.168,0.095-0.348,0.178-0.529,0.256c-0.363,0.146-0.738,0.263-1.119,0.356 + c-0.055,0.014-0.111,0.026-0.17,0.039c1.834,0.339,2.9,0.616,3.016,0.646l0.217-0.035c0,0,0.279-1.2,0.363-1.816 + c0.08-0.614,0.123-1.235,0.117-1.854c-0.004-0.311-0.016-0.619-0.041-0.927c-0.014-0.156-0.576-0.646-1.062-0.925 + c-0.525-0.309-1.076-0.582-1.635-0.835c-0.559-0.266-1.131-0.504-1.705-0.735c-0.287-0.116-4.271-0.999-6.799-1.325 + c-0.309-0.04-1.969-1.208-2.264-1.314c0.617,0.102,5.678,0.554,9.334,1.527c-2.768-7.234-8.197-10.562-15.424-10.562 + c-7.137,0-12.517,3.445-15.312,10.5v0.233c0.983-0.205,8.822-1.402,9.412-1.501c-0.293,0.108-1.971,1.401-2.26,1.512 + c-0.291,0.11-4.174,0.624-5.262,0.821c-0.535,0.098-1.243,0.24-1.891,0.391v5.543c1.793,0.011,3.917-0.163,5.904-0.368 + C379.027,64.425,382.117,64.219,385.226,64.212z M380.585,53.992v-2.705v-1.187h9.703v1.187v2.705v1.186h-2.758v-1.135h-0.621 + v4.064h0.939v1.187v1.748v1.188h-4.824v-1.188v-1.748v-1.187h0.934v-4.064h-0.619v1.135h-2.754V53.992z"/> + <path fill="#FFFFFF" d="M387.433,87.507c-0.314-0.328-0.596-0.636-0.814-0.882c-0.109,0.246-0.252,0.571-0.439,0.992h0.055 + c0.15,0,0.314-0.018,0.473-0.025C386.947,87.571,387.187,87.54,387.433,87.507z"/> + <path fill="#FFFFFF" d="M398.941,78.376l-0.939,0.657c-0.061,0.042-0.139,0.063-0.215,0.055l-9.311-1.058l-0.139-0.017 + l-0.541-0.06c-0.123-0.015-0.23-0.103-0.266-0.226l-1.459-4.799c-0.242-0.031-0.461-0.048-0.643-0.048 + c-0.184,0-0.398,0.017-0.643,0.048l-1.414,4.661c-0.033,0.107-0.123,0.19-0.236,0.216l-0.678,0.15l-9.248,2.06 + c-0.021,0.005-0.045,0.007-0.066,0.007c-0.064,0-0.129-0.02-0.186-0.058l-0.359-0.25l-1.08-0.757v-0.003l-0.438-0.306 + c0.031,0.101,0.066,0.197,0.102,0.291v0.003c0.029,0.091,0.162,0.476,0.404,1.041c0.41,0.971,1.141,2.479,2.215,3.968 + c1.82-0.536,3.396-1.035,3.898-1.195c1.025-1.58,2.486-3.148,3.521-3.202c0.18-0.008,0.367-0.013,0.549-0.013 + c0.51,0,0.992,0.035,1.443,0.088c-0.381-0.346-0.459-0.752-0.516-0.933c0,0,1.322,1.035,3.01,0.818 + c1.686-0.217,2.732-1.189,2.732-1.189s-0.006,0.709-0.74,1.258c1.412-0.428,1.996-0.573,2.398-0.573 + c0.441,0,0.658,0.184,0.848,0.346c0.039,0.03,0.074,0.062,0.117,0.095c1.084,0.856,2.391,1.895,2.773,2.2 + c0.441,0.051,1.848,0.21,2.73,0.291c0.508,0.048,0.971,0.085,1.42,0.085c0.145,0,0.281-0.005,0.41-0.012 + c0.467-0.894,0.896-1.883,1.277-2.969c0.096-0.273,0.189-0.553,0.279-0.838c0.061-0.22,0.117-0.44,0.172-0.663l-0.32,0.225 + L398.941,78.376z"/> + <path fill="#FFFFFF" d="M373.652,77.374l7.582-1.686l1.42-4.676c0.023-0.078,0.076-0.143,0.145-0.181 + c0.021-0.015,0.045-0.027,0.072-0.032c0.043-0.013,0.801-0.229,1.678-0.336l1.391-0.84c0.416-0.253,0.818-0.544,1.199-0.852 + c-0.547-0.008-1.1-0.016-1.664-0.016c-2.316,0-4.48,0.096-6.441,0.243c-1.967,0.963-3.17,1.755-3.197,1.774l-1.889,1.261 + l1.297-1.862c0.215-0.311,0.441-0.604,0.674-0.882c-2.178,0.243-3.992,0.531-5.348,0.782l0.693,5.628L373.652,77.374z + M376.439,74.338c-0.094-0.208-0.154-0.499-0.17-0.899c-0.059-1.539,0.891-2.803,1.873-2.812c0.98-0.01,1.666,1.237,1.68,2.779 + c0.016,1.541-0.801,1.446-1.781,1.455c-0.102,0.006-0.195,0.007-0.289,0.007c-0.109,0.001-0.215,0.004-0.316,0.001 + c-0.953-0.001-1.561-0.045-2.102,0.247C375.345,75.082,375.583,74.554,376.439,74.338z"/> + <path fill="#FFFFFF" d="M387.847,87.928c-0.365,0.072-0.736,0.128-1.117,0.16c-0.158,0.008-0.311,0.021-0.477,0.021l-0.248,0.002 + l-0.094-0.002c-1.006,1.496-3.236,1.786-3.338,1.799c-0.094,0.01-0.166,0.022-0.271,0.043c1.244,0.341,2.512,0.488,3.764,0.403 + c1.256-0.084,2.885-0.356,4.615-1.057c-1.029-0.076-1.965-0.505-2.721-1.252C387.921,88.005,387.886,87.968,387.847,87.928z"/> + <path fill="#FFFFFF" d="M392.359,72.226c0.277-0.005,0.498-0.233,0.492-0.509c-0.004-0.279-0.232-0.5-0.508-0.494 + c-0.279,0.006-0.5,0.233-0.494,0.511C391.853,72.01,392.082,72.23,392.359,72.226z"/> + <rect x="386.91" y="58.107" fill="#FFFFFF" width="0.939" height="1.187"/> + <rect x="380.585" y="50.101" fill="#FFFFFF" width="9.703" height="1.187"/> + <rect x="383.025" y="58.107" fill="#FFFFFF" width="0.934" height="1.187"/> + <path fill="#FFFFFF" d="M378.308,72.598c0.275-0.006,0.494-0.237,0.488-0.515c-0.01-0.277-0.242-0.496-0.516-0.486 + c-0.279,0.005-0.496,0.238-0.488,0.513C377.798,72.387,378.029,72.605,378.308,72.598z"/> + <path fill="#FFFFFF" d="M386.191,70.419l-0.182,0.013c0.994,0.085,1.932,0.353,1.979,0.368c0.102,0.03,0.182,0.108,0.213,0.213 + l1.416,4.653l7.574,0.862l2.408-1.688l0.682-4.788c-1.926-0.351-4.748-0.774-8.201-1.04 + C388.96,70.088,386.347,70.408,386.191,70.419z M394.431,72.974c0.033,0.425-0.014,0.732-0.117,0.962 + c0.912-0.108,1.117,0.512,1.129,0.548c-0.662-0.319-1.385,0.085-2.705,0.11c-0.979,0.035-1.803,0.046-1.857-1.494 + c-0.055-1.543,0.574-2.818,1.557-2.853C393.416,70.213,394.312,71.437,394.431,72.974z"/> + <path fill="#A2B7BE" d="M390.88,73.1c0.055,1.54,0.879,1.529,1.857,1.494c1.32-0.025,2.043-0.43,2.705-0.11 + c-0.012-0.036-0.217-0.656-1.129-0.548c0.104-0.229,0.15-0.537,0.117-0.962c-0.119-1.537-1.016-2.761-1.994-2.727 + C391.455,70.281,390.826,71.557,390.88,73.1z M392.343,71.223c0.275-0.006,0.504,0.215,0.508,0.494 + c0.006,0.275-0.215,0.504-0.492,0.509s-0.506-0.216-0.51-0.492C391.843,71.456,392.064,71.229,392.343,71.223z"/> + <path fill="#A2B7BE" d="M377.435,74.869c0.102,0.003,0.207,0,0.316-0.001c0.094,0,0.188-0.001,0.289-0.007 + c0.98-0.009,1.797,0.086,1.781-1.455c-0.014-1.542-0.699-2.789-1.68-2.779c-0.982,0.009-1.932,1.272-1.873,2.812 + c0.016,0.4,0.076,0.691,0.17,0.899c-0.855,0.216-1.094,0.744-1.105,0.778C375.875,74.824,376.482,74.868,377.435,74.869z + M378.281,71.597c0.273-0.01,0.506,0.209,0.516,0.486c0.006,0.277-0.213,0.509-0.488,0.515c-0.279,0.008-0.51-0.211-0.516-0.488 + C377.785,71.835,378.001,71.602,378.281,71.597z"/> + <polygon fill="#A2B7BE" points="383.339,54.043 383.958,54.043 383.958,52.856 383.339,52.856 383.339,53.992 380.585,53.992 + 380.585,55.178 383.339,55.178 "/> + <polygon fill="#A2B7BE" points="387.531,52.856 386.91,52.856 386.91,54.043 387.531,54.043 387.531,55.178 390.289,55.178 + 390.289,53.992 387.531,53.992 "/> + <rect x="383.025" y="61.042" fill="#A2B7BE" width="4.824" height="1.188"/> + <polygon fill="#A2B7BE" points="383.339,52.856 383.958,52.856 383.958,54.043 383.958,58.107 383.958,59.294 383.025,59.294 + 383.025,61.042 387.849,61.042 387.849,59.294 386.91,59.294 386.91,58.107 386.91,54.043 386.91,52.856 387.531,52.856 + 387.531,53.992 390.289,53.992 390.289,51.287 380.585,51.287 380.585,53.992 383.339,53.992 "/> + <path fill="#A2B7BE" d="M406.431,62.681c-0.014-0.333-0.049-0.664-0.096-0.995c-0.021-0.165-0.047-0.331-0.082-0.496 + c-0.031-0.168-0.064-0.324-0.117-0.506l-0.035-0.131l-0.092-0.072c-0.523-0.411-1.09-0.722-1.664-0.998 + c-0.475-0.224-0.957-0.418-1.443-0.598c-1.359-3.77-3.693-7.11-6.762-9.439c-3.174-2.407-6.906-3.681-10.791-3.681 + c-3.887,0-7.617,1.273-10.791,3.681c-1.768,1.342-3.288,3.024-4.521,4.928v1.513c2.243-3.688,7.053-9.286,15.6-9.286 + c0,0,11.656-0.199,16.201,12.149c0,0,3.26,1.581,3.557,2.271c0.293,0.691,0.592,1.187,0.293,3.458 + c-0.293,2.271-0.492,4.05-3.357,4.248l-0.395,5.036l-1.283,2.47c0,0-1.975,13.829-14.225,14.226 + c-12.332,0.396-15.902-12.941-15.902-12.941l-0.488-2.302v2.704l0.064,0.045c0.018,0.067,0.039,0.134,0.059,0.2 + c0.027,0.095,0.055,0.188,0.084,0.28l0.27,0.812c0.588,1.835,1.424,3.491,2.441,4.944c-0.049,0.013-0.098,0.03-0.146,0.044 + c-0.469-0.218-1.833-0.85-2.771-1.28v2.372c0.482,0.704,1.031,1.478,1.537,2.129c1.174,1.506,2.779,3.047,5.811,3.047 + c0.367,0,0.746-0.023,1.139-0.067c0.906-0.103,1.584-0.185,2.102-0.251c3.182,1.168,6.689,1.24,10.02-0.02 + c0.91-0.346,1.74-0.768,2.502-1.238c0.018-0.001,0.033-0.005,0.047-0.01c1.238-0.299,2.643-0.632,3.336-0.827 + c0.113-0.03,0.25-0.064,0.395-0.098c0.967-0.224,2.582-0.597,3.443-2.32c0.867-1.737,2.283-4.4,2.299-4.429l0.662-1.242 + l-1.291,0.561c-0.068,0.03-1.703,0.742-2.551,1.188c-0.031,0.015-0.064,0.032-0.1,0.046c0.689-1.405,1.035-2.529,1.156-2.959 + l0.469-1.921l1.342-3c0,0,0.373-3.278,0.381-3.275l0.133-1.253c0.117-0.051,0.834-0.1,0.975-0.155 + c0.199-0.08,0.398-0.157,0.6-0.244l0.295-0.133c0.102-0.049,0.193-0.094,0.309-0.149l0.102-0.054l0.07-0.105 + c0.035-0.056,0.055-0.089,0.08-0.131l0.062-0.115c0.045-0.08,0.084-0.158,0.119-0.235c0.074-0.158,0.141-0.316,0.205-0.474 + c0.123-0.317,0.229-0.637,0.32-0.96c0.176-0.649,0.299-1.304,0.369-1.965C406.449,64.015,406.464,63.347,406.431,62.681z"/> + <path fill="#A2B7BE" d="M385.349,47.611c7.227,0,12.656,3.328,15.424,10.562c-3.656-0.974-8.717-1.426-9.334-1.527 + c0.295,0.106,1.955,1.274,2.264,1.314c2.527,0.326,6.512,1.209,6.799,1.325c0.574,0.231,1.146,0.47,1.705,0.735 + c0.559,0.253,1.109,0.526,1.635,0.835c0.486,0.279,1.049,0.769,1.062,0.925c0.025,0.308,0.037,0.616,0.041,0.927 + c0.006,0.619-0.037,1.24-0.117,1.854c-0.084,0.616-0.363,1.816-0.363,1.816l-0.217,0.035c-0.115-0.03-1.182-0.308-3.016-0.646 + c0.059-0.013,0.115-0.025,0.17-0.039c0.381-0.094,0.756-0.211,1.119-0.356c0.182-0.078,0.361-0.161,0.529-0.256 + c0.168-0.097,0.334-0.205,0.465-0.354c-1.836,0.602-5.631,0.328-9.006-0.02c-3.082-0.318-6.176-0.524-9.283-0.531 + c-3.109,0.007-6.199,0.213-9.285,0.531c-1.987,0.205-4.111,0.379-5.904,0.368v10.104l0.488,2.302c0,0,3.57,13.337,15.902,12.941 + c12.25-0.396,14.225-14.226,14.225-14.226l1.283-2.47l0.395-5.036c2.865-0.198,3.064-1.978,3.357-4.248 + c0.299-2.271,0-2.767-0.293-3.458c-0.297-0.69-3.557-2.271-3.557-2.271c-4.545-12.349-16.201-12.149-16.201-12.149 + c-8.547,0-13.356,5.599-15.6,9.286v2.225C372.833,51.056,378.212,47.611,385.349,47.611z M375.917,69.291 + c-0.232,0.278-0.459,0.571-0.674,0.882l-1.297,1.862l1.889-1.261c0.027-0.02,1.23-0.812,3.197-1.774 + c1.961-0.147,4.125-0.243,6.441-0.243c0.564,0,1.117,0.008,1.664,0.016c-0.381,0.308-0.783,0.599-1.199,0.852l-1.391,0.84 + c-0.877,0.107-1.635,0.323-1.678,0.336c-0.027,0.005-0.051,0.018-0.072,0.032c-0.068,0.038-0.121,0.103-0.145,0.181l-1.42,4.676 + l-7.582,1.686l-2.389-1.673l-0.693-5.628C371.925,69.822,373.74,69.534,375.917,69.291z M386.066,90.354 + c-1.252,0.085-2.52-0.062-3.764-0.403c0.105-0.021,0.178-0.033,0.271-0.043c0.102-0.013,2.332-0.303,3.338-1.799l0.094,0.002 + l0.248-0.002c0.166,0,0.318-0.013,0.477-0.021c0.381-0.032,0.752-0.088,1.117-0.16c0.039,0.04,0.074,0.077,0.113,0.117 + c0.756,0.747,1.691,1.176,2.721,1.252C388.951,89.997,387.322,90.27,386.066,90.354z M386.179,87.617 + c0.188-0.421,0.33-0.746,0.439-0.992c0.219,0.246,0.5,0.554,0.814,0.882c-0.246,0.033-0.486,0.064-0.727,0.085 + c-0.158,0.008-0.322,0.025-0.473,0.025H386.179z M399.955,78.21c-0.09,0.285-0.184,0.564-0.279,0.838 + c-0.381,1.086-0.811,2.075-1.277,2.969c-0.129,0.007-0.266,0.012-0.41,0.012c-0.449,0-0.912-0.037-1.42-0.085 + c-0.883-0.081-2.289-0.24-2.73-0.291c-0.383-0.306-1.689-1.344-2.773-2.2c-0.043-0.032-0.078-0.064-0.117-0.095 + c-0.189-0.162-0.406-0.346-0.848-0.346c-0.402,0-0.986,0.146-2.398,0.573c0.734-0.549,0.74-1.258,0.74-1.258 + s-1.047,0.973-2.732,1.189c-1.688,0.217-3.01-0.818-3.01-0.818c0.057,0.181,0.135,0.587,0.516,0.933 + c-0.451-0.053-0.934-0.088-1.443-0.088c-0.182,0-0.369,0.005-0.549,0.013c-1.035,0.054-2.496,1.622-3.521,3.202 + c-0.502,0.16-2.078,0.659-3.898,1.195c-1.074-1.488-1.805-2.997-2.215-3.968c-0.242-0.565-0.375-0.95-0.404-1.041v-0.003 + c-0.035-0.094-0.07-0.19-0.102-0.291l0.438,0.306v0.003l1.08,0.757l0.359,0.25c0.057,0.038,0.121,0.058,0.186,0.058 + c0.021,0,0.045-0.002,0.066-0.007l9.248-2.06l0.678-0.15c0.113-0.025,0.203-0.108,0.236-0.216l1.414-4.661 + c0.244-0.031,0.459-0.048,0.643-0.048c0.182,0,0.4,0.017,0.643,0.048l1.459,4.799c0.035,0.123,0.143,0.211,0.266,0.226l0.541,0.06 + l0.139,0.017l9.311,1.058c0.076,0.009,0.154-0.013,0.215-0.055l0.939-0.657l0.865-0.604l0.32-0.225 + C400.072,77.77,400.015,77.99,399.955,78.21z M399.599,74.841l-2.408,1.688l-7.574-0.862l-1.416-4.653 + c-0.031-0.104-0.111-0.183-0.213-0.213c-0.047-0.016-0.984-0.283-1.979-0.368l0.182-0.013c0.156-0.011,2.77-0.331,5.889-1.406 + c3.453,0.266,6.275,0.689,8.201,1.04L399.599,74.841z"/> + <path fill="#A2B7BE" d="M377.189,58.355c0.289-0.11,1.967-1.403,2.26-1.512c-0.59,0.099-8.429,1.296-9.412,1.501v1.223 + c0.647-0.151,1.355-0.293,1.891-0.391C373.015,58.979,376.898,58.466,377.189,58.355z"/> + <path fill="#FFFFFF" d="M369.929,58.368c0.016-0.005,0.065-0.015,0.107-0.023v-0.233C370.002,58.199,369.963,58.28,369.929,58.368 + z"/> + </g> +</g> +</svg> diff --git a/bridgedb/https/templates/base.html b/bridgedb/https/templates/base.html index 8097c60..86bf85d 100644 --- a/bridgedb/https/templates/base.html +++ b/bridgedb/https/templates/base.html @@ -8,6 +8,7 @@ <head> <meta charset="utf-8"> <title>BridgeDB</title> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="Tor Bridges"> <meta name="author" content="The Tor Project"> diff --git a/bridgedb/https/templates/error-404.html b/bridgedb/https/templates/error-404.html new file mode 100644 index 0000000..1e46b1c --- /dev/null +++ b/bridgedb/https/templates/error-404.html @@ -0,0 +1,39 @@ +## -*- coding: utf-8 -*- + +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>BridgeDB - 404</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content="Bridge IP database"> + <meta name="author" content="The Tor Project"> + + <!-- Le styles --> + <link rel="stylesheet" href="/assets/css/main.css"> + <!--[if IE 7]> + <link rel="stylesheet" href="/assets/css/font-awesome-ie7.min.css"> + <![endif]--> + <link rel="stylesheet" href="/assets/css/error.css"> + </head> + <body> + <div class="application error error404"> + <main class="main main--error" role="main"> + <div class="error-bg full-size"> + <div class="top full-size"></div> + <div class="hill-left full-size"></div> + <div class="hill-right full-size"></div> + <div class="shadow-left full-size"></div> + <div class="shadow-right full-size"></div> + </div> + <div class="error-excavator full-size"></div> + <div class="error-text"> + <h1>Page Not Found</h1> + <p>We dug around for the page you requested, but we couldn't find it! + Please <a href="/">go back</a> and try again. + </p> + </div> + </main> + </div> + </body> +</html> diff --git a/bridgedb/https/templates/error-500.html b/bridgedb/https/templates/error-500.html new file mode 100644 index 0000000..5c56c39 --- /dev/null +++ b/bridgedb/https/templates/error-500.html @@ -0,0 +1,36 @@ +## -*- coding: utf-8 -*- + +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>BridgeDB - 500</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content="Bridge IP database"> + <meta name="author" content="The Tor Project"> + + <!-- Le styles --> + <link rel="stylesheet" href="/assets/css/main.css"> + <!--[if IE 7]> + <link rel="stylesheet" href="/assets/css/font-awesome-ie7.min.css"> + <![endif]--> + <link rel="stylesheet" href="/assets/css/error.css"> + </head> + <body> + <div class="application error error500"> + <main class="main main--error" role="main"> + <div class="error-bg full-size"> + <div class="hill-left full-size"></div> + <div class="hill-right full-size"></div> + <div class="shadow-left full-size"></div> + <div class="shadow-right full-size"></div> + </div> + <div class="road full-size"></div> + <div class="error-text"> + <h1>Bad News Bears</h1> + <p>Something wicked totally just borked <a href="/">BridgeDB</a>… :'(</p> + </div> + </main> + </div> + </body> +</html> diff --git a/bridgedb/https/templates/error-503.html b/bridgedb/https/templates/error-503.html new file mode 100644 index 0000000..c926743 --- /dev/null +++ b/bridgedb/https/templates/error-503.html @@ -0,0 +1,37 @@ +## -*- coding: utf-8 -*- + +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>BridgeDB - Under Maintenance</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content="Bridge IP database"> + <meta name="author" content="The Tor Project"> + + <!-- Le styles --> + <link rel="stylesheet" href="/assets/css/main.css"> + <!--[if IE 7]> + <link rel="stylesheet" href="/assets/css/font-awesome-ie7.min.css"> + <![endif]--> + <link rel="stylesheet" href="/assets/css/error.css"> + </head> + <body> + <div class="application error maintenance"> + <main class="main main--error" role="main"> + <div class="maintenance-bg full-size"> + <div class="hill-left full-size"></div> + <div class="hill-right full-size"></div> + <div class="shadow-left full-size"></div> + <div class="shadow-right full-size"></div> + </div> + <div class="maintenance-tractor full-size"></div> + <div class="maintenance-text"> + <h1>Under Maintenance</h1> + <p>Please try again in a minute… + <a href="/">BridgeDB</a> will be back soon!</p> + </div> + </main> + </div> + </body> +</html> diff --git a/setup.py b/setup.py index 0402391..e92afee 100644 --- a/setup.py +++ b/setup.py @@ -174,7 +174,8 @@ def get_template_files(): 'assets/font/*.ttf', 'assets/font/*.svg', 'assets/font/*.eot', - 'assets/js/*.js'] + 'assets/js/*.js', + 'assets/images/*.svg'] template_files = [] for include_pattern in include_patterns: diff --git a/test/test_https.py b/test/test_https.py index 2a12eee..c1c9772 100644 --- a/test/test_https.py +++ b/test/test_https.py @@ -172,6 +172,15 @@ class HTTPTests(unittest.TestCase): self.assertIn("Content-Security-Policy", headers) self.assertIn("default-src 'none';", headers) + def test_404(self): + """Asking for a non-existent resource should yield our custom 404 page, + but we can't actually check because Mechanize flips out if we get + anything response code other than 200. :/ + """ + page = '/'.join([HTTP_ROOT, '404']) + self.openBrowser() + self.assertRaises(mechanize.HTTPError, self.br.open, page) + def test_get_obfs2_ipv4(self): if os.environ.get("CI"): if not self.pid or not processExists(self.pid): diff --git a/test/test_https_server.py b/test/test_https_server.py index 020b050..ce388a1 100644 --- a/test/test_https_server.py +++ b/test/test_https_server.py @@ -116,13 +116,74 @@ class GetClientIPTests(unittest.TestCase): class ReplaceErrorPageTests(unittest.TestCase): """Tests for :func:`bridgedb.https.server.replaceErrorPage`.""" + def setUp(self): + self.resource500 = server.resource500 + + def tearDown(self): + server.resource500 = self.resource500 + def test_replaceErrorPage(self): - """``replaceErrorPage`` should return the expected html.""" + """``replaceErrorPage`` should return the error-500.html page.""" + request = DummyRequest(['']) exc = Exception("vegan gümmibären") - errorPage = server.replaceErrorPage(exc) - self.assertSubstring("Something went wrong", errorPage) + errorPage = server.replaceErrorPage(request, exc) + self.assertSubstring("Bad News Bears", errorPage) self.assertNotSubstring("vegan gümmibären", errorPage) + def test_replaceErrorPage_matches_resource500(self): + """``replaceErrorPage`` should return the error-500.html page.""" + request = DummyRequest(['']) + exc = Exception("vegan gümmibären") + errorPage = server.replaceErrorPage(request, exc) + error500Page = server.resource500.render(request) + self.assertEqual(errorPage, error500Page) + + def test_replaceErrorPage_no_resource500(self): + """If ``server.resource500`` is missing/broken, then + ``replaceErrorPage`` should return custom hardcoded HTML error text. + """ + request = DummyRequest(['']) + exc = Exception("vegan gümmibären") + server.resource500 = None + errorPage = server.replaceErrorPage(request, exc) + self.assertNotSubstring("Bad News Bears", errorPage) + self.assertNotSubstring("vegan gümmibären", errorPage) + self.assertSubstring("Sorry! Something went wrong with your request.", + errorPage) + +class ErrorResourceTests(unittest.TestCase): + """Tests for :class:`bridgedb.https.server.ErrorResource`.""" + + def setUp(self): + self.request = DummyRequest(['']) + + def test_resource404(self): + """``server.resource404`` should display the error-404.html page.""" + page = server.resource404.render(self.request) + self.assertSubstring('We dug around for the page you requested', page) + + def test_resource500(self): + """``server.resource500`` should display the error-500.html page.""" + page = server.resource500.render(self.request) + self.assertSubstring('Bad News Bears', page) + + def test_maintenance(self): + """``server.maintenance`` should display the error-503.html page.""" + page = server.maintenance.render(self.request) + self.assertSubstring('Under Maintenance', page) + + +class CustomErrorHandlingResourceTests(unittest.TestCase): + """Tests for :class:`bridgedb.https.server.CustomErrorHandlingResource`.""" + + def test_getChild(self): + """``CustomErrorHandlingResource.getChild`` should return a rendered + copy of ``server.resource404``. + """ + request = DummyRequest(['']) + resource = server.CustomErrorHandlingResource() + self.assertEqual(server.resource404, resource.getChild('foobar', request)) + class CSPResourceTests(unittest.TestCase): """Tests for :class:`bridgedb.HTTPServer.CSPResource`.""" @@ -279,7 +340,7 @@ class CaptchaProtectedResourceTests(unittest.TestCase): request = DummyRequest([self.pagename]) request.method = b'GET' page = self.captchaResource.render_GET(request) - errorPage = server.replaceErrorPage(Exception('kablam')) + errorPage = server.replaceErrorPage(request, Exception('kablam')) self.assertEqual(page, errorPage) finally: server.lookup = oldLookup @@ -423,7 +484,7 @@ class GimpCaptchaProtectedResourceTests(unittest.TestCase): server.lookup = None self.request.method = b'GET' page = self.captchaResource.render_GET(self.request) - errorPage = server.replaceErrorPage(Exception('kablam')) + errorPage = server.replaceErrorPage(self.request, Exception('kablam')) self.assertEqual(page, errorPage) finally: server.lookup = oldLookup @@ -583,7 +644,7 @@ class ReCaptchaProtectedResourceTests(unittest.TestCase): server.lookup = None self.request.method = b'GET' page = self.captchaResource.render_GET(self.request) - errorPage = server.replaceErrorPage(Exception('kablam')) + errorPage = server.replaceErrorPage(self.request, Exception('kablam')) self.assertEqual(page, errorPage) finally: server.lookup = oldLookup @@ -864,6 +925,26 @@ class BridgesResourceTests(unittest.TestCase): self.assertGreater(int(port), 0) self.assertLessEqual(int(port), 65535) + def test_renderAnswer_textplain_error(self): + """If we hit some error while returning bridge lines in text/plain + format, then our custom plaintext error message (the hardcoded HTML in + ``server.replaceErrorPage``) should be returned. + """ + self.useBenignBridges() + + request = DummyRequest([self.pagename]) + request.args.update({'format': ['plain']}) + request.getClientIP = lambda: '4.4.4.4' + request.method = b'GET' + + # We'll cause a TypeError here due to calling '\n'.join(None) + page = self.bridgesResource.renderAnswer(request, bridgeLines=None) + + # We don't want the fancy version: + self.assertNotSubstring("Bad News Bears", page) + self.assertSubstring("Sorry! Something went wrong with your request.", + page) + class OptionsResourceTests(unittest.TestCase): """Tests for :class:`bridgedb.https.server.OptionsResource`."""
[View Less]
1
0
0
0
[bridgedb/develop] Remove setup.py message_extractors for public/**.
by isis@torproject.org
26 Jul '15
26 Jul '15
commit cda6c56a72b2edd97a0baf4b19c936ca17cb5f49 Author: Isis Lovecruft <isis(a)torproject.org> Date: Sun Jul 26 12:11:56 2015 +0000 Remove setup.py message_extractors for public/**. --- setup.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/setup.py b/setup.py index e92afee..189d5b5 100644 --- a/setup.py +++ b/setup.py @@ -390,10 +390,10 @@ setuptools.setup( dependency_links=deplinks, package_data={'bridgedb': get_data_files(filesonly=
…
[View More]
True)}, exclude_package_data={'bridgedb': ['*.po', '*.pot']}, - message_extractors={pkgpath: [ - ('**.py', 'python', None), - ('https/templates/**.html', 'mako', None), - ('public/**', 'ignore', None)]}, + message_extractors={ + pkgpath: [ + ('**.py', 'python', None), + ('https/templates/**.html', 'mako', None), + ] + }, ) -# XXX I think we don't need the 'public/**' babel.messages.frontend.method_map -# anymore... 2013-10-15 --isis
[View Less]
1
0
0
0
[bridgedb/develop] Fail unittests if coverage falls below 80%.
by isis@torproject.org
26 Jul '15
26 Jul '15
commit 7ac1012b0aec147091f54dfdd0ee7def2daa879f Author: Isis Lovecruft <isis(a)torproject.org> Date: Sun Jul 26 12:11:03 2015 +0000 Fail unittests if coverage falls below 80%. --- .coveragerc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.coveragerc b/.coveragerc index a6288f5..04dc0a6 100644 --- a/.coveragerc +++ b/.coveragerc @@ -27,7 +27,7 @@ exclude_lines = # Ignore source code which cannot be found: ignore_errors = True # Exit with status code 2 if
…
[View More]
under this percentage is covered: -fail_under = 10 +fail_under = 80 [html] directory = doc/coverage-html
[View Less]
1
0
0
0
← Newer
1
...
24
25
26
27
28
29
30
...
125
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Results per page:
10
25
50
100
200