Browse Source

Add old and admin sites

pull/1/head
Czarlie 9 months ago
parent
commit
ce31b95507
100 changed files with 13682 additions and 0 deletions
  1. +96
    -0
      admin/LICENSES/material-icons
  2. +527
    -0
      admin/LICENSES/nova-icons.html
  3. +83
    -0
      admin/LICENSES/nova-icons_files/analytics.js
  4. +1
    -0
      admin/LICENSES/nova-icons_files/button.93a0c25c2d2f3081c705c98c2d9dec0e.js
  5. +5716
    -0
      admin/LICENSES/nova-icons_files/follow_button.c63890edc4243ee77048d507b181eeec.en.html
  6. +2
    -0
      admin/LICENSES/nova-icons_files/lazysizes.min.js
  7. +7
    -0
      admin/LICENSES/nova-icons_files/milligram-min.css
  8. +42
    -0
      admin/LICENSES/nova-icons_files/nova-logo-2019.svg
  9. +1
    -0
      admin/LICENSES/nova-icons_files/sticky.min.js
  10. +623
    -0
      admin/LICENSES/nova-icons_files/style.css
  11. +15
    -0
      admin/LICENSES/nova-icons_files/widget_iframe.c63890edc4243ee77048d507b181eeec.html
  12. +8
    -0
      admin/LICENSES/nova-icons_files/widgets.js
  13. +15
    -0
      admin/icons/barista/logo.svg
  14. +1
    -0
      admin/icons/other-icons/arrow-down.svg
  15. +1
    -0
      admin/icons/other-icons/check.svg
  16. +1
    -0
      admin/icons/other-icons/cross.svg
  17. +1
    -0
      admin/icons/other-icons/hash.svg
  18. +6
    -0
      admin/icons/other-icons/loading.svg
  19. +1
    -0
      admin/icons/other-icons/star.svg
  20. +1
    -0
      admin/icons/tab-icons/cafe.svg
  21. +1
    -0
      admin/icons/tab-icons/error.svg
  22. +1
    -0
      admin/icons/tab-icons/home.svg
  23. +1
    -0
      admin/icons/tab-icons/label-24px.svg
  24. +1
    -0
      admin/icons/tab-icons/log.svg
  25. +1
    -0
      admin/icons/tab-icons/map-marker.svg
  26. +20
    -0
      admin/icons/tab-icons/preferences.svg
  27. +1
    -0
      admin/icons/tab-icons/robot.svg
  28. +1
    -0
      admin/icons/tab-icons/settings.svg
  29. +1
    -0
      admin/icons/tab-icons/tea.svg
  30. +17
    -0
      admin/icons/tab-icons/ticket.svg
  31. +1
    -0
      admin/icons/tab-icons/user.svg
  32. +122
    -0
      admin/index.html
  33. +112
    -0
      admin/login.html
  34. +20
    -0
      admin/scripts/login_worker.js
  35. +824
    -0
      admin/scripts/main.js
  36. +584
    -0
      admin/scripts/tickets.js
  37. +1
    -0
      admin/scripts/tooltips.js
  38. +12
    -0
      admin/sites/bot-detection.html
  39. +12
    -0
      admin/sites/cafes.html
  40. +12
    -0
      admin/sites/config.html
  41. +12
    -0
      admin/sites/errors.html
  42. +12
    -0
      admin/sites/home.html
  43. +12
    -0
      admin/sites/logs.html
  44. +12
    -0
      admin/sites/preferences.html
  45. +12
    -0
      admin/sites/products.html
  46. +92
    -0
      admin/sites/tickets.html
  47. +12
    -0
      admin/sites/users.html
  48. +32
    -0
      admin/style/index.css
  49. +79
    -0
      admin/style/login.css
  50. +20
    -0
      admin/style/main.css
  51. +199
    -0
      admin/style/sidebar.css
  52. +297
    -0
      admin/style/subsite.css
  53. +2
    -0
      en/index.html
  54. BIN
      old/Bitter.woff2
  55. +60
    -0
      old/Hyphenopoly/.all-contributorsrc
  56. +141
    -0
      old/Hyphenopoly/.eslintrc
  57. +8
    -0
      old/Hyphenopoly/.travis.yml
  58. +216
    -0
      old/Hyphenopoly/CHANGELOG.md
  59. +981
    -0
      old/Hyphenopoly/Hyphenopoly.js
  60. +353
    -0
      old/Hyphenopoly/Hyphenopoly_Loader.js
  61. +21
    -0
      old/Hyphenopoly/LICENSE
  62. +182
    -0
      old/Hyphenopoly/README.md
  63. +3
    -0
      old/Hyphenopoly/docs/Branching-Model.md
  64. +95
    -0
      old/Hyphenopoly/docs/Coping-with-hyphenation-errors.md
  65. +33
    -0
      old/Hyphenopoly/docs/Download,-install-and-setup-for-deployment.md
  66. +115
    -0
      old/Hyphenopoly/docs/Events.md
  67. +7
    -0
      old/Hyphenopoly/docs/Gemfile
  68. +248
    -0
      old/Hyphenopoly/docs/Gemfile.lock
  69. +138
    -0
      old/Hyphenopoly/docs/Global-Hyphenopoly-Object.md
  70. +234
    -0
      old/Hyphenopoly/docs/Hyphenators.md
  71. +153
    -0
      old/Hyphenopoly/docs/Node-Module.md
  72. +505
    -0
      old/Hyphenopoly/docs/Setup.md
  73. +282
    -0
      old/Hyphenopoly/docs/Special-use-cases.md
  74. +57
    -0
      old/Hyphenopoly/docs/Usage-of-devDependencies.md
  75. +1
    -0
      old/Hyphenopoly/docs/_config.yml
  76. +1
    -0
      old/Hyphenopoly/docs/dist/index.html
  77. +9
    -0
      old/Hyphenopoly/docs/dist/js/hyphenopoly/Hyphenopoly.js
  78. BIN
      old/Hyphenopoly/docs/dist/js/hyphenopoly/patterns/de.wasm
  79. BIN
      old/Hyphenopoly/docs/dist/js/hyphenopoly/patterns/en-us.wasm
  80. BIN
      old/Hyphenopoly/docs/dist/js/hyphenopoly/patterns/es.wasm
  81. BIN
      old/Hyphenopoly/docs/dist/js/hyphenopoly/patterns/it.wasm
  82. +1
    -0
      old/Hyphenopoly/docs/dist/js/main.4ed9db5cdc68a8aa27cc.bundle.js
  83. +1
    -0
      old/Hyphenopoly/docs/dist/js/main.d9bab6d06a0682f5ff15.bundle.js
  84. +1
    -0
      old/Hyphenopoly/docs/dist/js/runtime.128aaed72608b13685d7.bundle.js
  85. +1
    -0
      old/Hyphenopoly/docs/dist/js/runtime.9aeb478c6c5b3465d2af.bundle.js
  86. +25
    -0
      old/Hyphenopoly/docs/dist/js/vendor_body.9097fa9c35779a1cbeca.bundle.js
  87. +10
    -0
      old/Hyphenopoly/docs/dist/js/vendor_head.09ed1a3cacffe89819d6.bundle.js
  88. +10
    -0
      old/Hyphenopoly/docs/dist/js/vendor_head.25990bd727f05ac4d643.bundle.js
  89. +34
    -0
      old/Hyphenopoly/docs/index.md
  90. +9
    -0
      old/Hyphenopoly/docs/min/Hyphenopoly.js
  91. +9
    -0
      old/Hyphenopoly/docs/min/Hyphenopoly_Loader.js
  92. +52
    -0
      old/Hyphenopoly/docs/min/example.html
  93. BIN
      old/Hyphenopoly/docs/min/patterns/af.wasm
  94. BIN
      old/Hyphenopoly/docs/min/patterns/as.wasm
  95. BIN
      old/Hyphenopoly/docs/min/patterns/be.wasm
  96. BIN
      old/Hyphenopoly/docs/min/patterns/bg.wasm
  97. BIN
      old/Hyphenopoly/docs/min/patterns/bn.wasm
  98. BIN
      old/Hyphenopoly/docs/min/patterns/ca.wasm
  99. BIN
      old/Hyphenopoly/docs/min/patterns/cop.wasm
  100. BIN
      old/Hyphenopoly/docs/min/patterns/cs.wasm

+ 96
- 0
admin/LICENSES/material-icons View File

@@ -0,0 +1,96 @@
Copyright (c) 2014, Austin Andrews (http://materialdesignicons.com/),
with Reserved Font Name Material Design Icons.
Copyright (c) 2014, Google (http://www.google.com/design/)
uses the license at https://github.com/google/material-design-icons/blob/master/LICENSE

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

+ 527
- 0
admin/LICENSES/nova-icons.html View File

@@ -0,0 +1,527 @@
<!DOCTYPE html>
<!-- saved from url=(0049)https://www.streamlineicons.com/nova/license.html -->
<html data-lt-installed="true" class=" ide314 idc314"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Standard License Agreement for Nova Icons </title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="4,000 Material Design Icons.">
<meta itemprop="name" content="Nova Icons">
<meta itemprop="description" content="4,000 Material Design Icons.">
<meta itemprop="image" content="https://www.webalys.com/nova/img/nova-styles.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@webalys">
<meta name="twitter:title" content="Nova icons">
<meta name="twitter:description" content="4,000 Material Design Icons.">
<meta name="twitter:creator" content="@webalys">
<meta name="twitter:image:src" content="https://www.webalys.com/nova/img/nova-styles.png">
<meta property="og:title" content="Nova Icons">
<meta property="og:type" content="article">
<meta property="og:url" content="https://www.webalys.com/nova">
<meta property="og:image" content="https://www.webalys.com/nova/img/nova-styles.png">
<meta property="og:description" content="4,000 Material Design Icons.">
<meta property="og:site_name" content="Nova Icons">
<link rel="shortcut icon" href="https://www.streamlineicons.com/favicon.ico" type="image/x-icon">
<link rel="icon" href="https://www.streamlineicons.com/favicon.ico" type="image/x-icon"><!-- Styles -->
<link rel="stylesheet" href="./nova-icons_files/milligram-min.css">
<link rel="stylesheet" href="./nova-icons_files/style.css"><script async="" src="./nova-icons_files/analytics.js"></script><script src="./nova-icons_files/lazysizes.min.js" async=""></script>
<script data-dapp-detection="">
(function() {
let alreadyInsertedMetaTag = false

function __insertDappDetected() {
if (!alreadyInsertedMetaTag) {
const meta = document.createElement('meta')
meta.name = 'dapp-detected'
document.head.appendChild(meta)
alreadyInsertedMetaTag = true
}
}

if (window.hasOwnProperty('web3')) {
// Note a closure can't be used for this var because some sites like
// www.wnyc.org do a second script execution via eval for some reason.
window.__disableDappDetectionInsertion = true
// Likely oldWeb3 is undefined and it has a property only because
// we defined it. Some sites like wnyc.org are evaling all scripts
// that exist again, so this is protection against multiple calls.
if (window.web3 === undefined) {
return
}
__insertDappDetected()
} else {
var oldWeb3 = window.web3
Object.defineProperty(window, 'web3', {
configurable: true,
set: function (val) {
if (!window.__disableDappDetectionInsertion)
__insertDappDetected()
oldWeb3 = val
},
get: function () {
if (!window.__disableDappDetectionInsertion)
__insertDappDetected()
return oldWeb3
}
})
}
})()</script><script charset="utf-8" src="./nova-icons_files/button.93a0c25c2d2f3081c705c98c2d9dec0e.js"></script></head>
<body>
<!-- MENU-->
<div style="padding:1.5em 0 0 0" class="container">
<div class="row menu">
<div class="column logo-home column-20"><a href="https://www.streamlineicons.com/nova/index.html"><img src="./nova-icons_files/nova-logo-2019.svg"></a></div>
<div class="column menu-items column-80"><a href="https://www.streamlineicons.com/nova/free-icons.html">Free Pack</a><a href="https://www.streamlineicons.com/nova/ultimate-pack.html">Full Pack </a><a href="https://www.streamlineicons.com/nova/license.html">License</a><a href="https://www.streamlineicons.com/nova/contact.html">Contact</a></div>
</div>
</div>
<div class="container">
<div class="row">
<div class="column">
<h1>Standard License </h1>
</div>
</div>
<div class="row">
<div class="column intro">
<p class="large"><b>✅ In short, you can use the Nova Icons for: </b><br>- An unlimited number of commercial or personal projects<br>- An unlimited number of users for the applications, websites, software you will build using the Nova Icons , if you use less than 100 icons per project.<br>- Any type of projects: templates, website design, application design... even logos!<br>- For yourself or on behalf of a client</p>
<p class="large"><strong>🚫 But you're limited in 2 ways:</strong><br>- No more than 100 icons per project/website/application. <br>- No more than 5 employees/partners/team members in your organization can use it</p><br>
<p class="large"><strong>If you want to remove these limitations, buy the extended License:</strong><br><br><a href="https://www.streamlineicons.com/nova/license-extended.html" class="btn-solid">View the Extended License </a></p>
</div>
</div>
</div>
<div class="container-gray">
<div class="container">
<div class="row">
<div class="column long-text">
<h1>License agreement<br>and terms of use</h1><br><br>
<p>This agreement covers the products you license from Webalys, unless and until we enter into a new agreement that expressly replaces this one. If you use the Webalys products as an employee/partner of or for the benefit of your company, you represent that you have the power and authority to accept this agreement on behalf of your company. Your company will be the licensee under this agreement. By downloading or installing or using the Webalys products, you consent to the terms and conditions of this agreement on behalf of yourself and the company on whose behalf you will use the Webalys products provided under this agreement. The effective date of this agreement is the date that you first download, install or use the Webalys products. If you do not agree to the terms and conditions of this agreement or if you do not have the power and authority to accept the terms and conditions of this agreement on behalf of your company, you may not use the Webalys products and Webalys is unwilling to provide you with them.</p>
<h3>1) Definitions:</h3>
<ul>
<li>
a) Agreement –
This License Agreement which shall be in effect and bind you and Webalys the moment you download or buy the licensed products of Webalys; unless another agreement expressly replaces it.
</li>
<li>
b) Webalys –
is the company that has produced, created the ‘Nova’ icons for personal and commercial use and under this License Agreement is extending it for further use.
</li>
<li>
c) ‘You’/ ‘Your’ –
You are the client of Webalys if you are visiting the site of Webalys and have the intention of licensing the ‘Nova’ icons for your personal or commercial use. ‘You’ may be an individual, a company, employees of a company, partners of a company or freelancers hired to work. This definition is not comprehensive although it includes all of the above but may not be limited to it.
</li>
<li>
d) Employees/ Partners/ Team Members –
are employees/ partners of a company, partnership firm who are employed by that company in some manner, working on a project/ website/ template and need to use the ‘Nova’ icons to integrate them into the company’s projects/ website for further commercial use and profit of the Company. They are clearly distinguished from the ‘End Users’ of Webalys products defined in 1(e). <br><b>Only five (5) such employees/ partners/ team members are allowed to use the ‘Nova’ icons at one time unless the company purchases an Extended License on their behalf to increase such users. </b>This definition is not comprehensive although it includes all of the above but may not be limited to it.
</li>
<li>
e) Users/ End Users –
The End Users may also be the users of the projects/ websites developed by the companies or partnership firms mentioned in 1(b) and (d) where the icons have already been integrated into such projects. <br>There is no limit on the number of such End Users who may use/visit such projects/websites.
</li>
<li>
f) Products –
The ‘Nova’ icons designed, created and made available by the proprietor of Webalys on Webalys website. The Products are not sold but are licensed for further use. All the intellectual property rights with regards to the Products lie with the proprietor of Webalys. These product may be available for free download as per the Agreement.
</li>
<li>
g) Intellectual Property –
intellectual property (IP) refers to creations of the mind, such as inventions; literary and artistic works; designs; and symbols, names and images used in commerce. In this case, ‘Webalys’ in all artistic forms and all of its proprietary information and/or designs available on the website belong to the proprietor of Webalys. Any intentional or un-intentional use or misuse of these Intellectual property without the permission of Webalys may attract legal actions and consequences.
</li>
</ul>
<h3> 2) Products and Services</h3>
<ul>
<li>a) The Webalys products that you may license or use free of cost under this agreement are identified hereunder that you and Webalys enter into from time to time under this agreement. These products and services may include (but are not limited to):

<ul>
<li> <b>i) Nova Icons . Free Icons - </b>You can download the free pack provided by Webalys and use it for personal and/or commercial for any number of projects. </li>
<li><b>ii) Nova Icons . Standard License – </b>Icons can be used in any number of projects/ website as long as they are limited to a MAXIMUM of 100 icons per project/ website. If you need more than 100 icons in one project/ website, you may have to buy an extended license. Up to five (5) employees/ partners in a company or partnership firm are allowed to use the Nova Icons .</li>
<li><b>iii) Nova Icons . Extended License – </b>If you have more than five (5) employees/ partners who may need to use the Nova Icons in the company’s project/ venture, then you have to buy an ‘Extended License’. All the terms of this License Agreement are also valid and extend to the ‘Extended License’. </li>
<li><b>iv) Unlimited Icon License - </b>If you wish to use more than 100 icons, you can buy an ‘Unlimited Icon License’. Again, the terms of use of an ‘Unlimited Icon License’ is similar to the terms of use as per this Agreement unless specified otherwise.</li>
</ul>
</li>
<li>b) You have to purchase both the licenses – Extended License and Unlimited Icon License – if you wish to use more than 100 icons for more than 5 employees/ partners
</li>
<li>c) For all the above products and licenses, you will receive a download link in your registered email id as soon as the payment is completed as per the license you may have purchased. This link shall be valid for a period of one year.</li>
</ul>
<h3>3) Your License Rights</h3>
<p>
Your License Rights: When you purchase a license to a Licensed Product, upon its delivery you will have a non-exclusive right to:
</p>
<ul>
<li>i) Install the Licensed Product on one or more computers;</li>
<li>ii) Allow more than one employee/ partner to use the Nova Icons if the license permits so. </li>
<li>iii) Modify in shape, size, color, and/or file/format.</li>
<li>iv) Use them in unlimited personal or commercial use as per the license purchased.</li>
<li>v) make a reasonable number of copies of the licensed Product solely for backup or archival purposes</li>
<li>vi) Make, develop, sell integrated designs, software, services, web-based products only to the extent that the Licensed Products are integrated/ embedded into the new creation and is not in the original form as the licensed Product. 
</li>
</ul>
<h3>4) Restrictions</h3>
<p> You may not (and may not allow anyone else to):
</p>
<ul>
<li>a) Cannot sell them as individual products solely for the purpose of re-selling.</li>
<li>b) Cannot modify their original design/artwork so as to render them unrecognizable from their original state with the goal to resell them
</li>
<li>c) Cannot be sublicensed, rented or transferred or assigned to anyone without express permit.</li>
<li>d) Cannot use icons to sell products like patterns, stickers or t-shirts where Nova Icons may provide the most and/or only commercial value to that product. </li>
<li>e) Use the licensed Product or its output to develop or enhance any product that competes with a Webalys product</li>
</ul>
<h3>5) Conditions</h3>
<p>Your right to use the licensed Product is conditioned upon your timely payment of the full amount of Fees due for the Licensed Product and your compliance with the terms of this agreement, including the following restrictions.</p>
<h3>6) Transfers and Assignments</h3>
<p>You may not transfer or assign your license rights to any other person in any manner (by assignment, operation of law or otherwise) unless you have obtained written consent from Webalys. If you attempt to transfer or assign any of your license rights without Webalys's consent, the transfer or assignment will be ineffective, null, and void (and you will be in material breach of this agreement).</p>
<h3>7) Warranty</h3>
<p>All products of Webalys are provided "as is," without any warranty of any kind, and webalys further disclaims all other warranties, express, implied or statutory, with respect to open source software, including but not limited to the implied warranties of non-infringement, merchantability and fitness for a particular purpose. Webalys shall not have any liability for any direct, indirect, incidental, special, exemplary, or consequential damages (including without limitation lost profits), however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use or distribution of the open source software, even if advised of the possibility of such damages. 
</p>
<h3>8) Order and Delivery</h3>
<p>
Ordering Webalys Products:
You may order the Licensed Products at any time by submitting an order to Webalys through Webalys's on-line ordering system or as otherwise directed by Webalys. When using Webalys's on-line ordering system, you shall be responsible for ensuring that all information you provide is accurate and complete and that any person placing an order on your behalf has your authority to do so. Once you submit an order, you may not cancel or change it. Your order must indicate which products you want to purchase (including, in the case of Licensed Products, the type of license, the quantity, the License Term) and any other information Webalys would need to fulfill your order. Webalys may, in its reasonable discretion, accept or reject your order. Webalys may accept your order by sending you written or electronic notice of acceptance or simply by fulfilling your order. If you wish to take a refund of your payment, Webalys refunds in 30 days from the date the final and successful payment was made in full. Webalys follows a no-question policy.
</p>
<h3>9) Payment</h3>
<p>All payments are to be done in U.S. dollar currency through the on-line ordering and payment system on Webalys website. As soon as a successful payment is established, an email shall be sent on your registered email id with the download link for the purchased license and further information. </p>
<h3>10) Confidentiality</h3>
<ul>
<li>
a) Confidentiality Obligations:
Each party (you and Webalys) agrees to abide by the following confidentiality obligations with respect to the other party's Confidential Information:
<ul>
<li>
i) do not disclose it to any third party unless (i) the other party has given its specific and express prior written approval, (ii) the disclosure is expressly allowed under this agreement, or (iii) the disclosure is necessary to comply with a valid court order or subpoena;
</li>
<li>
ii) do not use it for any reason other than to exercise its rights and perform its obligation under this agreement; and
</li>
<li>iii) protect it from unauthorized dissemination in the same manner as that party protects its own Confidential Information, and in any event with reasonable precautions (which include limiting access to employees and contractors on a "need-to-know" basis).</li>
</ul>
</li>
<li>
b) Mandatory Disclosures:
If you believe you must disclose Webalys's Confidential Information in order to comply with a valid court order or subpoena, you must promptly notify Webalys and cooperate with Webalys if Webalys chooses to contest the disclosure requirement, seek confidential treatment of the information to be disclosed, or to limit the nature or scope of the information to be disclosed. Webalys will do the same if it believes it must disclose your Confidential Information in these circumstances.
</li>
<li>
c) Additional Obligations:
In addition to your general obligations of confidentiality regarding the Licensed Products, you must take the following steps to help prevent any unauthorized access to or use of the same:
<ul>
<li>
i) you must ensure that each end user who is your independent contractor (not your employee) has access to and uses the Licensed Products only while working on your physical premises; and
</li>
<li>ii) you must monitor each end user's use of the Licensed Products to ensure that the end user abides by the terms of this agreement.</li>
</ul>
</li>
</ul>
<h3>11) Term and Termination</h3>
<ul>
<li>
a) Term of Agreement:
The term of this agreement will begin on the effective&nbsp;date&nbsp;that you first use the products and will be in effect in perpetuity unless this agreement is terminated sooner by either party.
</li>
<li>
b) ights to Terminate:
Each party has the right to terminate this agreement, by giving written notice of termination to the other party, if (a) the other party breaches this agreement and (b) either the breach cannot be cured or, if the breach can be cured, it is not cured by the breaching party within 15 days after receiving written notice of the breach from the non-breaching party
</li>
<li>
c) Consequences of Termination:
If and when either you or Webalys terminates this agreement, any purchases in effect at that time will also terminate. When this agreement, expires or is terminated:
<ul>
<li>i) immediately cease all use of the Licensed Products</li>
<li>ii) promptly return to Webalys or destroy all copies of the Licensed Products and documentation in your possession or control, </li>
<li>iii) certify in writing to Webalys that you have complied with clauses (i) and (ii) </li>
</ul>
</li>
<li>d) you will remain obligated to pay any amounts you owe to Webalys at that time; and</li>
<li>e) the provisions of sections 4, 10, 12 and 13, will remain in effect.</li>
</ul>
<h3>12) Infringement Claims</h3>
<ul>
<li>
a) Conditions:
Webalys's obligations to defend and indemnify you with respect to a particular claim are subject to the following conditions:
<ul>
<li>i) you must promptly give Webalys written notice of the claim;</li>
<li>ii) you must identify the specific Licensed Product(s) at issue in the claim and indicate how the Licensed Product(s) is(are) utilized by you or your products;</li>
<li>iii) you must give Webalys sole control and authority over the defense and settlement of the claim; and</li>
<li>iv) you must provide Webalys with all information you have regarding the claim and cooperate with Webalys when Webalys defends or attempts to settle the claim.</li>
</ul>
</li>
<li>
b) Pro-Active Steps:
If any Licensed Product is, or Webalys believes is likely to become, the subject of a claim for which Webalys would be obligated to defend and indemnify you, then Webalys may, at its option, do any of the following:
<ul>
<li>i) obtain for you (at no cost to you) the right for you to continue using the Licensed Product as permitted by this agreement;</li>
<li>ii) replace or modify the Licensed Product to avoid the infringement problem, as long as there is no material loss of functionality; or</li>
<li>iii) if Webalys reasonably concludes that it will not be feasible to do either of the above, terminate your license for the Licensed Product and give you a prorated refund (based on how much of the License Term has elapsed) of the Fees you paid for that license.</li>
</ul>
</li>
<li>
c) Exclusions:
Webalys will have no obligation to defend or indemnify you (notwithstanding the first paragraph of this section) with respect to any claim that is based on or attributable to any of the following:
<ul>
<li>i) any modification made to the Licensed Product by anyone other than Webalys;</li>
<li>ii) the combination or use of the Licensed Product with other products, processes, or materials not supplied by Webalys or specified in the Documentation as being necessary to use the Licensed Product;</li>
<li>iii) your continued engagement in infringing activities after you were notified of the infringement or after Webalys informed you of a modification or workaround that would have avoided the infringement; and</li>
<li>iv) your use of the Licensed Product in a manner not permitted by this agreement.</li>
</ul>
</li>
<li>
d) Burden of Proof:
You will have the burden of showing that indemnification is required pursuant to this section 10 and that the exclusions in section 10 are not applicable.
</li>
<li>
e) No Other Obligations:
Except as expressly stated in this section 10, Webalys has no obligation or liability to you for any actual or alleged infringement related to the Licensed Products, Documentation, or Design Techniques.
</li>
</ul>
<h3>13) Other Terms</h3>
<p>
Ownership of Intellectual Property Rights:
The Webalys site and all its contains are the property of Webalys and in some cases, its affiliates and licensors, and are protected by the United States Trademark and Copyright policies and other relevant international intellectual property laws and treaties. “Webalys”, the “Webalys” logo in black and white and/or any of its colored versions, in any style or format or in any artistic form, is the propriety property of Webalys. Your only rights in the Licensed Products are the rights expressly granted in this agreement; all other rights are reserved by Webalys. Webalys's licensors are third-party beneficiaries of, and thus may enforce against you, the license restrictions and confidentiality obligations in this agreement with respect to their intellectual property and proprietary information. You will own all Intellectual Property Rights in the designs you create using the Licensed Products subject to Webalys's (and its licensors') ownership of the Intellectual Property Rights in the Licensed Products. Webalys may freely use and disseminate any Feedback you provide. You agree not to claim that Webalys owes you any compensation for its use or dissemination of such Feedback.
</p>
<h3>14) Limitation of Liability:&nbsp;</h3>
<p>For each product or service you license or purchase from Webalys under this agreement, Webalys's total, cumulative liability to you, including under section 12, is limited to the amount of Fees you paid for that product or service (regardless of the nature of the liability or the nature or number of claims giving rise to the liability). Webalys will not, under any circumstances or any theory of liability, be liable to you for any lost profits, loss of data, or consequential, incidental, or special damages arising from this agreement or the products and services provided to you under this agreement.&nbsp; </p>
<h3>15) Governing Law; Jurisdiction: </h3>
<p>
This agreement is governed by the laws of the United States and the State of New York, without regard to conflicts of laws principles. The federal and state courts located in New York shall have exclusive jurisdiction over any disputes arising from or relating to this agreement, and each party consents to such jurisdiction and venue.
</p>
<h3>16) Notices: </h3>
<p> Any notice, approval, consent, or other communication intended to have legal effect under this agreement must be given to the other party in writing, must be sent by first-class,&nbsp;registered, or overnight mail or private overnight courier (to the address for the other party stated on the signature page, unless the other party has given notice of a new address), and will be deemed given upon receipt or when delivery is refused. </p>
<h3>17) Waivers: </h3>
<p> Either party's failure to enforce any provision of this agreement will not be deemed a waiver of the future enforcement of that provision or enforcement of any other provision. In order to be binding, a waiver must be in writing and signed by the party giving the waiver.</p>
<h3>18) Independent Contractors: </h3>
<p> The parties to this agreement are independent contractors. Neither party is the agent or partner of the other party, or has any power or authority to act on behalf of the other party</p>
<h3>19) Severability: </h3>
<p>If any provision in this agreement is found to be invalid or unenforceable as written, the remaining provisions will remain in full force and effect and the invalid or unenforceable provision is to be construed (and, if necessary, modified) so that it is valid and enforceable to the greatest extent possible.</p>
<h3> 20) Remedies: </h3>
<p>
Except where this agreement expressly provides exclusive remedies, all rights and remedies of either party (including termination rights) are cumulative. You agree that monetary damages alone would not be an adequate remedy, and therefore Webalys will be entitled to injunctive relief if you materially breach the license restrictions or confidentiality provisions in this agreement.
</p>
<h3>21) Force Majeure: </h3>
<p> Each party will be excused from performance of its obligations under this agreement, except payment obligations, to the extent that performance is rendered impossible by earthquake, fire, flood, governmental action, change of law, labor disruptions, supplier failures, or any other event or circumstance beyond that party's reasonable control and/or classified/categorized as ‘Act of God’.</p>
<h3>22) Construction: </h3>
<p> Section headings in this agreement are for convenience only. The word "including" (and variations thereof) is not intended to be limiting. No rule of strict construction is to be used when interpreting this agreement.</p>
<h3>23) Entire Agreement: </h3>
<p> This agreement is the entire agreement between the parties concerning its subject matter, and supersede any prior or contemporaneous agreements, communications, or understandings (whether written or oral). However, any confidentiality or nondisclosure agreements that Webalys previously entered into with you will remain in effect (according to their terms) with respect to the confidential information disclosed thereunder. </p>
<h3>24) Amendments: </h3>
<p>This agreement may be amended only by means of a written instrument signed by authorized representatives of both parties that specifically refers to this agreement and states the parties' intention to amend it. No additional or inconsistent terms on any purchase order or similar document you may submit to Webalys will be binding on Webalys or have any legal effect.</p><br><br>
<p class="centered"><strong>If you want to remove these limitations, buy the extended License:</strong><br><br><a href="https://www.streamlineicons.com/nova/license-extended.html" class="btn btn-solid">View the Extended License </a></p><br><br>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="row">
<div class="column">
<p class="menu-bottom"><a href="https://www.streamlineicons.com/nova/index.html">Home</a><a href="https://www.streamlineicons.com/nova/license.html">License</a><a href="https://www.streamlineicons.com/nova/license-extended.html">Extended License </a><a href="https://www.streamlineicons.com/nova/refund-policy.html">Refund Policy </a><a href="https://www.streamlineicons.com/nova/privacy-policy.html">Privacy Policy</a><a href="https://www.streamlineicons.com/nova/affiliates.html">Affiliates </a><a href="https://www.streamlineicons.com/nova/contact.html">Contact Us</a></p>
<p class="top-60 center"><a href="http://www.webalys.com/" class="brand">MADE BY WEBALYS</a></p><br><br><br><script type="text/javascript" async="" src="./nova-icons_files/widgets.js"></script><iframe id="twitter-widget-0" scrolling="no" frameborder="0" allowtransparency="true" allowfullscreen="true" class="twitter-follow-button twitter-follow-button-rendered" style="position: absolute; visibility: hidden; width: 0px; height: 0px;" title="Twitter Follow Button" src="./nova-icons_files/follow_button.c63890edc4243ee77048d507b181eeec.en.html" data-screen-name="webalys"></iframe>
</div>
</div>
</div>
</div><!-- Sticky Elements -->

<script src="./nova-icons_files/sticky.min.js"></script>
<!-- https://github.com/rgalus/sticky-js -->

<script>
var sticky = new Sticky('.sticky', {});
</script>







<!-- Google Analytics - Code from GetDPD -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-15651803-23', 'auto', {'allowLinker': true});
ga('require', 'linker');
ga('linker:autoLink', ['dpdcart.com']);
ga('send', 'pageview');
</script>










<!-- Countdown -->
<script type="text/javascript">

(function() {

(function($) {
$.countdown = function(el, options) {
var getDateData,
_this = this;
this.el = el;
this.$el = $(el);
this.$el.data("countdown", this);
this.init = function() {
_this.options = $.extend({}, $.countdown.defaultOptions, options);
if (_this.options.refresh) {
_this.interval = setInterval(function() {
return _this.render();
}, _this.options.refresh);
}
_this.render();
return _this;
};
getDateData = function(endDate) {
var dateData, diff;
endDate = Date.parse($.isPlainObject(_this.options.date) ? _this.options.date : new Date(_this.options.date));
diff = (endDate - Date.parse(new Date)) / 1000;
if (diff <= 0) {
diff = 0;
if (_this.interval) {
_this.stop();
}
_this.options.onEnd.apply(_this);
}
dateData = {
years: 0,
days: 0,
hours: 0,
min: 0,
sec: 0,
millisec: 0
};
if (diff >= (365.25 * 86400)) {
dateData.years = Math.floor(diff / (365.25 * 86400));
diff -= dateData.years * 365.25 * 86400;
}
if (diff >= 86400) {
dateData.days = Math.floor(diff / 86400);
diff -= dateData.days * 86400;
}
if (diff >= 3600) {
dateData.hours = Math.floor(diff / 3600);
diff -= dateData.hours * 3600;
}
if (diff >= 60) {
dateData.min = Math.floor(diff / 60);
diff -= dateData.min * 60;
}
dateData.sec = diff;
return dateData;
};
this.leadingZeros = function(num, length) {
if (length == null) {
length = 2;
}
num = String(num);
while (num.length < length) {
num = "0" + num;
}
return num;
};
this.update = function(newDate) {
_this.options.date = newDate;
return _this;
};
this.render = function() {
_this.options.render.apply(_this, [getDateData(_this.options.date)]);
return _this;
};
this.stop = function() {
if (_this.interval) {
clearInterval(_this.interval);
}
_this.interval = null;
return _this;
};
this.start = function(refresh) {
if (refresh == null) {
refresh = _this.options.refresh || $.countdown.defaultOptions.refresh;
}
if (_this.interval) {
clearInterval(_this.interval);
}
_this.render();
_this.options.refresh = refresh;
_this.interval = setInterval(function() {
return _this.render();
}, _this.options.refresh);
return _this;
};
return this.init();
};
$.countdown.defaultOptions = {
date: "June 7, 2087 15:03:25",
refresh: 1000,
onEnd: $.noop,
render: function(date) {
return $(this.el).html("" + date.years + " years, " + date.days + " days, " + (this.leadingZeros(date.hours)) + " hours, " + (this.leadingZeros(date.min)) + " min and " + (this.leadingZeros(date.sec)) + " sec");
}
};
$.fn.countdown = function(options) {
return $.each(this, function(i, el) {
var $el;
$el = $(el);
if (!$el.data('countdown')) {
return $el.data('countdown', new $.countdown(el, options));
}
});
};
return void 0;
})(jQuery);

}).call(this);

</script>


<!-- Countdown Settings -->

<script type="text/javascript">
$(function() {
var endDate = "December 11, 2015 8:00:00";

$('.countdown').countdown({
date: endDate,
render: function(data) {
$(this.el).html("<div><b>" + this.leadingZeros(data.days, 1) + "</b><br><span> days</span></div><div><b>" + this.leadingZeros(data.hours, 2) + " </b><br><span>hours</span></div><div><b>" + this.leadingZeros(data.min, 2) + "</b><br><span>min.</span></div><div><b>" + this.leadingZeros(data.sec, 2) + " </b><br><span>sec.</span></div>");
}
});

});
</script>


<!-- Menu on Scroll -->
<script type="text/javascript">
(function($) {
$(document).ready(function(){
$(window).scroll(function(){
if ($(this).scrollTop() > 400) {
$('#menu').fadeIn(500);
} else {
$('#menu').fadeOut(500);
}
});
});
})(jQuery);
</script>

<iframe scrolling="no" frameborder="0" allowtransparency="true" src="./nova-icons_files/widget_iframe.c63890edc4243ee77048d507b181eeec.html" title="Twitter settings iframe" style="display: none;"></iframe></body></html>

+ 83
- 0
admin/LICENSES/nova-icons_files/analytics.js View File

@@ -0,0 +1,83 @@
(function(){/*

Copyright The Closure Library Authors.
SPDX-License-Identifier: Apache-2.0
*/
var m=this||self,n=function(a,b){a=a.split(".");var c=m;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c=c[d]&&c[d]!==Object.prototype[d]?c[d]:c[d]={}:c[d]=b};var p=function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])},q=function(a){for(var b in a)if(a.hasOwnProperty(b))return!0;return!1};var r=window,t=document,u=function(a,b){t.addEventListener?t.addEventListener(a,b,!1):t.attachEvent&&t.attachEvent("on"+a,b)};var v=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;var w={},x=function(){w.TAGGING=w.TAGGING||[];w.TAGGING[1]=!0};var y=/:[0-9]+$/,A=function(a,b){b&&(b=String(b).toLowerCase());if("protocol"===b||"port"===b)a.protocol=z(a.protocol)||z(r.location.protocol);"port"===b?a.port=String(Number(a.hostname?a.port:r.location.port)||("http"==a.protocol?80:"https"==a.protocol?443:"")):"host"===b&&(a.hostname=(a.hostname||r.location.hostname).replace(y,"").toLowerCase());var c=z(a.protocol);b&&(b=String(b).toLowerCase());switch(b){case "url_no_fragment":b="";a&&a.href&&(b=a.href.indexOf("#"),b=0>b?a.href:a.href.substr(0,
b));a=b;break;case "protocol":a=c;break;case "host":a=a.hostname.replace(y,"").toLowerCase();break;case "port":a=String(Number(a.port)||("http"==c?80:"https"==c?443:""));break;case "path":a.pathname||a.hostname||x();a="/"==a.pathname.substr(0,1)?a.pathname:"/"+a.pathname;a=a.split("/");a:if(b=a[a.length-1],c=[],Array.prototype.indexOf)b=c.indexOf(b),b="number"==typeof b?b:-1;else{for(var d=0;d<c.length;d++)if(c[d]===b){b=d;break a}b=-1}0<=b&&(a[a.length-1]="");a=a.join("/");break;case "query":a=a.search.replace("?",
"");break;case "extension":a=a.pathname.split(".");a=1<a.length?a[a.length-1]:"";a=a.split("/")[0];break;case "fragment":a=a.hash.replace("#","");break;default:a=a&&a.href}return a},z=function(a){return a?a.replace(":","").toLowerCase():""},B=function(a){var b=t.createElement("a");a&&(b.href=a);var c=b.pathname;"/"!==c[0]&&(a||x(),c="/"+c);a=b.hostname.replace(y,"");return{href:b.href,protocol:b.protocol,host:b.host,hostname:a,pathname:c,search:b.search,hash:b.hash,port:b.port}};function C(){for(var a=D,b={},c=0;c<a.length;++c)b[a[c]]=c;return b}function E(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZ";a+=a.toLowerCase()+"0123456789-_";return a+"."}var D,F;function G(a){D=D||E();F=F||C();for(var b=[],c=0;c<a.length;c+=3){var d=c+1<a.length,f=c+2<a.length,e=a.charCodeAt(c),g=d?a.charCodeAt(c+1):0,h=f?a.charCodeAt(c+2):0,k=e>>2;e=(e&3)<<4|g>>4;g=(g&15)<<2|h>>6;h&=63;f||(h=64,d||(g=64));b.push(D[k],D[e],D[g],D[h])}return b.join("")}
function H(a){function b(k){for(;d<a.length;){var l=a.charAt(d++),M=F[l];if(null!=M)return M;if(!/^[\s\xa0]*$/.test(l))throw Error("Unknown base64 encoding at char: "+l);}return k}D=D||E();F=F||C();for(var c="",d=0;;){var f=b(-1),e=b(0),g=b(64),h=b(64);if(64===h&&-1===f)return c;c+=String.fromCharCode(f<<2|e>>4);64!=g&&(c+=String.fromCharCode(e<<4&240|g>>2),64!=h&&(c+=String.fromCharCode(g<<6&192|h)))}};var I;var N=function(){var a=J,b=K,c=L(),d=function(g){a(g.target||g.srcElement||{})},f=function(g){b(g.target||g.srcElement||{})};if(!c.init){u("mousedown",d);u("keyup",d);u("submit",f);var e=HTMLFormElement.prototype.submit;HTMLFormElement.prototype.submit=function(){b(this);e.call(this)};c.init=!0}},O=function(a,b,c){for(var d=L().decorators,f={},e=0;e<d.length;++e){var g=d[e],h;if(h=!c||g.forms)a:{h=g.domains;var k=a;if(h&&(g.sameHost||k!==t.location.hostname))for(var l=0;l<h.length;l++)if(h[l]instanceof
RegExp){if(h[l].test(k)){h=!0;break a}}else if(0<=k.indexOf(h[l])){h=!0;break a}h=!1}h&&(h=g.placement,void 0==h&&(h=g.fragment?2:1),h===b&&p(f,g.callback()))}return f},L=function(){var a={};var b=r.google_tag_data;r.google_tag_data=void 0===b?a:b;a=r.google_tag_data;b=a.gl;b&&b.decorators||(b={decorators:[]},a.gl=b);return b};var P=/(.*?)\*(.*?)\*(.*)/,aa=/([^?#]+)(\?[^#]*)?(#.*)?/;function Q(a){return new RegExp("(.*?)(^|&)"+a+"=([^&]*)&?(.*)")}
var S=function(a){var b=[],c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];void 0!==d&&d===d&&null!==d&&"[object Object]"!==d.toString()&&(b.push(c),b.push(G(String(d))))}a=b.join("*");return["1",R(a),a].join("*")},R=function(a,b){a=[window.navigator.userAgent,(new Date).getTimezoneOffset(),window.navigator.userLanguage||window.navigator.language,Math.floor((new Date).getTime()/60/1E3)-(void 0===b?0:b),a].join("*");if(!(b=I)){b=Array(256);for(var c=0;256>c;c++){for(var d=c,f=0;8>f;f++)d=d&1?d>>>1^
3988292384:d>>>1;b[c]=d}}I=b;b=4294967295;for(c=0;c<a.length;c++)b=b>>>8^I[(b^a.charCodeAt(c))&255];return((b^-1)>>>0).toString(36)},ca=function(a){return function(b){var c=B(r.location.href),d=c.search.replace("?","");a:{var f=d.split("&");for(var e=0;e<f.length;e++){var g=f[e].split("=");if("_gl"===decodeURIComponent(g[0]).replace(/\+/g," ")){f=g.slice(1).join("=");break a}}f=void 0}b.query=T(f||"")||{};f=A(c,"fragment");e=f.match(Q("_gl"));b.fragment=T(e&&e[3]||"")||{};a&&ba(c,d,f)}};
function U(a,b){if(a=Q(a).exec(b)){var c=a[2],d=a[4];b=a[1];d&&(b=b+c+d)}return b}
var ba=function(a,b,c){function d(e,g){e=U("_gl",e);e.length&&(e=g+e);return e}if(r.history&&r.history.replaceState){var f=Q("_gl");if(f.test(b)||f.test(c))a=A(a,"path"),b=d(b,"?"),c=d(c,"#"),r.history.replaceState({},void 0,""+a+b+c)}},T=function(a){var b=void 0===b?3:b;try{if(a){a:{for(var c=0;3>c;++c){var d=P.exec(a);if(d){var f=d;break a}a=decodeURIComponent(a)}f=void 0}if(f&&"1"===f[1]){var e=f[2],g=f[3];a:{for(f=0;f<b;++f)if(e===R(g,f)){var h=!0;break a}h=!1}if(h){b={};var k=g?g.split("*"):
[];for(g=0;g<k.length;g+=2)b[k[g]]=H(k[g+1]);return b}}}}catch(l){}};function V(a,b,c,d){function f(k){k=U(a,k);var l=k.charAt(k.length-1);k&&"&"!==l&&(k+="&");return k+h}d=void 0===d?!1:d;var e=aa.exec(c);if(!e)return"";c=e[1];var g=e[2]||"";e=e[3]||"";var h=a+"="+b;d?e="#"+f(e.substring(1)):g="?"+f(g.substring(1));return""+c+g+e}
function W(a,b){var c="FORM"===(a.tagName||"").toUpperCase(),d=O(b,1,c),f=O(b,2,c);b=O(b,3,c);q(d)&&(d=S(d),c?X("_gl",d,a):Y("_gl",d,a,!1));!c&&q(f)&&(c=S(f),Y("_gl",c,a,!0));for(var e in b)b.hasOwnProperty(e)&&Z(e,b[e],a)}function Z(a,b,c,d){if(c.tagName){if("a"===c.tagName.toLowerCase())return Y(a,b,c,d);if("form"===c.tagName.toLowerCase())return X(a,b,c)}if("string"==typeof c)return V(a,b,c,d)}function Y(a,b,c,d){c.href&&(a=V(a,b,c.href,void 0===d?!1:d),v.test(a)&&(c.href=a))}
function X(a,b,c){if(c&&c.action){var d=(c.method||"").toLowerCase();if("get"===d){d=c.childNodes||[];for(var f=!1,e=0;e<d.length;e++){var g=d[e];if(g.name===a){g.setAttribute("value",b);f=!0;break}}f||(d=t.createElement("input"),d.setAttribute("type","hidden"),d.setAttribute("name",a),d.setAttribute("value",b),c.appendChild(d))}else"post"===d&&(a=V(a,b,c.action),v.test(a)&&(c.action=a))}}
var J=function(a){try{a:{for(var b=100;a&&0<b;){if(a.href&&a.nodeName.match(/^a(?:rea)?$/i)){var c=a;break a}a=a.parentNode;b--}c=null}if(c){var d=c.protocol;"http:"!==d&&"https:"!==d||W(c,c.hostname)}}catch(f){}},K=function(a){try{if(a.action){var b=A(B(a.action),"host");W(a,b)}}catch(c){}};n("google_tag_data.glBridge.auto",function(a,b,c,d){N();c="fragment"===c?2:1;a={callback:a,domains:b,fragment:2===c,placement:c,forms:!!d,sameHost:!1};L().decorators.push(a)});n("google_tag_data.glBridge.decorate",function(a,b,c){a=S(a);return Z("_gl",a,b,!!c)});n("google_tag_data.glBridge.generate",S);n("google_tag_data.glBridge.get",function(a,b){var c=ca(!!b);b=L();b.data||(b.data={query:{},fragment:{}},c(b.data));c={};if(b=b.data)p(c,b.query),a&&p(c,b.fragment);return c});})(window);
(function(){function La(a){var b=1,c;if(a)for(b=0,c=a.length-1;0<=c;c--){var d=a.charCodeAt(c);b=(b<<6&268435455)+d+(d<<14);d=b&266338304;b=0!=d?b^d>>21:b}return b};/*

Copyright The Closure Library Authors.
SPDX-License-Identifier: Apache-2.0
*/
var $c=function(a){this.w=a||[]};$c.prototype.set=function(a){this.w[a]=!0};$c.prototype.encode=function(){for(var a=[],b=0;b<this.w.length;b++)this.w[b]&&(a[Math.floor(b/6)]^=1<<b%6);for(b=0;b<a.length;b++)a[b]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".charAt(a[b]||0);return a.join("")+"~"};var ha=window.GoogleAnalyticsObject,wa;if(wa=void 0!=ha)wa=-1<(ha.constructor+"").indexOf("String");var Qa;if(Qa=wa){var Za=window.GoogleAnalyticsObject;Qa=Za?Za.replace(/^[\s\xa0]+|[\s\xa0]+$/g,""):""}var gb=Qa||"ga",jd=/^(?:utma\.)?\d+\.\d+$/,kd=/^amp-[\w.-]{22,64}$/,Ba=!1;var vd=new $c;function J(a){vd.set(a)}var Td=function(a){a=Dd(a);a=new $c(a);for(var b=vd.w.slice(),c=0;c<a.w.length;c++)b[c]=b[c]||a.w[c];return(new $c(b)).encode()},Dd=function(a){a=a.get(Gd);ka(a)||(a=[]);return a};var ea=function(a){return"function"==typeof a},ka=function(a){return"[object Array]"==Object.prototype.toString.call(Object(a))},qa=function(a){return void 0!=a&&-1<(a.constructor+"").indexOf("String")},D=function(a,b){return 0==a.indexOf(b)},sa=function(a){return a?a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,""):""},ra=function(){for(var a=O.navigator.userAgent+(M.cookie?M.cookie:"")+(M.referrer?M.referrer:""),b=a.length,c=O.history.length;0<c;)a+=c--^b++;return[hd()^La(a)&2147483647,Math.round((new Date).getTime()/
1E3)].join(".")},ta=function(a){var b=M.createElement("img");b.width=1;b.height=1;b.src=a;return b},ua=function(){},K=function(a){if(encodeURIComponent instanceof Function)return encodeURIComponent(a);J(28);return a},L=function(a,b,c,d){try{a.addEventListener?a.addEventListener(b,c,!!d):a.attachEvent&&a.attachEvent("on"+b,c)}catch(e){J(27)}},f=/^[\w\-:/.?=&%!\[\]]+$/,Nd=/^[\w+/_-]+[=]{0,2}$/,be=function(a,b){return E(M.location[b?"href":"search"],a)},E=function(a,b){return(a=a.match("(?:&|#|\\?)"+
K(b).replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")+"=([^&#]*)"))&&2==a.length?a[1]:""},xa=function(){var a=""+M.location.hostname;return 0==a.indexOf("www.")?a.substring(4):a},de=function(a,b){var c=a.indexOf(b);if(5==c||6==c)if(a=a.charAt(c+b.length),"/"==a||"?"==a||""==a||":"==a)return!0;return!1},ya=function(a,b){var c=M.referrer;if(/^(https?|android-app):\/\//i.test(c)){if(a)return c;a="//"+M.location.hostname;if(!de(c,a))return b&&(b=a.replace(/\./g,"-")+".cdn.ampproject.org",de(c,b))?void 0:
c}},za=function(a,b){if(1==b.length&&null!=b[0]&&"object"===typeof b[0])return b[0];for(var c={},d=Math.min(a.length+1,b.length),e=0;e<d;e++)if("object"===typeof b[e]){for(var g in b[e])b[e].hasOwnProperty(g)&&(c[g]=b[e][g]);break}else e<a.length&&(c[a[e]]=b[e]);return c};var ee=function(){this.keys=[];this.values={};this.m={}};ee.prototype.set=function(a,b,c){this.keys.push(a);c?this.m[":"+a]=b:this.values[":"+a]=b};ee.prototype.get=function(a){return this.m.hasOwnProperty(":"+a)?this.m[":"+a]:this.values[":"+a]};ee.prototype.map=function(a){for(var b=0;b<this.keys.length;b++){var c=this.keys[b],d=this.get(c);d&&a(c,d)}};var O=window,M=document,va=function(a,b){return setTimeout(a,b)};var F=window,Ea=document,G=function(a){var b=F._gaUserPrefs;if(b&&b.ioo&&b.ioo()||a&&!0===F["ga-disable-"+a])return!0;try{var c=F.external;if(c&&c._gaUserPrefs&&"oo"==c._gaUserPrefs)return!0}catch(g){}a=[];b=String(Ea.cookie||document.cookie).split(";");for(c=0;c<b.length;c++){var d=b[c].split("="),e=d[0].replace(/^\s*|\s*$/g,"");e&&"AMP_TOKEN"==e&&((d=d.slice(1).join("=").replace(/^\s*|\s*$/g,""))&&(d=decodeURIComponent(d)),a.push(d))}for(b=0;b<a.length;b++)if("$OPT_OUT"==a[b])return!0;return Ea.getElementById("__gaOptOutExtension")?
!0:!1};var Ca=function(a){var b=[],c=M.cookie.split(";");a=new RegExp("^\\s*"+a+"=\\s*(.*?)\\s*$");for(var d=0;d<c.length;d++){var e=c[d].match(a);e&&b.push(e[1])}return b},zc=function(a,b,c,d,e,g,ca){e=G(e)?!1:eb.test(M.location.hostname)||"/"==c&&vc.test(d)?!1:!0;if(!e)return!1;b&&1200<b.length&&(b=b.substring(0,1200));c=a+"="+b+"; path="+c+"; ";g&&(c+="expires="+(new Date((new Date).getTime()+g)).toGMTString()+"; ");d&&"none"!==d&&(c+="domain="+d+";");ca&&(c+=ca+";");d=M.cookie;M.cookie=c;if(!(d=d!=M.cookie))a:{a=
Ca(a);for(d=0;d<a.length;d++)if(b==a[d]){d=!0;break a}d=!1}return d},Cc=function(a){return encodeURIComponent?encodeURIComponent(a).replace(/\(/g,"%28").replace(/\)/g,"%29"):a},vc=/^(www\.)?google(\.com?)?(\.[a-z]{2})?$/,eb=/(^|\.)doubleclick\.net$/i;var oc,Id=/^.*Version\/?(\d+)[^\d].*$/i,ne=function(){if(void 0!==O.__ga4__)return O.__ga4__;if(void 0===oc){var a=O.navigator.userAgent;if(a){var b=a;try{b=decodeURIComponent(a)}catch(c){}if(a=!(0<=b.indexOf("Chrome"))&&!(0<=b.indexOf("CriOS"))&&(0<=b.indexOf("Safari/")||0<=b.indexOf("Safari,")))b=Id.exec(b),a=11<=(b?Number(b[1]):-1);oc=a}else oc=!1}return oc};var Fa,Ga,fb,Ab,ja=/^https?:\/\/[^/]*cdn\.ampproject\.org\//,Ue=/^(?:www\.|m\.|amp\.)+/,Ub=[],da=function(a){if(ye(a[Kd])){if(void 0===Ab){var b;if(b=(b=De.get())&&b._ga||void 0)Ab=b,J(81)}if(void 0!==Ab)return a[Q]||(a[Q]=Ab),!1}if(a[Kd]){J(67);if(a[ac]&&"cookie"!=a[ac])return!1;if(void 0!==Ab)a[Q]||(a[Q]=Ab);else{a:{b=String(a[W]||xa());var c=String(a[Yb]||"/"),d=Ca(String(a[U]||"_ga"));b=na(d,b,c);if(!b||jd.test(b))b=!0;else if(b=Ca("AMP_TOKEN"),0==b.length)b=!0;else{if(1==b.length&&(b=decodeURIComponent(b[0]),
"$RETRIEVING"==b||"$OPT_OUT"==b||"$ERROR"==b||"$NOT_FOUND"==b)){b=!0;break a}b=!1}}if(b&&tc(ic,String(a[Na])))return!0}}return!1},ic=function(){Z.D([ua])},tc=function(a,b){var c=Ca("AMP_TOKEN");if(1<c.length)return J(55),!1;c=decodeURIComponent(c[0]||"");if("$OPT_OUT"==c||"$ERROR"==c||G(b))return J(62),!1;if(!ja.test(M.referrer)&&"$NOT_FOUND"==c)return J(68),!1;if(void 0!==Ab)return J(56),va(function(){a(Ab)},0),!0;if(Fa)return Ub.push(a),!0;if("$RETRIEVING"==c)return J(57),va(function(){tc(a,b)},
1E4),!0;Fa=!0;c&&"$"!=c[0]||(xc("$RETRIEVING",3E4),setTimeout(Mc,3E4),c="");return Pc(c,b)?(Ub.push(a),!0):!1},Pc=function(a,b,c){if(!window.JSON)return J(58),!1;var d=O.XMLHttpRequest;if(!d)return J(59),!1;var e=new d;if(!("withCredentials"in e))return J(60),!1;e.open("POST",(c||"https://ampcid.google.com/v1/publisher:getClientId")+"?key=AIzaSyA65lEHUEizIsNtlbNo-l2K18dT680nsaM",!0);e.withCredentials=!0;e.setRequestHeader("Content-Type","text/plain");e.onload=function(){Fa=!1;if(4==e.readyState){try{200!=
e.status&&(J(61),Qc("","$ERROR",3E4));var g=JSON.parse(e.responseText);g.optOut?(J(63),Qc("","$OPT_OUT",31536E6)):g.clientId?Qc(g.clientId,g.securityToken,31536E6):!c&&g.alternateUrl?(Ga&&clearTimeout(Ga),Fa=!0,Pc(a,b,g.alternateUrl)):(J(64),Qc("","$NOT_FOUND",36E5))}catch(ca){J(65),Qc("","$ERROR",3E4)}e=null}};d={originScope:"AMP_ECID_GOOGLE"};a&&(d.securityToken=a);e.send(JSON.stringify(d));Ga=va(function(){J(66);Qc("","$ERROR",3E4)},1E4);return!0},Mc=function(){Fa=!1},xc=function(a,b){if(void 0===
fb){fb="";for(var c=id(),d=0;d<c.length;d++){var e=c[d];if(zc("AMP_TOKEN",encodeURIComponent(a),"/",e,"",b)){fb=e;return}}}zc("AMP_TOKEN",encodeURIComponent(a),"/",fb,"",b)},Qc=function(a,b,c){Ga&&clearTimeout(Ga);b&&xc(b,c);Ab=a;b=Ub;Ub=[];for(c=0;c<b.length;c++)b[c](a)},ye=function(a){a:{if(ja.test(M.referrer)){var b=M.location.hostname.replace(Ue,"");b:{var c=M.referrer;c=c.replace(/^https?:\/\//,"");var d=c.replace(/^[^/]+/,"").split("/"),e=d[2];d=(d="s"==e?d[3]:e)?decodeURIComponent(d):d;if(!d){if(0==
c.indexOf("xn--")){c="";break b}(c=c.match(/(.*)\.cdn\.ampproject\.org\/?$/))&&2==c.length&&(d=c[1].replace(/-/g,".").replace(/\.\./g,"-"))}c=d?d.replace(Ue,""):""}(d=b===c)||(c="."+c,d=b.substring(b.length-c.length,b.length)===c);if(d){b=!0;break a}else J(78)}b=!1}return b&&!1!==a};var bd=function(a){return(a?"https:":Ba||"https:"==M.location.protocol?"https:":"http:")+"//www.google-analytics.com"},Da=function(a){this.name="len";this.message=a+"-8192"},ba=function(a,b,c){c=c||ua;if(2036>=b.length)wc(a,b,c);else if(8192>=b.length)x(a,b,c)||wd(a,b,c)||wc(a,b,c);else throw ge("len",b.length),new Da(b.length);},pe=function(a,b,c,d){d=d||ua;wd(a+"?"+b,"",d,c)},wc=function(a,b,c){var d=ta(a+"?"+b);d.onload=d.onerror=function(){d.onload=null;d.onerror=null;c()}},wd=function(a,b,c,
d){var e=O.XMLHttpRequest;if(!e)return!1;var g=new e;if(!("withCredentials"in g))return!1;a=a.replace(/^http:/,"https:");g.open("POST",a,!0);g.withCredentials=!0;g.setRequestHeader("Content-Type","text/plain");g.onreadystatechange=function(){if(4==g.readyState){if(d)try{var ca=g.responseText;if(1>ca.length)ge("xhr","ver","0"),c();else if("1"!=ca.charAt(0))ge("xhr","ver",String(ca.length)),c();else if(3<d.count++)ge("xhr","tmr",""+d.count),c();else if(1==ca.length)c();else{var l=ca.charAt(1);if("d"==
l)pe("https://stats.g.doubleclick.net/j/collect",d.U,d,c);else if("g"==l){wc("https://www.google.%/ads/ga-audiences".replace("%","com"),d.google,c);var k=ca.substring(2);k&&(/^[a-z.]{1,6}$/.test(k)?wc("https://www.google.%/ads/ga-audiences".replace("%",k),d.google,ua):ge("tld","bcc",k))}else ge("xhr","brc",l),c()}}catch(w){ge("xhr","rsp"),c()}else c();g=null}};g.send(b);return!0},x=function(a,b,c){return O.navigator.sendBeacon?O.navigator.sendBeacon(a,b)?(c(),!0):!1:!1},ge=function(a,b,c){1<=100*
Math.random()||G("?")||(a=["t=error","_e="+a,"_v=j81","sr=1"],b&&a.push("_f="+b),c&&a.push("_m="+K(c.substring(0,100))),a.push("aip=1"),a.push("z="+hd()),wc(bd(!0)+"/u/d",a.join("&"),ua))};var qc=function(){return O.gaData=O.gaData||{}},h=function(a){var b=qc();return b[a]=b[a]||{}};var Ha=function(){this.M=[]};Ha.prototype.add=function(a){this.M.push(a)};Ha.prototype.D=function(a){try{for(var b=0;b<this.M.length;b++){var c=a.get(this.M[b]);c&&ea(c)&&c.call(O,a)}}catch(d){}b=a.get(Ia);b!=ua&&ea(b)&&(a.set(Ia,ua,!0),setTimeout(b,10))};function Ja(a){if(100!=a.get(Ka)&&La(P(a,Q))%1E4>=100*R(a,Ka))throw"abort";}function Ma(a){if(G(P(a,Na)))throw"abort";}function Oa(){var a=M.location.protocol;if("http:"!=a&&"https:"!=a)throw"abort";}
function Pa(a){try{O.navigator.sendBeacon?J(42):O.XMLHttpRequest&&"withCredentials"in new O.XMLHttpRequest&&J(40)}catch(c){}a.set(ld,Td(a),!0);a.set(Ac,R(a,Ac)+1);var b=[];ue.map(function(c,d){d.F&&(c=a.get(c),void 0!=c&&c!=d.defaultValue&&("boolean"==typeof c&&(c*=1),b.push(d.F+"="+K(""+c))))});!1===a.get(xe)&&b.push("npa=1");b.push("z="+Bd());a.set(Ra,b.join("&"),!0)}
function Sa(a){var b=P(a,fa);!b&&a.get(Vd)&&(b="beacon");var c=P(a,gd),d=P(a,oe),e=c||(d?d+"/3":bd(!1)+"/collect");switch(P(a,ad)){case "d":e=c||(d?d+"/32":bd(!1)+"/j/collect");b=a.get(qe)||void 0;pe(e,P(a,Ra),b,a.Z(Ia));break;case "b":e=c||(d?d+"/31":bd(!1)+"/r/collect");default:b?(c=P(a,Ra),d=(d=a.Z(Ia))||ua,"image"==b?wc(e,c,d):"xhr"==b&&wd(e,c,d)||"beacon"==b&&x(e,c,d)||ba(e,c,d)):ba(e,P(a,Ra),a.Z(Ia))}e=P(a,Na);e=h(e);b=e.hitcount;e.hitcount=b?b+1:1;e=P(a,Na);delete h(e).pending_experiments;
a.set(Ia,ua,!0)}function Hc(a){qc().expId&&a.set(Nc,qc().expId);qc().expVar&&a.set(Oc,qc().expVar);var b=P(a,Na);if(b=h(b).pending_experiments){var c=[];for(d in b)b.hasOwnProperty(d)&&b[d]&&c.push(encodeURIComponent(d)+"."+encodeURIComponent(b[d]));var d=c.join("!")}else d=void 0;d&&a.set(m,d,!0)}function cd(){if(O.navigator&&"preview"==O.navigator.loadPurpose)throw"abort";}function yd(a){var b=O.gaDevIds;ka(b)&&0!=b.length&&a.set("&did",b.join(","),!0)}
function vb(a){if(!a.get(Na))throw"abort";};var hd=function(){return Math.round(2147483647*Math.random())},Bd=function(){try{var a=new Uint32Array(1);O.crypto.getRandomValues(a);return a[0]&2147483647}catch(b){return hd()}};function Ta(a){var b=R(a,Ua);500<=b&&J(15);var c=P(a,Va);if("transaction"!=c&&"item"!=c){c=R(a,Wa);var d=(new Date).getTime(),e=R(a,Xa);0==e&&a.set(Xa,d);e=Math.round(2*(d-e)/1E3);0<e&&(c=Math.min(c+e,20),a.set(Xa,d));if(0>=c)throw"abort";a.set(Wa,--c)}a.set(Ua,++b)};var Ya=function(){this.data=new ee};Ya.prototype.get=function(a){var b=$a(a),c=this.data.get(a);b&&void 0==c&&(c=ea(b.defaultValue)?b.defaultValue():b.defaultValue);return b&&b.Z?b.Z(this,a,c):c};var P=function(a,b){a=a.get(b);return void 0==a?"":""+a},R=function(a,b){a=a.get(b);return void 0==a||""===a?0:Number(a)};Ya.prototype.Z=function(a){return(a=this.get(a))&&ea(a)?a:ua};
Ya.prototype.set=function(a,b,c){if(a)if("object"==typeof a)for(var d in a)a.hasOwnProperty(d)&&ab(this,d,a[d],c);else ab(this,a,b,c)};var ab=function(a,b,c,d){if(void 0!=c)switch(b){case Na:wb.test(c)}var e=$a(b);e&&e.o?e.o(a,b,c,d):a.data.set(b,c,d)};var ue=new ee,ve=[],bb=function(a,b,c,d,e){this.name=a;this.F=b;this.Z=d;this.o=e;this.defaultValue=c},$a=function(a){var b=ue.get(a);if(!b)for(var c=0;c<ve.length;c++){var d=ve[c],e=d[0].exec(a);if(e){b=d[1](e);ue.set(b.name,b);break}}return b},yc=function(a){var b;ue.map(function(c,d){d.F==a&&(b=d)});return b&&b.name},S=function(a,b,c,d,e){a=new bb(a,b,c,d,e);ue.set(a.name,a);return a.name},cb=function(a,b){ve.push([new RegExp("^"+a+"$"),b])},T=function(a,b,c){return S(a,b,c,void 0,db)},db=function(){};var hb=T("apiVersion","v"),ib=T("clientVersion","_v");S("anonymizeIp","aip");var jb=S("adSenseId","a"),Va=S("hitType","t"),Ia=S("hitCallback"),Ra=S("hitPayload");S("nonInteraction","ni");S("currencyCode","cu");S("dataSource","ds");var Vd=S("useBeacon",void 0,!1),fa=S("transport");S("sessionControl","sc","");S("sessionGroup","sg");S("queueTime","qt");var Ac=S("_s","_s");S("screenName","cd");var kb=S("location","dl",""),lb=S("referrer","dr"),mb=S("page","dp","");S("hostname","dh");
var nb=S("language","ul"),ob=S("encoding","de");S("title","dt",function(){return M.title||void 0});cb("contentGroup([0-9]+)",function(a){return new bb(a[0],"cg"+a[1])});var pb=S("screenColors","sd"),qb=S("screenResolution","sr"),rb=S("viewportSize","vp"),sb=S("javaEnabled","je"),tb=S("flashVersion","fl");S("campaignId","ci");S("campaignName","cn");S("campaignSource","cs");S("campaignMedium","cm");S("campaignKeyword","ck");S("campaignContent","cc");
var ub=S("eventCategory","ec"),xb=S("eventAction","ea"),yb=S("eventLabel","el"),zb=S("eventValue","ev"),Bb=S("socialNetwork","sn"),Cb=S("socialAction","sa"),Db=S("socialTarget","st"),Eb=S("l1","plt"),Fb=S("l2","pdt"),Gb=S("l3","dns"),Hb=S("l4","rrt"),Ib=S("l5","srt"),Jb=S("l6","tcp"),Kb=S("l7","dit"),Lb=S("l8","clt"),Ve=S("l9","_gst"),We=S("l10","_gbt"),Xe=S("l11","_cst"),Ye=S("l12","_cbt"),Mb=S("timingCategory","utc"),Nb=S("timingVar","utv"),Ob=S("timingLabel","utl"),Pb=S("timingValue","utt");
S("appName","an");S("appVersion","av","");S("appId","aid","");S("appInstallerId","aiid","");S("exDescription","exd");S("exFatal","exf");var Nc=S("expId","xid"),Oc=S("expVar","xvar"),m=S("exp","exp"),Rc=S("_utma","_utma"),Sc=S("_utmz","_utmz"),Tc=S("_utmht","_utmht"),Ua=S("_hc",void 0,0),Xa=S("_ti",void 0,0),Wa=S("_to",void 0,20);cb("dimension([0-9]+)",function(a){return new bb(a[0],"cd"+a[1])});cb("metric([0-9]+)",function(a){return new bb(a[0],"cm"+a[1])});S("linkerParam",void 0,void 0,Bc,db);
var Ze=T("_cd2l",void 0,!1),ld=S("usage","_u"),Gd=S("_um");S("forceSSL",void 0,void 0,function(){return Ba},function(a,b,c){J(34);Ba=!!c});var ed=S("_j1","jid"),ia=S("_j2","gjid");cb("\\&(.*)",function(a){var b=new bb(a[0],a[1]),c=yc(a[0].substring(1));c&&(b.Z=function(d){return d.get(c)},b.o=function(d,e,g,ca){d.set(c,g,ca)},b.F=void 0);return b});
var Qb=T("_oot"),dd=S("previewTask"),Rb=S("checkProtocolTask"),md=S("validationTask"),Sb=S("checkStorageTask"),Uc=S("historyImportTask"),Tb=S("samplerTask"),Vb=S("_rlt"),Wb=S("buildHitTask"),Xb=S("sendHitTask"),Vc=S("ceTask"),zd=S("devIdTask"),Cd=S("timingTask"),Ld=S("displayFeaturesTask"),oa=S("customTask"),V=T("name"),Q=T("clientId","cid"),n=T("clientIdTime"),xd=T("storedClientId"),Ad=S("userId","uid"),Na=T("trackingId","tid"),U=T("cookieName",void 0,"_ga"),W=T("cookieDomain"),Yb=T("cookiePath",
void 0,"/"),Zb=T("cookieExpires",void 0,63072E3),Hd=T("cookieUpdate",void 0,!0),Be=T("cookieFlags",void 0,""),$b=T("legacyCookieDomain"),Wc=T("legacyHistoryImport",void 0,!0),ac=T("storage",void 0,"cookie"),bc=T("allowLinker",void 0,!1),cc=T("allowAnchor",void 0,!0),Ka=T("sampleRate","sf",100),dc=T("siteSpeedSampleRate",void 0,1),ec=T("alwaysSendReferrer",void 0,!1),I=T("_gid","_gid"),la=T("_gcn"),Kd=T("useAmpClientId"),ce=T("_gclid"),fe=T("_gt"),he=T("_ge",void 0,7776E6),ie=T("_gclsrc"),je=T("storeGac",
void 0,!0),oe=S("_x_19"),gd=S("transportUrl"),Md=S("_r","_r"),qe=S("_dp"),ad=S("_jt",void 0,"n"),Ud=S("allowAdFeatures",void 0,!0),xe=S("allowAdPersonalizationSignals",void 0,!0);function X(a,b,c,d){b[a]=function(){try{return d&&J(d),c.apply(this,arguments)}catch(e){throw ge("exc",a,e&&e.name),e;}}};var Od=function(){this.V=100;this.$=this.fa=!1;this.oa="detourexp";this.groups=1},Ed=function(a){var b=new Od,c;if(b.fa&&b.$)return 0;b.$=!0;if(a){if(b.oa&&void 0!==a.get(b.oa))return R(a,b.oa);if(0==a.get(dc))return 0}if(0==b.V)return 0;void 0===c&&(c=Bd());return 0==c%b.V?Math.floor(c/b.V)%b.groups+1:0};function fc(){var a,b;if((b=(b=O.navigator)?b.plugins:null)&&b.length)for(var c=0;c<b.length&&!a;c++){var d=b[c];-1<d.name.indexOf("Shockwave Flash")&&(a=d.description)}if(!a)try{var e=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");a=e.GetVariable("$version")}catch(g){}if(!a)try{e=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"),a="WIN 6,0,21,0",e.AllowScriptAccess="always",a=e.GetVariable("$version")}catch(g){}if(!a)try{e=new ActiveXObject("ShockwaveFlash.ShockwaveFlash"),a=e.GetVariable("$version")}catch(g){}a&&
(e=a.match(/[\d]+/g))&&3<=e.length&&(a=e[0]+"."+e[1]+" r"+e[2]);return a||void 0};var aa=function(a){var b=Math.min(R(a,dc),100);return La(P(a,Q))%100>=b?!1:!0},gc=function(a){var b={};if(Ec(b)||Fc(b)){var c=b[Eb];void 0==c||Infinity==c||isNaN(c)||(0<c?(Y(b,Gb),Y(b,Jb),Y(b,Ib),Y(b,Fb),Y(b,Hb),Y(b,Kb),Y(b,Lb),Y(b,Ve),Y(b,We),Y(b,Xe),Y(b,Ye),va(function(){a(b)},10)):L(O,"load",function(){gc(a)},!1))}},Ec=function(a){var b=O.performance||O.webkitPerformance;b=b&&b.timing;if(!b)return!1;var c=b.navigationStart;if(0==c)return!1;a[Eb]=b.loadEventStart-c;a[Gb]=b.domainLookupEnd-b.domainLookupStart;
a[Jb]=b.connectEnd-b.connectStart;a[Ib]=b.responseStart-b.requestStart;a[Fb]=b.responseEnd-b.responseStart;a[Hb]=b.fetchStart-c;a[Kb]=b.domInteractive-c;a[Lb]=b.domContentLoadedEventStart-c;a[Ve]=N.L-c;a[We]=N.ya-c;O.google_tag_manager&&O.google_tag_manager._li&&(b=O.google_tag_manager._li,a[Xe]=b.cst,a[Ye]=b.cbt);return!0},Fc=function(a){if(O.top!=O)return!1;var b=O.external,c=b&&b.onloadT;b&&!b.isValidLoadTime&&(c=void 0);2147483648<c&&(c=void 0);0<c&&b.setPageReadyTime();if(void 0==c)return!1;
a[Eb]=c;return!0},Y=function(a,b){var c=a[b];if(isNaN(c)||Infinity==c||0>c)a[b]=void 0},Fd=function(a){return function(b){if("pageview"==b.get(Va)&&!a.I){a.I=!0;var c=aa(b),d=0<E(P(b,kb),"gclid").length;(c||d)&&gc(function(e){c&&a.send("timing",e);d&&a.send("adtiming",e)})}}};var hc=!1,mc=function(a){if("cookie"==P(a,ac)){if(a.get(Hd)||P(a,xd)!=P(a,Q)){var b=1E3*R(a,Zb);ma(a,Q,U,b)}(a.get(Hd)||uc(a)!=P(a,I))&&ma(a,I,la,864E5);if(a.get(je)){var c=P(a,ce);if(c){var d=Math.min(R(a,he),1E3*R(a,Zb));d=Math.min(d,1E3*R(a,fe)+d-(new Date).getTime());a.data.set(he,d);b={};var e=P(a,fe),g=P(a,ie),ca=kc(P(a,Yb)),l=lc(P(a,W)),k=P(a,Na);a=P(a,Be);g&&"aw.ds"!=g?b&&(b.ua=!0):(c=["1",e,Cc(c)].join("."),0<d&&(b&&(b.ta=!0),zc("_gac_"+Cc(k),c,ca,l,k,d,a)));le(b)}}else J(75)}},ma=function(a,
b,c,d){var e=nd(a,b);if(e){c=P(a,c);var g=kc(P(a,Yb)),ca=lc(P(a,W)),l=P(a,Be),k=P(a,Na);if("auto"!=ca)zc(c,e,g,ca,k,d,l)&&(hc=!0);else{J(32);for(var w=id(),Ce=0;Ce<w.length;Ce++)if(ca=w[Ce],a.data.set(W,ca),e=nd(a,b),zc(c,e,g,ca,k,d,l)){hc=!0;return}a.data.set(W,"auto")}}},uc=function(a){var b=Ca(P(a,la));return Xd(a,b)},nc=function(a){if("cookie"==P(a,ac)&&!hc&&(mc(a),!hc))throw"abort";},Yc=function(a){if(a.get(Wc)){var b=P(a,W),c=P(a,$b)||xa(),d=Xc("__utma",c,b);d&&(J(19),a.set(Tc,(new Date).getTime(),
!0),a.set(Rc,d.R),(b=Xc("__utmz",c,b))&&d.hash==b.hash&&a.set(Sc,b.R))}},nd=function(a,b){b=Cc(P(a,b));var c=lc(P(a,W)).split(".").length;a=jc(P(a,Yb));1<a&&(c+="-"+a);return b?["GA1",c,b].join("."):""},Xd=function(a,b){return na(b,P(a,W),P(a,Yb))},na=function(a,b,c){if(!a||1>a.length)J(12);else{for(var d=[],e=0;e<a.length;e++){var g=a[e];var ca=g.split(".");var l=ca.shift();("GA1"==l||"1"==l)&&1<ca.length?(g=ca.shift().split("-"),1==g.length&&(g[1]="1"),g[0]*=1,g[1]*=1,ca={H:g,s:ca.join(".")}):ca=
kd.test(g)?{H:[0,0],s:g}:void 0;ca&&d.push(ca)}if(1==d.length)return J(13),d[0].s;if(0==d.length)J(12);else{J(14);d=Gc(d,lc(b).split(".").length,0);if(1==d.length)return d[0].s;d=Gc(d,jc(c),1);1<d.length&&J(41);return d[0]&&d[0].s}}},Gc=function(a,b,c){for(var d=[],e=[],g,ca=0;ca<a.length;ca++){var l=a[ca];l.H[c]==b?d.push(l):void 0==g||l.H[c]<g?(e=[l],g=l.H[c]):l.H[c]==g&&e.push(l)}return 0<d.length?d:e},lc=function(a){return 0==a.indexOf(".")?a.substr(1):a},id=function(){var a=[],b=xa().split(".");
if(4==b.length){var c=b[b.length-1];if(parseInt(c,10)==c)return["none"]}for(c=b.length-2;0<=c;c--)a.push(b.slice(c).join("."));b=M.location.hostname;eb.test(b)||vc.test(b)||a.push("none");return a},kc=function(a){if(!a)return"/";1<a.length&&a.lastIndexOf("/")==a.length-1&&(a=a.substr(0,a.length-1));0!=a.indexOf("/")&&(a="/"+a);return a},jc=function(a){a=kc(a);return"/"==a?1:a.split("/").length},le=function(a){a.ta&&J(77);a.na&&J(74);a.pa&&J(73);a.ua&&J(69)};function Xc(a,b,c){"none"==b&&(b="");var d=[],e=Ca(a);a="__utma"==a?6:2;for(var g=0;g<e.length;g++){var ca=(""+e[g]).split(".");ca.length>=a&&d.push({hash:ca[0],R:e[g],O:ca})}if(0!=d.length)return 1==d.length?d[0]:Zc(b,d)||Zc(c,d)||Zc(null,d)||d[0]}function Zc(a,b){if(null==a)var c=a=1;else c=La(a),a=La(D(a,".")?a.substring(1):"."+a);for(var d=0;d<b.length;d++)if(b[d].hash==c||b[d].hash==a)return b[d]};var Jc=new RegExp(/^https?:\/\/([^\/:]+)/),De=O.google_tag_data.glBridge,Kc=/(.*)([?&#])(?:_ga=[^&#]*)(?:&?)(.*)/,od=/(.*)([?&#])(?:_gac=[^&#]*)(?:&?)(.*)/;function Bc(a){if(a.get(Ze))return J(35),De.generate($e(a));var b=P(a,Q),c=P(a,I)||"";b="_ga=2."+K(pa(c+b,0)+"."+c+"-"+b);(a=af(a))?(J(44),a="&_gac=1."+K([pa(a.qa,0),a.timestamp,a.qa].join("."))):a="";return b+a}
function Ic(a,b){var c=new Date,d=O.navigator,e=d.plugins||[];a=[a,d.userAgent,c.getTimezoneOffset(),c.getYear(),c.getDate(),c.getHours(),c.getMinutes()+b];for(b=0;b<e.length;++b)a.push(e[b].description);return La(a.join("."))}function pa(a,b){var c=new Date,d=O.navigator,e=c.getHours()+Math.floor((c.getMinutes()+b)/60);return La([a,d.userAgent,d.language||"",c.getTimezoneOffset(),c.getYear(),c.getDate()+Math.floor(e/24),(24+e)%24,(60+c.getMinutes()+b)%60].join("."))}
var Dc=function(a){J(48);this.target=a;this.T=!1};Dc.prototype.ca=function(a,b){if(a){if(this.target.get(Ze))return De.decorate($e(this.target),a,b);if(a.tagName){if("a"==a.tagName.toLowerCase()){a.href&&(a.href=qd(this,a.href,b));return}if("form"==a.tagName.toLowerCase())return rd(this,a)}if("string"==typeof a)return qd(this,a,b)}};
var qd=function(a,b,c){var d=Kc.exec(b);d&&3<=d.length&&(b=d[1]+(d[3]?d[2]+d[3]:""));(d=od.exec(b))&&3<=d.length&&(b=d[1]+(d[3]?d[2]+d[3]:""));a=a.target.get("linkerParam");var e=b.indexOf("?");d=b.indexOf("#");c?b+=(-1==d?"#":"&")+a:(c=-1==e?"?":"&",b=-1==d?b+(c+a):b.substring(0,d)+c+a+b.substring(d));b=b.replace(/&+_ga=/,"&_ga=");return b=b.replace(/&+_gac=/,"&_gac=")},rd=function(a,b){if(b&&b.action)if("get"==b.method.toLowerCase()){a=a.target.get("linkerParam").split("&");for(var c=0;c<a.length;c++){var d=
a[c].split("="),e=d[1];d=d[0];for(var g=b.childNodes||[],ca=!1,l=0;l<g.length;l++)if(g[l].name==d){g[l].setAttribute("value",e);ca=!0;break}ca||(g=M.createElement("input"),g.setAttribute("type","hidden"),g.setAttribute("name",d),g.setAttribute("value",e),b.appendChild(g))}}else"post"==b.method.toLowerCase()&&(b.action=qd(a,b.action))};
Dc.prototype.S=function(a,b,c){function d(g){try{g=g||O.event;a:{var ca=g.target||g.srcElement;for(g=100;ca&&0<g;){if(ca.href&&ca.nodeName.match(/^a(?:rea)?$/i)){var l=ca;break a}ca=ca.parentNode;g--}l={}}("http:"==l.protocol||"https:"==l.protocol)&&sd(a,l.hostname||"")&&l.href&&(l.href=qd(e,l.href,b))}catch(k){J(26)}}var e=this;this.target.get(Ze)?De.auto(function(){return $e(e.target)},a,b?"fragment":"",c):(this.T||(this.T=!0,L(M,"mousedown",d,!1),L(M,"keyup",d,!1)),c&&L(M,"submit",function(g){g=
g||O.event;if((g=g.target||g.srcElement)&&g.action){var ca=g.action.match(Jc);ca&&sd(a,ca[1])&&rd(e,g)}}))};function sd(a,b){if(b==M.location.hostname)return!1;for(var c=0;c<a.length;c++)if(a[c]instanceof RegExp){if(a[c].test(b))return!0}else if(0<=b.indexOf(a[c]))return!0;return!1}function ke(a,b){return b!=Ic(a,0)&&b!=Ic(a,-1)&&b!=Ic(a,-2)&&b!=pa(a,0)&&b!=pa(a,-1)&&b!=pa(a,-2)}function $e(a){var b=af(a);return{_ga:a.get(Q),_gid:a.get(I)||void 0,_gac:b?[b.qa,b.timestamp].join("."):void 0}}
function af(a){function b(e){return void 0==e||""===e?0:Number(e)}var c=a.get(ce);if(c&&a.get(je)){var d=b(a.get(fe));if(1E3*d+b(a.get(he))<=(new Date).getTime())J(76);else return{timestamp:d,qa:c}}};var p=/^(GTM|OPT)-[A-Z0-9]+$/,q=/;_gaexp=[^;]*/g,r=/;((__utma=)|([^;=]+=GAX?\d+\.))[^;]*/g,Aa=/^https?:\/\/[\w\-.]+\.google.com(:\d+)?\/optimize\/opt-launch\.html\?.*$/,t=function(a){function b(d,e){e&&(c+="&"+d+"="+K(e))}var c="https://www.google-analytics.com/gtm/js?id="+K(a.id);"dataLayer"!=a.B&&b("l",a.B);b("t",a.target);b("cid",a.clientId);b("cidt",a.ka);b("gac",a.la);b("aip",a.ia);a.sync&&b("m","sync");b("cycle",a.G);a.qa&&b("gclid",a.qa);Aa.test(M.referrer)&&b("cb",String(hd()));return c};var Jd=function(a,b,c){this.aa=b;(b=c)||(b=(b=P(a,V))&&"t0"!=b?Wd.test(b)?"_gat_"+Cc(P(a,Na)):"_gat_"+Cc(b):"_gat");this.Y=b;this.ra=null},Rd=function(a,b){var c=b.get(Wb);b.set(Wb,function(e){Pd(a,e,ed);Pd(a,e,ia);var g=c(e);Qd(a,e);return g});var d=b.get(Xb);b.set(Xb,function(e){var g=d(e);if(se(e)){if(ne()!==H(a,e)){J(80);var ca={U:re(a,e,1),google:re(a,e,2),count:0};pe("https://stats.g.doubleclick.net/j/collect",ca.U,ca)}else ta(re(a,e,0));e.set(ed,"",!0)}return g})},Pd=function(a,b,c){!1===b.get(Ud)||
b.get(c)||("1"==Ca(a.Y)[0]?b.set(c,"",!0):b.set(c,""+hd(),!0))},Qd=function(a,b){se(b)&&zc(a.Y,"1",P(b,Yb),P(b,W),P(b,Na),6E4,P(b,Be))},se=function(a){return!!a.get(ed)&&!1!==a.get(Ud)},re=function(a,b,c){var d=new ee,e=function(ca){$a(ca).F&&d.set($a(ca).F,b.get(ca))};e(hb);e(ib);e(Na);e(Q);e(ed);if(0==c||1==c)e(Ad),e(ia),e(I);d.set($a(ld).F,Td(b));var g="";d.map(function(ca,l){g+=K(ca)+"=";g+=K(""+l)+"&"});g+="z="+hd();0==c?g=a.aa+g:1==c?g="t=dc&aip=1&_r=3&"+g:2==c&&(g="t=sr&aip=1&_r=4&slf_rd=1&"+
g);return g},H=function(a,b){null===a.ra&&(a.ra=1===Ed(b),a.ra&&J(33));return a.ra},Wd=/^gtm\d+$/;var fd=function(a,b){a=a.b;if(!a.get("dcLoaded")){var c=new $c(Dd(a));c.set(29);a.set(Gd,c.w);b=b||{};var d;b[U]&&(d=Cc(b[U]));b=new Jd(a,"https://stats.g.doubleclick.net/r/collect?t=dc&aip=1&_r=3&",d);Rd(b,a);a.set("dcLoaded",!0)}};var Sd=function(a){if(!a.get("dcLoaded")&&"cookie"==a.get(ac)){var b=new Jd(a);Pd(b,a,ed);Pd(b,a,ia);Qd(b,a);if(se(a)){var c=ne()!==H(b,a);a.set(Md,1,!0);c?(J(79),a.set(ad,"d",!0),a.set(qe,{U:re(b,a,1),google:re(b,a,2),count:0},!0)):a.set(ad,"b",!0)}}};var Lc=function(){var a=O.gaGlobal=O.gaGlobal||{};return a.hid=a.hid||hd()};var wb=/^(UA|YT|MO|GP)-(\d+)-(\d+)$/,pc=function(a){function b(e,g){d.b.data.set(e,g)}function c(e,g){b(e,g);d.filters.add(e)}var d=this;this.b=new Ya;this.filters=new Ha;b(V,a[V]);b(Na,sa(a[Na]));b(U,a[U]);b(W,a[W]||xa());b(Yb,a[Yb]);b(Zb,a[Zb]);b(Hd,a[Hd]);b(Be,a[Be]);b($b,a[$b]);b(Wc,a[Wc]);b(bc,a[bc]);b(cc,a[cc]);b(Ka,a[Ka]);b(dc,a[dc]);b(ec,a[ec]);b(ac,a[ac]);b(Ad,a[Ad]);b(n,a[n]);b(Kd,a[Kd]);b(je,a[je]);b(Ze,a[Ze]);b(oe,a[oe]);b(hb,1);b(ib,"j81");c(Qb,Ma);c(oa,ua);c(dd,cd);c(Rb,Oa);c(md,vb);
c(Sb,nc);c(Uc,Yc);c(Tb,Ja);c(Vb,Ta);c(Vc,Hc);c(zd,yd);c(Ld,Sd);c(Wb,Pa);c(Xb,Sa);c(Cd,Fd(this));pd(this.b);td(this.b,a[Q]);this.b.set(jb,Lc())},td=function(a,b){var c=P(a,U);a.data.set(la,"_ga"==c?"_gid":c+"_gid");if("cookie"==P(a,ac)){hc=!1;c=Ca(P(a,U));c=Xd(a,c);if(!c){c=P(a,W);var d=P(a,$b)||xa();c=Xc("__utma",d,c);void 0!=c?(J(10),c=c.O[1]+"."+c.O[2]):c=void 0}c&&(hc=!0);if(d=c&&!a.get(Hd))if(d=c.split("."),2!=d.length)d=!1;else if(d=Number(d[1])){var e=R(a,Zb);d=d+e<(new Date).getTime()/1E3}else d=
!1;d&&(c=void 0);c&&(a.data.set(xd,c),a.data.set(Q,c),(c=uc(a))&&a.data.set(I,c));if(a.get(je)&&(c=a.get(ce),d=a.get(ie),!c||d&&"aw.ds"!=d)){c={};if(M){d=[];e=M.cookie.split(";");for(var g=/^\s*_gac_(UA-\d+-\d+)=\s*(.+?)\s*$/,ca=0;ca<e.length;ca++){var l=e[ca].match(g);l&&d.push({ja:l[1],value:l[2]})}e={};if(d&&d.length)for(g=0;g<d.length;g++)(ca=d[g].value.split("."),"1"!=ca[0]||3!=ca.length)?c&&(c.na=!0):ca[1]&&(e[d[g].ja]?c&&(c.pa=!0):e[d[g].ja]=[],e[d[g].ja].push({timestamp:ca[1],qa:ca[2]}));
d=e}else d={};d=d[P(a,Na)];le(c);d&&0!=d.length&&(c=d[0],a.data.set(fe,c.timestamp),a.data.set(ce,c.qa))}}if(a.get(Hd)&&(c=be("_ga",!!a.get(cc)),g=be("_gl",!!a.get(cc)),d=De.get(a.get(cc)),e=d._ga,g&&0<g.indexOf("_ga*")&&!e&&J(30),g=d.gclid,ca=d._gac,c||e||g||ca))if(c&&e&&J(36),a.get(bc)||ye(a.get(Kd))){if(e&&(J(38),a.data.set(Q,e),d._gid&&(J(51),a.data.set(I,d._gid))),g?(J(82),a.data.set(ce,g),d.gclsrc&&a.data.set(ie,d.gclsrc)):ca&&(d=ca.split("."))&&2===d.length&&(J(37),a.data.set(ce,d[0]),a.data.set(fe,
d[1])),c)b:if(d=c.indexOf("."),-1==d)J(22);else{e=c.substring(0,d);g=c.substring(d+1);d=g.indexOf(".");c=g.substring(0,d);g=g.substring(d+1);if("1"==e){if(d=g,ke(d,c)){J(23);break b}}else if("2"==e){d=g.indexOf("-");e="";0<d?(e=g.substring(0,d),d=g.substring(d+1)):d=g.substring(1);if(ke(e+d,c)){J(53);break b}e&&(J(2),a.data.set(I,e))}else{J(22);break b}J(11);a.data.set(Q,d);if(c=be("_gac",!!a.get(cc)))c=c.split("."),"1"!=c[0]||4!=c.length?J(72):ke(c[3],c[1])?J(71):(a.data.set(ce,c[3]),a.data.set(fe,
c[2]),J(70))}}else J(21);b&&(J(9),a.data.set(Q,K(b)));a.get(Q)||((b=(b=O.gaGlobal&&O.gaGlobal.vid)&&-1!=b.search(jd)?b:void 0)?(J(17),a.data.set(Q,b)):(J(8),a.data.set(Q,ra())));a.get(I)||(J(3),a.data.set(I,ra()));mc(a)},pd=function(a){var b=O.navigator,c=O.screen,d=M.location;a.set(lb,ya(!!a.get(ec),!!a.get(Kd)));if(d){var e=d.pathname||"";"/"!=e.charAt(0)&&(J(31),e="/"+e);a.set(kb,d.protocol+"//"+d.hostname+e+d.search)}c&&a.set(qb,c.width+"x"+c.height);c&&a.set(pb,c.colorDepth+"-bit");c=M.documentElement;
var g=(e=M.body)&&e.clientWidth&&e.clientHeight,ca=[];c&&c.clientWidth&&c.clientHeight&&("CSS1Compat"===M.compatMode||!g)?ca=[c.clientWidth,c.clientHeight]:g&&(ca=[e.clientWidth,e.clientHeight]);c=0>=ca[0]||0>=ca[1]?"":ca.join("x");a.set(rb,c);a.set(tb,fc());a.set(ob,M.characterSet||M.charset);a.set(sb,b&&"function"===typeof b.javaEnabled&&b.javaEnabled()||!1);a.set(nb,(b&&(b.language||b.browserLanguage)||"").toLowerCase());a.data.set(ce,be("gclid",!0));a.data.set(ie,be("gclsrc",!0));a.data.set(fe,
Math.round((new Date).getTime()/1E3));if(d&&a.get(cc)&&(b=M.location.hash)){b=b.split(/[?&#]+/);d=[];for(c=0;c<b.length;++c)(D(b[c],"utm_id")||D(b[c],"utm_campaign")||D(b[c],"utm_source")||D(b[c],"utm_medium")||D(b[c],"utm_term")||D(b[c],"utm_content")||D(b[c],"gclid")||D(b[c],"dclid")||D(b[c],"gclsrc"))&&d.push(b[c]);0<d.length&&(b="#"+d.join("&"),a.set(kb,a.get(kb)+b))}};pc.prototype.get=function(a){return this.b.get(a)};pc.prototype.set=function(a,b){this.b.set(a,b)};
var me={pageview:[mb],event:[ub,xb,yb,zb],social:[Bb,Cb,Db],timing:[Mb,Nb,Pb,Ob]};pc.prototype.send=function(a){if(!(1>arguments.length)){if("string"===typeof arguments[0]){var b=arguments[0];var c=[].slice.call(arguments,1)}else b=arguments[0]&&arguments[0][Va],c=arguments;b&&(c=za(me[b]||[],c),c[Va]=b,this.b.set(c,void 0,!0),this.filters.D(this.b),this.b.data.m={})}};pc.prototype.ma=function(a,b){var c=this;u(a,c,b)||(v(a,function(){u(a,c,b)}),y(String(c.get(V)),a,void 0,b,!0))};var rc=function(a){if("prerender"==M.visibilityState)return!1;a();return!0},z=function(a){if(!rc(a)){J(16);var b=!1,c=function(){if(!b&&rc(a)){b=!0;var d=c,e=M;e.removeEventListener?e.removeEventListener("visibilitychange",d,!1):e.detachEvent&&e.detachEvent("onvisibilitychange",d)}};L(M,"visibilitychange",c)}};var te=/^(?:(\w+)\.)?(?:(\w+):)?(\w+)$/,sc=function(a){if(ea(a[0]))this.u=a[0];else{var b=te.exec(a[0]);null!=b&&4==b.length&&(this.c=b[1]||"t0",this.K=b[2]||"",this.methodName=b[3],this.a=[].slice.call(a,1),this.K||(this.A="create"==this.methodName,this.i="require"==this.methodName,this.g="provide"==this.methodName,this.ba="remove"==this.methodName),this.i&&(3<=this.a.length?(this.X=this.a[1],this.W=this.a[2]):this.a[1]&&(qa(this.a[1])?this.X=this.a[1]:this.W=this.a[1])));b=a[1];a=a[2];if(!this.methodName)throw"abort";
if(this.i&&(!qa(b)||""==b))throw"abort";if(this.g&&(!qa(b)||""==b||!ea(a)))throw"abort";if(ud(this.c)||ud(this.K))throw"abort";if(this.g&&"t0"!=this.c)throw"abort";}};function ud(a){return 0<=a.indexOf(".")||0<=a.indexOf(":")};var Yd,Zd,$d,A;Yd=new ee;$d=new ee;A=new ee;Zd={ec:45,ecommerce:46,linkid:47};
var u=function(a,b,c){b==N||b.get(V);var d=Yd.get(a);if(!ea(d))return!1;b.plugins_=b.plugins_||new ee;if(b.plugins_.get(a))return!0;b.plugins_.set(a,new d(b,c||{}));return!0},y=function(a,b,c,d,e){if(!ea(Yd.get(b))&&!$d.get(b)){Zd.hasOwnProperty(b)&&J(Zd[b]);a=N.j(a);if(p.test(b)){J(52);if(!a)return!0;c=d||{};d={id:b,B:c.dataLayer||"dataLayer",ia:!!a.get("anonymizeIp"),sync:e,G:!1};a.get("&gtm")==b&&(d.G=!0);var g=String(a.get("name"));"t0"!=g&&(d.target=g);G(String(a.get("trackingId")))||(d.clientId=
String(a.get(Q)),d.ka=Number(a.get(n)),c=c.palindrome?r:q,c=(c=M.cookie.replace(/^|(; +)/g,";").match(c))?c.sort().join("").substring(1):void 0,d.la=c,d.qa=E(a.b.get(kb)||"","gclid"));c=d.B;g=(new Date).getTime();O[c]=O[c]||[];g={"gtm.start":g};e||(g.event="gtm.js");O[c].push(g);c=t(d)}!c&&Zd.hasOwnProperty(b)?(J(39),c=b+".js"):J(43);if(c){if(a){var ca=a.get(oe);qa(ca)||(ca=void 0)}c&&0<=c.indexOf("/")||(c=(ca?ca+"/34":bd(!1)+"/plugins/ua/")+c);ca=ae(c);a=ca.protocol;d=M.location.protocol;if(("https:"==
a||a==d||("http:"!=a?0:"http:"==d))&&B(ca)){if(ca=ca.url)a=(a=M.querySelector&&M.querySelector("script[nonce]")||null)?a.nonce||a.getAttribute&&a.getAttribute("nonce")||"":"",e?(e="",a&&Nd.test(a)&&(e=' nonce="'+a+'"'),f.test(ca)&&M.write("<script"+e+' src="'+ca+'">\x3c/script>')):(e=M.createElement("script"),e.type="text/javascript",e.async=!0,e.src=ca,a&&e.setAttribute("nonce",a),ca=M.getElementsByTagName("script")[0],ca.parentNode.insertBefore(e,ca));$d.set(b,!0)}}}},v=function(a,b){var c=A.get(a)||
[];c.push(b);A.set(a,c)},C=function(a,b){Yd.set(a,b);b=A.get(a)||[];for(var c=0;c<b.length;c++)b[c]();A.set(a,[])},B=function(a){var b=ae(M.location.href);if(D(a.url,"https://www.google-analytics.com/gtm/js?id="))return!0;if(a.query||0<=a.url.indexOf("?")||0<=a.path.indexOf("://"))return!1;if(a.host==b.host&&a.port==b.port)return!0;b="http:"==a.protocol?80:443;return"www.google-analytics.com"==a.host&&(a.port||b)==b&&D(a.path,"/plugins/")?!0:!1},ae=function(a){function b(l){var k=l.hostname||"",w=
0<=k.indexOf("]");k=k.split(w?"]":":")[0].toLowerCase();w&&(k+="]");w=(l.protocol||"").toLowerCase();w=1*l.port||("http:"==w?80:"https:"==w?443:"");l=l.pathname||"";D(l,"/")||(l="/"+l);return[k,""+w,l]}var c=M.createElement("a");c.href=M.location.href;var d=(c.protocol||"").toLowerCase(),e=b(c),g=c.search||"",ca=d+"//"+e[0]+(e[1]?":"+e[1]:"");D(a,"//")?a=d+a:D(a,"/")?a=ca+a:!a||D(a,"?")?a=ca+e[2]+(a||g):0>a.split("/")[0].indexOf(":")&&(a=ca+e[2].substring(0,e[2].lastIndexOf("/"))+"/"+a);c.href=a;
d=b(c);return{protocol:(c.protocol||"").toLowerCase(),host:d[0],port:d[1],path:d[2],query:c.search||"",url:a||""}};var Z={ga:function(){Z.f=[]}};Z.ga();Z.D=function(a){var b=Z.J.apply(Z,arguments);b=Z.f.concat(b);for(Z.f=[];0<b.length&&!Z.v(b[0])&&!(b.shift(),0<Z.f.length););Z.f=Z.f.concat(b)};Z.J=function(a){for(var b=[],c=0;c<arguments.length;c++)try{var d=new sc(arguments[c]);d.g?C(d.a[0],d.a[1]):(d.i&&(d.ha=y(d.c,d.a[0],d.X,d.W)),b.push(d))}catch(e){}return b};
Z.v=function(a){try{if(a.u)a.u.call(O,N.j("t0"));else{var b=a.c==gb?N:N.j(a.c);if(a.A){if("t0"==a.c&&(b=N.create.apply(N,a.a),null===b))return!0}else if(a.ba)N.remove(a.c);else if(b)if(a.i){if(a.ha&&(a.ha=y(a.c,a.a[0],a.X,a.W)),!u(a.a[0],b,a.W))return!0}else if(a.K){var c=a.methodName,d=a.a,e=b.plugins_.get(a.K);e[c].apply(e,d)}else b[a.methodName].apply(b,a.a)}}catch(g){}};var N=function(a){J(1);Z.D.apply(Z,[arguments])};N.h={};N.P=[];N.L=0;N.ya=0;N.answer=42;var we=[Na,W,V];N.create=function(a){var b=za(we,[].slice.call(arguments));b[V]||(b[V]="t0");var c=""+b[V];if(N.h[c])return N.h[c];if(da(b))return null;b=new pc(b);N.h[c]=b;N.P.push(b);c=qc().tracker_created;if(ea(c))try{c(b)}catch(d){}return b};N.remove=function(a){for(var b=0;b<N.P.length;b++)if(N.P[b].get(V)==a){N.P.splice(b,1);N.h[a]=null;break}};N.j=function(a){return N.h[a]};N.getAll=function(){return N.P.slice(0)};
N.N=function(){"ga"!=gb&&J(49);var a=O[gb];if(!a||42!=a.answer){N.L=a&&a.l;N.ya=1*new Date;N.loaded=!0;var b=O[gb]=N;X("create",b,b.create);X("remove",b,b.remove);X("getByName",b,b.j,5);X("getAll",b,b.getAll,6);b=pc.prototype;X("get",b,b.get,7);X("set",b,b.set,4);X("send",b,b.send);X("requireSync",b,b.ma);b=Ya.prototype;X("get",b,b.get);X("set",b,b.set);if("https:"!=M.location.protocol&&!Ba){a:{b=M.getElementsByTagName("script");for(var c=0;c<b.length&&100>c;c++){var d=b[c].src;if(d&&0==d.indexOf(bd(!0)+
"/analytics")){b=!0;break a}}b=!1}b&&(Ba=!0)}(O.gaplugins=O.gaplugins||{}).Linker=Dc;b=Dc.prototype;C("linker",Dc);X("decorate",b,b.ca,20);X("autoLink",b,b.S,25);C("displayfeatures",fd);C("adfeatures",fd);a=a&&a.q;ka(a)?Z.D.apply(N,a):J(50)}};N.da=function(){for(var a=N.getAll(),b=0;b<a.length;b++)a[b].get(V)};var ze=N.N,Ae=O[gb];Ae&&Ae.r?ze():z(ze);z(function(){Z.D(["provide","render",ua])});})(window);

+ 1
- 0
admin/LICENSES/nova-icons_files/button.93a0c25c2d2f3081c705c98c2d9dec0e.js
File diff suppressed because it is too large
View File


+ 5716
- 0
admin/LICENSES/nova-icons_files/follow_button.c63890edc4243ee77048d507b181eeec.en.html
File diff suppressed because it is too large
View File


+ 2
- 0
admin/LICENSES/nova-icons_files/lazysizes.min.js
File diff suppressed because it is too large
View File


+ 7
- 0
admin/LICENSES/nova-icons_files/milligram-min.css
File diff suppressed because it is too large
View File


+ 42
- 0
admin/LICENSES/nova-icons_files/nova-logo-2019.svg View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<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"
viewBox="0 0 234 64" style="enable-background:new 0 0 234 64;" xml:space="preserve">
<style type="text/css">
.st0{display:none;}
.st1{display:inline;}
.st2{fill:#F34235;}
.st3{fill:#2095F2;}
.st4{fill:#4BAE4E;}
.st5{fill:#FEC005;}
.st6{fill:none;stroke:#FA472C;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st7{fill:none;stroke:#FFC908;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st8{fill:none;stroke:#1DA3F4;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st9{fill:none;stroke:#3DBF3C;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Layer_1_1_" class="st0">
<g class="st1">
<path class="st2" d="M58.1-170.5c-0.6,0-1.2-0.2-1.6-0.7l-39.9-41.6v40.1c0,1.2-1,2.2-2.2,2.2s-2.2-1-2.2-2.2v-45.6
c0-0.9,0.5-1.7,1.4-2.1c0.8-0.3,1.8-0.1,2.4,0.6l39.9,41.6v-40.1c0-1.2,1-2.2,2.2-2.2s2.2,1,2.2,2.2v45.6c0,0.9-0.5,1.7-1.4,2.1
C58.7-170.6,58.4-170.5,58.1-170.5z"/>
</g>
<g class="st1">
<path class="st3" d="M222.1-170.5L222.1-170.5h-45.6c-0.8,0-1.5-0.4-1.9-1c-0.4-0.7-0.4-1.5-0.1-2.2l22.8-45.6
c0.4-0.7,1.1-1.2,2-1.2c0.8,0,1.6,0.5,2,1.2L224-174c0.2,0.4,0.4,0.8,0.4,1.2C224.2-171.5,223.2-170.5,222.1-170.5z M180.1-174.9
h38.4l-19.2-38.4L180.1-174.9z"/>
</g>
<g class="st1">
<path class="st4" d="M149.1-170.5c-0.8,0-1.6-0.5-2-1.2l-22.7-45.6c-0.5-1.1-0.1-2.4,1-3c1.1-0.5,2.4-0.1,3,1l20.8,41.6l20.8-41.6
c0.5-1.1,1.9-1.5,3-1s1.5,1.9,1,3l-22.8,45.6C150.6-171,149.9-170.5,149.1-170.5z"/>
</g>
<g class="st1">
<path class="st5" d="M95.6-170.5c-13.8,0-25-11.2-25-25s11.2-25,25-25s25,11.2,25,25S109.4-170.5,95.6-170.5z M95.6-216.1
c-11.3,0-20.6,9.2-20.6,20.6c0,11.3,9.2,20.6,20.6,20.6c11.3,0,20.6-9.2,20.6-20.6C116.2-206.8,107-216.1,95.6-216.1z"/>
</g>
</g>
<polyline class="st6" points="5.5,58.8 5.5,52.2 5.5,45.6 5.5,39.1 5.5,32.5 5.5,25.9 5.5,19.4 5.5,12.8 5.5,6.2 50.5,58.8
50.5,7.5 "/>
<path class="st7" d="M83,8.5c3.1-1.3,6.5-2,10-2c14.4,0,26,11.6,26,26s-11.6,26-26,26s-26-11.6-26-26C67,21.7,73.6,12.4,83,8.5"/>
<polyline class="st8" points="175.5,58.8 201.8,6.2 228,58.8 210.5,58.8 193,58.8 "/>
<polyline class="st9" points="126.8,6.2 153,58.8 179.2,6.2 "/>
</svg>

+ 1
- 0
admin/LICENSES/nova-icons_files/sticky.min.js
File diff suppressed because it is too large
View File


+ 623
- 0
admin/LICENSES/nova-icons_files/style.css View File

@@ -0,0 +1,623 @@
.menu {
display: flex;
align-items: baseline;
flex-direction: row;
padding: 0 1em;
}
.menu a {
margin: 0 1.25em;
font-size: 0.8em;
color: #888688;
}
@media (max-width: 575px) {
.menu a {
margin: 0 0.5em;
font-size: 0.8em;
}
}
.logo-home {
text-align: left;
}
.logo-home img {
width: 7em;
}
@media (max-width: 575px) {
.logo-home img {
width: 4em;
}
}
.column.menu-items {
text-align: right;
}
.menu-bottom {
text-align: center;
padding: 1em;
}
.menu-bottom a {
margin: 0 1.25em;
font-size: 1em;
color: #888688;
}
@media (max-width: 575px) {
.menu-bottom {
display: flex;
flex-direction: column;
}
.menu-bottom a {
margin: 0.5em 0;
}
}
.footer {
text-align: center;
background: #f6f6f6;
text-transform: uppercase;
font-size: 0.8em;
}
.footer .container {
padding-top: 48px;
}
.brand {
font-size: 0.85em;
padding: 1em 2em;
border: #bdc5c6 1px solid;
border-radius: 3px;
background: #fff;
color: #888688;
}
.brand:hover {
color: #222;
border-color: #888688;
}
.container {
padding: 6em 2em;
}
@media (max-width: 900px) {
.container {
padding: 4em 2em;
}
}
@media (max-width: 575px) {
.container {
padding: 3em 2em;
}
}
.container-gray {
background: #f6f6f6;
}
.btn {
padding: 24px;
font-size: 16px;
line-height: 16px;
display: inline-block;
transition: all 0.1s ease;
text-align: center;
background-color: #f6f6f6;
border: 1px solid #bdc5c6;
color: #222;
}
.btn:hover {
background-color: #fff;
border: 1px solid #2095f2;
color: #2095f2;
}
.btn-solid {
padding: 20px;
font-size: 16px;
color: #fff;
background: #2095f2;
border: 5px solid #2095f2;
display: inline-block;
transition: all 0.1s ease;
text-align: center;
border-radius: 3px;
font-weight: 500;
}
.btn-solid:hover {
border: 5px solid #0984d8;
background: #0984d8;
color: #fff;
}
.btn-solid-alt {
padding: 20px;
font-size: 16px;
color: #888688;
background: #fff;
border: 5px solid #d9d9d9;
display: inline-block;
transition: all 0.1s ease;
text-align: center;
border-radius: 3px;
}
.btn-solid-alt:hover {
border: 5px solid #2095f2;
background-color: #fff;
color: #2095f2;
}
.btn-small {
padding: 12px;
font-size: 14px;
line-height: 21px;
}
.btn-large {
width: 280px;
}
input.btn-large {
width: 100%;
}
.btn-huge {
width: 320px;
}
.download {
background: #fff;
z-index: 1000;
}
.download a {
margin: 0 1em;
}
@media (max-width: 575px) {
.download a {
margin-bottom: 1em;
}
}
.download .container {
padding: 30px 0;
}
.is-sticky {
padding: 1em 0;
transition: 0.3s;
}
.is-sticky .btn-large {
padding: 0.6em 0;
font-size: 13px;
transition: 0.3s;
}
.is-sticky .btn-large b {
font-size: 15px;
}
.category {
border-bottom: 1px #f6f6f6 solid;
font-size: 12px;
text-transform: uppercase;
color: #888688;
letter-spacing: 0.15em;
margin: 4em 1em 1em 1em;
}
@media (max-width: 575px) {
.category {
margin: 2em 1em;
}
}
.preview img {
padding: 0.5em;
}
body {
color: #222;
margin: 0;
}
a {
color: #222;
text-decoration: none;
transition: all 0.2s ease-out;
}
a:hover {
color: #222;
}
a.underline {
border-botttom: 1px solid #bdc5c6;
}
p {
margin: 12px 0;
}
.huge {
font-size: 24px;
line-height: 32px;
}
.large {
font-size: 19px;
line-height: 32px;
}
.small {
font-size: 12px;
margin: 6px 0;
line-height: 16px;
}
.medium {
font-size: 14px;
line-height: 21px;
}
.tiny {
font-size: 11px;
line-height: 14px;
}
h1,
h2,
h3,
h4 {
line-height: 1em;
margin: 0;
}
h1 {
text-align: center;
font-weight: 800;
font-size: 54px;
line-height: 70px;
padding-bottom: 24px;
}
@media (max-width: 575px) {
h1 {
font-size: 32px;
line-height: 44px;
}
}
h2 {
text-align: center;
font-weight: 400;
color: #888688;
font-size: 24px;
line-height: 36px;
padding-bottom: 24px;
padding: 0 6em;
}
@media (max-width: 900px) {
h2 {
padding: 0 2em;
}
}
@media (max-width: 575px) {
h2 {
font-size: 18px;
line-height: 28px;
padding: 0;
}
}
.uppercase {
text-transform: uppercase;
}
.capitalize {
text-transform: capitalize;
}
.normal {
font-weight: normal;
}
.narrow {
font-family: 'Roboto Condensed', arial, sans-serif;
}
.center {
text-align: center;
}
.underline {
border-bottom: 1px solid #bdc5c6;
}
a.underline {
color: inherit;
}
.align-right {
text-align: right;
}
.align-left {
text-align: left;
}
.strike {
position: relative;
display: inline-block;
font-size: inherit;
}
.strike::before {
content: '';
border-bottom: 1px solid #f00;
width: 100%;
position: absolute;
right: 0;
top: 35%;
}
.black {
color: #222;
}
.gray {
color: #bdc5c6;
}
.grayDark {
color: #888688;
}
.green {
color: #4bae4e;
}
.red {
color: #f34235;
}
.blue {
color: #2095f2;
}
.yellow {
color: #fec005;
}
.invisible {
display: none;
}
.fluo {
background: #f3ff00;
padding: 2px 12px;
}
span.pill {
background: #16c975;
padding: 4px 8px;
margin-right: 10px;
border-radius: 6px;
font-size: 12px;
text-shadow: none;
position: relative;
top: -2px;
color: #fff;
font-weight: bold;
}
.top-12 {
margin-top: 12px;
}
.top-24 {
margin-top: 24px;
}
.top-36 {
margin-top: 36px;
}
.top-48 {
margin-top: 48px;
}
.top-60 {
margin-top: 60px;
}
.top-72 {
margin-top: 72px;
}
.bottom-12 {
margin-bottom: 12px;
}
.bottom-24 {
margin-bottom: 24px;
}
.bottom-36 {
margin-bottom: 36px;
}
.bottom-48 {
margin-bottom: 48px;
}
.bottom-60 {
margin-bottom: 60px;
}
.bottom-72 {
margin-bottom: 72px;
}
.hero h1 {
margin: 0.5em 0 0 0;
}
@media (max-width: 575px) {
.hero h1 {
margin: 0;
}
}
.hero h2 {
margin-bottom: 2em;
}
.hero .hero-img {
display: flex;
justify-content: space-around;
}
.hero-img .column {
padding: 1.5em 3em 0 3em;
}
@media (max-width: 575px) {
.hero-img .column {
padding: 0;
}
}
.container-features {
margin-top: 9em;
}
@media (max-width: 575px) {
.container-features {
margin-top: 4em;
}
}
.features {
padding: 4em 0;
text-align: center;
}
@media (max-width: 575px) {
.features p {
margin-bottom: 4em;
font-size: 0.9em;
font-weight: bold;
}
}
.files {
padding: 4em 0;
text-align: center;
}
@media (max-width: 575px) {
.files {
padding-bottom: 0;
}
}
.files .column {
padding: 0 1.5em;
}
@media (max-width: 900px) {
.files .column {
padding: 0 0.75em;
}
.files .column p {
font-size: 0.8em;
}
}
@media (max-width: 575px) {
.files .column {
padding: 0 2em;
}
.files .column img {
padding: 0 0.5em;
}
.files .column p {
font-weight: 400;
font-size: 0.9em;
margin-bottom: 3em;
}
}
#mailchimp {
max-width: 50%;
margin-left: 25%;
}
@media (max-width: 900px) {
#mailchimp {
max-width: 70%;
margin-left: 15%;
}
}
@media (max-width: 575px) {
#mailchimp {
max-width: 90%;
margin-left: 5%;
}
}
#mailchimp input {
margin-top: 0.5em;
font-size: 1.2em;
line-height: 1.2em;
padding: 1em 0.5em;
height: inherit;
}
#mailchimp ::-webkit-input-placeholder {
/* Chrome/Opera/Safari */
color: #bdc5c6;
font-style: italic;
}
#mailchimp ::-moz-placeholder {
/* Firefox 19+ */
color: #bdc5c6;
font-style: italic;
}
#mailchimp :-ms-input-placeholder {
/* IE 10+ */
color: #bdc5c6;
font-style: italic;
}
#mailchimp :-moz-placeholder {
/* Firefox 18- */
color: #bdc5c6;
font-style: italic;
}
#mailchimp input:hover {
border: 1px solid #2095f2;
}
#mailchimp input.btn-large {
color: #fff;
background: #2095f2;
border: 5px solid #2095f2;
display: inline-block;
transition: all 0.1s ease;
text-align: center;
border-radius: 3px;
font-weight: 500;
}
#mailchimp input.btn-large:hover {
border: 5px solid #0984d8;
background: #0984d8;
color: #fff;
}
.column.intro {
margin: 0 20%;
}
@media (max-width: 1100px) {
.column.intro {
margin: 0 10%;
}
}
@media (max-width: 900px) {
.column.intro {
margin: 0 5%;
}
}
@media (max-width: 575px) {
.column.intro {
margin: 0 2%;
}
}
.column.intro h1 {
font-size: 3em;
line-height: 1.5em;
color: #888688;
}
.column.intro p.large {
color: #222;
}
@media (max-width: 900px) {
.column.intro p.large {
font-size: 1.4em;
}
}
@media (max-width: 575px) {
.column.intro p.large {
font-size: 1.1em;
line-height: 1.6em;
}
}
.column.long-text {
margin: 0 20%;
color: #888688;
}
@media (max-width: 1100px) {
.column.long-text {
margin: 0 10%;
}
}
@media (max-width: 900px) {
.column.long-text {
margin: 0 5%;
}
}
@media (max-width: 575px) {
.column.long-text {
margin: 0 2%;
}
}
.column.long-text h1 {
font-size: 3em;
line-height: 1.5em;
color: #888688;
}
@media (max-width: 900px) {
.column.long-text h1 {
font-size: 2em;
}
}
@media (max-width: 575px) {
.column.long-text h1 {
font-size: 1.6em;
}
}
.column.long-text p.large {
color: #222;
}
@media (max-width: 900px) {
.column.long-text p.large {
font-size: 1.4em;
}
}
@media (max-width: 575px) {
.column.long-text p.large {
font-size: 1.1em;
line-height: 1.6em;
}
}
h3 {
margin: 48px 0 24px 0;
font-size: 21px;
font-weight: 500;
}
h4 {
font-weight: 600;
font-size: 18px;
margin: 3em 0 0.5em 0;
color: #222;
}
a.btn-solid {
margin: 1em 0 2em 0;
}

+ 15
- 0
admin/LICENSES/nova-icons_files/widget_iframe.c63890edc4243ee77048d507b181eeec.html
File diff suppressed because it is too large
View File


+ 8
- 0
admin/LICENSES/nova-icons_files/widgets.js
File diff suppressed because it is too large
View File


+ 15
- 0
admin/icons/barista/logo.svg View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="512" height="192" viewBox="0 0 135.46667 50.8" version="1.1" id="svg8" inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<g transform="translate(0,-248)">
<g aria-label="barista" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:33.86666489px;line-height:1.25;font-family:Inter;-inkscape-font-specification:'Inter, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" id="text4581" transform="translate(1.8333333e-6,25.400005)">
<path d="m 11.743973,259.0383 h 5.051136 v -2.95852 h 0.228504 c 0.709564,1.53939 2.260984,3.25918 5.24356,3.25918 4.20928,0 7.492519,-3.33134 7.492519,-9.51297 0,-6.35 -3.427557,-9.50095 -7.480493,-9.50095 -3.090814,0 -4.570075,1.84006 -5.255586,3.34337 H 16.867268 V 234.408 h -5.123295 z m 5.015056,-9.23636 c 0,-3.29527 1.395076,-5.39991 3.884565,-5.39991 2.537594,0 3.884564,2.20085 3.884564,5.39991 0,3.2231 -1.371023,5.46003 -3.884564,5.46003 -2.465436,0 -3.884565,-2.16477 -3.884565,-5.46003 z" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:33.86666489px;font-family:Inter;-inkscape-font-specification:'Inter, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#5fa0bf;fill-opacity:1;stroke-width:0.26458332" id="path4583" inkscape:connector-curvature="0"></path>
<path d="m 38.430791,259.38707 c 2.730019,0 4.497917,-1.19063 5.399905,-2.91042 h 0.144318 v 2.56165 h 4.858712 v -12.45947 c 0,-4.4017 -3.728219,-6.25379 -7.841287,-6.25379 -4.425758,0 -7.336174,2.11667 -8.045739,5.48409 l 4.738447,0.38485 c 0.348769,-1.2267 1.443182,-2.12869 3.283239,-2.12869 1.743844,0 2.742045,0.87793 2.742045,2.39328 v 0.0721 c 0,1.19063 -1.262784,1.34697 -4.473863,1.65966 -3.656061,0.33675 -6.939299,1.56345 -6.939299,5.68854 0,3.65607 2.609753,5.50815 6.133522,5.50815 z m 1.467235,-3.5358 c -1.575474,0 -2.705966,-0.73361 -2.705966,-2.14072 0,-1.44318 1.190625,-2.15274 2.994602,-2.4053 1.118466,-0.15634 2.946496,-0.42093 3.559849,-0.82983 v 1.96032 c 0,1.93627 -1.599527,3.41553 -3.848485,3.41553 z" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:33.86666489px;font-family:Inter;-inkscape-font-specification:'Inter, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#5fa0bf;fill-opacity:1;stroke-width:0.26458332" id="path4585" inkscape:connector-curvature="0"></path>
<path d="m 52.814497,259.0383 h 5.123295 v -10.45104 c 0,-2.27301 1.659659,-3.83646 3.920644,-3.83646 0.709565,0 1.683712,0.12027 2.164773,0.27661 v -4.54602 c -0.457008,-0.10824 -1.094413,-0.1804 -1.611553,-0.1804 -2.068561,0 -3.764299,1.20265 -4.437784,3.48769 h -0.192424 v -3.22311 h -4.966951 z" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:33.86666489px;font-family:Inter;-inkscape-font-specification:'Inter, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#5fa0bf;fill-opacity:1;stroke-width:0.26458332" id="path4587" inkscape:connector-curvature="0"></path>
<path d="m 66.657,259.0383 h 5.123295 V 240.56557 H 66.657 Z m 2.573674,-20.85398 c 1.527367,0 2.778125,-1.16657 2.778125,-2.59772 0,-1.41913 -1.250758,-2.5857 -2.778125,-2.5857 -1.515341,0 -2.766098,1.16657 -2.766098,2.5857 0,1.43115 1.250757,2.59772 2.766098,2.59772 z" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:33.86666489px;font-family:Inter;-inkscape-font-specification:'Inter, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#5fa0bf;fill-opacity:1;stroke-width:0.26458332" id="path4589" inkscape:connector-curvature="0"></path>
<path d="m 91.239173,245.83319 c -0.457007,-3.40351 -3.199053,-5.50815 -7.86534,-5.50815 -4.72642,0 -7.841288,2.18883 -7.829261,5.74868 -0.01203,2.7661 1.731818,4.55805 5.339772,5.27964 l 3.199053,0.6374 c 1.611553,0.32472 2.34517,0.91402 2.369224,1.84006 -0.02405,1.09441 -1.214678,1.87614 -3.006629,1.87614 -1.82803,0 -3.042708,-0.78173 -3.355398,-2.28504 l -5.039109,0.26458 c 0.48106,3.5358 3.487689,5.71259 8.38248,5.71259 4.786553,0 8.21411,-2.44138 8.226136,-6.08541 -0.01203,-2.66989 -1.755871,-4.26941 -5.339772,-5.00303 l -3.343371,-0.67349 c -1.719792,-0.37282 -2.357197,-0.96212 -2.345171,-1.85208 -0.01203,-1.10644 1.238731,-1.82803 2.826231,-1.82803 1.779925,0 2.838258,0.97415 3.090815,2.16477 z" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:33.86666489px;font-family:Inter;-inkscape-font-specification:'Inter, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#5fa0bf;fill-opacity:1;stroke-width:0.26458332" id="path4591" inkscape:connector-curvature="0"></path>
<path d="m 104.72086,240.56557 h -3.47566 v -4.42575 h -5.123298 v 4.42575 h -2.525568 v 3.84849 h 2.525568 v 9.62121 c -0.02405,3.61998 2.441382,5.41193 6.157578,5.25559 1.32291,-0.0481 2.26098,-0.31269 2.77812,-0.48106 l -0.80577,-3.81241 c -0.25256,0.0481 -0.79375,0.16837 -1.27482,0.16837 -1.02225,0 -1.73181,-0.38485 -1.73181,-1.80398 v -8.94772 h 3.47566 z" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:33.86666489px;font-family:Inter;-inkscape-font-specification:'Inter, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#5fa0bf;fill-opacity:1;stroke-width:0.26458332" id="path4593" inkscape:connector-curvature="0"></path>
<path d="m 113.31975,259.38707 c 2.73002,0 4.49792,-1.19063 5.39991,-2.91042 h 0.14432 v 2.56165 h 4.85871 v -12.45947 c 0,-4.4017 -3.72822,-6.25379 -7.84129,-6.25379 -4.42575,0 -7.33617,2.11667 -8.04574,5.48409 l 4.73845,0.38485 c 0.34877,-1.2267 1.44318,-2.12869 3.28324,-2.12869 1.74384,0 2.74204,0.87793 2.74204,2.39328 v 0.0721 c 0,1.19063 -1.26278,1.34697 -4.47386,1.65966 -3.65606,0.33675 -6.9393,1.56345 -6.9393,5.68854 0,3.65607 2.60976,5.50815 6.13352,5.50815 z m 1.46724,-3.5358 c -1.57547,0 -2.70597,-0.73361 -2.70597,-2.14072 0,-1.44318 1.19063,-2.15274 2.99461,-2.4053 1.11846,-0.15634 2.94649,-0.42093 3.55984,-0.82983 v 1.96032 c 0,1.93627 -1.59952,3.41553 -3.84848,3.41553 z" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:33.86666489px;font-family:Inter;-inkscape-font-specification:'Inter, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#5fa0bf;fill-opacity:1;stroke-width:0.26458332" id="path4595" inkscape:connector-curvature="0"></path>
</g>
</g>
</svg>

+ 1
- 0
admin/icons/other-icons/arrow-down.svg View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/></svg>

+ 1
- 0
admin/icons/other-icons/check.svg View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"/></svg>

+ 1
- 0
admin/icons/other-icons/cross.svg View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/><path d="M0 0h24v24H0z" fill="none"/></svg>

+ 1
- 0
admin/icons/other-icons/hash.svg View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M5.41,21L6.12,17H2.12L2.47,15H6.47L7.53,9H3.53L3.88,7H7.88L8.59,3H10.59L9.88,7H15.88L16.59,3H18.59L17.88,7H21.88L21.53,9H17.53L16.47,15H20.47L20.12,17H16.12L15.41,21H13.41L14.12,17H8.12L7.41,21H5.41M9.53,9L8.47,15H14.47L15.53,9H9.53Z" /></svg>

+ 6
- 0
admin/icons/other-icons/loading.svg View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin: auto; display: block; shape-rendering: auto;" width="auto" height="4rem" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
<circle cx="50" cy="50" fill="none" stroke="#5fa0bf" stroke-width="8" r="24" stroke-dasharray="113.09733552923255 39.69911184307752" transform="rotate(172.676 50 50)">
<animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="0.625s" values="0 50 50;360 50 50" keyTimes="0;1"></animateTransform>
</circle>
<!-- [ldio] generated by https://loading.io/ --></svg>

+ 1
- 0
admin/icons/other-icons/star.svg View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/><path d="M0 0h24v24H0z" fill="none"/></svg>

+ 1
- 0
admin/icons/tab-icons/cafe.svg View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M2,21H20V19H2M20,8H18V5H20M20,3H4V13A4,4 0 0,0 8,17H14A4,4 0 0,0 18,13V10H20A2,2 0 0,0 22,8V5C22,3.89 21.1,3 20,3Z" /></svg>

+ 1
- 0
admin/icons/tab-icons/error.svg View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>

+ 1
- 0
admin/icons/tab-icons/home.svg View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z" /></svg>

+ 1
- 0
admin/icons/tab-icons/label-24px.svg View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg>

+ 1
- 0
admin/icons/tab-icons/log.svg View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M3 18h12v-2H3v2zM3 6v2h18V6H3zm0 7h18v-2H3v2z"/></svg>

+ 1
- 0
admin/icons/tab-icons/map-marker.svg View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z" /></svg>

+ 20
- 0
admin/icons/tab-icons/preferences.svg View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, 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" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
<g id="Frames-24px">
<rect fill="none" width="24" height="24"/>
</g>
<g id="Solid">
<path fill="#000" d="M14.5,6c0-0.345,0.047-0.677,0.121-1H2v2h12.621C14.547,6.677,14.5,6.345,14.5,6z"/>
<path fill="#000" d="M14.5,18c0-0.345,0.047-0.677,0.121-1H2v2h12.621C14.547,18.677,14.5,18.345,14.5,18z"/>
<g>
<path fill="#000" d="M4.5,12c0-0.345,0.047-0.677,0.121-1H2v2h2.621C4.547,12.677,4.5,12.345,4.5,12z"/>
<path fill="#000" d="M13.379,11c0.074,0.323,0.121,0.655,0.121,1s-0.047,0.677-0.121,1H22v-2H13.379z"/>
</g>
<circle fill="#000" cx="19" cy="6" r="3"/>
<circle fill="#000" cx="9" cy="12" r="3"/>
<circle fill="#000" cx="19" cy="18" r="3"/>
</g>
</svg>

+ 1
- 0
admin/icons/tab-icons/robot.svg View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,2A2,2 0 0,1 14,4C14,4.74 13.6,5.39 13,5.73V7H14A7,7 0 0,1 21,14H22A1,1 0 0,1 23,15V18A1,1 0 0,1 22,19H21V20A2,2 0 0,1 19,22H5A2,2 0 0,1 3,20V19H2A1,1 0 0,1 1,18V15A1,1 0 0,1 2,14H3A7,7 0 0,1 10,7H11V5.73C10.4,5.39 10,4.74 10,4A2,2 0 0,1 12,2M7.5,13A2.5,2.5 0 0,0 5,15.5A2.5,2.5 0 0,0 7.5,18A2.5,2.5 0 0,0 10,15.5A2.5,2.5 0 0,0 7.5,13M16.5,13A2.5,2.5 0 0,0 14,15.5A2.5,2.5 0 0,0 16.5,18A2.5,2.5 0 0,0 19,15.5A2.5,2.5 0 0,0 16.5,13Z" /></svg>

+ 1
- 0
admin/icons/tab-icons/settings.svg View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z" /></svg>

+ 1
- 0
admin/icons/tab-icons/tea.svg View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M4,19H20V21H4V19M20,8V5H18V8H20M20,3C20.6,3 21,3.2 21.4,3.6C21.8,4 22,4.5 22,5V8C22,8.6 21.8,9 21.4,9.4C21,9.8 20.6,10 20,10H18V13C18,14.1 17.6,15 16.8,15.8C16,16.6 15.1,17 14,17H8C6.9,17 6,16.6 5.2,15.8C4.4,15 4,14.1 4,13V3H9V5.4L7.2,6.8C7.1,6.9 7,7.1 7,7.2V11.5C7,11.8 7.2,12 7.5,12H11.5C11.8,12 12,11.8 12,11.5V7.2C12,7 11.9,6.9 11.8,6.8L10,5.4V3H20Z" /></svg>

+ 17
- 0
admin/icons/tab-icons/ticket.svg View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="
M 13 5
L 17 5
H 1
L 5 12
L 1 19
H 13
L 17 12
Z
M 19 5
L 23 12
L 19 19
L 16 19
L 20 12
L 16 5
Z
" /></svg>

+ 1
- 0
admin/icons/tab-icons/user.svg View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z" /></svg>

+ 122
- 0
admin/index.html View File

@@ -0,0 +1,122 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Barista Admin Panel</title>
<link rel="stylesheet" type="text/css" href="style/main.css">
<link rel="stylesheet" type="text/css" href="style/index.css">
<link rel="stylesheet" type="text/css" href="style/sidebar.css">

<meta name="viewport" content="width=device-width, initial-scale=0.65, maximum-scale=0.65, user-scalable=0" />

<script type="text/javascript">
function testToken(token) {
var url = "https://barista.pott.app/admin/doorlock";
var params = "mode=CHECK&token=" + encodeURIComponent(token);

var xhr = new XMLHttpRequest();
xhr.open("POST", url, false);

//Send the proper header information along with the request
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(params);

if (xhr.status === 200) {
if (xhr.responseText == "true") {
return true;
}
}
return false;
}

function checkLoginState() {
let token = window.sessionStorage.getItem("token");
if (token === undefined || !testToken(token)) {
console.log("Not logged in");
window.location.replace("login.html");
}
}

checkLoginState();
</script>

<script type="text/javascript">
function goToTab(tab) {
document.getElementById("content-pane").src = "sites/" + tab + ".html";
for (let tabElement of document.getElementsByClassName("tab")) {
tabElement.classList.remove("active");
}

document.getElementById(tab).classList.add("active");

if (tab == "home") {
document.getElementById("body").classList.add("force-wide-sidebar");
} else {
document.getElementById("body").classList.remove("force-wide-sidebar");
}
}

function onHashChanged() {
if (window.location.hash.replace("#", "") == "") {
goToTab("home");
} else {
goToTab(window.location.hash.replace("#", "").split("/")[0]);
}
}
</script>
</head>
<body onhashchange="onHashChanged();" id="body">
<div id="sidebar">
<div id="icon-bg"></div>

<div class="tab" id="home" onClick='window.location.hash = "home";'>
<img src="icons/tab-icons/home.svg" /><div class="label">Home</div>
<span class="tooltiptext">Home</span>
</div>
<div class="tab" id="tickets" onClick='window.location.hash = "tickets";'>
<img src="icons/tab-icons/ticket.svg" /><div class="label">Tickets</div>
<span class="tooltiptext">Tickets</span>
</div>
<div class="tab" id="users" onClick='window.location.hash = "users";'>
<img src="icons/tab-icons/user.svg" /><div class="label">Users</div>
<span class="tooltiptext">Users</span>
</div>
<div class="tab" id="cafes" onClick='window.location.hash = "cafes";'>
<img src="icons/tab-icons/map-marker.svg" /><div class="label">Cafés</div>
<span class="tooltiptext">Cafés</span>
</div>
<div class="tab" id="products" onClick='window.location.hash = "products";'>
<img src="icons/tab-icons/tea.svg" /><div class="label">Products</div>
<span class="tooltiptext">Products</span>
</div>
<div class="tab" id="bot-detection" onClick='window.location.hash = "bot-detection";'>
<img src="icons/tab-icons/robot.svg" /><div class="label">Bot Detection</div>
<span class="tooltiptext">Bot Detection</span>
</div>
<div class="tab" id="logs" onClick='window.location.hash = "logs";'>
<img src="icons/tab-icons/log.svg" /><div class="label">Logs</div>
<span class="tooltiptext">Logs</span>
</div>
<div class="tab" id="errors" onClick='window.location.hash = "errors";'>
<img src="icons/tab-icons/error.svg" /><div class="label">Errors</div>
<span class="tooltiptext">Errors</span>
</div>
<div class="tab" id="config" onClick='window.location.hash = "config";'>
<img src="icons/tab-icons/settings.svg" /><div class="label">Config</div>
<span class="tooltiptext">Config</span>
</div>

<div class="tab" id="preferences" onClick='window.location.hash = "preferences";'>
<img src="icons/tab-icons/preferences.svg" /><div class="label">Preferences</div>
<span class="tooltiptext">Preferences</span>
</div>
</div>

<iframe id="content-pane"></iframe>

<script type="text/javascript">
onHashChanged();
</script>
</body>

</html>

+ 112
- 0
admin/login.html View File

@@ -0,0 +1,112 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Barista Login</title>
<link rel="stylesheet" type="text/css" href="style/main.css">
<link rel="stylesheet" type="text/css" href="style/login.css">

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>

<script type="text/javascript">
var loggingIn = false;

var salt;

function arrayBufferToHex(buffer) { // buffer is an ArrayBuffer
return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
}

function fetchSalt() {
let username = document.getElementById('kaffeepott-username').value;

var url = "https://barista.pott.app/admin/doorlock";
var params = "mode=SALT&user=" + encodeURIComponent(username);

var xhr = new XMLHttpRequest();
xhr.open("POST", url, false);

//Send the proper header information along with the request
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(params);

if (xhr.status === 200) {
if (xhr.responseText !== "denied") {
salt = xhr.responseText;
document.getElementById('kaffeepott-username').style.borderColor = "transparent";
return;
}
}
salt = undefined;
document.getElementById('kaffeepott-username').style.borderColor = "#b54f4f";
}

async function updateLogInButton() {
let password = document.getElementById('password').value;

if (salt !== undefined && password != "" && !loggingIn) {
document.getElementById('submit').style.background = "#5fa0bf";
document.getElementById('submit').style.cursor = "pointer";
} else {
document.getElementById('submit').style.background = "#666";
document.getElementById('submit').style.cursor = "default";
}

if (loggingIn) {
document.getElementById('loading').style.display = "block";
document.getElementById('submit').style.display = "none";
} else {
document.getElementById('loading').style.display = "none";
document.getElementById('submit').style.display = "block";
}

// TODO: make input non-editable when loading
// TODO: use tokens in requests
}

async function logIn() {
loggingIn = true;
updateLogInButton();
let username = document.getElementById('kaffeepott-username').value;
let password = document.getElementById('password').value;

let pwdHash = arrayBufferToHex(await window.crypto.subtle.digest("SHA-512", new TextEncoder("utf-8").encode(password + salt + '\n')));

console.debug("SHA-512 of password and salt", salt, "(" + password + salt +"):", pwdHash);

var url = "https://barista.pott.app/admin/doorlock";
var params = "mode=TOKEN&user=" + encodeURIComponent(username) + "&password=" + pwdHash;

var worker = new Worker('scripts/login_worker.js');
worker.onmessage = function(e) {
console.log(e.data);
if (e.data.token !== undefined) {
loggingIn = false;
updateLogInButton();

window.sessionStorage.setItem("token", e.data.token);

window.location.replace("index.html");
return;
}
document.getElementById('password').style.borderColor = "#b54f4f";
loggingIn = false;
updateLogInButton();
}
worker.postMessage({url: url, params: params});
}
</script>
</head>
<body id="body">
<div id="login-fields">
<form>
<img src="icons/barista/logo.svg">
<input type="text" class="text" id="kaffeepott-username" placeholder="Username" autocomplete="username" onblur="fetchSalt(); updateLogInButton()" autofocus>
<input type="password" class="text" id="password" placeholder="Password" autocomplete="current-password" oninput="updateLogInButton()">
<button id="submit" type="button" onclick="let password = document.getElementById('password').value; if (salt !== undefined && password != '' && !loggingIn) {logIn();}">Log in</button>
<img src="icons/other-icons/loading.svg" id="loading">
</form>
</div>
</body>

</html>

+ 20
- 0
admin/scripts/login_worker.js View File

@@ -0,0 +1,20 @@
function logIn(url, params, document) {
var xhr = new XMLHttpRequest();
xhr.open("POST", url, false);

//Send the proper header information along with the request
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xhr.send(params);

if (xhr.status === 200) {
if (xhr.responseText !== "denied") {
return xhr.responseText;
}
}
return undefined;
}

self.addEventListener("message", function(e) {
postMessage({token: logIn(e.data.url, e.data.params)})
}, false);

+ 824
- 0
admin/scripts/main.js View File

@@ -0,0 +1,824 @@
const DATA_EXPIRY_PERIOD = 60_000; // A minute

var users = {};
var cafes = {};
var cafePreviews = {};
var sortedBy = "";

/* convenience functions */
function unique(array) {
var a = array.concat();
for (var i = 0; i < a.length; ++i) {
for (var j = i + 1; j < a.length; ++j) {
if (a[i] === a[j]) a.splice(j--, 1);
}
}
return a;
}

function pad(num, size) {
var string = num.toString();
while (string.length < size) string = "0" + string;
return string;
}

function toTitleCase(str) {
return str.replace(/\w\S*/g, function (txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
}

function formatCafeID(cafeID, insertSpace = true) {
if (cafeID > 0) {
return (
"<span style='\
color:transparent;\
opacity:0;\
-webkit-touch-callout:none;\
-webkit-user-select:none;\
-khtml-user-select: none;\
-moz-user-select:none;\
-ms-user-select:none;\
user-select: none;\
'>" +
(insertSpace ? "+" : "") +
"</span>" +
cafeID.toString().substring(0, 7)
);
}
return cafeID.toString().substring(0, 8);
}
function mono(str) {
return "<span style='font-family: monospace'>" + str + "</span>";
}

function small(str) {
return "<span style='font-size: 75%; line-height:1.75'>" + str + "</span>";
}

function escapeHTML(str) {
return new Option(str).innerHTML;
}

function sortTable(
table,
column = undefined,
resortReverse = true,
fallbackColumn = undefined
) {
column = column ?? sortedBy.split(";_sortOrder:")[0];

if (column === "") {
column = fallbackColumn ?? null;
if (typeof column != "string") return;
}

if (table.tagName.toLowerCase() == "table") table = table.tBodies[0];

let columnIndex = -1;
let headerRow = table.children[0];

for (var i = headerRow.children.length - 1; i >= 0; i--) {
let headerCell = headerRow.children[i];
if (
headerCell.innerText.trim().toLowerCase() ==
column.trim().toLowerCase()
) {
columnIndex = i;
break;
}
}

if (columnIndex == -1) {
throw "Column '" + column + "' is not in table";
return;
}